obj-i386-y += pc_piix.o
obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
-# codec acceleration
-obj-i386-y += codec_accel.o
-
##########################################################
# opengl library for i386
obj-i386-y += helper_opengl.o opengl_exec.o opengl_server.o
##########################################################
ifdef CONFIG_FFMPEG
+# codec acceleration
+obj-i386-y += codec_accel.o
LIBS+=-lavformat -lavcodec -lavutil -lswscale -lbz2
CFLAGS+=$(FFMPEG_CFLAGS)
endif
+++ /dev/null
-/*
- * AAC definitions and structures
- * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
- * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAC definitions and structures
- * @author Oded Shimon ( ods15 ods15 dyndns org )
- * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
- */
-
-#ifndef AVCODEC_AAC_H
-#define AVCODEC_AAC_H
-
-#include "avcodec.h"
-#include "dsputil.h"
-#include "fft.h"
-#include "mpeg4audio.h"
-#include "sbr.h"
-
-#include <stdint.h>
-
-#define AAC_INIT_VLC_STATIC(num, size) \
- INIT_VLC_STATIC(&vlc_spectral[num], 8, ff_aac_spectral_sizes[num], \
- ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeof( ff_aac_spectral_bits[num][0]), \
- ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeof(ff_aac_spectral_codes[num][0]), \
- size);
-
-#define MAX_CHANNELS 64
-#define MAX_ELEM_ID 16
-
-#define TNS_MAX_ORDER 20
-
-enum RawDataBlockType {
- TYPE_SCE,
- TYPE_CPE,
- TYPE_CCE,
- TYPE_LFE,
- TYPE_DSE,
- TYPE_PCE,
- TYPE_FIL,
- TYPE_END,
-};
-
-enum ExtensionPayloadID {
- EXT_FILL,
- EXT_FILL_DATA,
- EXT_DATA_ELEMENT,
- EXT_DYNAMIC_RANGE = 0xb,
- EXT_SBR_DATA = 0xd,
- EXT_SBR_DATA_CRC = 0xe,
-};
-
-enum WindowSequence {
- ONLY_LONG_SEQUENCE,
- LONG_START_SEQUENCE,
- EIGHT_SHORT_SEQUENCE,
- LONG_STOP_SEQUENCE,
-};
-
-enum BandType {
- ZERO_BT = 0, ///< Scalefactors and spectral data are all zero.
- FIRST_PAIR_BT = 5, ///< This and later band types encode two values (rather than four) with one code word.
- ESC_BT = 11, ///< Spectral data are coded with an escape sequence.
- NOISE_BT = 13, ///< Spectral data are scaled white noise not coded in the bitstream.
- INTENSITY_BT2 = 14, ///< Scalefactor data are intensity stereo positions.
- INTENSITY_BT = 15, ///< Scalefactor data are intensity stereo positions.
-};
-
-#define IS_CODEBOOK_UNSIGNED(x) ((x - 1) & 10)
-
-enum ChannelPosition {
- AAC_CHANNEL_FRONT = 1,
- AAC_CHANNEL_SIDE = 2,
- AAC_CHANNEL_BACK = 3,
- AAC_CHANNEL_LFE = 4,
- AAC_CHANNEL_CC = 5,
-};
-
-/**
- * The point during decoding at which channel coupling is applied.
- */
-enum CouplingPoint {
- BEFORE_TNS,
- BETWEEN_TNS_AND_IMDCT,
- AFTER_IMDCT = 3,
-};
-
-/**
- * Output configuration status
- */
-enum OCStatus {
- OC_NONE, //< Output unconfigured
- OC_TRIAL_PCE, //< Output configuration under trial specified by an inband PCE
- OC_TRIAL_FRAME, //< Output configuration under trial specified by a frame header
- OC_GLOBAL_HDR, //< Output configuration set in a global header but not yet locked
- OC_LOCKED, //< Output configuration locked in place
-};
-
-/**
- * Predictor State
- */
-typedef struct {
- float cor0;
- float cor1;
- float var0;
- float var1;
- float r0;
- float r1;
-} PredictorState;
-
-#define MAX_PREDICTORS 672
-
-#define SCALE_DIV_512 36 ///< scalefactor difference that corresponds to scale difference in 512 times
-#define SCALE_ONE_POS 140 ///< scalefactor index that corresponds to scale=1.0
-#define SCALE_MAX_POS 255 ///< scalefactor index maximum value
-#define SCALE_MAX_DIFF 60 ///< maximum scalefactor difference allowed by standard
-#define SCALE_DIFF_ZERO 60 ///< codebook index corresponding to zero scalefactor indices difference
-
-/**
- * Individual Channel Stream
- */
-typedef struct {
- uint8_t max_sfb; ///< number of scalefactor bands per group
- enum WindowSequence window_sequence[2];
- uint8_t use_kb_window[2]; ///< If set, use Kaiser-Bessel window, otherwise use a sinus window.
- int num_window_groups;
- uint8_t group_len[8];
- const uint16_t *swb_offset; ///< table of offsets to the lowest spectral coefficient of a scalefactor band, sfb, for a particular window
- const uint8_t *swb_sizes; ///< table of scalefactor band sizes for a particular window
- int num_swb; ///< number of scalefactor window bands
- int num_windows;
- int tns_max_bands;
- int predictor_present;
- int predictor_initialized;
- int predictor_reset_group;
- uint8_t prediction_used[41];
-} IndividualChannelStream;
-
-/**
- * Temporal Noise Shaping
- */
-typedef struct {
- int present;
- int n_filt[8];
- int length[8][4];
- int direction[8][4];
- int order[8][4];
- float coef[8][4][TNS_MAX_ORDER];
-} TemporalNoiseShaping;
-
-/**
- * Dynamic Range Control - decoded from the bitstream but not processed further.
- */
-typedef struct {
- int pce_instance_tag; ///< Indicates with which program the DRC info is associated.
- int dyn_rng_sgn[17]; ///< DRC sign information; 0 - positive, 1 - negative
- int dyn_rng_ctl[17]; ///< DRC magnitude information
- int exclude_mask[MAX_CHANNELS]; ///< Channels to be excluded from DRC processing.
- int band_incr; ///< Number of DRC bands greater than 1 having DRC info.
- int interpolation_scheme; ///< Indicates the interpolation scheme used in the SBR QMF domain.
- int band_top[17]; ///< Indicates the top of the i-th DRC band in units of 4 spectral lines.
- int prog_ref_level; /**< A reference level for the long-term program audio level for all
- * channels combined.
- */
-} DynamicRangeControl;
-
-typedef struct {
- int num_pulse;
- int start;
- int pos[4];
- int amp[4];
-} Pulse;
-
-/**
- * coupling parameters
- */
-typedef struct {
- enum CouplingPoint coupling_point; ///< The point during decoding at which coupling is applied.
- int num_coupled; ///< number of target elements
- enum RawDataBlockType type[8]; ///< Type of channel element to be coupled - SCE or CPE.
- int id_select[8]; ///< element id
- int ch_select[8]; /**< [0] shared list of gains; [1] list of gains for right channel;
- * [2] list of gains for left channel; [3] lists of gains for both channels
- */
- float gain[16][120];
-} ChannelCoupling;
-
-/**
- * Single Channel Element - used for both SCE and LFE elements.
- */
-typedef struct {
- IndividualChannelStream ics;
- TemporalNoiseShaping tns;
- Pulse pulse;
- enum BandType band_type[128]; ///< band types
- int band_type_run_end[120]; ///< band type run end points
- float sf[120]; ///< scalefactors
- int sf_idx[128]; ///< scalefactor indices (used by encoder)
- uint8_t zeroes[128]; ///< band is not coded (used by encoder)
- DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for IMDCT
- DECLARE_ALIGNED(16, float, saved)[1024]; ///< overlap
- DECLARE_ALIGNED(16, float, ret)[2048]; ///< PCM output
- PredictorState predictor_state[MAX_PREDICTORS];
-} SingleChannelElement;
-
-/**
- * channel element - generic struct for SCE/CPE/CCE/LFE
- */
-typedef struct {
- // CPE specific
- int common_window; ///< Set if channels share a common 'IndividualChannelStream' in bitstream.
- int ms_mode; ///< Signals mid/side stereo flags coding mode (used by encoder)
- uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scalefactor window band
- // shared
- SingleChannelElement ch[2];
- // CCE specific
- ChannelCoupling coup;
- SpectralBandReplication sbr;
-} ChannelElement;
-
-/**
- * main AAC context
- */
-typedef struct {
- AVCodecContext * avccontext;
-
- MPEG4AudioConfig m4ac;
-
- int is_saved; ///< Set if elements have stored overlap from previous frame.
- DynamicRangeControl che_drc;
-
- /**
- * @defgroup elements Channel element related data.
- * @{
- */
- enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the
- * first index as the first 4 raw data block types
- */
- ChannelElement * che[4][MAX_ELEM_ID];
- ChannelElement * tag_che_map[4][MAX_ELEM_ID];
- int tags_mapped;
- /** @} */
-
- /**
- * @defgroup temporary aligned temporary buffers (We do not want to have these on the stack.)
- * @{
- */
- DECLARE_ALIGNED(16, float, buf_mdct)[1024];
- /** @} */
-
- /**
- * @defgroup tables Computed / set up during initialization.
- * @{
- */
- FFTContext mdct;
- FFTContext mdct_small;
- DSPContext dsp;
- int random_state;
- /** @} */
-
- /**
- * @defgroup output Members used for output interleaving.
- * @{
- */
- float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
- float add_bias; ///< offset for dsp.float_to_int16
- float sf_scale; ///< Pre-scale for correct IMDCT and dsp.float_to_int16.
- int sf_offset; ///< offset into pow2sf_tab as appropriate for dsp.float_to_int16
- /** @} */
-
- DECLARE_ALIGNED(16, float, temp)[128];
-
- enum OCStatus output_configured;
-} AACContext;
-
-#endif /* AVCODEC_AAC_H */
+++ /dev/null
-/*
- * Common AAC and AC-3 parser prototypes
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2003 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AAC_AC3_PARSER_H
-#define AVCODEC_AAC_AC3_PARSER_H
-
-#include <stdint.h>
-#include "avcodec.h"
-#include "parser.h"
-
-typedef enum {
- AAC_AC3_PARSE_ERROR_SYNC = -1,
- AAC_AC3_PARSE_ERROR_BSID = -2,
- AAC_AC3_PARSE_ERROR_SAMPLE_RATE = -3,
- AAC_AC3_PARSE_ERROR_FRAME_SIZE = -4,
- AAC_AC3_PARSE_ERROR_FRAME_TYPE = -5,
- AAC_AC3_PARSE_ERROR_CRC = -6,
- AAC_AC3_PARSE_ERROR_CHANNEL_CFG = -7,
-} AACAC3ParseError;
-
-typedef struct AACAC3ParseContext {
- ParseContext pc;
- int frame_size;
- int header_size;
- int (*sync)(uint64_t state, struct AACAC3ParseContext *hdr_info,
- int *need_next_header, int *new_frame_start);
-
- int channels;
- int sample_rate;
- int bit_rate;
- int samples;
- int64_t channel_layout;
-
- int remaining_size;
- uint64_t state;
-
- int need_next_header;
- enum CodecID codec_id;
-} AACAC3ParseContext;
-
-int ff_aac_ac3_parse(AVCodecParserContext *s1,
- AVCodecContext *avctx,
- const uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size);
-
-#endif /* AVCODEC_AAC_AC3_PARSER_H */
+++ /dev/null
-/*
- * AAC parser prototypes
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2003 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AAC_PARSER_H
-#define AVCODEC_AAC_PARSER_H
-
-#include <stdint.h>
-#include "aac_ac3_parser.h"
-#include "get_bits.h"
-
-#define AAC_ADTS_HEADER_SIZE 7
-
-typedef struct {
- uint32_t sample_rate;
- uint32_t samples;
- uint32_t bit_rate;
- uint8_t crc_absent;
- uint8_t object_type;
- uint8_t sampling_index;
- uint8_t chan_config;
- uint8_t num_aac_frames;
-} AACADTSHeaderInfo;
-
-/**
- * Parses AAC frame header.
- * Parses the ADTS frame header to the end of the variable header, which is
- * the first 54 bits.
- * @param gbc[in] BitContext containing the first 54 bits of the frame.
- * @param hdr[out] Pointer to struct where header info is written.
- * @return Returns 0 on success, -1 if there is a sync word mismatch,
- * -2 if the version element is invalid, -3 if the sample rate
- * element is invalid, or -4 if the bit rate element is invalid.
- */
-int ff_aac_parse_header(GetBitContext *gbc, AACADTSHeaderInfo *hdr);
-
-#endif /* AVCODEC_AAC_PARSER_H */
+++ /dev/null
-/*
- * AAC decoder data
- * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
- * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAC decoder data
- * @author Oded Shimon ( ods15 ods15 dyndns org )
- * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
- */
-
-#ifndef AVCODEC_AACDECTAB_H
-#define AVCODEC_AACDECTAB_H
-
-#include "aac.h"
-
-#include <stdint.h>
-
-/* @name tns_tmp2_map
- * Tables of the tmp2[] arrays of LPC coefficients used for TNS.
- * The suffix _M_N[] indicate the values of coef_compress and coef_res
- * respectively.
- * @{
- */
-static const float tns_tmp2_map_1_3[4] = {
- 0.00000000, -0.43388373, 0.64278758, 0.34202015,
-};
-
-static const float tns_tmp2_map_0_3[8] = {
- 0.00000000, -0.43388373, -0.78183150, -0.97492790,
- 0.98480773, 0.86602539, 0.64278758, 0.34202015,
-};
-
-static const float tns_tmp2_map_1_4[8] = {
- 0.00000000, -0.20791170, -0.40673664, -0.58778524,
- 0.67369562, 0.52643216, 0.36124167, 0.18374951,
-};
-
-static const float tns_tmp2_map_0_4[16] = {
- 0.00000000, -0.20791170, -0.40673664, -0.58778524,
- -0.74314481, -0.86602539, -0.95105654, -0.99452192,
- 0.99573416, 0.96182561, 0.89516330, 0.79801720,
- 0.67369562, 0.52643216, 0.36124167, 0.18374951,
-};
-
-static const float * const tns_tmp2_map[4] = {
- tns_tmp2_map_0_3,
- tns_tmp2_map_0_4,
- tns_tmp2_map_1_3,
- tns_tmp2_map_1_4
-};
-// @}
-
-static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-static const uint8_t aac_channel_layout_map[7][5][2] = {
- { { TYPE_SCE, 0 }, },
- { { TYPE_CPE, 0 }, },
- { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, },
- { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_SCE, 1 }, },
- { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_CPE, 1 }, },
- { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 1 }, },
- { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 2 }, { TYPE_CPE, 1 }, },
-};
-
-static const int64_t aac_channel_layout[8] = {
- CH_LAYOUT_MONO,
- CH_LAYOUT_STEREO,
- CH_LAYOUT_SURROUND,
- CH_LAYOUT_4POINT0,
- CH_LAYOUT_5POINT0_BACK,
- CH_LAYOUT_5POINT1_BACK,
- CH_LAYOUT_7POINT1_WIDE,
- 0,
-};
-
-#endif /* AVCODEC_AACDECTAB_H */
+++ /dev/null
-/*
- * AAC encoder
- * Copyright (C) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AACENC_H
-#define AVCODEC_AACENC_H
-
-#include "avcodec.h"
-#include "put_bits.h"
-#include "dsputil.h"
-
-#include "aac.h"
-
-#include "psymodel.h"
-
-struct AACEncContext;
-
-typedef struct AACCoefficientsEncoder {
- void (*search_for_quantizers)(AVCodecContext *avctx, struct AACEncContext *s,
- SingleChannelElement *sce, const float lambda);
- void (*encode_window_bands_info)(struct AACEncContext *s, SingleChannelElement *sce,
- int win, int group_len, const float lambda);
- void (*quantize_and_encode_band)(struct AACEncContext *s, PutBitContext *pb, const float *in, int size,
- int scale_idx, int cb, const float lambda);
- void (*search_for_ms)(struct AACEncContext *s, ChannelElement *cpe, const float lambda);
-} AACCoefficientsEncoder;
-
-extern AACCoefficientsEncoder ff_aac_coders[];
-
-/**
- * AAC encoder context
- */
-typedef struct AACEncContext {
- PutBitContext pb;
- FFTContext mdct1024; ///< long (1024 samples) frame transform context
- FFTContext mdct128; ///< short (128 samples) frame transform context
- DSPContext dsp;
- DECLARE_ALIGNED(16, FFTSample, output)[2048]; ///< temporary buffer for MDCT input coefficients
- int16_t* samples; ///< saved preprocessed input
-
- int samplerate_index; ///< MPEG-4 samplerate index
-
- ChannelElement *cpe; ///< channel elements
- FFPsyContext psy;
- struct FFPsyPreprocessContext* psypp;
- AACCoefficientsEncoder *coder;
- int cur_channel;
- int last_frame;
- float lambda;
- DECLARE_ALIGNED(16, int, qcoefs)[96][2]; ///< quantized coefficients
- DECLARE_ALIGNED(16, float, scoefs)[1024]; ///< scaled coefficients
-} AACEncContext;
-
-#endif /* AVCODEC_AACENC_H */
+++ /dev/null
-/*
- * AAC encoder psychoacoustic model
- * Copyright (C) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AACPSY_H
-#define AVCODEC_AACPSY_H
-
-#include "avcodec.h"
-#include "aac.h"
-//#include "lowpass.h"
-
-enum AACPsyModelType{
- AAC_PSY_TEST, ///< a sample model to exercise encoder
- AAC_PSY_3GPP, ///< model following recommendations from 3GPP TS 26.403
-
- AAC_NB_PSY_MODELS ///< total number of psychoacoustic models, since it's not a part of the ABI new models can be added freely
-};
-
-/**
- * context used by psychoacoustic model
- */
-typedef struct AACPsyContext {
- AVCodecContext *avctx; ///< encoder context
-}AACPsyContext;
-
-/**
- * Cleanup model context at the end.
- *
- * @param ctx model context
- */
-void ff_aac_psy_end(AACPsyContext *ctx);
-
-#endif /* AVCODEC_AACPSY_H */
+++ /dev/null
-/*
- * AAC Spectral Band Replication function declarations
- * Copyright (c) 2008-2009 Robert Swain ( rob opendot cl )
- * Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAC Spectral Band Replication function declarations
- * @author Robert Swain ( rob opendot cl )
- */
-
-#ifndef AVCODEC_AACSBR_H
-#define AVCODEC_AACSBR_H
-
-#include "get_bits.h"
-#include "aac.h"
-#include "sbr.h"
-
-/** Initialize SBR. */
-av_cold void ff_aac_sbr_init(void);
-/** Initialize one SBR context. */
-av_cold void ff_aac_sbr_ctx_init(SpectralBandReplication *sbr);
-/** Close one SBR context. */
-av_cold void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr);
-/** Decode one SBR element. */
-int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
- GetBitContext *gb, int crc, int cnt, int id_aac);
-/** Apply one SBR element to one AAC element. */
-void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
- float* L, float *R);
-
-#endif /* AVCODEC_AACSBR_H */
+++ /dev/null
-/*
- * AAC Spectral Band Replication decoding data
- * Copyright (c) 2008-2009 Robert Swain ( rob opendot cl )
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAC Spectral Band Replication decoding data
- * @author Robert Swain ( rob opendot cl )
- */
-
-#ifndef AVCODEC_AACSBRDATA_H
-#define AVCODEC_AACSBRDATA_H
-
-#include <stdint.h>
-#include "libavutil/mem.h"
-
-///< Huffman tables for SBR
-
-static const uint8_t t_huffman_env_1_5dB_bits[121] = {
- 18, 18, 18, 18, 18, 18, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 17, 18, 16, 17, 18, 17,
- 16, 16, 16, 16, 15, 14, 14, 13,
- 13, 12, 11, 10, 9, 8, 7, 6,
- 5, 4, 3, 2, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 12, 13, 14,
- 14, 15, 16, 17, 16, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19,
-};
-
-static const uint32_t t_huffman_env_1_5dB_codes[121] = {
- 0x3ffd6, 0x3ffd7, 0x3ffd8, 0x3ffd9, 0x3ffda, 0x3ffdb, 0x7ffb8, 0x7ffb9,
- 0x7ffba, 0x7ffbb, 0x7ffbc, 0x7ffbd, 0x7ffbe, 0x7ffbf, 0x7ffc0, 0x7ffc1,
- 0x7ffc2, 0x7ffc3, 0x7ffc4, 0x7ffc5, 0x7ffc6, 0x7ffc7, 0x7ffc8, 0x7ffc9,
- 0x7ffca, 0x7ffcb, 0x7ffcc, 0x7ffcd, 0x7ffce, 0x7ffcf, 0x7ffd0, 0x7ffd1,
- 0x7ffd2, 0x7ffd3, 0x1ffe6, 0x3ffd4, 0x0fff0, 0x1ffe9, 0x3ffd5, 0x1ffe7,
- 0x0fff1, 0x0ffec, 0x0ffed, 0x0ffee, 0x07ff4, 0x03ff9, 0x03ff7, 0x01ffa,
- 0x01ff9, 0x00ffb, 0x007fc, 0x003fc, 0x001fd, 0x000fd, 0x0007d, 0x0003d,
- 0x0001d, 0x0000d, 0x00005, 0x00001, 0x00000, 0x00004, 0x0000c, 0x0001c,
- 0x0003c, 0x0007c, 0x000fc, 0x001fc, 0x003fd, 0x00ffa, 0x01ff8, 0x03ff6,
- 0x03ff8, 0x07ff5, 0x0ffef, 0x1ffe8, 0x0fff2, 0x7ffd4, 0x7ffd5, 0x7ffd6,
- 0x7ffd7, 0x7ffd8, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd, 0x7ffde,
- 0x7ffdf, 0x7ffe0, 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffe6,
- 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffec, 0x7ffed, 0x7ffee,
- 0x7ffef, 0x7fff0, 0x7fff1, 0x7fff2, 0x7fff3, 0x7fff4, 0x7fff5, 0x7fff6,
- 0x7fff7, 0x7fff8, 0x7fff9, 0x7fffa, 0x7fffb, 0x7fffc, 0x7fffd, 0x7fffe,
- 0x7ffff,
-};
-
-static const uint8_t f_huffman_env_1_5dB_bits[121] = {
- 19, 19, 20, 20, 20, 20, 20, 20,
- 20, 19, 20, 20, 20, 20, 19, 20,
- 19, 19, 20, 18, 20, 20, 20, 19,
- 20, 20, 20, 19, 20, 19, 18, 19,
- 18, 18, 17, 18, 17, 17, 17, 16,
- 16, 16, 15, 15, 14, 13, 13, 12,
- 12, 11, 10, 9, 9, 8, 7, 6,
- 5, 4, 3, 2, 2, 3, 4, 5,
- 6, 8, 8, 9, 10, 11, 11, 11,
- 12, 12, 13, 13, 14, 14, 16, 16,
- 17, 17, 18, 18, 18, 18, 18, 18,
- 18, 20, 19, 20, 20, 20, 20, 20,
- 20, 19, 20, 20, 20, 20, 19, 20,
- 18, 20, 20, 19, 19, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20,
- 20,
-};
-
-static const uint32_t f_huffman_env_1_5dB_codes[121] = {
- 0x7ffe7, 0x7ffe8, 0xfffd2, 0xfffd3, 0xfffd4, 0xfffd5, 0xfffd6, 0xfffd7,
- 0xfffd8, 0x7ffda, 0xfffd9, 0xfffda, 0xfffdb, 0xfffdc, 0x7ffdb, 0xfffdd,
- 0x7ffdc, 0x7ffdd, 0xfffde, 0x3ffe4, 0xfffdf, 0xfffe0, 0xfffe1, 0x7ffde,
- 0xfffe2, 0xfffe3, 0xfffe4, 0x7ffdf, 0xfffe5, 0x7ffe0, 0x3ffe8, 0x7ffe1,
- 0x3ffe0, 0x3ffe9, 0x1ffef, 0x3ffe5, 0x1ffec, 0x1ffed, 0x1ffee, 0x0fff4,
- 0x0fff3, 0x0fff0, 0x07ff7, 0x07ff6, 0x03ffa, 0x01ffa, 0x01ff9, 0x00ffa,
- 0x00ff8, 0x007f9, 0x003fb, 0x001fc, 0x001fa, 0x000fb, 0x0007c, 0x0003c,
- 0x0001c, 0x0000c, 0x00005, 0x00001, 0x00000, 0x00004, 0x0000d, 0x0001d,
- 0x0003d, 0x000fa, 0x000fc, 0x001fb, 0x003fa, 0x007f8, 0x007fa, 0x007fb,
- 0x00ff9, 0x00ffb, 0x01ff8, 0x01ffb, 0x03ff8, 0x03ff9, 0x0fff1, 0x0fff2,
- 0x1ffea, 0x1ffeb, 0x3ffe1, 0x3ffe2, 0x3ffea, 0x3ffe3, 0x3ffe6, 0x3ffe7,
- 0x3ffeb, 0xfffe6, 0x7ffe2, 0xfffe7, 0xfffe8, 0xfffe9, 0xfffea, 0xfffeb,
- 0xfffec, 0x7ffe3, 0xfffed, 0xfffee, 0xfffef, 0xffff0, 0x7ffe4, 0xffff1,
- 0x3ffec, 0xffff2, 0xffff3, 0x7ffe5, 0x7ffe6, 0xffff4, 0xffff5, 0xffff6,
- 0xffff7, 0xffff8, 0xffff9, 0xffffa, 0xffffb, 0xffffc, 0xffffd, 0xffffe,
- 0xfffff,
-};
-
-static const uint8_t t_huffman_env_bal_1_5dB_bits[49] = {
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 12, 11, 9, 7, 5, 3,
- 1, 2, 4, 6, 8, 11, 12, 15,
- 16, 16, 16, 16, 16, 16, 16, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17,
-};
-
-static const uint32_t t_huffman_env_bal_1_5dB_codes[49] = {
- 0x0ffe4, 0x0ffe5, 0x0ffe6, 0x0ffe7, 0x0ffe8, 0x0ffe9, 0x0ffea, 0x0ffeb,
- 0x0ffec, 0x0ffed, 0x0ffee, 0x0ffef, 0x0fff0, 0x0fff1, 0x0fff2, 0x0fff3,
- 0x0fff4, 0x0ffe2, 0x00ffc, 0x007fc, 0x001fe, 0x0007e, 0x0001e, 0x00006,
- 0x00000, 0x00002, 0x0000e, 0x0003e, 0x000fe, 0x007fd, 0x00ffd, 0x07ff0,
- 0x0ffe3, 0x0fff5, 0x0fff6, 0x0fff7, 0x0fff8, 0x0fff9, 0x0fffa, 0x1fff6,
- 0x1fff7, 0x1fff8, 0x1fff9, 0x1fffa, 0x1fffb, 0x1fffc, 0x1fffd, 0x1fffe,
- 0x1ffff,
-};
-
-static const uint8_t f_huffman_env_bal_1_5dB_bits[49] = {
- 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 16,
- 17, 14, 11, 11, 8, 7, 4, 2,
- 1, 3, 5, 6, 9, 11, 12, 15,
- 16, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 19,
- 19,
-};
-
-static const uint32_t f_huffman_env_bal_1_5dB_codes[49] = {
- 0x3ffe2, 0x3ffe3, 0x3ffe4, 0x3ffe5, 0x3ffe6, 0x3ffe7, 0x3ffe8, 0x3ffe9,
- 0x3ffea, 0x3ffeb, 0x3ffec, 0x3ffed, 0x3ffee, 0x3ffef, 0x3fff0, 0x0fff7,
- 0x1fff0, 0x03ffc, 0x007fe, 0x007fc, 0x000fe, 0x0007e, 0x0000e, 0x00002,
- 0x00000, 0x00006, 0x0001e, 0x0003e, 0x001fe, 0x007fd, 0x00ffe, 0x07ffa,
- 0x0fff6, 0x3fff1, 0x3fff2, 0x3fff3, 0x3fff4, 0x3fff5, 0x3fff6, 0x3fff7,
- 0x3fff8, 0x3fff9, 0x3fffa, 0x3fffb, 0x3fffc, 0x3fffd, 0x3fffe, 0x7fffe,
- 0x7ffff,
-};
-
-static const uint8_t t_huffman_env_3_0dB_bits[63] = {
- 18, 18, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 17, 16, 16, 16, 14, 14, 14,
- 13, 12, 11, 8, 6, 4, 2, 1,
- 3, 5, 7, 9, 11, 13, 14, 14,
- 15, 16, 17, 18, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19,
-};
-
-static const uint32_t t_huffman_env_3_0dB_codes[63] = {
- 0x3ffed, 0x3ffee, 0x7ffde, 0x7ffdf, 0x7ffe0, 0x7ffe1, 0x7ffe2, 0x7ffe3,
- 0x7ffe4, 0x7ffe5, 0x7ffe6, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb,
- 0x7ffec, 0x1fff4, 0x0fff7, 0x0fff9, 0x0fff8, 0x03ffb, 0x03ffa, 0x03ff8,
- 0x01ffa, 0x00ffc, 0x007fc, 0x000fe, 0x0003e, 0x0000e, 0x00002, 0x00000,
- 0x00006, 0x0001e, 0x0007e, 0x001fe, 0x007fd, 0x01ffb, 0x03ff9, 0x03ffc,
- 0x07ffa, 0x0fff6, 0x1fff5, 0x3ffec, 0x7ffed, 0x7ffee, 0x7ffef, 0x7fff0,
- 0x7fff1, 0x7fff2, 0x7fff3, 0x7fff4, 0x7fff5, 0x7fff6, 0x7fff7, 0x7fff8,
- 0x7fff9, 0x7fffa, 0x7fffb, 0x7fffc, 0x7fffd, 0x7fffe, 0x7ffff,
-};
-
-static const uint8_t f_huffman_env_3_0dB_bits[63] = {
- 20, 20, 20, 20, 20, 20, 20, 18,
- 19, 19, 19, 19, 18, 18, 20, 19,
- 17, 18, 17, 16, 16, 15, 14, 12,
- 11, 10, 9, 8, 6, 4, 2, 1,
- 3, 5, 8, 9, 10, 11, 12, 13,
- 14, 15, 15, 16, 16, 17, 17, 18,
- 18, 18, 20, 19, 19, 19, 20, 19,
- 19, 20, 20, 20, 20, 20, 20,
-};
-
-static const uint32_t f_huffman_env_3_0dB_codes[63] = {
- 0xffff0, 0xffff1, 0xffff2, 0xffff3, 0xffff4, 0xffff5, 0xffff6, 0x3fff3,
- 0x7fff5, 0x7ffee, 0x7ffef, 0x7fff6, 0x3fff4, 0x3fff2, 0xffff7, 0x7fff0,
- 0x1fff5, 0x3fff0, 0x1fff4, 0x0fff7, 0x0fff6, 0x07ff8, 0x03ffb, 0x00ffd,
- 0x007fd, 0x003fd, 0x001fd, 0x000fd, 0x0003e, 0x0000e, 0x00002, 0x00000,
- 0x00006, 0x0001e, 0x000fc, 0x001fc, 0x003fc, 0x007fc, 0x00ffc, 0x01ffc,
- 0x03ffa, 0x07ff9, 0x07ffa, 0x0fff8, 0x0fff9, 0x1fff6, 0x1fff7, 0x3fff5,
- 0x3fff6, 0x3fff1, 0xffff8, 0x7fff1, 0x7fff2, 0x7fff3, 0xffff9, 0x7fff7,
- 0x7fff4, 0xffffa, 0xffffb, 0xffffc, 0xffffd, 0xffffe, 0xfffff,
-};
-
-static const uint8_t t_huffman_env_bal_3_0dB_bits[25] = {
- 13, 13, 13, 13, 13, 13, 13, 12,
- 8, 7, 4, 3, 1, 2, 5, 6,
- 9, 13, 13, 13, 13, 13, 13, 14,
- 14,
-};
-
-static const uint16_t t_huffman_env_bal_3_0dB_codes[25] = {
- 0x1ff2, 0x1ff3, 0x1ff4, 0x1ff5, 0x1ff6, 0x1ff7, 0x1ff8, 0x0ff8,
- 0x00fe, 0x007e, 0x000e, 0x0006, 0x0000, 0x0002, 0x001e, 0x003e,
- 0x01fe, 0x1ff9, 0x1ffa, 0x1ffb, 0x1ffc, 0x1ffd, 0x1ffe, 0x3ffe,
- 0x3fff,
-};
-
-static const uint8_t f_huffman_env_bal_3_0dB_bits[25] = {
- 13, 13, 13, 13, 13, 14, 14, 11,
- 8, 7, 4, 2, 1, 3, 5, 6,
- 9, 12, 13, 14, 14, 14, 14, 14,
- 14,
-};
-
-static const uint16_t f_huffman_env_bal_3_0dB_codes[25] = {
- 0x1ff7, 0x1ff8, 0x1ff9, 0x1ffa, 0x1ffb, 0x3ff8, 0x3ff9, 0x07fc,
- 0x00fe, 0x007e, 0x000e, 0x0002, 0x0000, 0x0006, 0x001e, 0x003e,
- 0x01fe, 0x0ffa, 0x1ff6, 0x3ffa, 0x3ffb, 0x3ffc, 0x3ffd, 0x3ffe,
- 0x3fff,
-};
-
-static const uint8_t t_huffman_noise_3_0dB_bits[63] = {
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 11, 8, 6, 4, 3, 1,
- 2, 5, 8, 10, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 14, 14,
-};
-
-static const uint16_t t_huffman_noise_3_0dB_codes[63] = {
- 0x1fce, 0x1fcf, 0x1fd0, 0x1fd1, 0x1fd2, 0x1fd3, 0x1fd4, 0x1fd5,
- 0x1fd6, 0x1fd7, 0x1fd8, 0x1fd9, 0x1fda, 0x1fdb, 0x1fdc, 0x1fdd,
- 0x1fde, 0x1fdf, 0x1fe0, 0x1fe1, 0x1fe2, 0x1fe3, 0x1fe4, 0x1fe5,
- 0x1fe6, 0x1fe7, 0x07f2, 0x00fd, 0x003e, 0x000e, 0x0006, 0x0000,
- 0x0002, 0x001e, 0x00fc, 0x03f8, 0x1fcc, 0x1fe8, 0x1fe9, 0x1fea,
- 0x1feb, 0x1fec, 0x1fcd, 0x1fed, 0x1fee, 0x1fef, 0x1ff0, 0x1ff1,
- 0x1ff2, 0x1ff3, 0x1ff4, 0x1ff5, 0x1ff6, 0x1ff7, 0x1ff8, 0x1ff9,
- 0x1ffa, 0x1ffb, 0x1ffc, 0x1ffd, 0x1ffe, 0x3ffe, 0x3fff,
-};
-
-static const uint8_t t_huffman_noise_bal_3_0dB_bits[25] = {
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 5, 2, 1, 3, 6, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8,
-};
-
-static const uint8_t t_huffman_noise_bal_3_0dB_codes[25] = {
- 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,
- 0xf4, 0xf5, 0x1c, 0x02, 0x00, 0x06, 0x3a, 0xf6,
- 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe,
- 0xff,
-};
-
-static const int8_t sbr_offset[6][16] = {
- {-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7}, // fs_sbr = 16000 Hz
- {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13}, // fs_sbr = 22050 Hz
- {-5, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16}, // fs_sbr = 24000 Hz
- {-6, -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16}, // fs_sbr = 32000 Hz
- {-4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20}, // 44100 Hz <= fs_sbr <= 64000 Hz
- {-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24}, // 64000 Hz < fs_sbr
-};
-
-///< window coefficients for analysis/synthesis QMF banks
-static DECLARE_ALIGNED(16, float, sbr_qmf_window_ds)[320];
-static DECLARE_ALIGNED(16, float, sbr_qmf_window_us)[640] = {
- 0.0000000000, -0.0005525286, -0.0005617692, -0.0004947518,
- -0.0004875227, -0.0004893791, -0.0005040714, -0.0005226564,
- -0.0005466565, -0.0005677802, -0.0005870930, -0.0006132747,
- -0.0006312493, -0.0006540333, -0.0006777690, -0.0006941614,
- -0.0007157736, -0.0007255043, -0.0007440941, -0.0007490598,
- -0.0007681371, -0.0007724848, -0.0007834332, -0.0007779869,
- -0.0007803664, -0.0007801449, -0.0007757977, -0.0007630793,
- -0.0007530001, -0.0007319357, -0.0007215391, -0.0006917937,
- -0.0006650415, -0.0006341594, -0.0005946118, -0.0005564576,
- -0.0005145572, -0.0004606325, -0.0004095121, -0.0003501175,
- -0.0002896981, -0.0002098337, -0.0001446380, -0.0000617334,
- 0.0000134949, 0.0001094383, 0.0002043017, 0.0002949531,
- 0.0004026540, 0.0005107388, 0.0006239376, 0.0007458025,
- 0.0008608443, 0.0009885988, 0.0011250155, 0.0012577884,
- 0.0013902494, 0.0015443219, 0.0016868083, 0.0018348265,
- 0.0019841140, 0.0021461583, 0.0023017254, 0.0024625616,
- 0.0026201758, 0.0027870464, 0.0029469447, 0.0031125420,
- 0.0032739613, 0.0034418874, 0.0036008268, 0.0037603922,
- 0.0039207432, 0.0040819753, 0.0042264269, 0.0043730719,
- 0.0045209852, 0.0046606460, 0.0047932560, 0.0049137603,
- 0.0050393022, 0.0051407353, 0.0052461166, 0.0053471681,
- 0.0054196775, 0.0054876040, 0.0055475714, 0.0055938023,
- 0.0056220643, 0.0056455196, 0.0056389199, 0.0056266114,
- 0.0055917128, 0.0055404363, 0.0054753783, 0.0053838975,
- 0.0052715758, 0.0051382275, 0.0049839687, 0.0048109469,
- 0.0046039530, 0.0043801861, 0.0041251642, 0.0038456408,
- 0.0035401246, 0.0032091885, 0.0028446757, 0.0024508540,
- 0.0020274176, 0.0015784682, 0.0010902329, 0.0005832264,
- 0.0000276045, -0.0005464280, -0.0011568135, -0.0018039472,
- -0.0024826723, -0.0031933778, -0.0039401124, -0.0047222596,
- -0.0055337211, -0.0063792293, -0.0072615816, -0.0081798233,
- -0.0091325329, -0.0101150215, -0.0111315548, -0.0121849995,
- 0.0132718220, 0.0143904666, 0.0155405553, 0.0167324712,
- 0.0179433381, 0.0191872431, 0.0204531793, 0.0217467550,
- 0.0230680169, 0.0244160992, 0.0257875847, 0.0271859429,
- 0.0286072173, 0.0300502657, 0.0315017608, 0.0329754081,
- 0.0344620948, 0.0359697560, 0.0374812850, 0.0390053679,
- 0.0405349170, 0.0420649094, 0.0436097542, 0.0451488405,
- 0.0466843027, 0.0482165720, 0.0497385755, 0.0512556155,
- 0.0527630746, 0.0542452768, 0.0557173648, 0.0571616450,
- 0.0585915683, 0.0599837480, 0.0613455171, 0.0626857808,
- 0.0639715898, 0.0652247106, 0.0664367512, 0.0676075985,
- 0.0687043828, 0.0697630244, 0.0707628710, 0.0717002673,
- 0.0725682583, 0.0733620255, 0.0741003642, 0.0747452558,
- 0.0753137336, 0.0758008358, 0.0761992479, 0.0764992170,
- 0.0767093490, 0.0768173975, 0.0768230011, 0.0767204924,
- 0.0765050718, 0.0761748321, 0.0757305756, 0.0751576255,
- 0.0744664394, 0.0736406005, 0.0726774642, 0.0715826364,
- 0.0703533073, 0.0689664013, 0.0674525021, 0.0657690668,
- 0.0639444805, 0.0619602779, 0.0598166570, 0.0575152691,
- 0.0550460034, 0.0524093821, 0.0495978676, 0.0466303305,
- 0.0434768782, 0.0401458278, 0.0366418116, 0.0329583930,
- 0.0290824006, 0.0250307561, 0.0207997072, 0.0163701258,
- 0.0117623832, 0.0069636862, 0.0019765601, -0.0032086896,
- -0.0085711749, -0.0141288827, -0.0198834129, -0.0258227288,
- -0.0319531274, -0.0382776572, -0.0447806821, -0.0514804176,
- -0.0583705326, -0.0654409853, -0.0726943300, -0.0801372934,
- -0.0877547536, -0.0955533352, -0.1035329531, -0.1116826931,
- -0.1200077984, -0.1285002850, -0.1371551761, -0.1459766491,
- -0.1549607071, -0.1640958855, -0.1733808172, -0.1828172548,
- -0.1923966745, -0.2021250176, -0.2119735853, -0.2219652696,
- -0.2320690870, -0.2423016884, -0.2526480309, -0.2631053299,
- -0.2736634040, -0.2843214189, -0.2950716717, -0.3059098575,
- -0.3168278913, -0.3278113727, -0.3388722693, -0.3499914122,
- 0.3611589903, 0.3723795546, 0.3836350013, 0.3949211761,
- 0.4062317676, 0.4175696896, 0.4289119920, 0.4402553754,
- 0.4515996535, 0.4629308085, 0.4742453214, 0.4855253091,
- 0.4967708254, 0.5079817500, 0.5191234970, 0.5302240895,
- 0.5412553448, 0.5522051258, 0.5630789140, 0.5738524131,
- 0.5845403235, 0.5951123086, 0.6055783538, 0.6159109932,
- 0.6261242695, 0.6361980107, 0.6461269695, 0.6559016302,
- 0.6655139880, 0.6749663190, 0.6842353293, 0.6933282376,
- 0.7022388719, 0.7109410426, 0.7194462634, 0.7277448900,
- 0.7358211758, 0.7436827863, 0.7513137456, 0.7587080760,
- 0.7658674865, 0.7727780881, 0.7794287519, 0.7858353120,
- 0.7919735841, 0.7978466413, 0.8034485751, 0.8087695004,
- 0.8138191270, 0.8185776004, 0.8230419890, 0.8272275347,
- 0.8311038457, 0.8346937361, 0.8379717337, 0.8409541392,
- 0.8436238281, 0.8459818469, 0.8480315777, 0.8497805198,
- 0.8511971524, 0.8523047035, 0.8531020949, 0.8535720573,
- 0.8537385600,
-};
-
-static const float sbr_noise_table[512][2] = {
-{-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647},
-{ 0.14130051758487, -0.95090983575689}, {-0.47005496701697, -0.37340549728647},
-{ 0.80705063769351, 0.29653668284408}, {-0.38981478896926, 0.89572605717087},
-{-0.01053049862020, -0.66959058036166}, {-0.91266367957293, -0.11522938140034},
-{ 0.54840422910309, 0.75221367176302}, { 0.40009252867955, -0.98929400334421},
-{-0.99867974711855, -0.88147068645358}, {-0.95531076805040, 0.90908757154593},
-{-0.45725933317144, -0.56716323646760}, {-0.72929675029275, -0.98008272727324},
-{ 0.75622801399036, 0.20950329995549}, { 0.07069442601050, -0.78247898470706},
-{ 0.74496252926055, -0.91169004445807}, {-0.96440182703856, -0.94739918296622},
-{ 0.30424629369539, -0.49438267012479}, { 0.66565033746925, 0.64652935542491},
-{ 0.91697008020594, 0.17514097332009}, {-0.70774918760427, 0.52548653416543},
-{-0.70051415345560, -0.45340028808763}, {-0.99496513054797, -0.90071908066973},
-{ 0.98164490790123, -0.77463155528697}, {-0.54671580548181, -0.02570928536004},
-{-0.01689629065389, 0.00287506445732}, {-0.86110349531986, 0.42548583726477},
-{-0.98892980586032, -0.87881132267556}, { 0.51756627678691, 0.66926784710139},
-{-0.99635026409640, -0.58107730574765}, {-0.99969370862163, 0.98369989360250},
-{ 0.55266258627194, 0.59449057465591}, { 0.34581177741673, 0.94879421061866},
-{ 0.62664209577999, -0.74402970906471}, {-0.77149701404973, -0.33883658042801},
-{-0.91592244254432, 0.03687901376713}, {-0.76285492357887, -0.91371867919124},
-{ 0.79788337195331, -0.93180971199849}, { 0.54473080610200, -0.11919206037186},
-{-0.85639281671058, 0.42429854760451}, {-0.92882402971423, 0.27871809078609},
-{-0.11708371046774, -0.99800843444966}, { 0.21356749817493, -0.90716295627033},
-{-0.76191692573909, 0.99768118356265}, { 0.98111043100884, -0.95854459734407},
-{-0.85913269895572, 0.95766566168880}, {-0.93307242253692, 0.49431757696466},
-{ 0.30485754879632, -0.70540034357529}, { 0.85289650925190, 0.46766131791044},
-{ 0.91328082618125, -0.99839597361769}, {-0.05890199924154, 0.70741827819497},
-{ 0.28398686150148, 0.34633555702188}, { 0.95258164539612, -0.54893416026939},
-{-0.78566324168507, -0.75568541079691}, {-0.95789495447877, -0.20423194696966},
-{ 0.82411158711197, 0.96654618432562}, {-0.65185446735885, -0.88734990773289},
-{-0.93643603134666, 0.99870790442385}, { 0.91427159529618, -0.98290505544444},
-{-0.70395684036886, 0.58796798221039}, { 0.00563771969365, 0.61768196727244},
-{ 0.89065051931895, 0.52783352697585}, {-0.68683707712762, 0.80806944710339},
-{ 0.72165342518718, -0.69259857349564}, {-0.62928247730667, 0.13627037407335},
-{ 0.29938434065514, -0.46051329682246}, {-0.91781958879280, -0.74012716684186},
-{ 0.99298717043688, 0.40816610075661}, { 0.82368298622748, -0.74036047190173},
-{-0.98512833386833, -0.99972330709594}, {-0.95915368242257, -0.99237800466040},
-{-0.21411126572790, -0.93424819052545}, {-0.68821476106884, -0.26892306315457},
-{ 0.91851997982317, 0.09358228901785}, {-0.96062769559127, 0.36099095133739},
-{ 0.51646184922287, -0.71373332873917}, { 0.61130721139669, 0.46950141175917},
-{ 0.47336129371299, -0.27333178296162}, { 0.90998308703519, 0.96715662938132},
-{ 0.44844799194357, 0.99211574628306}, { 0.66614891079092, 0.96590176169121},
-{ 0.74922239129237, -0.89879858826087}, {-0.99571588506485, 0.52785521494349},
-{ 0.97401082477563, -0.16855870075190}, { 0.72683747733879, -0.48060774432251},
-{ 0.95432193457128, 0.68849603408441}, {-0.72962208425191, -0.76608443420917},
-{-0.85359479233537, 0.88738125901579}, {-0.81412430338535, -0.97480768049637},
-{-0.87930772356786, 0.74748307690436}, {-0.71573331064977, -0.98570608178923},
-{ 0.83524300028228, 0.83702537075163}, {-0.48086065601423, -0.98848504923531},
-{ 0.97139128574778, 0.80093621198236}, { 0.51992825347895, 0.80247631400510},
-{-0.00848591195325, -0.76670128000486}, {-0.70294374303036, 0.55359910445577},
-{-0.95894428168140, -0.43265504344783}, { 0.97079252950321, 0.09325857238682},
-{-0.92404293670797, 0.85507704027855}, {-0.69506469500450, 0.98633412625459},
-{ 0.26559203620024, 0.73314307966524}, { 0.28038443336943, 0.14537913654427},
-{-0.74138124825523, 0.99310339807762}, {-0.01752795995444, -0.82616635284178},
-{-0.55126773094930, -0.98898543862153}, { 0.97960898850996, -0.94021446752851},
-{-0.99196309146936, 0.67019017358456}, {-0.67684928085260, 0.12631491649378},
-{ 0.09140039465500, -0.20537731453108}, {-0.71658965751996, -0.97788200391224},
-{ 0.81014640078925, 0.53722648362443}, { 0.40616991671205, -0.26469008598449},
-{-0.67680188682972, 0.94502052337695}, { 0.86849774348749, -0.18333598647899},
-{-0.99500381284851, -0.02634122068550}, { 0.84329189340667, 0.10406957462213},
-{-0.09215968531446, 0.69540012101253}, { 0.99956173327206, -0.12358542001404},
-{-0.79732779473535, -0.91582524736159}, { 0.96349973642406, 0.96640458041000},
-{-0.79942778496547, 0.64323902822857}, {-0.11566039853896, 0.28587846253726},
-{-0.39922954514662, 0.94129601616966}, { 0.99089197565987, -0.92062625581587},
-{ 0.28631285179909, -0.91035047143603}, {-0.83302725605608, -0.67330410892084},
-{ 0.95404443402072, 0.49162765398743}, {-0.06449863579434, 0.03250560813135},
-{-0.99575054486311, 0.42389784469507}, {-0.65501142790847, 0.82546114655624},
-{-0.81254441908887, -0.51627234660629}, {-0.99646369485481, 0.84490533520752},
-{ 0.00287840603348, 0.64768261158166}, { 0.70176989408455, -0.20453028573322},
-{ 0.96361882270190, 0.40706967140989}, {-0.68883758192426, 0.91338958840772},
-{-0.34875585502238, 0.71472290693300}, { 0.91980081243087, 0.66507455644919},
-{-0.99009048343881, 0.85868021604848}, { 0.68865791458395, 0.55660316809678},
-{-0.99484402129368, -0.20052559254934}, { 0.94214511408023, -0.99696425367461},
-{-0.67414626793544, 0.49548221180078}, {-0.47339353684664, -0.85904328834047},
-{ 0.14323651387360, -0.94145598222488}, {-0.29268293575672, 0.05759224927952},
-{ 0.43793861458754, -0.78904969892724}, {-0.36345126374441, 0.64874435357162},
-{-0.08750604656825, 0.97686944362527}, {-0.96495267812511, -0.53960305946511},
-{ 0.55526940659947, 0.78891523734774}, { 0.73538215752630, 0.96452072373404},
-{-0.30889773919437, -0.80664389776860}, { 0.03574995626194, -0.97325616900959},
-{ 0.98720684660488, 0.48409133691962}, {-0.81689296271203, -0.90827703628298},
-{ 0.67866860118215, 0.81284503870856}, {-0.15808569732583, 0.85279555024382},
-{ 0.80723395114371, -0.24717418514605}, { 0.47788757329038, -0.46333147839295},
-{ 0.96367554763201, 0.38486749303242}, {-0.99143875716818, -0.24945277239809},
-{ 0.83081876925833, -0.94780851414763}, {-0.58753191905341, 0.01290772389163},
-{ 0.95538108220960, -0.85557052096538}, {-0.96490920476211, -0.64020970923102},
-{-0.97327101028521, 0.12378128133110}, { 0.91400366022124, 0.57972471346930},
-{-0.99925837363824, 0.71084847864067}, {-0.86875903507313, -0.20291699203564},
-{-0.26240034795124, -0.68264554369108}, {-0.24664412953388, -0.87642273115183},
-{ 0.02416275806869, 0.27192914288905}, { 0.82068619590515, -0.85087787994476},
-{ 0.88547373760759, -0.89636802901469}, {-0.18173078152226, -0.26152145156800},
-{ 0.09355476558534, 0.54845123045604}, {-0.54668414224090, 0.95980774020221},
-{ 0.37050990604091, -0.59910140383171}, {-0.70373594262891, 0.91227665827081},
-{-0.34600785879594, -0.99441426144200}, {-0.68774481731008, -0.30238837956299},
-{-0.26843291251234, 0.83115668004362}, { 0.49072334613242, -0.45359708737775},
-{ 0.38975993093975, 0.95515358099121}, {-0.97757125224150, 0.05305894580606},
-{-0.17325552859616, -0.92770672250494}, { 0.99948035025744, 0.58285545563426},
-{-0.64946246527458, 0.68645507104960}, {-0.12016920576437, -0.57147322153312},
-{-0.58947456517751, -0.34847132454388}, {-0.41815140454465, 0.16276422358861},
-{ 0.99885650204884, 0.11136095490444}, {-0.56649614128386, -0.90494866361587},
-{ 0.94138021032330, 0.35281916733018}, {-0.75725076534641, 0.53650549640587},
-{ 0.20541973692630, -0.94435144369918}, { 0.99980371023351, 0.79835913565599},
-{ 0.29078277605775, 0.35393777921520}, {-0.62858772103030, 0.38765693387102},
-{ 0.43440904467688, -0.98546330463232}, {-0.98298583762390, 0.21021524625209},
-{ 0.19513029146934, -0.94239832251867}, {-0.95476662400101, 0.98364554179143},
-{ 0.93379635304810, -0.70881994583682}, {-0.85235410573336, -0.08342347966410},
-{-0.86425093011245, -0.45795025029466}, { 0.38879779059045, 0.97274429344593},
-{ 0.92045124735495, -0.62433652524220}, { 0.89162532251878, 0.54950955570563},
-{-0.36834336949252, 0.96458298020975}, { 0.93891760988045, -0.89968353740388},
-{ 0.99267657565094, -0.03757034316958}, {-0.94063471614176, 0.41332338538963},
-{ 0.99740224117019, -0.16830494996370}, {-0.35899413170555, -0.46633226649613},
-{ 0.05237237274947, -0.25640361602661}, { 0.36703583957424, -0.38653265641875},
-{ 0.91653180367913, -0.30587628726597}, { 0.69000803499316, 0.90952171386132},
-{-0.38658751133527, 0.99501571208985}, {-0.29250814029851, 0.37444994344615},
-{-0.60182204677608, 0.86779651036123}, {-0.97418588163217, 0.96468523666475},
-{ 0.88461574003963, 0.57508405276414}, { 0.05198933055162, 0.21269661669964},
-{-0.53499621979720, 0.97241553731237}, {-0.49429560226497, 0.98183865291903},
-{-0.98935142339139, -0.40249159006933}, {-0.98081380091130, -0.72856895534041},
-{-0.27338148835532, 0.99950922447209}, { 0.06310802338302, -0.54539587529618},
-{-0.20461677199539, -0.14209977628489}, { 0.66223843141647, 0.72528579940326},
-{-0.84764345483665, 0.02372316801261}, {-0.89039863483811, 0.88866581484602},
-{ 0.95903308477986, 0.76744927173873}, { 0.73504123909879, -0.03747203173192},
-{-0.31744434966056, -0.36834111883652}, {-0.34110827591623, 0.40211222807691},
-{ 0.47803883714199, -0.39423219786288}, { 0.98299195879514, 0.01989791390047},
-{-0.30963073129751, -0.18076720599336}, { 0.99992588229018, -0.26281872094289},
-{-0.93149731080767, -0.98313162570490}, { 0.99923472302773, -0.80142993767554},
-{-0.26024169633417, -0.75999759855752}, {-0.35712514743563, 0.19298963768574},
-{-0.99899084509530, 0.74645156992493}, { 0.86557171579452, 0.55593866696299},
-{ 0.33408042438752, 0.86185953874709}, { 0.99010736374716, 0.04602397576623},
-{-0.66694269691195, -0.91643611810148}, { 0.64016792079480, 0.15649530836856},
-{ 0.99570534804836, 0.45844586038111}, {-0.63431466947340, 0.21079116459234},
-{-0.07706847005931, -0.89581437101329}, { 0.98590090577724, 0.88241721133981},
-{ 0.80099335254678, -0.36851896710853}, { 0.78368131392666, 0.45506999802597},
-{ 0.08707806671691, 0.80938994918745}, {-0.86811883080712, 0.39347308654705},
-{-0.39466529740375, -0.66809432114456}, { 0.97875325649683, -0.72467840967746},
-{-0.95038560288864, 0.89563219587625}, { 0.17005239424212, 0.54683053962658},
-{-0.76910792026848, -0.96226617549298}, { 0.99743281016846, 0.42697157037567},
-{ 0.95437383549973, 0.97002324109952}, { 0.99578905365569, -0.54106826257356},
-{ 0.28058259829990, -0.85361420634036}, { 0.85256524470573, -0.64567607735589},
-{-0.50608540105128, -0.65846015480300}, {-0.97210735183243, -0.23095213067791},
-{ 0.95424048234441, -0.99240147091219}, {-0.96926570524023, 0.73775654896574},
-{ 0.30872163214726, 0.41514960556126}, {-0.24523839572639, 0.63206633394807},
-{-0.33813265086024, -0.38661779441897}, {-0.05826828420146, -0.06940774188029},
-{-0.22898461455054, 0.97054853316316}, {-0.18509915019881, 0.47565762892084},
-{-0.10488238045009, -0.87769947402394}, {-0.71886586182037, 0.78030982480538},
-{ 0.99793873738654, 0.90041310491497}, { 0.57563307626120, -0.91034337352097},
-{ 0.28909646383717, 0.96307783970534}, { 0.42188998312520, 0.48148651230437},
-{ 0.93335049681047, -0.43537023883588}, {-0.97087374418267, 0.86636445711364},
-{ 0.36722871286923, 0.65291654172961}, {-0.81093025665696, 0.08778370229363},
-{-0.26240603062237, -0.92774095379098}, { 0.83996497984604, 0.55839849139647},
-{-0.99909615720225, -0.96024605713970}, { 0.74649464155061, 0.12144893606462},
-{-0.74774595569805, -0.26898062008959}, { 0.95781667469567, -0.79047927052628},
-{ 0.95472308713099, -0.08588776019550}, { 0.48708332746299, 0.99999041579432},
-{ 0.46332038247497, 0.10964126185063}, {-0.76497004940162, 0.89210929242238},
-{ 0.57397389364339, 0.35289703373760}, { 0.75374316974495, 0.96705214651335},
-{-0.59174397685714, -0.89405370422752}, { 0.75087906691890, -0.29612672982396},
-{-0.98607857336230, 0.25034911730023}, {-0.40761056640505, -0.90045573444695},
-{ 0.66929266740477, 0.98629493401748}, {-0.97463695257310, -0.00190223301301},
-{ 0.90145509409859, 0.99781390365446}, {-0.87259289048043, 0.99233587353666},
-{-0.91529461447692, -0.15698707534206}, {-0.03305738840705, -0.37205262859764},
-{ 0.07223051368337, -0.88805001733626}, { 0.99498012188353, 0.97094358113387},
-{-0.74904939500519, 0.99985483641521}, { 0.04585228574211, 0.99812337444082},
-{-0.89054954257993, -0.31791913188064}, {-0.83782144651251, 0.97637632547466},
-{ 0.33454804933804, -0.86231516800408}, {-0.99707579362824, 0.93237990079441},
-{-0.22827527843994, 0.18874759397997}, { 0.67248046289143, -0.03646211390569},
-{-0.05146538187944, -0.92599700120679}, { 0.99947295749905, 0.93625229707912},
-{ 0.66951124390363, 0.98905825623893}, {-0.99602956559179, -0.44654715757688},
-{ 0.82104905483590, 0.99540741724928}, { 0.99186510988782, 0.72023001312947},
-{-0.65284592392918, 0.52186723253637}, { 0.93885443798188, -0.74895312615259},
-{ 0.96735248738388, 0.90891816978629}, {-0.22225968841114, 0.57124029781228},
-{-0.44132783753414, -0.92688840659280}, {-0.85694974219574, 0.88844532719844},
-{ 0.91783042091762, -0.46356892383970}, { 0.72556974415690, -0.99899555770747},
-{-0.99711581834508, 0.58211560180426}, { 0.77638976371966, 0.94321834873819},
-{ 0.07717324253925, 0.58638399856595}, {-0.56049829194163, 0.82522301569036},
-{ 0.98398893639988, 0.39467440420569}, { 0.47546946844938, 0.68613044836811},
-{ 0.65675089314631, 0.18331637134880}, { 0.03273375457980, -0.74933109564108},
-{-0.38684144784738, 0.51337349030406}, {-0.97346267944545, -0.96549364384098},
-{-0.53282156061942, -0.91423265091354}, { 0.99817310731176, 0.61133572482148},
-{-0.50254500772635, -0.88829338134294}, { 0.01995873238855, 0.85223515096765},
-{ 0.99930381973804, 0.94578896296649}, { 0.82907767600783, -0.06323442598128},
-{-0.58660709669728, 0.96840773806582}, {-0.17573736667267, -0.48166920859485},
-{ 0.83434292401346, -0.13023450646997}, { 0.05946491307025, 0.20511047074866},
-{ 0.81505484574602, -0.94685947861369}, {-0.44976380954860, 0.40894572671545},
-{-0.89746474625671, 0.99846578838537}, { 0.39677256130792, -0.74854668609359},
-{-0.07588948563079, 0.74096214084170}, { 0.76343198951445, 0.41746629422634},
-{-0.74490104699626, 0.94725911744610}, { 0.64880119792759, 0.41336660830571},
-{ 0.62319537462542, -0.93098313552599}, { 0.42215817594807, -0.07712787385208},
-{ 0.02704554141885, -0.05417518053666}, { 0.80001773566818, 0.91542195141039},
-{-0.79351832348816, -0.36208897989136}, { 0.63872359151636, 0.08128252493444},
-{ 0.52890520960295, 0.60048872455592}, { 0.74238552914587, 0.04491915291044},
-{ 0.99096131449250, -0.19451182854402}, {-0.80412329643109, -0.88513818199457},
-{-0.64612616129736, 0.72198674804544}, { 0.11657770663191, -0.83662833815041},
-{-0.95053182488101, -0.96939905138082}, {-0.62228872928622, 0.82767262846661},
-{ 0.03004475787316, -0.99738896333384}, {-0.97987214341034, 0.36526129686425},
-{-0.99986980746200, -0.36021610299715}, { 0.89110648599879, -0.97894250343044},
-{ 0.10407960510582, 0.77357793811619}, { 0.95964737821728, -0.35435818285502},
-{ 0.50843233159162, 0.96107691266205}, { 0.17006334670615, -0.76854025314829},
-{ 0.25872675063360, 0.99893303933816}, {-0.01115998681937, 0.98496019742444},
-{-0.79598702973261, 0.97138411318894}, {-0.99264708948101, -0.99542822402536},
-{-0.99829663752818, 0.01877138824311}, {-0.70801016548184, 0.33680685948117},
-{-0.70467057786826, 0.93272777501857}, { 0.99846021905254, -0.98725746254433},
-{-0.63364968534650, -0.16473594423746}, {-0.16258217500792, -0.95939125400802},
-{-0.43645594360633, -0.94805030113284}, {-0.99848471702976, 0.96245166923809},
-{-0.16796458968998, -0.98987511890470}, {-0.87979225745213, -0.71725725041680},
-{ 0.44183099021786, -0.93568974498761}, { 0.93310180125532, -0.99913308068246},
-{-0.93941931782002, -0.56409379640356}, {-0.88590003188677, 0.47624600491382},
-{ 0.99971463703691, -0.83889954253462}, {-0.75376385639978, 0.00814643438625},
-{ 0.93887685615875, -0.11284528204636}, { 0.85126435782309, 0.52349251543547},
-{ 0.39701421446381, 0.81779634174316}, {-0.37024464187437, -0.87071656222959},
-{-0.36024828242896, 0.34655735648287}, {-0.93388812549209, -0.84476541096429},
-{-0.65298804552119, -0.18439575450921}, { 0.11960319006843, 0.99899346780168},
-{ 0.94292565553160, 0.83163906518293}, { 0.75081145286948, -0.35533223142265},
-{ 0.56721979748394, -0.24076836414499}, { 0.46857766746029, -0.30140233457198},
-{ 0.97312313923635, -0.99548191630031}, {-0.38299976567017, 0.98516909715427},
-{ 0.41025800019463, 0.02116736935734}, { 0.09638062008048, 0.04411984381457},
-{-0.85283249275397, 0.91475563922421}, { 0.88866808958124, -0.99735267083226},
-{-0.48202429536989, -0.96805608884164}, { 0.27572582416567, 0.58634753335832},
-{-0.65889129659168, 0.58835634138583}, { 0.98838086953732, 0.99994349600236},
-{-0.20651349620689, 0.54593044066355}, {-0.62126416356920, -0.59893681700392},
-{ 0.20320105410437, -0.86879180355289}, {-0.97790548600584, 0.96290806999242},
-{ 0.11112534735126, 0.21484763313301}, {-0.41368337314182, 0.28216837680365},
-{ 0.24133038992960, 0.51294362630238}, {-0.66393410674885, -0.08249679629081},
-{-0.53697829178752, -0.97649903936228}, {-0.97224737889348, 0.22081333579837},
-{ 0.87392477144549, -0.12796173740361}, { 0.19050361015753, 0.01602615387195},
-{-0.46353441212724, -0.95249041539006}, {-0.07064096339021, -0.94479803205886},
-{-0.92444085484466, -0.10457590187436}, {-0.83822593578728, -0.01695043208885},
-{ 0.75214681811150, -0.99955681042665}, {-0.42102998829339, 0.99720941999394},
-{-0.72094786237696, -0.35008961934255}, { 0.78843311019251, 0.52851398958271},
-{ 0.97394027897442, -0.26695944086561}, { 0.99206463477946, -0.57010120849429},
-{ 0.76789609461795, -0.76519356730966}, {-0.82002421836409, -0.73530179553767},
-{ 0.81924990025724, 0.99698425250579}, {-0.26719850873357, 0.68903369776193},
-{-0.43311260380975, 0.85321815947490}, { 0.99194979673836, 0.91876249766422},
-{-0.80692001248487, -0.32627540663214}, { 0.43080003649976, -0.21919095636638},
-{ 0.67709491937357, -0.95478075822906}, { 0.56151770568316, -0.70693811747778},
-{ 0.10831862810749, -0.08628837174592}, { 0.91229417540436, -0.65987351408410},
-{-0.48972893932274, 0.56289246362686}, {-0.89033658689697, -0.71656563987082},
-{ 0.65269447475094, 0.65916004833932}, { 0.67439478141121, -0.81684380846796},
-{-0.47770832416973, -0.16789556203025}, {-0.99715979260878, -0.93565784007648},
-{-0.90889593602546, 0.62034397054380}, {-0.06618622548177, -0.23812217221359},
-{ 0.99430266919728, 0.18812555317553}, { 0.97686402381843, -0.28664534366620},
-{ 0.94813650221268, -0.97506640027128}, {-0.95434497492853, -0.79607978501983},
-{-0.49104783137150, 0.32895214359663}, { 0.99881175120751, 0.88993983831354},
-{ 0.50449166760303, -0.85995072408434}, { 0.47162891065108, -0.18680204049569},
-{-0.62081581361840, 0.75000676218956}, {-0.43867015250812, 0.99998069244322},
-{ 0.98630563232075, -0.53578899600662}, {-0.61510362277374, -0.89515019899997},
-{-0.03841517601843, -0.69888815681179}, {-0.30102157304644, -0.07667808922205},
-{ 0.41881284182683, 0.02188098922282}, {-0.86135454941237, 0.98947480909359},
-{ 0.67226861393788, -0.13494389011014}, {-0.70737398842068, -0.76547349325992},
-{ 0.94044946687963, 0.09026201157416}, {-0.82386352534327, 0.08924768823676},
-{-0.32070666698656, 0.50143421908753}, { 0.57593163224487, -0.98966422921509},
-{-0.36326018419965, 0.07440243123228}, { 0.99979044674350, -0.14130287347405},
-{-0.92366023326932, -0.97979298068180}, {-0.44607178518598, -0.54233252016394},
-{ 0.44226800932956, 0.71326756742752}, { 0.03671907158312, 0.63606389366675},
-{ 0.52175424682195, -0.85396826735705}, {-0.94701139690956, -0.01826348194255},
-{-0.98759606946049, 0.82288714303073}, { 0.87434794743625, 0.89399495655433},
-{-0.93412041758744, 0.41374052024363}, { 0.96063943315511, 0.93116709541280},
-{ 0.97534253457837, 0.86150930812689}, { 0.99642466504163, 0.70190043427512},
-{-0.94705089665984, -0.29580042814306}, { 0.91599807087376, -0.98147830385781},
-};
-
-#endif /* AVCODEC_AACSBRDATA_H */
+++ /dev/null
-/*
- * AAC data declarations
- * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
- * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAC data declarations
- * @author Oded Shimon ( ods15 ods15 dyndns org )
- * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
- */
-
-#ifndef AVCODEC_AACTAB_H
-#define AVCODEC_AACTAB_H
-
-#include "libavutil/mem.h"
-#include "aac.h"
-
-#include <stdint.h>
-
-/* NOTE:
- * Tables in this file are used by the AAC decoder and will be used by the AAC
- * encoder.
- */
-
-/* @name window coefficients
- * @{
- */
-DECLARE_ALIGNED(16, extern float, ff_aac_kbd_long_1024)[1024];
-DECLARE_ALIGNED(16, extern float, ff_aac_kbd_short_128)[128];
-// @}
-
-/* @name number of scalefactor window bands for long and short transform windows respectively
- * @{
- */
-extern const uint8_t ff_aac_num_swb_1024[];
-extern const uint8_t ff_aac_num_swb_128 [];
-// @}
-
-extern const uint8_t ff_aac_pred_sfb_max [];
-
-extern const uint32_t ff_aac_scalefactor_code[121];
-extern const uint8_t ff_aac_scalefactor_bits[121];
-
-extern const uint16_t * const ff_aac_spectral_codes[11];
-extern const uint8_t * const ff_aac_spectral_bits [11];
-extern const uint16_t ff_aac_spectral_sizes[11];
-
-extern const float *ff_aac_codebook_vectors[];
-extern const float *ff_aac_codebook_vector_vals[];
-extern const uint16_t *ff_aac_codebook_vector_idx[];
-
-extern const uint16_t * const ff_swb_offset_1024[13];
-extern const uint16_t * const ff_swb_offset_128 [13];
-
-extern const uint8_t ff_tns_max_bands_1024[13];
-extern const uint8_t ff_tns_max_bands_128 [13];
-
-#if CONFIG_HARDCODED_TABLES
-extern const float ff_aac_pow2sf_tab[428];
-#else
-extern float ff_aac_pow2sf_tab[428];
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* AVCODEC_AACTAB_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * AAN (Arai Agui Nakajima) (I)DCT tables
- */
-
-#ifndef AVCODEC_AANDCTTAB_H
-#define AVCODEC_AANDCTTAB_H
-
-#include <stdint.h>
-
-extern const uint16_t ff_aanscales[64];
-extern const uint16_t ff_inv_aanscales[64];
-
-#endif /* AVCODEC_AANDCTTAB_H */
+++ /dev/null
-/*
- * Common code between the AC-3 encoder and decoder
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Common code between the AC-3 encoder and decoder.
- */
-
-#ifndef AVCODEC_AC3_H
-#define AVCODEC_AC3_H
-
-#include "ac3tab.h"
-
-#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
-#define AC3_MAX_CHANNELS 6 /* including LFE channel */
-
-#define NB_BLOCKS 6 /* number of PCM blocks inside an AC-3 frame */
-#define AC3_FRAME_SIZE (NB_BLOCKS * 256)
-
-/* exponent encoding strategy */
-#define EXP_REUSE 0
-#define EXP_NEW 1
-
-#define EXP_D15 1
-#define EXP_D25 2
-#define EXP_D45 3
-
-/** Delta bit allocation strategy */
-typedef enum {
- DBA_REUSE = 0,
- DBA_NEW,
- DBA_NONE,
- DBA_RESERVED
-} AC3DeltaStrategy;
-
-/** Channel mode (audio coding mode) */
-typedef enum {
- AC3_CHMODE_DUALMONO = 0,
- AC3_CHMODE_MONO,
- AC3_CHMODE_STEREO,
- AC3_CHMODE_3F,
- AC3_CHMODE_2F1R,
- AC3_CHMODE_3F1R,
- AC3_CHMODE_2F2R,
- AC3_CHMODE_3F2R
-} AC3ChannelMode;
-
-typedef struct AC3BitAllocParameters {
- int sr_code;
- int sr_shift;
- int slow_gain, slow_decay, fast_decay, db_per_bit, floor;
- int cpl_fast_leak, cpl_slow_leak;
-} AC3BitAllocParameters;
-
-/**
- * @struct AC3HeaderInfo
- * Coded AC-3 header values up to the lfeon element, plus derived values.
- */
-typedef struct {
- /** @defgroup coded Coded elements
- * @{
- */
- uint16_t sync_word;
- uint16_t crc1;
- uint8_t sr_code;
- uint8_t bitstream_id;
- uint8_t channel_mode;
- uint8_t lfe_on;
- uint8_t frame_type;
- int substreamid; ///< substream identification
- int center_mix_level; ///< Center mix level index
- int surround_mix_level; ///< Surround mix level index
- uint16_t channel_map;
- int num_blocks; ///< number of audio blocks
- /** @} */
-
- /** @defgroup derived Derived values
- * @{
- */
- uint8_t sr_shift;
- uint16_t sample_rate;
- uint32_t bit_rate;
- uint8_t channels;
- uint16_t frame_size;
- int64_t channel_layout;
- /** @} */
-} AC3HeaderInfo;
-
-typedef enum {
- EAC3_FRAME_TYPE_INDEPENDENT = 0,
- EAC3_FRAME_TYPE_DEPENDENT,
- EAC3_FRAME_TYPE_AC3_CONVERT,
- EAC3_FRAME_TYPE_RESERVED
-} EAC3FrameType;
-
-void ac3_common_init(void);
-
-/**
- * Calculates the log power-spectral density of the input signal.
- * This gives a rough estimate of signal power in the frequency domain by using
- * the spectral envelope (exponents). The psd is also separately grouped
- * into critical bands for use in the calculating the masking curve.
- * 128 units in psd = -6 dB. The dbknee parameter in AC3BitAllocParameters
- * determines the reference level.
- *
- * @param[in] exp frequency coefficient exponents
- * @param[in] start starting bin location
- * @param[in] end ending bin location
- * @param[out] psd signal power for each frequency bin
- * @param[out] band_psd signal power for each critical band
- */
-void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,
- int16_t *band_psd);
-
-/**
- * Calculates the masking curve.
- * First, the excitation is calculated using parameters in s and the signal
- * power in each critical band. The excitation is compared with a predefined
- * hearing threshold table to produce the masking curve. If delta bit
- * allocation information is provided, it is used for adjusting the masking
- * curve, usually to give a closer match to a better psychoacoustic model.
- *
- * @param[in] s adjustable bit allocation parameters
- * @param[in] band_psd signal power for each critical band
- * @param[in] start starting bin location
- * @param[in] end ending bin location
- * @param[in] fast_gain fast gain (estimated signal-to-mask ratio)
- * @param[in] is_lfe whether or not the channel being processed is the LFE
- * @param[in] dba_mode delta bit allocation mode (none, reuse, or new)
- * @param[in] dba_nsegs number of delta segments
- * @param[in] dba_offsets location offsets for each segment
- * @param[in] dba_lengths length of each segment
- * @param[in] dba_values delta bit allocation for each segment
- * @param[out] mask calculated masking curve
- * @return returns 0 for success, non-zero for error
- */
-int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd,
- int start, int end, int fast_gain, int is_lfe,
- int dba_mode, int dba_nsegs, uint8_t *dba_offsets,
- uint8_t *dba_lengths, uint8_t *dba_values,
- int16_t *mask);
-
-/**
- * Calculates bit allocation pointers.
- * The SNR is the difference between the masking curve and the signal. AC-3
- * uses this value for each frequency bin to allocate bits. The snroffset
- * parameter is a global adjustment to the SNR for all bins.
- *
- * @param[in] mask masking curve
- * @param[in] psd signal power for each frequency bin
- * @param[in] start starting bin location
- * @param[in] end ending bin location
- * @param[in] snr_offset SNR adjustment
- * @param[in] floor noise floor
- * @param[in] bap_tab look-up table for bit allocation pointers
- * @param[out] bap bit allocation pointers
- */
-void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end,
- int snr_offset, int floor,
- const uint8_t *bap_tab, uint8_t *bap);
-
-void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap,
- int8_t *exp, int start, int end,
- int snr_offset, int fast_gain, int is_lfe,
- int dba_mode, int dba_nsegs,
- uint8_t *dba_offsets, uint8_t *dba_lengths,
- uint8_t *dba_values);
-
-#endif /* AVCODEC_AC3_H */
+++ /dev/null
-/*
- * AC-3 parser prototypes
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2003 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AC3_PARSER_H
-#define AVCODEC_AC3_PARSER_H
-
-#include "ac3.h"
-#include "get_bits.h"
-
-/**
- * Parses AC-3 frame header.
- * Parses the header up to the lfeon element, which is the first 52 or 54 bits
- * depending on the audio coding mode.
- * @param gbc[in] BitContext containing the first 54 bits of the frame.
- * @param hdr[out] Pointer to struct where header info is written.
- * @return Returns 0 on success, -1 if there is a sync word mismatch,
- * -2 if the bsid (version) element is invalid, -3 if the fscod (sample rate)
- * element is invalid, or -4 if the frmsizecod (bit rate) element is invalid.
- */
-int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr);
-
-/**
- * Parses AC-3 frame header and sets channel_map
- * Parses the header up to the lfeon (channel_map in E-AC-3)
- * element, which is the first 52, 54 or 104 bits depending
- * on the audio coding mode.
- * @param gbc[in] BitContext containing the first 54 bits of the frame.
- * @param hdr[out] Pointer to struct where header info is written.
- * @return value returned by ff_ac3_parse_header
- */
-int ff_ac3_parse_header_full(GetBitContext *gbc, AC3HeaderInfo *hdr);
-
-#endif /* AVCODEC_AC3_PARSER_H */
+++ /dev/null
-/*
- * Common code between the AC-3 and E-AC-3 decoders
- * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Common code between the AC-3 and E-AC-3 decoders.
- *
- * Summary of MDCT Coefficient Grouping:
- * The individual MDCT coefficient indices are often referred to in the
- * (E-)AC-3 specification as frequency bins. These bins are grouped together
- * into subbands of 12 coefficients each. The subbands are grouped together
- * into bands as defined in the bitstream by the band structures, which
- * determine the number of bands and the size of each band. The full spectrum
- * of 256 frequency bins is divided into 1 DC bin + 21 subbands = 253 bins.
- * This system of grouping coefficients is used for channel bandwidth, stereo
- * rematrixing, channel coupling, enhanced coupling, and spectral extension.
- *
- * +-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-+
- * |1| |12| | [12|12|12|12] | | | | | | | | | | | | |3|
- * +-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-+
- * ~~~ ~~~~ ~~~~~~~~~~~~~ ~~~
- * | | | |
- * | | | 3 unused frequency bins--+
- * | | |
- * | | +--1 band containing 4 subbands
- * | |
- * | +--1 subband of 12 frequency bins
- * |
- * +--DC frequency bin
- */
-
-#ifndef AVCODEC_AC3DEC_H
-#define AVCODEC_AC3DEC_H
-
-#include "libavutil/lfg.h"
-#include "ac3.h"
-#include "get_bits.h"
-#include "dsputil.h"
-#include "fft.h"
-
-/* override ac3.h to include coupling channel */
-#undef AC3_MAX_CHANNELS
-#define AC3_MAX_CHANNELS 7
-#define CPL_CH 0
-
-#define AC3_OUTPUT_LFEON 8
-
-#define AC3_MAX_COEFS 256
-#define AC3_BLOCK_SIZE 256
-#define MAX_BLOCKS 6
-#define SPX_MAX_BANDS 17
-
-typedef struct {
- AVCodecContext *avctx; ///< parent context
- GetBitContext gbc; ///< bitstream reader
- uint8_t *input_buffer; ///< temp buffer to prevent overread
-
-///@defgroup bsi bit stream information
-///@{
- int frame_type; ///< frame type (strmtyp)
- int substreamid; ///< substream identification
- int frame_size; ///< current frame size, in bytes
- int bit_rate; ///< stream bit rate, in bits-per-second
- int sample_rate; ///< sample frequency, in Hz
- int num_blocks; ///< number of audio blocks
- int channel_mode; ///< channel mode (acmod)
- int channel_layout; ///< channel layout
- int lfe_on; ///< lfe channel in use
- int channel_map; ///< custom channel map
- int center_mix_level; ///< Center mix level index
- int surround_mix_level; ///< Surround mix level index
- int eac3; ///< indicates if current frame is E-AC-3
-///@}
-
-///@defgroup audfrm frame syntax parameters
- int snr_offset_strategy; ///< SNR offset strategy (snroffststr)
- int block_switch_syntax; ///< block switch syntax enabled (blkswe)
- int dither_flag_syntax; ///< dither flag syntax enabled (dithflage)
- int bit_allocation_syntax; ///< bit allocation model syntax enabled (bamode)
- int fast_gain_syntax; ///< fast gain codes enabled (frmfgaincode)
- int dba_syntax; ///< delta bit allocation syntax enabled (dbaflde)
- int skip_syntax; ///< skip field syntax enabled (skipflde)
- ///@}
-
-///@defgroup cpl standard coupling
- int cpl_in_use[MAX_BLOCKS]; ///< coupling in use (cplinu)
- int cpl_strategy_exists[MAX_BLOCKS]; ///< coupling strategy exists (cplstre)
- int channel_in_cpl[AC3_MAX_CHANNELS]; ///< channel in coupling (chincpl)
- int phase_flags_in_use; ///< phase flags in use (phsflginu)
- int phase_flags[18]; ///< phase flags (phsflg)
- int num_cpl_bands; ///< number of coupling bands (ncplbnd)
- uint8_t cpl_band_sizes[18]; ///< number of coeffs in each coupling band
- int firstchincpl; ///< first channel in coupling
- int first_cpl_coords[AC3_MAX_CHANNELS]; ///< first coupling coordinates states (firstcplcos)
- int cpl_coords[AC3_MAX_CHANNELS][18]; ///< coupling coordinates (cplco)
-///@}
-
-///@defgroup spx spectral extension
-///@{
- int spx_in_use; ///< spectral extension in use (spxinu)
- uint8_t channel_uses_spx[AC3_MAX_CHANNELS]; ///< channel uses spectral extension (chinspx)
- int8_t spx_atten_code[AC3_MAX_CHANNELS]; ///< spx attenuation code (spxattencod)
- int spx_src_start_freq; ///< spx start frequency bin
- int spx_dst_end_freq; ///< spx end frequency bin
- int spx_dst_start_freq; ///< spx starting frequency bin for copying (copystartmant)
- ///< the copy region ends at the start of the spx region.
- int num_spx_bands; ///< number of spx bands (nspxbnds)
- uint8_t spx_band_sizes[SPX_MAX_BANDS]; ///< number of bins in each spx band
- uint8_t first_spx_coords[AC3_MAX_CHANNELS]; ///< first spx coordinates states (firstspxcos)
- float spx_noise_blend[AC3_MAX_CHANNELS][SPX_MAX_BANDS]; ///< spx noise blending factor (nblendfact)
- float spx_signal_blend[AC3_MAX_CHANNELS][SPX_MAX_BANDS];///< spx signal blending factor (sblendfact)
-///@}
-
-///@defgroup aht adaptive hybrid transform
- int channel_uses_aht[AC3_MAX_CHANNELS]; ///< channel AHT in use (chahtinu)
- int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][MAX_BLOCKS]; ///< pre-IDCT mantissas
-///@}
-
-///@defgroup channel channel
- int fbw_channels; ///< number of full-bandwidth channels
- int channels; ///< number of total channels
- int lfe_ch; ///< index of LFE channel
- float downmix_coeffs[AC3_MAX_CHANNELS][2]; ///< stereo downmix coefficients
- int downmixed; ///< indicates if coeffs are currently downmixed
- int output_mode; ///< output channel configuration
- int out_channels; ///< number of output channels
-///@}
-
-///@defgroup dynrng dynamic range
- float dynamic_range[2]; ///< dynamic range
-///@}
-
-///@defgroup bandwidth bandwidth
- int start_freq[AC3_MAX_CHANNELS]; ///< start frequency bin (strtmant)
- int end_freq[AC3_MAX_CHANNELS]; ///< end frequency bin (endmant)
-///@}
-
-///@defgroup rematrixing rematrixing
- int num_rematrixing_bands; ///< number of rematrixing bands (nrematbnd)
- int rematrixing_flags[4]; ///< rematrixing flags (rematflg)
-///@}
-
-///@defgroup exponents exponents
- int num_exp_groups[AC3_MAX_CHANNELS]; ///< Number of exponent groups (nexpgrp)
- int8_t dexps[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< decoded exponents
- int exp_strategy[MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies (expstr)
-///@}
-
-///@defgroup bitalloc bit allocation
- AC3BitAllocParameters bit_alloc_params; ///< bit allocation parameters
- int first_cpl_leak; ///< first coupling leak state (firstcplleak)
- int snr_offset[AC3_MAX_CHANNELS]; ///< signal-to-noise ratio offsets (snroffst)
- int fast_gain[AC3_MAX_CHANNELS]; ///< fast gain values/SMR's (fgain)
- uint8_t bap[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< bit allocation pointers
- int16_t psd[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< scaled exponents
- int16_t band_psd[AC3_MAX_CHANNELS][50]; ///< interpolated exponents
- int16_t mask[AC3_MAX_CHANNELS][50]; ///< masking curve values
- int dba_mode[AC3_MAX_CHANNELS]; ///< delta bit allocation mode
- int dba_nsegs[AC3_MAX_CHANNELS]; ///< number of delta segments
- uint8_t dba_offsets[AC3_MAX_CHANNELS][8]; ///< delta segment offsets
- uint8_t dba_lengths[AC3_MAX_CHANNELS][8]; ///< delta segment lengths
- uint8_t dba_values[AC3_MAX_CHANNELS][8]; ///< delta values for each segment
-///@}
-
-///@defgroup dithering zero-mantissa dithering
- int dither_flag[AC3_MAX_CHANNELS]; ///< dither flags (dithflg)
- AVLFG dith_state; ///< for dither generation
-///@}
-
-///@defgroup imdct IMDCT
- int block_switch[AC3_MAX_CHANNELS]; ///< block switch flags (blksw)
- FFTContext imdct_512; ///< for 512 sample IMDCT
- FFTContext imdct_256; ///< for 256 sample IMDCT
-///@}
-
-///@defgroup opt optimization
- DSPContext dsp; ///< for optimization
- float add_bias; ///< offset for float_to_int16 conversion
- float mul_bias; ///< scaling for float_to_int16 conversion
-///@}
-
-///@defgroup arrays aligned arrays
- DECLARE_ALIGNED(16, int, fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///> fixed-point transform coefficients
- DECLARE_ALIGNED(16, float, transform_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< transform coefficients
- DECLARE_ALIGNED(16, float, delay)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< delay - added to the next block
- DECLARE_ALIGNED(16, float, window)[AC3_BLOCK_SIZE]; ///< window coefficients
- DECLARE_ALIGNED(16, float, tmp_output)[AC3_BLOCK_SIZE]; ///< temporary storage for output before windowing
- DECLARE_ALIGNED(16, float, output)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< output after imdct transform and windowing
-///@}
-} AC3DecodeContext;
-
-/**
- * Parse the E-AC-3 frame header.
- * This parses both the bit stream info and audio frame header.
- */
-int ff_eac3_parse_header(AC3DecodeContext *s);
-
-/**
- * Decode mantissas in a single channel for the entire frame.
- * This is used when AHT mode is enabled.
- */
-void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch);
-
-void ff_ac3_downmix_c(float (*samples)[256], float (*matrix)[2],
- int out_ch, int in_ch, int len);
-
-/**
- * Apply spectral extension to each channel by copying lower frequency
- * coefficients to higher frequency bins and applying side information to
- * approximate the original high frequency signal.
- */
-void ff_eac3_apply_spectral_extension(AC3DecodeContext *s);
-
-#endif /* AVCODEC_AC3DEC_H */
+++ /dev/null
-/*
- * AC-3 and E-AC-3 decoder tables
- * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AC3DEC_DATA_H
-#define AVCODEC_AC3DEC_DATA_H
-
-#include <stdint.h>
-
-extern const uint8_t ff_ac3_ungroup_3_in_5_bits_tab[32][3];
-extern const uint8_t ff_ac3_rematrix_band_tab[5];
-
-extern const uint8_t ff_eac3_hebap_tab[64];
-extern const uint8_t ff_eac3_default_cpl_band_struct[18];
-extern const uint8_t ff_eac3_default_spx_band_struct[17];
-
-#endif /* AVCODEC_AC3DEC_DATA_H */
+++ /dev/null
-/*
- * AC-3 tables
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AC3TAB_H
-#define AVCODEC_AC3TAB_H
-
-#include "libavutil/common.h"
-
-extern const uint16_t ff_ac3_frame_size_tab[38][3];
-extern const uint8_t ff_ac3_channels_tab[8];
-extern const uint16_t ff_ac3_channel_layout_tab[8];
-extern const uint8_t ff_ac3_enc_channel_map[8][2][6];
-extern const uint8_t ff_ac3_dec_channel_map[8][2][6];
-extern const uint16_t ff_ac3_sample_rate_tab[3];
-extern const uint16_t ff_ac3_bitrate_tab[19];
-extern const int16_t ff_ac3_window[256];
-extern const uint8_t ff_ac3_log_add_tab[260];
-extern const uint16_t ff_ac3_hearing_threshold_tab[50][3];
-extern const uint8_t ff_ac3_bap_tab[64];
-extern const uint8_t ff_ac3_slow_decay_tab[4];
-extern const uint8_t ff_ac3_fast_decay_tab[4];
-extern const uint16_t ff_ac3_slow_gain_tab[4];
-extern const uint16_t ff_ac3_db_per_bit_tab[4];
-extern const int16_t ff_ac3_floor_tab[8];
-extern const uint16_t ff_ac3_fast_gain_tab[8];
-extern const uint8_t ff_ac3_critical_band_size_tab[50];
-extern const uint16_t ff_eac3_default_chmap[8];
-
-/** Custom channel map locations bitmask
- * Other channels described in documentation:
- * Lc/Rc pair, Lrs/Rrs pair, Ts, Lsd/Rsd pair,
- * Lw/Rw pair, Lvh/Rvh pair, Cvh, Reserved, LFE2
- */
-enum CustomChannelMapLocation{
- AC3_CHMAP_L= 1<<(15-0),
- AC3_CHMAP_C= 1<<(15-1),
- AC3_CHMAP_R= 1<<(15-2),
- AC3_CHMAP_L_SUR= 1<<(15-3),
- AC3_CHMAP_R_SUR = 1<<(15-4),
- AC3_CHMAP_C_SUR= 1<<(15-7),
- AC3_CHMAP_LFE = 1<<(15-15)
-};
-
-#endif /* AVCODEC_AC3TAB_H */
+++ /dev/null
-/*
- * various filters for ACELP-based codecs
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ACELP_FILTERS_H
-#define AVCODEC_ACELP_FILTERS_H
-
-#include <stdint.h>
-
-/**
- * low-pass Finite Impulse Response filter coefficients.
- *
- * Hamming windowed sinc filter with cutoff freq 3/40 of the sampling freq,
- * the coefficients are scaled by 2^15.
- * This array only contains the right half of the filter.
- * This filter is likely identical to the one used in G.729, though this
- * could not be determined from the original comments with certainity.
- */
-extern const int16_t ff_acelp_interp_filter[61];
-
-/**
- * Generic FIR interpolation routine.
- * @param out [out] buffer for interpolated data
- * @param in input data
- * @param filter_coeffs interpolation filter coefficients (0.15)
- * @param precision sub sample factor, that is the precision of the position
- * @param frac_pos fractional part of position [0..precision-1]
- * @param filter_length filter length
- * @param length length of output
- *
- * filter_coeffs contains coefficients of the right half of the symmetric
- * interpolation filter. filter_coeffs[0] should the central (unpaired) coefficient.
- * See ff_acelp_interp_filter for an example.
- *
- */
-void ff_acelp_interpolate(int16_t* out, const int16_t* in,
- const int16_t* filter_coeffs, int precision,
- int frac_pos, int filter_length, int length);
-
-/**
- * Floating point version of ff_acelp_interpolate()
- */
-void ff_acelp_interpolatef(float *out, const float *in,
- const float *filter_coeffs, int precision,
- int frac_pos, int filter_length, int length);
-
-
-/**
- * high-pass filtering and upscaling (4.2.5 of G.729).
- * @param out [out] output buffer for filtered speech data
- * @param hpf_f [in/out] past filtered data from previous (2 items long)
- * frames (-0x20000000 <= (14.13) < 0x20000000)
- * @param in speech data to process
- * @param length input data size
- *
- * out[i] = 0.93980581 * in[i] - 1.8795834 * in[i-1] + 0.93980581 * in[i-2] +
- * 1.9330735 * out[i-1] - 0.93589199 * out[i-2]
- *
- * The filter has a cut-off frequency of 1/80 of the sampling freq
- *
- * @note Two items before the top of the out buffer must contain two items from the
- * tail of the previous subframe.
- *
- * @remark It is safe to pass the same array in in and out parameters.
- *
- * @remark AMR uses mostly the same filter (cut-off frequency 60Hz, same formula,
- * but constants differs in 5th sign after comma). Fortunately in
- * fixed-point all coefficients are the same as in G.729. Thus this
- * routine can be used for the fixed-point AMR decoder, too.
- */
-void ff_acelp_high_pass_filter(int16_t* out, int hpf_f[2],
- const int16_t* in, int length);
-
-/**
- * Apply an order 2 rational transfer function in-place.
- *
- * @param out output buffer for filtered speech samples
- * @param in input buffer containing speech data (may be the same as out)
- * @param zero_coeffs z^-1 and z^-2 coefficients of the numerator
- * @param pole_coeffs z^-1 and z^-2 coefficients of the denominator
- * @param gain scale factor for final output
- * @param mem intermediate values used by filter (should be 0 initially)
- * @param n number of samples
- */
-void ff_acelp_apply_order_2_transfer_function(float *out, const float *in,
- const float zero_coeffs[2],
- const float pole_coeffs[2],
- float gain,
- float mem[2], int n);
-
-/**
- * Apply tilt compensation filter, 1 - tilt * z-1.
- *
- * @param mem pointer to the filter's state (one single float)
- * @param tilt tilt factor
- * @param samples array where the filter is applied
- * @param size the size of the samples array
- */
-void ff_tilt_compensation(float *mem, float tilt, float *samples, int size);
-
-
-#endif /* AVCODEC_ACELP_FILTERS_H */
+++ /dev/null
-/*
- * gain code, gain pitch and pitch delay decoding
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ACELP_PITCH_DELAY_H
-#define AVCODEC_ACELP_PITCH_DELAY_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-#define PITCH_DELAY_MIN 20
-#define PITCH_DELAY_MAX 143
-
-/**
- * \brief Decode pitch delay of the first subframe encoded by 8 bits with 1/3
- * resolution.
- * \param ac_index adaptive codebook index (8 bits)
- *
- * \return pitch delay in 1/3 units
- *
- * Pitch delay is coded:
- * with 1/3 resolution, 19 < pitch_delay < 85
- * integers only, 85 <= pitch_delay <= 143
- */
-int ff_acelp_decode_8bit_to_1st_delay3(int ac_index);
-
-/**
- * \brief Decode pitch delay of the second subframe encoded by 5 or 6 bits
- * with 1/3 precision.
- * \param ac_index adaptive codebook index (5 or 6 bits)
- * \param pitch_delay_min lower bound (integer) of pitch delay interval
- * for second subframe
- *
- * \return pitch delay in 1/3 units
- *
- * Pitch delay is coded:
- * with 1/3 resolution, -6 < pitch_delay - int(prev_pitch_delay) < 5
- *
- * \remark The routine is used in G.729 @8k, AMR @10.2k, AMR @7.95k,
- * AMR @7.4k for the second subframe.
- */
-int ff_acelp_decode_5_6_bit_to_2nd_delay3(
- int ac_index,
- int pitch_delay_min);
-
-/**
- * \brief Decode pitch delay with 1/3 precision.
- * \param ac_index adaptive codebook index (4 bits)
- * \param pitch_delay_min lower bound (integer) of pitch delay interval for
- * second subframe
- *
- * \return pitch delay in 1/3 units
- *
- * Pitch delay is coded:
- * integers only, -6 < pitch_delay - int(prev_pitch_delay) <= -2
- * with 1/3 resolution, -2 < pitch_delay - int(prev_pitch_delay) < 1
- * integers only, 1 <= pitch_delay - int(prev_pitch_delay) < 5
- *
- * \remark The routine is used in G.729 @6.4k, AMR @6.7k, AMR @5.9k,
- * AMR @5.15k, AMR @4.75k for the second subframe.
- */
-int ff_acelp_decode_4bit_to_2nd_delay3(
- int ac_index,
- int pitch_delay_min);
-
-/**
- * \brief Decode pitch delay of the first subframe encoded by 9 bits
- * with 1/6 precision.
- * \param ac_index adaptive codebook index (9 bits)
- * \param pitch_delay_min lower bound (integer) of pitch delay interval for
- * second subframe
- *
- * \return pitch delay in 1/6 units
- *
- * Pitch delay is coded:
- * with 1/6 resolution, 17 < pitch_delay < 95
- * integers only, 95 <= pitch_delay <= 143
- *
- * \remark The routine is used in AMR @12.2k for the first and third subframes.
- */
-int ff_acelp_decode_9bit_to_1st_delay6(int ac_index);
-
-/**
- * \brief Decode pitch delay of the second subframe encoded by 6 bits
- * with 1/6 precision.
- * \param ac_index adaptive codebook index (6 bits)
- * \param pitch_delay_min lower bound (integer) of pitch delay interval for
- * second subframe
- *
- * \return pitch delay in 1/6 units
- *
- * Pitch delay is coded:
- * with 1/6 resolution, -6 < pitch_delay - int(prev_pitch_delay) < 5
- *
- * \remark The routine is used in AMR @12.2k for the second and fourth subframes.
- */
-int ff_acelp_decode_6bit_to_2nd_delay6(
- int ac_index,
- int pitch_delay_min);
-
-/**
- * \brief Update past quantized energies
- * \param quant_energy [in/out] past quantized energies (5.10)
- * \param gain_corr_factor gain correction factor
- * \param log2_ma_pred_order log2() of MA prediction order
- * \param erasure frame erasure flag
- *
- * If frame erasure flag is not equal to zero, memory is updated with
- * averaged energy, attenuated by 4dB:
- * max(avg(quant_energy[i])-4, -14), i=0,ma_pred_order
- *
- * In normal mode memory is updated with
- * Er - Ep = 20 * log10(gain_corr_factor)
- *
- * \remark The routine is used in G.729 and AMR (all modes).
- */
-void ff_acelp_update_past_gain(
- int16_t* quant_energy,
- int gain_corr_factor,
- int log2_ma_pred_order,
- int erasure);
-
-/**
- * \brief Decode the adaptive codebook gain and add
- * correction (4.1.5 and 3.9.1 of G.729).
- * \param dsp initialized dsputil context
- * \param gain_corr_factor gain correction factor (2.13)
- * \param fc_v fixed-codebook vector (2.13)
- * \param mr_energy mean innovation energy and fixed-point correction (7.13)
- * \param quant_energy [in/out] past quantized energies (5.10)
- * \param subframe_size length of subframe
- * \param ma_pred_order MA prediction order
- *
- * \return quantized fixed-codebook gain (14.1)
- *
- * The routine implements equations 69, 66 and 71 of the G.729 specification (3.9.1)
- *
- * Em - mean innovation energy (dB, constant, depends on decoding algorithm)
- * Ep - mean-removed predicted energy (dB)
- * Er - mean-removed innovation energy (dB)
- * Ei - mean energy of the fixed-codebook contribution (dB)
- * N - subframe_size
- * M - MA (Moving Average) prediction order
- * gc - fixed-codebook gain
- * gc_p - predicted fixed-codebook gain
- *
- * Fixed codebook gain is computed using predicted gain gc_p and
- * correction factor gain_corr_factor as shown below:
- *
- * gc = gc_p * gain_corr_factor
- *
- * The predicted fixed codebook gain gc_p is found by predicting
- * the energy of the fixed-codebook contribution from the energy
- * of previous fixed-codebook contributions.
- *
- * mean = 1/N * sum(i,0,N){ fc_v[i] * fc_v[i] }
- *
- * Ei = 10log(mean)
- *
- * Er = 10log(1/N * gc^2 * mean) - Em = 20log(gc) + Ei - Em
- *
- * Replacing Er with Ep and gc with gc_p we will receive:
- *
- * Ep = 10log(1/N * gc_p^2 * mean) - Em = 20log(gc_p) + Ei - Em
- *
- * and from above:
- *
- * gc_p = 10^((Ep - Ei + Em) / 20)
- *
- * Ep is predicted using past energies and prediction coefficients:
- *
- * Ep = sum(i,0,M){ ma_prediction_coeff[i] * quant_energy[i] }
- *
- * gc_p in fixed-point arithmetic is calculated as following:
- *
- * mean = 1/N * sum(i,0,N){ (fc_v[i] / 2^13) * (fc_v[i] / 2^13) } =
- * = 1/N * sum(i,0,N) { fc_v[i] * fc_v[i] } / 2^26
- *
- * Ei = 10log(mean) = -10log(N) - 10log(2^26) +
- * + 10log(sum(i,0,N) { fc_v[i] * fc_v[i] })
- *
- * Ep - Ei + Em = Ep + Em + 10log(N) + 10log(2^26) -
- * - 10log(sum(i,0,N) { fc_v[i] * fc_v[i] }) =
- * = Ep + mr_energy - 10log(sum(i,0,N) { fc_v[i] * fc_v[i] })
- *
- * gc_p = 10 ^ ((Ep - Ei + Em) / 20) =
- * = 2 ^ (3.3219 * (Ep - Ei + Em) / 20) = 2 ^ (0.166 * (Ep - Ei + Em))
- *
- * where
- *
- * mr_energy = Em + 10log(N) + 10log(2^26)
- *
- * \remark The routine is used in G.729 and AMR (all modes).
- */
-int16_t ff_acelp_decode_gain_code(
- DSPContext *dsp,
- int gain_corr_factor,
- const int16_t* fc_v,
- int mr_energy,
- const int16_t* quant_energy,
- const int16_t* ma_prediction_coeff,
- int subframe_size,
- int max_pred_order);
-
-/**
- * Calculate fixed gain (part of section 6.1.3 of AMR spec)
- *
- * @param fixed_gain_factor gain correction factor
- * @param fixed_energy decoded algebraic codebook vector energy
- * @param prediction_error vector of the quantified predictor errors of
- * the four previous subframes. It is updated by this function.
- * @param energy_mean desired mean innovation energy
- * @param pred_table table of four moving average coefficients
- */
-float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
- float *prediction_error, float energy_mean,
- const float *pred_table);
-
-
-/**
- * Decode the adaptive codebook index to the integer and fractional parts
- * of the pitch lag for one subframe at 1/3 fractional precision.
- *
- * The choice of pitch lag is described in 3GPP TS 26.090 section 5.6.1.
- *
- * @param lag_int integer part of pitch lag of the current subframe
- * @param lag_frac fractional part of pitch lag of the current subframe
- * @param pitch_index parsed adaptive codebook (pitch) index
- * @param prev_lag_int integer part of pitch lag for the previous subframe
- * @param subframe current subframe number
- * @param third_as_first treat the third frame the same way as the first
- */
-void ff_decode_pitch_lag(int *lag_int, int *lag_frac, int pitch_index,
- const int prev_lag_int, const int subframe,
- int third_as_first, int resolution);
-
-#endif /* AVCODEC_ACELP_PITCH_DELAY_H */
+++ /dev/null
-/*
- * adaptive and fixed codebook vector operations for ACELP-based codecs
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ACELP_VECTORS_H
-#define AVCODEC_ACELP_VECTORS_H
-
-#include <stdint.h>
-
-/** Sparse representation for the algebraic codebook (fixed) vector */
-typedef struct {
- int n;
- int x[10];
- float y[10];
- int no_repeat_mask;
- int pitch_lag;
- float pitch_fac;
-} AMRFixed;
-
-/**
- * Track|Pulse| Positions
- * -------------------------------------------------------------------------
- * 1 | 0 | 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75
- * -------------------------------------------------------------------------
- * 2 | 1 | 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76
- * -------------------------------------------------------------------------
- * 3 | 2 | 2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67, 72, 77
- * -------------------------------------------------------------------------
- *
- * Table contains only first the pulse indexes.
- *
- * Used in G.729 @8k, G.729 @4.4k, AMR @7.95k, AMR @7.40k
- */
-extern const uint8_t ff_fc_4pulses_8bits_tracks_13[16];
-
-/**
- * Track|Pulse| Positions
- * -------------------------------------------------------------------------
- * 4 | 3 | 3, 8, 13, 18, 23, 28, 33, 38, 43, 48, 53, 58, 63, 68, 73, 78
- * | | 4, 9, 14, 19, 24, 29, 34, 39, 44, 49, 54, 59, 64, 69, 74, 79
- * -------------------------------------------------------------------------
- *
- * @remark Track in the table should be read top-to-bottom, left-to-right.
- *
- * Used in G.729 @8k, G.729 @4.4k, AMR @7.95k, AMR @7.40k
- */
-extern const uint8_t ff_fc_4pulses_8bits_track_4[32];
-
-/**
- * Track|Pulse| Positions
- * -----------------------------------------
- * 1 | 0 | 1, 6, 11, 16, 21, 26, 31, 36
- * | | 3, 8, 13, 18, 23, 28, 33, 38
- * -----------------------------------------
- *
- * @remark Track in the table should be read top-to-bottom, left-to-right.
- *
- * @note (EE) Reference G.729D code also uses gray decoding for each
- * pulse index before looking up the value in the table.
- *
- * Used in G.729 @6.4k (with gray coding), AMR @5.9k (without gray coding)
- */
-extern const uint8_t ff_fc_2pulses_9bits_track1[16];
-extern const uint8_t ff_fc_2pulses_9bits_track1_gray[16];
-
-/**
- * Track|Pulse| Positions
- * -----------------------------------------
- * 2 | 1 | 0, 7, 14, 20, 27, 34, 1, 21
- * | | 2, 9, 15, 22, 29, 35, 6, 26
- * | | 4,10, 17, 24, 30, 37, 11, 31
- * | | 5,12, 19, 25, 32, 39, 16, 36
- * -----------------------------------------
- *
- * @remark Track in the table should be read top-to-bottom, left-to-right.
- *
- * @note (EE.1) This table (from the reference code) does not comply with
- * the specification.
- * The specification contains the following table:
- *
- * Track|Pulse| Positions
- * -----------------------------------------
- * 2 | 1 | 0, 5, 10, 15, 20, 25, 30, 35
- * | | 1, 6, 11, 16, 21, 26, 31, 36
- * | | 2, 7, 12, 17, 22, 27, 32, 37
- * | | 4, 9, 14, 19, 24, 29, 34, 39
- *
- * -----------------------------------------
- *
- * @note (EE.2) Reference G.729D code also uses gray decoding for each
- * pulse index before looking up the value in the table.
- *
- * Used in G.729 @6.4k (with gray coding)
- */
-extern const uint8_t ff_fc_2pulses_9bits_track2_gray[32];
-
-/**
- * b60 hamming windowed sinc function coefficients
- */
-extern const float ff_b60_sinc[61];
-
-/**
- * Table of pow(0.7,n)
- */
-extern const float ff_pow_0_7[10];
-
-/**
- * Table of pow(0.75,n)
- */
-extern const float ff_pow_0_75[10];
-
-/**
- * Table of pow(0.55,n)
- */
-extern const float ff_pow_0_55[10];
-
-/**
- * Decode fixed-codebook vector (3.8 and D.5.8 of G.729, 5.7.1 of AMR).
- * @param fc_v [out] decoded fixed codebook vector (2.13)
- * @param tab1 table used for first pulse_count pulses
- * @param tab2 table used for last pulse
- * @param pulse_indexes fixed codebook indexes
- * @param pulse_signs signs of the excitation pulses (0 bit value
- * means negative sign)
- * @param bits number of bits per one pulse index
- * @param pulse_count number of pulses decoded using first table
- * @param bits length of one pulse index in bits
- *
- * Used in G.729 @8k, G.729 @4.4k, G.729 @6.4k, AMR @7.95k, AMR @7.40k
- */
-void ff_acelp_fc_pulse_per_track(int16_t* fc_v,
- const uint8_t *tab1,
- const uint8_t *tab2,
- int pulse_indexes,
- int pulse_signs,
- int pulse_count,
- int bits);
-
-/**
- * Decode the algebraic codebook index to pulse positions and signs and
- * construct the algebraic codebook vector for MODE_12k2.
- *
- * @note: The positions and signs are explicitly coded in MODE_12k2.
- *
- * @param fixed_index positions of the ten pulses
- * @param fixed_sparse pointer to the algebraic codebook vector
- * @param gray_decode gray decoding table
- * @param half_pulse_count number of couples of pulses
- * @param bits length of one pulse index in bits
- */
-void ff_decode_10_pulses_35bits(const int16_t *fixed_index,
- AMRFixed *fixed_sparse,
- const uint8_t *gray_decode,
- int half_pulse_count, int bits);
-
-
-/**
- * weighted sum of two vectors with rounding.
- * @param out [out] result of addition
- * @param in_a first vector
- * @param in_b second vector
- * @param weight_coeff_a first vector weight coefficient
- * @param weight_coeff_a second vector weight coefficient
- * @param rounder this value will be added to the sum of the two vectors
- * @param shift result will be shifted to right by this value
- * @param length vectors length
- *
- * @note It is safe to pass the same buffer for out and in_a or in_b.
- *
- * out[i] = (in_a[i]*weight_a + in_b[i]*weight_b + rounder) >> shift
- */
-void ff_acelp_weighted_vector_sum(int16_t* out,
- const int16_t *in_a,
- const int16_t *in_b,
- int16_t weight_coeff_a,
- int16_t weight_coeff_b,
- int16_t rounder,
- int shift,
- int length);
-
-/**
- * float implementation of weighted sum of two vectors.
- * @param out [out] result of addition
- * @param in_a first vector
- * @param in_b second vector
- * @param weight_coeff_a first vector weight coefficient
- * @param weight_coeff_a second vector weight coefficient
- * @param length vectors length
- *
- * @note It is safe to pass the same buffer for out and in_a or in_b.
- */
-void ff_weighted_vector_sumf(float *out, const float *in_a, const float *in_b,
- float weight_coeff_a, float weight_coeff_b,
- int length);
-
-/**
- * Adaptive gain control (as used in AMR postfiltering)
- *
- * @param out output buffer for filtered speech data
- * @param in the input speech buffer (may be the same as out)
- * @param speech_energ input energy
- * @param size the input buffer size
- * @param alpha exponential filter factor
- * @param gain_mem a pointer to the filter memory (single float of size)
- */
-void ff_adaptive_gain_control(float *out, const float *in, float speech_energ,
- int size, float alpha, float *gain_mem);
-
-/**
- * Set the sum of squares of a signal by scaling
- *
- * @param out output samples
- * @param in input samples
- * @param sum_of_squares new sum of squares
- * @param n number of samples
- *
- * @note If the input is zero (or its energy underflows), the output is zero.
- * This is the behavior of AGC in the AMR reference decoder. The QCELP
- * reference decoder seems to have undefined behavior.
- *
- * TIA/EIA/IS-733 2.4.8.3-2/3/4/5, 2.4.8.6
- * 3GPP TS 26.090 6.1 (6)
- */
-void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
- float sum_of_squares, const int n);
-
-/**
- * Add fixed vector to an array from a sparse representation
- *
- * @param out fixed vector with pitch sharpening
- * @param in sparse fixed vector
- * @param scale number to multiply the fixed vector by
- * @param size the output vector size
- */
-void ff_set_fixed_vector(float *out, const AMRFixed *in, float scale, int size);
-
-/**
- * Clear array values set by set_fixed_vector
- *
- * @param out fixed vector to be cleared
- * @param in sparse fixed vector
- * @param size the output vector size
- */
-void ff_clear_fixed_vector(float *out, const AMRFixed *in, int size);
-
-#endif /* AVCODEC_ACELP_VECTORS_H */
+++ /dev/null
-/*
- * ADX ADPCM codecs
- * Copyright (c) 2001,2003 BERO
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * SEGA CRI adx codecs.
- *
- * Reference documents:
- * http://ku-www.ss.titech.ac.jp/~yatsushi/adx.html
- * adx2wav & wav2adx http://www.geocities.co.jp/Playtown/2004/
- */
-
-#ifndef AVCODEC_ADX_H
-#define AVCODEC_ADX_H
-
-typedef struct {
- int s1,s2;
-} PREV;
-
-typedef struct {
- PREV prev[2];
- int header_parsed;
- unsigned char dec_temp[18*2];
- int in_temp;
-} ADXContext;
-
-#define BASEVOL 0x4000
-#define SCALE1 0x7298
-#define SCALE2 0x3350
-
-#endif /* AVCODEC_ADX_H */
+++ /dev/null
-/*
- * AMR narrowband data and definitions
- * Copyright (c) 2006-2007 Robert Swain
- * Copyright (c) 2009 Colin McQuillan
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-/**
- * @file
- * AMR narrowband data and definitions
- */
-
-#ifndef AVCODEC_AMRNBDATA_H
-#define AVCODEC_AMRNBDATA_H
-
-#include <stdint.h>
-
-#include "libavutil/common.h" /* offsetof */
-
-#define AMR_SUBFRAME_SIZE 40 ///< samples per subframe
-
-/** Frame type (Table 1a in 3GPP TS 26.101) */
-enum Mode {
- MODE_4k75 = 0, ///< 4.75 kbit/s
- MODE_5k15, ///< 5.15 kbit/s
- MODE_5k9, ///< 5.90 kbit/s
- MODE_6k7, ///< 6.70 kbit/s
- MODE_7k4, ///< 7.40 kbit/s
- MODE_7k95, ///< 7.95 kbit/s
- MODE_10k2, ///< 10.2 kbit/s
- MODE_12k2, ///< 12.2 kbit/s
- MODE_DTX, ///< silent frame
- N_MODES, ///< number of modes
- NO_DATA = 15 ///< no transmission
-};
-
-#define LP_FILTER_ORDER 10 ///< linear predictive coding filter order
-
-/**
- * AMRNB unpacked data subframe
- */
-typedef struct {
- uint16_t p_lag; ///< index to decode the pitch lag
- uint16_t p_gain; ///< index to decode the pitch gain
- uint16_t fixed_gain; ///< index to decode the fixed gain factor, for MODE_12k2 and MODE_7k95
- uint16_t pulses[10]; ///< pulses: 10 for MODE_12k2, 7 for MODE_10k2, and index and sign for others
-} AMRNBSubframe;
-
-/**
- * AMRNB unpacked data frame
- */
-typedef struct {
- uint16_t lsf[5]; ///< lsf parameters: 5 parameters for MODE_12k2, only 3 for other modes
- AMRNBSubframe subframe[4]; ///< unpacked data for each subframe
-} AMRNBFrame;
-
-/** The index of a frame parameter */
-#define AMR_BIT(field) (offsetof(AMRNBFrame, field) >> 1)
-/** The index of a subframe-specific parameter */
-#define AMR_OF(frame_num, variable) AMR_BIT(subframe[frame_num].variable)
-
-// The following order* tables are used to convert AMR frame parameters to and
-// from a bitstream. See 3GPP TS 26.101 for more information.
-// Each field in AMRNBFrame is stored as:
-// * one byte for the number of bits in the field
-// * one byte for the field index
-// * then, one byte for each bit of the field (from most-significant to least)
-// of the position of that bit in the AMR frame.
-static const uint8_t order_MODE_4k75[] = {
- 8, AMR_BIT(lsf[0]), 7, 6, 5, 4, 3, 2, 1, 0,
- 8, AMR_BIT(lsf[1]), 15, 14, 13, 12, 11, 10, 9, 8,
- 7, AMR_BIT(lsf[2]), 51, 35, 34, 50, 33, 49, 32,
- 8, AMR_OF(0,p_lag), 23, 22, 21, 20, 19, 18, 43, 42,
- 8, AMR_OF(0,p_gain), 54, 55, 40, 41, 24, 25, 26, 27,
- 7, AMR_OF(0,pulses[0]), 92, 68, 67, 84, 66, 65, 80,
- 2, AMR_OF(0,pulses[1]), 53, 52,
- 4, AMR_OF(1,p_lag), 17, 16, 48, 63,
- 7, AMR_OF(1,pulses[0]), 91, 64, 79, 83, 78, 77, 95,
- 2, AMR_OF(1,pulses[1]), 62, 61,
- 4, AMR_OF(2,p_lag), 31, 30, 60, 59,
- 8, AMR_OF(2,p_gain), 44, 45, 46, 47, 36, 37, 38, 39,
- 7, AMR_OF(2,pulses[0]), 90, 76, 75, 82, 74, 73, 94,
- 2, AMR_OF(2,pulses[1]), 58, 57,
- 4, AMR_OF(3,p_lag), 29, 28, 56, 71,
- 7, AMR_OF(3,pulses[0]), 89, 72, 87, 81, 86, 85, 93,
- 2, AMR_OF(3,pulses[1]), 70, 69,
- 0
-};
-
-static const uint8_t order_MODE_5k15[] = {
- 8, AMR_BIT(lsf[0]), 0, 1, 2, 3, 4, 5, 6, 7,
- 8, AMR_BIT(lsf[1]), 8, 9, 10, 11, 12, 13, 14, 15,
- 7, AMR_BIT(lsf[2]), 70, 51, 43, 71, 50, 60, 49,
- 8, AMR_OF(0,p_lag), 23, 22, 21, 20, 19, 47, 54, 59,
- 6, AMR_OF(0,p_gain), 48, 42, 35, 29, 30, 31,
- 7, AMR_OF(0,pulses[0]), 92, 84, 82, 100, 79, 72, 88,
- 2, AMR_OF(0,pulses[1]), 67, 68,
- 4, AMR_OF(1,p_lag), 18, 46, 53, 58,
- 6, AMR_OF(1,p_gain), 63, 41, 34, 26, 27, 28,
- 7, AMR_OF(1,pulses[0]), 91, 83, 81, 99, 78, 87, 103,
- 2, AMR_OF(1,pulses[1]), 65, 66,
- 4, AMR_OF(2,p_lag), 17, 45, 52, 57,
- 6, AMR_OF(2,p_gain), 62, 40, 33, 39, 24, 25,
- 7, AMR_OF(2,pulses[0]), 90, 80, 95, 98, 77, 86, 102,
- 2, AMR_OF(2,pulses[1]), 75, 64,
- 4, AMR_OF(3,p_lag), 16, 44, 56, 69,
- 6, AMR_OF(3,p_gain), 61, 55, 32, 36, 37, 38,
- 7, AMR_OF(3,pulses[0]), 89, 94, 93, 97, 76, 85, 101,
- 2, AMR_OF(3,pulses[1]), 73, 74,
- 0
-};
-
-static const uint8_t order_MODE_5k9[] = {
- 8, AMR_BIT(lsf[0]), 7, 6, 0, 3, 5, 4, 2, 1,
- 9, AMR_BIT(lsf[1]), 13, 12, 8, 11, 10, 15, 9, 14, 23,
- 9, AMR_BIT(lsf[2]), 71, 56, 60, 70, 59, 57, 58, 69, 76,
- 8, AMR_OF(0,p_lag), 16, 18, 22, 20, 30, 38, 44, 42,
- 6, AMR_OF(0,p_gain), 75, 48, 52, 40, 34, 26,
- 9, AMR_OF(0,pulses[0]), 101, 89, 93, 117, 105, 81, 85, 109, 97,
- 2, AMR_OF(0,pulses[1]), 67, 78,
- 4, AMR_OF(1,p_lag), 28, 36, 46, 87,
- 6, AMR_OF(1,p_gain), 74, 63, 51, 55, 33, 25,
- 9, AMR_OF(1,pulses[0]), 100, 88, 92, 116, 104, 80, 84, 108, 96,
- 2, AMR_OF(1,pulses[1]), 64, 79,
- 8, AMR_OF(2,p_lag), 31, 17, 21, 19, 29, 37, 43, 41,
- 6, AMR_OF(2,p_gain), 73, 62, 50, 54, 32, 24,
- 9, AMR_OF(2,pulses[0]), 99, 103, 91, 115, 119, 95, 83, 107, 111,
- 2, AMR_OF(2,pulses[1]), 66, 77,
- 4, AMR_OF(3,p_lag), 27, 35, 45, 86,
- 6, AMR_OF(3,p_gain), 72, 61, 49, 53, 47, 39,
- 9, AMR_OF(3,pulses[0]), 98, 102, 90, 114, 118, 94, 82, 106, 110,
- 2, AMR_OF(3,pulses[1]), 65, 68,
- 0
-};
-
-static const uint8_t order_MODE_6k7[] = {
- 8, AMR_BIT(lsf[0]), 7, 6, 15, 4, 5, 3, 2, 0,
- 9, AMR_BIT(lsf[1]), 14, 13, 8, 12, 10, 1, 9, 11, 29,
- 9, AMR_BIT(lsf[2]), 57, 58, 50, 56, 60, 59, 49, 71, 70,
- 8, AMR_OF(0,p_lag), 17, 19, 23, 21, 31, 24, 32, 52,
- 7, AMR_OF(0,p_gain), 36, 82, 69, 46, 42, 48, 77,
- 11, AMR_OF(0,pulses[0]), 109, 97, 133, 121, 101, 89, 125, 113, 93, 117,
- 105,
- 3, AMR_OF(0,pulses[1]), 81, 73, 65,
- 4, AMR_OF(1,p_lag), 28, 26, 38, 54,
- 7, AMR_OF(1,p_gain), 35, 83, 68, 45, 41, 63, 76,
- 11, AMR_OF(1,pulses[0]), 108, 96, 132, 120, 100, 88, 124, 112, 92, 116,
- 104,
- 3, AMR_OF(1,pulses[1]), 80, 72, 64,
- 8, AMR_OF(2,p_lag), 16, 18, 22, 20, 30, 39, 47, 51,
- 7, AMR_OF(2,p_gain), 34, 84, 67, 44, 40, 62, 75,
- 11, AMR_OF(2,pulses[0]), 107, 111, 131, 135, 99, 103, 123, 127, 91, 115,
- 119,
- 3, AMR_OF(2,pulses[1]), 95, 87, 79,
- 4, AMR_OF(3,p_lag), 27, 25, 37, 53,
- 7, AMR_OF(3,p_gain), 33, 85, 66, 43, 55, 61, 74,
- 11, AMR_OF(3,pulses[0]), 106, 110, 130, 134, 98, 102, 122, 126, 90, 114,
- 118,
- 3, AMR_OF(3,pulses[1]), 94, 86, 78,
- 0
-};
-
-static const uint8_t order_MODE_7k4[] = {
- 8, AMR_BIT(lsf[0]), 7, 6, 5, 4, 3, 2, 1, 0,
- 9, AMR_BIT(lsf[1]), 15, 14, 13, 12, 11, 10, 9, 8, 23,
- 9, AMR_BIT(lsf[2]), 53, 52, 51, 58, 40, 55, 54, 57, 56,
- 8, AMR_OF(0,p_lag), 22, 20, 18, 16, 30, 50, 95, 94,
- 7, AMR_OF(0,p_gain), 28, 24, 73, 36, 32, 62, 67,
- 13, AMR_OF(0,pulses[0]), 127, 123, 135, 131, 143, 139, 151, 103, 102, 101,
- 100, 99, 98,
- 4, AMR_OF(0,pulses[1]), 83, 75, 79, 71,
- 5, AMR_OF(1,p_lag), 44, 42, 49, 93, 92,
- 7, AMR_OF(1,p_gain), 27, 39, 72, 35, 47, 61, 66,
- 13, AMR_OF(1,pulses[0]), 126, 122, 134, 130, 142, 138, 150, 97, 96, 111,
- 110, 109, 108,
- 4, AMR_OF(1,pulses[1]), 82, 74, 78, 70,
- 8, AMR_OF(2,p_lag), 21, 19, 17, 31, 29, 48, 91, 90,
- 7, AMR_OF(2,p_gain), 26, 38, 87, 34, 46, 60, 65,
- 13, AMR_OF(2,pulses[0]), 125, 121, 133, 129, 141, 137, 149, 107, 106, 105,
- 104, 119, 118,
- 4, AMR_OF(2,pulses[1]), 81, 85, 77, 69,
- 5, AMR_OF(3,p_lag), 43, 41, 63, 89, 88,
- 7, AMR_OF(3,p_gain), 25, 37, 86, 33, 45, 59, 64,
- 13, AMR_OF(3,pulses[0]), 124, 120, 132, 128, 140, 136, 148, 117, 116, 115,
- 114, 113, 112,
- 4, AMR_OF(3,pulses[1]), 80, 84, 76, 68,
- 0
-};
-
-static const uint8_t order_MODE_7k95[] = {
- 9, AMR_BIT(lsf[0]), 67, 68, 1, 2, 3, 4, 5, 6, 7,
- 9, AMR_BIT(lsf[1]), 14, 13, 9, 12, 11, 0, 10, 15, 8,
- 9, AMR_BIT(lsf[2]), 18, 19, 23, 17, 22, 20, 21, 66, 65,
- 8, AMR_OF(0,p_lag), 44, 42, 40, 54, 52, 56, 64, 78,
- 4, AMR_OF(0,p_gain), 36, 32, 72, 80,
- 5, AMR_OF(0,fixed_gain), 16, 28, 24, 60, 84,
- 13, AMR_OF(0,pulses[0]), 135, 109, 144, 156, 120, 97, 148, 121, 101, 122,
- 123, 89, 124,
- 4, AMR_OF(0,pulses[1]), 125, 126, 127, 112,
- 6, AMR_OF(1,p_lag), 50, 48, 62, 70, 76, 74,
- 4, AMR_OF(1,p_gain), 35, 47, 87, 95,
- 5, AMR_OF(1,fixed_gain), 31, 27, 39, 59, 83,
- 13, AMR_OF(1,pulses[0]), 129, 108, 159, 155, 130, 96, 147, 131, 100, 132,
- 133, 88, 134,
- 4, AMR_OF(1,pulses[1]), 113, 114, 115, 116,
- 8, AMR_OF(2,p_lag), 43, 41, 55, 53, 51, 71, 79, 77,
- 4, AMR_OF(2,p_gain), 34, 46, 86, 94,
- 5, AMR_OF(2,fixed_gain), 30, 26, 38, 58, 82,
- 13, AMR_OF(2,pulses[0]), 139, 107, 158, 154, 140, 111, 146, 141, 99, 142,
- 143, 103, 128,
- 4, AMR_OF(2,pulses[1]), 105, 90, 91, 92,
- 6, AMR_OF(3,p_lag), 49, 63, 61, 69, 75, 73,
- 4, AMR_OF(3,p_gain), 33, 45, 85, 93,
- 5, AMR_OF(3,fixed_gain), 29, 25, 37, 57, 81,
- 13, AMR_OF(3,pulses[0]), 149, 106, 157, 153, 150, 110, 145, 151, 98, 136,
- 137, 102, 138,
- 4, AMR_OF(3,pulses[1]), 117, 118, 119, 104,
- 0
-};
-
-static const uint8_t order_MODE_10k2[] = {
- 8, AMR_BIT(lsf[0]), 0, 1, 2, 3, 4, 5, 6, 7,
- 9, AMR_BIT(lsf[1]), 23, 8, 9, 10, 11, 12, 13, 14, 15,
- 9, AMR_BIT(lsf[2]), 57, 58, 62, 56, 60, 59, 61, 71, 70,
- 8, AMR_OF(0,p_lag), 22, 21, 20, 19, 18, 17, 42, 41,
- 7, AMR_OF(0,p_gain), 38, 50, 84, 37, 36, 85, 83,
- 1, AMR_OF(0,pulses[0]), 66,
- 1, AMR_OF(0,pulses[1]), 67,
- 1, AMR_OF(0,pulses[2]), 68,
- 1, AMR_OF(0,pulses[3]), 69,
- 10, AMR_OF(0,pulses[4]), 145, 144, 156, 153, 154, 163, 161, 192, 206, 195,
- 10, AMR_OF(0,pulses[5]), 158, 159, 157, 152, 155, 165, 160, 205, 204, 194,
- 7, AMR_OF(0,pulses[6]), 167, 166, 162, 164, 196, 207, 193,
- 5, AMR_OF(1,p_lag), 26, 25, 54, 53, 89,
- 7, AMR_OF(1,p_gain), 35, 49, 81, 34, 33, 82, 80,
- 1, AMR_OF(1,pulses[0]), 78,
- 1, AMR_OF(1,pulses[1]), 79,
- 1, AMR_OF(1,pulses[2]), 64,
- 1, AMR_OF(1,pulses[3]), 65,
- 10, AMR_OF(1,pulses[4]), 103, 102, 98, 111, 96, 105, 119, 185, 199, 188,
- 10, AMR_OF(1,pulses[5]), 100, 101, 99, 110, 97, 107, 118, 198, 197, 187,
- 7, AMR_OF(1,pulses[6]), 109, 108, 104, 106, 189, 184, 186,
- 8, AMR_OF(2,p_lag), 16, 31, 30, 29, 28, 27, 40, 55,
- 7, AMR_OF(2,p_gain), 32, 48, 94, 47, 46, 95, 93,
- 1, AMR_OF(2,pulses[0]), 74,
- 1, AMR_OF(2,pulses[1]), 75,
- 1, AMR_OF(2,pulses[2]), 76,
- 1, AMR_OF(2,pulses[3]), 77,
- 10, AMR_OF(2,pulses[4]), 117, 116, 112, 125, 126, 135, 133, 178, 176, 181,
- 10, AMR_OF(2,pulses[5]), 114, 115, 113, 124, 127, 121, 132, 191, 190, 180,
- 7, AMR_OF(2,pulses[6]), 123, 122, 134, 120, 182, 177, 179,
- 5, AMR_OF(3,p_lag), 24, 39, 52, 51, 88,
- 7, AMR_OF(3,p_gain), 45, 63, 91, 44, 43, 92, 90,
- 1, AMR_OF(3,pulses[0]), 86,
- 1, AMR_OF(3,pulses[1]), 87,
- 1, AMR_OF(3,pulses[2]), 72,
- 1, AMR_OF(3,pulses[3]), 73,
- 10, AMR_OF(3,pulses[4]), 131, 130, 142, 139, 140, 149, 147, 171, 169, 174,
- 10, AMR_OF(3,pulses[5]), 128, 129, 143, 138, 141, 151, 146, 168, 183, 173,
- 7, AMR_OF(3,pulses[6]), 137, 136, 148, 150, 175, 170, 172,
- 0
-};
-
-static const uint8_t order_MODE_12k2[] = {
- 7, AMR_BIT(lsf[0]), 7, 6, 5, 4, 3, 2, 1,
- 8, AMR_BIT(lsf[1]), 0, 15, 14, 13, 12, 11, 10, 9,
- 9, AMR_BIT(lsf[2]), 23, 22, 21, 20, 19, 18, 17, 16, 8,
- 8, AMR_BIT(lsf[3]), 31, 30, 29, 28, 27, 86, 85, 84,
- 6, AMR_BIT(lsf[4]), 83, 82, 81, 80, 127, 126,
- 9, AMR_OF(0,p_lag), 26, 24, 38, 36, 34, 32, 46, 44, 42,
- 4, AMR_OF(0,p_gain), 40, 52, 48, 95,
- 5, AMR_OF(0,fixed_gain), 60, 56, 68, 91, 111,
- 3, AMR_OF(0,pulses[0]), 191, 176, 177,
- 4, AMR_OF(0,pulses[1]), 103, 123, 124, 125,
- 3, AMR_OF(0,pulses[2]), 188, 189, 190,
- 4, AMR_OF(0,pulses[3]), 99, 120, 121, 122,
- 3, AMR_OF(0,pulses[4]), 185, 186, 187,
- 4, AMR_OF(0,pulses[5]), 107, 133, 134, 135,
- 3, AMR_OF(0,pulses[6]), 198, 199, 184,
- 4, AMR_OF(0,pulses[7]), 119, 130, 131, 132,
- 3, AMR_OF(0,pulses[8]), 195, 196, 197,
- 4, AMR_OF(0,pulses[9]), 115, 143, 128, 129,
- 6, AMR_OF(1,p_lag), 64, 78, 76, 74, 72, 245,
- 4, AMR_OF(1,p_gain), 55, 51, 63, 94,
- 5, AMR_OF(1,fixed_gain), 59, 71, 67, 90, 110,
- 3, AMR_OF(1,pulses[0]), 192, 193, 194,
- 4, AMR_OF(1,pulses[1]), 102, 140, 141, 142,
- 3, AMR_OF(1,pulses[2]), 205, 206, 207,
- 4, AMR_OF(1,pulses[3]), 98, 137, 138, 139,
- 3, AMR_OF(1,pulses[4]), 202, 203, 204,
- 4, AMR_OF(1,pulses[5]), 106, 150, 151, 136,
- 3, AMR_OF(1,pulses[6]), 215, 200, 201,
- 4, AMR_OF(1,pulses[7]), 118, 147, 148, 149,
- 3, AMR_OF(1,pulses[8]), 212, 213, 214,
- 4, AMR_OF(1,pulses[9]), 114, 144, 145, 146,
- 9, AMR_OF(2,p_lag), 25, 39, 37, 35, 33, 47, 45, 43, 41,
- 4, AMR_OF(2,p_gain), 54, 50, 62, 93,
- 5, AMR_OF(2,fixed_gain), 58, 70, 66, 89, 109,
- 3, AMR_OF(2,pulses[0]), 209, 210, 211,
- 4, AMR_OF(2,pulses[1]), 101, 157, 158, 159,
- 3, AMR_OF(2,pulses[2]), 222, 223, 208,
- 4, AMR_OF(2,pulses[3]), 97, 154, 155, 156,
- 3, AMR_OF(2,pulses[4]), 219, 220, 221,
- 4, AMR_OF(2,pulses[5]), 105, 167, 152, 153,
- 3, AMR_OF(2,pulses[6]), 216, 217, 218,
- 4, AMR_OF(2,pulses[7]), 117, 164, 165, 166,
- 3, AMR_OF(2,pulses[8]), 229, 230, 231,
- 4, AMR_OF(2,pulses[9]), 113, 161, 162, 163,
- 6, AMR_OF(3,p_lag), 79, 77, 75, 73, 87, 244,
- 4, AMR_OF(3,p_gain), 53, 49, 61, 92,
- 5, AMR_OF(3,fixed_gain), 57, 69, 65, 88, 108,
- 3, AMR_OF(3,pulses[0]), 226, 227, 228,
- 4, AMR_OF(3,pulses[1]), 100, 174, 175, 160,
- 3, AMR_OF(3,pulses[2]), 239, 224, 225,
- 4, AMR_OF(3,pulses[3]), 96, 171, 172, 173,
- 3, AMR_OF(3,pulses[4]), 236, 237, 238,
- 4, AMR_OF(3,pulses[5]), 104, 168, 169, 170,
- 3, AMR_OF(3,pulses[6]), 233, 234, 235,
- 4, AMR_OF(3,pulses[7]), 116, 181, 182, 183,
- 3, AMR_OF(3,pulses[8]), 246, 247, 232,
- 4, AMR_OF(3,pulses[9]), 112, 178, 179, 180,
- 0
-};
-
-/**
- * position of the bitmapping data for each packet type in
- * the AMRNBFrame
- */
-static const uint8_t * const amr_unpacking_bitmaps_per_mode[N_MODES] = {
- order_MODE_4k75,
- order_MODE_5k15,
- order_MODE_5k9,
- order_MODE_6k7,
- order_MODE_7k4,
- order_MODE_7k95,
- order_MODE_10k2,
- order_MODE_12k2,
-};
-
-/** number of bytes for each mode */
-static const uint8_t frame_sizes_nb[N_MODES] = {
- 12, 13, 15, 17, 19, 20, 26, 31, 5
-};
-
-/**
- * Base-5 representation for values 0-124
- *
- * This is useful for decoding pulse positions in 10.2 kbit/s frames.
- * Safe values are provided for out of range positions 125-127.
- */
-static const uint8_t base_five_table[128][3] = {
- {0, 0, 0}, {0, 0, 1}, {0, 0, 2}, {0, 0, 3}, {0, 0, 4}, {0, 1, 0}, {0, 1, 1},
- {0, 1, 2}, {0, 1, 3}, {0, 1, 4}, {0, 2, 0}, {0, 2, 1}, {0, 2, 2}, {0, 2, 3},
- {0, 2, 4}, {0, 3, 0}, {0, 3, 1}, {0, 3, 2}, {0, 3, 3}, {0, 3, 4}, {0, 4, 0},
- {0, 4, 1}, {0, 4, 2}, {0, 4, 3}, {0, 4, 4}, {1, 0, 0}, {1, 0, 1}, {1, 0, 2},
- {1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {1, 1, 1}, {1, 1, 2}, {1, 1, 3}, {1, 1, 4},
- {1, 2, 0}, {1, 2, 1}, {1, 2, 2}, {1, 2, 3}, {1, 2, 4}, {1, 3, 0}, {1, 3, 1},
- {1, 3, 2}, {1, 3, 3}, {1, 3, 4}, {1, 4, 0}, {1, 4, 1}, {1, 4, 2}, {1, 4, 3},
- {1, 4, 4}, {2, 0, 0}, {2, 0, 1}, {2, 0, 2}, {2, 0, 3}, {2, 0, 4}, {2, 1, 0},
- {2, 1, 1}, {2, 1, 2}, {2, 1, 3}, {2, 1, 4}, {2, 2, 0}, {2, 2, 1}, {2, 2, 2},
- {2, 2, 3}, {2, 2, 4}, {2, 3, 0}, {2, 3, 1}, {2, 3, 2}, {2, 3, 3}, {2, 3, 4},
- {2, 4, 0}, {2, 4, 1}, {2, 4, 2}, {2, 4, 3}, {2, 4, 4}, {3, 0, 0}, {3, 0, 1},
- {3, 0, 2}, {3, 0, 3}, {3, 0, 4}, {3, 1, 0}, {3, 1, 1}, {3, 1, 2}, {3, 1, 3},
- {3, 1, 4}, {3, 2, 0}, {3, 2, 1}, {3, 2, 2}, {3, 2, 3}, {3, 2, 4}, {3, 3, 0},
- {3, 3, 1}, {3, 3, 2}, {3, 3, 3}, {3, 3, 4}, {3, 4, 0}, {3, 4, 1}, {3, 4, 2},
- {3, 4, 3}, {3, 4, 4}, {4, 0, 0}, {4, 0, 1}, {4, 0, 2}, {4, 0, 3}, {4, 0, 4},
- {4, 1, 0}, {4, 1, 1}, {4, 1, 2}, {4, 1, 3}, {4, 1, 4}, {4, 2, 0}, {4, 2, 1},
- {4, 2, 2}, {4, 2, 3}, {4, 2, 4}, {4, 3, 0}, {4, 3, 1}, {4, 3, 2}, {4, 3, 3},
- {4, 3, 4}, {4, 4, 0}, {4, 4, 1}, {4, 4, 2}, {4, 4, 3}, {4, 4, 4}, {0, 0, 0},
- {0, 0, 0}, {0, 0, 0}
-};
-
-/**
- * Values for the lsp vector from the 4th subframe of the
- * previous subframe values.
- *
- * @note: Taken from Decoder_amr_reset in Q15 using val/1000
- */
-static const int8_t lsp_sub4_init[LP_FILTER_ORDER] = {
- 30, 26, 21, 15, 8, 0, -8, -15, -21, -26
-};
-
-/**
- * Mean lsp values.
- *
- * @note: Taken from Decoder_amr_reset in Q15
- */
-static const int16_t lsp_avg_init[LP_FILTER_ORDER] = {
- 1384, 2077, 3420, 5108, 6742, 8122, 9863, 11092, 12714, 13701
-};
-
-// LSF tables
-
-// These are stored as integers to save space. The values are taken from
-// q_plsf_3.tab and q_plsf_5.tab in 3GPP TS 26.090.
-
-static const int16_t lsf_3_3_MODE_5k15[128][4] = {
-{ 419, 163, -30, -262}, { -455, -789,-1430, -721}, { 1006, 664, 269, 25},
-{ 619, 260, 183, 96}, { -968,-1358, -388, 135}, { -693, 835, 456, 154},
-{ 1105, 703, 569, 363}, { 1625, 1326, 985, 748}, { -220, 219, 76, -208},
-{-1455,-1662, 49, 149}, { -964, -172, -752, -336}, { 625, 209, -250, -66},
-{-1017, -838, -2, 317}, {-2168,-1485, -138, 123}, {-1876,-2099, -521, 85},
-{ -967, -366, -695, -881}, { -921,-1011, -763, -949}, { -124, -256, -352, -660},
-{ 178, 463, 354, 304}, {-1744, -591, -282, 79}, {-2249, 175, 867, 499},
-{ -138, -180, -181, -21}, {-2291,-1241, -460, -520}, { -771, 451, -10, -308},
-{ 271, -65, 4, 214}, { -279, -435, -43, -348}, { -670, 35, -65, -211},
-{ 806, 535, 85, 297}, { 57, 239, 722, 493}, { 225, 661, 840, 547},
-{ -540, -376, 14, 349}, { 469, 721, 331, 162}, { -544, -752, -62, -10},
-{ 398, -88, 724, 701}, { -19, -533, -94, 601}, { 136, -71, -681, -747},
-{ -166, -344, 261, -50}, { 161, -52, 485, 337}, {-1675, 50, 190, -93},
-{-2282, -231, -194, -82}, { -95, -595, -154, 128}, { 894, 501, 588, 457},
-{ -345, 206, 122, 110}, { -631, -227, -569, 3}, { 408, 239, 397, 226},
-{ -197, -2, 128, 491}, { 1281, 904, 292, 215}, { 538, 306, 259, 509},
-{ -677,-1047, 13, 321}, { -679, -588, -358, -212}, { -558, 243, 646, 479},
-{ 486, 342, 634, 532}, { 107, 802, 331, 136}, { -112, -398,-1031, -286},
-{ -326, -705, 288, 272}, { 1299, 1144, 1178, 860}, { -423, 121, -385, -148},
-{ -295, -302, -834, -819}, { 16, -24, -201, -476}, { 555, 91, -245, 294},
-{ -38, -379, -962,-1221}, {-1191,-1518, -273, -395}, { -390,-1013, -645, 573},
-{-1843,-1030, 505, 468}, { 744, 947, 609, 493}, { -689,-1172, -628, -135},
-{-1026, 195, 411, 196}, { 1582, 1147, 575, 337}, {-1239, -777, -648, -142},
-{ 595, 825, 967, 735}, {-1206, -970, -81, -342}, { -745, 13, -72, 375},
-{ 454, 19, 1407, 921}, {-1647, -172, 861, 562}, { 928, 1537, 1063, 740},
-{-2472, -952, 264, 82}, { -502, -965,-1334, 123}, { 867, 1236, 534, 171},
-{-2320, -460, 780, 363}, {-1190, -617, 252, -61}, { -174, 34, 1011, 788},
-{-2333, 247, 423, 153}, { -16, -355, 262, 449}, {-1576,-1073, -544, -371},
-{ -615, -305, 1051, 805}, { 687, 528, 6, -182}, { 935, 875, 1002, 809},
-{ 199, 257, 126, 76}, { -584,-1138, 599, 556}, {-1105,-1391,-1591, -519},
-{ -977,-1325, 108, 347}, { -722, -975, 365, 101}, { -145, 681, 249, -153},
-{ 0, -334, -570, 159}, { 412, 285, -336, -617}, { -953, -966, 887, 689},
-{-1251, 84, -185, -398}, { -592, 433, 1044, 653}, { 85, 329, -40, 361},
-{ -433, -705, 466, 574}, { -154, 654, 592, 290}, { -167, 72, 349, 175},
-{ 674, 297, 977, 720}, { 1235, 1204, 757, 488}, { -400, -269, 538, 372},
-{-1350,-1387,-1194, -91}, { 1262, 876, 775, 700}, { -599, -38, -430, -722},
-{ 1976, 1630, 991, 608}, { 111, 276, -226, -96}, { -947, -388, -11, -7},
-{ -303, -531, -839, 338}, { 1734, 1710, 1405, 1013}, { -516, -855, -645, 210},
-{ -688, -416, 513, 230}, { -822, -637,-1146, -320}, { -952, -658, -694, 183},
-{ -114, -623, 818, 674}, { -191, -204, 731, 635}, { 51, 1221, 883, 576},
-{ -954, -431, 826, 598}, { -342, -755, -900, -407}, {-1126, -354, -206, -512},
-{ -547, -810, -357, -620}, { 66, 515, -73, -410}, { -872, -945,-1444,-1227},
-{ 191, -17, -544, -231}, {-1540, -544, -901, -886}
-};
-
-static const int16_t lsf_3_1_MODE_7k95[512][3] = {
-{ -890,-1550,-2541}, { -819, -970, 175}, { -826,-1234, -762},
-{ -599, -22, 634}, { -811, -987, -902}, { -323, 203, 26},
-{ -383, -235, -781}, { -399, 1262, 906}, { -932,-1399,-1380},
-{ -624, 93, 87}, { -414, -539, -691}, { 37, 633, 510},
-{ -387, -476,-1330}, { 399, 66, 263}, { -407, -49, -335},
-{ -417, 1041, 1865}, { -779,-1089,-1440}, { -746, -858, 832},
-{ -581, -759, -371}, { -673, -506, 2088}, { -560, -634,-1179},
-{ 271, 241, 14}, { -438, -244, -397}, { 463, 1202, 1047},
-{ -606, -797,-1438}, { -51, -323, 481}, { -224, -584, -527},
-{ 494, 881, 682}, { -433, -306,-1002}, { 554, 659, 222},
-{ 171, -160, -353}, { 681, 1798, 1565}, { -852,-1181,-1695},
-{ -336, -666, 114}, { -581, -756, -744}, { -195, 375, 497},
-{ -465, -804,-1098}, { 154, 282, -131}, { -50, -191, -719},
-{ 323, 732, 1542}, { -722, -819,-1404}, { 105, -250, 185},
-{ -178, -502, -742}, { 321, 510, 1111}, { -323, -567, -966},
-{ 127, 484, 338}, { -160, 52, -338}, { 732, 1367, 1554},
-{ -626, -802,-1696}, { -286, -586, 676}, { -695, -343, -370},
-{ -490, 295, 1893}, { -630, -574,-1014}, { -80, 645, -69},
-{ -6, -318, -364}, { 782, 1450, 1038}, { -313, -733,-1395},
-{ 120, 60, 477}, { -264, -585, -123}, { 711, 1245, 633},
-{ -91, -355,-1016}, { 771, 758, 261}, { 253, 81, -474},
-{ 930, 2215, 1720}, { -808,-1099,-1925}, { -560, -782, 169},
-{ -804,-1074, -188}, { -626, -55, 1405}, { -694, -716,-1194},
-{ -660, 354, 329}, { -514, -55, -543}, { 366, 1033, 1182},
-{ -658, -959,-1357}, { -55, -184, 93}, { -605, -286, -662},
-{ 404, 449, 827}, { -286, -350,-1263}, { 628, 306, 227},
-{ -16, 147, -623}, { 186, 923, 2146}, { -674, -890,-1606},
-{ -443, -228, 339}, { -369, -790, -409}, { 231, 86, 1469},
-{ -448, -581,-1061}, { 594, 450, -177}, { -124, -170, -447},
-{ 671, 1159, 1404}, { -476, -667,-1511}, { -77, -138, 716},
-{ -177, -372, -381}, { 451, 934, 915}, { -250, -432, -822},
-{ 272, 828, 446}, { 26, 19, -31}, { 698, 1692, 2168},
-{ -646, -977,-1924}, { -179, -473, 268}, { -379, -745, -691},
-{ 11, 127, 1033}, { -488, -917, -825}, { 61, 323, 135},
-{ 147, -145, -686}, { 685, 786, 1682}, { -506, -848,-1297},
-{ 35, 90, 222}, { -23, -346, -670}, { 455, 591, 1287},
-{ -203, -593,-1086}, { 652, 352, 437}, { 39, 63, -457},
-{ 841, 1265, 2105}, { -520, -882,-1584}, { -328, -711, 1421},
-{ -596, -342, -70}, { 209, 173, 1928}, { -423, -598, -921},
-{ 421, 605, -38}, { -2, -245, -127}, { 896, 1969, 1135},
-{ -379, -518,-1579}, { 173, 118, 753}, { -55, -381, -52},
-{ 985, 1021, 753}, { -2, -291, -891}, { 753, 992, 423},
-{ 264, 131, -196}, { 895, 2274, 2543}, { -635,-1088,-2499},
-{ -529, -982, 526}, { -764, -830, -548}, { -436, 316, 599},
-{ -675, -940, -746}, { -57, 236, -11}, { -201, -81, -798},
-{ 16, 845, 1558}, { -737, -985,-1212}, { -468, 17, 290},
-{ -279, -584, -700}, { 183, 822, 705}, { -265, -492,-1187},
-{ 421, 152, 468}, { -390, 166, -268}, { 39, 1550, 1868},
-{ -635, -966,-1571}, { -453, -492, 910}, { -284,-1027, -75},
-{ -181, -133, 1852}, { -445, -624,-1174}, { 420, 367, -49},
-{ -389, -212, -169}, { 707, 1073, 1208}, { -539, -710,-1449},
-{ 83, -163, 484}, { -236, -543, -355}, { 338, 1175, 814},
-{ -246, -309, -958}, { 606, 760, 60}, { 166, -8, -163},
-{ -306, 1849, 2563}, { -747,-1025,-1783}, { -419, -446, 209},
-{ -718, -566, -534}, { -506, 693, 857}, { -463, -697,-1082},
-{ 325, 431, -206}, { -15, -8, -763}, { 545, 919, 1518},
-{ -611, -783,-1313}, { 256, -55, 208}, { -165, -348, -662},
-{ 321, 680, 930}, { -326, -429, -951}, { 484, 446, 570},
-{ -197, 72, -73}, { 909, 1455, 1741}, { -563, -737,-1974},
-{ -124, -416, 718}, { -478, -404, -314}, { -16, 446, 1636},
-{ -551, -537, -750}, { -58, 638, 214}, { 55, -185, -271},
-{ 1148, 1301, 1212}, { -483, -671,-1264}, { 117, 285, 543},
-{ -204, -391, -111}, { 513, 1538, 854}, { -114, -190, -978},
-{ 877, 595, 464}, { 260, 260, -311}, { 748, 2283, 2216},
-{ -517, -945,-2171}, { -326, -708, 378}, { -812, -691, -232},
-{ -560, 687, 1409}, { -732, -690, -836}, { -359, 645, 386},
-{ -265, 62, -678}, { 145, 1644, 1208}, { -555, -988,-1233},
-{ -78, 14, 114}, { -327, -358, -489}, { 392, 677, 697},
-{ -201, -236,-1140}, { 693, 449, 178}, { -243, 256, -433},
-{ 611, 1385, 2456}, { -612, -901,-1464}, { -307, -17, 499},
-{ -315, -667, -254}, { 256, 428, 1463}, { -486, -422,-1056},
-{ 655, 370, 18}, { -102, -185, -276}, { 755, 1578, 1335},
-{ -488, -603,-1418}, { 182, -93, 870}, { -73, -458, -348},
-{ 835, 862, 957}, { -282, -333, -746}, { 547, 839, 428},
-{ 273, -89, 13}, { 940, 1708, 2576}, { -418,-1084,-1758},
-{ -44, -358, 259}, { -497, -643, -560}, { 99, 557, 961},
-{ -421, -766, -917}, { 295, 326, 184}, { 175, 15, -626},
-{ 532, 878, 1981}, { -443, -768,-1275}, { 221, 156, 268},
-{ 39, -363, -505}, { 695, 772, 1140}, { -162, -459, -912},
-{ 709, 444, 658}, { 25, 303, -312}, { 1268, 1410, 1715},
-{ -297, -766,-1836}, { -263, -108, 1070}, { -406, -13, -129},
-{ 57, 438, 2734}, { -374, -487, -835}, { 304, 696, 164},
-{ 104, -235, 5}, { 1611, 1900, 1399}, { -229, -582,-1325},
-{ 405, 192, 817}, { -87, -438, 111}, { 1028, 1199, 993},
-{ 68, -175, -934}, { 1033, 1117, 451}, { 478, 200, -248},
-{ 2127, 2696, 2042}, { -835,-1323,-2131}, { -799, -692, 466},
-{ -812,-1032, -469}, { -622, 288, 920}, { -701, -841,-1070},
-{ -411, 512, 8}, { -390, -91, -744}, { -30, 1043, 1161},
-{ -822,-1148,-1156}, { -294, -46, 110}, { -411, -374, -678},
-{ 214, 531, 668}, { -406, -420,-1194}, { 487, 232, 303},
-{ -318, 91, -472}, { 123, 1232, 2445}, { -722, -952,-1495},
-{ -738, -675, 1332}, { -543, -606, -211}, { -95, -98, 1508},
-{ -549, -514,-1193}, { 473, 211, 73}, { -288, -112, -389},
-{ 537, 1332, 1258}, { -567, -755,-1545}, { 71, -283, 632},
-{ -170, -481, -493}, { 681, 1002, 817}, { -356, -331, -877},
-{ 419, 706, 346}, { 241, -34, -326}, { 377, 1950, 1883},
-{ -727,-1075,-1625}, { -233, -543, 116}, { -524, -806, -585},
-{ -73, 478, 729}, { -288, -925,-1143}, { 173, 447, -52},
-{ 68, -229, -606}, { 449, 529, 1797}, { -591, -875,-1363},
-{ 183, -144, 324}, { -103, -452, -666}, { 623, 488, 1176},
-{ -238, -511,-1004}, { 326, 552, 458}, { 136, 108, -319},
-{ 626, 1343, 1883}, { -490, -646,-1730}, { -186, -449, 984},
-{ -738, -76, -170}, { -550, 755, 2560}, { -496, -510, -947},
-{ 210, 694, -52}, { 84, -322, -199}, { 1090, 1625, 1224},
-{ -376, -603,-1396}, { 343, 74, 632}, { -175, -502, -32},
-{ 972, 1332, 734}, { 52, -295,-1113}, { 1065, 918, 160},
-{ 393, 107, -397}, { 1214, 2649, 1741}, { -632,-1201,-1891},
-{ -719, -277, 353}, { -651, -880, -122}, { -211, 209, 1338},
-{ -562, -714,-1059}, { -208, 388, 159}, { -320, -61, -551},
-{ 293, 1092, 1443}, { -648, -865,-1253}, { -49, -143, 305},
-{ -401, -227, -585}, { 561, 532, 927}, { -117, -443,-1188},
-{ 507, 436, 292}, { -79, 233, -458}, { 671, 1025, 2396},
-{ -633, -842,-1525}, { -308, -286, 640}, { -373, -621, -407},
-{ 418, 253, 1305}, { -315, -581,-1137}, { 572, 685, -281},
-{ 61, -68, -371}, { 991, 1101, 1498}, { -493, -683,-1362},
-{ -47, 164, 704}, { -256, -314, -268}, { 631, 949, 1052},
-{ -118, -348, -833}, { 68, 1180, 568}, { 152, 117, 34},
-{ 1113, 1902, 2239}, { -601, -959,-1706}, { -143, -489, 480},
-{ -332, -655, -574}, { 54, 353, 1192}, { -462, -652, -796},
-{ 150, 549, 112}, { 195, -111, -515}, { 679, 1108, 1647},
-{ -558, -749,-1217}, { -9, 272, 341}, { -53, -265, -535},
-{ 489, 843, 1298}, { -120, -482,-1032}, { 632, 543, 408},
-{ 179, 306, -526}, { 1124, 1464, 2244}, { -417, -786,-1562},
-{ -224, -384, 1364}, { -377, -459, -25}, { 385, 489, 2174},
-{ -332, -651, -829}, { 544, 553, 61}, { 22, -113, -89},
-{ 1128, 1725, 1524}, { -216, -373,-1653}, { 161, 316, 908},
-{ -165, -222, -67}, { 1362, 1175, 789}, { 73, -252, -767},
-{ 738, 932, 616}, { 362, 246, -126}, { 787, 2654, 3027},
-{ -691,-1106,-2190}, { -565, -588, 524}, { -590, -979, -490},
-{ -263, 397, 982}, { -577, -837, -945}, { -22, 435, -49},
-{ -190, -118, -629}, { -88, 1240, 1513}, { -636,-1051,-1019},
-{ -291, 189, 259}, { -257, -470, -629}, { 145, 945, 894},
-{ -326, -364,-1094}, { 543, 260, 630}, { -202, 189, -209},
-{ 357, 1379, 2091}, { -569,-1075,-1449}, { -714, -239, 919},
-{ -420, -705, -84}, { -109, -114, 2407}, { -413, -529,-1177},
-{ 482, 368, 131}, { -186, -72, -131}, { 861, 1255, 1220},
-{ -611, -658,-1341}, { 227, -121, 631}, { -176, -489, -218},
-{ 745, 1175, 957}, { -321, -148, -936}, { 671, 966, 216},
-{ 340, -3, -143}, { 469, 1848, 2437}, { -729, -961,-1683},
-{ -213, -254, 321}, { -511, -438, -521}, { -126, 725, 903},
-{ -340, -685,-1032}, { 316, 480, 20}, { 23, -89, -551},
-{ 353, 1051, 1789}, { -544, -757,-1364}, { 298, -25, 436},
-{ -100, -392, -519}, { 467, 754, 1078}, { -210, -398,-1078},
-{ 620, 658, 630}, { 33, 147, -178}, { 921, 1687, 1921},
-{ -325, -528,-1978}, { 2, -285, 910}, { -371, -490, -230},
-{ 0, 597, 2010}, { -496, -395, -834}, { 37, 945, 245},
-{ 181, -160, -144}, { 1481, 1373, 1357}, { -355, -601,-1270},
-{ 298, 322, 672}, { -193, -336, 77}, { 1089, 1533, 922},
-{ 177, -39,-1125}, { 996, 781, 536}, { 456, 366, -432},
-{ 1415, 2440, 2279}, { -466, -758,-2325}, { -303, -509, 387},
-{ -727, -557, 66}, { -145, 643, 1248}, { -544, -676, -916},
-{ -225, 862, 588}, { -152, 40, -533}, { 423, 1423, 1558},
-{ -572, -843,-1145}, { -128, 85, 461}, { -238, -257, -584},
-{ 605, 748, 861}, { 24, -202,-1409}, { 797, 487, 303},
-{ -181, 364, -182}, { 616, 1378, 2942}, { -494, -852,-1441},
-{ -292, 61, 812}, { -84, -723, -182}, { 555, 532, 1506},
-{ -365, -493,-1057}, { 822, 588, 11}, { -14, -18, -230},
-{ 1001, 1401, 1451}, { -474, -569,-1292}, { 302, 62, 1062},
-{ -70, -376, -222}, { 982, 974, 1149}, { -196, -234, -795},
-{ 479, 1098, 499}, { 362, 58, 70}, { 1147, 2069, 2857},
-{ -487, -878,-1824}, { 73, -288, 348}, { -358, -500, -508},
-{ 199, 721, 1242}, { -78, -697, -795}, { 361, 536, 196},
-{ 374, 110, -735}, { 847, 1051, 1896}, { -366, -713,-1182},
-{ 315, 320, 429}, { 72, -215, -450}, { 759, 886, 1363},
-{ -30, -428, -834}, { 861, 627, 796}, { 118, 468, -279},
-{ 1355, 1883, 1893}, { -188, -642,-1612}, { 63, -175, 1198},
-{ -418, -211, 51}, { 414, 587, 2601}, { -234, -557, -858},
-{ 424, 889, 222}, { 136, -101, 83}, { 1413, 2278, 1383},
-{ -84, -445,-1389}, { 414, 313, 1045}, { 29, -343, 65},
-{ 1552, 1647, 980}, { 183, -91, -829}, { 1273, 1413, 360},
-{ 553, 272, -107}, { 1587, 3149, 2603}
-};
-
-static const int16_t lsf_3_1[256][3] = {
-{ 6, 82, -131}, { 154, -56, -735}, { 183, -65, -265},
-{ 9, -210, -361}, { 113, 718, 1817}, { 1010, 1214, 1573},
-{ 857, 1333, 2276}, { 827, 1568, 1933}, { 717, 1989, 2206},
-{ 838, 1172, 1823}, { 721, 1000, 2154}, { 286, 476, 1509},
-{ -247, -531, 230}, { 147, -82, 569}, { 26, -177, -944},
-{ -27, -273, 692}, { -164, -264, -183}, { 224, 790, 1039},
-{ 899, 946, 601}, { 485, 771, 1150}, { 524, 677, 903},
-{ -140, 375, 778}, { 410, 676, 429}, { 301, 530, 1009},
-{ 719, 646, 38}, { 226, 367, 40}, { 145, -45, -505},
-{ 290, 121, -121}, { 302, 127, 166}, { -124, -383, -956},
-{ -358, -455, -977}, { 715, 878, 894}, { 978, 923, 211},
-{ 477, 272, 64}, { 188, -78, 17}, { -143, -65, 38},
-{ 643, 586, 621}, { -134, -426, -651}, { 347, 545, 2820},
-{ 1188, 2726, 2442}, { 142, -80, 1735}, { 283, 130, 461},
-{ -262, -399,-1145}, { -411, 155, 430}, { 329, 375, 779},
-{ 53, -226, -139}, { -129, -236, 1682}, { 285, 744, 1327},
-{ 738, 697, 1664}, { 312, 409, 266}, { 325, 720, 135},
-{ 1, 221, 453}, { 8, 203, 145}, { 299, 640, 760},
-{ 29, 468, 638}, { 103, 429, 379}, { 420, 954, 932},
-{ 1326, 1210, 1258}, { 704, 1012, 1152}, { -166, -444, -266},
-{ -316, -130, -376}, { 191, 1151, 1904}, { -240, -543,-1260},
-{ -112, 268, 1207}, { 70, 1062, 1583}, { 278, 1360, 1574},
-{ -258, -272, -768}, { 19, 563, 2240}, { -3, -265, 135},
-{ -295, -591, -388}, { 140, 354, -206}, { -260, -504, -795},
-{ -433, -718,-1319}, { 109, 331, 962}, { -429, -87, 652},
-{ -296, 426, 1019}, { -239, 775, 851}, { 489, 1334, 1073},
-{ -334, -332, 25}, { 543, 1206, 1807}, { 326, 61, 727},
-{ 578, 849, 1405}, { -208, -277, 329}, { -152, 64, 669},
-{ -434, -678, -727}, { -454, -71, 251}, { 605, 480, 254},
-{ -482, 11, 996}, { -289, 395, 486}, { 722, 1049, 1440},
-{ -30, -316, -786}, { -106, -115, -619}, { 861, 1474, 1412},
-{ 1055, 1366, 1184}, { 812, 1237, 925}, { 42, -251, -576},
-{ 342, 141, -454}, { -168, -80, 1359}, { -342, -656,-1763},
-{ 100, 821, 725}, { 990, 747, 800}, { 332, 440, 568},
-{ 663, 379, 852}, { 112, 165, -369}, { 597, 910, 282},
-{ -8, 834, 1281}, { -352, 572, 695}, { 462, 2246, 1806},
-{ 345, 190, 1374}, { 416, 915, 2166}, { 168, -82, 280},
-{ -516, -446, 840}, { 47, 533, 44}, { -362, -711,-1143},
-{ 22, 193, 1472}, { -85, 233, 1813}, { -62, 579, 1504},
-{ 550, 944, 1749}, { 723, 650, 1148}, { 972, 884, 1395},
-{ -425, 643, 0}, { 1000, 952, 1098}, { 249, 1446, 672},
-{ -334, -87, 2172}, { -554, 1882, 2672}, { 140, 1826, 1853},
-{ 920, 1749, 2590}, { 1076, 1933, 2038}, { -137, -443,-1555},
-{ 1269, 1174, 468}, { -493, -122, 1521}, { -451, 1033, 1214},
-{ 482, 1695, 1118}, { 815, 649, 384}, { -446, -692, 107},
-{ -319, -605, -118}, { -207, -505, 525}, { -468, -12, 2736},
-{ 75, 1934, 1305}, { 880, 2358, 2267}, { 1285, 1575, 2004},
-{ -48, -304,-1186}, { -435, -461, -251}, { -366, -404, -547},
-{ -289, -605, -597}, { -538, -810, -165}, { -120, 3, 356},
-{ 639, 1241, 1502}, { 96, 177, 750}, { -435, -585,-1174},
-{ -356, 109, -79}, { -485, 288, 2005}, { 9, 1116, 731},
-{ 880, 2134, 946}, { -265, 1585, 1065}, { 1157, 1210, 843},
-{ -498, -668, 431}, { 374, 321, -229}, { 1440, 2101, 1381},
-{ 449, 461, 1155}, { -105, 39, -384}, { -263, 367, 182},
-{ -371, -660, 773}, { -188, 1151, 971}, { 1333, 1632, 1435},
-{ 774, 1267, 1221}, { -482, -832,-1489}, { -237, -210, 860},
-{ 890, 1615, 1064}, { 472, 1062, 1192}, { 185, 1077, 989},
-{ -568, -992,-1704}, { -449, -902,-2043}, { -142, -377, -458},
-{ -210, -554,-1029}, { -11, 1133, 2265}, { -329, -675, -893},
-{ -250, 657, 1187}, { 519, 1510, 1779}, { 520, 539, 1403},
-{ 527, 1421, 1302}, { -563, -871,-1248}, { -147, -463, 879},
-{ -76, 2334, 2840}, { 563, 2573, 2385}, { 632, 1926, 2920},
-{ 719, 2023, 1840}, { -545, -723, 1108}, { 129, -125, 884},
-{ 1417, 1632, 925}, { -94, 1566, 1751}, { -341, 1533, 1551},
-{ 591, 395, -274}, { -76, 981, 2831}, { 153, 2985, 1844},
-{ 1032, 2565, 2749}, { 1508, 2832, 1879}, { 791, 1199, 538},
-{ -190, -453, 1489}, { -278, -548, 1158}, { -245, 1941, 2044},
-{ 1024, 1560, 1650}, { 512, 253, 466}, { -62, -323, 1151},
-{ -473, -376, 507}, { -433, 1380, 2162}, { 899, 1943, 1445},
-{ 134, 704, 440}, { 460, 525, -28}, { -450, 279, 1338},
-{ 0, 971, 252}, { -445, -627, -991}, { -348, -602,-1424},
-{ 398, 712, 1656}, { -107, 314, -178}, { 93, 2226, 2238},
-{ 518, 849, 656}, { -462, -711, -447}, { 174, -34, 1191},
-{ -119, 42, 1005}, { -372, 274, 758}, { 1036, 2352, 1838},
-{ 675, 1724, 1498}, { 430, 1286, 2133}, { -129, -439, 0},
-{ -373, 800, 2144}, { 6, 1587, 2478}, { 478, 596, 2128},
-{ -428, -736, 1505}, { 385, 178, 980}, { 139, 449, 1225},
-{ -526, -842, -982}, { 145, 1554, 1242}, { 623, 1448, 656},
-{ 349, 1016, 1482}, { 31, -280, 415}, { -316, 724, 1641},
-{ 360, 1058, 556}, { -436, -358, 1201}, { -355, 1123, 1939},
-{ 401, 1584, 2248}, { -527,-1012, 355}, { 233, 238, 2233},
-{ -550, -897, -639}, { -365, -501, 1957}, { 389, 1860, 1621},
-{ 162, 1132, 1264}, { -237, 1174, 1390}, { -640, -411, 116},
-{ -228, 1694, 2298}, { 1639, 2186, 2267}, { 562, 1273, 2658},
-{ 323, 338, 1774}, { 578, 1107, 852}, { 22, 594, 934},
-{ -143, 718, 446}
-};
-
-
-static const int16_t lsf_3_2[512][3] = {
-{ 50, 71, -9}, { -338, -698,-1407}, { 102, -138, -820},
-{ -310, -469,-1147}, { 414, 67, -267}, { 1060, 814, 1441},
-{ 1548, 1360, 1272}, { 1754, 1895, 1661}, { 2019, 2133, 1820},
-{ 1808, 2318, 1845}, { 644, -93, 454}, { 858, 329, -136},
-{ 489, -258, -128}, { -198, -745, -41}, { -52, -265, -985},
-{ 346, 137, 479}, {-1741, -748, -684}, {-1163,-1725, -367},
-{ -895,-1145, -784}, { -488, -946, -968}, { -85, -390, -725},
-{ 215, -340, -171}, { 1020, 916, 1969}, { 564, 179, 746},
-{ 662, 977, 1734}, { 887, 622, 914}, { 939, 856, 1165},
-{ 309, 688, 803}, { 917, 161, 570}, { 118, -20, -283},
-{ -816, -42, 204}, {-1228, -325, -462}, { -963, -202, -143},
-{ -988, -484, -361}, { -702, -978, -477}, { -302, -790,-1188},
-{ -100, -786,-1088}, {-1054, -947,-1684}, { -202, -843, -782},
-{-1039,-1378, -901}, { -624, -110, -85}, { 356, 213, -10},
-{ -493, 364, 774}, { 425, 822, 479}, { -83, 557, 520},
-{ -992,-1560, -572}, { -603, -741, -26}, { -502, -638, -903},
-{ 209, 306, 147}, { -316, -593, -596}, { -85, -211, -225},
-{ -918, -529, 117}, { 233, -439, -738}, { 1101, 751, 633},
-{ 1457, 1716, 1511}, { 1765, 1457, 910}, { 1122, 1156, 849},
-{ 1354, 868, 470}, { -871,-1150,-1796}, { -871, -861, -992},
-{ -118, 155, 212}, {-1051, -849, -606}, {-1117,-1849,-2750},
-{-1019,-1427,-1869}, { 370, -184, -414}, { 959, 493, 104},
-{ 958, 1039, 543}, { 154, 653, 201}, { 1249, 507, 150},
-{ 663, 503, 230}, { 623, 777, 675}, { 659, 88, -110},
-{ 843, 244, 224}, { 382, 541, 302}, { 724, 433, 666},
-{ 1166, 734, 341}, { -138, 20, -397}, {-1183, -424, -46},
-{ -321, -352, -124}, { 1333, 1021, 1080}, { 262, 366, 723},
-{ 922, 283, -551}, { 31, -636, -611}, { -689, -697, -415},
-{ -952, -779, -201}, {-1329, -598, -359}, { -953,-1285, 166},
-{ 493, 305, 221}, { 846, 703, 610}, { 840, 936, 774},
-{ -723,-1324,-1261}, { -357,-1025,-1388}, {-1096,-1376, -365},
-{-1416,-1881, -608}, {-1798,-1727, -674}, { -545,-1173, -703},
-{ 678, 786, 148}, { -123, 696, 1288}, { 644, 350, -10},
-{ 414, 614, 15}, { 137, 344, -211}, { -814,-1512, -819},
-{ -391, -930, -588}, { 47, -591, -898}, { -909,-1097, -163},
-{-1272,-1167, -157}, {-1464,-1525, -389}, {-1274,-1188, -624},
-{ 671, 213, 454}, { 124, -274, -525}, { -729, -496, -152},
-{-1344, 122, 135}, {-2905, -589, -394}, {-1728, 441, -50},
-{ 1476, 904, 787}, { 316, 236, -440}, { -347, 217, 413},
-{ -911, -917, 121}, { -455, -932, 202}, { -92, -465, -375},
-{ 488, 390, 474}, { 876, 729, 316}, {-1815,-1312, -669},
-{ 87, 962, 432}, { 563, -249,-1058}, { 250, 285, 1105},
-{ 1141, 427, 696}, {-1038,-1664,-1582}, { -948, 346, 160},
-{ -309, -272, -858}, { 670, 624, 1250}, { -944, -408, -666},
-{ -606, -320, -384}, { -492, 230, 65}, { 334, -50, -16},
-{ -16, -690,-1397}, { 1791, 1716, 1399}, { 2478, 2063, 1404},
-{ 1245, 1471, 1426}, { -382,-1037, -2}, { 173, -398, 1145},
-{ 1491, 2024, 1801}, { 772, 1274, 1506}, { 1429, 1735, 2001},
-{ 1079, 1218, 1273}, {-1154,-1851,-1329}, { -808,-1133,-1096},
-{ -451,-1033,-1722}, { 65, 578, -84}, {-1476,-2434,-1778},
-{ -765,-1366, -494}, { -218, -594, -931}, { 337, -236, 562},
-{ 2357, 2662, 1938}, { 1489, 1276, 874}, { 189, 358, 374},
-{-1519,-2281,-2346}, { -967,-1271,-2095}, { -628,-1188,-1542},
-{ 1661, 1043, 546}, { 565, 1061, 732}, { -64, -836, -434},
-{ -436, -96, 203}, { 1078, 1216, 1636}, { 907, 1534, 986},
-{ 326, 965, 845}, { 142, -84, 197}, { 470, 2379, 1570},
-{ 1133, 470, 1214}, { 395, 1376, 1200}, { 1125, 1042, 348},
-{ -543,-1234, -376}, { -215, -181, 481}, {-1947,-1621, -210},
-{ -750,-1185, 390}, { 29, -399, 27}, { 820, 1236, 755},
-{ 695, 979, 409}, { -174, 1197, 1035}, { 912, 1356, 1846},
-{ -992,-1437, 484}, {-1485,-1700, 208}, { -412, 1204, 1432},
-{ -271, 896, 1144}, { -416, 1777, 1434}, {-1696,-2644, -204},
-{-1789,-1551, 1033}, {-1656,-1559, 1303}, {-1253,-1589, 1081},
-{ -669,-1095, -66}, { -682, 320, -345}, { 659, 305, 1069},
-{-1292, -804, -19}, {-1635,-1291, 29}, {-1683, -497, 71},
-{ -287, -7, -100}, { -494, -962, -237}, { 852, 1881, 1740},
-{-1217,-1387, 227}, { -660, 302, 373}, { 96, 1087, 1257},
-{-1074,-1669, 160}, { 485, 2076, 1798}, { -934, -220, 552},
-{ -596, -612, 237}, { 336, 1720, 879}, { 643, 629, 434},
-{ 1267, 522, 1633}, { 15, 244, -441}, { 1475, 717, 184},
-{ 1819, 1590, 1709}, { 988, 261, 937}, { 2093, 2345, 1520},
-{ 2139, 1858, 1606}, { -577, -579,-1203}, { -956, 135, -488},
-{ -464, 51, -338}, { -629, -348, -723}, { 1146, 2073, 1442},
-{ 2192, 1466, 911}, {-1444,-1572,-2278}, { 1400, 710, 1297},
-{ 1335, 633, 928}, { 1434, 2194, 2594}, { 2422, 2204, 1881},
-{ 982, 2242, 1854}, { 380, 792, 1145}, { -63, -539, 414},
-{ -252, -964, -314}, {-1261, -683, -780}, { -831, -526,-1005},
-{-1666,-1135, -424}, {-1611, -452, -299}, { 1268, 1048, 642},
-{ 1147, 853, 856}, { -675, -336, 139}, { 2268, 1343, 1418},
-{ 29, 768, 797}, {-1224, 423, 564}, {-1318,-1082, 245},
-{-1302, -812, 573}, {-1298,-1617, 646}, { -968, 834, 723},
-{ 993, 1652, 2027}, { -191, -817, 432}, { 662, 60, 198},
-{ 626, 997, 1330}, { 1648, 1963, 1289}, {-1597, -93, -45},
-{-1088, 37, -84}, { 1653, 2607, 2337}, { 1065, 2040, 2377},
-{ 1139, 2326, 2118}, { 859, 357, 1510}, { 664, 1227, 1099},
-{ 479, 1360, 912}, { 1897, 1754, 2019}, { 1168, 1909, 1784},
-{ 399, 34, 256}, { -593, -304,-1053}, { 547, 1694, 1407},
-{ 647, -99, -341}, { 1492, 1647, 1190}, { 38, -644, -212},
-{ 395, 846, 222}, { -704, -765, -716}, { -724,-1964,-2804},
-{ -150, 291, -82}, { 1233, 1459, 1007}, { -140, -155, 153},
-{ 439, 297, 1568}, {-1529, -410, -636}, { 1536, 455, -237},
-{-1328, -139, -260}, { 531, 554, 868}, { 269, 1264, 606},
-{ -233, 883, 463}, { 742, 600, -120}, { -73, 421, 212},
-{ -439, -58, 804}, {-1286,-1241, 728}, { 294, -490, 50},
-{ -591, -905,-1254}, { 42, -687, 147}, { -25, 273, 596},
-{ -311, 1213, 601}, { -754, 849, 584}, { 429, 607, 587},
-{ -602, -166, 461}, { -796, -823, 777}, { 1380, 910, 1755},
-{ 119, 1417, 972}, { -219, -880,-1596}, {-1049,-1010, 438},
-{ -713,-1379, 78}, { 0, -447,-1179}, {-1136,-1319,-1573},
-{ 2248, 1767, 1309}, { 946, 1583, 1432}, { 1150, 482, 436},
-{ -469,-1108, 618}, { -447, -966, 1088}, {-1252,-1515, -114},
-{-1104,-2008, -579}, { 210, 613, 497}, {-1975,-1437, 642},
-{-1269, -856, 1011}, {-1646,-1185, 1063}, {-1555, -672, 1204},
-{-1692,-1114, 623}, { -979,-1326,-1277}, { 539, -147, 894},
-{-1354, -897, -434}, { 888, 475, 428}, { 153, -384, 338},
-{-1492, -511, 359}, { -974,-1115, -470}, { 105, -550, 677},
-{ -937,-1145, 877}, { 380, -260, 210}, { 1685, 924, 1256},
-{ 1775, 1190, 1095}, { 1419, 631, 533}, { 627, 299, -347},
-{ -411, -534, 647}, { -650, 29, -595}, { -378,-1367, 1563},
-{ 1402, 1121, 1465}, { 1089, 1410, 648}, {-2096,-1090, -6},
-{ 311, -194, -869}, { -639, -831, 416}, {-1162,-1224, 1349},
-{-1247, -941, 1813}, {-2193,-1987, 453}, { -619,-1367, -956},
-{-1606,-1972,-1507}, {-1175,-1057,-1104}, { -377, 601, 201},
-{ 1876, 825, 374}, { -430,-1323, 29}, {-1397,-1249,-1331},
-{-1007,-1504, 960}, {-1401,-2009, 197}, {-1379,-1949, -236},
-{-1077, 123, 422}, { 615, 1269, 546}, { -306, 1526, 904},
-{ 1194, 1788, 1177}, { -626, -884,-1526}, { 199, 766, 1504},
-{-1065, 862, 197}, {-1034,-1773, -887}, { -800, 145, 599},
-{-1134, -519, 626}, {-1205,-1926, 500}, { -910,-1041,-1395},
-{-1476,-1567, -969}, { -523, 842, 34}, { 1794, 646, 862},
-{-1207,-1888,-1002}, { -78, -9, -672}, { 1044, 759, 80},
-{ -600, 1139, 1019}, { 57, 2000, 1422}, { -833, 1414, 1121},
-{-1202, 1630, 1260}, { -461, 1420, 1244}, { 1537, 975, 253},
-{ -283, 324, -359}, { 599, -195, 106}, { 588, 62, -587},
-{ -757, 645, 205}, { 51, 1201, 758}, {-1209, 673, -390},
-{ -624, 1581, 941}, { -151, 1023, 735}, { 2820, 1301, 690},
-{ -302, 524, -99}, { -900,-1588,-1189}, { 1084, 251, 238},
-{ 2014, 1792, 1010}, { 1245, 1633, 1741}, {-1227,-1540,-1208},
-{ -621, 456, -109}, { 40, -65, 788}, { -805, -699,-1350},
-{ -583, 904, 832}, { -801, 532, 594}, { 1972, 1408, 1351},
-{-1177,-1880,-2114}, { -773, 568, 948}, {-1015, 1079, 1260},
-{-1111, 482, -130}, { 1778, 1044, 780}, {-1491, 245, 912},
-{ -316,-1141, -917}, { -536,-1442,-2346}, { -785,-1546,-1988},
-{-2003, 257, 909}, {-1849, -633,-1209}, {-1538,-1918,-1054},
-{ 1606, 2239, 1576}, { -567,-1500,-1544}, {-1279, 195, 1369},
-{ -817, 293, 1219}, { -525, 630, 1197}, {-1698,-2425,-1840},
-{ -303, 731, 747}, {-1169, -251, 269}, { -950, -75, 1684},
-{-1182, -453, 1005}, {-1599, 585, 378}, {-2075, -571, -427},
-{ -529,-1159,-1171}, { -283, -205, -564}, { -796, 1246, 717},
-{ 2277, 927, 539}, { -454, 559, 440}, { -717, 1460, 1615},
-{-1030, 1052, 1610}, {-1169, -138, 847}, { 226, 39, -612},
-{-1251, -106, -729}, { -651, 968, 1302}, { -714, -636, 1727},
-{ 353, 1069, 410}, { -798, -156, 1099}, { -574, 918, 446},
-{-1310, 1012, 466}, { 1408, 1591, 765}, { 1429, 1380, 1757},
-{ 1949, 1956, 2378}, { 1578, 2047, 2148}, { 916, 98, -7},
-{ 1893, 1418, 2141}, { 348, 1405, 1579}, { 152, 1134, 1801},
-{ -267, 154, 1395}, {-1166, 469, 1054}, {-1142, -405,-1073},
-{-1341,-2264,-1581}, { -364, 869, 1706}, {-1162, 549, 1550},
-{-1225,-1932,-1666}, {-1485,-1977,-2055}, {-1727, -906, -98},
-{-1897, 233, 1492}, { 892, 108, -331}, {-1728,-1170,-1700},
-{-1060, 1980, 1790}, {-1070,-1741,-1909}, { -11, 1539, 1317},
-{-1600, 94, 497}, { 421, 443, -197}, {-1578, -349, -994},
-{ -599, -539, 1140}, { -965,-1419, -129}, {-1341, 175, -447},
-{ -375, 1311, 2055}, { -371, -650, -307}, {-1073, 605, 365},
-{-2057, -113, 430}, { 652, 914, 967}, {-1012,-1586,-2323},
-{ 1505, 1248, 559}, { 262, -486, -401}, {-1727, 1342, 1546},
-{ 50, 56, 432}, { -330, 119, -604}, {-1517,-1080, -810},
-{ 946, 1127, 1055}, {-1400,-1703,-1712}, {-1270, -704,-1317},
-{ 807, 1821, 1143}, { 2760, 1606, 2171}, { 1120, 409, -150},
-{ -147, 404, 959}, { 2439, 1911, 2189}, { -906, -141, -866},
-{ -904, -142, -458}, { -557, -708,-1679}, { -830,-1431,-1583},
-{-1842,-1346,-1086}, {-1604, -272, 915}, {-1196, 772, 1056},
-{ -638,-1234,-1897}, { -500, -81, -822}, {-1289,-1613, -735},
-{ -117, 785, 168}, {-1090, 1133, 922}, {-1096, -746, 1384},
-{ 287, -547,-1063}, {-1376,-2201,-1204}, {-2176,-1570,-1757},
-{-1511,-2241, -771}, {-1737, 1099, 830}, {-1588, 724, 1243},
-{-1542, 693, 805}, {-1690, -240, 1665}, {-1700, -4, -668},
-{ 2149, 816, 1042}, { -818,-1841, 22}, { -764, -507, 449},
-{-1151, -617, 289}, { -843,-1596, -240}, { 498, -234, -657},
-{ -752, 480, 1678}, { -319, -481, 193}, { -811, 171, -119},
-{-2128, -202, -848}, { 1717, 1140, 1700}
-};
-
-static const int16_t lsf_3_3[512][4] = {
-{ 67, -17, 66, -12}, {-1690, -581, -104, -272}, {-1076,-1186,-1845, -376},
-{-1140, -926, -420, -58}, { -259, -656,-1134, -553}, { 1788, 1227, 455, 129},
-{ 462, 441, -240, -528}, { 840, 514, 130, -75}, { 1114, 623, 153, 216},
-{ 1068, 564, -6, -276}, { 1119, 727, 190, -68}, { 704, 306, 119, -264},
-{ 329, 61, -100, 156}, { 364, 123, 183, -208}, { -171, -123, 220, -65},
-{ -306, -62, 402, 17}, { -660, -938, -266, 0}, { 385, 235, 276, 285},
-{ 320, 268, -336, -200}, { -724, 17, -84, 381}, { -544, 429, 494, 519},
-{ -117, 288, 304, 329}, { 643, 157, 701, 508}, { 1200, 625, 796, 608},
-{ 998, 421, 492, 632}, { 1204, 780, 446, 132}, { 1257, 844, 547, 449},
-{ 829, 658, 541, 470}, { 1132, 1258, 918, 639}, { 547, 51, 423, 279},
-{ 9, 392, 83, 94}, { 542, 543, 229, -147}, { -198, 129, 194, -185},
-{ -863,-1321, -302, 30}, { -597, -629, -19, 114}, { -900,-1081, 466, 353},
-{-1483,-1573, 15, -143}, {-1708,-2059, -751, 196}, {-1876,-2067, -642, -258},
-{-2335,-1470, -450, -564}, { -584, -186, -872, -414}, {-1805, -988,-1125,-1310},
-{ -726,-1129, 28, 169}, {-1039, -864, -718, -246}, { 484, 36, -233, -49},
-{ 265, 67, 289, 467}, { 178, 543, 810, 540}, { 84, 282, 672, 703},
-{ -975, -777, 129, 287}, { -938, -227, 955, 595}, {-1617, -289, 836, 649},
-{-1847, -215, 1106, 718}, {-2034,-1085, 650, 440}, {-2101, -529, 907, 575},
-{-2011, -336, 670, 204}, {-2389, -692, 360, 137}, {-2156,-2204, -9, 280},
-{ -266, 119, 39, 193}, { 78, -59, -120, 226}, { -975, -858, -781,-1095},
-{ -619, -413, -451, -842}, {-1216,-1321, -813, -883}, {-1376,-1615, -394, -428},
-{ -737,-1113, -549, -790}, { -880, -975, -967, -642}, { -985, -886,-1273,-1361},
-{ -473, -804,-1401,-1407}, { 160, -265, -919, -275}, { -248, -250, -718, -380},
-{ 97, -103, -375, -229}, { -415, -193, -135, -555}, { 628, 361, 119, 216},
-{ 579, 364, 391, 209}, { 634, 522, -154, -148}, { 526, 389, 170, 33},
-{ 105, 267, 64, 380}, {-1503,-1000, -30, -369}, {-1070, 58, 647, 223},
-{-1520, -291, 621, 307}, {-1531, 156, 762, 404}, {-2029, 141, 734, 499},
-{-1849, -650, 306, 512}, { -187, -104, -59, 438}, { 134, -230, 156, -186},
-{ -61, -260, -16, 10}, { -569, -3, -421, -297}, {-1725, -521, -346, 178},
-{-1362, -59, -44, 157}, {-2146, -461, -470, -349}, {-2170, -1, -369, -121},
-{-1579, -373, -900,-1015}, {-1117, -591, -613, -784}, { -561, 122, -75, -449},
-{ -4, -171, -123, -372}, { 192, 168, -76, -132}, { 252, -107, 340, 210},
-{ 392, 509, 272, 181}, { -109, 145, 218, 119}, { -416, -263, 485, 265},
-{ -181, -8, -286, 226}, { -244, -218, 69, -290}, { -158, 191, -1, -64},
-{ -592, -90, 213, -96}, { 255, 435, 178, -80}, { -369, -18, -33, -80},
-{ -42, 415, 140, -222}, { 1143, 651, 649, 329}, { 767, 556, 249, 235},
-{ 948, 413, 442, 279}, { 141, 339, 356, 557}, { -470, -170, 99, 237},
-{ -569, -800, 352, 565}, { 282, 473, 470, 332}, { -199, -690,-1284, -917},
-{ -193, -426, -800,-1122}, { -26, -371, -490, -193}, { 637, 595, 519, 330},
-{ 408, -115, 79, 12}, { 477, 87, -103, -376}, { -666, -347, -277, -291},
-{ -510, -481, 169, 297}, { -829, -738, -205, -171}, { -320, -540, 328, 283},
-{ -859, -958, 442, -2}, { 556, 686, 130, 56}, { 1383, 1012, 755, 427},
-{ 612, 741, 628, 553}, { -339, -796, 134, 277}, { -633,-1085, -2, -246},
-{ -880,-1035,-1607,-1064}, { -994, -474,-1138, -488}, { -414, -795, 73, -206},
-{ -8, -139, 439, 204}, { -176, -578, 23, 131}, { -269, -757, -191, 245},
-{ -109, -338, 112, 316}, { 120, -406, -118, 611}, { -180, -186, -645, 115},
-{ -173, 34, -518, -489}, { -151, 61, -583, -844}, { 220, -138, -681,-1020},
-{ 391, -17, -598, -321}, { 157, -295, 129, 155}, { -926, -875, -987, 285},
-{ 241, -83, -125, -125}, { 620, 597, 432, 92}, { 393, 78, 409, 61},
-{ -393, -739, -413, -748}, { 83, 54, 361, 27}, {-1084, 130, -337, -694},
-{-1565, 297, 318, -19}, {-1873, 36, 51, -317}, {-2323, -246, 231, -84},
-{-2306, -783, 40, -179}, {-2233, -930, -474, -462}, { -754, -86, -288, -626},
-{-2411, -455, -63, 171}, {-1099,-1094, -26, -143}, {-1193, -455, -406, -381},
-{ -605, -210, -96, -51}, { -580, -476, -276, -15}, {-1195, -634,-1203, -881},
-{ -378, -221, -669, -952}, { 594, 178, -403, -676}, { 763, 327, 601, 290},
-{ 172, 300, 203, 157}, { -56, -336, 356, 24}, { -228, -296, -259, -29},
-{ -186, 263, 416, 14}, { -353, 373, -12, -216}, { 257, 96, 174, 57},
-{-1526, -616, -954, -499}, { -497, -152, -333, 125}, { 105, 200, 179, -97},
-{ -331, -224, 765, 697}, { 760, 256, 301, 59}, { 455, -85, 204, 288},
-{ -514, 240, 251, -109}, { 256, 417, -34, -413}, { 101, 430, 384, 156},
-{ -31, -10, 206, 426}, { 589, 145, 143, 71}, { 808, 906, 333, 349},
-{ 986, 938, 589, 331}, { 1300, 824, 187, 509}, { 1062, 653, 379, 466},
-{ 1462, 937, 401, 274}, { 787, 861, 265, 2}, { 609, 553, 28, 305},
-{ 926, 340, 106, 386}, { 241, -267, -147, 225}, { -178, -534, 347, 502},
-{ -643, -381, 397, 30}, { -651, -733, -435, 398}, { -407, -726, -484, -248},
-{ -789, -914, -438, -476}, { -498, -390, 75, -295}, { -964, -590, -606, 150},
-{ -121, -49, -155, -78}, { 935, 550, 389, 38}, { -321, 127, 424, 315},
-{ -285, -113, 283, 259}, { 658, 203, 322, 486}, { 903, 505, 748, 417},
-{ 611, 423, 555, 512}, { 239, -83, -578, -19}, { -339, -731, 349, 13},
-{ -934,-1399, -114, -360}, { 107, 692, 182, 90}, {-1243,-1538,-1551, -725},
-{ -568, -903,-1363, -525}, { -517, -853, -861,-1004}, { -168, -690, -835, 63},
-{ -137, -556, -547, 144}, { -286, -817, 485, 319}, { -147, -408, 526, 246},
-{ -347, -434, 297, -28}, { -290, -471,-1110,-1285}, { -460, -359, -988, -794},
-{ 1347, 1299, 690, 523}, { 1216, 1068, 1094, 757}, { 825, 1140, 752, 494},
-{ 1252, 1365, 1195, 898}, { 521, 1053, 532, 432}, { -334, -216, -313, -263},
-{ -160, 52, -472, -155}, { 127, 136, -380, 44}, { 851, 410, -162, -489},
-{ 123, -255, -796, -667}, { 1090, 917, 789, 493}, { 1397, 1197, 558, 202},
-{ -51, -118, -342, -701}, { 83, 108, -42, -441}, { 61, 95, 287, 256},
-{ -27, 89, 524, 531}, { 351, 227, 592, 545}, { 697, 155, -164, 307},
-{ 638, 274, -489, -50}, { 754, 240, -166, -124}, { -116, -579,-1212, -63},
-{ 190, -295,-1040,-1296}, { 147, -376, -177, -113}, { 841, 1241, 1051, 668},
-{ 2, 293, 551, 304}, {-1096, -953, -248, 376}, { -750, -965, 87, 516},
-{ -275, -516, 689, 391}, { -379, -643, 876, 594}, { -390,-1013, -645, 573},
-{ -107, -568, -689, -826}, {-1025, -27, -328, -203}, { 861, 749, 548, 233},
-{-1660,-1043, 451, 108}, { -660, -620, 430, 236}, { 21, -396,-1158, -631},
-{ 1372, 1298, 967, 577}, { 1125, 1125, 589, 454}, { -323, -865, -467, 153},
-{ -468, -699, -804, -509}, { -392, -718, -204, -35}, { -603,-1093, -567, -162},
-{ -505,-1004, -102, 350}, { 219, 224, 423, 252}, { 395, 591, 608, 363},
-{ -746, -96, 373, 172}, { 171, 295, 714, 339}, { 233, 77, 107, 277},
-{ 157, 153, -499, -356}, { 1547, 1073, 576, 494}, { -292, -339, -504, -592},
-{ -903, -72, -619, -481}, {-1594,-1117, -567, -254}, { -793, -507, -564, -291},
-{ -492, -532, 502, 560}, { -382, 427, 600, 230}, { -227, 477, 251, 75},
-{ 285, 842, 813, 476}, {-1310,-1333, 186, 377}, { -587, -917, 643, 381},
-{-1186, -553, 411, 82}, {-1127, -820, -174, -540}, { -604, 119, 543, 205},
-{ -380, 657, 909, 567}, { 112, -298, -374, 114}, { -857, -251, 56, 159},
-{ 401, 345, -34, -140}, { -111, -607, 41, 614}, { 355, -114, -77, 474},
-{ 578, 56, 1450, 924}, { 1098, 1420, 741, 400}, { 246, 22, 588, 313},
-{ -121, 327, 831, 472}, {-1138, -608, 856, 552}, {-1241,-1072, 638, 600},
-{ -358, 254, -333, -303}, { -646, 739, 358, 74}, { 1226, 1671, 1221, 849},
-{ 2241, 1624, 983, 636}, { 1841, 1477, 749, 384}, { 350, 263, 87, 128},
-{-1902, -941, -144, -64}, {-1734, -255, 288, -31}, {-2644,-1238, 366, 235},
-{-1643,-1092,-1344, -304}, { -541,-1075,-1116, 123}, {-1178, -252, -816, -180},
-{-1016, 533, 565, 233}, { -487, -430, -188, 334}, { 867, 1236, 534, 171},
-{-1590,-1607, 635, 630}, {-2196, 310, 924, 412}, {-2358, -328, 956, 529},
-{-2639, -377, 630, 278}, {-2602, 317, 799, 299}, {-2406, 133, 340, 31},
-{-2156,-1468, 131, 125}, {-1184, -490, -139, 46}, { -744, 447, 891, 564},
-{ 67, -451, 646, 604}, { -553, -429, -876, 396}, { 162, -66, 1305, 915},
-{ 479, 579, 1088, 794}, { 450, 278, 566, 324}, {-1057, -154, 148, -177},
-{-2545, 168, 1070, 592}, {-2351, -42, 819, 345}, {-2344, -707, 721, 250},
-{-2175,-1497, -309, 122}, { -78, -73, 120, 173}, { -4, 262, -263, -261},
-{ -431, -64, -405, -732}, {-2609, 116, -83, -193}, {-1525, -944, -477, -725},
-{ -508, 307, 170, 172}, { 832, 417, 832, 686}, { -225, 177, 894, 818},
-{ -482, -389, 1279, 1039}, { -383, 201, -350, 40}, { 730, 635, 226, 526},
-{ 503, 462, 338, 398}, { 535, 714, 40, -282}, { 1482, 1471, 1085, 731},
-{ 1561, 1072, 909, 693}, { 1419, 1282, 889, 879}, { 1153, 728, 1186, 840},
-{ -226, 1130, 949, 689}, { -494, -986,-1556, -128}, { -568, -721, -713, -26},
-{ 317, 524, 70, 135}, { -405, -865,-1766, -652}, { -174, -801, 885, 773},
-{ -153, -91, 1099, 751}, { -506,-1149, 853, 646}, { 241, 782, 519, 539},
-{ 1853, 1700, 1101, 684}, {-1249,-1486, -464, 188}, { -893,-1409,-1312, -341},
-{ -135, 438, -175, 18}, { 1111, 976, 319, 208}, {-1430,-1768, 83, 458},
-{ -530,-1000, 307, 129}, { -840, -15, -29, -356}, { -911, -924,-1147, -242},
-{ -119, -528, 127, -133}, { -761, -765, 190, -83}, { -315, 895, 522, 231},
-{ -222, 102, -63, -428}, { 316, 699, 379, 70}, { 25, 716, 314, -108},
-{ 507, 874, 566, 238}, { 108, 941, 519, 195}, { 425, -60, -427, 257},
-{ 139, -103, -630, 446}, { 334, 370, 412, 48}, { -172, -690, -283, 557},
-{ 187, -286, 158, 483}, { 140, 270, -344, -631}, { 924, 579, -116, 132},
-{ 142, 466, -68, -64}, { 230, -145, -302, -542}, { -803, -912, 1018, 737},
-{ -773, 1015, 630, 297}, {-2596, 95, 445, 336}, {-2122, 491, 510, 191},
-{-1253, 161, -2, -324}, {-1450, -633, -712, -105}, { -842, -254, -411, 100},
-{ -640, -290, 1010, 763}, { -650, 313, 1169, 730}, { 140, 505, 1030, 766},
-{ 772, 287, 1067, 823}, { 495, 749, 305, 323}, { -164, 462, 78, 399},
-{ -342, -874, 69, 597}, { -16, 620, 621, 337}, { -138, -444, -265, 218},
-{ 84, -450, 953, 666}, { -222, -803, 541, 604}, { -921,-1376, 244, 116},
-{ -841, -723, 630, 588}, { 140, 663, 294, 368}, { 935, 1046, 881, 759},
-{ 1746, 1464, 916, 628}, { 436, 963, 281, 1}, { -119, 74, 542, 213},
-{ 1, -567, 301, 241}, { 260, 435, 222, 396}, { 936, 957, 1108, 703},
-{ 510, 506, 808, 478}, { 601, 694, 960, 620}, { 972, 741, 980, 600},
-{ 834, 717, 767, 684}, { 643, 972, 935, 638}, { 501, 661, 720, 851},
-{ -105, -632, -303, -117}, { -429, 130, 789, 442}, { -522, -188, 704, 373},
-{ -759, 42, 814, 523}, { -531,-1137, 373, 578}, { -682,-1203, -455, 285},
-{-1163,-1577,-1098, 44}, { 81, -82, 712, 363}, { 477, 246, 954, 622},
-{ 1604, 1622, 1277, 891}, { 1409, 859, 924, 892}, { 774, 1041, 947, 1142},
-{ 40, -546, -75, 288}, { -616, -106, -697, -26}, { -169, -160, -891, -739},
-{ -279, -384,-1029, -350}, { 1781, 1308, 1046, 816}, { 1580, 1533, 1472, 1178},
-{ 1505, 1076, 1216, 899}, { 890, 904, 564, 654}, { 920, 692, 1021, 856},
-{ -493, 132, 177, 505}, { 71, 195, -28, 97}, { 456, 351, -164, 88},
-{ 439, 278, -40, 350}, { 1395, 949, 234, -95}, { -805, -472, 38, -163},
-{ 367, -98, 489, 523}, { 1025, 1178, 1212, 906}, { 319, 1314, 814, 461},
-{ -123, -543, -804, 447}, { -748, -324, -897,-1127}, { -737, -501, -789, -713},
-{ 715, 777, 1239, 922}, { 1949, 1939, 1368, 865}, { 730, 880, 758, 388},
-{ -871, 454, 17, -251}, { -381, -810,-1583, 239}, { -521, -966, -792, 259},
-{ -890,-1358, -770, -73}, { 166, 349, -212, 323}, { -840, -301, 473, 435},
-{ -679, -464, 728, 351}, { -156, -199, 667, 432}, { 29, -252, 415, 480},
-{ -731, -379, 145, 559}, { -528, -631,-1158, -159}, { 445, 273, 123, 639},
-{ 373, -126, 800, 568}, { 84, -162, 720, 712}, { -830, -536, -185, 222},
-{ 408, 452, 501, 771}, { -897,-1355, -67, 442}, { -792,-1406, 566, 602},
-{ 167, -326, 509, 330}, { -95, -626, -730, -344}, { 1668, 1217, 779, 455},
-{ 1316, 828, 584, 719}, { 404, -31, 1013, 789}, { 89, 107, 891, 549},
-{ 871, 1581, 917, 671}, { 866, 1479, 1289, 854}, { 391, 1068, 1122, 812},
-{ 78, -562, 345, 563}, { 429, -103, 417, 787}, { -122, -437, 411, 788},
-{ -913, -417, 602, 754}, { -226, -16, 151, 760}, { -700, 118, -104, -14},
-{-1128, 48, 284, 393}, { -390, -419, -639, -116}, { -910, 306, 316, -13},
-{ 1207, 984, 821, 669}, {-1195, -693, 140, -213}, { -884, -416, -199, -558},
-{ -616, 245, -404, -664}, { 262, 56, -617, -724}, { -85, -491, -320, -656},
-{ -570, -831, -129, -528}, {-1506, -63, -367, -385}, { -358, -321, 4, 51},
-{ -366, -214, 319, 511}, { 146, 671, -17, -291}, { -110, 464, -139, -496},
-{ -202, 220, -312, -631}, { -660, -73, -655, -820}, { -662, -653,-1288, -857},
-{ -430, -953, -959, -264}, { -49, -468, -72, -381}, { -350, -563, -193, -407},
-{ 55, -408, -803, 11}, { -309, 649, 188, -198}, { -512, 461, -79, -458},
-{-1318, -263, -134, -523}, {-1657, -435, -495, -765}, { 57, -347, -414, 434},
-{-1141, -242, -664, -857}, { 34, -68, -707, -338}
-};
-
-static const int16_t lsf_5_1[128][4] = {
-{ -451,-1065, -529,-1305}, { -450, -756, -497, -863}, { -384, -619, -413, -669},
-{ -317, -538, -331, -556}, { -414, -508, -424, -378}, { -274, -324, -434, -614},
-{ -226, -500, -232, -514}, { -263, -377, -298, -410}, { -151, -710, -174, -818},
-{ -149, -412, -156, -429}, { -288, -462, -186, -203}, { -170, -302, -191, -321},
-{ -131, -147, -297, -395}, { -228, -214, -245, -192}, { -67, -316, -71, -327},
-{ -104, -205, -94, -183}, { -143, -38, -193, -95}, { 16, -76, -124, -248},
-{ 23, -237, 24, -244}, { 18, -136, 44, -111}, { -33, -24, -25, 0},
-{ 149, 19, 23, -143}, { 158, -169, 174, -181}, { 133, -55, 165, -26},
-{ 111, 84, 98, 75}, { 87, 183, -115, -11}, { -8, 130, 11, 170},
-{ 254, 77, 205, 17}, { 183, 112, 262, 194}, { 202, 287, 95, 189},
-{ -42, -105, 234, 179}, { 39, 186, 163, 345}, { 332, 199, 299, 161},
-{ -54, 285, -78, 281}, { -133, 141, -182, 111}, { 249, 341, 271, 364},
-{ 93, 403, 75, 391}, { 92, 510, -138, 220}, { -185, -29, -34, 361},
-{ -115, 320, 3, 554}, { 99, 286, 218, 591}, { -245, 406, -268, 453},
-{ 0, 580, 25, 606}, { 275, 532, 148, 450}, { -73, 739, -285, 518},
-{ -288, 94, -203, 674}, { -140, -74, 205, 714}, { -114, 299, 176, 923},
-{ 182, 557, 240, 705}, { -16, 513, 485, 593}, { 293, 384, 451, 617},
-{ -38, 50, 563, 529}, { 303, 209, 459, 363}, { 433, 452, 450, 454},
-{ 367, 606, 477, 741}, { 432, 353, 368, 267}, { 361, 716, 273, 583},
-{ 453, 166, 510, 172}, { 201, 629, 274, 191}, { 568, 639, 302, 298},
-{ 634, 387, 643, 350}, { 587, 560, 612, 565}, { 600, 788, 487, 672},
-{ 512, 1015, 321, 333}, { 357, 854, -125, 413}, { 474, 712, 17, -151},
-{ 564, 285, 270, -241}, { 971, 889, 489, 220}, { 510, 896, 549, 924},
-{ 327, 825, 290, 911}, { 540, 1108, 158, 805}, { 199, 957, 511, 730},
-{ 100, 874, 13, 791}, { 435, 632, 676, 972}, { 249, 900, 467, 1218},
-{ 781, 1074, 585, 785}, { -23, 669, 267, 1043}, { 619, 1084, 615, 1145},
-{ 622, 905, 916, 1049}, { 80, 331, 584, 1075}, { 89, 639, 988, 961},
-{ 770, 720, 798, 699}, { 492, 447, 899, 627}, { 271, 1188, 725, 1333},
-{ 87, 603, 832, 1603}, { 616, 1127, 890, 1505}, { 1000, 1156, 866, 1009},
-{ 995, 827, 1149, 858}, { 817, 1450, 773, 1320}, { 500, 1389, 312, 1153},
-{ -20, 1084, 64, 1283}, { 2, 1172, 399, 1869}, { 514, 1706, 502, 1636},
-{ 886, 1522, 416, 600}, { 1131, 1350, 1275, 1390}, { 889, 1795, 914, 1766},
-{ 227, 1183, 1250, 1826}, { 505, 1854, 919, 2353}, { -199, 431, 152, 1735},
-{ -213, -28, 392, 1334}, { -153, -52, 978, 1151}, { -323, -400, 813, 1703},
-{ -136, 84, 1449, 2015}, { -331, -143, -137, 1192}, { -256, 534, -157, 1031},
-{ -307, -439, 542, 731}, { -329, -420, -97, 616}, { -362, -168, -322, 366},
-{ -247, -110, -211, 89}, { -196, -309, 20, 59}, { -364, -463, -286, 89},
-{ -336, 175, -432, 141}, { -379, -190, -434, -196}, { -79, 150, -278, -227},
-{ -280, 166, -555, -422}, { -155, 541, -366, 54}, { -29, -83, -301, -774},
-{ 186, 628, -397, -264}, { 242, 293, -197, -585}, { 124, 410, 53, -133},
-{ 10, 340, -570,-1065}, { 65, -446, 68, -493}, { 383, 937, -357, -711},
-{ -359, -250, -677,-1068}, { 292, -26, 363, 6}, { 607, 1313, -127, -10},
-{ 1513, 1886, 713, 972}, { 1469, 2181, 1443, 2016}
-};
-
-static const int16_t lsf_5_2[256][4] = {
-{-1631,-1600,-1796,-2290}, {-1027,-1770,-1100,-2025}, {-1277,-1388,-1367,-1534},
-{ -947,-1461, -972,-1524}, { -999,-1222,-1020,-1172}, { -815, -987, -992,-1371},
-{-1216,-1006,-1289,-1094}, { -744,-1268, -755,-1293}, { -862, -923, -905, -984},
-{ -678,-1051, -685,-1050}, {-1087, -985,-1062, -679}, { -989, -641,-1127, -976},
-{ -762, -654, -890, -806}, { -833,-1091, -706, -629}, { -621, -806, -640, -812},
-{ -775, -634, -779, -543}, { -996, -565,-1075, -580}, { -546, -611, -572, -619},
-{ -760, -290, -879, -526}, { -823, -462, -795, -253}, { -553, -415, -589, -439},
-{ -533, -340, -692, -935}, { -505, -772, -702,-1131}, { -263, -306, -971, -483},
-{ -445, -74, -555, -548}, { -614, -129, -693, -234}, { -396, -246, -475, -250},
-{ -265, -404, -376, -514}, { -417, -510, -300, -313}, { -334, -664, -463, -814},
-{ -386, -704, -337, -615}, { -234, -201, -233, -239}, { -167, -567, -203, -619},
-{ -147, -415, -115, -352}, { -166, -750, -171, -761}, { -270, -879, -264, -903},
-{ -367, -744, 43, -475}, { 14, -653, 43, -670}, { 11, -448, -59, -521},
-{ -126, -119, -155, -613}, { -42, -863, -27, -931}, { 136, -483, 183, -468},
-{ 55, -298, 55, -304}, { 313, -609, 313, -720}, { 322, -167, 100, -541},
-{ -3, -119, -111, -187}, { 233, -236, 260, -234}, { 26, -165, 134, -45},
-{ -40, -549, 360, -203}, { 378, -388, 450, -383}, { 275, 20, 182, -103},
-{ 246, -111, 431, 37}, { 462, -146, 487, -157}, { -284, -59, 503, -184},
-{ 24, 53, -3, 54}, { 122, 259, 333, 66}, { 484, 104, 436, 68},
-{ 195, 116, 190, 206}, { 269, -9, 482, 352}, { 382, 285, 399, 277},
-{ 452, 256, 69, 186}, { 13, 297, -13, 259}, { -95, 30, 56, 394},
-{ 196, 425, 205, 456}, { 281, 577, 15, 191}, { 375, 290, 407, 576},
-{ -56, 227, 544, 405}, { 0, 549, -92, 528}, { -229, 351, -245, 338},
-{ -362, 435, 167, 527}, { -75, 302, 91, 824}, { 129, 599, 496, 679},
-{ 186, 749, 153, 737}, { -281, 600, -348, 615}, { -236, 769, 41, 881},
-{ 38, 890, -220, 841}, { -357, 883, -393, 903}, { -634, 474, -444, 850},
-{ -175, 678, -493, 242}, { -519, 785, -714, 582}, { -541, 366, -543, 434},
-{ -597, 500, -765, 222}, { -702, 917, -743, 962}, { -869, 501, -899, 548},
-{ -379, 200, -435, 157}, { -819, 214, -861, 157}, { -614, 40, -632, 94},
-{ -883, -54, -741, 516}, { -501, 298, -614, -171}, { -870, -161, -865, -23},
-{ -818, 93,-1015, -267}, { -662, -359, -549, 2}, { -442, -121, -377, 0},
-{ -227, 33, -414, -126}, { -129, 212, -934, 34}, {-1082, -282,-1119, -268},
-{ -710, -825, -420, -191}, {-1076, -928, -917, -93}, { -628, -358, 97, 7},
-{ -206, -393, -101, 24}, { -203, 38, -168, 83}, { -599, -423, -279, 426},
-{ -700, 118, -75, 206}, { -981, -673, -680, 417}, { -367, 37, -279, 474},
-{ -129, -318, 319, 296}, { -626, -39, 343, 602}, { -696, -39, -303, 940},
-{ 104, 233, -380, 137}, { -36, 269, -75, -214}, { 120, 43, -529, -477},
-{ 459, 164, -202, -229}, { -49, -167, 609, 792}, { 98, -220, 915, 148},
-{ 293, 283, 869, 91}, { 575, 394, 326, -78}, { 717, 67, 365, -323},
-{ 616, -36, 731, 27}, { 619, 238, 632, 273}, { 448, 99, 801, 476},
-{ 869, 273, 685, 64}, { 789, 72, 1021, 217}, { 793, 459, 734, 360},
-{ 646, 480, 360, 322}, { 429, 464, 638, 430}, { 756, 363, 1000, 404},
-{ 683, 528, 602, 615}, { 655, 413, 946, 687}, { 937, 602, 904, 604},
-{ 555, 737, 786, 662}, { 467, 654, 362, 589}, { 929, 710, 498, 478},
-{ 415, 420, 693, 883}, { 813, 683, 781, 925}, { 913, 939, 726, 732},
-{ 491, 853, 531, 948}, { 734, 963, 315, 808}, { 761, 755, 1144, 760},
-{ 655, 1076, 826, 1057}, { 1091, 838, 1003, 808}, { 1047, 1133, 659, 1101},
-{ 992, 1050, 1074, 1075}, { 971, 694, 1226, 1054}, { 571, 841, 884, 1404},
-{ 1379, 1096, 1080, 861}, { 1231, 735, 1284, 760}, { 1272, 991, 1367, 1053},
-{ 1257, 700, 1050, 534}, { 988, 453, 1264, 599}, { 1140, 679, 1621, 815},
-{ 1384, 521, 1317, 393}, { 1564, 805, 1448, 686}, { 1068, 648, 875, 307},
-{ 1083, 361, 1047, 317}, { 1417, 964, 675, 571}, { 1152, 79, 1114, -47},
-{ 1530, 311, 1721, 314}, { 1166, 689, 514, -94}, { 349, 282, 1412, 328},
-{ 1025, 487, -65, 57}, { 805, 970, 36, 62}, { 769, -263, 791, -346},
-{ 637, 699, -137, 620}, { 534, 541, -735, 194}, { 711, 300, -268, -863},
-{ 926, 769, -708, -428}, { 506, 174, -892, -630}, { 435, 547,-1435, -258},
-{ 621, 471,-1018,-1368}, { -393, 521, -920, -686}, { -25, 20, -982,-1156},
-{ 340, 9,-1558,-1135}, { -352, 48,-1579, -402}, { -887, 6,-1156, -888},
-{ -548, -352,-1643,-1168}, { -159, 610,-2024, -963}, { -225, 193,-1656,-1960},
-{ -245, -493, -964,-1680}, { -936, -635,-1299,-1744}, {-1388, -604,-1540, -835},
-{-1397, -135,-1588, -290}, {-1670, -712,-2011,-1632}, {-1663, -27,-2258, -811},
-{-1157, 184,-1265, 189}, {-1367, 586,-2011, 201}, { -790, 712,-1210, 3},
-{-1033, 808,-1251, 830}, { -111, 635,-1636, 447}, { -463, -949, -445, -928},
-{ -504,-1162, -501,-1211}, { 144, -351, -372,-1052}, { -283,-1059, -279,-1123},
-{ -575,-1438, -587,-1614}, { -935, -984, 229, 690}, { -921, -719, -403, 1362},
-{ -685, -465, 874, 397}, { -509, -46, 317, 1334}, { -485, 456, 813, 439},
-{ -411, 339, 898, 1067}, { -425, 46, 1441, 497}, { -909, -800, 1465, 1046},
-{ -254, -321, 1430, 1165}, { 68, 350, 1034, 666}, { 370, 11, 1311, 790},
-{ 143, 232, 1041, 1562}, { -114, 663, 1616, 1078}, { 454, 579, 1275, 1040},
-{ -76, 909, 752, 1067}, { 153, 512, 348, 1214}, { 614, 385, 1843, 808},
-{ 269, 1034, 203, 1086}, { 652, 1017, 1783, 1130}, { 429, 1327, 387, 1384},
-{ -49, 1183, -72, 1215}, { -416, 1001, 544, 1749}, { -352, 1223, -502, 1199},
-{ -589, 569, -227, 1630}, { -142, 1578, -230, 1715}, { -714, 1288, -838, 1398},
-{ 1131, 1357, -208, 1232}, { 437, 965, -929, 818}, { 811, 1410, 859, 1507},
-{ 164, 1212, 1387, 1793}, { 484, 1874, 456, 2063}, { 996, 1170, 1326, 1402},
-{ 1316, 1360, 1135, 1262}, { 1234, 1618, 1361, 1768}, { 1421, 1227, 1584, 1347},
-{ 854, 672, 1685, 1566}, { 1139, 1270, 2016, 1825}, { 1773, 1581, 1532, 1460},
-{ 1487, 946, 1659, 1021}, { 1744, 1212, 1392, 977}, { 1772, 1161, 1826, 1164},
-{ 1718, 1429, 1973, 1591}, { 1185, 864, 2132, 1061}, { 1799, 814, 1838, 757},
-{ 2104, 1315, 2054, 1258}, { 2113, 915, 2331, 930}, { 1467, 1147, 2590, 1439},
-{ 2245, 1744, 2090, 1620}, { 2358, 1454, 2666, 1506}, { 1876, 1837, 2070, 1975},
-{ 1739, 1577, 682, 1289}, { 1584, 2045, 1454, 2098}, { 2498, 2004, 2711, 2066},
-{ 726, 1588, 2756, 2336}, { 228, 847, 2456, 1659}, { 36, 301, 1942, 1957},
-{ -446, -96, 2154, 1396}, { 1533, 1101, 14, 608}, { -923, -732, 1383, 1982},
-{ 1345, 952, -680, 321}, { 1281, 1268,-1594, 365}, { 941, 946,-1737, -822},
-{ 2374, 2787, 1821, 2788}
-};
-
-static const int16_t lsf_5_3[256][4] = {
-{-1812,-2275,-1879,-2537}, {-1640,-1848,-1695,-2004}, {-1220,-1912,-1221,-2106},
-{-1559,-1588,-1573,-1556}, {-1195,-1615,-1224,-1727}, {-1359,-1151,-1616,-1948},
-{-1274,-1391,-1305,-1403}, {-1607,-1179,-1676,-1311}, {-1443,-1478,-1367, -898},
-{-1256,-1059,-1331,-1134}, { -982,-1133,-1149,-1504}, {-1080,-1308,-1020,-1183},
-{ -980,-1486, -967,-1495}, { -988, -922,-1047,-1077}, { -838,-1179, -858,-1222},
-{-1131,-1041,-1064, -767}, { -872,-1157, -701, -880}, { -706, -906, -774,-1016},
-{ -578,-1080, -801,-1478}, { -591,-1111, -592,-1146}, { -713,-1388, -640,-1376},
-{ -597,-1059, -416, -903}, { -686, -832, -661, -708}, { -444, -868, -490, -921},
-{ -374, -776, -619,-1170}, { -585, -549, -769, -795}, { -435, -659, -530, -741},
-{ -498, -837, -357, -597}, { -279, -871, -243, -887}, { -282, -665, -280, -667},
-{ -165, -560, -394, -903}, { -362, -410, -448, -583}, { -409, -574, -313, -357},
-{ -637, -548, -570, -436}, { -896, -504, -382, -757}, { -58, -481, -165, -618},
-{ -191, -374, -234, -382}, { -222, -683, -25, -480}, { -418, -359, -730, -353},
-{ -324, -157, -432, -322}, { -394, -303, -284, -104}, { -601, -289, -556, -196},
-{ -588, -150, -659, -608}, { -473, -24, -68, -448}, { -474, -8, -506, -45},
-{ -748, -184, -844, -252}, { -901, -91, -584, -97}, { -652, 138, -764, -131},
-{ -678, -12, -670, 165}, { -259, -3, -840, -107}, { -909, 37, -992, 44},
-{ -854, -415, -839, 13}, {-1001, -271,-1026, -309}, { -798, -478, -832, -488},
-{ -943, 168,-1112, -387}, {-1185, -101,-1183, -40}, { -941, -316,-1030, -770},
-{-1044, -625,-1081, -538}, {-1224, -299,-1312, -436}, {-1197, -663,-1167, -161},
-{-1216, -690,-1237, -831}, {-1432, -720,-1403, -493}, { -898, -740, -922, -801},
-{-1102, -402,-1579, -964}, {-1061, -638,-1269,-1438}, {-1499, -934,-1502, -895},
-{-1598, -564,-1723, -717}, { -606, -597,-1166,-1085}, {-1369, -468,-1946,-1493},
-{-1838, -953,-1932, -931}, {-1499, -188,-1635, -421}, {-1457, -338,-1448, -22},
-{-1942, -422,-2006, -249}, { -496, -114,-1910, -755}, {-1289, 174,-1451, -109},
-{ -482, -257,-1221, -508}, {-1617, 151,-1694, 208}, { -654, 107,-1651, 29},
-{-1141, 279,-1215, 306}, {-1228, -506, -730, -175}, {-1236, -101, -969, 551},
-{ -870, 278, -823, 315}, { -563, 376,-1051, 228}, { -507, 280, -599, 281},
-{ -758, 253, -305, 379}, { -755, -134, -611, 660}, { -824, 536, -817, 646},
-{ -413, 49, -341, 177}, { -453, 526, -482, 589}, { -71, 339, -657, 264},
-{ -244, 295, -237, 315}, { -387, 569, -506, -9}, { -377, 14, -160, 661},
-{ -216, 40, -308, -46}, { 95, 214, -242, 167}, { -86, 192, -56, 27},
-{ -76, 31, 36, 309}, { -106, -182, -113, 74}, { -441, -22, 23, 139},
-{ 81, -11, 44, 15}, { -87, -137, -118, -207}, { -158, -58, 272, -92},
-{ -156, -441, 8, -136}, { 128, -221, 101, -218}, { 40, -197, -76, -456},
-{ 9, -445, 33, -423}, { 226, 60, 73, -222}, { 156, -399, 280, -318},
-{ 245, -341, 166, -499}, { 339, -190, 327, -219}, { 325, -137, -89, -596},
-{ 100, -627, 144, -677}, { 487, 28, 252, -391}, { 214, -41, 282, -28},
-{ 99, -286, 331, 49}, { 459, -388, 565, -369}, { 436, 28, 336, -9},
-{ 397, -167, 618, 34}, { 596, -17, 561, -140}, { 299, 79, 522, 125},
-{ 203, 2, 244, 288}, { 255, 211, 175, 82}, { 596, 187, 517, 108},
-{ 381, 255, 365, 297}, { 497, 352, 327, -82}, { 25, 210, 371, 245},
-{ 261, 3, 545, 449}, { 140, 294, 44, 295}, { 212, 347, 244, 494},
-{ 331, 528, 201, 307}, { 349, 411, 613, 284}, { 614, 413, 464, 322},
-{ 624, 397, 97, 200}, { -160, 384, 149, 362}, { 495, 525, 269, 585},
-{ 33, 491, -121, 433}, { 427, 611, 498, 516}, { 171, 443, 497, 666},
-{ 440, 275, 566, 575}, { 146, 639, 155, 670}, { -33, 173, 212, 696},
-{ -166, 601, -191, 695}, { -489, 503, 175, 742}, { 214, 476, 372, 1083},
-{ 578, 530, 586, 777}, { 425, 874, 315, 841}, { 374, 848, -165, 565},
-{ 35, 991, -39, 1062}, { 329, 712, 786, 840}, { 645, 795, 661, 676},
-{ 571, 918, 632, 1079}, { 673, 817, 318, 388}, { 874, 1012, 564, 848},
-{ 880, 620, 557, 479}, { 671, 453, 692, 468}, { 840, 642, 844, 645},
-{ 506, 428, 897, 567}, { 837, 387, 962, 499}, { 691, 561, 939, 926},
-{ 783, 296, 790, 268}, { 1028, 530, 874, 329}, { 548, 143, 675, 291},
-{ 503, 66, 1041, 359}, { 786, 97, 805, 33}, { 837, 470, 511, 49},
-{ 1092, 327, 1174, 323}, { 3, 242, 872, 474}, { 689, 429, 1329, 678},
-{ 1042, 620, 1109, 664}, { 321, 193, 889, 950}, { 1153, 874, 893, 635},
-{ 877, 862, 948, 913}, { 1293, 665, 1320, 639}, { 997, 793, 1402, 1030},
-{ 1176, 1012, 1110, 959}, { 1410, 925, 1403, 915}, { 543, 862, 1116, 1222},
-{ 835, 1190, 835, 1190}, { 959, 1148, 1147, 1376}, { 1300, 1193, 1415, 1231},
-{ 1335, 1341, 746, 1092}, { 1711, 1283, 1389, 1073}, { 1334, 1566, 1153, 1475},
-{ 1645, 1137, 1825, 1220}, { 1056, 1382, 1521, 1730}, { 1632, 1545, 1620, 1542},
-{ 855, 1596, 865, 1667}, { 693, 885, 1716, 1519}, { 1167, 1296, 2209, 1760},
-{ 1952, 1493, 2020, 1482}, { 1534, 1866, 1694, 2008}, { 1566, 748, 1761, 825},
-{ 294, 1392, 1084, 2058}, { 621, 1315, 365, 1287}, { 198, 1028, 488, 1408},
-{ 249, 403, 1014, 1561}, { 324, 363, 1645, 1044}, { 193, 367, 2034, 1859},
-{ -251, 579, 750, 994}, { -243, 30, 1325, 879}, { -28, -169, 624, 917},
-{ -453, 159, 186, 1370}, { -614, 6, 537, 392}, { -94, -291, 781, 229},
-{ -128, -298, 245, 491}, { -701, -648, 972, 789}, { -501, -640, 178, 255},
-{ -365, -390, -255, 317}, { -958, -294, -191, 228}, { -775, -447, 157, -237},
-{ -657, -720, -407, 92}, { -117, -611, 334, -230}, { -679,-1084, -144, -317},
-{ -901, -861, -738, -360}, { -85, -727, -90, -787}, { 100, -22, -391, -263},
-{ -56, -73, -337, -754}, { 5, -189, -706, -624}, { 89, -344, -135,-1113},
-{ -353, -237, -684,-1135}, { -275,-1102, -269,-1203}, { 152, 145, -722,-1232},
-{ 49, 80,-1248, -776}, { -248, 391, -732, -547}, { 469, 218, -255, -864},
-{ 69, 366, -166, -485}, { -688, 191,-1212,-1196}, { -170, -169,-1308,-1631},
-{ 321, 470,-1419,-1243}, { -64, 272,-1361, -248}, { 492, 565, -721, -609},
-{ 195, 485, -573, -133}, { 427, 202, -171, -118}, { 199, 575, 2, -31},
-{ 694, 755,-1366, -39}, { 552, 557, -489, 271}, { 680, 537, 13, -453},
-{ 855, 954, -133, -52}, { -81, 738,-1169, 637}, { 1055, 1059, -95, 676},
-{ 1259, 1081, 489, 305}, { -449, 954, -534, 996}, { -969, 866,-1058, 1059},
-{-1294, 618,-1416, 617}, { -458, 1366, -159, 1821}, { -774, -528, -14, 1110},
-{-1202, -901, -772, 433}, {-1256,-1255,-1011, -302}, { -602, -585, -759,-1618},
-{ -760,-1549, -840,-1921}, { -816, -539,-1769,-2235}, { -227, -36,-2034,-1831},
-{-2107,-1126,-2471,-1816}, {-1470, 252,-2701, -415}, { -571, -467, 1509, 1554},
-{ 2180, 1975, 2326, 2020}
-};
-
-static const int16_t lsf_5_4[256][4] = {
-{-1857,-1681,-1857,-1755}, {-2056,-1150,-2134,-1654}, {-1619,-1099,-1704,-1131},
-{-1345,-1608,-1359,-1638}, {-1338,-1293,-1325,-1265}, {-1664,-1649,-1487, -851},
-{-1346,-1832,-1413,-2188}, {-1282, -681,-1785,-1649}, { -966,-1082,-1183,-1676},
-{-1054,-1073,-1142,-1158}, {-1207, -744,-1274, -997}, { -934,-1383, -927,-1416},
-{-1010,-1305, -783, -955}, {-1049, -900, -993, -817}, { -737, -823, -972,-1189},
-{ -738,-1094, -738,-1154}, { -784, -801, -810, -786}, { -892, -520,-1000, -818},
-{ -644, -965, -577, -882}, { -541, -694, -671, -917}, { -595, -642, -646, -615},
-{ -956, -621, -925, -515}, { -727, -483, -815, -485}, { -840, -578, -440, -713},
-{ -578, -325, -657, -670}, { -386, -570, -441, -666}, { -514, -787, -392, -529},
-{ -522, -453, -487, -423}, { -616, -585, -617, -157}, { -662, -268, -680, -348},
-{ -322, -323, -632, -444}, { -304, -430, -332, -458}, { -277, -468, -659, -793},
-{ -319, -636, -227, -554}, { -373, -347, -334, -210}, { -456, -192, -530, -242},
-{ -216, -198, -366, -370}, { -338, -161, -409, -748}, { -107, -380, -294, -643},
-{ -223, -665, -234, -741}, { -141, -496, -130, -510}, { -139, -327, -172, -305},
-{ -306, -580, -164, -263}, { -262, -172, -67, -402}, { 31, -366, -10, -436},
-{ -86, -527, 71, -377}, { -22, -609, -12, -678}, { -67, -319, 63, -191},
-{ 35, -181, -39, -242}, { 126, -167, -140, -544}, { 155, -297, 174, -297},
-{ 38, -8, 117, -380}, { 197, -452, 240, -522}, { 223, -103, 110, -187},
-{ 87, -155, 169, -47}, { 157, 26, -83, -100}, { 128, 80, 209, -62},
-{ 6, 7, 22, 5}, { 318, -20, 248, -45}, { -200, -63, 156, -69},
-{ 250, -183, 369, -126}, { -113, -76, -142, -122}, { -64, -254, -31, 35},
-{ -177, -71, -7, 171}, { 93, 27, 108, 212}, { -330, -209, -123, -70},
-{ -279, 95, -96, 20}, { -188, -61, -314, 87}, { -300, -78, -354, -134},
-{ 11, 122, -140, 122}, { -275, 152, -293, 140}, { -82, 138, -321, -111},
-{ -480, -156, -359, 76}, { -254, -40, -635, -96}, { -522, 79, -507, 8},
-{ -268, 303, -539, 68}, { -446, 61, -522, 306}, { 111, 189, -435, 122},
-{ -379, 166, -571, -398}, { -632, -74, -747, -95}, { -455, 194, -952, 83},
-{ -798, 192, -755, 192}, { -781, -162, -619, 234}, { -663, -297, -488, -109},
-{ -964, -132, -838, -68}, { -843, 58,-1112, -86}, { -805, -299, -944, -253},
-{ -778, -50, -965, -549}, { -352, -98, -992, -343}, {-1117, -315,-1117, -307},
-{-1155, -374, -637, -230}, {-1166, -43,-1299, -100}, { -925, -393,-1274, -600},
-{ -689, -130,-1479, -312}, {-1321, -254,-1464, -442}, {-1292, -613,-1261, -503},
-{-1501, -368,-1322, 26}, {-1432, -66,-1743, -161}, {-1644, -467,-1760, -548},
-{-1393, -568,-1556, -871}, {-1495,-1034,-1387, -571}, {-1917, -528,-1783, -123},
-{-1897, -231,-2054, -323}, {-2052, -906,-1976, -567}, {-1917, -620,-2047, -989},
-{-1077, -370,-2031, -704}, {-2355, -749,-2740,-1089}, {-1909, 159,-2012, 248},
-{ -626, -123,-2339, -962}, { -669, -408,-1379,-1174}, { -452, -364,-1044, -735},
-{ -132, 183,-1620, -752}, { -547, -307, -777,-1261}, { -98, 41, -880,-1091},
-{ -257, 97,-1602,-1833}, { 31, -26, -644, -561}, { -180, -546, -385,-1095},
-{ -410, -802, -414, -827}, { -457, -970, -490,-1109}, { -215, -916, -144, -937},
-{ -493,-1269, -517,-1507}, { 181, 101, -332, -889}, { -836, -937, -559, -429},
-{ -629, -547, -183, -337}, { -545, -82, -250, -286}, { 5, -132, -348, -252},
-{ -293, -472, -158, 100}, { -29, 197, -236, -424}, { -861, -213, -140, -7},
-{ -427, -443, 187, -97}, { -684, -736, -293, 258}, { -368, -152, -150, 392},
-{ -609, 175, -142, 299}, { -138, 152, -119, 329}, { -486, -52, 293, 198},
-{ -183, 117, 175, 331}, { -58, -274, 231, 300}, { -288, 330, -305, 372},
-{ -111, 409, -9, 423}, { 83, 256, 67, 367}, { -19, 248, 91, 113},
-{ -35, 406, -191, 154}, { 238, 296, 5, 197}, { 141, 221, 313, 198},
-{ 211, 421, 244, 334}, { 88, 426, -243, 454}, { 202, 552, -5, 403},
-{ 291, 185, 219, 301}, { 251, 138, 128, 69}, { 197, 288, -140, -61},
-{ 188, 361, 197, 598}, { 442, 273, 290, 143}, { 472, 482, 157, 370},
-{ 415, 321, 372, 385}, { 402, 552, 155, 24}, { 550, 263, -11, 21},
-{ 360, 227, 147, -254}, { 424, 97, 366, -13}, { 375, 141, 449, 232},
-{ 396, 507, 474, 272}, { 701, 324, 362, -47}, { 587, 148, 543, 69},
-{ 400, -51, 561, 59}, { 220, -10, 352, 147}, { 206, 211, 653, 185},
-{ 563, 297, 565, 284}, { 594, 121, 766, 192}, { 398, 118, 642, 434},
-{ 233, 264, 481, 467}, { 129, -165, 699, 239}, { 90, 26, 342, 474},
-{ -55, 27, 388, 94}, { -172, 0, 725, 379}, { -60, 337, 370, 465},
-{ 95, 319, 806, 595}, { 78, 260, 497, 851}, { 210, 560, 458, 574},
-{ -464, 202, 497, 625}, { -202, 152, 48, 712}, { -20, 566, 100, 715},
-{ 455, 468, 411, 605}, { 319, 646, 195, 615}, { 401, 538, 680, 739},
-{ 201, 667, 434, 954}, { 454, 425, 646, 491}, { 606, 681, 416, 508},
-{ 497, 822, 426, 815}, { 660, 647, 628, 716}, { 697, 466, 618, 457},
-{ 685, 460, 365, 309}, { 721, 567, 836, 601}, { 609, 300, 825, 459},
-{ 943, 687, 681, 533}, { 915, 598, 591, 243}, { 876, 451, 874, 420},
-{ 786, 317, 732, 220}, { 922, 317, 1108, 367}, { 531, 466, 1028, 649},
-{ 1053, 615, 1034, 553}, { 829, 602, 1021, 799}, { 927, 803, 878, 763},
-{ 799, 496, 1373, 773}, { 585, 770, 803, 930}, { 1099, 793, 1222, 862},
-{ 1209, 895, 1025, 727}, { 772, 845, 1172, 1115}, { 867, 1021, 830, 1013},
-{ 841, 910, 506, 703}, { 1239, 1077, 620, 819}, { 1196, 1083, 1155, 1081},
-{ 1142, 907, 1547, 1121}, { 1309, 648, 1343, 612}, { 1484, 988, 1479, 937},
-{ 985, 1328, 955, 1341}, { 429, 910, 841, 1338}, { 564, 1179, 412, 1156},
-{ 1427, 1320, 1434, 1330}, { 640, 760, 1726, 1410}, { 190, 555, 1073, 1005},
-{ 426, 257, 839, 980}, { 235, 231, 1520, 1167}, { 109, 293, 1014, 1569},
-{ 305, 142, 1148, 539}, { -291, -108, 1213, 972}, { 22, -216, 667, 828},
-{ -482, 438, 453, 1431}, { -581, -422, 789, 387}, { -358, -454, 174, 780},
-{ -36, -372, 390, -134}, { -629, 160, -306, 751}, {-1258, -331, 177, 522},
-{ -248, 574, -251, 639}, { -531, 407, -596, 394}, { -419, 789, -617, 801},
-{ -986, 399, -857, 727}, { -7, 518, -703, 310}, {-1143, -24,-1002, 287},
-{ -960, 363,-1299, 312}, {-1534, 245,-1557, 305}, { 28, 153, -859, -175},
-{ -33, 332,-1398, -154}, { 212, 410, -593, -197}, {-1092, -704, -904, -65},
-{ 282, 367, -918, -686}, { 345, 93, -258, -357}, { 696, 644, -693, -28},
-{ 448, 493, -273, 193}, { 527, 546, -243, -513}, { 384, -136, 273, -353},
-{ 512, -142, 537, -198}, { 941, 750, 83, 248}, { 578, 861, -56, 592},
-{ 842, 44, 892, 24}, { 33, 890, -16, 982}, { 831, 1398, 1535, 1898},
-{ 1716, 1376, 1948, 1465}
-};
-
-static const int16_t lsf_5_5[64][4] = {
-{-1002, -929,-1096,-1203}, { -641, -931, -604, -961}, { -779, -673, -835, -788},
-{ -416, -664, -458, -766}, { -652, -521, -662, -495}, {-1023, -509,-1023, -428},
-{ -444, -552, -368, -449}, { -479, -211,-1054, -903}, { -316, -249, -569, -591},
-{ -569, -275, -541, -191}, { -716, -188, -842, -264}, { -333, -248, -318, -228},
-{ -275, 1, -567, -228}, { -115, -221, -238, -374}, { -197, -507, -222, -579},
-{ -258, -432, -61, -244}, { -345, 2, -338, 39}, { -215, -169, -58, 0},
-{ -56, -6, -203, -131}, { 1, -186, -5, -211}, { 6, -380, 11, -418},
-{ -116, 131, -134, 113}, { 89, -4, 71, -2}, { -19, -192, 262, 24},
-{ 189, 151, -133, -109}, { 186, -153, 166, -219}, { 37, 139, 193, 171},
-{ 337, 124, 158, -61}, { 141, 226, -13, 190}, { 231, 34, 354, 109},
-{ 316, 201, 244, 164}, { 330, -85, 390, -84}, { 254, 327, 257, 335},
-{ 491, 147, 476, 105}, { 54, 77, 437, 370}, { 421, 314, 449, 342},
-{ 329, 126, 673, 292}, { 571, 388, 243, 193}, { 653, 320, 621, 280},
-{ 194, 380, 517, 581}, { 45, 323, 111, 422}, { 489, 395, 734, 534},
-{ 622, 546, 486, 502}, { 318, 572, 189, 550}, { 385, 422, -157, 153},
-{ -125, 382, -197, 386}, { -263, 334, 228, 697}, { -188, 1, 51, 297},
-{ -507, 213, -376, 397}, { -24, 255, -547, 89}, { -502, -94, 387, 179},
-{ -620, 68, -684, 112}, { -642, -350, -260, 172}, { -438, -324, 264, 648},
-{ -964, -4,-1121, 7}, { -134, 134,-1133, -306}, { 143, 96, -420, -497},
-{-1221, -350,-1527, -685}, { -161, 72, 873, 691}, { 732, 283, 921, 353},
-{ 334, 475, 1095, 821}, { 864, 524, 843, 497}, { 714, 711, 788, 750},
-{ 1076, 714, 1204, 753}
-};
-
-static const float lsf_3_mean[LP_FILTER_ORDER] = {
- 377.441, 554.688, 922.363, 1339.84, 1702.15,
- 2046.390, 2452.880, 2741.460, 3116.70, 3348.14
-};
-
-static const float lsf_5_mean[LP_FILTER_ORDER] = {
- 337.891, 507.080, 834.961, 1247.07, 1646.00,
- 1982.910, 2407.960, 2708.010, 3104.00, 3344.97
-};
-
-/** Prediction factor table for modes other than 12.2kbit/s */
-static const float pred_fac[LP_FILTER_ORDER] = {
- 0.291626, 0.328644, 0.383636, 0.405640, 0.438873,
- 0.355560, 0.323120, 0.298065, 0.262238, 0.197876,
-};
-
-// fixed tables
-
-/**
- * number of pulses per mode
- */
-static const uint8_t pulses_nb_per_mode[] = {2, 2, 2, 3, 4, 4, 8, 10};
-
-/** track start positions for algebraic code book routines */
-static const uint8_t track_position[16] = {
- 0, 2, 0, 3, 0, 2, 0, 3, 1, 3, 2, 4, 1, 4, 1, 4
-};
-
-/** 3-bit Gray code to binary lookup table */
-static const uint8_t gray_decode[8] = { 0, 5, 15, 10, 25, 30, 20, 35 };
-
-
-// gain tables
-
-/** scalar quantized pitch gain table for 7.95 and 12.2 kbps modes */
-static const uint16_t qua_gain_pit[16] = {
- 0, 3277, 6556, 8192, 9830, 11469, 12288, 13107,
- 13926, 14746, 15565, 16384, 17203, 18022, 18842, 19661
-};
-
-/** scalar quantized fixed gain table for 7.95 and 12.2 kbps modes */
-static const uint16_t qua_gain_code[32] = {
- 159, 206, 268, 349, 419, 482, 554, 637,
- 733, 842, 969, 1114, 1281, 1473, 1694, 1948,
- 2241, 2577, 2963, 3408, 3919, 4507, 5183, 5960,
- 6855, 7883, 9065, 10425, 12510, 16263, 21142, 27485
-};
-
-/** desired mean innovation energy, indexed by active mode */
-static const float energy_mean[8] = {
- 33.0, 33.0, 33.0, 28.75, 30.0, 36.0, 33.0, 36.0
-};
-
-/** 4-tap moving average prediction coefficients in reverse order */
-static const float energy_pred_fac[4] = { 0.19, 0.34, 0.58, 0.68 };
-
-/** gain table for 4.75 kbps mode
- *
- * first index has even/odd indexes for subframes 0,2/1,3
- * second index is {pitch_gain, fixed_gain_factor} */
-static const uint16_t gains_MODE_4k75[512][2] = {
-{ 812, 128}, { 542, 140}, { 2873, 1135}, { 2266, 3402}, { 2067, 563},
-{12677, 647}, { 4132, 1798}, { 5601, 5285}, { 7689, 374}, { 3735, 441},
-{10912, 2638}, {11807, 2494}, {20490, 797}, { 5218, 675}, { 6724, 8354},
-{ 5282, 1696}, { 1488, 428}, { 5882, 452}, { 5332, 4072}, { 3583, 1268},
-{ 2469, 901}, {15894, 1005}, {14982, 3271}, {10331, 4858}, { 3635, 2021},
-{ 2596, 835}, {12360, 4892}, {12206, 1704}, {13432, 1604}, { 9118, 2341},
-{ 3968, 1538}, { 5479, 9936}, { 3795, 417}, { 1359, 414}, { 3640, 1569},
-{ 7995, 3541}, {11405, 645}, { 8552, 635}, { 4056, 1377}, {16608, 6124},
-{11420, 700}, { 2007, 607}, {12415, 1578}, {11119, 4654}, {13680, 1708},
-{11990, 1229}, { 7996, 7297}, {13231, 5715}, { 2428, 1159}, { 2073, 1941},
-{ 6218, 6121}, { 3546, 1804}, { 8925, 1802}, { 8679, 1580}, {13935, 3576},
-{13313, 6237}, { 6142, 1130}, { 5994, 1734}, {14141, 4662}, {11271, 3321},
-{12226, 1551}, {13931, 3015}, { 5081,10464}, { 9444, 6706}, { 1689, 683},
-{ 1436, 1306}, { 7212, 3933}, { 4082, 2713}, { 7793, 704}, {15070, 802},
-{ 6299, 5212}, { 4337, 5357}, { 6676, 541}, { 6062, 626}, {13651, 3700},
-{11498, 2408}, {16156, 716}, {12177, 751}, { 8065,11489}, { 6314, 2256},
-{ 4466, 496}, { 7293, 523}, {10213, 3833}, { 8394, 3037}, { 8403, 966},
-{14228, 1880}, { 8703, 5409}, {16395, 4863}, { 7420, 1979}, { 6089, 1230},
-{ 9371, 4398}, {14558, 3363}, {13559, 2873}, {13163, 1465}, { 5534, 1678},
-{13138,14771}, { 7338, 600}, { 1318, 548}, { 4252, 3539}, {10044, 2364},
-{10587, 622}, {13088, 669}, {14126, 3526}, { 5039, 9784}, {15338, 619},
-{ 3115, 590}, {16442, 3013}, {15542, 4168}, {15537, 1611}, {15405, 1228},
-{16023, 9299}, { 7534, 4976}, { 1990, 1213}, {11447, 1157}, {12512, 5519},
-{ 9475, 2644}, { 7716, 2034}, {13280, 2239}, {16011, 5093}, { 8066, 6761},
-{10083, 1413}, { 5002, 2347}, {12523, 5975}, {15126, 2899}, {18264, 2289},
-{15827, 2527}, {16265,10254}, {14651,11319}, { 1797, 337}, { 3115, 397},
-{ 3510, 2928}, { 4592, 2670}, { 7519, 628}, {11415, 656}, { 5946, 2435},
-{ 6544, 7367}, { 8238, 829}, { 4000, 863}, {10032, 2492}, {16057, 3551},
-{18204, 1054}, { 6103, 1454}, { 5884, 7900}, {18752, 3468}, { 1864, 544},
-{ 9198, 683}, {11623, 4160}, { 4594, 1644}, { 3158, 1157}, {15953, 2560},
-{12349, 3733}, {17420, 5260}, { 6106, 2004}, { 2917, 1742}, {16467, 5257},
-{16787, 1680}, {17205, 1759}, { 4773, 3231}, { 7386, 6035}, {14342,10012},
-{ 4035, 442}, { 4194, 458}, { 9214, 2242}, { 7427, 4217}, {12860, 801},
-{11186, 825}, {12648, 2084}, {12956, 6554}, { 9505, 996}, { 6629, 985},
-{10537, 2502}, {15289, 5006}, {12602, 2055}, {15484, 1653}, {16194, 6921},
-{14231, 5790}, { 2626, 828}, { 5615, 1686}, {13663, 5778}, { 3668, 1554},
-{11313, 2633}, { 9770, 1459}, {14003, 4733}, {15897, 6291}, { 6278, 1870},
-{ 7910, 2285}, {16978, 4571}, {16576, 3849}, {15248, 2311}, {16023, 3244},
-{14459,17808}, {11847, 2763}, { 1981, 1407}, { 1400, 876}, { 4335, 3547},
-{ 4391, 4210}, { 5405, 680}, {17461, 781}, { 6501, 5118}, { 8091, 7677},
-{ 7355, 794}, { 8333, 1182}, {15041, 3160}, {14928, 3039}, {20421, 880},
-{14545, 852}, {12337,14708}, { 6904, 1920}, { 4225, 933}, { 8218, 1087},
-{10659, 4084}, {10082, 4533}, { 2735, 840}, {20657, 1081}, {16711, 5966},
-{15873, 4578}, {10871, 2574}, { 3773, 1166}, {14519, 4044}, {20699, 2627},
-{15219, 2734}, {15274, 2186}, { 6257, 3226}, {13125,19480}, { 7196, 930},
-{ 2462, 1618}, { 4515, 3092}, {13852, 4277}, {10460, 833}, {17339, 810},
-{16891, 2289}, {15546, 8217}, {13603, 1684}, { 3197, 1834}, {15948, 2820},
-{15812, 5327}, {17006, 2438}, {16788, 1326}, {15671, 8156}, {11726, 8556},
-{ 3762, 2053}, { 9563, 1317}, {13561, 6790}, {12227, 1936}, { 8180, 3550},
-{13287, 1778}, {16299, 6599}, {16291, 7758}, { 8521, 2551}, { 7225, 2645},
-{18269, 7489}, {16885, 2248}, {17882, 2884}, {17265, 3328}, { 9417,20162},
-{11042, 8320}, { 1286, 620}, { 1431, 583}, { 5993, 2289}, { 3978, 3626},
-{ 5144, 752}, {13409, 830}, { 5553, 2860}, {11764, 5908}, {10737, 560},
-{ 5446, 564}, {13321, 3008}, {11946, 3683}, {19887, 798}, { 9825, 728},
-{13663, 8748}, { 7391, 3053}, { 2515, 778}, { 6050, 833}, { 6469, 5074},
-{ 8305, 2463}, { 6141, 1865}, {15308, 1262}, {14408, 4547}, {13663, 4515},
-{ 3137, 2983}, { 2479, 1259}, {15088, 4647}, {15382, 2607}, {14492, 2392},
-{12462, 2537}, { 7539, 2949}, {12909,12060}, { 5468, 684}, { 3141, 722},
-{ 5081, 1274}, {12732, 4200}, {15302, 681}, { 7819, 592}, { 6534, 2021},
-{16478, 8737}, {13364, 882}, { 5397, 899}, {14656, 2178}, {14741, 4227},
-{14270, 1298}, {13929, 2029}, {15477, 7482}, {15815, 4572}, { 2521, 2013},
-{ 5062, 1804}, { 5159, 6582}, { 7130, 3597}, {10920, 1611}, {11729, 1708},
-{16903, 3455}, {16268, 6640}, { 9306, 1007}, { 9369, 2106}, {19182, 5037},
-{12441, 4269}, {15919, 1332}, {15357, 3512}, {11898,14141}, {16101, 6854},
-{ 2010, 737}, { 3779, 861}, {11454, 2880}, { 3564, 3540}, { 9057, 1241},
-{12391, 896}, { 8546, 4629}, {11561, 5776}, { 8129, 589}, { 8218, 588},
-{18728, 3755}, {12973, 3149}, {15729, 758}, {16634, 754}, {15222,11138},
-{15871, 2208}, { 4673, 610}, {10218, 678}, {15257, 4146}, { 5729, 3327},
-{ 8377, 1670}, {19862, 2321}, {15450, 5511}, {14054, 5481}, { 5728, 2888},
-{ 7580, 1346}, {14384, 5325}, {16236, 3950}, {15118, 3744}, {15306, 1435},
-{14597, 4070}, {12301,15696}, { 7617, 1699}, { 2170, 884}, { 4459, 4567},
-{18094, 3306}, {12742, 815}, {14926, 907}, {15016, 4281}, {15518, 8368},
-{17994, 1087}, { 2358, 865}, {16281, 3787}, {15679, 4596}, {16356, 1534},
-{16584, 2210}, {16833, 9697}, {15929, 4513}, { 3277, 1085}, { 9643, 2187},
-{11973, 6068}, { 9199, 4462}, { 8955, 1629}, {10289, 3062}, {16481, 5155},
-{15466, 7066}, {13678, 2543}, { 5273, 2277}, {16746, 6213}, {16655, 3408},
-{20304, 3363}, {18688, 1985}, {14172,12867}, {15154,15703}, { 4473, 1020},
-{ 1681, 886}, { 4311, 4301}, { 8952, 3657}, { 5893, 1147}, {11647, 1452},
-{15886, 2227}, { 4582, 6644}, { 6929, 1205}, { 6220, 799}, {12415, 3409},
-{15968, 3877}, {19859, 2109}, { 9689, 2141}, {14742, 8830}, {14480, 2599},
-{ 1817, 1238}, { 7771, 813}, {19079, 4410}, { 5554, 2064}, { 3687, 2844},
-{17435, 2256}, {16697, 4486}, {16199, 5388}, { 8028, 2763}, { 3405, 2119},
-{17426, 5477}, {13698, 2786}, {19879, 2720}, { 9098, 3880}, {18172, 4833},
-{17336,12207}, { 5116, 996}, { 4935, 988}, { 9888, 3081}, { 6014, 5371},
-{15881, 1667}, { 8405, 1183}, {15087, 2366}, {19777, 7002}, {11963, 1562},
-{ 7279, 1128}, {16859, 1532}, {15762, 5381}, {14708, 2065}, {20105, 2155},
-{17158, 8245}, {17911, 6318}, { 5467, 1504}, { 4100, 2574}, {17421, 6810},
-{ 5673, 2888}, {16636, 3382}, { 8975, 1831}, {20159, 4737}, {19550, 7294},
-{ 6658, 2781}, {11472, 3321}, {19397, 5054}, {18878, 4722}, {16439, 2373},
-{20430, 4386}, {11353,26526}, {11593, 3068}, { 2866, 1566}, { 5108, 1070},
-{ 9614, 4915}, { 4939, 3536}, { 7541, 878}, {20717, 851}, { 6938, 4395},
-{16799, 7733}, {10137, 1019}, { 9845, 964}, {15494, 3955}, {15459, 3430},
-{18863, 982}, {20120, 963}, {16876,12887}, {14334, 4200}, { 6599, 1220},
-{ 9222, 814}, {16942, 5134}, { 5661, 4898}, { 5488, 1798}, {20258, 3962},
-{17005, 6178}, {17929, 5929}, { 9365, 3420}, { 7474, 1971}, {19537, 5177},
-{19003, 3006}, {16454, 3788}, {16070, 2367}, { 8664, 2743}, { 9445,26358},
-{10856, 1287}, { 3555, 1009}, { 5606, 3622}, {19453, 5512}, {12453, 797},
-{20634, 911}, {15427, 3066}, {17037,10275}, {18883, 2633}, { 3913, 1268},
-{19519, 3371}, {18052, 5230}, {19291, 1678}, {19508, 3172}, {18072,10754},
-{16625, 6845}, { 3134, 2298}, {10869, 2437}, {15580, 6913}, {12597, 3381},
-{11116, 3297}, {16762, 2424}, {18853, 6715}, {17171, 9887}, {12743, 2605},
-{ 8937, 3140}, {19033, 7764}, {18347, 3880}, {20475, 3682}, {19602, 3380},
-{13044,19373}, {10526,23124}
-};
-
-/** gain table for 6.70, 7.40 and 10.2 kbps modes
- *
- * second index is {pitch_gain, fixed_gain_factor} */
-static const uint16_t gains_high[128][2] = {
-{ 577, 662}, { 806, 1836}, { 3109, 1052}, { 4181, 1387}, { 2373, 1425},
-{ 3248, 1985}, { 1827, 2320}, { 941, 3314}, { 2351, 2977}, { 3616, 2420},
-{ 3451, 3096}, { 2955, 4301}, { 1848, 4500}, { 3884, 5416}, { 1187, 7210},
-{ 3083, 9000}, { 7384, 883}, { 5962, 1506}, { 5155, 2134}, { 7944, 2009},
-{ 6507, 2250}, { 7670, 2752}, { 5952, 3016}, { 4898, 3764}, { 6989, 3588},
-{ 8174, 3978}, { 6064, 4404}, { 7709, 5087}, { 5523, 6021}, { 7769, 7126},
-{ 6060, 7938}, { 5594,11487}, {10581, 1356}, { 9049, 1597}, { 9794, 2035},
-{ 8946, 2415}, {10296, 2584}, { 9407, 2734}, { 8700, 3218}, { 9757, 3395},
-{10177, 3892}, { 9170, 4528}, {10152, 5004}, { 9114, 5735}, {10500, 6266},
-{10110, 7631}, { 8844, 8727}, { 8956,12496}, {12924, 976}, {11435, 1755},
-{12138, 2328}, {11388, 2368}, {10700, 3064}, {12332, 2861}, {11722, 3327},
-{11270, 3700}, {10861, 4413}, {12082, 4533}, {11283, 5205}, {11960, 6305},
-{11167, 7534}, {12128, 8329}, {10969,10777}, {10300,17376}, {13899, 1681},
-{12580, 2045}, {13265, 2439}, {14033, 2989}, {13452, 3098}, {12396, 3658},
-{13510, 3780}, {12880, 4272}, {13533, 4861}, {12667, 5457}, {13854, 6106},
-{13031, 6483}, {13557, 7721}, {12957, 9311}, {13714,11551}, {12591,15206},
-{15113, 1540}, {15072, 2333}, {14527, 2511}, {14692, 3199}, {15382, 3560},
-{14133, 3960}, {15102, 4236}, {14332, 4824}, {14846, 5451}, {15306, 6083},
-{14329, 6888}, {15060, 7689}, {14406, 9426}, {15387, 9741}, {14824,14271},
-{13600,24939}, {16396, 1969}, {16817, 2832}, {15713, 2843}, {16104, 3336},
-{16384, 3963}, {16940, 4579}, {15711, 4599}, {16222, 5448}, {16832, 6382},
-{15745, 7141}, {16326, 7469}, {16611, 8624}, {17028,10418}, {15905,11817},
-{16878,14690}, {16515,20870}, {18142, 2083}, {19401, 3178}, {17508, 3426},
-{20054, 4027}, {18069, 4249}, {18952, 5066}, {17711, 5402}, {19835, 6192},
-{17950, 7014}, {21318, 7877}, {17910, 9289}, {19144, 9290}, {20517,11381},
-{18075,14485}, {19999,17882}, {18842,32764}
-};
-
-/** gain table for 5.15 and 5.90 kbps modes
- *
- * second index is {pitch_gain, fixed_gain_factor} */
-static const uint16_t gains_low[64][2] = {
-{10813,28753}, {20480, 2785}, {18841, 6594}, { 6225, 7413}, {17203,10444},
-{21626, 1269}, {21135, 4423}, {11304, 1556}, {19005,12820}, {17367, 2498},
-{17858, 4833}, { 9994, 2498}, {17530, 7864}, {14254, 1884}, {15892, 3153},
-{ 6717, 1802}, {18186,20193}, {18022, 3031}, {16711, 5857}, { 8847, 4014},
-{15892, 8970}, {18022, 1392}, {16711, 4096}, { 8192, 655}, {15237,13926},
-{14254, 3112}, {14090, 4669}, { 5406, 2703}, {13434, 6553}, {12451, 901},
-{12451, 2662}, { 3768, 655}, {14745,23511}, {19169, 2457}, {20152, 5079},
-{ 6881, 4096}, {20480, 8560}, {19660, 737}, {19005, 4259}, { 7864, 2088},
-{11468,12288}, {15892, 1474}, {15728, 4628}, { 9175, 1433}, {16056, 7004},
-{14827, 737}, {15073, 2252}, { 5079, 1228}, {13271,17326}, {16547, 2334},
-{15073, 5816}, { 3932, 3686}, {14254, 8601}, {16875, 778}, {15073, 3809},
-{ 6062, 614}, { 9338, 9256}, {13271, 1761}, {13271, 3522}, { 2457, 1966},
-{11468, 5529}, {10485, 737}, {11632, 3194}, { 1474, 778}
-};
-
-
-// pre-processing tables
-
-/** impulse response filter tables converted to float from Q15 int32_t
- * used for anti-sparseness processing */
-static const float ir_filter_strong_MODE_7k95[AMR_SUBFRAME_SIZE] = {
- 0.817169, 0.024445, 0.076447, -0.020844, -0.042175, 0.017761, 0.018433,
--0.038879, 0.107147, -0.179871, 0.138367, -0.015228, -0.059204, 0.091888,
--0.154358, 0.171326, -0.060730, -0.032379, -0.044525, 0.135559, -0.021362,
--0.162811, 0.140656, 0.013794, -0.017975, -0.102295, 0.090118, 0.038666,
--0.036987, -0.079041, 0.052826, 0.112000, -0.136566, -0.029755, 0.134003,
--0.077423, 0.028961, -0.041595, -0.029877, 0.174988,
-};
-
-static const float ir_filter_strong[AMR_SUBFRAME_SIZE] = {
- 0.448303, 0.351501, 0.038696, -0.084259, -0.173065, 0.229309, -0.001068,
--0.085663, -0.092773, 0.147186, 0.090088, -0.257080, 0.115509, 0.044403,
- 0.066498, -0.263580, 0.245697, -0.064178, -0.044373, 0.023712, 0.033813,
--0.072784, 0.068787, -0.011078, -0.020569, -0.064178, 0.184509, -0.173370,
- 0.032715, 0.095306, -0.154358, 0.162109, -0.071075, -0.113770, 0.211304,
--0.118683, 0.020599, -0.054169, 0.000885, 0.309601,
-};
-
-static const float ir_filter_medium[AMR_SUBFRAME_SIZE] = {
- 0.923889, 0.116913, -0.123169, 0.090698, -0.031982, -0.030579, 0.075592,
--0.092865, 0.085907, -0.068085, 0.053497, -0.049164, 0.052307, -0.054169,
- 0.047089, -0.030762, 0.013092, -0.005157, 0.014404, -0.038574, 0.066406,
--0.082581, 0.076996, -0.049469, 0.010498, 0.025208, -0.046661, 0.052612,
--0.050568, 0.051910, -0.062958, 0.080688, -0.093384, 0.088409, -0.060364,
- 0.016998, 0.023804, -0.041779, 0.025696, 0.019989,
-};
-
-static const float *ir_filters_lookup[2] = {
- ir_filter_strong, ir_filter_medium
-};
-static const float *ir_filters_lookup_MODE_7k95[2] = {
- ir_filter_strong_MODE_7k95, ir_filter_medium
-};
-
-// High-pass coefficients
-
-static const float highpass_zeros[2] = { -2.0, 1.0 };
-static const float highpass_poles[2] = { -1.933105469, 0.935913085 };
-static const float highpass_gain = 0.939819335;
-
-#endif /* AVCODEC_AMRNBDATA_H */
-
+++ /dev/null
-/*
- * Atrac common data
- * Copyright (c) 2009 Maxim Poliakovski
- * Copyright (c) 2009 Benjamin Larsson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Atrac common header
- */
-
-#ifndef AVCODEC_ATRAC_H
-#define AVCODEC_ATRAC_H
-
-
-extern float sf_table[64];
-extern float qmf_window[48];
-
-void atrac_generate_tables(void);
-void atrac_iqmf (float *inlo, float *inhi, unsigned int nIn, float *pOut, float *delayBuf, float *temp);
-
-#endif /* AVCODEC_ATRAC_H */
+++ /dev/null
-/*
- * Atrac 1 compatible decoder data
- * Copyright (c) 2009 Maxim Poliakovski
- * Copyright (c) 2009 Benjamin Larsson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Atrac 1 compatible decoder data
- */
-
-#ifndef AVCODEC_ATRAC1DATA_H
-#define AVCODEC_ATRAC1DATA_H
-
-#include <stdint.h>
-
-static const uint8_t bfu_amount_tab1[8] = {20, 28, 32, 36, 40, 44, 48, 52};
-static const uint8_t bfu_amount_tab2[4] = { 0, 112, 176, 208};
-static const uint8_t bfu_amount_tab3[8] = { 0, 24, 36, 48, 72, 108, 132, 156};
-
-/** number of BFUs in each QMF band */
-static const uint8_t bfu_bands_t[4] = {0, 20, 36, 52};
-
-/** number of spectral lines in each BFU
- * block floating unit = group of spectral frequencies having the
- * same quantization parameters like word length and scale factor
- */
-static const uint8_t specs_per_bfu[52] = {
- 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, // low band
- 6, 6, 6, 6, 7, 7, 7, 7, 9, 9, 9, 9, 10, 10, 10, 10, // midle band
- 12, 12, 12, 12, 12, 12, 12, 12, 20, 20, 20, 20, 20, 20, 20, 20 // high band
-};
-
-/** start position of each BFU in the MDCT spectrum for the long mode */
-static const uint16_t bfu_start_long[52] = {
- 0, 8, 16, 24, 32, 36, 40, 44, 48, 56, 64, 72, 80, 86, 92, 98, 104, 110, 116, 122,
- 128, 134, 140, 146, 152, 159, 166, 173, 180, 189, 198, 207, 216, 226, 236, 246,
- 256, 268, 280, 292, 304, 316, 328, 340, 352, 372, 392, 412, 432, 452, 472, 492,
-};
-
-/** start position of each BFU in the MDCT spectrum for the short mode */
-static const uint16_t bfu_start_short[52] = {
- 0, 32, 64, 96, 8, 40, 72, 104, 12, 44, 76, 108, 20, 52, 84, 116, 26, 58, 90, 122,
- 128, 160, 192, 224, 134, 166, 198, 230, 141, 173, 205, 237, 150, 182, 214, 246,
- 256, 288, 320, 352, 384, 416, 448, 480, 268, 300, 332, 364, 396, 428, 460, 492
-};
-
-#endif /* AVCODEC_ATRAC1DATA_H */
+++ /dev/null
-/*
- * Atrac 3 compatible decoder data
- * Copyright (c) 2006-2007 Maxim Poliakovski
- * Copyright (c) 2006-2007 Benjamin Larsson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Atrac 3 AKA RealAudio 8 compatible decoder data
- */
-
-#ifndef AVCODEC_ATRAC3DATA_H
-#define AVCODEC_ATRAC3DATA_H
-
-#include <stdint.h>
-
-/* VLC tables */
-
-static const uint8_t huffcode1[9] = {
- 0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F,
-};
-
-static const uint8_t huffbits1[9] = {
- 1,3,3,4,4,5,5,5,5,
-};
-
-static const uint8_t huffcode2[5] = {
- 0x0,0x4,0x5,0x6,0x7,
-};
-
-static const uint8_t huffbits2[5] = {
- 1,3,3,3,3,
-};
-
-static const uint8_t huffcode3[7] = {
-0x0,0x4,0x5,0xC,0xD,0xE,0xF,
-};
-
-static const uint8_t huffbits3[7] = {
- 1,3,3,4,4,4,4,
-};
-
-static const uint8_t huffcode4[9] = {
- 0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F,
-};
-
-static const uint8_t huffbits4[9] = {
- 1,3,3,4,4,5,5,5,5,
-};
-
-static const uint8_t huffcode5[15] = {
- 0x0,0x2,0x3,0x8,0x9,0xA,0xB,0x1C,0x1D,0x3C,0x3D,0x3E,0x3F,0xC,0xD,
-};
-
-static const uint8_t huffbits5[15] = {
- 2,3,3,4,4,4,4,5,5,6,6,6,6,4,4
-};
-
-static const uint8_t huffcode6[31] = {
- 0x0,0x2,0x3,0x4,0x5,0x6,0x7,0x14,0x15,0x16,0x17,0x18,0x19,0x34,0x35,
- 0x36,0x37,0x38,0x39,0x3A,0x3B,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x8,0x9,
-};
-
-static const uint8_t huffbits6[31] = {
- 3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,4,4
-};
-
-static const uint8_t huffcode7[63] = {
- 0x0,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,0x10,0x11,0x24,0x25,0x26,0x27,0x28,
- 0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x68,0x69,0x6A,0x6B,0x6C,
- 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,
- 0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x2,0x3,
-};
-
-static const uint8_t huffbits7[63] = {
- 3,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,
- 7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,4,4
-};
-
-static const uint8_t huff_tab_sizes[7] = {
- 9, 5, 7, 9, 15, 31, 63,
-};
-
-static const uint8_t* const huff_codes[7] = {
- huffcode1,huffcode2,huffcode3,huffcode4,huffcode5,huffcode6,huffcode7,
-};
-
-static const uint8_t* const huff_bits[7] = {
- huffbits1,huffbits2,huffbits3,huffbits4,huffbits5,huffbits6,huffbits7,
-};
-
-static const uint16_t atrac3_vlc_offs[] = {
- 0,512,1024,1536,2048,2560,3072,3584,4096
-};
-
-/* selector tables */
-
-static const uint8_t CLCLengthTab[8] = {0, 4, 3, 3, 4, 4, 5, 6};
-static const int8_t seTab_0[4] = {0, 1, -2, -1};
-static const int8_t decTable1[18] = {0,0, 0,1, 0,-1, 1,0, -1,0, 1,1, 1,-1, -1,1, -1,-1};
-
-
-/* tables for the scalefactor decoding */
-
-static const float iMaxQuant[8] = {
- 0.0, 1.0/1.5, 1.0/2.5, 1.0/3.5, 1.0/4.5, 1.0/7.5, 1.0/15.5, 1.0/31.5
-};
-
-static const uint16_t subbandTab[33] = {
- 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224,
- 256, 288, 320, 352, 384, 416, 448, 480, 512, 576, 640, 704, 768, 896, 1024
-};
-
-/* joint stereo related tables */
-static const float matrixCoeffs[8] = {0.0, 2.0, 2.0, 2.0, 0.0, 0.0, 1.0, 1.0};
-
-#endif /* AVCODEC_ATRAC3DATA_H */
+++ /dev/null
-/*
- * audio conversion
- * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (c) 2008 Peter Ross
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AUDIOCONVERT_H
-#define AVCODEC_AUDIOCONVERT_H
-
-/**
- * @file
- * Audio format conversion routines
- */
-
-
-#include "avcodec.h"
-
-
-/**
- * Generate string corresponding to the sample format with
- * number sample_fmt, or a header if sample_fmt is negative.
- *
- * @param[in] buf the buffer where to write the string
- * @param[in] buf_size the size of buf
- * @param[in] sample_fmt the number of the sample format to print the corresponding info string, or
- * a negative value to print the corresponding header.
- * Meaningful values for obtaining a sample format info vary from 0 to SAMPLE_FMT_NB -1.
- */
-void avcodec_sample_fmt_string(char *buf, int buf_size, int sample_fmt);
-
-/**
- * @return NULL on error
- */
-const char *avcodec_get_sample_fmt_name(int sample_fmt);
-
-/**
- * @return SAMPLE_FMT_NONE on error
- */
-enum SampleFormat avcodec_get_sample_fmt(const char* name);
-
-/**
- * @return NULL on error
- */
-const char *avcodec_get_channel_name(int channel_id);
-
-/**
- * Return description of channel layout
- */
-void avcodec_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout);
-
-/**
- * Guess the channel layout
- * @param nb_channels
- * @param codec_id Codec identifier, or CODEC_ID_NONE if unknown
- * @param fmt_name Format name, or NULL if unknown
- * @return Channel layout mask
- */
-int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
-
-/**
- * @return the number of channels in the channel layout.
- */
-int avcodec_channel_layout_num_channels(int64_t channel_layout);
-
-struct AVAudioConvert;
-typedef struct AVAudioConvert AVAudioConvert;
-
-/**
- * Create an audio sample format converter context
- * @param out_fmt Output sample format
- * @param out_channels Number of output channels
- * @param in_fmt Input sample format
- * @param in_channels Number of input channels
- * @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore.
- * @param flags See FF_MM_xx
- * @return NULL on error
- */
-AVAudioConvert *av_audio_convert_alloc(enum SampleFormat out_fmt, int out_channels,
- enum SampleFormat in_fmt, int in_channels,
- const float *matrix, int flags);
-
-/**
- * Free audio sample format converter context
- */
-void av_audio_convert_free(AVAudioConvert *ctx);
-
-/**
- * Convert between audio sample formats
- * @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel.
- * @param[in] out_stride distance between consecutive output samples (measured in bytes)
- * @param[in] in array of input buffers for each channel
- * @param[in] in_stride distance between consecutive input samples (measured in bytes)
- * @param len length of audio frame size (measured in samples)
- */
-int av_audio_convert(AVAudioConvert *ctx,
- void * const out[6], const int out_stride[6],
- const void * const in[6], const int in_stride[6], int len);
-
-#endif /* AVCODEC_AUDIOCONVERT_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AVCODEC_H
-#define AVCODEC_AVCODEC_H
-
-#ifndef GST_EXT_FFMUX_ENHANCEMENT
-#define GST_EXT_FFMUX_ENHANCEMENT
-#endif
-
-/**
- * @file
- * external API header
- */
-
-#include <errno.h>
-#include "libavutil/avutil.h"
-
-#define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 72
-#define LIBAVCODEC_VERSION_MICRO 2
-
-#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
- LIBAVCODEC_VERSION_MINOR, \
- LIBAVCODEC_VERSION_MICRO)
-#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
- LIBAVCODEC_VERSION_MINOR, \
- LIBAVCODEC_VERSION_MICRO)
-#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
-
-#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
-
-#define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
-#define AV_TIME_BASE 1000000
-#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
-
-/**
- * Identifies the syntax and semantics of the bitstream.
- * The principle is roughly:
- * Two decoders with the same ID can decode the same streams.
- * Two encoders with the same ID can encode compatible streams.
- * There may be slight deviations from the principle due to implementation
- * details.
- *
- * If you add a codec ID to this list, add it so that
- * 1. no value of a existing codec ID changes (that would break ABI),
- * 2. it is as close as possible to similar codecs.
- */
-enum CodecID {
- CODEC_ID_NONE,
-
- /* video codecs */
- CODEC_ID_MPEG1VIDEO,
- CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
- CODEC_ID_MPEG2VIDEO_XVMC,
- CODEC_ID_H261,
- CODEC_ID_H263,
- CODEC_ID_RV10,
- CODEC_ID_RV20,
- CODEC_ID_MJPEG,
- CODEC_ID_MJPEGB,
- CODEC_ID_LJPEG,
- CODEC_ID_SP5X,
- CODEC_ID_JPEGLS,
- CODEC_ID_MPEG4,
- CODEC_ID_RAWVIDEO,
- CODEC_ID_MSMPEG4V1,
- CODEC_ID_MSMPEG4V2,
- CODEC_ID_MSMPEG4V3,
- CODEC_ID_WMV1,
- CODEC_ID_WMV2,
- CODEC_ID_H263P,
- CODEC_ID_H263I,
- CODEC_ID_FLV1,
- CODEC_ID_SVQ1,
- CODEC_ID_SVQ3,
- CODEC_ID_DVVIDEO,
- CODEC_ID_HUFFYUV,
- CODEC_ID_CYUV,
- CODEC_ID_H264,
- CODEC_ID_INDEO3,
- CODEC_ID_VP3,
- CODEC_ID_THEORA,
- CODEC_ID_ASV1,
- CODEC_ID_ASV2,
- CODEC_ID_FFV1,
- CODEC_ID_4XM,
- CODEC_ID_VCR1,
- CODEC_ID_CLJR,
- CODEC_ID_MDEC,
- CODEC_ID_ROQ,
- CODEC_ID_INTERPLAY_VIDEO,
- CODEC_ID_XAN_WC3,
- CODEC_ID_XAN_WC4,
- CODEC_ID_RPZA,
- CODEC_ID_CINEPAK,
- CODEC_ID_WS_VQA,
- CODEC_ID_MSRLE,
- CODEC_ID_MSVIDEO1,
- CODEC_ID_IDCIN,
- CODEC_ID_8BPS,
- CODEC_ID_SMC,
- CODEC_ID_FLIC,
- CODEC_ID_TRUEMOTION1,
- CODEC_ID_VMDVIDEO,
- CODEC_ID_MSZH,
- CODEC_ID_ZLIB,
- CODEC_ID_QTRLE,
- CODEC_ID_SNOW,
- CODEC_ID_TSCC,
- CODEC_ID_ULTI,
- CODEC_ID_QDRAW,
- CODEC_ID_VIXL,
- CODEC_ID_QPEG,
-#if LIBAVCODEC_VERSION_MAJOR < 53
- CODEC_ID_XVID,
-#endif
- CODEC_ID_PNG,
- CODEC_ID_PPM,
- CODEC_ID_PBM,
- CODEC_ID_PGM,
- CODEC_ID_PGMYUV,
- CODEC_ID_PAM,
- CODEC_ID_FFVHUFF,
- CODEC_ID_RV30,
- CODEC_ID_RV40,
- CODEC_ID_VC1,
- CODEC_ID_WMV3,
- CODEC_ID_LOCO,
- CODEC_ID_WNV1,
- CODEC_ID_AASC,
- CODEC_ID_INDEO2,
- CODEC_ID_FRAPS,
- CODEC_ID_TRUEMOTION2,
- CODEC_ID_BMP,
- CODEC_ID_CSCD,
- CODEC_ID_MMVIDEO,
- CODEC_ID_ZMBV,
- CODEC_ID_AVS,
- CODEC_ID_SMACKVIDEO,
- CODEC_ID_NUV,
- CODEC_ID_KMVC,
- CODEC_ID_FLASHSV,
- CODEC_ID_CAVS,
- CODEC_ID_JPEG2000,
- CODEC_ID_VMNC,
- CODEC_ID_VP5,
- CODEC_ID_VP6,
- CODEC_ID_VP6F,
- CODEC_ID_TARGA,
- CODEC_ID_DSICINVIDEO,
- CODEC_ID_TIERTEXSEQVIDEO,
- CODEC_ID_TIFF,
- CODEC_ID_GIF,
- CODEC_ID_FFH264,
- CODEC_ID_DXA,
- CODEC_ID_DNXHD,
- CODEC_ID_THP,
- CODEC_ID_SGI,
- CODEC_ID_C93,
- CODEC_ID_BETHSOFTVID,
- CODEC_ID_PTX,
- CODEC_ID_TXD,
- CODEC_ID_VP6A,
- CODEC_ID_AMV,
- CODEC_ID_VB,
- CODEC_ID_PCX,
- CODEC_ID_SUNRAST,
- CODEC_ID_INDEO4,
- CODEC_ID_INDEO5,
- CODEC_ID_MIMIC,
- CODEC_ID_RL2,
- CODEC_ID_8SVX_EXP,
- CODEC_ID_8SVX_FIB,
- CODEC_ID_ESCAPE124,
- CODEC_ID_DIRAC,
- CODEC_ID_BFI,
- CODEC_ID_CMV,
- CODEC_ID_MOTIONPIXELS,
- CODEC_ID_TGV,
- CODEC_ID_TGQ,
- CODEC_ID_TQI,
- CODEC_ID_AURA,
- CODEC_ID_AURA2,
- CODEC_ID_V210X,
- CODEC_ID_TMV,
- CODEC_ID_V210,
- CODEC_ID_DPX,
- CODEC_ID_MAD,
- CODEC_ID_FRWU,
- CODEC_ID_FLASHSV2,
- CODEC_ID_CDGRAPHICS,
- CODEC_ID_R210,
- CODEC_ID_ANM,
- CODEC_ID_BINKVIDEO,
- CODEC_ID_IFF_ILBM,
- CODEC_ID_IFF_BYTERUN1,
- CODEC_ID_KGV1,
- CODEC_ID_YOP,
- CODEC_ID_VP8,
-
- /* various PCM "codecs" */
- CODEC_ID_PCM_S16LE= 0x10000,
- CODEC_ID_PCM_S16BE,
- CODEC_ID_PCM_U16LE,
- CODEC_ID_PCM_U16BE,
- CODEC_ID_PCM_S8,
- CODEC_ID_PCM_U8,
- CODEC_ID_PCM_MULAW,
- CODEC_ID_PCM_ALAW,
- CODEC_ID_PCM_S32LE,
- CODEC_ID_PCM_S32BE,
- CODEC_ID_PCM_U32LE,
- CODEC_ID_PCM_U32BE,
- CODEC_ID_PCM_S24LE,
- CODEC_ID_PCM_S24BE,
- CODEC_ID_PCM_U24LE,
- CODEC_ID_PCM_U24BE,
- CODEC_ID_PCM_S24DAUD,
- CODEC_ID_PCM_ZORK,
- CODEC_ID_PCM_S16LE_PLANAR,
- CODEC_ID_PCM_DVD,
- CODEC_ID_PCM_F32BE,
- CODEC_ID_PCM_F32LE,
- CODEC_ID_PCM_F64BE,
- CODEC_ID_PCM_F64LE,
- CODEC_ID_PCM_BLURAY,
-
- /* various ADPCM codecs */
- CODEC_ID_ADPCM_IMA_QT= 0x11000,
- CODEC_ID_ADPCM_IMA_WAV,
- CODEC_ID_ADPCM_IMA_DK3,
- CODEC_ID_ADPCM_IMA_DK4,
- CODEC_ID_ADPCM_IMA_WS,
- CODEC_ID_ADPCM_IMA_SMJPEG,
- CODEC_ID_ADPCM_MS,
- CODEC_ID_ADPCM_4XM,
- CODEC_ID_ADPCM_XA,
- CODEC_ID_ADPCM_ADX,
- CODEC_ID_ADPCM_EA,
- CODEC_ID_ADPCM_G726,
- CODEC_ID_ADPCM_CT,
- CODEC_ID_ADPCM_SWF,
- CODEC_ID_ADPCM_YAMAHA,
- CODEC_ID_ADPCM_SBPRO_4,
- CODEC_ID_ADPCM_SBPRO_3,
- CODEC_ID_ADPCM_SBPRO_2,
- CODEC_ID_ADPCM_THP,
- CODEC_ID_ADPCM_IMA_AMV,
- CODEC_ID_ADPCM_EA_R1,
- CODEC_ID_ADPCM_EA_R3,
- CODEC_ID_ADPCM_EA_R2,
- CODEC_ID_ADPCM_IMA_EA_SEAD,
- CODEC_ID_ADPCM_IMA_EA_EACS,
- CODEC_ID_ADPCM_EA_XAS,
- CODEC_ID_ADPCM_EA_MAXIS_XA,
- CODEC_ID_ADPCM_IMA_ISS,
-
- /* AMR */
- CODEC_ID_AMR_NB= 0x12000,
- CODEC_ID_AMR_WB,
-
- /* RealAudio codecs*/
- CODEC_ID_RA_144= 0x13000,
- CODEC_ID_RA_288,
-
- /* various DPCM codecs */
- CODEC_ID_ROQ_DPCM= 0x14000,
- CODEC_ID_INTERPLAY_DPCM,
- CODEC_ID_XAN_DPCM,
- CODEC_ID_SOL_DPCM,
-
- /* audio codecs */
- CODEC_ID_MP2= 0x15000,
- CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
- CODEC_ID_AAC,
- CODEC_ID_AC3,
- CODEC_ID_DTS,
- CODEC_ID_VORBIS,
- CODEC_ID_DVAUDIO,
- CODEC_ID_WMAV1,
- CODEC_ID_WMAV2,
- CODEC_ID_MACE3,
- CODEC_ID_MACE6,
- CODEC_ID_VMDAUDIO,
- CODEC_ID_SONIC,
- CODEC_ID_SONIC_LS,
- CODEC_ID_FLAC,
- CODEC_ID_MP3ADU,
- CODEC_ID_MP3ON4,
- CODEC_ID_SHORTEN,
- CODEC_ID_ALAC,
- CODEC_ID_WESTWOOD_SND1,
- CODEC_ID_GSM, ///< as in Berlin toast format
- CODEC_ID_QDM2,
- CODEC_ID_COOK,
- CODEC_ID_TRUESPEECH,
- CODEC_ID_TTA,
- CODEC_ID_SMACKAUDIO,
- CODEC_ID_QCELP,
- CODEC_ID_WAVPACK,
- CODEC_ID_DSICINAUDIO,
- CODEC_ID_IMC,
- CODEC_ID_MUSEPACK7,
- CODEC_ID_MLP,
- CODEC_ID_GSM_MS, /* as found in WAV */
- CODEC_ID_ATRAC3,
- CODEC_ID_VOXWARE,
- CODEC_ID_APE,
- CODEC_ID_NELLYMOSER,
- CODEC_ID_MUSEPACK8,
- CODEC_ID_SPEEX,
- CODEC_ID_WMAVOICE,
- CODEC_ID_WMAPRO,
- CODEC_ID_WMALOSSLESS,
- CODEC_ID_ATRAC3P,
- CODEC_ID_EAC3,
- CODEC_ID_SIPR,
- CODEC_ID_MP1,
- CODEC_ID_TWINVQ,
- CODEC_ID_TRUEHD,
- CODEC_ID_MP4ALS,
- CODEC_ID_ATRAC1,
- CODEC_ID_BINKAUDIO_RDFT,
- CODEC_ID_BINKAUDIO_DCT,
-
- /* subtitle codecs */
- CODEC_ID_DVD_SUBTITLE= 0x17000,
- CODEC_ID_DVB_SUBTITLE,
- CODEC_ID_TEXT, ///< raw UTF-8 text
- CODEC_ID_XSUB,
- CODEC_ID_SSA,
- CODEC_ID_MOV_TEXT,
- CODEC_ID_HDMV_PGS_SUBTITLE,
- CODEC_ID_DVB_TELETEXT,
-
- /* other specific kind of codecs (generally used for attachments) */
- CODEC_ID_TTF= 0x18000,
-
- CODEC_ID_PROBE= 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it
-
- CODEC_ID_MPEG2TS= 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
- * stream (only used by libavformat) */
-};
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-#define CodecType AVMediaType
-
-#define CODEC_TYPE_UNKNOWN AVMEDIA_TYPE_UNKNOWN
-#define CODEC_TYPE_VIDEO AVMEDIA_TYPE_VIDEO
-#define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO
-#define CODEC_TYPE_DATA AVMEDIA_TYPE_DATA
-#define CODEC_TYPE_SUBTITLE AVMEDIA_TYPE_SUBTITLE
-#define CODEC_TYPE_ATTACHMENT AVMEDIA_TYPE_ATTACHMENT
-#define CODEC_TYPE_NB AVMEDIA_TYPE_NB
-#endif
-
-/**
- * all in native-endian format
- */
-enum SampleFormat {
- SAMPLE_FMT_NONE = -1,
- SAMPLE_FMT_U8, ///< unsigned 8 bits
- SAMPLE_FMT_S16, ///< signed 16 bits
- SAMPLE_FMT_S32, ///< signed 32 bits
- SAMPLE_FMT_FLT, ///< float
- SAMPLE_FMT_DBL, ///< double
- SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if dynamically linking to libavcodec
-};
-
-/* Audio channel masks */
-#define CH_FRONT_LEFT 0x00000001
-#define CH_FRONT_RIGHT 0x00000002
-#define CH_FRONT_CENTER 0x00000004
-#define CH_LOW_FREQUENCY 0x00000008
-#define CH_BACK_LEFT 0x00000010
-#define CH_BACK_RIGHT 0x00000020
-#define CH_FRONT_LEFT_OF_CENTER 0x00000040
-#define CH_FRONT_RIGHT_OF_CENTER 0x00000080
-#define CH_BACK_CENTER 0x00000100
-#define CH_SIDE_LEFT 0x00000200
-#define CH_SIDE_RIGHT 0x00000400
-#define CH_TOP_CENTER 0x00000800
-#define CH_TOP_FRONT_LEFT 0x00001000
-#define CH_TOP_FRONT_CENTER 0x00002000
-#define CH_TOP_FRONT_RIGHT 0x00004000
-#define CH_TOP_BACK_LEFT 0x00008000
-#define CH_TOP_BACK_CENTER 0x00010000
-#define CH_TOP_BACK_RIGHT 0x00020000
-#define CH_STEREO_LEFT 0x20000000 ///< Stereo downmix.
-#define CH_STEREO_RIGHT 0x40000000 ///< See CH_STEREO_LEFT.
-
-/** Channel mask value used for AVCodecContext.request_channel_layout
- to indicate that the user requests the channel order of the decoder output
- to be the native codec channel order. */
-#define CH_LAYOUT_NATIVE 0x8000000000000000LL
-
-/* Audio channel convenience macros */
-#define CH_LAYOUT_MONO (CH_FRONT_CENTER)
-#define CH_LAYOUT_STEREO (CH_FRONT_LEFT|CH_FRONT_RIGHT)
-#define CH_LAYOUT_2_1 (CH_LAYOUT_STEREO|CH_BACK_CENTER)
-#define CH_LAYOUT_SURROUND (CH_LAYOUT_STEREO|CH_FRONT_CENTER)
-#define CH_LAYOUT_4POINT0 (CH_LAYOUT_SURROUND|CH_BACK_CENTER)
-#define CH_LAYOUT_2_2 (CH_LAYOUT_STEREO|CH_SIDE_LEFT|CH_SIDE_RIGHT)
-#define CH_LAYOUT_QUAD (CH_LAYOUT_STEREO|CH_BACK_LEFT|CH_BACK_RIGHT)
-#define CH_LAYOUT_5POINT0 (CH_LAYOUT_SURROUND|CH_SIDE_LEFT|CH_SIDE_RIGHT)
-#define CH_LAYOUT_5POINT1 (CH_LAYOUT_5POINT0|CH_LOW_FREQUENCY)
-#define CH_LAYOUT_5POINT0_BACK (CH_LAYOUT_SURROUND|CH_BACK_LEFT|CH_BACK_RIGHT)
-#define CH_LAYOUT_5POINT1_BACK (CH_LAYOUT_5POINT0_BACK|CH_LOW_FREQUENCY)
-#define CH_LAYOUT_7POINT0 (CH_LAYOUT_5POINT0|CH_BACK_LEFT|CH_BACK_RIGHT)
-#define CH_LAYOUT_7POINT1 (CH_LAYOUT_5POINT1|CH_BACK_LEFT|CH_BACK_RIGHT)
-#define CH_LAYOUT_7POINT1_WIDE (CH_LAYOUT_5POINT1_BACK|\
- CH_FRONT_LEFT_OF_CENTER|CH_FRONT_RIGHT_OF_CENTER)
-#define CH_LAYOUT_STEREO_DOWNMIX (CH_STEREO_LEFT|CH_STEREO_RIGHT)
-
-/* in bytes */
-#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
-
-/**
- * Required number of additionally allocated bytes at the end of the input bitstream for decoding.
- * This is mainly needed because some optimized bitstream readers read
- * 32 or 64 bit at once and could read over the end.<br>
- * Note: If the first 23 bits of the additional bytes are not 0, then damaged
- * MPEG bitstreams could cause overread and segfault.
- */
-#define FF_INPUT_BUFFER_PADDING_SIZE 8
-
-/**
- * minimum encoding buffer size
- * Used to avoid some checks during header writing.
- */
-#define FF_MIN_BUFFER_SIZE 16384
-
-
-/**
- * motion estimation type.
- */
-enum Motion_Est_ID {
- ME_ZERO = 1, ///< no search, that is use 0,0 vector whenever one is needed
- ME_FULL,
- ME_LOG,
- ME_PHODS,
- ME_EPZS, ///< enhanced predictive zonal search
- ME_X1, ///< reserved for experiments
- ME_HEX, ///< hexagon based search
- ME_UMH, ///< uneven multi-hexagon search
- ME_ITER, ///< iterative search
- ME_TESA, ///< transformed exhaustive search algorithm
-};
-
-enum AVDiscard{
- /* We leave some space between them for extensions (drop some
- * keyframes for intra-only or drop just some bidir frames). */
- AVDISCARD_NONE =-16, ///< discard nothing
- AVDISCARD_DEFAULT= 0, ///< discard useless packets like 0 size packets in avi
- AVDISCARD_NONREF = 8, ///< discard all non reference
- AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames
- AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes
- AVDISCARD_ALL = 48, ///< discard all
-};
-
-enum AVColorPrimaries{
- AVCOL_PRI_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
- AVCOL_PRI_UNSPECIFIED=2,
- AVCOL_PRI_BT470M =4,
- AVCOL_PRI_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
- AVCOL_PRI_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
- AVCOL_PRI_SMPTE240M =7, ///< functionally identical to above
- AVCOL_PRI_FILM =8,
- AVCOL_PRI_NB , ///< Not part of ABI
-};
-
-enum AVColorTransferCharacteristic{
- AVCOL_TRC_BT709 =1, ///< also ITU-R BT1361
- AVCOL_TRC_UNSPECIFIED=2,
- AVCOL_TRC_GAMMA22 =4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
- AVCOL_TRC_GAMMA28 =5, ///< also ITU-R BT470BG
- AVCOL_TRC_NB , ///< Not part of ABI
-};
-
-enum AVColorSpace{
- AVCOL_SPC_RGB =0,
- AVCOL_SPC_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
- AVCOL_SPC_UNSPECIFIED=2,
- AVCOL_SPC_FCC =4,
- AVCOL_SPC_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
- AVCOL_SPC_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above
- AVCOL_SPC_SMPTE240M =7,
- AVCOL_SPC_NB , ///< Not part of ABI
-};
-
-enum AVColorRange{
- AVCOL_RANGE_UNSPECIFIED=0,
- AVCOL_RANGE_MPEG =1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
- AVCOL_RANGE_JPEG =2, ///< the normal 2^n-1 "JPEG" YUV ranges
- AVCOL_RANGE_NB , ///< Not part of ABI
-};
-
-/**
- * X X 3 4 X X are luma samples,
- * 1 2 1-6 are possible chroma positions
- * X X 5 6 X 0 is undefined/unknown position
- */
-enum AVChromaLocation{
- AVCHROMA_LOC_UNSPECIFIED=0,
- AVCHROMA_LOC_LEFT =1, ///< mpeg2/4, h264 default
- AVCHROMA_LOC_CENTER =2, ///< mpeg1, jpeg, h263
- AVCHROMA_LOC_TOPLEFT =3, ///< DV
- AVCHROMA_LOC_TOP =4,
- AVCHROMA_LOC_BOTTOMLEFT =5,
- AVCHROMA_LOC_BOTTOM =6,
- AVCHROMA_LOC_NB , ///< Not part of ABI
-};
-
-typedef struct RcOverride{
- int start_frame;
- int end_frame;
- int qscale; // If this is 0 then quality_factor will be used instead.
- float quality_factor;
-} RcOverride;
-
-#define FF_MAX_B_FRAMES 16
-
-/* encoding support
- These flags can be passed in AVCodecContext.flags before initialization.
- Note: Not everything is supported yet.
-*/
-
-#define CODEC_FLAG_QSCALE 0x0002 ///< Use fixed qscale.
-#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263.
-#define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC.
-#define CODEC_FLAG_GMC 0x0020 ///< Use GMC.
-#define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>.
-#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning.
-/**
- * The parent program guarantees that the input for B-frames containing
- * streams is not written to for at least s->max_b_frames+1 frames, if
- * this is not set the input will be copied.
- */
-#define CODEC_FLAG_INPUT_PRESERVED 0x0100
-#define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode.
-#define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode.
-#define CODEC_FLAG_EXTERN_HUFF 0x1000 ///< Use external Huffman table (for MJPEG).
-#define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale.
-#define CODEC_FLAG_EMU_EDGE 0x4000 ///< Don't draw edges.
-#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding.
-#define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random
- location instead of only at frame boundaries. */
-#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///< Normalize adaptive quantization.
-#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///< Use interlaced DCT.
-#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay.
-#define CODEC_FLAG_ALT_SCAN 0x00100000 ///< Use alternate scan.
-#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe.
-#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT).
-/* Fx : Flag for h263+ extra options */
-#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction
-#define CODEC_FLAG_H263P_UMV 0x02000000 ///< unlimited motion vector
-#define CODEC_FLAG_CBP_RD 0x04000000 ///< Use rate distortion optimization for cbp.
-#define CODEC_FLAG_QP_RD 0x08000000 ///< Use rate distortion optimization for qp selectioon.
-#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H.263 alternative inter VLC
-#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC
-#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter
-#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000
-#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation
-#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data.
-#define CODEC_FLAG_CLOSED_GOP 0x80000000
-#define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks.
-#define CODEC_FLAG2_STRICT_GOP 0x00000002 ///< Strictly enforce GOP size.
-#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding.
-#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata.
-#define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow B-frames to be used as references.
-#define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for B-frames
-#define CODEC_FLAG2_MIXED_REFS 0x00000040 ///< H.264 one reference per partition, as opposed to one reference per macroblock
-#define CODEC_FLAG2_8X8DCT 0x00000080 ///< H.264 high profile 8x8 transform
-#define CODEC_FLAG2_FASTPSKIP 0x00000100 ///< H.264 fast pskip
-#define CODEC_FLAG2_AUD 0x00000200 ///< H.264 access unit delimiters
-#define CODEC_FLAG2_BRDO 0x00000400 ///< B-frame rate-distortion optimization
-#define CODEC_FLAG2_INTRA_VLC 0x00000800 ///< Use MPEG-2 intra VLC table.
-#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///< Only do ME/MC (I frames -> ref, P frame -> ME+MC).
-#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format.
-#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skipping
-#define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries.
-#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///< Use MPEG-2 nonlinear quantizer.
-#define CODEC_FLAG2_BIT_RESERVOIR 0x00020000 ///< Use a bit reservoir when encoding if possible
-#define CODEC_FLAG2_MBTREE 0x00040000 ///< Use macroblock tree ratecontrol (x264 only)
-#define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizations.
-#define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding, error[] values are undefined.
-
-/* Unsupported options :
- * Syntax Arithmetic coding (SAC)
- * Reference Picture Selection
- * Independent Segment Decoding */
-/* /Fx */
-/* codec capabilities */
-
-#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< Decoder can use draw_horiz_band callback.
-/**
- * Codec uses get_buffer() for allocating buffers and supports custom allocators.
- * If not set, it might not use get_buffer() at all or use operations that
- * assume the buffer was allocated by avcodec_default_get_buffer.
- */
-#define CODEC_CAP_DR1 0x0002
-/* If 'parse_only' field is true, then avcodec_parse_frame() can be used. */
-#define CODEC_CAP_PARSE_ONLY 0x0004
-#define CODEC_CAP_TRUNCATED 0x0008
-/* Codec can export data for HW decoding (XvMC). */
-#define CODEC_CAP_HWACCEL 0x0010
-/**
- * Codec has a nonzero delay and needs to be fed with NULL at the end to get the delayed data.
- * If this is not set, the codec is guaranteed to never be fed with NULL data.
- */
-#define CODEC_CAP_DELAY 0x0020
-/**
- * Codec can be fed a final frame with a smaller size.
- * This can be used to prevent truncation of the last audio samples.
- */
-#define CODEC_CAP_SMALL_LAST_FRAME 0x0040
-/**
- * Codec can export data for HW decoding (VDPAU).
- */
-#define CODEC_CAP_HWACCEL_VDPAU 0x0080
-/**
- * Codec can output multiple frames per AVPacket
- * Normally demuxers return one frame at a time, demuxers which do not do
- * are connected to a parser to split what they return into proper frames.
- * This flag is reserved to the very rare category of codecs which have a
- * bitstream that cannot be split into frames without timeconsuming
- * operations like full decoding. Demuxers carring such bitstreams thus
- * may return multiple frames in a packet. This has many disadvantages like
- * prohibiting stream copy in many cases thus it should only be considered
- * as a last resort.
- */
-#define CODEC_CAP_SUBFRAMES 0x0100
-/**
- * Codec is experimental and is thus avoided in favor of non experimental
- * encoders
- */
-#define CODEC_CAP_EXPERIMENTAL 0x0200
-
-//The following defines may change, don't expect compatibility if you use them.
-#define MB_TYPE_INTRA4x4 0x0001
-#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
-#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific
-#define MB_TYPE_16x16 0x0008
-#define MB_TYPE_16x8 0x0010
-#define MB_TYPE_8x16 0x0020
-#define MB_TYPE_8x8 0x0040
-#define MB_TYPE_INTERLACED 0x0080
-#define MB_TYPE_DIRECT2 0x0100 //FIXME
-#define MB_TYPE_ACPRED 0x0200
-#define MB_TYPE_GMC 0x0400
-#define MB_TYPE_SKIP 0x0800
-#define MB_TYPE_P0L0 0x1000
-#define MB_TYPE_P1L0 0x2000
-#define MB_TYPE_P0L1 0x4000
-#define MB_TYPE_P1L1 0x8000
-#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
-#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
-#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
-#define MB_TYPE_QUANT 0x00010000
-#define MB_TYPE_CBP 0x00020000
-//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)
-
-/**
- * Pan Scan area.
- * This specifies the area which should be displayed.
- * Note there may be multiple such areas for one frame.
- */
-typedef struct AVPanScan{
- /**
- * id
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int id;
-
- /**
- * width and height in 1/16 pel
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int width;
- int height;
-
- /**
- * position of the top left corner in 1/16 pel for up to 3 fields/frames
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int16_t position[3][2];
-}AVPanScan;
-
-#define FF_COMMON_FRAME \
- /**\
- * pointer to the picture planes.\
- * This might be different from the first allocated byte\
- * - encoding: \
- * - decoding: \
- */\
- uint8_t *data[4];\
- int linesize[4];\
- /**\
- * pointer to the first allocated byte of the picture. Can be used in get_buffer/release_buffer.\
- * This isn't used by libavcodec unless the default get/release_buffer() is used.\
- * - encoding: \
- * - decoding: \
- */\
- uint8_t *base[4];\
- /**\
- * 1 -> keyframe, 0-> not\
- * - encoding: Set by libavcodec.\
- * - decoding: Set by libavcodec.\
- */\
- int key_frame;\
-\
- /**\
- * Picture type of the frame, see ?_TYPE below.\
- * - encoding: Set by libavcodec. for coded_picture (and set by user for input).\
- * - decoding: Set by libavcodec.\
- */\
- int pict_type;\
-\
- /**\
- * presentation timestamp in time_base units (time when frame should be shown to user)\
- * If AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed.\
- * - encoding: MUST be set by user.\
- * - decoding: Set by libavcodec.\
- */\
- int64_t pts;\
-\
- /**\
- * picture number in bitstream order\
- * - encoding: set by\
- * - decoding: Set by libavcodec.\
- */\
- int coded_picture_number;\
- /**\
- * picture number in display order\
- * - encoding: set by\
- * - decoding: Set by libavcodec.\
- */\
- int display_picture_number;\
-\
- /**\
- * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) \
- * - encoding: Set by libavcodec. for coded_picture (and set by user for input).\
- * - decoding: Set by libavcodec.\
- */\
- int quality; \
-\
- /**\
- * buffer age (1->was last buffer and dint change, 2->..., ...).\
- * Set to INT_MAX if the buffer has not been used yet.\
- * - encoding: unused\
- * - decoding: MUST be set by get_buffer().\
- */\
- int age;\
-\
- /**\
- * is this picture used as reference\
- * The values for this are the same as the MpegEncContext.picture_structure\
- * variable, that is 1->top field, 2->bottom field, 3->frame/both fields.\
- * Set to 4 for delayed, non-reference frames.\
- * - encoding: unused\
- * - decoding: Set by libavcodec. (before get_buffer() call)).\
- */\
- int reference;\
-\
- /**\
- * QP table\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- int8_t *qscale_table;\
- /**\
- * QP store stride\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- int qstride;\
-\
- /**\
- * mbskip_table[mb]>=1 if MB didn't change\
- * stride= mb_width = (width+15)>>4\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- uint8_t *mbskip_table;\
-\
- /**\
- * motion vector table\
- * @code\
- * example:\
- * int mv_sample_log2= 4 - motion_subsample_log2;\
- * int mb_width= (width+15)>>4;\
- * int mv_stride= (mb_width << mv_sample_log2) + 1;\
- * motion_val[direction][x + y*mv_stride][0->mv_x, 1->mv_y];\
- * @endcode\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec.\
- */\
- int16_t (*motion_val[2])[2];\
-\
- /**\
- * macroblock type table\
- * mb_type_base + mb_width + 2\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec.\
- */\
- uint32_t *mb_type;\
-\
- /**\
- * log2 of the size of the block which a single vector in motion_val represents: \
- * (4->16x16, 3->8x8, 2-> 4x4, 1-> 2x2)\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- uint8_t motion_subsample_log2;\
-\
- /**\
- * for some private data of the user\
- * - encoding: unused\
- * - decoding: Set by user.\
- */\
- void *opaque;\
-\
- /**\
- * error\
- * - encoding: Set by libavcodec. if flags&CODEC_FLAG_PSNR.\
- * - decoding: unused\
- */\
- uint64_t error[4];\
-\
- /**\
- * type of the buffer (to keep track of who has to deallocate data[*])\
- * - encoding: Set by the one who allocates it.\
- * - decoding: Set by the one who allocates it.\
- * Note: User allocated (direct rendering) & internal buffers cannot coexist currently.\
- */\
- int type;\
- \
- /**\
- * When decoding, this signals how much the picture must be delayed.\
- * extra_delay = repeat_pict / (2*fps)\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- int repeat_pict;\
- \
- /**\
- * \
- */\
- int qscale_type;\
- \
- /**\
- * The content of the picture is interlaced.\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec. (default 0)\
- */\
- int interlaced_frame;\
- \
- /**\
- * If the content is interlaced, is top field displayed first.\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec.\
- */\
- int top_field_first;\
- \
- /**\
- * Pan scan.\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec.\
- */\
- AVPanScan *pan_scan;\
- \
- /**\
- * Tell user application that palette has changed from previous frame.\
- * - encoding: ??? (no palette-enabled encoder yet)\
- * - decoding: Set by libavcodec. (default 0).\
- */\
- int palette_has_changed;\
- \
- /**\
- * codec suggestion on buffer type if != 0\
- * - encoding: unused\
- * - decoding: Set by libavcodec. (before get_buffer() call)).\
- */\
- int buffer_hints;\
-\
- /**\
- * DCT coefficients\
- * - encoding: unused\
- * - decoding: Set by libavcodec.\
- */\
- short *dct_coeff;\
-\
- /**\
- * motion reference frame index\
- * the order in which these are stored can depend on the codec.\
- * - encoding: Set by user.\
- * - decoding: Set by libavcodec.\
- */\
- int8_t *ref_index[2];\
-\
- /**\
- * reordered opaque 64bit number (generally a PTS) from AVCodecContext.reordered_opaque\
- * output in AVFrame.reordered_opaque\
- * - encoding: unused\
- * - decoding: Read by user.\
- */\
- int64_t reordered_opaque;\
-\
- /**\
- * hardware accelerator private data (FFmpeg allocated)\
- * - encoding: unused\
- * - decoding: Set by libavcodec\
- */\
- void *hwaccel_picture_private;\
-
-
-#define FF_QSCALE_TYPE_MPEG1 0
-#define FF_QSCALE_TYPE_MPEG2 1
-#define FF_QSCALE_TYPE_H264 2
-#define FF_QSCALE_TYPE_VP56 3
-
-#define FF_BUFFER_TYPE_INTERNAL 1
-#define FF_BUFFER_TYPE_USER 2 ///< direct rendering buffers (image is (de)allocated by user)
-#define FF_BUFFER_TYPE_SHARED 4 ///< Buffer from somewhere else; don't deallocate image (data/base), all other tables are not shared.
-#define FF_BUFFER_TYPE_COPY 8 ///< Just a (modified) copy of some other buffer, don't deallocate anything.
-
-
-#define FF_I_TYPE 1 ///< Intra
-#define FF_P_TYPE 2 ///< Predicted
-#define FF_B_TYPE 3 ///< Bi-dir predicted
-#define FF_S_TYPE 4 ///< S(GMC)-VOP MPEG4
-#define FF_SI_TYPE 5 ///< Switching Intra
-#define FF_SP_TYPE 6 ///< Switching Predicted
-#define FF_BI_TYPE 7
-
-#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore).
-#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer.
-#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content.
-#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update).
-
-typedef struct AVPacket {
- /**
- * Presentation timestamp in AVStream->time_base units; the time at which
- * the decompressed packet will be presented to the user.
- * Can be AV_NOPTS_VALUE if it is not stored in the file.
- * pts MUST be larger or equal to dts as presentation cannot happen before
- * decompression, unless one wants to view hex dumps. Some formats misuse
- * the terms dts and pts/cts to mean something different. Such timestamps
- * must be converted to true pts/dts before they are stored in AVPacket.
- */
- int64_t pts;
- /**
- * Decompression timestamp in AVStream->time_base units; the time at which
- * the packet is decompressed.
- * Can be AV_NOPTS_VALUE if it is not stored in the file.
- */
- int64_t dts;
- uint8_t *data;
- int size;
- int stream_index;
- int flags;
- /**
- * Duration of this packet in AVStream->time_base units, 0 if unknown.
- * Equals next_pts - this_pts in presentation order.
- */
- int duration;
- void (*destruct)(struct AVPacket *);
- void *priv;
- int64_t pos; ///< byte position in stream, -1 if unknown
-#ifdef GST_EXT_FFMUX_ENHANCEMENT //0090303 jpark
- int is_mux;
-#endif // GST_EXT_FFMUX_ENHANCEMENT //0090303 jpark
-
- /**
- * Time difference in AVStream->time_base units from the pts of this
- * packet to the point at which the output from the decoder has converged
- * independent from the availability of previous frames. That is, the
- * frames are virtually identical no matter if decoding started from
- * the very first frame or from this keyframe.
- * Is AV_NOPTS_VALUE if unknown.
- * This field is not the display duration of the current packet.
- *
- * The purpose of this field is to allow seeking in streams that have no
- * keyframes in the conventional sense. It corresponds to the
- * recovery point SEI in H.264 and match_time_delta in NUT. It is also
- * essential for some types of subtitle streams to ensure that all
- * subtitles are correctly displayed after seeking.
- */
- int64_t convergence_duration;
-} AVPacket;
-#define AV_PKT_FLAG_KEY 0x0001
-#if LIBAVCODEC_VERSION_MAJOR < 53
-#define PKT_FLAG_KEY AV_PKT_FLAG_KEY
-#endif
-
-/**
- * Audio Video Frame.
- * New fields can be added to the end of FF_COMMON_FRAME with minor version
- * bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump. No fields should be added into AVFrame before or after
- * FF_COMMON_FRAME!
- * sizeof(AVFrame) must not be used outside libav*.
- */
-typedef struct AVFrame {
- FF_COMMON_FRAME
-} AVFrame;
-
-/**
- * main external API structure.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVCodecContext) must not be used outside libav*.
- */
-typedef struct AVCodecContext {
- /**
- * information on struct for av_log
- * - set by avcodec_alloc_context
- */
- const AVClass *av_class;
- /**
- * the average bitrate
- * - encoding: Set by user; unused for constant quantizer encoding.
- * - decoding: Set by libavcodec. 0 or some bitrate if this info is available in the stream.
- */
- int bit_rate;
-
- /**
- * number of bits the bitstream is allowed to diverge from the reference.
- * the reference can be CBR (for CBR pass1) or VBR (for pass2)
- * - encoding: Set by user; unused for constant quantizer encoding.
- * - decoding: unused
- */
- int bit_rate_tolerance;
-
- /**
- * CODEC_FLAG_*.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int flags;
-
- /**
- * Some codecs need additional format info. It is stored here.
- * If any muxer uses this then ALL demuxers/parsers AND encoders for the
- * specific codec MUST set it correctly otherwise stream copy breaks.
- * In general use of this field by muxers is not recommanded.
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec. (FIXME: Is this OK?)
- */
- int sub_id;
-
- /**
- * Motion estimation algorithm used for video coding.
- * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex),
- * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific]
- * - encoding: MUST be set by user.
- * - decoding: unused
- */
- int me_method;
-
- /**
- * some codecs need / can use extradata like Huffman tables.
- * mjpeg: Huffman tables
- * rv10: additional flags
- * mpeg4: global headers (they can be in the bitstream or here)
- * The allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger
- * than extradata_size to avoid prolems if it is read with the bitstream reader.
- * The bytewise contents of extradata must not depend on the architecture or CPU endianness.
- * - encoding: Set/allocated/freed by libavcodec.
- * - decoding: Set/allocated/freed by user.
- */
- uint8_t *extradata;
- int extradata_size;
-
- /**
- * This is the fundamental unit of time (in seconds) in terms
- * of which frame timestamps are represented. For fixed-fps content,
- * timebase should be 1/framerate and timestamp increments should be
- * identically 1.
- * - encoding: MUST be set by user.
- * - decoding: Set by libavcodec.
- */
- AVRational time_base;
-
- /* video only */
- /**
- * picture width / height.
- * - encoding: MUST be set by user.
- * - decoding: Set by libavcodec.
- * Note: For compatibility it is possible to set this instead of
- * coded_width/height before decoding.
- */
- int width, height;
-
-#define FF_ASPECT_EXTENDED 15
-
- /**
- * the number of pictures in a group of pictures, or 0 for intra_only
- * - encoding: Set by user.
- * - decoding: unused
- */
- int gop_size;
-
- /**
- * Pixel format, see PIX_FMT_xxx.
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- enum PixelFormat pix_fmt;
-
- /**
- * Frame rate emulation. If not zero, the lower layer (i.e. format handler)
- * has to read frames at native frame rate.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rate_emu;
-
- /**
- * If non NULL, 'draw_horiz_band' is called by the libavcodec
- * decoder to draw a horizontal band. It improves cache usage. Not
- * all codecs can do that. You must check the codec capabilities
- * beforehand.
- * The function is also used by hardware acceleration APIs.
- * It is called at least once during frame decoding to pass
- * the data needed for hardware render.
- * In that mode instead of pixel data, AVFrame points to
- * a structure specific to the acceleration API. The application
- * reads the structure and can change some fields to indicate progress
- * or mark state.
- * - encoding: unused
- * - decoding: Set by user.
- * @param height the height of the slice
- * @param y the y position of the slice
- * @param type 1->top field, 2->bottom field, 3->frame
- * @param offset offset into the AVFrame.data from which the slice should be read
- */
- void (*draw_horiz_band)(struct AVCodecContext *s,
- const AVFrame *src, int offset[4],
- int y, int type, int height);
-
- /* audio only */
- int sample_rate; ///< samples per second
- int channels; ///< number of audio channels
-
- /**
- * audio sample format
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- enum SampleFormat sample_fmt; ///< sample format
-
- /* The following data should not be initialized. */
- /**
- * Samples per packet, initialized when calling 'init'.
- */
- int frame_size;
- int frame_number; ///< audio or video frame number
-#if LIBAVCODEC_VERSION_MAJOR < 53
- int real_pict_num; ///< Returns the real picture number of previous encoded frame.
-#endif
-
- /**
- * Number of frames the decoded output will be delayed relative to
- * the encoded input.
- * - encoding: Set by libavcodec.
- * - decoding: unused
- */
- int delay;
-
- /* - encoding parameters */
- float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0)
- float qblur; ///< amount of qscale smoothing over time (0.0-1.0)
-
- /**
- * minimum quantizer
- * - encoding: Set by user.
- * - decoding: unused
- */
- int qmin;
-
- /**
- * maximum quantizer
- * - encoding: Set by user.
- * - decoding: unused
- */
- int qmax;
-
- /**
- * maximum quantizer difference between frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_qdiff;
-
- /**
- * maximum number of B-frames between non-B-frames
- * Note: The output will be delayed by max_b_frames+1 relative to the input.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_b_frames;
-
- /**
- * qscale factor between IP and B-frames
- * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset).
- * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
- * - encoding: Set by user.
- * - decoding: unused
- */
- float b_quant_factor;
-
- /** obsolete FIXME remove */
- int rc_strategy;
-#define FF_RC_STRATEGY_XVID 1
-
- int b_frame_strategy;
-
- /**
- * hurry up amount
- * - encoding: unused
- * - decoding: Set by user. 1-> Skip B-frames, 2-> Skip IDCT/dequant too, 5-> Skip everything except header
- * @deprecated Deprecated in favor of skip_idct and skip_frame.
- */
- int hurry_up;
-
- struct AVCodec *codec;
-
- void *priv_data;
-
- int rtp_payload_size; /* The size of the RTP payload: the coder will */
- /* do its best to deliver a chunk with size */
- /* below rtp_payload_size, the chunk will start */
- /* with a start code on some codecs like H.263. */
- /* This doesn't take account of any particular */
- /* headers inside the transmitted RTP payload. */
-
-
- /* The RTP callback: This function is called */
- /* every time the encoder has a packet to send. */
- /* It depends on the encoder if the data starts */
- /* with a Start Code (it should). H.263 does. */
- /* mb_nb contains the number of macroblocks */
- /* encoded in the RTP payload. */
- void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
-
- /* statistics, used for 2-pass encoding */
- int mv_bits;
- int header_bits;
- int i_tex_bits;
- int p_tex_bits;
- int i_count;
- int p_count;
- int skip_count;
- int misc_bits;
-
- /**
- * number of bits used for the previously encoded frame
- * - encoding: Set by libavcodec.
- * - decoding: unused
- */
- int frame_bits;
-
- /**
- * Private data of the user, can be used to carry app specific stuff.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- void *opaque;
-
- char codec_name[32];
- enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
- enum CodecID codec_id; /* see CODEC_ID_xxx */
-
- /**
- * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
- * This is used to work around some encoder bugs.
- * A demuxer should set this to what is stored in the field used to identify the codec.
- * If there are multiple such fields in a container then the demuxer should choose the one
- * which maximizes the information about the used codec.
- * If the codec tag field in a container is larger then 32 bits then the demuxer should
- * remap the longer ID to 32 bits with a table or other structure. Alternatively a new
- * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated
- * first.
- * - encoding: Set by user, if not then the default based on codec_id will be used.
- * - decoding: Set by user, will be converted to uppercase by libavcodec during init.
- */
- unsigned int codec_tag;
-
- /**
- * Work around bugs in encoders which sometimes cannot be detected automatically.
- * - encoding: Set by user
- * - decoding: Set by user
- */
- int workaround_bugs;
-#define FF_BUG_AUTODETECT 1 ///< autodetection
-#define FF_BUG_OLD_MSMPEG4 2
-#define FF_BUG_XVID_ILACE 4
-#define FF_BUG_UMP4 8
-#define FF_BUG_NO_PADDING 16
-#define FF_BUG_AMV 32
-#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default.
-#define FF_BUG_QPEL_CHROMA 64
-#define FF_BUG_STD_QPEL 128
-#define FF_BUG_QPEL_CHROMA2 256
-#define FF_BUG_DIRECT_BLOCKSIZE 512
-#define FF_BUG_EDGE 1024
-#define FF_BUG_HPEL_CHROMA 2048
-#define FF_BUG_DC_CLIP 4096
-#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders.
-#define FF_BUG_TRUNCATED 16384
-//#define FF_BUG_FAKE_SCALABILITY 16 //Autodetection should work 100%.
-
- /**
- * luma single coefficient elimination threshold
- * - encoding: Set by user.
- * - decoding: unused
- */
- int luma_elim_threshold;
-
- /**
- * chroma single coeff elimination threshold
- * - encoding: Set by user.
- * - decoding: unused
- */
- int chroma_elim_threshold;
-
- /**
- * strictly follow the standard (MPEG4, ...).
- * - encoding: Set by user.
- * - decoding: Set by user.
- * Setting this to STRICT or higher means the encoder and decoder will
- * generally do stupid things. While setting it to inofficial or lower
- * will mean the encoder might use things that are not supported by all
- * spec compliant decoders. Decoders make no difference between normal,
- * inofficial and experimental, that is they always try to decode things
- * when they can unless they are explicitly asked to behave stupid
- * (=strictly conform to the specs)
- */
- int strict_std_compliance;
-#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to a older more strict version of the spec or reference software.
-#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences.
-#define FF_COMPLIANCE_NORMAL 0
-#define FF_COMPLIANCE_INOFFICIAL -1 ///< Allow inofficial extensions.
-#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things.
-
- /**
- * qscale offset between IP and B-frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- float b_quant_offset;
-
- /**
- * Error recognization; higher values will detect more errors but may
- * misdetect some more or less valid parts as errors.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int error_recognition;
-#define FF_ER_CAREFUL 1
-#define FF_ER_COMPLIANT 2
-#define FF_ER_AGGRESSIVE 3
-#define FF_ER_VERY_AGGRESSIVE 4
-
- /**
- * Called at the beginning of each frame to get a buffer for it.
- * If pic.reference is set then the frame will be read later by libavcodec.
- * avcodec_align_dimensions2() should be used to find the required width and
- * height, as they normally need to be rounded up to the next multiple of 16.
- * if CODEC_CAP_DR1 is not set then get_buffer() must call
- * avcodec_default_get_buffer() instead of providing buffers allocated by
- * some other means.
- * - encoding: unused
- * - decoding: Set by libavcodec., user can override.
- */
- int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);
-
- /**
- * Called to release buffers which were allocated with get_buffer.
- * A released buffer can be reused in get_buffer().
- * pic.data[*] must be set to NULL.
- * - encoding: unused
- * - decoding: Set by libavcodec., user can override.
- */
- void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);
-
- /**
- * Size of the frame reordering buffer in the decoder.
- * For MPEG-2 it is 1 IPB or 0 low delay IP.
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- int has_b_frames;
-
- /**
- * number of bytes per packet if constant and known or 0
- * Used by some WAV based audio codecs.
- */
- int block_align;
-
- int parse_only; /* - decoding only: If true, only parsing is done
- (function avcodec_parse_frame()). The frame
- data is returned. Only MPEG codecs support this now. */
-
- /**
- * 0-> h263 quant 1-> mpeg quant
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mpeg_quant;
-
- /**
- * pass1 encoding statistics output buffer
- * - encoding: Set by libavcodec.
- * - decoding: unused
- */
- char *stats_out;
-
- /**
- * pass2 encoding statistics input buffer
- * Concatenated stuff from stats_out of pass1 should be placed here.
- * - encoding: Allocated/set/freed by user.
- * - decoding: unused
- */
- char *stats_in;
-
- /**
- * ratecontrol qmin qmax limiting method
- * 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax.
- * - encoding: Set by user.
- * - decoding: unused
- */
- float rc_qsquish;
-
- float rc_qmod_amp;
- int rc_qmod_freq;
-
- /**
- * ratecontrol override, see RcOverride
- * - encoding: Allocated/set/freed by user.
- * - decoding: unused
- */
- RcOverride *rc_override;
- int rc_override_count;
-
- /**
- * rate control equation
- * - encoding: Set by user
- * - decoding: unused
- */
- const char *rc_eq;
-
- /**
- * maximum bitrate
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_max_rate;
-
- /**
- * minimum bitrate
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_min_rate;
-
- /**
- * decoder bitstream buffer size
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_buffer_size;
- float rc_buffer_aggressivity;
-
- /**
- * qscale factor between P and I-frames
- * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
- * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
- * - encoding: Set by user.
- * - decoding: unused
- */
- float i_quant_factor;
-
- /**
- * qscale offset between P and I-frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- float i_quant_offset;
-
- /**
- * initial complexity for pass1 ratecontrol
- * - encoding: Set by user.
- * - decoding: unused
- */
- float rc_initial_cplx;
-
- /**
- * DCT algorithm, see FF_DCT_* below
- * - encoding: Set by user.
- * - decoding: unused
- */
- int dct_algo;
-#define FF_DCT_AUTO 0
-#define FF_DCT_FASTINT 1
-#define FF_DCT_INT 2
-#define FF_DCT_MMX 3
-#define FF_DCT_MLIB 4
-#define FF_DCT_ALTIVEC 5
-#define FF_DCT_FAAN 6
-
- /**
- * luminance masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float lumi_masking;
-
- /**
- * temporary complexity masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float temporal_cplx_masking;
-
- /**
- * spatial complexity masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float spatial_cplx_masking;
-
- /**
- * p block masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float p_masking;
-
- /**
- * darkness masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float dark_masking;
-
- /**
- * IDCT algorithm, see FF_IDCT_* below.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int idct_algo;
-#define FF_IDCT_AUTO 0
-#define FF_IDCT_INT 1
-#define FF_IDCT_SIMPLE 2
-#define FF_IDCT_SIMPLEMMX 3
-#define FF_IDCT_LIBMPEG2MMX 4
-#define FF_IDCT_PS2 5
-#define FF_IDCT_MLIB 6
-#define FF_IDCT_ARM 7
-#define FF_IDCT_ALTIVEC 8
-#define FF_IDCT_SH4 9
-#define FF_IDCT_SIMPLEARM 10
-#define FF_IDCT_H264 11
-#define FF_IDCT_VP3 12
-#define FF_IDCT_IPP 13
-#define FF_IDCT_XVIDMMX 14
-#define FF_IDCT_CAVS 15
-#define FF_IDCT_SIMPLEARMV5TE 16
-#define FF_IDCT_SIMPLEARMV6 17
-#define FF_IDCT_SIMPLEVIS 18
-#define FF_IDCT_WMV2 19
-#define FF_IDCT_FAAN 20
-#define FF_IDCT_EA 21
-#define FF_IDCT_SIMPLENEON 22
-#define FF_IDCT_SIMPLEALPHA 23
-#define FF_IDCT_BINK 24
-
- /**
- * slice count
- * - encoding: Set by libavcodec.
- * - decoding: Set by user (or 0).
- */
- int slice_count;
- /**
- * slice offsets in the frame in bytes
- * - encoding: Set/allocated by libavcodec.
- * - decoding: Set/allocated by user (or NULL).
- */
- int *slice_offset;
-
- /**
- * error concealment flags
- * - encoding: unused
- * - decoding: Set by user.
- */
- int error_concealment;
-#define FF_EC_GUESS_MVS 1
-#define FF_EC_DEBLOCK 2
-
- /**
- * dsp_mask could be add used to disable unwanted CPU features
- * CPU features (i.e. MMX, SSE. ...)
- *
- * With the FORCE flag you may instead enable given CPU features.
- * (Dangerous: Usable in case of misdetection, improper usage however will
- * result into program crash.)
- */
- unsigned dsp_mask;
-#define FF_MM_FORCE 0x80000000 /* Force usage of selected flags (OR) */
- /* lower 16 bits - CPU features */
-#define FF_MM_MMX 0x0001 ///< standard MMX
-#define FF_MM_3DNOW 0x0004 ///< AMD 3DNOW
-#if LIBAVCODEC_VERSION_MAJOR < 53
-#define FF_MM_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext
-#endif
-#define FF_MM_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext
-#define FF_MM_SSE 0x0008 ///< SSE functions
-#define FF_MM_SSE2 0x0010 ///< PIV SSE2 functions
-#define FF_MM_3DNOWEXT 0x0020 ///< AMD 3DNowExt
-#define FF_MM_SSE3 0x0040 ///< Prescott SSE3 functions
-#define FF_MM_SSSE3 0x0080 ///< Conroe SSSE3 functions
-#define FF_MM_SSE4 0x0100 ///< Penryn SSE4.1 functions
-#define FF_MM_SSE42 0x0200 ///< Nehalem SSE4.2 functions
-#define FF_MM_IWMMXT 0x0100 ///< XScale IWMMXT
-#define FF_MM_ALTIVEC 0x0001 ///< standard AltiVec
-
- /**
- * bits per sample/pixel from the demuxer (needed for huffyuv).
- * - encoding: Set by libavcodec.
- * - decoding: Set by user.
- */
- int bits_per_coded_sample;
-
- /**
- * prediction method (needed for huffyuv)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int prediction_method;
-#define FF_PRED_LEFT 0
-#define FF_PRED_PLANE 1
-#define FF_PRED_MEDIAN 2
-
- /**
- * sample aspect ratio (0 if unknown)
- * That is the width of a pixel divided by the height of the pixel.
- * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- AVRational sample_aspect_ratio;
-
- /**
- * the picture in the bitstream
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- AVFrame *coded_frame;
-
- /**
- * debug
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int debug;
-#define FF_DEBUG_PICT_INFO 1
-#define FF_DEBUG_RC 2
-#define FF_DEBUG_BITSTREAM 4
-#define FF_DEBUG_MB_TYPE 8
-#define FF_DEBUG_QP 16
-#define FF_DEBUG_MV 32
-#define FF_DEBUG_DCT_COEFF 0x00000040
-#define FF_DEBUG_SKIP 0x00000080
-#define FF_DEBUG_STARTCODE 0x00000100
-#define FF_DEBUG_PTS 0x00000200
-#define FF_DEBUG_ER 0x00000400
-#define FF_DEBUG_MMCO 0x00000800
-#define FF_DEBUG_BUGS 0x00001000
-#define FF_DEBUG_VIS_QP 0x00002000
-#define FF_DEBUG_VIS_MB_TYPE 0x00004000
-#define FF_DEBUG_BUFFERS 0x00008000
-
- /**
- * debug
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int debug_mv;
-#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
-#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
-#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
-
- /**
- * error
- * - encoding: Set by libavcodec if flags&CODEC_FLAG_PSNR.
- * - decoding: unused
- */
- uint64_t error[4];
-
- /**
- * minimum MB quantizer
- * - encoding: unused
- * - decoding: unused
- */
- int mb_qmin;
-
- /**
- * maximum MB quantizer
- * - encoding: unused
- * - decoding: unused
- */
- int mb_qmax;
-
- /**
- * motion estimation comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_cmp;
- /**
- * subpixel motion estimation comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_sub_cmp;
- /**
- * macroblock comparison function (not supported yet)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_cmp;
- /**
- * interlaced DCT comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int ildct_cmp;
-#define FF_CMP_SAD 0
-#define FF_CMP_SSE 1
-#define FF_CMP_SATD 2
-#define FF_CMP_DCT 3
-#define FF_CMP_PSNR 4
-#define FF_CMP_BIT 5
-#define FF_CMP_RD 6
-#define FF_CMP_ZERO 7
-#define FF_CMP_VSAD 8
-#define FF_CMP_VSSE 9
-#define FF_CMP_NSSE 10
-#define FF_CMP_W53 11
-#define FF_CMP_W97 12
-#define FF_CMP_DCTMAX 13
-#define FF_CMP_DCT264 14
-#define FF_CMP_CHROMA 256
-
- /**
- * ME diamond size & shape
- * - encoding: Set by user.
- * - decoding: unused
- */
- int dia_size;
-
- /**
- * amount of previous MV predictors (2a+1 x 2a+1 square)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int last_predictor_count;
-
- /**
- * prepass for motion estimation
- * - encoding: Set by user.
- * - decoding: unused
- */
- int pre_me;
-
- /**
- * motion estimation prepass comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_pre_cmp;
-
- /**
- * ME prepass diamond size & shape
- * - encoding: Set by user.
- * - decoding: unused
- */
- int pre_dia_size;
-
- /**
- * subpel ME quality
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_subpel_quality;
-
- /**
- * callback to negotiate the pixelFormat
- * @param fmt is the list of formats which are supported by the codec,
- * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality.
- * The first is always the native one.
- * @return the chosen format
- * - encoding: unused
- * - decoding: Set by user, if not set the native format will be chosen.
- */
- enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt);
-
- /**
- * DTG active format information (additional aspect ratio
- * information only used in DVB MPEG-2 transport streams)
- * 0 if not set.
- *
- * - encoding: unused
- * - decoding: Set by decoder.
- */
- int dtg_active_format;
-#define FF_DTG_AFD_SAME 8
-#define FF_DTG_AFD_4_3 9
-#define FF_DTG_AFD_16_9 10
-#define FF_DTG_AFD_14_9 11
-#define FF_DTG_AFD_4_3_SP_14_9 13
-#define FF_DTG_AFD_16_9_SP_14_9 14
-#define FF_DTG_AFD_SP_4_3 15
-
- /**
- * maximum motion estimation search range in subpel units
- * If 0 then no limit.
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_range;
-
- /**
- * intra quantizer bias
- * - encoding: Set by user.
- * - decoding: unused
- */
- int intra_quant_bias;
-#define FF_DEFAULT_QUANT_BIAS 999999
-
- /**
- * inter quantizer bias
- * - encoding: Set by user.
- * - decoding: unused
- */
- int inter_quant_bias;
-
- /**
- * color table ID
- * - encoding: unused
- * - decoding: Which clrtable should be used for 8bit RGB images.
- * Tables have to be stored somewhere. FIXME
- */
- int color_table_id;
-
- /**
- * internal_buffer count
- * Don't touch, used by libavcodec default_get_buffer().
- */
- int internal_buffer_count;
-
- /**
- * internal_buffers
- * Don't touch, used by libavcodec default_get_buffer().
- */
- void *internal_buffer;
-
-#define FF_LAMBDA_SHIFT 7
-#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
-#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
-#define FF_LAMBDA_MAX (256*128-1)
-
-#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
- /**
- * Global quality for codecs which cannot change it per frame.
- * This should be proportional to MPEG-1/2/4 qscale.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int global_quality;
-
-#define FF_CODER_TYPE_VLC 0
-#define FF_CODER_TYPE_AC 1
-#define FF_CODER_TYPE_RAW 2
-#define FF_CODER_TYPE_RLE 3
-#define FF_CODER_TYPE_DEFLATE 4
- /**
- * coder type
- * - encoding: Set by user.
- * - decoding: unused
- */
- int coder_type;
-
- /**
- * context model
- * - encoding: Set by user.
- * - decoding: unused
- */
- int context_model;
-#if 0
- /**
- *
- * - encoding: unused
- * - decoding: Set by user.
- */
- uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size);
-#endif
-
- /**
- * slice flags
- * - encoding: unused
- * - decoding: Set by user.
- */
- int slice_flags;
-#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
-#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
-#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
-
- /**
- * XVideo Motion Acceleration
- * - encoding: forbidden
- * - decoding: set by decoder
- */
- int xvmc_acceleration;
-
- /**
- * macroblock decision mode
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_decision;
-#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp
-#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits
-#define FF_MB_DECISION_RD 2 ///< rate distortion
-
- /**
- * custom intra quantization matrix
- * - encoding: Set by user, can be NULL.
- * - decoding: Set by libavcodec.
- */
- uint16_t *intra_matrix;
-
- /**
- * custom inter quantization matrix
- * - encoding: Set by user, can be NULL.
- * - decoding: Set by libavcodec.
- */
- uint16_t *inter_matrix;
-
- /**
- * fourcc from the AVI stream header (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
- * This is used to work around some encoder bugs.
- * - encoding: unused
- * - decoding: Set by user, will be converted to uppercase by libavcodec during init.
- */
- unsigned int stream_codec_tag;
-
- /**
- * scene change detection threshold
- * 0 is default, larger means fewer detected scene changes.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int scenechange_threshold;
-
- /**
- * minimum Lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int lmin;
-
- /**
- * maximum Lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int lmax;
-
- /**
- * palette control structure
- * - encoding: ??? (no palette-enabled encoder yet)
- * - decoding: Set by user.
- */
- struct AVPaletteControl *palctrl;
-
- /**
- * noise reduction strength
- * - encoding: Set by user.
- * - decoding: unused
- */
- int noise_reduction;
-
- /**
- * Called at the beginning of a frame to get cr buffer for it.
- * Buffer type (size, hints) must be the same. libavcodec won't check it.
- * libavcodec will pass previous buffer in pic, function should return
- * same buffer or new buffer with old frame "painted" into it.
- * If pic.data[0] == NULL must behave like get_buffer().
- * if CODEC_CAP_DR1 is not set then reget_buffer() must call
- * avcodec_default_reget_buffer() instead of providing buffers allocated by
- * some other means.
- * - encoding: unused
- * - decoding: Set by libavcodec., user can override
- */
- int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic);
-
- /**
- * Number of bits which should be loaded into the rc buffer before decoding starts.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_initial_buffer_occupancy;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int inter_threshold;
-
- /**
- * CODEC_FLAG2_*
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int flags2;
-
- /**
- * Simulates errors in the bitstream to test error concealment.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int error_rate;
-
- /**
- * MP3 antialias algorithm, see FF_AA_* below.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int antialias_algo;
-#define FF_AA_AUTO 0
-#define FF_AA_FASTINT 1 //not implemented yet
-#define FF_AA_INT 2
-#define FF_AA_FLOAT 3
- /**
- * quantizer noise shaping
- * - encoding: Set by user.
- * - decoding: unused
- */
- int quantizer_noise_shaping;
-
- /**
- * thread count
- * is used to decide how many independent tasks should be passed to execute()
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int thread_count;
-
- /**
- * The codec may call this to execute several independent things.
- * It will return only after finishing all tasks.
- * The user may replace this with some multithreaded implementation,
- * the default implementation will execute the parts serially.
- * @param count the number of things to execute
- * - encoding: Set by libavcodec, user can override.
- * - decoding: Set by libavcodec, user can override.
- */
- int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size);
-
- /**
- * thread opaque
- * Can be used by execute() to store some per AVCodecContext stuff.
- * - encoding: set by execute()
- * - decoding: set by execute()
- */
- void *thread_opaque;
-
- /**
- * Motion estimation threshold below which no motion estimation is
- * performed, but instead the user specified motion vectors are used.
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_threshold;
-
- /**
- * Macroblock threshold below which the user specified macroblock types will be used.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_threshold;
-
- /**
- * precision of the intra DC coefficient - 8
- * - encoding: Set by user.
- * - decoding: unused
- */
- int intra_dc_precision;
-
- /**
- * noise vs. sse weight for the nsse comparsion function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int nsse_weight;
-
- /**
- * Number of macroblock rows at the top which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_top;
-
- /**
- * Number of macroblock rows at the bottom which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_bottom;
-
- /**
- * profile
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int profile;
-#define FF_PROFILE_UNKNOWN -99
-
-#define FF_PROFILE_AAC_MAIN 0
-#define FF_PROFILE_AAC_LOW 1
-#define FF_PROFILE_AAC_SSR 2
-#define FF_PROFILE_AAC_LTP 3
-
-#define FF_PROFILE_H264_BASELINE 66
-#define FF_PROFILE_H264_MAIN 77
-#define FF_PROFILE_H264_EXTENDED 88
-#define FF_PROFILE_H264_HIGH 100
-#define FF_PROFILE_H264_HIGH_10 110
-#define FF_PROFILE_H264_HIGH_422 122
-#define FF_PROFILE_H264_HIGH_444 244
-#define FF_PROFILE_H264_CAVLC_444 44
-
- /**
- * level
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int level;
-#define FF_LEVEL_UNKNOWN -99
-
- /**
- * low resolution decoding, 1-> 1/2 size, 2->1/4 size
- * - encoding: unused
- * - decoding: Set by user.
- */
- int lowres;
-
- /**
- * Bitstream width / height, may be different from width/height if lowres
- * or other things are used.
- * - encoding: unused
- * - decoding: Set by user before init if known. Codec should override / dynamically change if needed.
- */
- int coded_width, coded_height;
-
- /**
- * frame skip threshold
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_threshold;
-
- /**
- * frame skip factor
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_factor;
-
- /**
- * frame skip exponent
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_exp;
-
- /**
- * frame skip comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_cmp;
-
- /**
- * Border processing masking, raises the quantizer for mbs on the borders
- * of the picture.
- * - encoding: Set by user.
- * - decoding: unused
- */
- float border_masking;
-
- /**
- * minimum MB lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_lmin;
-
- /**
- * maximum MB lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_lmax;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_penalty_compensation;
-
- /**
- *
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_loop_filter;
-
- /**
- *
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_idct;
-
- /**
- *
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_frame;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int bidir_refine;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int brd_scale;
-
- /**
- * constant rate factor - quality-based VBR - values ~correspond to qps
- * - encoding: Set by user.
- * - decoding: unused
- */
- float crf;
-
- /**
- * constant quantization parameter rate control method
- * - encoding: Set by user.
- * - decoding: unused
- */
- int cqp;
-
- /**
- * minimum GOP size
- * - encoding: Set by user.
- * - decoding: unused
- */
- int keyint_min;
-
- /**
- * number of reference frames
- * - encoding: Set by user.
- * - decoding: Set by lavc.
- */
- int refs;
-
- /**
- * chroma qp offset from luma
- * - encoding: Set by user.
- * - decoding: unused
- */
- int chromaoffset;
-
- /**
- * Influences how often B-frames are used.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int bframebias;
-
- /**
- * trellis RD quantization
- * - encoding: Set by user.
- * - decoding: unused
- */
- int trellis;
-
- /**
- * Reduce fluctuations in qp (before curve compression).
- * - encoding: Set by user.
- * - decoding: unused
- */
- float complexityblur;
-
- /**
- * in-loop deblocking filter alphac0 parameter
- * alpha is in the range -6...6
- * - encoding: Set by user.
- * - decoding: unused
- */
- int deblockalpha;
-
- /**
- * in-loop deblocking filter beta parameter
- * beta is in the range -6...6
- * - encoding: Set by user.
- * - decoding: unused
- */
- int deblockbeta;
-
- /**
- * macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4
- * - encoding: Set by user.
- * - decoding: unused
- */
- int partitions;
-#define X264_PART_I4X4 0x001 /* Analyze i4x4 */
-#define X264_PART_I8X8 0x002 /* Analyze i8x8 (requires 8x8 transform) */
-#define X264_PART_P8X8 0x010 /* Analyze p16x8, p8x16 and p8x8 */
-#define X264_PART_P4X4 0x020 /* Analyze p8x4, p4x8, p4x4 */
-#define X264_PART_B8X8 0x100 /* Analyze b16x8, b8x16 and b8x8 */
-
- /**
- * direct MV prediction mode - 0 (none), 1 (spatial), 2 (temporal), 3 (auto)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int directpred;
-
- /**
- * Audio cutoff bandwidth (0 means "automatic")
- * - encoding: Set by user.
- * - decoding: unused
- */
- int cutoff;
-
- /**
- * Multiplied by qscale for each frame and added to scene_change_score.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int scenechange_factor;
-
- /**
- *
- * Note: Value depends upon the compare function used for fullpel ME.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mv0_threshold;
-
- /**
- * Adjusts sensitivity of b_frame_strategy 1.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int b_sensitivity;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int compression_level;
-#define FF_COMPRESSION_DEFAULT -1
-
- /**
- * Sets whether to use LPC mode - used by FLAC encoder.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int use_lpc;
-
- /**
- * LPC coefficient precision - used by FLAC encoder
- * - encoding: Set by user.
- * - decoding: unused
- */
- int lpc_coeff_precision;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int min_prediction_order;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_prediction_order;
-
- /**
- * search method for selecting prediction order
- * - encoding: Set by user.
- * - decoding: unused
- */
- int prediction_order_method;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int min_partition_order;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_partition_order;
-
- /**
- * GOP timecode frame start number, in non drop frame format
- * - encoding: Set by user.
- * - decoding: unused
- */
- int64_t timecode_frame_start;
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
- /**
- * Decoder should decode to this many channels if it can (0 for default)
- * - encoding: unused
- * - decoding: Set by user.
- * @deprecated Deprecated in favor of request_channel_layout.
- */
- int request_channels;
-#endif
-
- /**
- * Percentage of dynamic range compression to be applied by the decoder.
- * The default value is 1.0, corresponding to full compression.
- * - encoding: unused
- * - decoding: Set by user.
- */
- float drc_scale;
-
- /**
- * opaque 64bit number (generally a PTS) that will be reordered and
- * output in AVFrame.reordered_opaque
- * - encoding: unused
- * - decoding: Set by user.
- */
- int64_t reordered_opaque;
-
- /**
- * Bits per sample/pixel of internal libavcodec pixel/sample format.
- * This field is applicable only when sample_fmt is SAMPLE_FMT_S32.
- * - encoding: set by user.
- * - decoding: set by libavcodec.
- */
- int bits_per_raw_sample;
-
- /**
- * Audio channel layout.
- * - encoding: set by user.
- * - decoding: set by libavcodec.
- */
- int64_t channel_layout;
-
- /**
- * Request decoder to use this channel layout if it can (0 for default)
- * - encoding: unused
- * - decoding: Set by user.
- */
- int64_t request_channel_layout;
-
- /**
- * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.
- * - encoding: Set by user.
- * - decoding: unused.
- */
- float rc_max_available_vbv_use;
-
- /**
- * Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow.
- * - encoding: Set by user.
- * - decoding: unused.
- */
- float rc_min_vbv_overflow_use;
-
- /**
- * Hardware accelerator in use
- * - encoding: unused.
- * - decoding: Set by libavcodec
- */
- struct AVHWAccel *hwaccel;
-
- /**
- * For some codecs, the time base is closer to the field rate than the frame rate.
- * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration
- * if no telecine is used ...
- *
- * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.
- */
- int ticks_per_frame;
-
- /**
- * Hardware accelerator context.
- * For some hardware accelerators, a global context needs to be
- * provided by the user. In that case, this holds display-dependent
- * data FFmpeg cannot instantiate itself. Please refer to the
- * FFmpeg HW accelerator documentation to know how to fill this
- * is. e.g. for VA API, this is a struct vaapi_context.
- * - encoding: unused
- * - decoding: Set by user
- */
- void *hwaccel_context;
-
- /**
- * Chromaticity coordinates of the source primaries.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorPrimaries color_primaries;
-
- /**
- * Color Transfer Characteristic.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorTransferCharacteristic color_trc;
-
- /**
- * YUV colorspace type.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorSpace colorspace;
-
- /**
- * MPEG vs JPEG YUV range.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorRange color_range;
-
- /**
- * This defines the location of chroma samples.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVChromaLocation chroma_sample_location;
-
- /**
- * The codec may call this to execute several independent things.
- * It will return only after finishing all tasks.
- * The user may replace this with some multithreaded implementation,
- * the default implementation will execute the parts serially.
- * Also see avcodec_thread_init and e.g. the --enable-pthread configure option.
- * @param c context passed also to func
- * @param count the number of things to execute
- * @param arg2 argument passed unchanged to func
- * @param ret return values of executed functions, must have space for "count" values. May be NULL.
- * @param func function that will be called count times, with jobnr from 0 to count-1.
- * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no
- * two instances of func executing at the same time will have the same threadnr.
- * @return always 0 currently, but code should handle a future improvement where when any call to func
- * returns < 0 no further calls to func may be done and < 0 is returned.
- * - encoding: Set by libavcodec, user can override.
- * - decoding: Set by libavcodec, user can override.
- */
- int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
-
- /**
- * explicit P-frame weighted prediction analysis method
- * 0: off
- * 1: fast blind weighting (one reference duplicate with -1 offset)
- * 2: smart weighting (full fade detection analysis)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int weighted_p_pred;
-
- /**
- * AQ mode
- * 0: Disabled
- * 1: Variance AQ (complexity mask)
- * 2: Auto-variance AQ (experimental)
- * - encoding: Set by user
- * - decoding: unused
- */
- int aq_mode;
-
- /**
- * AQ strength
- * Reduces blocking and blurring in flat and textured areas.
- * - encoding: Set by user
- * - decoding: unused
- */
- float aq_strength;
-
- /**
- * PSY RD
- * Strength of psychovisual optimization
- * - encoding: Set by user
- * - decoding: unused
- */
- float psy_rd;
-
- /**
- * PSY trellis
- * Strength of psychovisual optimization
- * - encoding: Set by user
- * - decoding: unused
- */
- float psy_trellis;
-
- /**
- * RC lookahead
- * Number of frames for frametype and ratecontrol lookahead
- * - encoding: Set by user
- * - decoding: unused
- */
- int rc_lookahead;
-} AVCodecContext;
-
-/**
- * AVCodec.
- */
-typedef struct AVCodec {
- /**
- * Name of the codec implementation.
- * The name is globally unique among encoders and among decoders (but an
- * encoder and a decoder can share the same name).
- * This is the primary way to find a codec from the user perspective.
- */
- const char *name;
- enum AVMediaType type;
- enum CodecID id;
- int priv_data_size;
- int (*init)(AVCodecContext *);
- int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
- int (*close)(AVCodecContext *);
- int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
- /**
- * Codec capabilities.
- * see CODEC_CAP_*
- */
- int capabilities;
- struct AVCodec *next;
- /**
- * Flush buffers.
- * Will be called when seeking
- */
- void (*flush)(AVCodecContext *);
- const AVRational *supported_framerates; ///< array of supported framerates, or NULL if any, array is terminated by {0,0}
- const enum PixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1
- /**
- * Descriptive name for the codec, meant to be more human readable than name.
- * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
- */
- const char *long_name;
- const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
- const enum SampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
- const int64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
-} AVCodec;
-
-/**
- * AVHWAccel.
- */
-typedef struct AVHWAccel {
- /**
- * Name of the hardware accelerated codec.
- * The name is globally unique among encoders and among decoders (but an
- * encoder and a decoder can share the same name).
- */
- const char *name;
-
- /**
- * Type of codec implemented by the hardware accelerator.
- *
- * See AVMEDIA_TYPE_xxx
- */
- enum AVMediaType type;
-
- /**
- * Codec implemented by the hardware accelerator.
- *
- * See CODEC_ID_xxx
- */
- enum CodecID id;
-
- /**
- * Supported pixel format.
- *
- * Only hardware accelerated formats are supported here.
- */
- enum PixelFormat pix_fmt;
-
- /**
- * Hardware accelerated codec capabilities.
- * see FF_HWACCEL_CODEC_CAP_*
- */
- int capabilities;
-
- struct AVHWAccel *next;
-
- /**
- * Called at the beginning of each frame or field picture.
- *
- * Meaningful frame information (codec specific) is guaranteed to
- * be parsed at this point. This function is mandatory.
- *
- * Note that buf can be NULL along with buf_size set to 0.
- * Otherwise, this means the whole frame is available at this point.
- *
- * @param avctx the codec context
- * @param buf the frame data buffer base
- * @param buf_size the size of the frame in bytes
- * @return zero if successful, a negative value otherwise
- */
- int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
-
- /**
- * Callback for each slice.
- *
- * Meaningful slice information (codec specific) is guaranteed to
- * be parsed at this point. This function is mandatory.
- *
- * @param avctx the codec context
- * @param buf the slice data buffer base
- * @param buf_size the size of the slice in bytes
- * @return zero if successful, a negative value otherwise
- */
- int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
-
- /**
- * Called at the end of each frame or field picture.
- *
- * The whole picture is parsed at this point and can now be sent
- * to the hardware accelerator. This function is mandatory.
- *
- * @param avctx the codec context
- * @return zero if successful, a negative value otherwise
- */
- int (*end_frame)(AVCodecContext *avctx);
-
- /**
- * Size of HW accelerator private data.
- *
- * Private data is allocated with av_mallocz() before
- * AVCodecContext.get_buffer() and deallocated after
- * AVCodecContext.release_buffer().
- */
- int priv_data_size;
-} AVHWAccel;
-
-/**
- * four components are given, that's all.
- * the last component is alpha
- */
-typedef struct AVPicture {
- uint8_t *data[4];
- int linesize[4]; ///< number of bytes per line
-} AVPicture;
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * AVPaletteControl
- * This structure defines a method for communicating palette changes
- * between and demuxer and a decoder.
- *
- * @deprecated Use AVPacket to send palette changes instead.
- * This is totally broken.
- */
-#define AVPALETTE_SIZE 1024
-#define AVPALETTE_COUNT 256
-typedef struct AVPaletteControl {
-
- /* Demuxer sets this to 1 to indicate the palette has changed;
- * decoder resets to 0. */
- int palette_changed;
-
- /* 4-byte ARGB palette entries, stored in native byte order; note that
- * the individual palette components should be on a 8-bit scale; if
- * the palette data comes from an IBM VGA native format, the component
- * data is probably 6 bits in size and needs to be scaled. */
- unsigned int palette[AVPALETTE_COUNT];
-
-} AVPaletteControl attribute_deprecated;
-#endif
-
-enum AVSubtitleType {
- SUBTITLE_NONE,
-
- SUBTITLE_BITMAP, ///< A bitmap, pict will be set
-
- /**
- * Plain text, the text field must be set by the decoder and is
- * authoritative. ass and pict fields may contain approximations.
- */
- SUBTITLE_TEXT,
-
- /**
- * Formatted text, the ass field must be set by the decoder and is
- * authoritative. pict and text fields may contain approximations.
- */
- SUBTITLE_ASS,
-};
-
-typedef struct AVSubtitleRect {
- int x; ///< top left corner of pict, undefined when pict is not set
- int y; ///< top left corner of pict, undefined when pict is not set
- int w; ///< width of pict, undefined when pict is not set
- int h; ///< height of pict, undefined when pict is not set
- int nb_colors; ///< number of colors in pict, undefined when pict is not set
-
- /**
- * data+linesize for the bitmap of this subtitle.
- * can be set for text/ass as well once they where rendered
- */
- AVPicture pict;
- enum AVSubtitleType type;
-
- char *text; ///< 0 terminated plain UTF-8 text
-
- /**
- * 0 terminated ASS/SSA compatible event line.
- * The pressentation of this is unaffected by the other values in this
- * struct.
- */
- char *ass;
-} AVSubtitleRect;
-
-typedef struct AVSubtitle {
- uint16_t format; /* 0 = graphics */
- uint32_t start_display_time; /* relative to packet pts, in ms */
- uint32_t end_display_time; /* relative to packet pts, in ms */
- unsigned num_rects;
- AVSubtitleRect **rects;
- int64_t pts; ///< Same as packet pts, in AV_TIME_BASE
-} AVSubtitle;
-
-/* packet functions */
-
-/**
- * @deprecated use NULL instead
- */
-attribute_deprecated void av_destruct_packet_nofree(AVPacket *pkt);
-
-/**
- * Default packet destructor.
- */
-void av_destruct_packet(AVPacket *pkt);
-
-/**
- * Initialize optional fields of a packet with default values.
- *
- * @param pkt packet
- */
-void av_init_packet(AVPacket *pkt);
-
-/**
- * Allocate the payload of a packet and initialize its fields with
- * default values.
- *
- * @param pkt packet
- * @param size wanted payload size
- * @return 0 if OK, AVERROR_xxx otherwise
- */
-int av_new_packet(AVPacket *pkt, int size);
-
-/**
- * Reduce packet size, correctly zeroing padding
- *
- * @param pkt packet
- * @param size new size
- */
-void av_shrink_packet(AVPacket *pkt, int size);
-
-/**
- * @warning This is a hack - the packet memory allocation stuff is broken. The
- * packet is allocated if it was not really allocated.
- */
-int av_dup_packet(AVPacket *pkt);
-
-/**
- * Free a packet.
- *
- * @param pkt packet to free
- */
-void av_free_packet(AVPacket *pkt);
-
-/* resample.c */
-
-struct ReSampleContext;
-struct AVResampleContext;
-
-typedef struct ReSampleContext ReSampleContext;
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * @deprecated Use av_audio_resample_init() instead.
- */
-attribute_deprecated ReSampleContext *audio_resample_init(int output_channels, int input_channels,
- int output_rate, int input_rate);
-#endif
-/**
- * Initializes audio resampling context
- *
- * @param output_channels number of output channels
- * @param input_channels number of input channels
- * @param output_rate output sample rate
- * @param input_rate input sample rate
- * @param sample_fmt_out requested output sample format
- * @param sample_fmt_in input sample format
- * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq
- * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
- * @param linear If 1 then the used FIR filter will be linearly interpolated
- between the 2 closest, if 0 the closest will be used
- * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
- * @return allocated ReSampleContext, NULL if error occured
- */
-ReSampleContext *av_audio_resample_init(int output_channels, int input_channels,
- int output_rate, int input_rate,
- enum SampleFormat sample_fmt_out,
- enum SampleFormat sample_fmt_in,
- int filter_length, int log2_phase_count,
- int linear, double cutoff);
-
-int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);
-void audio_resample_close(ReSampleContext *s);
-
-
-/**
- * Initializes an audio resampler.
- * Note, if either rate is not an integer then simply scale both rates up so they are.
- * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq
- * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
- * @param linear If 1 then the used FIR filter will be linearly interpolated
- between the 2 closest, if 0 the closest will be used
- * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
- */
-struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
-
-/**
- * resamples.
- * @param src an array of unconsumed samples
- * @param consumed the number of samples of src which have been consumed are returned here
- * @param src_size the number of unconsumed samples available
- * @param dst_size the amount of space in samples available in dst
- * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context.
- * @return the number of samples written in dst or -1 if an error occurred
- */
-int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
-
-
-/**
- * Compensates samplerate/timestamp drift. The compensation is done by changing
- * the resampler parameters, so no audible clicks or similar distortions occur
- * @param compensation_distance distance in output samples over which the compensation should be performed
- * @param sample_delta number of output samples which should be output less
- *
- * example: av_resample_compensate(c, 10, 500)
- * here instead of 510 samples only 500 samples would be output
- *
- * note, due to rounding the actual compensation might be slightly different,
- * especially if the compensation_distance is large and the in_rate used during init is small
- */
-void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
-void av_resample_close(struct AVResampleContext *c);
-
-/**
- * Allocate memory for a picture. Call avpicture_free to free it.
- *
- * @param picture the picture to be filled in
- * @param pix_fmt the format of the picture
- * @param width the width of the picture
- * @param height the height of the picture
- * @return zero if successful, a negative value if not
- */
-int avpicture_alloc(AVPicture *picture, enum PixelFormat pix_fmt, int width, int height);
-
-/**
- * Free a picture previously allocated by avpicture_alloc().
- *
- * @param picture the AVPicture to be freed
- */
-void avpicture_free(AVPicture *picture);
-
-/**
- * Fill in the AVPicture fields.
- * The fields of the given AVPicture are filled in by using the 'ptr' address
- * which points to the image data buffer. Depending on the specified picture
- * format, one or multiple image data pointers and line sizes will be set.
- * If a planar format is specified, several pointers will be set pointing to
- * the different picture planes and the line sizes of the different planes
- * will be stored in the lines_sizes array.
- * Call with ptr == NULL to get the required size for the ptr buffer.
- *
- * @param picture AVPicture whose fields are to be filled in
- * @param ptr Buffer which will contain or contains the actual image data
- * @param pix_fmt The format in which the picture data is stored.
- * @param width the width of the image in pixels
- * @param height the height of the image in pixels
- * @return size of the image data in bytes
- */
-int avpicture_fill(AVPicture *picture, uint8_t *ptr,
- enum PixelFormat pix_fmt, int width, int height);
-int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, int height,
- unsigned char *dest, int dest_size);
-
-/**
- * Calculate the size in bytes that a picture of the given width and height
- * would occupy if stored in the given picture format.
- * Note that this returns the size of a compact representation as generated
- * by avpicture_layout, which can be smaller than the size required for e.g.
- * avpicture_fill.
- *
- * @param pix_fmt the given picture format
- * @param width the width of the image
- * @param height the height of the image
- * @return Image data size in bytes or -1 on error (e.g. too large dimensions).
- */
-int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height);
-void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift);
-const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt);
-void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * Returns the pixel format corresponding to the name name.
- *
- * If there is no pixel format with name name, then looks for a
- * pixel format with the name corresponding to the native endian
- * format of name.
- * For example in a little-endian system, first looks for "gray16",
- * then for "gray16le".
- *
- * Finally if no pixel format has been found, returns PIX_FMT_NONE.
- *
- * @deprecated Deprecated in favor of av_get_pix_fmt().
- */
-attribute_deprecated enum PixelFormat avcodec_get_pix_fmt(const char* name);
-#endif
-
-/**
- * Returns a value representing the fourCC code associated to the
- * pixel format pix_fmt, or 0 if no associated fourCC code can be
- * found.
- */
-unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt);
-
-#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */
-#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */
-#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */
-#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */
-#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */
-#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */
-
-/**
- * Computes what kind of losses will occur when converting from one specific
- * pixel format to another.
- * When converting from one pixel format to another, information loss may occur.
- * For example, when converting from RGB24 to GRAY, the color information will
- * be lost. Similarly, other losses occur when converting from some formats to
- * other formats. These losses can involve loss of chroma, but also loss of
- * resolution, loss of color depth, loss due to the color space conversion, loss
- * of the alpha bits or loss due to color quantization.
- * avcodec_get_fix_fmt_loss() informs you about the various types of losses
- * which will occur when converting from one pixel format to another.
- *
- * @param[in] dst_pix_fmt destination pixel format
- * @param[in] src_pix_fmt source pixel format
- * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @return Combination of flags informing you what kind of losses will occur.
- */
-int avcodec_get_pix_fmt_loss(enum PixelFormat dst_pix_fmt, enum PixelFormat src_pix_fmt,
- int has_alpha);
-
-/**
- * Finds the best pixel format to convert to given a certain source pixel
- * format. When converting from one pixel format to another, information loss
- * may occur. For example, when converting from RGB24 to GRAY, the color
- * information will be lost. Similarly, other losses occur when converting from
- * some formats to other formats. avcodec_find_best_pix_fmt() searches which of
- * the given pixel formats should be used to suffer the least amount of loss.
- * The pixel formats from which it chooses one, are determined by the
- * pix_fmt_mask parameter.
- *
- * @code
- * src_pix_fmt = PIX_FMT_YUV420P;
- * pix_fmt_mask = (1 << PIX_FMT_YUV422P) || (1 << PIX_FMT_RGB24);
- * dst_pix_fmt = avcodec_find_best_pix_fmt(pix_fmt_mask, src_pix_fmt, alpha, &loss);
- * @endcode
- *
- * @param[in] pix_fmt_mask bitmask determining which pixel format to choose from
- * @param[in] src_pix_fmt source pixel format
- * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur.
- * @return The best pixel format to convert to or -1 if none was found.
- */
-enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelFormat src_pix_fmt,
- int has_alpha, int *loss_ptr);
-
-
-/**
- * Print in buf the string corresponding to the pixel format with
- * number pix_fmt, or an header if pix_fmt is negative.
- *
- * @param[in] buf the buffer where to write the string
- * @param[in] buf_size the size of buf
- * @param[in] pix_fmt the number of the pixel format to print the corresponding info string, or
- * a negative value to print the corresponding header.
- * Meaningful values for obtaining a pixel format info vary from 0 to PIX_FMT_NB -1.
- */
-void avcodec_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt);
-
-#define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */
-#define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */
-
-/**
- * Tell if an image really has transparent alpha values.
- * @return ored mask of FF_ALPHA_xxx constants
- */
-int img_get_alpha_info(const AVPicture *src,
- enum PixelFormat pix_fmt, int width, int height);
-
-/* deinterlace a picture */
-/* deinterlace - if not supported return -1 */
-int avpicture_deinterlace(AVPicture *dst, const AVPicture *src,
- enum PixelFormat pix_fmt, int width, int height);
-
-/* external high level API */
-
-/**
- * If c is NULL, returns the first registered codec,
- * if c is non-NULL, returns the next registered codec after c,
- * or NULL if c is the last one.
- */
-AVCodec *av_codec_next(AVCodec *c);
-
-/**
- * Returns the LIBAVCODEC_VERSION_INT constant.
- */
-unsigned avcodec_version(void);
-
-/**
- * Returns the libavcodec build-time configuration.
- */
-const char *avcodec_configuration(void);
-
-/**
- * Returns the libavcodec license.
- */
-const char *avcodec_license(void);
-
-/**
- * Initializes libavcodec.
- *
- * @warning This function must be called before any other libavcodec
- * function.
- */
-void avcodec_init(void);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * @deprecated Deprecated in favor of avcodec_register().
- */
-attribute_deprecated void register_avcodec(AVCodec *codec);
-#endif
-
-/**
- * Register the codec codec and initialize libavcodec.
- *
- * @see avcodec_init()
- */
-void avcodec_register(AVCodec *codec);
-
-/**
- * Finds a registered encoder with a matching codec ID.
- *
- * @param id CodecID of the requested encoder
- * @return An encoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_encoder(enum CodecID id);
-
-/**
- * Finds a registered encoder with the specified name.
- *
- * @param name name of the requested encoder
- * @return An encoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_encoder_by_name(const char *name);
-
-/**
- * Finds a registered decoder with a matching codec ID.
- *
- * @param id CodecID of the requested decoder
- * @return A decoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_decoder(enum CodecID id);
-
-/**
- * Finds a registered decoder with the specified name.
- *
- * @param name name of the requested decoder
- * @return A decoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_decoder_by_name(const char *name);
-void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
-
-/**
- * Sets the fields of the given AVCodecContext to default values.
- *
- * @param s The AVCodecContext of which the fields should be set to default values.
- */
-void avcodec_get_context_defaults(AVCodecContext *s);
-
-/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API!
- * we WILL change its arguments and name a few times! */
-void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType);
-
-/**
- * Allocates an AVCodecContext and sets its fields to default values. The
- * resulting struct can be deallocated by simply calling av_free().
- *
- * @return An AVCodecContext filled with default values or NULL on failure.
- * @see avcodec_get_context_defaults
- */
-AVCodecContext *avcodec_alloc_context(void);
-
-/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API!
- * we WILL change its arguments and name a few times! */
-AVCodecContext *avcodec_alloc_context2(enum AVMediaType);
-
-/**
- * Copy the settings of the source AVCodecContext into the destination
- * AVCodecContext. The resulting destination codec context will be
- * unopened, i.e. you are required to call avcodec_open() before you
- * can use this AVCodecContext to decode/encode video/audio data.
- *
- * @param dest target codec context, should be initialized with
- * avcodec_alloc_context(), but otherwise uninitialized
- * @param src source codec context
- * @return AVERROR() on error (e.g. memory allocation error), 0 on success
- */
-int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);
-
-/**
- * Sets the fields of the given AVFrame to default values.
- *
- * @param pic The AVFrame of which the fields should be set to default values.
- */
-void avcodec_get_frame_defaults(AVFrame *pic);
-
-/**
- * Allocates an AVFrame and sets its fields to default values. The resulting
- * struct can be deallocated by simply calling av_free().
- *
- * @return An AVFrame filled with default values or NULL on failure.
- * @see avcodec_get_frame_defaults
- */
-AVFrame *avcodec_alloc_frame(void);
-
-int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
-void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
-int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame *pic);
-
-/**
- * Returns the amount of padding in pixels which the get_buffer callback must
- * provide around the edge of the image for codecs which do not have the
- * CODEC_FLAG_EMU_EDGE flag.
- *
- * @return Required padding in pixels.
- */
-unsigned avcodec_get_edge_width(void);
-/**
- * Modifies width and height values so that they will result in a memory
- * buffer that is acceptable for the codec if you do not use any horizontal
- * padding.
- *
- * May only be used if a codec with CODEC_CAP_DR1 has been opened.
- * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
- * according to avcodec_get_edge_width() before.
- */
-void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
-/**
- * Modifies width and height values so that they will result in a memory
- * buffer that is acceptable for the codec if you also ensure that all
- * line sizes are a multiple of the respective linesize_align[i].
- *
- * May only be used if a codec with CODEC_CAP_DR1 has been opened.
- * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
- * according to avcodec_get_edge_width() before.
- */
-void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
- int linesize_align[4]);
-
-/**
- * Checks if the given dimension of a picture is valid, meaning that all
- * bytes of the picture can be addressed with a signed int.
- *
- * @param[in] w Width of the picture.
- * @param[in] h Height of the picture.
- * @return Zero if valid, a negative value if invalid.
- */
-int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h);
-enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat * fmt);
-
-int avcodec_thread_init(AVCodecContext *s, int thread_count);
-void avcodec_thread_free(AVCodecContext *s);
-int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
-int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
-//FIXME func typedef
-
-/**
- * Initializes the AVCodecContext to use the given AVCodec. Prior to using this
- * function the context has to be allocated.
- *
- * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),
- * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for
- * retrieving a codec.
- *
- * @warning This function is not thread safe!
- *
- * @code
- * avcodec_register_all();
- * codec = avcodec_find_decoder(CODEC_ID_H264);
- * if (!codec)
- * exit(1);
- *
- * context = avcodec_alloc_context();
- *
- * if (avcodec_open(context, codec) < 0)
- * exit(1);
- * @endcode
- *
- * @param avctx The context which will be set up to use the given codec.
- * @param codec The codec to use within the context.
- * @return zero on success, a negative value on error
- * @see avcodec_alloc_context, avcodec_find_decoder, avcodec_find_encoder
- */
-int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * Decodes an audio frame from buf into samples.
- * Wrapper function which calls avcodec_decode_audio3.
- *
- * @deprecated Use avcodec_decode_audio3 instead.
- * @param avctx the codec context
- * @param[out] samples the output buffer
- * @param[in,out] frame_size_ptr the output buffer size in bytes
- * @param[in] buf the input buffer
- * @param[in] buf_size the input buffer size in bytes
- * @return On error a negative value is returned, otherwise the number of bytes
- * used or zero if no frame could be decompressed.
- */
-attribute_deprecated int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
- int *frame_size_ptr,
- const uint8_t *buf, int buf_size);
-#endif
-
-/**
- * Decodes the audio frame of size avpkt->size from avpkt->data into samples.
- * Some decoders may support multiple frames in a single AVPacket, such
- * decoders would then just decode the first frame. In this case,
- * avcodec_decode_audio3 has to be called again with an AVPacket that contains
- * the remaining data in order to decode the second frame etc.
- * If no frame
- * could be outputted, frame_size_ptr is zero. Otherwise, it is the
- * decompressed frame size in bytes.
- *
- * @warning You must set frame_size_ptr to the allocated size of the
- * output buffer before calling avcodec_decode_audio3().
- *
- * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than
- * the actual read bytes because some optimized bitstream readers read 32 or 64
- * bits at once and could read over the end.
- *
- * @warning The end of the input buffer avpkt->data should be set to 0 to ensure that
- * no overreading happens for damaged MPEG streams.
- *
- * @note You might have to align the input buffer avpkt->data and output buffer
- * samples. The alignment requirements depend on the CPU: On some CPUs it isn't
- * necessary at all, on others it won't work at all if not aligned and on others
- * it will work but it will have an impact on performance.
- *
- * In practice, avpkt->data should have 4 byte alignment at minimum and
- * samples should be 16 byte aligned unless the CPU doesn't need it
- * (AltiVec and SSE do).
- *
- * @param avctx the codec context
- * @param[out] samples the output buffer, sample type in avctx->sample_fmt
- * @param[in,out] frame_size_ptr the output buffer size in bytes
- * @param[in] avpkt The input AVPacket containing the input buffer.
- * You can create such packet with av_init_packet() and by then setting
- * data and size, some decoders might in addition need other fields.
- * All decoders are designed to use the least fields possible though.
- * @return On error a negative value is returned, otherwise the number of bytes
- * used or zero if no frame data was decompressed (used) from the input AVPacket.
- */
-int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
- int *frame_size_ptr,
- AVPacket *avpkt);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * Decodes a video frame from buf into picture.
- * Wrapper function which calls avcodec_decode_video2.
- *
- * @deprecated Use avcodec_decode_video2 instead.
- * @param avctx the codec context
- * @param[out] picture The AVFrame in which the decoded video frame will be stored.
- * @param[in] buf the input buffer
- * @param[in] buf_size the size of the input buffer in bytes
- * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
- * @return On error a negative value is returned, otherwise the number of bytes
- * used or zero if no frame could be decompressed.
- */
-attribute_deprecated int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
- int *got_picture_ptr,
- const uint8_t *buf, int buf_size);
-#endif
-
-/**
- * Decodes the video frame of size avpkt->size from avpkt->data into picture.
- * Some decoders may support multiple frames in a single AVPacket, such
- * decoders would then just decode the first frame.
- *
- * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than
- * the actual read bytes because some optimized bitstream readers read 32 or 64
- * bits at once and could read over the end.
- *
- * @warning The end of the input buffer buf should be set to 0 to ensure that
- * no overreading happens for damaged MPEG streams.
- *
- * @note You might have to align the input buffer avpkt->data.
- * The alignment requirements depend on the CPU: on some CPUs it isn't
- * necessary at all, on others it won't work at all if not aligned and on others
- * it will work but it will have an impact on performance.
- *
- * In practice, avpkt->data should have 4 byte alignment at minimum.
- *
- * @note Some codecs have a delay between input and output, these need to be
- * fed with avpkt->data=NULL, avpkt->size=0 at the end to return the remaining frames.
- *
- * @param avctx the codec context
- * @param[out] picture The AVFrame in which the decoded video frame will be stored.
- * Use avcodec_alloc_frame to get an AVFrame, the codec will
- * allocate memory for the actual bitmap.
- * @param[in] avpkt The input AVpacket containing the input buffer.
- * You can create such packet with av_init_packet() and by then setting
- * data and size, some decoders might in addition need other fields like
- * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
- * fields possible.
- * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
- * @return On error a negative value is returned, otherwise the number of bytes
- * used or zero if no frame could be decompressed.
- */
-int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
- int *got_picture_ptr,
- AVPacket *avpkt);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/* Decode a subtitle message. Return -1 if error, otherwise return the
- * number of bytes used. If no subtitle could be decompressed,
- * got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. */
-attribute_deprecated int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
- int *got_sub_ptr,
- const uint8_t *buf, int buf_size);
-#endif
-
-/**
- * Decodes a subtitle message.
- * Returns a negative value on error, otherwise returns the number of bytes used.
- * If no subtitle could be decompressed, got_sub_ptr is zero.
- * Otherwise, the subtitle is stored in *sub.
- *
- * @param avctx the codec context
- * @param[out] sub The AVSubtitle in which the decoded subtitle will be stored.
- * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero.
- * @param[in] avpkt The input AVPacket containing the input buffer.
- */
-int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
- int *got_sub_ptr,
- AVPacket *avpkt);
-int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
- int *data_size_ptr,
- uint8_t *buf, int buf_size);
-
-/**
- * Encodes an audio frame from samples into buf.
- *
- * @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large.
- * However, for PCM audio the user will know how much space is needed
- * because it depends on the value passed in buf_size as described
- * below. In that case a lower value can be used.
- *
- * @param avctx the codec context
- * @param[out] buf the output buffer
- * @param[in] buf_size the output buffer size
- * @param[in] samples the input buffer containing the samples
- * The number of samples read from this buffer is frame_size*channels,
- * both of which are defined in avctx.
- * For PCM audio the number of samples read from samples is equal to
- * buf_size * input_sample_size / output_sample_size.
- * @return On error a negative value is returned, on success zero or the number
- * of bytes used to encode the data read from the input buffer.
- */
-int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size,
- const short *samples);
-
-/**
- * Encodes a video frame from pict into buf.
- * The input picture should be
- * stored using a specific format, namely avctx.pix_fmt.
- *
- * @param avctx the codec context
- * @param[out] buf the output buffer for the bitstream of encoded frame
- * @param[in] buf_size the size of the output buffer in bytes
- * @param[in] pict the input picture to encode
- * @return On error a negative value is returned, on success zero or the number
- * of bytes used from the output buffer.
- */
-int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
- const AVFrame *pict);
-int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
- const AVSubtitle *sub);
-
-int avcodec_close(AVCodecContext *avctx);
-
-/**
- * Register all the codecs, parsers and bitstream filters which were enabled at
- * configuration time. If you do not call this function you can select exactly
- * which formats you want to support, by using the individual registration
- * functions.
- *
- * @see avcodec_register
- * @see av_register_codec_parser
- * @see av_register_bitstream_filter
- */
-void avcodec_register_all(void);
-
-/**
- * Flush buffers, should be called when seeking or when switching to a different stream.
- */
-void avcodec_flush_buffers(AVCodecContext *avctx);
-
-void avcodec_default_free_buffers(AVCodecContext *s);
-
-/* misc useful functions */
-
-/**
- * Returns a single letter to describe the given picture type pict_type.
- *
- * @param[in] pict_type the picture type
- * @return A single character representing the picture type.
- */
-char av_get_pict_type_char(int pict_type);
-
-/**
- * Returns codec bits per sample.
- *
- * @param[in] codec_id the codec
- * @return Number of bits per sample or zero if unknown for the given codec.
- */
-int av_get_bits_per_sample(enum CodecID codec_id);
-
-/**
- * Returns sample format bits per sample.
- *
- * @param[in] sample_fmt the sample format
- * @return Number of bits per sample or zero if unknown for the given sample format.
- */
-int av_get_bits_per_sample_format(enum SampleFormat sample_fmt);
-
-/* frame parsing */
-typedef struct AVCodecParserContext {
- void *priv_data;
- struct AVCodecParser *parser;
- int64_t frame_offset; /* offset of the current frame */
- int64_t cur_offset; /* current offset
- (incremented by each av_parser_parse()) */
- int64_t next_frame_offset; /* offset of the next frame */
- /* video info */
- int pict_type; /* XXX: Put it back in AVCodecContext. */
- /**
- * This field is used for proper frame duration computation in lavf.
- * It signals, how much longer the frame duration of the current frame
- * is compared to normal frame duration.
- *
- * frame_duration = (1 + repeat_pict) * time_base
- *
- * It is used by codecs like H.264 to display telecined material.
- */
- int repeat_pict; /* XXX: Put it back in AVCodecContext. */
- int64_t pts; /* pts of the current frame */
- int64_t dts; /* dts of the current frame */
-
- /* private data */
- int64_t last_pts;
- int64_t last_dts;
- int fetch_timestamp;
-
-#define AV_PARSER_PTS_NB 4
- int cur_frame_start_index;
- int64_t cur_frame_offset[AV_PARSER_PTS_NB];
- int64_t cur_frame_pts[AV_PARSER_PTS_NB];
- int64_t cur_frame_dts[AV_PARSER_PTS_NB];
-
- int flags;
-#define PARSER_FLAG_COMPLETE_FRAMES 0x0001
-
- int64_t offset; ///< byte offset from starting packet start
- int64_t cur_frame_end[AV_PARSER_PTS_NB];
-
- /*!
- * Set by parser to 1 for key frames and 0 for non-key frames.
- * It is initialized to -1, so if the parser doesn't set this flag,
- * old-style fallback using FF_I_TYPE picture type as key frames
- * will be used.
- */
- int key_frame;
-
- /**
- * Time difference in stream time base units from the pts of this
- * packet to the point at which the output from the decoder has converged
- * independent from the availability of previous frames. That is, the
- * frames are virtually identical no matter if decoding started from
- * the very first frame or from this keyframe.
- * Is AV_NOPTS_VALUE if unknown.
- * This field is not the display duration of the current frame.
- *
- * The purpose of this field is to allow seeking in streams that have no
- * keyframes in the conventional sense. It corresponds to the
- * recovery point SEI in H.264 and match_time_delta in NUT. It is also
- * essential for some types of subtitle streams to ensure that all
- * subtitles are correctly displayed after seeking.
- */
- int64_t convergence_duration;
-
- // Timestamp generation support:
- /**
- * Synchronization point for start of timestamp generation.
- *
- * Set to >0 for sync point, 0 for no sync point and <0 for undefined
- * (default).
- *
- * For example, this corresponds to presence of H.264 buffering period
- * SEI message.
- */
- int dts_sync_point;
-
- /**
- * Offset of the current timestamp against last timestamp sync point in
- * units of AVCodecContext.time_base.
- *
- * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
- * contain a valid timestamp offset.
- *
- * Note that the timestamp of sync point has usually a nonzero
- * dts_ref_dts_delta, which refers to the previous sync point. Offset of
- * the next frame after timestamp sync point will be usually 1.
- *
- * For example, this corresponds to H.264 cpb_removal_delay.
- */
- int dts_ref_dts_delta;
-
- /**
- * Presentation delay of current frame in units of AVCodecContext.time_base.
- *
- * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
- * contain valid non-negative timestamp delta (presentation time of a frame
- * must not lie in the past).
- *
- * This delay represents the difference between decoding and presentation
- * time of the frame.
- *
- * For example, this corresponds to H.264 dpb_output_delay.
- */
- int pts_dts_delta;
-
- /**
- * Position of the packet in file.
- *
- * Analogous to cur_frame_pts/dts
- */
- int64_t cur_frame_pos[AV_PARSER_PTS_NB];
-
- /**
- * Byte position of currently parsed frame in stream.
- */
- int64_t pos;
-
- /**
- * Previous frame byte position.
- */
- int64_t last_pos;
-} AVCodecParserContext;
-
-typedef struct AVCodecParser {
- int codec_ids[5]; /* several codec IDs are permitted */
- int priv_data_size;
- int (*parser_init)(AVCodecParserContext *s);
- int (*parser_parse)(AVCodecParserContext *s,
- AVCodecContext *avctx,
- const uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size);
- void (*parser_close)(AVCodecParserContext *s);
- int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
- struct AVCodecParser *next;
-} AVCodecParser;
-
-AVCodecParser *av_parser_next(AVCodecParser *c);
-
-void av_register_codec_parser(AVCodecParser *parser);
-AVCodecParserContext *av_parser_init(int codec_id);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-attribute_deprecated
-int av_parser_parse(AVCodecParserContext *s,
- AVCodecContext *avctx,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size,
- int64_t pts, int64_t dts);
-#endif
-
-/**
- * Parse a packet.
- *
- * @param s parser context.
- * @param avctx codec context.
- * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished.
- * @param poutbuf_size set to size of parsed buffer or zero if not yet finished.
- * @param buf input buffer.
- * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output).
- * @param pts input presentation timestamp.
- * @param dts input decoding timestamp.
- * @param pos input byte position in stream.
- * @return the number of bytes of the input bitstream used.
- *
- * Example:
- * @code
- * while(in_len){
- * len = av_parser_parse2(myparser, AVCodecContext, &data, &size,
- * in_data, in_len,
- * pts, dts, pos);
- * in_data += len;
- * in_len -= len;
- *
- * if(size)
- * decode_frame(data, size);
- * }
- * @endcode
- */
-int av_parser_parse2(AVCodecParserContext *s,
- AVCodecContext *avctx,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size,
- int64_t pts, int64_t dts,
- int64_t pos);
-
-int av_parser_change(AVCodecParserContext *s,
- AVCodecContext *avctx,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
-void av_parser_close(AVCodecParserContext *s);
-
-
-typedef struct AVBitStreamFilterContext {
- void *priv_data;
- struct AVBitStreamFilter *filter;
- AVCodecParserContext *parser;
- struct AVBitStreamFilterContext *next;
-} AVBitStreamFilterContext;
-
-
-typedef struct AVBitStreamFilter {
- const char *name;
- int priv_data_size;
- int (*filter)(AVBitStreamFilterContext *bsfc,
- AVCodecContext *avctx, const char *args,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
- void (*close)(AVBitStreamFilterContext *bsfc);
- struct AVBitStreamFilter *next;
-} AVBitStreamFilter;
-
-void av_register_bitstream_filter(AVBitStreamFilter *bsf);
-AVBitStreamFilterContext *av_bitstream_filter_init(const char *name);
-int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
- AVCodecContext *avctx, const char *args,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
-void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
-
-AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f);
-
-/* memory */
-
-/**
- * Reallocates the given block if it is not large enough, otherwise it
- * does nothing.
- *
- * @see av_realloc
- */
-void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size);
-
-/**
- * Allocates a buffer, reusing the given one if large enough.
- *
- * Contrary to av_fast_realloc the current buffer contents might not be
- * preserved and on error the old buffer is freed, thus no special
- * handling to avoid memleaks is necessary.
- *
- * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer
- * @param size size of the buffer *ptr points to
- * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and
- * *size 0 if an error occurred.
- */
-void av_fast_malloc(void *ptr, unsigned int *size, unsigned int min_size);
-
-/**
- * Copy image 'src' to 'dst'.
- */
-void av_picture_copy(AVPicture *dst, const AVPicture *src,
- enum PixelFormat pix_fmt, int width, int height);
-
-/**
- * Crop image top and left side.
- */
-int av_picture_crop(AVPicture *dst, const AVPicture *src,
- enum PixelFormat pix_fmt, int top_band, int left_band);
-
-/**
- * Pad image.
- */
-int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum PixelFormat pix_fmt,
- int padtop, int padbottom, int padleft, int padright, int *color);
-
-/**
- * Encodes extradata length to a buffer. Used by xiph codecs.
- *
- * @param s buffer to write to; must be at least (v/255+1) bytes long
- * @param v size of extradata in bytes
- * @return number of bytes written to the buffer.
- */
-unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
-
-/**
- * Parses str and put in width_ptr and height_ptr the detected values.
- *
- * @return 0 in case of a successful parsing, a negative value otherwise
- * @param[in] str the string to parse: it has to be a string in the format
- * <width>x<height> or a valid video frame size abbreviation.
- * @param[in,out] width_ptr pointer to the variable which will contain the detected
- * frame width value
- * @param[in,out] height_ptr pointer to the variable which will contain the detected
- * frame height value
- */
-int av_parse_video_frame_size(int *width_ptr, int *height_ptr, const char *str);
-
-/**
- * Parses str and put in frame_rate the detected values.
- *
- * @return 0 in case of a successful parsing, a negative value otherwise
- * @param[in] str the string to parse: it has to be a string in the format
- * <frame_rate_num>/<frame_rate_den>, a float number or a valid video rate abbreviation
- * @param[in,out] frame_rate pointer to the AVRational which will contain the detected
- * frame rate
- */
-int av_parse_video_frame_rate(AVRational *frame_rate, const char *str);
-
-/**
- * Logs a generic warning message about a missing feature. This function is
- * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
- * only, and would normally not be used by applications.
- * @param[in] avc a pointer to an arbitrary struct of which the first field is
- * a pointer to an AVClass struct
- * @param[in] feature string containing the name of the missing feature
- * @param[in] want_sample indicates if samples are wanted which exhibit this feature.
- * If want_sample is non-zero, additional verbage will be added to the log
- * message which tells the user how to report samples to the development
- * mailing list.
- */
-void av_log_missing_feature(void *avc, const char *feature, int want_sample);
-
-/**
- * Logs a generic warning message asking for a sample. This function is
- * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
- * only, and would normally not be used by applications.
- * @param[in] avc a pointer to an arbitrary struct of which the first field is
- * a pointer to an AVClass struct
- * @param[in] msg string containing an optional message, or NULL if no message
- */
-void av_log_ask_for_sample(void *avc, const char *msg);
-
-/**
- * Registers the hardware accelerator hwaccel.
- */
-void av_register_hwaccel(AVHWAccel *hwaccel);
-
-/**
- * If hwaccel is NULL, returns the first registered hardware accelerator,
- * if hwaccel is non-NULL, returns the next registered hardware accelerator
- * after hwaccel, or NULL if hwaccel is the last one.
- */
-AVHWAccel *av_hwaccel_next(AVHWAccel *hwaccel);
-
-
-/**
- * Lock operation used by lockmgr
- */
-enum AVLockOp {
- AV_LOCK_CREATE, ///< Create a mutex
- AV_LOCK_OBTAIN, ///< Lock the mutex
- AV_LOCK_RELEASE, ///< Unlock the mutex
- AV_LOCK_DESTROY, ///< Free mutex resources
-};
-
-/**
- * Register a user provided lock manager supporting the operations
- * specified by AVLockOp. mutex points to a (void *) where the
- * lockmgr should store/get a pointer to a user allocated mutex. It's
- * NULL upon AV_LOCK_CREATE and != NULL for all other ops.
- *
- * @param cb User defined callback. Note: FFmpeg may invoke calls to this
- * callback during the call to av_lockmgr_register().
- * Thus, the application must be prepared to handle that.
- * If cb is set to NULL the lockmgr will be unregistered.
- * Also note that during unregistration the previously registered
- * lockmgr callback may also be invoked.
- */
-int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op));
-
-#endif /* AVCODEC_AVCODEC_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_AVFFT_H
-#define AVCODEC_AVFFT_H
-
-typedef float FFTSample;
-
-typedef struct FFTComplex {
- FFTSample re, im;
-} FFTComplex;
-
-typedef struct FFTContext FFTContext;
-
-/**
- * Set up a complex FFT.
- * @param nbits log2 of the length of the input array
- * @param inverse if 0 perform the forward transform, if 1 perform the inverse
- */
-FFTContext *av_fft_init(int nbits, int inverse);
-
-/**
- * Do the permutation needed BEFORE calling ff_fft_calc().
- */
-void av_fft_permute(FFTContext *s, FFTComplex *z);
-
-/**
- * Do a complex FFT with the parameters defined in av_fft_init(). The
- * input data must be permuted before. No 1.0/sqrt(n) normalization is done.
- */
-void av_fft_calc(FFTContext *s, FFTComplex *z);
-
-void av_fft_end(FFTContext *s);
-
-FFTContext *av_mdct_init(int nbits, int inverse, double scale);
-void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
-void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input);
-void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
-void av_mdct_end(FFTContext *s);
-
-/* Real Discrete Fourier Transform */
-
-enum RDFTransformType {
- DFT_R2C,
- IDFT_C2R,
- IDFT_R2C,
- DFT_C2R,
-};
-
-typedef struct RDFTContext RDFTContext;
-
-/**
- * Set up a real FFT.
- * @param nbits log2 of the length of the input array
- * @param trans the type of transform
- */
-RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans);
-void av_rdft_calc(RDFTContext *s, FFTSample *data);
-void av_rdft_end(RDFTContext *s);
-
-/* Discrete Cosine Transform */
-
-typedef struct DCTContext DCTContext;
-
-enum DCTTransformType {
- DCT_II = 0,
- DCT_III,
- DCT_I,
- DST_I,
-};
-
-/**
- * Sets up DCT.
- * @param nbits size of the input array:
- * (1 << nbits) for DCT-II, DCT-III and DST-I
- * (1 << nbits) + 1 for DCT-I
- *
- * @note the first element of the input of DST-I is ignored
- */
-DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
-void av_dct_calc(DCTContext *s, FFTSample *data);
-void av_dct_end (DCTContext *s);
-
-#endif /* AVCODEC_AVFFT_H */
+++ /dev/null
-/*
- * Bethesda VID video decoder
- * Copyright (C) 2007 Nicholas Tung
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_BETHSOFTVIDEO_H
-#define AVCODEC_BETHSOFTVIDEO_H
-
-enum BethsoftVidBlockType
-{
- PALETTE_BLOCK = 0x02,
- FIRST_AUDIO_BLOCK = 0x7c,
- AUDIO_BLOCK = 0x7d,
- VIDEO_I_FRAME = 0x03,
- VIDEO_P_FRAME = 0x01,
- VIDEO_YOFF_P_FRAME = 0x04,
- EOF_BLOCK = 0x14,
-};
-
-#endif /* AVCODEC_BETHSOFTVIDEO_H */
+++ /dev/null
-/*
- * Block Gilbert-Moore decoder
- * Copyright (c) 2010 Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Block Gilbert-Moore decoder header
- * @author Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
- */
-
-
-#ifndef AVCODEC_BGMC_H
-#define AVCODEC_BGMC_H
-
-
-#include "avcodec.h"
-#include "get_bits.h"
-
-
-int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, unsigned int **cf_lut_status);
-
-
-void ff_bgmc_end(uint8_t **cf_lut, unsigned int **cf_lut_status);
-
-
-void ff_bgmc_decode_init(GetBitContext *gb,
- unsigned int *h, unsigned int *l, unsigned int *v);
-
-
-void ff_bgmc_decode_end(GetBitContext *gb);
-
-
-void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
- unsigned int delta, unsigned int sx,
- unsigned int *h, unsigned int *l, unsigned int *v,
- uint8_t *cf_lut, unsigned int *cf_lut_status);
-
-
-#endif /* AVCODEC_BGMC_H */
+++ /dev/null
-/*
- * Bink video decoder
- * Copyright (C) 2009 Kostya Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_BINKDATA_H
-#define AVCODEC_BINKDATA_H
-
-#include <stdint.h>
-
-/** Bink DCT and residue 8x8 block scan order */
-static const uint8_t bink_scan[64] = {
- 0, 1, 8, 9, 2, 3, 10, 11,
- 4, 5, 12, 13, 6, 7, 14, 15,
- 20, 21, 28, 29, 22, 23, 30, 31,
- 16, 17, 24, 25, 32, 33, 40, 41,
- 34, 35, 42, 43, 48, 49, 56, 57,
- 50, 51, 58, 59, 18, 19, 26, 27,
- 36, 37, 44, 45, 38, 39, 46, 47,
- 52, 53, 60, 61, 54, 55, 62, 63
-};
-
-static const uint8_t bink_tree_bits[16][16] = {
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- },
- {
- 0x00, 0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D,
- 0x0F, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,
- },
- {
- 0x00, 0x02, 0x01, 0x09, 0x05, 0x15, 0x0D, 0x1D,
- 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F,
- },
- {
- 0x00, 0x02, 0x06, 0x01, 0x09, 0x05, 0x0D, 0x1D,
- 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F,
- },
- {
- 0x00, 0x04, 0x02, 0x06, 0x01, 0x09, 0x05, 0x0D,
- 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F,
- },
- {
- 0x00, 0x04, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09,
- 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x17, 0x0F, 0x1F,
- },
- {
- 0x00, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05,
- 0x0D, 0x03, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F,
- },
- {
- 0x00, 0x01, 0x05, 0x03, 0x13, 0x0B, 0x1B, 0x3B,
- 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x01, 0x03, 0x13, 0x0B, 0x2B, 0x1B, 0x3B,
- 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x01, 0x05, 0x0D, 0x03, 0x13, 0x0B, 0x1B,
- 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x02, 0x01, 0x05, 0x0D, 0x03, 0x13, 0x0B,
- 0x1B, 0x07, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x13, 0x0B,
- 0x1B, 0x07, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x02, 0x01, 0x03, 0x13, 0x0B, 0x1B, 0x3B,
- 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F,
- },
- {
- 0x00, 0x01, 0x05, 0x03, 0x07, 0x27, 0x17, 0x37,
- 0x0F, 0x4F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F,
- },
- {
- 0x00, 0x01, 0x05, 0x03, 0x07, 0x17, 0x37, 0x77,
- 0x0F, 0x4F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F,
- },
- {
- 0x00, 0x02, 0x01, 0x05, 0x03, 0x07, 0x27, 0x17,
- 0x37, 0x0F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F,
- },
-};
-
-static const uint8_t bink_tree_lens[16][16] = {
- { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
- { 1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
- { 2, 2, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
- { 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
- { 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5 },
- { 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5 },
- { 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5 },
- { 1, 3, 3, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
- { 1, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
- { 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6 },
- { 2, 2, 3, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 },
- { 1, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 },
- { 2, 2, 2, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
- { 1, 3, 3, 3, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7 },
- { 1, 3, 3, 3, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 },
- { 2, 2, 3, 3, 3, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7 },
-};
-
-static const uint8_t bink_patterns[16][64] = {
- {
- 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38,
- 0x39, 0x31, 0x29, 0x21, 0x19, 0x11, 0x09, 0x01,
- 0x02, 0x0A, 0x12, 0x1A, 0x22, 0x2A, 0x32, 0x3A,
- 0x3B, 0x33, 0x2B, 0x23, 0x1B, 0x13, 0x0B, 0x03,
- 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x34, 0x3C,
- 0x3D, 0x35, 0x2D, 0x25, 0x1D, 0x15, 0x0D, 0x05,
- 0x06, 0x0E, 0x16, 0x1E, 0x26, 0x2E, 0x36, 0x3E,
- 0x3F, 0x37, 0x2F, 0x27, 0x1F, 0x17, 0x0F, 0x07,
- },
- {
- 0x3B, 0x3A, 0x39, 0x38, 0x30, 0x31, 0x32, 0x33,
- 0x2B, 0x2A, 0x29, 0x28, 0x20, 0x21, 0x22, 0x23,
- 0x1B, 0x1A, 0x19, 0x18, 0x10, 0x11, 0x12, 0x13,
- 0x0B, 0x0A, 0x09, 0x08, 0x00, 0x01, 0x02, 0x03,
- 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C,
- 0x14, 0x15, 0x16, 0x17, 0x1F, 0x1E, 0x1D, 0x1C,
- 0x24, 0x25, 0x26, 0x27, 0x2F, 0x2E, 0x2D, 0x2C,
- 0x34, 0x35, 0x36, 0x37, 0x3F, 0x3E, 0x3D, 0x3C,
- },
- {
- 0x19, 0x11, 0x12, 0x1A, 0x1B, 0x13, 0x0B, 0x03,
- 0x02, 0x0A, 0x09, 0x01, 0x00, 0x08, 0x10, 0x18,
- 0x20, 0x28, 0x30, 0x38, 0x39, 0x31, 0x29, 0x2A,
- 0x32, 0x3A, 0x3B, 0x33, 0x2B, 0x23, 0x22, 0x21,
- 0x1D, 0x15, 0x16, 0x1E, 0x1F, 0x17, 0x0F, 0x07,
- 0x06, 0x0E, 0x0D, 0x05, 0x04, 0x0C, 0x14, 0x1C,
- 0x24, 0x2C, 0x34, 0x3C, 0x3D, 0x35, 0x2D, 0x2E,
- 0x36, 0x3E, 0x3F, 0x37, 0x2F, 0x27, 0x26, 0x25,
- },
- {
- 0x03, 0x0B, 0x02, 0x0A, 0x01, 0x09, 0x00, 0x08,
- 0x10, 0x18, 0x11, 0x19, 0x12, 0x1A, 0x13, 0x1B,
- 0x23, 0x2B, 0x22, 0x2A, 0x21, 0x29, 0x20, 0x28,
- 0x30, 0x38, 0x31, 0x39, 0x32, 0x3A, 0x33, 0x3B,
- 0x3C, 0x34, 0x3D, 0x35, 0x3E, 0x36, 0x3F, 0x37,
- 0x2F, 0x27, 0x2E, 0x26, 0x2D, 0x25, 0x2C, 0x24,
- 0x1C, 0x14, 0x1D, 0x15, 0x1E, 0x16, 0x1F, 0x17,
- 0x0F, 0x07, 0x0E, 0x06, 0x0D, 0x05, 0x0C, 0x04,
- },
- {
- 0x18, 0x19, 0x10, 0x11, 0x08, 0x09, 0x00, 0x01,
- 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B,
- 0x1C, 0x1D, 0x14, 0x15, 0x0C, 0x0D, 0x04, 0x05,
- 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F,
- 0x27, 0x26, 0x2F, 0x2E, 0x37, 0x36, 0x3F, 0x3E,
- 0x3D, 0x3C, 0x35, 0x34, 0x2D, 0x2C, 0x25, 0x24,
- 0x23, 0x22, 0x2B, 0x2A, 0x33, 0x32, 0x3B, 0x3A,
- 0x39, 0x38, 0x31, 0x30, 0x29, 0x28, 0x21, 0x20,
- },
- {
- 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
- 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B,
- 0x20, 0x21, 0x22, 0x23, 0x28, 0x29, 0x2A, 0x2B,
- 0x30, 0x31, 0x32, 0x33, 0x38, 0x39, 0x3A, 0x3B,
- 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x24, 0x25, 0x26, 0x27, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x34, 0x35, 0x36, 0x37, 0x3C, 0x3D, 0x3E, 0x3F,
- },
- {
- 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x05, 0x0C, 0x04,
- 0x03, 0x0B, 0x02, 0x0A, 0x09, 0x01, 0x00, 0x08,
- 0x10, 0x18, 0x11, 0x19, 0x12, 0x1A, 0x13, 0x1B,
- 0x14, 0x1C, 0x15, 0x1D, 0x16, 0x1E, 0x17, 0x1F,
- 0x27, 0x2F, 0x26, 0x2E, 0x25, 0x2D, 0x24, 0x2C,
- 0x23, 0x2B, 0x22, 0x2A, 0x21, 0x29, 0x20, 0x28,
- 0x31, 0x30, 0x38, 0x39, 0x3A, 0x32, 0x3B, 0x33,
- 0x3C, 0x34, 0x3D, 0x35, 0x36, 0x37, 0x3F, 0x3E,
- },
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
- 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29, 0x28,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38,
- },
- {
- 0x00, 0x08, 0x09, 0x01, 0x02, 0x03, 0x0B, 0x0A,
- 0x12, 0x13, 0x1B, 0x1A, 0x19, 0x11, 0x10, 0x18,
- 0x20, 0x28, 0x29, 0x21, 0x22, 0x23, 0x2B, 0x2A,
- 0x32, 0x31, 0x30, 0x38, 0x39, 0x3A, 0x3B, 0x33,
- 0x34, 0x3C, 0x3D, 0x3E, 0x3F, 0x37, 0x36, 0x35,
- 0x2D, 0x2C, 0x24, 0x25, 0x26, 0x2E, 0x2F, 0x27,
- 0x1F, 0x17, 0x16, 0x1E, 0x1D, 0x1C, 0x14, 0x15,
- 0x0D, 0x0C, 0x04, 0x05, 0x06, 0x0E, 0x0F, 0x07,
- },
- {
- 0x18, 0x19, 0x10, 0x11, 0x08, 0x09, 0x00, 0x01,
- 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B,
- 0x1C, 0x1D, 0x14, 0x15, 0x0C, 0x0D, 0x04, 0x05,
- 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F,
- 0x26, 0x27, 0x2E, 0x2F, 0x36, 0x37, 0x3E, 0x3F,
- 0x3C, 0x3D, 0x34, 0x35, 0x2C, 0x2D, 0x24, 0x25,
- 0x22, 0x23, 0x2A, 0x2B, 0x32, 0x33, 0x3A, 0x3B,
- 0x38, 0x39, 0x30, 0x31, 0x28, 0x29, 0x20, 0x21,
- },
- {
- 0x00, 0x08, 0x01, 0x09, 0x02, 0x0A, 0x03, 0x0B,
- 0x13, 0x1B, 0x12, 0x1A, 0x11, 0x19, 0x10, 0x18,
- 0x20, 0x28, 0x21, 0x29, 0x22, 0x2A, 0x23, 0x2B,
- 0x33, 0x3B, 0x32, 0x3A, 0x31, 0x39, 0x30, 0x38,
- 0x3C, 0x34, 0x3D, 0x35, 0x3E, 0x36, 0x3F, 0x37,
- 0x2F, 0x27, 0x2E, 0x26, 0x2D, 0x25, 0x2C, 0x24,
- 0x1F, 0x17, 0x1E, 0x16, 0x1D, 0x15, 0x1C, 0x14,
- 0x0C, 0x04, 0x0D, 0x05, 0x0E, 0x06, 0x0F, 0x07,
- },
- {
- 0x00, 0x08, 0x10, 0x18, 0x19, 0x1A, 0x1B, 0x13,
- 0x0B, 0x03, 0x02, 0x01, 0x09, 0x11, 0x12, 0x0A,
- 0x04, 0x0C, 0x14, 0x1C, 0x1D, 0x1E, 0x1F, 0x17,
- 0x0F, 0x07, 0x06, 0x05, 0x0D, 0x15, 0x16, 0x0E,
- 0x24, 0x2C, 0x34, 0x3C, 0x3D, 0x3E, 0x3F, 0x37,
- 0x2F, 0x27, 0x26, 0x25, 0x2D, 0x35, 0x36, 0x2E,
- 0x20, 0x28, 0x30, 0x38, 0x39, 0x3A, 0x3B, 0x33,
- 0x2B, 0x23, 0x22, 0x21, 0x29, 0x31, 0x32, 0x2A,
- },
- {
- 0x00, 0x08, 0x09, 0x01, 0x02, 0x03, 0x0B, 0x0A,
- 0x13, 0x1B, 0x1A, 0x12, 0x11, 0x10, 0x18, 0x19,
- 0x21, 0x20, 0x28, 0x29, 0x2A, 0x22, 0x23, 0x2B,
- 0x33, 0x3B, 0x3A, 0x32, 0x31, 0x39, 0x38, 0x30,
- 0x34, 0x3C, 0x3D, 0x35, 0x36, 0x3E, 0x3F, 0x37,
- 0x2F, 0x27, 0x26, 0x2E, 0x2D, 0x2C, 0x24, 0x25,
- 0x1D, 0x1C, 0x14, 0x15, 0x16, 0x1E, 0x1F, 0x17,
- 0x0E, 0x0F, 0x07, 0x06, 0x05, 0x0D, 0x0C, 0x04,
- },
- {
- 0x18, 0x10, 0x08, 0x00, 0x01, 0x02, 0x03, 0x0B,
- 0x13, 0x1B, 0x1A, 0x19, 0x11, 0x0A, 0x09, 0x12,
- 0x1C, 0x14, 0x0C, 0x04, 0x05, 0x06, 0x07, 0x0F,
- 0x17, 0x1F, 0x1E, 0x1D, 0x15, 0x0E, 0x0D, 0x16,
- 0x3C, 0x34, 0x2C, 0x24, 0x25, 0x26, 0x27, 0x2F,
- 0x37, 0x3F, 0x3E, 0x3D, 0x35, 0x2E, 0x2D, 0x36,
- 0x38, 0x30, 0x28, 0x20, 0x21, 0x22, 0x23, 0x2B,
- 0x33, 0x3B, 0x3A, 0x39, 0x31, 0x2A, 0x29, 0x32,
- },
- {
- 0x00, 0x08, 0x09, 0x01, 0x02, 0x0A, 0x12, 0x11,
- 0x10, 0x18, 0x19, 0x1A, 0x1B, 0x13, 0x0B, 0x03,
- 0x07, 0x06, 0x0E, 0x0F, 0x17, 0x16, 0x15, 0x0D,
- 0x05, 0x04, 0x0C, 0x14, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x3F, 0x3E, 0x36, 0x37, 0x2F, 0x2E, 0x2D, 0x35,
- 0x3D, 0x3C, 0x34, 0x2C, 0x24, 0x25, 0x26, 0x27,
- 0x38, 0x30, 0x31, 0x39, 0x3A, 0x32, 0x2A, 0x29,
- 0x28, 0x20, 0x21, 0x22, 0x23, 0x2B, 0x33, 0x3B,
- },
- {
- 0x00, 0x01, 0x08, 0x09, 0x10, 0x11, 0x18, 0x19,
- 0x20, 0x21, 0x28, 0x29, 0x30, 0x31, 0x38, 0x39,
- 0x3A, 0x3B, 0x32, 0x33, 0x2A, 0x2B, 0x22, 0x23,
- 0x1A, 0x1B, 0x12, 0x13, 0x0A, 0x0B, 0x02, 0x03,
- 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D,
- 0x24, 0x25, 0x2C, 0x2D, 0x34, 0x35, 0x3C, 0x3D,
- 0x3E, 0x3F, 0x36, 0x37, 0x2E, 0x2F, 0x26, 0x27,
- 0x1E, 0x1F, 0x16, 0x17, 0x0E, 0x0F, 0x06, 0x07,
- }
-};
-
-static const uint32_t bink_intra_quant[16][64] = {
-{
- 0x010000, 0x016315, 0x01E83D, 0x02A535, 0x014E7B, 0x016577, 0x02F1E6, 0x02724C,
- 0x010000, 0x00EEDA, 0x024102, 0x017F9B, 0x00BE80, 0x00611E, 0x01083C, 0x00A552,
- 0x021F88, 0x01DC53, 0x027FAD, 0x01F697, 0x014819, 0x00A743, 0x015A31, 0x009688,
- 0x02346F, 0x030EE5, 0x01FBFA, 0x02C096, 0x01D000, 0x028396, 0x019247, 0x01F9AA,
- 0x02346F, 0x01FBFA, 0x01DC53, 0x0231B8, 0x012F12, 0x01E06C, 0x00CB10, 0x0119A8,
- 0x01C48C, 0x019748, 0x014E86, 0x0122AF, 0x02C628, 0x027F20, 0x0297B5, 0x023F32,
- 0x025000, 0x01AB6B, 0x01D122, 0x0159B3, 0x012669, 0x008D43, 0x00EE1F, 0x0075ED,
- 0x01490C, 0x010288, 0x00F735, 0x00EF51, 0x00E0F1, 0x0072AD, 0x00A4D8, 0x006517,
-},
-{
- 0x015555, 0x01D971, 0x028AFC, 0x0386F1, 0x01BDF9, 0x01DC9F, 0x03ED33, 0x034311,
- 0x015555, 0x013E78, 0x030158, 0x01FF7A, 0x00FE00, 0x00817D, 0x01604F, 0x00DC6D,
- 0x02D4B5, 0x027B19, 0x0354E7, 0x029E1F, 0x01B577, 0x00DF04, 0x01CD96, 0x00C8B6,
- 0x02F095, 0x0413DC, 0x02A54E, 0x03AB73, 0x026AAB, 0x035A1E, 0x02185E, 0x02A238,
- 0x02F095, 0x02A54E, 0x027B19, 0x02ECF5, 0x019418, 0x028090, 0x010EC0, 0x01778A,
- 0x025B66, 0x021F0B, 0x01BE09, 0x018394, 0x03B2E0, 0x03542A, 0x0374F1, 0x02FEEE,
- 0x031555, 0x0239E4, 0x026C2D, 0x01CCEE, 0x01888C, 0x00BC59, 0x013D7E, 0x009D3C,
- 0x01B6BB, 0x0158B5, 0x01499C, 0x013F17, 0x012BEC, 0x0098E6, 0x00DBCB, 0x0086C9,
-},
-{
- 0x01AAAB, 0x024FCE, 0x032DBB, 0x0468AD, 0x022D78, 0x0253C7, 0x04E87F, 0x0413D5,
- 0x01AAAB, 0x018E16, 0x03C1AE, 0x027F58, 0x013D80, 0x00A1DC, 0x01B863, 0x011388,
- 0x0389E2, 0x0319DF, 0x042A21, 0x0345A7, 0x0222D4, 0x0116C5, 0x0240FC, 0x00FAE3,
- 0x03ACBA, 0x0518D3, 0x034EA1, 0x04964F, 0x030555, 0x0430A5, 0x029E76, 0x034AC5,
- 0x03ACBA, 0x034EA1, 0x0319DF, 0x03A833, 0x01F91E, 0x0320B4, 0x015270, 0x01D56D,
- 0x02F23F, 0x02A6CE, 0x022D8B, 0x01E479, 0x049F98, 0x042935, 0x04522D, 0x03BEA9,
- 0x03DAAB, 0x02C85D, 0x030738, 0x02402A, 0x01EAAF, 0x00EB6F, 0x018CDE, 0x00C48A,
- 0x022469, 0x01AEE2, 0x019C02, 0x018EDD, 0x0176E7, 0x00BF20, 0x0112BE, 0x00A87B,
-},
-{
- 0x020000, 0x02C62A, 0x03D07A, 0x054A69, 0x029CF6, 0x02CAEF, 0x05E3CC, 0x04E499,
- 0x020000, 0x01DDB4, 0x048204, 0x02FF36, 0x017D01, 0x00C23C, 0x021077, 0x014AA3,
- 0x043F0F, 0x03B8A6, 0x04FF5A, 0x03ED2E, 0x029032, 0x014E86, 0x02B461, 0x012D11,
- 0x0468DF, 0x061DCA, 0x03F7F5, 0x05812C, 0x03A000, 0x05072C, 0x03248D, 0x03F353,
- 0x0468DF, 0x03F7F5, 0x03B8A6, 0x046370, 0x025E24, 0x03C0D8, 0x019620, 0x02334F,
- 0x038919, 0x032E91, 0x029D0D, 0x02455E, 0x058C50, 0x04FE3F, 0x052F69, 0x047E65,
- 0x04A000, 0x0356D6, 0x03A243, 0x02B365, 0x024CD2, 0x011A85, 0x01DC3E, 0x00EBD9,
- 0x029218, 0x020510, 0x01EE69, 0x01DEA2, 0x01C1E2, 0x00E559, 0x0149B0, 0x00CA2D,
-},
-{
- 0x02AAAB, 0x03B2E3, 0x0515F8, 0x070DE2, 0x037BF2, 0x03B93E, 0x07DA65, 0x068621,
- 0x02AAAB, 0x027CF0, 0x0602B1, 0x03FEF3, 0x01FC01, 0x0102FA, 0x02C09F, 0x01B8DA,
- 0x05A96A, 0x04F632, 0x06A9CE, 0x053C3E, 0x036AED, 0x01BE09, 0x039B2D, 0x01916B,
- 0x05E129, 0x0827B8, 0x054A9C, 0x0756E5, 0x04D555, 0x06B43B, 0x0430BC, 0x05446F,
- 0x05E129, 0x054A9C, 0x04F632, 0x05D9EB, 0x032830, 0x050121, 0x021D80, 0x02EF14,
- 0x04B6CC, 0x043E16, 0x037C11, 0x030728, 0x0765C0, 0x06A855, 0x06E9E2, 0x05FDDB,
- 0x062AAB, 0x0473C8, 0x04D85A, 0x0399DC, 0x031118, 0x0178B2, 0x027AFD, 0x013A77,
- 0x036D76, 0x02B16A, 0x029337, 0x027E2E, 0x0257D8, 0x0131CC, 0x01B796, 0x010D91,
-},
-{
- 0x038000, 0x04DACA, 0x06ACD5, 0x094238, 0x0492AE, 0x04E322, 0x0A4EA5, 0x08900C,
- 0x038000, 0x0343FB, 0x07E388, 0x053E9F, 0x029AC1, 0x0153E8, 0x039CD0, 0x02429E,
- 0x076E5B, 0x068322, 0x08BEDE, 0x06DF11, 0x047C57, 0x02496B, 0x04BBAB, 0x020EDD,
- 0x07B786, 0x0AB421, 0x06F1ED, 0x09A20D, 0x065800, 0x08CC8E, 0x057FF7, 0x06E9D2,
- 0x07B786, 0x06F1ED, 0x068322, 0x07AE04, 0x0424BF, 0x06917B, 0x02C6B8, 0x03D9CB,
- 0x062FEB, 0x05917D, 0x0492D7, 0x03F964, 0x09B58C, 0x08BCEF, 0x0912F8, 0x07DD30,
- 0x081800, 0x05D7F7, 0x065BF6, 0x04B9F1, 0x040670, 0x01EE69, 0x03416C, 0x019CBC,
- 0x047FAA, 0x0388DC, 0x036138, 0x03459C, 0x03134C, 0x01915C, 0x0240F5, 0x0161CF,
-},
-{
- 0x040000, 0x058C54, 0x07A0F4, 0x0A94D3, 0x0539EC, 0x0595DD, 0x0BC798, 0x09C932,
- 0x040000, 0x03BB68, 0x090409, 0x05FE6D, 0x02FA01, 0x018477, 0x0420EE, 0x029547,
- 0x087E1F, 0x07714C, 0x09FEB5, 0x07DA5D, 0x052064, 0x029D0D, 0x0568C3, 0x025A21,
- 0x08D1BE, 0x0C3B94, 0x07EFEA, 0x0B0258, 0x074000, 0x0A0E59, 0x06491A, 0x07E6A7,
- 0x08D1BE, 0x07EFEA, 0x07714C, 0x08C6E0, 0x04BC48, 0x0781B1, 0x032C3F, 0x04669F,
- 0x071232, 0x065D22, 0x053A1A, 0x048ABC, 0x0B18A0, 0x09FC7F, 0x0A5ED3, 0x08FCC9,
- 0x094000, 0x06ADAC, 0x074487, 0x0566CA, 0x0499A5, 0x02350B, 0x03B87B, 0x01D7B3,
- 0x052430, 0x040A20, 0x03DCD3, 0x03BD45, 0x0383C5, 0x01CAB3, 0x029361, 0x01945A,
-},
-{
- 0x050000, 0x06EF69, 0x098931, 0x0D3A07, 0x068867, 0x06FB55, 0x0EB97E, 0x0C3B7E,
- 0x050000, 0x04AA42, 0x0B450B, 0x077E08, 0x03B881, 0x01E595, 0x05292A, 0x033A99,
- 0x0A9DA7, 0x094D9F, 0x0C7E62, 0x09D0F4, 0x06687D, 0x034450, 0x06C2F4, 0x02F0AA,
- 0x0B062D, 0x0F4A78, 0x09EBE4, 0x0DC2EE, 0x091000, 0x0C91EF, 0x07DB61, 0x09E050,
- 0x0B062D, 0x09EBE4, 0x094D9F, 0x0AF898, 0x05EB59, 0x09621D, 0x03F74F, 0x058046,
- 0x08D6BE, 0x07F46A, 0x0688A0, 0x05AD6B, 0x0DDEC8, 0x0C7B9F, 0x0CF687, 0x0B3BFB,
- 0x0B9000, 0x085917, 0x0915A8, 0x06C07D, 0x05C00E, 0x02C24D, 0x04A69A, 0x024D9F,
- 0x066D3C, 0x050CA7, 0x04D407, 0x04AC96, 0x0464B6, 0x023D5F, 0x033839, 0x01F971,
-},
-{
- 0x060000, 0x08527E, 0x0B716E, 0x0FDF3C, 0x07D6E1, 0x0860CC, 0x11AB63, 0x0EADCB,
- 0x060000, 0x05991C, 0x0D860D, 0x08FDA3, 0x047702, 0x0246B3, 0x063165, 0x03DFEA,
- 0x0CBD2E, 0x0B29F1, 0x0EFE0F, 0x0BC78B, 0x07B096, 0x03EB93, 0x081D24, 0x038732,
- 0x0D3A9C, 0x12595D, 0x0BE7DF, 0x108384, 0x0AE000, 0x0F1585, 0x096DA8, 0x0BD9FA,
- 0x0D3A9C, 0x0BE7DF, 0x0B29F1, 0x0D2A50, 0x071A6B, 0x0B4289, 0x04C25F, 0x0699EE,
- 0x0A9B4A, 0x098BB2, 0x07D727, 0x06D01A, 0x10A4F0, 0x0EFABE, 0x0F8E3C, 0x0D7B2E,
- 0x0DE000, 0x0A0482, 0x0AE6CA, 0x081A2F, 0x06E677, 0x034F90, 0x0594B9, 0x02C38C,
- 0x07B649, 0x060F2F, 0x05CB3C, 0x059BE7, 0x0545A7, 0x02B00C, 0x03DD11, 0x025E87,
-},
-{
- 0x080000, 0x0B18A8, 0x0F41E8, 0x1529A5, 0x0A73D7, 0x0B2BBB, 0x178F2F, 0x139264,
- 0x080000, 0x0776CF, 0x120812, 0x0BFCD9, 0x05F402, 0x0308EF, 0x0841DC, 0x052A8E,
- 0x10FC3E, 0x0EE297, 0x13FD69, 0x0FB4B9, 0x0A40C8, 0x053A1A, 0x0AD186, 0x04B442,
- 0x11A37B, 0x187727, 0x0FDFD4, 0x1604B0, 0x0E8000, 0x141CB1, 0x0C9235, 0x0FCD4D,
- 0x11A37B, 0x0FDFD4, 0x0EE297, 0x118DC0, 0x09788F, 0x0F0362, 0x06587F, 0x08CD3D,
- 0x0E2463, 0x0CBA43, 0x0A7434, 0x091577, 0x163140, 0x13F8FE, 0x14BDA5, 0x11F992,
- 0x128000, 0x0D5B58, 0x0E890D, 0x0ACD94, 0x093349, 0x046A15, 0x0770F7, 0x03AF65,
- 0x0A4861, 0x08143F, 0x07B9A6, 0x077A89, 0x070789, 0x039565, 0x0526C2, 0x0328B4,
-},
-{
- 0x0C0000, 0x10A4FD, 0x16E2DB, 0x1FBE78, 0x0FADC3, 0x10C198, 0x2356C7, 0x1D5B96,
- 0x0C0000, 0x0B3237, 0x1B0C1A, 0x11FB46, 0x08EE03, 0x048D66, 0x0C62CA, 0x07BFD5,
- 0x197A5D, 0x1653E3, 0x1DFC1E, 0x178F16, 0x0F612C, 0x07D727, 0x103A49, 0x070E64,
- 0x1A7539, 0x24B2BB, 0x17CFBD, 0x210709, 0x15C000, 0x1E2B0A, 0x12DB4F, 0x17B3F4,
- 0x1A7539, 0x17CFBD, 0x1653E3, 0x1A54A0, 0x0E34D7, 0x168513, 0x0984BE, 0x0D33DC,
- 0x153695, 0x131765, 0x0FAE4E, 0x0DA033, 0x2149E1, 0x1DF57D, 0x1F1C78, 0x1AF65B,
- 0x1BC000, 0x140904, 0x15CD94, 0x10345E, 0x0DCCEE, 0x069F20, 0x0B2972, 0x058718,
- 0x0F6C91, 0x0C1E5E, 0x0B9678, 0x0B37CE, 0x0A8B4E, 0x056018, 0x07BA22, 0x04BD0E,
-},
-{
- 0x110000, 0x179466, 0x206C0C, 0x2CF87F, 0x16362A, 0x17BCED, 0x321044, 0x299714,
- 0x110000, 0x0FDC79, 0x265125, 0x19794E, 0x0CA685, 0x0672FB, 0x118BF4, 0x0AFA6D,
- 0x241804, 0x1FA181, 0x2A7A80, 0x21600A, 0x15C9A9, 0x0B1B77, 0x16FD3C, 0x09FF0D,
- 0x257B66, 0x33FD33, 0x21BBA2, 0x2EC9F7, 0x1ED000, 0x2ABCF9, 0x1AB6B0, 0x219444,
- 0x257B66, 0x21BBA2, 0x1FA181, 0x254D38, 0x142030, 0x1FE730, 0x0D7C0E, 0x12B423,
- 0x1E0D52, 0x1B0BCF, 0x1636EE, 0x134D9E, 0x2F28A9, 0x2A711B, 0x2C12FF, 0x263256,
- 0x275000, 0x1C621B, 0x1EE33C, 0x16F4DB, 0x138CFB, 0x09616E, 0x0FD00C, 0x07D4B7,
- 0x15D9CE, 0x112B06, 0x106A80, 0x0FE464, 0x0EF004, 0x079D77, 0x0AF25B, 0x06B67F,
-},
-{
- 0x160000, 0x1E83CF, 0x29F53D, 0x3A3286, 0x1CBE90, 0x1EB842, 0x40C9C2, 0x35D293,
- 0x160000, 0x1486BA, 0x319630, 0x20F756, 0x105F06, 0x085891, 0x16B51E, 0x0E3506,
- 0x2EB5AA, 0x28EF20, 0x36F8E1, 0x2B30FE, 0x1C3225, 0x0E5FC7, 0x1DC030, 0x0CEFB7,
- 0x308193, 0x4347AC, 0x2BA786, 0x3C8CE5, 0x27E000, 0x374EE7, 0x229212, 0x2B7494,
- 0x308193, 0x2BA786, 0x28EF20, 0x3045D0, 0x1A0B89, 0x29494D, 0x11735D, 0x183469,
- 0x26E410, 0x230039, 0x1CBF8F, 0x18FB09, 0x3D0771, 0x36ECBA, 0x390986, 0x316E52,
- 0x32E000, 0x24BB33, 0x27F8E4, 0x1DB557, 0x194D09, 0x0C23BB, 0x1476A6, 0x0A2256,
- 0x1C470A, 0x1637AD, 0x153E87, 0x1490FA, 0x1354B9, 0x09DAD6, 0x0E2A94, 0x08AFF0,
-},
-{
- 0x1C0000, 0x26D64D, 0x3566AA, 0x4A11C2, 0x249572, 0x27190E, 0x527525, 0x44805E,
- 0x1C0000, 0x1A1FD6, 0x3F1C3E, 0x29F4F9, 0x14D607, 0x0A9F44, 0x1CE683, 0x1214F0,
- 0x3B72D9, 0x341911, 0x45F6F0, 0x36F889, 0x23E2BB, 0x124B5B, 0x25DD54, 0x1076E9,
- 0x3DBC30, 0x55A109, 0x378F64, 0x4D1069, 0x32C000, 0x46646C, 0x2BFFB9, 0x374E8E,
- 0x3DBC30, 0x378F64, 0x341911, 0x3D7020, 0x2125F5, 0x348BD6, 0x1635BC, 0x1ECE57,
- 0x317F5B, 0x2C8BEB, 0x2496B6, 0x1FCB22, 0x4DAC61, 0x45E778, 0x4897C2, 0x3EE97F,
- 0x40C000, 0x2EBFB5, 0x32DFAE, 0x25CF86, 0x203380, 0x0F734B, 0x1A0B5F, 0x0CE5E2,
- 0x23FD53, 0x1C46DC, 0x1B09C4, 0x1A2CE1, 0x189A60, 0x0C8AE2, 0x1207A5, 0x0B0E77,
-},
-{
- 0x220000, 0x2F28CC, 0x40D818, 0x59F0FE, 0x2C6C53, 0x2F79DA, 0x642089, 0x532E29,
- 0x220000, 0x1FB8F1, 0x4CA24B, 0x32F29C, 0x194D09, 0x0CE5F7, 0x2317E8, 0x15F4DB,
- 0x483007, 0x3F4303, 0x54F4FF, 0x42C014, 0x2B9351, 0x1636EE, 0x2DFA79, 0x13FE1A,
- 0x4AF6CC, 0x67FA67, 0x437743, 0x5D93EE, 0x3DA000, 0x5579F1, 0x356D61, 0x432888,
- 0x4AF6CC, 0x437743, 0x3F4303, 0x4A9A70, 0x284060, 0x3FCE60, 0x1AF81B, 0x256845,
- 0x3C1AA5, 0x36179D, 0x2C6DDD, 0x269B3C, 0x5E5152, 0x54E237, 0x5825FE, 0x4C64AD,
- 0x4EA000, 0x38C437, 0x3DC678, 0x2DE9B5, 0x2719F7, 0x12C2DB, 0x1FA018, 0x0FA96E,
- 0x2BB39B, 0x22560C, 0x20D500, 0x1FC8C8, 0x1DE007, 0x0F3AEE, 0x15E4B7, 0x0D6CFE,
-},
-{
- 0x2C0000, 0x3D079E, 0x53EA79, 0x74650C, 0x397D20, 0x3D7083, 0x819383, 0x6BA525,
- 0x2C0000, 0x290D75, 0x632C61, 0x41EEAC, 0x20BE0C, 0x10B121, 0x2D6A3B, 0x1C6A0C,
- 0x5D6B54, 0x51DE40, 0x6DF1C2, 0x5661FB, 0x38644B, 0x1CBF8F, 0x3B8060, 0x19DF6D,
- 0x610326, 0x868F57, 0x574F0B, 0x7919CA, 0x4FC000, 0x6E9DCE, 0x452423, 0x56E928,
- 0x610326, 0x574F0B, 0x51DE40, 0x608BA0, 0x341713, 0x52929A, 0x22E6BA, 0x3068D2,
- 0x4DC821, 0x460071, 0x397F1E, 0x31F611, 0x7A0EE2, 0x6DD974, 0x72130C, 0x62DCA3,
- 0x65C000, 0x497665, 0x4FF1C9, 0x3B6AAE, 0x329A12, 0x184776, 0x28ED4D, 0x1444AC,
- 0x388E14, 0x2C6F5A, 0x2A7D0F, 0x2921F4, 0x26A973, 0x13B5AD, 0x1C5528, 0x115FDF,
-},
-};
-
-static const uint32_t bink_inter_quant[16][64] = {
-{
- 0x010000, 0x017946, 0x01A5A9, 0x0248DC, 0x016363, 0x0152A7, 0x0243EC, 0x0209EA,
- 0x012000, 0x00E248, 0x01BBDA, 0x015CBC, 0x00A486, 0x0053E0, 0x00F036, 0x008095,
- 0x01B701, 0x016959, 0x01B0B9, 0x0153FD, 0x00F8E7, 0x007EE4, 0x00EA30, 0x007763,
- 0x01B701, 0x0260EB, 0x019DE9, 0x023E1B, 0x017000, 0x01FE6E, 0x012DB5, 0x01A27B,
- 0x01E0D1, 0x01B0B9, 0x018A33, 0x01718D, 0x00D87A, 0x014449, 0x007B9A, 0x00AB71,
- 0x013178, 0x0112EA, 0x00AD08, 0x009BB9, 0x023D97, 0x020437, 0x021CCC, 0x01E6B4,
- 0x018000, 0x012DB5, 0x0146D9, 0x0100CE, 0x00CFD2, 0x006E5C, 0x00B0E4, 0x005A2D,
- 0x00E9CC, 0x00B7B1, 0x00846F, 0x006B85, 0x008337, 0x0042E5, 0x004A10, 0x002831,
-},
-{
- 0x015555, 0x01F708, 0x023237, 0x030BD0, 0x01D9D9, 0x01C389, 0x03053B, 0x02B7E3,
- 0x018000, 0x012DB5, 0x024FCE, 0x01D0FA, 0x00DB5D, 0x006FD5, 0x014048, 0x00AB71,
- 0x024957, 0x01E1CC, 0x0240F7, 0x01C551, 0x014BDE, 0x00A92F, 0x013840, 0x009F2F,
- 0x024957, 0x032BE4, 0x0227E1, 0x02FD7A, 0x01EAAB, 0x02A893, 0x019247, 0x022DF9,
- 0x028116, 0x0240F7, 0x020D99, 0x01ECBC, 0x0120A3, 0x01B061, 0x00A4CE, 0x00E497,
- 0x01974B, 0x016E8E, 0x00E6B5, 0x00CFA2, 0x02FCC9, 0x02B04A, 0x02D110, 0x0288F1,
- 0x020000, 0x019247, 0x01B3CC, 0x015668, 0x011518, 0x009325, 0x00EBDA, 0x00783D,
- 0x0137BB, 0x00F4ED, 0x00B093, 0x008F5C, 0x00AEF4, 0x005931, 0x0062BF, 0x003597,
-},
-{
- 0x01AAAB, 0x0274CB, 0x02BEC4, 0x03CEC4, 0x02504F, 0x02346C, 0x03C689, 0x0365DC,
- 0x01E000, 0x017922, 0x02E3C1, 0x024539, 0x011235, 0x008BCA, 0x01905A, 0x00D64D,
- 0x02DBAD, 0x025A40, 0x02D134, 0x0236A5, 0x019ED6, 0x00D37B, 0x018650, 0x00C6FB,
- 0x02DBAD, 0x03F6DD, 0x02B1D9, 0x03BCD8, 0x026555, 0x0352B8, 0x01F6D8, 0x02B977,
- 0x03215C, 0x02D134, 0x029100, 0x0267EB, 0x0168CC, 0x021C7A, 0x00CE01, 0x011DBD,
- 0x01FD1E, 0x01CA31, 0x012062, 0x01038A, 0x03BBFB, 0x035C5C, 0x038554, 0x032B2D,
- 0x028000, 0x01F6D8, 0x0220C0, 0x01AC02, 0x015A5E, 0x00B7EF, 0x0126D1, 0x00964C,
- 0x0185A9, 0x013228, 0x00DCB8, 0x00B333, 0x00DAB2, 0x006F7D, 0x007B6F, 0x0042FC,
-},
-{
- 0x020000, 0x02F28D, 0x034B52, 0x0491B8, 0x02C6C5, 0x02A54E, 0x0487D8, 0x0413D5,
- 0x024000, 0x01C48F, 0x0377B5, 0x02B977, 0x01490C, 0x00A7BF, 0x01E06C, 0x01012A,
- 0x036E03, 0x02D2B3, 0x036172, 0x02A7FA, 0x01F1CE, 0x00FDC7, 0x01D460, 0x00EEC7,
- 0x036E03, 0x04C1D6, 0x033BD1, 0x047C37, 0x02E000, 0x03FCDD, 0x025B6A, 0x0344F5,
- 0x03C1A1, 0x036172, 0x031466, 0x02E31B, 0x01B0F5, 0x028892, 0x00F735, 0x0156E2,
- 0x0262F1, 0x0225D5, 0x015A10, 0x013772, 0x047B2D, 0x04086E, 0x043998, 0x03CD69,
- 0x030000, 0x025B6A, 0x028DB3, 0x02019B, 0x019FA3, 0x00DCB8, 0x0161C7, 0x00B45B,
- 0x01D398, 0x016F63, 0x0108DD, 0x00D70A, 0x01066F, 0x0085C9, 0x00941F, 0x005062,
-},
-{
- 0x02AAAB, 0x03EE11, 0x04646D, 0x0617A0, 0x03B3B2, 0x038713, 0x060A75, 0x056FC6,
- 0x030000, 0x025B6A, 0x049F9B, 0x03A1F4, 0x01B6BB, 0x00DFAA, 0x028090, 0x0156E2,
- 0x0492AE, 0x03C399, 0x0481ED, 0x038AA2, 0x0297BD, 0x01525F, 0x027080, 0x013E5E,
- 0x0492AE, 0x0657C8, 0x044FC1, 0x05FAF4, 0x03D555, 0x055126, 0x03248D, 0x045BF2,
- 0x05022D, 0x0481ED, 0x041B33, 0x03D979, 0x024147, 0x0360C3, 0x01499C, 0x01C92E,
- 0x032E96, 0x02DD1C, 0x01CD6A, 0x019F43, 0x05F991, 0x056093, 0x05A220, 0x0511E1,
- 0x040000, 0x03248D, 0x036799, 0x02ACCF, 0x022A2F, 0x01264B, 0x01D7B5, 0x00F079,
- 0x026F75, 0x01E9D9, 0x016127, 0x011EB8, 0x015DE9, 0x00B262, 0x00C57F, 0x006B2D,
-},
-{
- 0x038000, 0x052876, 0x05C3CF, 0x07FF02, 0x04DBD9, 0x04A148, 0x07EDBA, 0x0722B4,
- 0x03F000, 0x0317FB, 0x06117C, 0x04C491, 0x023FD5, 0x01258F, 0x0348BD, 0x01C209,
- 0x060085, 0x04F0B9, 0x05EA87, 0x04A5F5, 0x036728, 0x01BC1C, 0x0333A8, 0x01A1DB,
- 0x060085, 0x085336, 0x05A8AE, 0x07D960, 0x050800, 0x06FA82, 0x041FF9, 0x05B8AE,
- 0x0692DA, 0x05EA87, 0x0563B2, 0x050D6E, 0x02F5AD, 0x046F00, 0x01B09C, 0x02580C,
- 0x042D25, 0x03C235, 0x025D9B, 0x022108, 0x07D78F, 0x070EC1, 0x0764CA, 0x06A777,
- 0x054000, 0x041FF9, 0x0477F9, 0x0382D0, 0x02D75E, 0x018242, 0x026B1D, 0x013B9F,
- 0x03324A, 0x0282ED, 0x01CF83, 0x017851, 0x01CB42, 0x00EA21, 0x010336, 0x008CAC,
-},
-{
- 0x040000, 0x05E519, 0x0696A4, 0x092370, 0x058D8A, 0x054A9C, 0x090FB0, 0x0827AA,
- 0x048000, 0x03891F, 0x06EF69, 0x0572EE, 0x029218, 0x014F7E, 0x03C0D8, 0x020254,
- 0x06DC05, 0x05A565, 0x06C2E4, 0x054FF3, 0x03E39B, 0x01FB8E, 0x03A8C0, 0x01DD8D,
- 0x06DC05, 0x0983AC, 0x0677A2, 0x08F86E, 0x05C000, 0x07F9B9, 0x04B6D4, 0x0689EB,
- 0x078343, 0x06C2E4, 0x0628CC, 0x05C635, 0x0361EA, 0x051124, 0x01EE69, 0x02ADC5,
- 0x04C5E1, 0x044BAA, 0x02B41F, 0x026EE5, 0x08F65A, 0x0810DD, 0x087330, 0x079AD1,
- 0x060000, 0x04B6D4, 0x051B65, 0x040337, 0x033F47, 0x01B970, 0x02C38F, 0x0168B6,
- 0x03A730, 0x02DEC6, 0x0211BA, 0x01AE14, 0x020CDD, 0x010B93, 0x01283E, 0x00A0C4,
-},
-{
- 0x050000, 0x075E60, 0x083C4D, 0x0B6C4C, 0x06F0ED, 0x069D43, 0x0B539C, 0x0A3194,
- 0x05A000, 0x046B67, 0x08AB44, 0x06CFAA, 0x03369E, 0x01A35E, 0x04B10F, 0x0282E8,
- 0x089307, 0x070EBF, 0x08739C, 0x06A3F0, 0x04DC82, 0x027A72, 0x0492F0, 0x0254F0,
- 0x089307, 0x0BE497, 0x08158B, 0x0B3689, 0x073000, 0x09F827, 0x05E489, 0x082C66,
- 0x096413, 0x08739C, 0x07B2FF, 0x0737C2, 0x043A64, 0x06556D, 0x026A04, 0x035936,
- 0x05F75A, 0x055E94, 0x036127, 0x030A9E, 0x0B33F1, 0x0A1514, 0x0A8FFC, 0x098186,
- 0x078000, 0x05E489, 0x06623F, 0x050405, 0x040F19, 0x0227CC, 0x037473, 0x01C2E3,
- 0x0490FC, 0x039677, 0x029629, 0x021999, 0x029015, 0x014E78, 0x01724E, 0x00C8F5,
-},
-{
- 0x060000, 0x08D7A6, 0x09E1F6, 0x0DB528, 0x085450, 0x07EFEA, 0x0D9788, 0x0C3B7E,
- 0x06C000, 0x054DAE, 0x0A671E, 0x082C66, 0x03DB24, 0x01F73E, 0x05A145, 0x03037D,
- 0x0A4A08, 0x087818, 0x0A2455, 0x07F7ED, 0x05D569, 0x02F955, 0x057D20, 0x02CC54,
- 0x0A4A08, 0x0E4582, 0x09B373, 0x0D74A5, 0x08A000, 0x0BF696, 0x07123E, 0x09CEE0,
- 0x0B44E4, 0x0A2455, 0x093D32, 0x08A950, 0x0512DF, 0x0799B6, 0x02E59E, 0x0404A7,
- 0x0728D2, 0x06717F, 0x040E2F, 0x03A657, 0x0D7187, 0x0C194B, 0x0CACC8, 0x0B683A,
- 0x090000, 0x07123E, 0x07A918, 0x0604D2, 0x04DEEA, 0x029629, 0x042556, 0x021D11,
- 0x057AC8, 0x044E28, 0x031A97, 0x02851E, 0x03134C, 0x01915C, 0x01BC5D, 0x00F126,
-},
-{
- 0x080000, 0x0BCA33, 0x0D2D48, 0x1246E0, 0x0B1B15, 0x0A9538, 0x121F5F, 0x104F53,
- 0x090000, 0x07123E, 0x0DDED2, 0x0AE5DD, 0x052430, 0x029EFD, 0x0781B1, 0x0404A7,
- 0x0DB80B, 0x0B4ACB, 0x0D85C7, 0x0A9FE7, 0x07C736, 0x03F71D, 0x075180, 0x03BB1A,
- 0x0DB80B, 0x130757, 0x0CEF44, 0x11F0DC, 0x0B8000, 0x0FF372, 0x096DA8, 0x0D13D6,
- 0x0F0686, 0x0D85C7, 0x0C5198, 0x0B8C6A, 0x06C3D4, 0x0A2248, 0x03DCD3, 0x055B8A,
- 0x098BC3, 0x089754, 0x05683E, 0x04DDC9, 0x11ECB4, 0x1021B9, 0x10E661, 0x0F35A3,
- 0x0C0000, 0x096DA8, 0x0A36CB, 0x08066E, 0x067E8E, 0x0372E1, 0x05871E, 0x02D16B,
- 0x074E60, 0x05BD8B, 0x042374, 0x035C28, 0x0419BB, 0x021726, 0x02507C, 0x014188,
-},
-{
- 0x0C0000, 0x11AF4C, 0x13C3EC, 0x1B6A50, 0x10A89F, 0x0FDFD4, 0x1B2F0F, 0x1876FD,
- 0x0D8000, 0x0A9B5D, 0x14CE3C, 0x1058CB, 0x07B649, 0x03EE7B, 0x0B4289, 0x0606FB,
- 0x149410, 0x10F030, 0x1448AB, 0x0FEFDA, 0x0BAAD2, 0x05F2AB, 0x0AFA40, 0x0598A7,
- 0x149410, 0x1C8B03, 0x1366E6, 0x1AE949, 0x114000, 0x17ED2B, 0x0E247C, 0x139DC1,
- 0x1689C8, 0x1448AB, 0x127A63, 0x11529F, 0x0A25BE, 0x0F336D, 0x05CB3C, 0x08094E,
- 0x0E51A4, 0x0CE2FE, 0x081C5D, 0x074CAE, 0x1AE30E, 0x183296, 0x195991, 0x16D074,
- 0x120000, 0x0E247C, 0x0F5230, 0x0C09A5, 0x09BDD5, 0x052C51, 0x084AAC, 0x043A21,
- 0x0AF590, 0x089C51, 0x06352E, 0x050A3B, 0x062698, 0x0322B9, 0x0378BA, 0x01E24D,
-},
-{
- 0x110000, 0x190DAC, 0x1C0039, 0x26D69C, 0x17998C, 0x167D16, 0x2682AB, 0x22A891,
- 0x132000, 0x0F06C3, 0x1D797F, 0x172876, 0x0AECE7, 0x0591D9, 0x0FF398, 0x0889E3,
- 0x1D2717, 0x17FEEF, 0x1CBC47, 0x1693CA, 0x108754, 0x086D1D, 0x0F8D30, 0x07ED98,
- 0x1D2717, 0x286F9A, 0x1B7C71, 0x261FD3, 0x187000, 0x21E552, 0x140904, 0x1BCA27,
- 0x1FEDDC, 0x1CBC47, 0x1A2D62, 0x188A62, 0x0E6022, 0x1588DA, 0x083540, 0x0B6284,
- 0x1448FE, 0x124192, 0x0B7D84, 0x0A574B, 0x2616FF, 0x2247AA, 0x23E98D, 0x2051FA,
- 0x198000, 0x140904, 0x15B46F, 0x110DAA, 0x0DCCEE, 0x07541E, 0x0BBF1F, 0x05FD04,
- 0x0F868B, 0x0C32C8, 0x08CB57, 0x0723D4, 0x08B6AD, 0x047130, 0x04EB08, 0x02AB42,
-},
-{
- 0x160000, 0x206C0C, 0x243C86, 0x3242E8, 0x1E8A79, 0x1D1A59, 0x31D646, 0x2CDA25,
- 0x18C000, 0x13722A, 0x2624C3, 0x1DF820, 0x0E2385, 0x073537, 0x14A4A7, 0x0B0CCC,
- 0x25BA1D, 0x1F0DAE, 0x252FE4, 0x1D37BB, 0x1563D6, 0x0AE78E, 0x142021, 0x0A4288,
- 0x25BA1D, 0x345430, 0x2391FB, 0x31565C, 0x1FA000, 0x2BDD7A, 0x19ED8D, 0x23F68C,
- 0x2951EF, 0x252FE4, 0x21E061, 0x1FC224, 0x129A87, 0x1BDE47, 0x0A9F44, 0x0EBBBA,
- 0x1A4058, 0x17A026, 0x0EDEAB, 0x0D61E9, 0x314AEF, 0x2C5CBE, 0x2E798A, 0x29D380,
- 0x210000, 0x19ED8D, 0x1C16AE, 0x1611AE, 0x11DC06, 0x097BEA, 0x0F3391, 0x07BFE7,
- 0x141787, 0x0FC93E, 0x0B617F, 0x093D6D, 0x0B46C1, 0x05BFA8, 0x065D55, 0x037437,
-},
-{
- 0x1C0000, 0x2943B2, 0x2E1E7C, 0x3FF810, 0x26DEC9, 0x250A43, 0x3F6DCE, 0x3915A3,
- 0x1F8000, 0x18BFD8, 0x308BE1, 0x262485, 0x11FEA9, 0x092C75, 0x1A45EB, 0x0E1049,
- 0x300425, 0x2785C6, 0x2F5439, 0x252FA8, 0x1B393F, 0x0DE0E4, 0x199D41, 0x0D0EDC,
- 0x300425, 0x4299B2, 0x2D456E, 0x3ECB00, 0x284000, 0x37D40F, 0x20FFCB, 0x2DC56D,
- 0x3496D3, 0x2F5439, 0x2B1D93, 0x286B74, 0x17AD66, 0x2377FE, 0x0D84E2, 0x12C062,
- 0x21692A, 0x1E11A5, 0x12ECDA, 0x110840, 0x3EBC76, 0x387608, 0x3B2652, 0x353BBA,
- 0x2A0000, 0x20FFCB, 0x23BFC6, 0x1C1681, 0x16BAF1, 0x0C1213, 0x1358E8, 0x09DCF8,
- 0x19924F, 0x141767, 0x0E7C16, 0x0BC28A, 0x0E5A0D, 0x075104, 0x0819B2, 0x04655D,
-},
-{
- 0x220000, 0x321B58, 0x380072, 0x4DAD38, 0x2F3318, 0x2CFA2D, 0x4D0556, 0x455122,
- 0x264000, 0x1E0D86, 0x3AF2FE, 0x2E50EB, 0x15D9CE, 0x0B23B2, 0x1FE730, 0x1113C7,
- 0x3A4E2D, 0x2FFDDF, 0x39788E, 0x2D2795, 0x210EA8, 0x10DA39, 0x1F1A61, 0x0FDB2F,
- 0x3A4E2D, 0x50DF33, 0x36F8E1, 0x4C3FA5, 0x30E000, 0x43CAA5, 0x281209, 0x37944D,
- 0x3FDBB7, 0x39788E, 0x345AC4, 0x3114C3, 0x1CC044, 0x2B11B4, 0x106A80, 0x16C509,
- 0x2891FC, 0x248324, 0x16FB08, 0x14AE97, 0x4C2DFD, 0x448F54, 0x47D31B, 0x40A3F5,
- 0x330000, 0x281209, 0x2B68DF, 0x221B53, 0x1B99DB, 0x0EA83B, 0x177E3E, 0x0BFA09,
- 0x1F0D17, 0x18658F, 0x1196AE, 0x0E47A8, 0x116D5A, 0x08E260, 0x09D60F, 0x055684,
-},
-{
- 0x2C0000, 0x40D818, 0x48790C, 0x6485D0, 0x3D14F2, 0x3A34B2, 0x63AC8D, 0x59B44A,
- 0x318000, 0x26E454, 0x4C4986, 0x3BF03F, 0x1C470A, 0x0E6A6E, 0x29494D, 0x161998,
- 0x4B743A, 0x3E1B5C, 0x4A5FC7, 0x3A6F75, 0x2AC7AC, 0x15CF1D, 0x284041, 0x148510,
- 0x4B743A, 0x68A861, 0x4723F6, 0x62ACB8, 0x3F4000, 0x57BAF3, 0x33DB1A, 0x47ED19,
- 0x52A3DE, 0x4A5FC7, 0x43C0C2, 0x3F8448, 0x25350D, 0x37BC8E, 0x153E87, 0x1D7775,
- 0x3480B0, 0x2F404C, 0x1DBD56, 0x1AC3D2, 0x6295DE, 0x58B97B, 0x5CF313, 0x53A701,
- 0x420000, 0x33DB1A, 0x382D5C, 0x2C235D, 0x23B80D, 0x12F7D4, 0x1E6723, 0x0F7FCF,
- 0x282F0E, 0x1F927D, 0x16C2FF, 0x127AD9, 0x168D83, 0x0B7F50, 0x0CBAAA, 0x06E86E,
-},
-};
-
-#endif /* AVCODEC_BINKDATA_H */
+++ /dev/null
-/*
- * internals for BMP codecs
- * Copyright (c) 2005 Mans Rullgard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_BMP_H
-#define AVCODEC_BMP_H
-
-#include "avcodec.h"
-
-typedef struct BMPContext {
- AVFrame picture;
-} BMPContext;
-
-typedef enum {
- BMP_RGB =0,
- BMP_RLE8 =1,
- BMP_RLE4 =2,
- BMP_BITFIELDS =3,
-} BiCompression;
-
-#endif /* AVCODEC_BMP_H */
+++ /dev/null
-/*
- * Bytestream functions
- * copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@free.fr>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_BYTESTREAM_H
-#define AVCODEC_BYTESTREAM_H
-
-#include <string.h>
-#include "libavutil/common.h"
-#include "libavutil/intreadwrite.h"
-
-#define DEF_T(type, name, bytes, read, write) \
-static av_always_inline type bytestream_get_ ## name(const uint8_t **b){\
- (*b) += bytes;\
- return read(*b - bytes);\
-}\
-static av_always_inline void bytestream_put_ ##name(uint8_t **b, const type value){\
- write(*b, value);\
- (*b) += bytes;\
-}
-
-#define DEF(name, bytes, read, write) \
- DEF_T(unsigned int, name, bytes, read, write)
-#define DEF64(name, bytes, read, write) \
- DEF_T(uint64_t, name, bytes, read, write)
-
-DEF64(le64, 8, AV_RL64, AV_WL64)
-DEF (le32, 4, AV_RL32, AV_WL32)
-DEF (le24, 3, AV_RL24, AV_WL24)
-DEF (le16, 2, AV_RL16, AV_WL16)
-DEF64(be64, 8, AV_RB64, AV_WB64)
-DEF (be32, 4, AV_RB32, AV_WB32)
-DEF (be24, 3, AV_RB24, AV_WB24)
-DEF (be16, 2, AV_RB16, AV_WB16)
-DEF (byte, 1, AV_RB8 , AV_WB8 )
-
-#undef DEF
-#undef DEF64
-#undef DEF_T
-
-static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b, uint8_t *dst, unsigned int size)
-{
- memcpy(dst, *b, size);
- (*b) += size;
- return size;
-}
-
-static av_always_inline void bytestream_put_buffer(uint8_t **b, const uint8_t *src, unsigned int size)
-{
- memcpy(*b, src, size);
- (*b) += size;
-}
-
-#endif /* AVCODEC_BYTESTREAM_H */
+++ /dev/null
-/*
- * H.26L/H.264/AVC/JVT/14496-10/... encoder/decoder
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Context Adaptive Binary Arithmetic Coder.
- */
-
-#ifndef AVCODEC_CABAC_H
-#define AVCODEC_CABAC_H
-
-#include "put_bits.h"
-
-//#undef NDEBUG
-#include <assert.h>
-#include "libavutil/x86_cpu.h"
-
-#define CABAC_BITS 16
-#define CABAC_MASK ((1<<CABAC_BITS)-1)
-#define BRANCHLESS_CABAC_DECODER 1
-//#define ARCH_X86_DISABLED 1
-
-typedef struct CABACContext{
- int low;
- int range;
- int outstanding_count;
-#ifdef STRICT_LIMITS
- int symCount;
-#endif
- const uint8_t *bytestream_start;
- const uint8_t *bytestream;
- const uint8_t *bytestream_end;
- PutBitContext pb;
-}CABACContext;
-
-extern uint8_t ff_h264_mlps_state[4*64];
-extern uint8_t ff_h264_lps_range[4*2*64]; ///< rangeTabLPS
-extern uint8_t ff_h264_mps_state[2*64]; ///< transIdxMPS
-extern uint8_t ff_h264_lps_state[2*64]; ///< transIdxLPS
-extern const uint8_t ff_h264_norm_shift[512];
-
-
-void ff_init_cabac_encoder(CABACContext *c, uint8_t *buf, int buf_size);
-void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size);
-void ff_init_cabac_states(CABACContext *c);
-
-
-static inline void put_cabac_bit(CABACContext *c, int b){
- put_bits(&c->pb, 1, b);
- for(;c->outstanding_count; c->outstanding_count--){
- put_bits(&c->pb, 1, 1-b);
- }
-}
-
-static inline void renorm_cabac_encoder(CABACContext *c){
- while(c->range < 0x100){
- //FIXME optimize
- if(c->low<0x100){
- put_cabac_bit(c, 0);
- }else if(c->low<0x200){
- c->outstanding_count++;
- c->low -= 0x100;
- }else{
- put_cabac_bit(c, 1);
- c->low -= 0x200;
- }
-
- c->range+= c->range;
- c->low += c->low;
- }
-}
-
-#ifdef TEST
-static void put_cabac(CABACContext *c, uint8_t * const state, int bit){
- int RangeLPS= ff_h264_lps_range[2*(c->range&0xC0) + *state];
-
- if(bit == ((*state)&1)){
- c->range -= RangeLPS;
- *state= ff_h264_mps_state[*state];
- }else{
- c->low += c->range - RangeLPS;
- c->range = RangeLPS;
- *state= ff_h264_lps_state[*state];
- }
-
- renorm_cabac_encoder(c);
-
-#ifdef STRICT_LIMITS
- c->symCount++;
-#endif
-}
-
-static void put_cabac_static(CABACContext *c, int RangeLPS, int bit){
- assert(c->range > RangeLPS);
-
- if(!bit){
- c->range -= RangeLPS;
- }else{
- c->low += c->range - RangeLPS;
- c->range = RangeLPS;
- }
-
- renorm_cabac_encoder(c);
-
-#ifdef STRICT_LIMITS
- c->symCount++;
-#endif
-}
-
-/**
- * @param bit 0 -> write zero bit, !=0 write one bit
- */
-static void put_cabac_bypass(CABACContext *c, int bit){
- c->low += c->low;
-
- if(bit){
- c->low += c->range;
- }
-//FIXME optimize
- if(c->low<0x200){
- put_cabac_bit(c, 0);
- }else if(c->low<0x400){
- c->outstanding_count++;
- c->low -= 0x200;
- }else{
- put_cabac_bit(c, 1);
- c->low -= 0x400;
- }
-
-#ifdef STRICT_LIMITS
- c->symCount++;
-#endif
-}
-
-/**
- *
- * @return the number of bytes written
- */
-static int put_cabac_terminate(CABACContext *c, int bit){
- c->range -= 2;
-
- if(!bit){
- renorm_cabac_encoder(c);
- }else{
- c->low += c->range;
- c->range= 2;
-
- renorm_cabac_encoder(c);
-
- assert(c->low <= 0x1FF);
- put_cabac_bit(c, c->low>>9);
- put_bits(&c->pb, 2, ((c->low>>7)&3)|1);
-
- flush_put_bits(&c->pb); //FIXME FIXME FIXME XXX wrong
- }
-
-#ifdef STRICT_LIMITS
- c->symCount++;
-#endif
-
- return (put_bits_count(&c->pb)+7)>>3;
-}
-
-/**
- * put (truncated) unary binarization.
- */
-static void put_cabac_u(CABACContext *c, uint8_t * state, int v, int max, int max_index, int truncated){
- int i;
-
- assert(v <= max);
-
-#if 1
- for(i=0; i<v; i++){
- put_cabac(c, state, 1);
- if(i < max_index) state++;
- }
- if(truncated==0 || v<max)
- put_cabac(c, state, 0);
-#else
- if(v <= max_index){
- for(i=0; i<v; i++){
- put_cabac(c, state+i, 1);
- }
- if(truncated==0 || v<max)
- put_cabac(c, state+i, 0);
- }else{
- for(i=0; i<=max_index; i++){
- put_cabac(c, state+i, 1);
- }
- for(; i<v; i++){
- put_cabac(c, state+max_index, 1);
- }
- if(truncated==0 || v<max)
- put_cabac(c, state+max_index, 0);
- }
-#endif
-}
-
-/**
- * put unary exp golomb k-th order binarization.
- */
-static void put_cabac_ueg(CABACContext *c, uint8_t * state, int v, int max, int is_signed, int k, int max_index){
- int i;
-
- if(v==0)
- put_cabac(c, state, 0);
- else{
- const int sign= v < 0;
-
- if(is_signed) v= FFABS(v);
-
- if(v<max){
- for(i=0; i<v; i++){
- put_cabac(c, state, 1);
- if(i < max_index) state++;
- }
-
- put_cabac(c, state, 0);
- }else{
- int m= 1<<k;
-
- for(i=0; i<max; i++){
- put_cabac(c, state, 1);
- if(i < max_index) state++;
- }
-
- v -= max;
- while(v >= m){ //FIXME optimize
- put_cabac_bypass(c, 1);
- v-= m;
- m+= m;
- }
- put_cabac_bypass(c, 0);
- while(m>>=1){
- put_cabac_bypass(c, v&m);
- }
- }
-
- if(is_signed)
- put_cabac_bypass(c, sign);
- }
-}
-#endif /* TEST */
-
-static void refill(CABACContext *c){
-#if CABAC_BITS == 16
- c->low+= (c->bytestream[0]<<9) + (c->bytestream[1]<<1);
-#else
- c->low+= c->bytestream[0]<<1;
-#endif
- c->low -= CABAC_MASK;
- c->bytestream+= CABAC_BITS/8;
-}
-
-#if ! ( ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE && !defined(BROKEN_RELOCATIONS) )
-static void refill2(CABACContext *c){
- int i, x;
-
- x= c->low ^ (c->low-1);
- i= 7 - ff_h264_norm_shift[x>>(CABAC_BITS-1)];
-
- x= -CABAC_MASK;
-
-#if CABAC_BITS == 16
- x+= (c->bytestream[0]<<9) + (c->bytestream[1]<<1);
-#else
- x+= c->bytestream[0]<<1;
-#endif
-
- c->low += x<<i;
- c->bytestream+= CABAC_BITS/8;
-}
-#endif
-
-static inline void renorm_cabac_decoder(CABACContext *c){
- while(c->range < 0x100){
- c->range+= c->range;
- c->low+= c->low;
- if(!(c->low & CABAC_MASK))
- refill(c);
- }
-}
-
-static inline void renorm_cabac_decoder_once(CABACContext *c){
-#ifdef ARCH_X86_DISABLED
- int temp;
-#if 0
- //P3:683 athlon:475
- __asm__(
- "lea -0x100(%0), %2 \n\t"
- "shr $31, %2 \n\t" //FIXME 31->63 for x86-64
- "shl %%cl, %0 \n\t"
- "shl %%cl, %1 \n\t"
- : "+r"(c->range), "+r"(c->low), "+c"(temp)
- );
-#elif 0
- //P3:680 athlon:474
- __asm__(
- "cmp $0x100, %0 \n\t"
- "setb %%cl \n\t" //FIXME 31->63 for x86-64
- "shl %%cl, %0 \n\t"
- "shl %%cl, %1 \n\t"
- : "+r"(c->range), "+r"(c->low), "+c"(temp)
- );
-#elif 1
- int temp2;
- //P3:665 athlon:517
- __asm__(
- "lea -0x100(%0), %%eax \n\t"
- "cltd \n\t"
- "mov %0, %%eax \n\t"
- "and %%edx, %0 \n\t"
- "and %1, %%edx \n\t"
- "add %%eax, %0 \n\t"
- "add %%edx, %1 \n\t"
- : "+r"(c->range), "+r"(c->low), "+a"(temp), "+d"(temp2)
- );
-#elif 0
- int temp2;
- //P3:673 athlon:509
- __asm__(
- "cmp $0x100, %0 \n\t"
- "sbb %%edx, %%edx \n\t"
- "mov %0, %%eax \n\t"
- "and %%edx, %0 \n\t"
- "and %1, %%edx \n\t"
- "add %%eax, %0 \n\t"
- "add %%edx, %1 \n\t"
- : "+r"(c->range), "+r"(c->low), "+a"(temp), "+d"(temp2)
- );
-#else
- int temp2;
- //P3:677 athlon:511
- __asm__(
- "cmp $0x100, %0 \n\t"
- "lea (%0, %0), %%eax \n\t"
- "lea (%1, %1), %%edx \n\t"
- "cmovb %%eax, %0 \n\t"
- "cmovb %%edx, %1 \n\t"
- : "+r"(c->range), "+r"(c->low), "+a"(temp), "+d"(temp2)
- );
-#endif
-#else
- //P3:675 athlon:476
- int shift= (uint32_t)(c->range - 0x100)>>31;
- c->range<<= shift;
- c->low <<= shift;
-#endif
- if(!(c->low & CABAC_MASK))
- refill(c);
-}
-
-static av_always_inline int get_cabac_inline(CABACContext *c, uint8_t * const state){
- //FIXME gcc generates duplicate load/stores for c->low and c->range
-#define LOW "0"
-#define RANGE "4"
-#if ARCH_X86_64
-#define BYTESTART "16"
-#define BYTE "24"
-#define BYTEEND "32"
-#else
-#define BYTESTART "12"
-#define BYTE "16"
-#define BYTEEND "20"
-#endif
-#if ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE && !defined(BROKEN_RELOCATIONS)
- int bit;
-
-#ifndef BRANCHLESS_CABAC_DECODER
- __asm__ volatile(
- "movzbl (%1), %0 \n\t"
- "movl "RANGE "(%2), %%ebx \n\t"
- "movl "RANGE "(%2), %%edx \n\t"
- "andl $0xC0, %%ebx \n\t"
- "movzbl "MANGLE(ff_h264_lps_range)"(%0, %%ebx, 2), %%esi\n\t"
- "movl "LOW "(%2), %%ebx \n\t"
-//eax:state ebx:low, edx:range, esi:RangeLPS
- "subl %%esi, %%edx \n\t"
- "movl %%edx, %%ecx \n\t"
- "shll $17, %%ecx \n\t"
- "cmpl %%ecx, %%ebx \n\t"
- " ja 1f \n\t"
-
-#if 1
- //athlon:4067 P3:4110
- "lea -0x100(%%edx), %%ecx \n\t"
- "shr $31, %%ecx \n\t"
- "shl %%cl, %%edx \n\t"
- "shl %%cl, %%ebx \n\t"
-#else
- //athlon:4057 P3:4130
- "cmp $0x100, %%edx \n\t" //FIXME avoidable
- "setb %%cl \n\t"
- "shl %%cl, %%edx \n\t"
- "shl %%cl, %%ebx \n\t"
-#endif
- "movzbl "MANGLE(ff_h264_mps_state)"(%0), %%ecx \n\t"
- "movb %%cl, (%1) \n\t"
-//eax:state ebx:low, edx:range, esi:RangeLPS
- "test %%bx, %%bx \n\t"
- " jnz 2f \n\t"
- "mov "BYTE "(%2), %%"REG_S" \n\t"
- "subl $0xFFFF, %%ebx \n\t"
- "movzwl (%%"REG_S"), %%ecx \n\t"
- "bswap %%ecx \n\t"
- "shrl $15, %%ecx \n\t"
- "add $2, %%"REG_S" \n\t"
- "addl %%ecx, %%ebx \n\t"
- "mov %%"REG_S", "BYTE "(%2) \n\t"
- "jmp 2f \n\t"
- "1: \n\t"
-//eax:state ebx:low, edx:range, esi:RangeLPS
- "subl %%ecx, %%ebx \n\t"
- "movl %%esi, %%edx \n\t"
- "movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t"
- "shll %%cl, %%ebx \n\t"
- "shll %%cl, %%edx \n\t"
- "movzbl "MANGLE(ff_h264_lps_state)"(%0), %%ecx \n\t"
- "movb %%cl, (%1) \n\t"
- "add $1, %0 \n\t"
- "test %%bx, %%bx \n\t"
- " jnz 2f \n\t"
-
- "mov "BYTE "(%2), %%"REG_c" \n\t"
- "movzwl (%%"REG_c"), %%esi \n\t"
- "bswap %%esi \n\t"
- "shrl $15, %%esi \n\t"
- "subl $0xFFFF, %%esi \n\t"
- "add $2, %%"REG_c" \n\t"
- "mov %%"REG_c", "BYTE "(%2) \n\t"
-
- "leal -1(%%ebx), %%ecx \n\t"
- "xorl %%ebx, %%ecx \n\t"
- "shrl $15, %%ecx \n\t"
- "movzbl " MANGLE(ff_h264_norm_shift) "(%%ecx), %%ecx \n\t"
- "neg %%ecx \n\t"
- "add $7, %%ecx \n\t"
-
- "shll %%cl , %%esi \n\t"
- "addl %%esi, %%ebx \n\t"
- "2: \n\t"
- "movl %%edx, "RANGE "(%2) \n\t"
- "movl %%ebx, "LOW "(%2) \n\t"
- :"=&a"(bit) //FIXME this is fragile gcc either runs out of registers or miscompiles it (for example if "+a"(bit) or "+m"(*state) is used
- :"r"(state), "r"(c)
- : "%"REG_c, "%ebx", "%edx", "%"REG_S, "memory"
- );
- bit&=1;
-#else /* BRANCHLESS_CABAC_DECODER */
-
-
-#if HAVE_FAST_CMOV
-#define BRANCHLESS_GET_CABAC_UPDATE(ret, cabac, statep, low, lowword, range, tmp, tmpbyte)\
- "mov "tmp" , %%ecx \n\t"\
- "shl $17 , "tmp" \n\t"\
- "cmp "low" , "tmp" \n\t"\
- "cmova %%ecx , "range" \n\t"\
- "sbb %%ecx , %%ecx \n\t"\
- "and %%ecx , "tmp" \n\t"\
- "sub "tmp" , "low" \n\t"\
- "xor %%ecx , "ret" \n\t"
-#else /* HAVE_FAST_CMOV */
-#define BRANCHLESS_GET_CABAC_UPDATE(ret, cabac, statep, low, lowword, range, tmp, tmpbyte)\
- "mov "tmp" , %%ecx \n\t"\
- "shl $17 , "tmp" \n\t"\
- "sub "low" , "tmp" \n\t"\
- "sar $31 , "tmp" \n\t" /*lps_mask*/\
- "sub %%ecx , "range" \n\t" /*RangeLPS - range*/\
- "and "tmp" , "range" \n\t" /*(RangeLPS - range)&lps_mask*/\
- "add %%ecx , "range" \n\t" /*new range*/\
- "shl $17 , %%ecx \n\t"\
- "and "tmp" , %%ecx \n\t"\
- "sub %%ecx , "low" \n\t"\
- "xor "tmp" , "ret" \n\t"
-#endif /* HAVE_FAST_CMOV */
-
-
-#define BRANCHLESS_GET_CABAC(ret, cabac, statep, low, lowword, range, tmp, tmpbyte)\
- "movzbl "statep" , "ret" \n\t"\
- "mov "range" , "tmp" \n\t"\
- "and $0xC0 , "range" \n\t"\
- "movzbl "MANGLE(ff_h264_lps_range)"("ret", "range", 2), "range" \n\t"\
- "sub "range" , "tmp" \n\t"\
- BRANCHLESS_GET_CABAC_UPDATE(ret, cabac, statep, low, lowword, range, tmp, tmpbyte)\
- "movzbl " MANGLE(ff_h264_norm_shift) "("range"), %%ecx \n\t"\
- "shl %%cl , "range" \n\t"\
- "movzbl "MANGLE(ff_h264_mlps_state)"+128("ret"), "tmp" \n\t"\
- "mov "tmpbyte" , "statep" \n\t"\
- "shl %%cl , "low" \n\t"\
- "test "lowword" , "lowword" \n\t"\
- " jnz 1f \n\t"\
- "mov "BYTE"("cabac"), %%"REG_c" \n\t"\
- "movzwl (%%"REG_c") , "tmp" \n\t"\
- "bswap "tmp" \n\t"\
- "shr $15 , "tmp" \n\t"\
- "sub $0xFFFF , "tmp" \n\t"\
- "add $2 , %%"REG_c" \n\t"\
- "mov %%"REG_c" , "BYTE "("cabac") \n\t"\
- "lea -1("low") , %%ecx \n\t"\
- "xor "low" , %%ecx \n\t"\
- "shr $15 , %%ecx \n\t"\
- "movzbl " MANGLE(ff_h264_norm_shift) "(%%ecx), %%ecx \n\t"\
- "neg %%ecx \n\t"\
- "add $7 , %%ecx \n\t"\
- "shl %%cl , "tmp" \n\t"\
- "add "tmp" , "low" \n\t"\
- "1: \n\t"
-
- __asm__ volatile(
- "movl "RANGE "(%2), %%esi \n\t"
- "movl "LOW "(%2), %%ebx \n\t"
- BRANCHLESS_GET_CABAC("%0", "%2", "(%1)", "%%ebx", "%%bx", "%%esi", "%%edx", "%%dl")
- "movl %%esi, "RANGE "(%2) \n\t"
- "movl %%ebx, "LOW "(%2) \n\t"
-
- :"=&a"(bit)
- :"r"(state), "r"(c)
- : "%"REG_c, "%ebx", "%edx", "%esi", "memory"
- );
- bit&=1;
-#endif /* BRANCHLESS_CABAC_DECODER */
-#else /* ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE && !defined(BROKEN_RELOCATIONS) */
- int s = *state;
- int RangeLPS= ff_h264_lps_range[2*(c->range&0xC0) + s];
- int bit, lps_mask av_unused;
-
- c->range -= RangeLPS;
-#ifndef BRANCHLESS_CABAC_DECODER
- if(c->low < (c->range<<(CABAC_BITS+1))){
- bit= s&1;
- *state= ff_h264_mps_state[s];
- renorm_cabac_decoder_once(c);
- }else{
- bit= ff_h264_norm_shift[RangeLPS];
- c->low -= (c->range<<(CABAC_BITS+1));
- *state= ff_h264_lps_state[s];
- c->range = RangeLPS<<bit;
- c->low <<= bit;
- bit= (s&1)^1;
-
- if(!(c->low & CABAC_MASK)){
- refill2(c);
- }
- }
-#else /* BRANCHLESS_CABAC_DECODER */
- lps_mask= ((c->range<<(CABAC_BITS+1)) - c->low)>>31;
-
- c->low -= (c->range<<(CABAC_BITS+1)) & lps_mask;
- c->range += (RangeLPS - c->range) & lps_mask;
-
- s^=lps_mask;
- *state= (ff_h264_mlps_state+128)[s];
- bit= s&1;
-
- lps_mask= ff_h264_norm_shift[c->range];
- c->range<<= lps_mask;
- c->low <<= lps_mask;
- if(!(c->low & CABAC_MASK))
- refill2(c);
-#endif /* BRANCHLESS_CABAC_DECODER */
-#endif /* ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE && !defined(BROKEN_RELOCATIONS) */
- return bit;
-}
-
-static int av_noinline av_unused get_cabac_noinline(CABACContext *c, uint8_t * const state){
- return get_cabac_inline(c,state);
-}
-
-static int av_unused get_cabac(CABACContext *c, uint8_t * const state){
- return get_cabac_inline(c,state);
-}
-
-static int av_unused get_cabac_bypass(CABACContext *c){
-#if 0 //not faster
- int bit;
- __asm__ volatile(
- "movl "RANGE "(%1), %%ebx \n\t"
- "movl "LOW "(%1), %%eax \n\t"
- "shl $17, %%ebx \n\t"
- "add %%eax, %%eax \n\t"
- "sub %%ebx, %%eax \n\t"
- "cltd \n\t"
- "and %%edx, %%ebx \n\t"
- "add %%ebx, %%eax \n\t"
- "test %%ax, %%ax \n\t"
- " jnz 1f \n\t"
- "movl "BYTE "(%1), %%"REG_b" \n\t"
- "subl $0xFFFF, %%eax \n\t"
- "movzwl (%%"REG_b"), %%ecx \n\t"
- "bswap %%ecx \n\t"
- "shrl $15, %%ecx \n\t"
- "addl $2, %%"REG_b" \n\t"
- "addl %%ecx, %%eax \n\t"
- "movl %%"REG_b", "BYTE "(%1) \n\t"
- "1: \n\t"
- "movl %%eax, "LOW "(%1) \n\t"
-
- :"=&d"(bit)
- :"r"(c)
- : "%eax", "%"REG_b, "%ecx", "memory"
- );
- return bit+1;
-#else
- int range;
- c->low += c->low;
-
- if(!(c->low & CABAC_MASK))
- refill(c);
-
- range= c->range<<(CABAC_BITS+1);
- if(c->low < range){
- return 0;
- }else{
- c->low -= range;
- return 1;
- }
-#endif
-}
-
-
-static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val){
-#if ARCH_X86 && HAVE_EBX_AVAILABLE
- __asm__ volatile(
- "movl "RANGE "(%1), %%ebx \n\t"
- "movl "LOW "(%1), %%eax \n\t"
- "shl $17, %%ebx \n\t"
- "add %%eax, %%eax \n\t"
- "sub %%ebx, %%eax \n\t"
- "cltd \n\t"
- "and %%edx, %%ebx \n\t"
- "add %%ebx, %%eax \n\t"
- "xor %%edx, %%ecx \n\t"
- "sub %%edx, %%ecx \n\t"
- "test %%ax, %%ax \n\t"
- " jnz 1f \n\t"
- "mov "BYTE "(%1), %%"REG_b" \n\t"
- "subl $0xFFFF, %%eax \n\t"
- "movzwl (%%"REG_b"), %%edx \n\t"
- "bswap %%edx \n\t"
- "shrl $15, %%edx \n\t"
- "add $2, %%"REG_b" \n\t"
- "addl %%edx, %%eax \n\t"
- "mov %%"REG_b", "BYTE "(%1) \n\t"
- "1: \n\t"
- "movl %%eax, "LOW "(%1) \n\t"
-
- :"+c"(val)
- :"r"(c)
- : "%eax", "%"REG_b, "%edx", "memory"
- );
- return val;
-#else
- int range, mask;
- c->low += c->low;
-
- if(!(c->low & CABAC_MASK))
- refill(c);
-
- range= c->range<<(CABAC_BITS+1);
- c->low -= range;
- mask= c->low >> 31;
- range &= mask;
- c->low += range;
- return (val^mask)-mask;
-#endif
-}
-
-/**
- *
- * @return the number of bytes read or 0 if no end
- */
-static int av_unused get_cabac_terminate(CABACContext *c){
- c->range -= 2;
- if(c->low < c->range<<(CABAC_BITS+1)){
- renorm_cabac_decoder_once(c);
- return 0;
- }else{
- return c->bytestream - c->bytestream_start;
- }
-}
-
-#if 0
-/**
- * Get (truncated) unary binarization.
- */
-static int get_cabac_u(CABACContext *c, uint8_t * state, int max, int max_index, int truncated){
- int i;
-
- for(i=0; i<max; i++){
- if(get_cabac(c, state)==0)
- return i;
-
- if(i< max_index) state++;
- }
-
- return truncated ? max : -1;
-}
-
-/**
- * get unary exp golomb k-th order binarization.
- */
-static int get_cabac_ueg(CABACContext *c, uint8_t * state, int max, int is_signed, int k, int max_index){
- int i, v;
- int m= 1<<k;
-
- if(get_cabac(c, state)==0)
- return 0;
-
- if(0 < max_index) state++;
-
- for(i=1; i<max; i++){
- if(get_cabac(c, state)==0){
- if(is_signed && get_cabac_bypass(c)){
- return -i;
- }else
- return i;
- }
-
- if(i < max_index) state++;
- }
-
- while(get_cabac_bypass(c)){
- i+= m;
- m+= m;
- }
-
- v=0;
- while(m>>=1){
- v+= v + get_cabac_bypass(c);
- }
- i += v;
-
- if(is_signed && get_cabac_bypass(c)){
- return -i;
- }else
- return i;
-}
-#endif /* 0 */
-
-#endif /* AVCODEC_CABAC_H */
+++ /dev/null
-/*
- * Chinese AVS video (AVS1-P2, JiZhun profile) decoder.
- * Copyright (c) 2006 Stefan Gehrer <stefan.gehrer@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_CAVS_H
-#define AVCODEC_CAVS_H
-
-#include "dsputil.h"
-#include "mpegvideo.h"
-
-#define SLICE_MAX_START_CODE 0x000001af
-#define EXT_START_CODE 0x000001b5
-#define USER_START_CODE 0x000001b2
-#define CAVS_START_CODE 0x000001b0
-#define PIC_I_START_CODE 0x000001b3
-#define PIC_PB_START_CODE 0x000001b6
-
-#define A_AVAIL 1
-#define B_AVAIL 2
-#define C_AVAIL 4
-#define D_AVAIL 8
-#define NOT_AVAIL -1
-#define REF_INTRA -2
-#define REF_DIR -3
-
-#define ESCAPE_CODE 59
-
-#define FWD0 0x01
-#define FWD1 0x02
-#define BWD0 0x04
-#define BWD1 0x08
-#define SYM0 0x10
-#define SYM1 0x20
-#define SPLITH 0x40
-#define SPLITV 0x80
-
-#define MV_BWD_OFFS 12
-#define MV_STRIDE 4
-
-enum cavs_mb {
- I_8X8 = 0,
- P_SKIP,
- P_16X16,
- P_16X8,
- P_8X16,
- P_8X8,
- B_SKIP,
- B_DIRECT,
- B_FWD_16X16,
- B_BWD_16X16,
- B_SYM_16X16,
- B_8X8 = 29
-};
-
-enum cavs_sub_mb {
- B_SUB_DIRECT,
- B_SUB_FWD,
- B_SUB_BWD,
- B_SUB_SYM
-};
-
-enum cavs_intra_luma {
- INTRA_L_VERT,
- INTRA_L_HORIZ,
- INTRA_L_LP,
- INTRA_L_DOWN_LEFT,
- INTRA_L_DOWN_RIGHT,
- INTRA_L_LP_LEFT,
- INTRA_L_LP_TOP,
- INTRA_L_DC_128
-};
-
-enum cavs_intra_chroma {
- INTRA_C_LP,
- INTRA_C_HORIZ,
- INTRA_C_VERT,
- INTRA_C_PLANE,
- INTRA_C_LP_LEFT,
- INTRA_C_LP_TOP,
- INTRA_C_DC_128,
-};
-
-enum cavs_mv_pred {
- MV_PRED_MEDIAN,
- MV_PRED_LEFT,
- MV_PRED_TOP,
- MV_PRED_TOPRIGHT,
- MV_PRED_PSKIP,
- MV_PRED_BSKIP
-};
-
-enum cavs_block {
- BLK_16X16,
- BLK_16X8,
- BLK_8X16,
- BLK_8X8
-};
-
-enum cavs_mv_loc {
- MV_FWD_D3 = 0,
- MV_FWD_B2,
- MV_FWD_B3,
- MV_FWD_C2,
- MV_FWD_A1,
- MV_FWD_X0,
- MV_FWD_X1,
- MV_FWD_A3 = 8,
- MV_FWD_X2,
- MV_FWD_X3,
- MV_BWD_D3 = MV_BWD_OFFS,
- MV_BWD_B2,
- MV_BWD_B3,
- MV_BWD_C2,
- MV_BWD_A1,
- MV_BWD_X0,
- MV_BWD_X1,
- MV_BWD_A3 = MV_BWD_OFFS+8,
- MV_BWD_X2,
- MV_BWD_X3
-};
-
-DECLARE_ALIGNED(8, typedef, struct) {
- int16_t x;
- int16_t y;
- int16_t dist;
- int16_t ref;
-} cavs_vector;
-
-struct dec_2dvlc {
- int8_t rltab[59][3];
- int8_t level_add[27];
- int8_t golomb_order;
- int inc_limit;
- int8_t max_run;
-};
-
-typedef struct {
- MpegEncContext s;
- Picture picture; ///< currently decoded frame
- Picture DPB[2]; ///< reference frames
- int dist[2]; ///< temporal distances from current frame to ref frames
- int profile, level;
- int aspect_ratio;
- int mb_width, mb_height;
- int pic_type;
- int stream_revision; ///<0 for samples from 2006, 1 for rm52j encoder
- int progressive;
- int pic_structure;
- int skip_mode_flag; ///< select between skip_count or one skip_flag per MB
- int loop_filter_disable;
- int alpha_offset, beta_offset;
- int ref_flag;
- int mbx, mby, mbidx; ///< macroblock coordinates
- int flags; ///< availability flags of neighbouring macroblocks
- int stc; ///< last start code
- uint8_t *cy, *cu, *cv; ///< current MB sample pointers
- int left_qp;
- uint8_t *top_qp;
-
- /** mv motion vector cache
- 0: D3 B2 B3 C2
- 4: A1 X0 X1 -
- 8: A3 X2 X3 -
-
- X are the vectors in the current macroblock (5,6,9,10)
- A is the macroblock to the left (4,8)
- B is the macroblock to the top (1,2)
- C is the macroblock to the top-right (3)
- D is the macroblock to the top-left (0)
-
- the same is repeated for backward motion vectors */
- cavs_vector mv[2*4*3];
- cavs_vector *top_mv[2];
- cavs_vector *col_mv;
-
- /** luma pred mode cache
- 0: -- B2 B3
- 3: A1 X0 X1
- 6: A3 X2 X3 */
- int pred_mode_Y[3*3];
- int *top_pred_Y;
- int l_stride, c_stride;
- int luma_scan[4];
- int qp;
- int qp_fixed;
- int cbp;
- ScanTable scantable;
-
- /** intra prediction is done with un-deblocked samples
- they are saved here before deblocking the MB */
- uint8_t *top_border_y, *top_border_u, *top_border_v;
- uint8_t left_border_y[26], left_border_u[10], left_border_v[10];
- uint8_t intern_border_y[26];
- uint8_t topleft_border_y, topleft_border_u, topleft_border_v;
-
- void (*intra_pred_l[8])(uint8_t *d,uint8_t *top,uint8_t *left,int stride);
- void (*intra_pred_c[7])(uint8_t *d,uint8_t *top,uint8_t *left,int stride);
- uint8_t *col_type_base;
-
- /* scaling factors for MV prediction */
- int sym_factor; ///< for scaling in symmetrical B block
- int direct_den[2]; ///< for scaling in direct B block
- int scale_den[2]; ///< for scaling neighbouring MVs
-
- int got_keyframe;
- DCTELEM *block;
-} AVSContext;
-
-extern const uint8_t ff_cavs_dequant_shift[64];
-extern const uint16_t ff_cavs_dequant_mul[64];
-extern const struct dec_2dvlc ff_cavs_intra_dec[7];
-extern const struct dec_2dvlc ff_cavs_inter_dec[7];
-extern const struct dec_2dvlc ff_cavs_chroma_dec[5];
-extern const uint8_t ff_cavs_chroma_qp[64];
-extern const uint8_t ff_cavs_scan3x3[4];
-extern const uint8_t ff_cavs_partition_flags[30];
-extern const int_fast8_t ff_left_modifier_l[8];
-extern const int_fast8_t ff_top_modifier_l[8];
-extern const int_fast8_t ff_left_modifier_c[7];
-extern const int_fast8_t ff_top_modifier_c[7];
-extern const cavs_vector ff_cavs_intra_mv;
-extern const cavs_vector ff_cavs_un_mv;
-extern const cavs_vector ff_cavs_dir_mv;
-
-static inline void modify_pred(const int_fast8_t *mod_table, int *mode) {
- *mode = mod_table[*mode];
- if(*mode < 0) {
- av_log(NULL, AV_LOG_ERROR, "Illegal intra prediction mode\n");
- *mode = 0;
- }
-}
-
-static inline void set_intra_mode_default(AVSContext *h) {
- if(h->stream_revision > 0) {
- h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL;
- h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
- } else {
- h->pred_mode_Y[3] = h->pred_mode_Y[6] = INTRA_L_LP;
- h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
- }
-}
-
-static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
- switch(size) {
- case BLK_16X16:
- mv[MV_STRIDE ] = mv[0];
- mv[MV_STRIDE+1] = mv[0];
- case BLK_16X8:
- mv[1] = mv[0];
- break;
- case BLK_8X16:
- mv[MV_STRIDE] = mv[0];
- break;
- }
-}
-
-static inline void set_mv_intra(AVSContext *h) {
- h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
- set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
- h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
- set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
- if(h->pic_type != FF_B_TYPE)
- h->col_type_base[h->mbidx] = I_8X8;
-}
-
-static inline int dequant(AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf,
- DCTELEM *dst, int mul, int shift, int coeff_num) {
- int round = 1 << (shift - 1);
- int pos = -1;
- const uint8_t *scantab = h->scantable.permutated;
-
- /* inverse scan and dequantization */
- while(--coeff_num >= 0){
- pos += run_buf[coeff_num];
- if(pos > 63) {
- av_log(h->s.avctx, AV_LOG_ERROR,
- "position out of block bounds at pic %d MB(%d,%d)\n",
- h->picture.poc, h->mbx, h->mby);
- return -1;
- }
- dst[scantab[pos]] = (level_buf[coeff_num]*mul + round) >> shift;
- }
- return 0;
-}
-
-void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type);
-void ff_cavs_load_intra_pred_luma(AVSContext *h, uint8_t *top, uint8_t **left,
- int block);
-void ff_cavs_load_intra_pred_chroma(AVSContext *h);
-void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv);
-void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type);
-void ff_cavs_mv(AVSContext *h, enum cavs_mv_loc nP, enum cavs_mv_loc nC,
- enum cavs_mv_pred mode, enum cavs_block size, int ref);
-void ff_cavs_init_mb(AVSContext *h);
-int ff_cavs_next_mb(AVSContext *h);
-void ff_cavs_init_pic(AVSContext *h);
-void ff_cavs_init_top_lines(AVSContext *h);
-int ff_cavs_init(AVCodecContext *avctx);
-int ff_cavs_end (AVCodecContext *avctx);
-
-#endif /* AVCODEC_CAVS_H */
+++ /dev/null
-/*
- * Chinese AVS video (AVS1-P2, JiZhun profile) decoder.
- * Copyright (c) 2006 Stefan Gehrer <stefan.gehrer@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_CAVSDATA_H
-#define AVCODEC_CAVSDATA_H
-
-#include "cavs.h"
-
-const uint8_t ff_cavs_partition_flags[30] = {
- 0, //I_8X8
- 0, //P_SKIP
- 0, //P_16X16
- SPLITH, //P_16X8
- SPLITV, //P_8X16
- SPLITH|SPLITV, //P_8X8
- SPLITH|SPLITV, //B_SKIP
- SPLITH|SPLITV, //B_DIRECT
- 0, //B_FWD_16X16
- 0, //B_BWD_16X16
- 0, //B_SYM_16X16
- FWD0|FWD1 |SPLITH,
- FWD0|FWD1 |SPLITV,
- BWD0|BWD1 |SPLITH,
- BWD0|BWD1 |SPLITV,
- FWD0|BWD1 |SPLITH,
- FWD0|BWD1 |SPLITV,
- BWD0|FWD1 |SPLITH,
- BWD0|FWD1 |SPLITV,
- FWD0|FWD1 |SYM1|SPLITH,
- FWD0|FWD1 |SYM1 |SPLITV,
- BWD0|FWD1 |SYM1|SPLITH,
- BWD0|FWD1 |SYM1 |SPLITV,
- FWD0|FWD1|SYM0 |SPLITH,
- FWD0|FWD1|SYM0 |SPLITV,
- FWD0|BWD1|SYM0 |SPLITH,
- FWD0|BWD1|SYM0 |SPLITV,
- FWD0|FWD1|SYM0|SYM1|SPLITH,
- FWD0|FWD1|SYM0|SYM1 |SPLITV,
- SPLITH|SPLITV, //B_8X8 = 29
-};
-
-const uint8_t ff_cavs_scan3x3[4] = {4,5,7,8};
-
-const uint8_t ff_cavs_chroma_qp[64] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
- 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
- 32,33,34,35,36,37,38,39,40,41,42,42,43,43,44,44,
- 45,45,46,46,47,47,48,48,48,49,49,49,50,50,50,51
-};
-
-const uint8_t ff_cavs_dequant_shift[64] = {
- 14,14,14,14,14,14,14,14,
- 13,13,13,13,13,13,13,13,
- 13,12,12,12,12,12,12,12,
- 11,11,11,11,11,11,11,11,
- 11,10,10,10,10,10,10,10,
- 10, 9, 9, 9, 9, 9, 9, 9,
- 9, 8, 8, 8, 8, 8, 8, 8,
- 7, 7, 7, 7, 7, 7, 7, 7
-};
-
-const uint16_t ff_cavs_dequant_mul[64] = {
- 32768,36061,38968,42495,46341,50535,55437,60424,
- 32932,35734,38968,42495,46177,50535,55109,59933,
- 65535,35734,38968,42577,46341,50617,55027,60097,
- 32809,35734,38968,42454,46382,50576,55109,60056,
- 65535,35734,38968,42495,46320,50515,55109,60076,
- 65535,35744,38968,42495,46341,50535,55099,60087,
- 65535,35734,38973,42500,46341,50535,55109,60097,
- 32771,35734,38965,42497,46341,50535,55109,60099
-};
-
-/** marks block as unavailable, i.e. out of picture
- or not yet decoded */
-const cavs_vector ff_cavs_un_mv = {0,0,1,NOT_AVAIL};
-
-/** marks block as "no prediction from this direction"
- e.g. forward motion vector in BWD partition */
-const cavs_vector ff_cavs_dir_mv = {0,0,1,REF_DIR};
-
-/** marks block as using intra prediction */
-const cavs_vector ff_cavs_intra_mv = {0,0,1,REF_INTRA};
-
-#define EOB 0,0,0
-
-const struct dec_2dvlc ff_cavs_intra_dec[7] = {
- {
- { //level / run / table_inc
- { 1, 1, 1},{ -1, 1, 1},{ 1, 2, 1},{ -1, 2, 1},{ 1, 3, 1},{ -1, 3, 1},
- { 1, 4, 1},{ -1, 4, 1},{ 1, 5, 1},{ -1, 5, 1},{ 1, 6, 1},{ -1, 6, 1},
- { 1, 7, 1},{ -1, 7, 1},{ 1, 8, 1},{ -1, 8, 1},{ 1, 9, 1},{ -1, 9, 1},
- { 1,10, 1},{ -1,10, 1},{ 1,11, 1},{ -1,11, 1},{ 2, 1, 2},{ -2, 1, 2},
- { 1,12, 1},{ -1,12, 1},{ 1,13, 1},{ -1,13, 1},{ 1,14, 1},{ -1,14, 1},
- { 1,15, 1},{ -1,15, 1},{ 2, 2, 2},{ -2, 2, 2},{ 1,16, 1},{ -1,16, 1},
- { 1,17, 1},{ -1,17, 1},{ 3, 1, 3},{ -3, 1, 3},{ 1,18, 1},{ -1,18, 1},
- { 1,19, 1},{ -1,19, 1},{ 2, 3, 2},{ -2, 3, 2},{ 1,20, 1},{ -1,20, 1},
- { 1,21, 1},{ -1,21, 1},{ 2, 4, 2},{ -2, 4, 2},{ 1,22, 1},{ -1,22, 1},
- { 2, 5, 2},{ -2, 5, 2},{ 1,23, 1},{ -1,23, 1},{ EOB }
- },
- //level_add
- { 0, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2,-1,-1,-1},
- 2, //golomb_order
- 0, //inc_limit
- 23, //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 2, 1, 1},{ -2, 1, 1},
- { 1, 3, 0},{ -1, 3, 0},{ EOB },{ 1, 4, 0},{ -1, 4, 0},{ 1, 5, 0},
- { -1, 5, 0},{ 1, 6, 0},{ -1, 6, 0},{ 3, 1, 2},{ -3, 1, 2},{ 2, 2, 1},
- { -2, 2, 1},{ 1, 7, 0},{ -1, 7, 0},{ 1, 8, 0},{ -1, 8, 0},{ 1, 9, 0},
- { -1, 9, 0},{ 2, 3, 1},{ -2, 3, 1},{ 4, 1, 2},{ -4, 1, 2},{ 1,10, 0},
- { -1,10, 0},{ 1,11, 0},{ -1,11, 0},{ 2, 4, 1},{ -2, 4, 1},{ 3, 2, 2},
- { -3, 2, 2},{ 1,12, 0},{ -1,12, 0},{ 2, 5, 1},{ -2, 5, 1},{ 5, 1, 3},
- { -5, 1, 3},{ 1,13, 0},{ -1,13, 0},{ 2, 6, 1},{ -2, 6, 1},{ 1,14, 0},
- { -1,14, 0},{ 2, 7, 1},{ -2, 7, 1},{ 2, 8, 1},{ -2, 8, 1},{ 3, 3, 2},
- { -3, 3, 2},{ 6, 1, 3},{ -6, 1, 3},{ 1,15, 0},{ -1,15, 0}
- },
- //level_add
- { 0, 7, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 1, //inc_limit
- 15, //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 1, 2, 0},{ -1, 2, 0},
- { 3, 1, 1},{ -3, 1, 1},{ EOB },{ 1, 3, 0},{ -1, 3, 0},{ 2, 2, 0},
- { -2, 2, 0},{ 4, 1, 1},{ -4, 1, 1},{ 1, 4, 0},{ -1, 4, 0},{ 5, 1, 2},
- { -5, 1, 2},{ 1, 5, 0},{ -1, 5, 0},{ 3, 2, 1},{ -3, 2, 1},{ 2, 3, 0},
- { -2, 3, 0},{ 1, 6, 0},{ -1, 6, 0},{ 6, 1, 2},{ -6, 1, 2},{ 2, 4, 0},
- { -2, 4, 0},{ 1, 7, 0},{ -1, 7, 0},{ 4, 2, 1},{ -4, 2, 1},{ 7, 1, 2},
- { -7, 1, 2},{ 3, 3, 1},{ -3, 3, 1},{ 2, 5, 0},{ -2, 5, 0},{ 1, 8, 0},
- { -1, 8, 0},{ 2, 6, 0},{ -2, 6, 0},{ 8, 1, 3},{ -8, 1, 3},{ 1, 9, 0},
- { -1, 9, 0},{ 5, 2, 2},{ -5, 2, 2},{ 3, 4, 1},{ -3, 4, 1},{ 2, 7, 0},
- { -2, 7, 0},{ 9, 1, 3},{ -9, 1, 3},{ 1,10, 0},{ -1,10, 0}
- },
- //level_add
- { 0,10, 6, 4, 4, 3, 3, 3, 2, 2, 2,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 2, //inc_limit
- 10, //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},{ -3, 1, 0},
- { 1, 2, 0},{ -1, 2, 0},{ EOB },{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 1},
- { -5, 1, 1},{ 2, 2, 0},{ -2, 2, 0},{ 1, 3, 0},{ -1, 3, 0},{ 6, 1, 1},
- { -6, 1, 1},{ 3, 2, 0},{ -3, 2, 0},{ 7, 1, 1},{ -7, 1, 1},{ 1, 4, 0},
- { -1, 4, 0},{ 8, 1, 2},{ -8, 1, 2},{ 2, 3, 0},{ -2, 3, 0},{ 4, 2, 0},
- { -4, 2, 0},{ 1, 5, 0},{ -1, 5, 0},{ 9, 1, 2},{ -9, 1, 2},{ 5, 2, 1},
- { -5, 2, 1},{ 2, 4, 0},{ -2, 4, 0},{ 10, 1, 2},{-10, 1, 2},{ 3, 3, 0},
- { -3, 3, 0},{ 1, 6, 0},{ -1, 6, 0},{ 11, 1, 3},{-11, 1, 3},{ 6, 2, 1},
- { -6, 2, 1},{ 1, 7, 0},{ -1, 7, 0},{ 2, 5, 0},{ -2, 5, 0},{ 3, 4, 0},
- { -3, 4, 0},{ 12, 1, 3},{-12, 1, 3},{ 4, 3, 0},{ -4, 3, 0}
- },
- //level_add
- { 0,13, 7, 5, 4, 3, 2, 2,-1,-1,-1 -1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 4, //inc_limit
- 7, //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},{ -3, 1, 0},
- { EOB },{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 7, 1, 0},{ -7, 1, 0},{ 8, 1, 1},
- { -8, 1, 1},{ 2, 2, 0},{ -2, 2, 0},{ 9, 1, 1},{ -9, 1, 1},{ 10, 1, 1},
- {-10, 1, 1},{ 1, 3, 0},{ -1, 3, 0},{ 3, 2, 0},{ -3, 2, 0},{ 11, 1, 2},
- {-11, 1, 2},{ 4, 2, 0},{ -4, 2, 0},{ 12, 1, 2},{-12, 1, 2},{ 13, 1, 2},
- {-13, 1, 2},{ 5, 2, 0},{ -5, 2, 0},{ 1, 4, 0},{ -1, 4, 0},{ 2, 3, 0},
- { -2, 3, 0},{ 14, 1, 2},{-14, 1, 2},{ 6, 2, 0},{ -6, 2, 0},{ 15, 1, 2},
- {-15, 1, 2},{ 16, 1, 2},{-16, 1, 2},{ 3, 3, 0},{ -3, 3, 0},{ 1, 5, 0},
- { -1, 5, 0},{ 7, 2, 0},{ -7, 2, 0},{ 17, 1, 2},{-17, 1, 2}
- },
- //level_add
- { 0,18, 8, 4, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 7, //inc_limit
- 5, //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 7, 1, 0},{ -7, 1, 0},{ 8, 1, 0},{ -8, 1, 0},{ 9, 1, 0},
- { -9, 1, 0},{ 10, 1, 0},{-10, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 11, 1, 1},
- {-11, 1, 1},{ 12, 1, 1},{-12, 1, 1},{ 13, 1, 1},{-13, 1, 1},{ 2, 2, 0},
- { -2, 2, 0},{ 14, 1, 1},{-14, 1, 1},{ 15, 1, 1},{-15, 1, 1},{ 3, 2, 0},
- { -3, 2, 0},{ 16, 1, 1},{-16, 1, 1},{ 1, 3, 0},{ -1, 3, 0},{ 17, 1, 1},
- {-17, 1, 1},{ 4, 2, 0},{ -4, 2, 0},{ 18, 1, 1},{-18, 1, 1},{ 5, 2, 0},
- { -5, 2, 0},{ 19, 1, 1},{-19, 1, 1},{ 20, 1, 1},{-20, 1, 1},{ 6, 2, 0},
- { -6, 2, 0},{ 21, 1, 1},{-21, 1, 1},{ 2, 3, 0},{ -2, 3, 0}
- },
- //level_add
- { 0,22, 7, 3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 10, //inc_limit
- 3, //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 7, 1, 0},{ -7, 1, 0},{ 8, 1, 0},{ -8, 1, 0},{ 9, 1, 0},
- { -9, 1, 0},{ 10, 1, 0},{-10, 1, 0},{ 11, 1, 0},{-11, 1, 0},{ 12, 1, 0},
- {-12, 1, 0},{ 13, 1, 0},{-13, 1, 0},{ 14, 1, 0},{-14, 1, 0},{ 15, 1, 0},
- {-15, 1, 0},{ 16, 1, 0},{-16, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 17, 1, 0},
- {-17, 1, 0},{ 18, 1, 0},{-18, 1, 0},{ 19, 1, 0},{-19, 1, 0},{ 20, 1, 0},
- {-20, 1, 0},{ 21, 1, 0},{-21, 1, 0},{ 2, 2, 0},{ -2, 2, 0},{ 22, 1, 0},
- {-22, 1, 0},{ 23, 1, 0},{-23, 1, 0},{ 24, 1, 0},{-24, 1, 0},{ 25, 1, 0},
- {-25, 1, 0},{ 3, 2, 0},{ -3, 2, 0},{ 26, 1, 0},{-26, 1, 0}
- },
- //level_add
- { 0,27, 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- INT_MAX, //inc_limit
- 2, //max_run
- }
-};
-
-const struct dec_2dvlc ff_cavs_inter_dec[7] = {
- {
- { //level / run
- { 1, 1, 1},{ -1, 1, 1},{ 1, 2, 1},{ -1, 2, 1},{ 1, 3, 1},{ -1, 3, 1},
- { 1, 4, 1},{ -1, 4, 1},{ 1, 5, 1},{ -1, 5, 1},{ 1, 6, 1},{ -1, 6, 1},
- { 1, 7, 1},{ -1, 7, 1},{ 1, 8, 1},{ -1, 8, 1},{ 1, 9, 1},{ -1, 9, 1},
- { 1,10, 1},{ -1,10, 1},{ 1,11, 1},{ -1,11, 1},{ 1,12, 1},{ -1,12, 1},
- { 1,13, 1},{ -1,13, 1},{ 2, 1, 2},{ -2, 1, 2},{ 1,14, 1},{ -1,14, 1},
- { 1,15, 1},{ -1,15, 1},{ 1,16, 1},{ -1,16, 1},{ 1,17, 1},{ -1,17, 1},
- { 1,18, 1},{ -1,18, 1},{ 1,19, 1},{ -1,19, 1},{ 3, 1, 3},{ -3, 1, 3},
- { 1,20, 1},{ -1,20, 1},{ 1,21, 1},{ -1,21, 1},{ 2, 2, 2},{ -2, 2, 2},
- { 1,22, 1},{ -1,22, 1},{ 1,23, 1},{ -1,23, 1},{ 1,24, 1},{ -1,24, 1},
- { 1,25, 1},{ -1,25, 1},{ 1,26, 1},{ -1,26, 1},{ EOB }
- },
- //level_add
- { 0, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
- 3, //golomb_order
- 0, //inc_limit
- 26 //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ EOB },{ 1, 2, 0},{ -1, 2, 0},{ 1, 3, 0},
- { -1, 3, 0},{ 1, 4, 0},{ -1, 4, 0},{ 1, 5, 0},{ -1, 5, 0},{ 1, 6, 0},
- { -1, 6, 0},{ 2, 1, 1},{ -2, 1, 1},{ 1, 7, 0},{ -1, 7, 0},{ 1, 8, 0},
- { -1, 8, 0},{ 1, 9, 0},{ -1, 9, 0},{ 1,10, 0},{ -1,10, 0},{ 2, 2, 1},
- { -2, 2, 1},{ 1,11, 0},{ -1,11, 0},{ 1,12, 0},{ -1,12, 0},{ 3, 1, 2},
- { -3, 1, 2},{ 1,13, 0},{ -1,13, 0},{ 1,14, 0},{ -1,14, 0},{ 2, 3, 1},
- { -2, 3, 1},{ 1,15, 0},{ -1,15, 0},{ 2, 4, 1},{ -2, 4, 1},{ 1,16, 0},
- { -1,16, 0},{ 2, 5, 1},{ -2, 5, 1},{ 1,17, 0},{ -1,17, 0},{ 4, 1, 3},
- { -4, 1, 3},{ 2, 6, 1},{ -2, 6, 1},{ 1,18, 0},{ -1,18, 0},{ 1,19, 0},
- { -1,19, 0},{ 2, 7, 1},{ -2, 7, 1},{ 3, 2, 2},{ -3, 2, 2}
- },
- //level_add
- { 0, 5, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 1, //inc_limit
- 19 //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ EOB },{ 1, 2, 0},{ -1, 2, 0},{ 2, 1, 0},
- { -2, 1, 0},{ 1, 3, 0},{ -1, 3, 0},{ 1, 4, 0},{ -1, 4, 0},{ 3, 1, 1},
- { -3, 1, 1},{ 2, 2, 0},{ -2, 2, 0},{ 1, 5, 0},{ -1, 5, 0},{ 1, 6, 0},
- { -1, 6, 0},{ 1, 7, 0},{ -1, 7, 0},{ 2, 3, 0},{ -2, 3, 0},{ 4, 1, 2},
- { -4, 1, 2},{ 1, 8, 0},{ -1, 8, 0},{ 3, 2, 1},{ -3, 2, 1},{ 2, 4, 0},
- { -2, 4, 0},{ 1, 9, 0},{ -1, 9, 0},{ 1,10, 0},{ -1,10, 0},{ 5, 1, 2},
- { -5, 1, 2},{ 2, 5, 0},{ -2, 5, 0},{ 1,11, 0},{ -1,11, 0},{ 2, 6, 0},
- { -2, 6, 0},{ 1,12, 0},{ -1,12, 0},{ 3, 3, 1},{ -3, 3, 1},{ 6, 1, 2},
- { -6, 1, 2},{ 4, 2, 2},{ -4, 2, 2},{ 1,13, 0},{ -1,13, 0},{ 2, 7, 0},
- { -2, 7, 0},{ 3, 4, 1},{ -3, 4, 1},{ 1,14, 0},{ -1,14, 0}
- },
- //level_add
- { 0, 7, 5, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 2, //inc_limit
- 14 //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ EOB },{ 2, 1, 0},{ -2, 1, 0},{ 1, 2, 0},
- { -1, 2, 0},{ 3, 1, 0},{ -3, 1, 0},{ 1, 3, 0},{ -1, 3, 0},{ 2, 2, 0},
- { -2, 2, 0},{ 4, 1, 1},{ -4, 1, 1},{ 1, 4, 0},{ -1, 4, 0},{ 5, 1, 1},
- { -5, 1, 1},{ 1, 5, 0},{ -1, 5, 0},{ 3, 2, 0},{ -3, 2, 0},{ 2, 3, 0},
- { -2, 3, 0},{ 1, 6, 0},{ -1, 6, 0},{ 6, 1, 1},{ -6, 1, 1},{ 2, 4, 0},
- { -2, 4, 0},{ 1, 7, 0},{ -1, 7, 0},{ 4, 2, 1},{ -4, 2, 1},{ 7, 1, 2},
- { -7, 1, 2},{ 3, 3, 0},{ -3, 3, 0},{ 1, 8, 0},{ -1, 8, 0},{ 2, 5, 0},
- { -2, 5, 0},{ 8, 1, 2},{ -8, 1, 2},{ 1, 9, 0},{ -1, 9, 0},{ 3, 4, 0},
- { -3, 4, 0},{ 2, 6, 0},{ -2, 6, 0},{ 5, 2, 1},{ -5, 2, 1},{ 1,10, 0},
- { -1,10, 0},{ 9, 1, 2},{ -9, 1, 2},{ 4, 3, 1},{ -4, 3, 1}
- },
- //level_add
- { 0,10, 6, 5, 4, 3, 3, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 3, //inc_limit
- 10 //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ EOB },{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},
- { -5, 1, 0},{ 2, 2, 0},{ -2, 2, 0},{ 1, 3, 0},{ -1, 3, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 3, 2, 0},{ -3, 2, 0},{ 7, 1, 1},{ -7, 1, 1},{ 1, 4, 0},
- { -1, 4, 0},{ 8, 1, 1},{ -8, 1, 1},{ 2, 3, 0},{ -2, 3, 0},{ 4, 2, 0},
- { -4, 2, 0},{ 1, 5, 0},{ -1, 5, 0},{ 9, 1, 1},{ -9, 1, 1},{ 5, 2, 0},
- { -5, 2, 0},{ 2, 4, 0},{ -2, 4, 0},{ 1, 6, 0},{ -1, 6, 0},{ 10, 1, 2},
- {-10, 1, 2},{ 3, 3, 0},{ -3, 3, 0},{ 11, 1, 2},{-11, 1, 2},{ 1, 7, 0},
- { -1, 7, 0},{ 6, 2, 0},{ -6, 2, 0},{ 3, 4, 0},{ -3, 4, 0},{ 2, 5, 0},
- { -2, 5, 0},{ 12, 1, 2},{-12, 1, 2},{ 4, 3, 0},{ -4, 3, 0}
- },
- //level_add
- { 0,13, 7, 5, 4, 3, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 6, //inc_limit
- 7 //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 1, 2, 0},
- { -1, 2, 0},{ 6, 1, 0},{ -6, 1, 0},{ 7, 1, 0},{ -7, 1, 0},{ 8, 1, 0},
- { -8, 1, 0},{ 2, 2, 0},{ -2, 2, 0},{ 9, 1, 0},{ -9, 1, 0},{ 1, 3, 0},
- { -1, 3, 0},{ 10, 1, 1},{-10, 1, 1},{ 3, 2, 0},{ -3, 2, 0},{ 11, 1, 1},
- {-11, 1, 1},{ 4, 2, 0},{ -4, 2, 0},{ 12, 1, 1},{-12, 1, 1},{ 1, 4, 0},
- { -1, 4, 0},{ 2, 3, 0},{ -2, 3, 0},{ 13, 1, 1},{-13, 1, 1},{ 5, 2, 0},
- { -5, 2, 0},{ 14, 1, 1},{-14, 1, 1},{ 6, 2, 0},{ -6, 2, 0},{ 1, 5, 0},
- { -1, 5, 0},{ 15, 1, 1},{-15, 1, 1},{ 3, 3, 0},{ -3, 3, 0},{ 16, 1, 1},
- {-16, 1, 1},{ 2, 4, 0},{ -2, 4, 0},{ 7, 2, 0},{ -7, 2, 0}
- },
- //level_add
- { 0,17, 8, 4, 3, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- 9, //inc_limit
- 5 //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 7, 1, 0},{ -7, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 8, 1, 0},
- { -8, 1, 0},{ 9, 1, 0},{ -9, 1, 0},{ 10, 1, 0},{-10, 1, 0},{ 11, 1, 0},
- {-11, 1, 0},{ 12, 1, 0},{-12, 1, 0},{ 2, 2, 0},{ -2, 2, 0},{ 13, 1, 0},
- {-13, 1, 0},{ 1, 3, 0},{ -1, 3, 0},{ 14, 1, 0},{-14, 1, 0},{ 15, 1, 0},
- {-15, 1, 0},{ 3, 2, 0},{ -3, 2, 0},{ 16, 1, 0},{-16, 1, 0},{ 17, 1, 0},
- {-17, 1, 0},{ 18, 1, 0},{-18, 1, 0},{ 4, 2, 0},{ -4, 2, 0},{ 19, 1, 0},
- {-19, 1, 0},{ 20, 1, 0},{-20, 1, 0},{ 2, 3, 0},{ -2, 3, 0},{ 1, 4, 0},
- { -1, 4, 0},{ 5, 2, 0},{ -5, 2, 0},{ 21, 1, 0},{-21, 1, 0}
- },
- //level_add
- { 0,22, 6, 3, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 2, //golomb_order
- INT_MAX, //inc_limit
- 4 //max_run
- }
-};
-
-const struct dec_2dvlc ff_cavs_chroma_dec[5] = {
- {
- { //level / run
- { 1, 1, 1},{ -1, 1, 1},{ 1, 2, 1},{ -1, 2, 1},{ 1, 3, 1},{ -1, 3, 1},
- { 1, 4, 1},{ -1, 4, 1},{ 1, 5, 1},{ -1, 5, 1},{ 1, 6, 1},{ -1, 6, 1},
- { 1, 7, 1},{ -1, 7, 1},{ 2, 1, 2},{ -2, 1, 2},{ 1, 8, 1},{ -1, 8, 1},
- { 1, 9, 1},{ -1, 9, 1},{ 1,10, 1},{ -1,10, 1},{ 1,11, 1},{ -1,11, 1},
- { 1,12, 1},{ -1,12, 1},{ 1,13, 1},{ -1,13, 1},{ 1,14, 1},{ -1,14, 1},
- { 1,15, 1},{ -1,15, 1},{ 3, 1, 3},{ -3, 1, 3},{ 1,16, 1},{ -1,16, 1},
- { 1,17, 1},{ -1,17, 1},{ 1,18, 1},{ -1,18, 1},{ 1,19, 1},{ -1,19, 1},
- { 1,20, 1},{ -1,20, 1},{ 1,21, 1},{ -1,21, 1},{ 1,22, 1},{ -1,22, 1},
- { 2, 2, 2},{ -2, 2, 2},{ 1,23, 1},{ -1,23, 1},{ 1,24, 1},{ -1,24, 1},
- { 1,25, 1},{ -1,25, 1},{ 4, 1, 3},{ -4, 1, 3},{ EOB }
- },
- //level_add
- { 0, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2,-1},
- 2, //golomb_order
- 0, //inc_limit
- 25 //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 2, 1, 1},
- { -2, 1, 1},{ 1, 3, 0},{ -1, 3, 0},{ 1, 4, 0},{ -1, 4, 0},{ 1, 5, 0},
- { -1, 5, 0},{ 1, 6, 0},{ -1, 6, 0},{ 3, 1, 2},{ -3, 1, 2},{ 1, 7, 0},
- { -1, 7, 0},{ 1, 8, 0},{ -1, 8, 0},{ 2, 2, 1},{ -2, 2, 1},{ 1, 9, 0},
- { -1, 9, 0},{ 1,10, 0},{ -1,10, 0},{ 1,11, 0},{ -1,11, 0},{ 4, 1, 2},
- { -4, 1, 2},{ 1,12, 0},{ -1,12, 0},{ 1,13, 0},{ -1,13, 0},{ 1,14, 0},
- { -1,14, 0},{ 2, 3, 1},{ -2, 3, 1},{ 1,15, 0},{ -1,15, 0},{ 2, 4, 1},
- { -2, 4, 1},{ 5, 1, 3},{ -5, 1, 3},{ 3, 2, 2},{ -3, 2, 2},{ 1,16, 0},
- { -1,16, 0},{ 1,17, 0},{ -1,17, 0},{ 1,18, 0},{ -1,18, 0},{ 2, 5, 1},
- { -2, 5, 1},{ 1,19, 0},{ -1,19, 0},{ 1,20, 0},{ -1,20, 0}
- },
- //level_add
- { 0, 6, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2,-1,-1,-1,-1,-1,-1},
- 0, //golomb_order
- 1, //inc_limit
- 20 //max_run
- },{
- { //level / run
- { 1, 1, 0},{ -1, 1, 0},{ EOB },{ 2, 1, 0},{ -2, 1, 0},{ 1, 2, 0},
- { -1, 2, 0},{ 3, 1, 1},{ -3, 1, 1},{ 1, 3, 0},{ -1, 3, 0},{ 4, 1, 1},
- { -4, 1, 1},{ 2, 2, 0},{ -2, 2, 0},{ 1, 4, 0},{ -1, 4, 0},{ 5, 1, 2},
- { -5, 1, 2},{ 1, 5, 0},{ -1, 5, 0},{ 3, 2, 1},{ -3, 2, 1},{ 2, 3, 0},
- { -2, 3, 0},{ 1, 6, 0},{ -1, 6, 0},{ 6, 1, 2},{ -6, 1, 2},{ 1, 7, 0},
- { -1, 7, 0},{ 2, 4, 0},{ -2, 4, 0},{ 7, 1, 2},{ -7, 1, 2},{ 1, 8, 0},
- { -1, 8, 0},{ 4, 2, 1},{ -4, 2, 1},{ 1, 9, 0},{ -1, 9, 0},{ 3, 3, 1},
- { -3, 3, 1},{ 2, 5, 0},{ -2, 5, 0},{ 2, 6, 0},{ -2, 6, 0},{ 8, 1, 2},
- { -8, 1, 2},{ 1,10, 0},{ -1,10, 0},{ 1,11, 0},{ -1,11, 0},{ 9, 1, 2},
- { -9, 1, 2},{ 5, 2, 2},{ -5, 2, 2},{ 3, 4, 1},{ -3, 4, 1},
- },
- //level_add
- { 0,10, 6, 4, 4, 3, 3, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 1, //golomb_order
- 2, //inc_limit
- 11 //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 1, 2, 0},{ -1, 2, 0},{ 5, 1, 1},
- { -5, 1, 1},{ 2, 2, 0},{ -2, 2, 0},{ 6, 1, 1},{ -6, 1, 1},{ 1, 3, 0},
- { -1, 3, 0},{ 7, 1, 1},{ -7, 1, 1},{ 3, 2, 0},{ -3, 2, 0},{ 8, 1, 1},
- { -8, 1, 1},{ 1, 4, 0},{ -1, 4, 0},{ 2, 3, 0},{ -2, 3, 0},{ 9, 1, 1},
- { -9, 1, 1},{ 4, 2, 0},{ -4, 2, 0},{ 1, 5, 0},{ -1, 5, 0},{ 10, 1, 1},
- {-10, 1, 1},{ 3, 3, 0},{ -3, 3, 0},{ 5, 2, 1},{ -5, 2, 1},{ 2, 4, 0},
- { -2, 4, 0},{ 11, 1, 1},{-11, 1, 1},{ 1, 6, 0},{ -1, 6, 0},{ 12, 1, 1},
- {-12, 1, 1},{ 1, 7, 0},{ -1, 7, 0},{ 6, 2, 1},{ -6, 2, 1},{ 13, 1, 1},
- {-13, 1, 1},{ 2, 5, 0},{ -2, 5, 0},{ 1, 8, 0},{ -1, 8, 0},
- },
- //level_add
- { 0,14, 7, 4, 3, 3, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 1, //golomb_order
- 4, //inc_limit
- 8 //max_run
- },{
- { //level / run
- { EOB },{ 1, 1, 0},{ -1, 1, 0},{ 2, 1, 0},{ -2, 1, 0},{ 3, 1, 0},
- { -3, 1, 0},{ 4, 1, 0},{ -4, 1, 0},{ 5, 1, 0},{ -5, 1, 0},{ 6, 1, 0},
- { -6, 1, 0},{ 7, 1, 0},{ -7, 1, 0},{ 8, 1, 0},{ -8, 1, 0},{ 1, 2, 0},
- { -1, 2, 0},{ 9, 1, 0},{ -9, 1, 0},{ 10, 1, 0},{-10, 1, 0},{ 11, 1, 0},
- {-11, 1, 0},{ 2, 2, 0},{ -2, 2, 0},{ 12, 1, 0},{-12, 1, 0},{ 13, 1, 0},
- {-13, 1, 0},{ 3, 2, 0},{ -3, 2, 0},{ 14, 1, 0},{-14, 1, 0},{ 1, 3, 0},
- { -1, 3, 0},{ 15, 1, 0},{-15, 1, 0},{ 4, 2, 0},{ -4, 2, 0},{ 16, 1, 0},
- {-16, 1, 0},{ 17, 1, 0},{-17, 1, 0},{ 5, 2, 0},{ -5, 2, 0},{ 1, 4, 0},
- { -1, 4, 0},{ 2, 3, 0},{ -2, 3, 0},{ 18, 1, 0},{-18, 1, 0},{ 6, 2, 0},
- { -6, 2, 0},{ 19, 1, 0},{-19, 1, 0},{ 1, 5, 0},{ -1, 5, 0},
- },
- //level_add
- { 0,20, 7, 3, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
- 0, //golomb_order
- INT_MAX, //inc_limit
- 5, //max_run
- }
-};
-
-#undef EOB
-
-static const uint8_t alpha_tab[64] = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3,
- 4, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20,
- 22, 24, 26, 28, 30, 33, 33, 35, 35, 36, 37, 37, 39, 39, 42, 44,
- 46, 48, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64
-};
-
-static const uint8_t beta_tab[64] = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6,
- 6, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24, 24, 25, 25, 26, 27
-};
-
-static const uint8_t tc_tab[64] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
- 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9
-};
-
-const int_fast8_t ff_left_modifier_l[8] = { 0,-1, 6,-1,-1, 7, 6, 7};
-const int_fast8_t ff_top_modifier_l[8] = {-1, 1, 5,-1,-1, 5, 7, 7};
-const int_fast8_t ff_left_modifier_c[7] = { 5,-1, 2,-1, 6, 5, 6};
-const int_fast8_t ff_top_modifier_c[7] = { 4, 1,-1,-1, 4, 6, 6};
-
-#endif /* AVCODEC_CAVSDATA_H */
+++ /dev/null
-/*
- * Header file for hardcoded AAC cube-root table
- *
- * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef CBRT_TABLEGEN_H
-#define CBRT_TABLEGEN_H
-
-#include <stdint.h>
-#include <math.h>
-
-#if CONFIG_HARDCODED_TABLES
-#define cbrt_tableinit()
-#include "libavcodec/cbrt_tables.h"
-#else
-static uint32_t cbrt_tab[1 << 13];
-
-static void cbrt_tableinit(void)
-{
- if (!cbrt_tab[(1<<13) - 1]) {
- int i;
- for (i = 0; i < 1<<13; i++) {
- union {
- float f;
- uint32_t i;
- } f;
- f.f = cbrtf(i) * i;
- cbrt_tab[i] = f.i;
- }
- }
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* CBRT_TABLEGEN_H */
+++ /dev/null
-/*
- * various filters for CELP-based codecs
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_CELP_FILTERS_H
-#define AVCODEC_CELP_FILTERS_H
-
-#include <stdint.h>
-
-/**
- * Circularly convolve fixed vector with a phase dispersion impulse
- * response filter (D.6.2 of G.729 and 6.1.5 of AMR).
- * @param fc_out vector with filter applied
- * @param fc_in source vector
- * @param filter phase filter coefficients
- *
- * fc_out[n] = sum(i,0,len-1){ fc_in[i] * filter[(len + n - i)%len] }
- *
- * \note fc_in and fc_out should not overlap!
- */
-void ff_celp_convolve_circ(int16_t *fc_out, const int16_t *fc_in,
- const int16_t *filter, int len);
-
-/**
- * Add an array to a rotated array.
- *
- * out[k] = in[k] + fac * lagged[k-lag] with wrap-around
- *
- * @param out result vector
- * @param in samples to be added unfiltered
- * @param lagged samples to be rotated, multiplied and added
- * @param lag lagged vector delay in the range [0, n]
- * @param fac scalefactor for lagged samples
- * @param n number of samples
- */
-void ff_celp_circ_addf(float *out, const float *in,
- const float *lagged, int lag, float fac, int n);
-
-/**
- * LP synthesis filter.
- * @param out [out] pointer to output buffer
- * @param filter_coeffs filter coefficients (-0x8000 <= (3.12) < 0x8000)
- * @param in input signal
- * @param buffer_length amount of data to process
- * @param filter_length filter length (10 for 10th order LP filter)
- * @param stop_on_overflow 1 - return immediately if overflow occurs
- * 0 - ignore overflows
- * @param rounder the amount to add for rounding (usually 0x800 or 0xfff)
- *
- * @return 1 if overflow occurred, 0 - otherwise
- *
- * @note Output buffer must contain filter_length samples of past
- * speech data before pointer.
- *
- * Routine applies 1/A(z) filter to given speech data.
- */
-int ff_celp_lp_synthesis_filter(int16_t *out, const int16_t *filter_coeffs,
- const int16_t *in, int buffer_length,
- int filter_length, int stop_on_overflow,
- int rounder);
-
-/**
- * LP synthesis filter.
- * @param out [out] pointer to output buffer
- * - the array out[-filter_length, -1] must
- * contain the previous result of this filter
- * @param filter_coeffs filter coefficients.
- * @param in input signal
- * @param buffer_length amount of data to process
- * @param filter_length filter length (10 for 10th order LP filter). Must be
- * greater than 4 and even.
- *
- * @note Output buffer must contain filter_length samples of past
- * speech data before pointer.
- *
- * Routine applies 1/A(z) filter to given speech data.
- */
-void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
- const float *in, int buffer_length,
- int filter_length);
-
-/**
- * LP zero synthesis filter.
- * @param out [out] pointer to output buffer
- * @param filter_coeffs filter coefficients.
- * @param in input signal
- * - the array in[-filter_length, -1] must
- * contain the previous input of this filter
- * @param buffer_length amount of data to process
- * @param filter_length filter length (10 for 10th order LP filter)
- *
- * @note Output buffer must contain filter_length samples of past
- * speech data before pointer.
- *
- * Routine applies A(z) filter to given speech data.
- */
-void ff_celp_lp_zero_synthesis_filterf(float *out, const float *filter_coeffs,
- const float *in, int buffer_length,
- int filter_length);
-
-#endif /* AVCODEC_CELP_FILTERS_H */
+++ /dev/null
-/*
- * Various fixed-point math operations
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_CELP_MATH_H
-#define AVCODEC_CELP_MATH_H
-
-#include <stdint.h>
-
-/**
- * fixed-point implementation of cosine in [0; PI) domain.
- * @param arg fixed-point cosine argument, 0 <= arg < 0x4000
- *
- * @return value of (1<<15) * cos(arg * PI / (1<<14)), -0x8000 <= result <= 0x7fff
- */
-int16_t ff_cos(uint16_t arg);
-
-/**
- * fixed-point implementation of exp2(x) in [0; 1] domain.
- * @param power argument to exp2, 0 <= power <= 0x7fff
- *
- * @return value of (1<<20) * exp2(power / (1<<15))
- * 0x8000c <= result <= 0xfffea
- */
-int ff_exp2(uint16_t power);
-
-/**
- * Calculates log2(x).
- * @param value function argument, 0 < value <= 7fff ffff
- *
- * @return value of (1<<15) * log2(value)
- */
-int ff_log2(uint32_t value);
-
-/**
- * Shift value left or right depending on sign of offset parameter.
- * @param value value to shift
- * @param offset shift offset
- *
- * @return value << offset, if offset>=0; value >> -offset - otherwise
- */
-static inline int bidir_sal(int value, int offset)
-{
- if(offset < 0) return value >> -offset;
- else return value << offset;
-}
-
-/**
- * returns the dot product.
- * @param a input data array
- * @param b input data array
- * @param length number of elements
- *
- * @return dot product = sum of elementwise products
- */
-float ff_dot_productf(const float* a, const float* b, int length);
-
-#endif /* AVCODEC_CELP_MATH_H */
+++ /dev/null
-/*
- * CGA ROM data
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_CGA_DATA_H
-#define AVCODEC_CGA_DATA_H
-
-#include <stdint.h>
-
-extern const uint8_t ff_cga_font[2048];
-extern const uint32_t ff_cga_palette[16];
-
-#endif
+++ /dev/null
-/*
- * Colorspace conversion defines
- * Copyright (c) 2001, 2002, 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Various defines for YUV<->RGB conversion
- */
-
-#ifndef AVCODEC_COLORSPACE_H
-#define AVCODEC_COLORSPACE_H
-
-#define SCALEBITS 10
-#define ONE_HALF (1 << (SCALEBITS - 1))
-#define FIX(x) ((int) ((x) * (1<<SCALEBITS) + 0.5))
-
-#define YUV_TO_RGB1_CCIR(cb1, cr1)\
-{\
- cb = (cb1) - 128;\
- cr = (cr1) - 128;\
- r_add = FIX(1.40200*255.0/224.0) * cr + ONE_HALF;\
- g_add = - FIX(0.34414*255.0/224.0) * cb - FIX(0.71414*255.0/224.0) * cr + \
- ONE_HALF;\
- b_add = FIX(1.77200*255.0/224.0) * cb + ONE_HALF;\
-}
-
-#define YUV_TO_RGB2_CCIR(r, g, b, y1)\
-{\
- y = ((y1) - 16) * FIX(255.0/219.0);\
- r = cm[(y + r_add) >> SCALEBITS];\
- g = cm[(y + g_add) >> SCALEBITS];\
- b = cm[(y + b_add) >> SCALEBITS];\
-}
-
-#define YUV_TO_RGB1(cb1, cr1)\
-{\
- cb = (cb1) - 128;\
- cr = (cr1) - 128;\
- r_add = FIX(1.40200) * cr + ONE_HALF;\
- g_add = - FIX(0.34414) * cb - FIX(0.71414) * cr + ONE_HALF;\
- b_add = FIX(1.77200) * cb + ONE_HALF;\
-}
-
-#define YUV_TO_RGB2(r, g, b, y1)\
-{\
- y = (y1) << SCALEBITS;\
- r = cm[(y + r_add) >> SCALEBITS];\
- g = cm[(y + g_add) >> SCALEBITS];\
- b = cm[(y + b_add) >> SCALEBITS];\
-}
-
-#define Y_CCIR_TO_JPEG(y)\
- cm[((y) * FIX(255.0/219.0) + (ONE_HALF - 16 * FIX(255.0/219.0))) >> SCALEBITS]
-
-#define Y_JPEG_TO_CCIR(y)\
- (((y) * FIX(219.0/255.0) + (ONE_HALF + (16 << SCALEBITS))) >> SCALEBITS)
-
-#define C_CCIR_TO_JPEG(y)\
- cm[(((y) - 128) * FIX(127.0/112.0) + (ONE_HALF + (128 << SCALEBITS))) >> SCALEBITS]
-
-/* NOTE: the clamp is really necessary! */
-static inline int C_JPEG_TO_CCIR(int y) {
- y = (((y - 128) * FIX(112.0/127.0) + (ONE_HALF + (128 << SCALEBITS))) >> SCALEBITS);
- if (y < 16)
- y = 16;
- return y;
-}
-
-
-#define RGB_TO_Y(r, g, b) \
-((FIX(0.29900) * (r) + FIX(0.58700) * (g) + \
- FIX(0.11400) * (b) + ONE_HALF) >> SCALEBITS)
-
-#define RGB_TO_U(r1, g1, b1, shift)\
-(((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + \
- FIX(0.50000) * b1 + (ONE_HALF << shift) - 1) >> (SCALEBITS + shift)) + 128)
-
-#define RGB_TO_V(r1, g1, b1, shift)\
-(((FIX(0.50000) * r1 - FIX(0.41869) * g1 - \
- FIX(0.08131) * b1 + (ONE_HALF << shift) - 1) >> (SCALEBITS + shift)) + 128)
-
-#define RGB_TO_Y_CCIR(r, g, b) \
-((FIX(0.29900*219.0/255.0) * (r) + FIX(0.58700*219.0/255.0) * (g) + \
- FIX(0.11400*219.0/255.0) * (b) + (ONE_HALF + (16 << SCALEBITS))) >> SCALEBITS)
-
-#define RGB_TO_U_CCIR(r1, g1, b1, shift)\
-(((- FIX(0.16874*224.0/255.0) * r1 - FIX(0.33126*224.0/255.0) * g1 + \
- FIX(0.50000*224.0/255.0) * b1 + (ONE_HALF << shift) - 1) >> (SCALEBITS + shift)) + 128)
-
-#define RGB_TO_V_CCIR(r1, g1, b1, shift)\
-(((FIX(0.50000*224.0/255.0) * r1 - FIX(0.41869*224.0/255.0) * g1 - \
- FIX(0.08131*224.0/255.0) * b1 + (ONE_HALF << shift) - 1) >> (SCALEBITS + shift)) + 128)
-
-#endif /* AVCODEC_COLORSPACE_H */
+++ /dev/null
-/*
- * COOK compatible decoder data
- * Copyright (c) 2003 Sascha Sommer
- * Copyright (c) 2005 Benjamin Larsson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Cook AKA RealAudio G2 compatible decoderdata
- */
-
-#ifndef AVCODEC_COOKDATA_H
-#define AVCODEC_COOKDATA_H
-
-#include <stdint.h>
-
-/* various data tables */
-
-static const int expbits_tab[8] = {
- 52,47,43,37,29,22,16,0,
-};
-
-static const float dither_tab[8] = {
- 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107,
-};
-
-static const float quant_centroid_tab[7][14] = {
- { 0.000, 0.392, 0.761, 1.120, 1.477, 1.832, 2.183, 2.541, 2.893, 3.245, 3.598, 3.942, 4.288, 4.724 },
- { 0.000, 0.544, 1.060, 1.563, 2.068, 2.571, 3.072, 3.562, 4.070, 4.620, 0.000, 0.000, 0.000, 0.000 },
- { 0.000, 0.746, 1.464, 2.180, 2.882, 3.584, 4.316, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
- { 0.000, 1.006, 2.000, 2.993, 3.985, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
- { 0.000, 1.321, 2.703, 3.983, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
- { 0.000, 1.657, 3.491, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
- { 0.000, 1.964, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }
-};
-
-static const int invradix_tab[7] = {
- 74899, 104858, 149797, 209716, 262144, 349526, 524288,
-};
-
-static const int kmax_tab[7] = {
- 13, 9, 6, 4, 3, 2, 1,
-};
-
-static const int vd_tab[7] = {
- 2, 2, 2, 4, 4, 5, 5,
-};
-
-static const int vpr_tab[7] = {
- 10, 10, 10, 5, 5, 4, 4,
-};
-
-
-
-/* VLC data */
-
-static const int vhsize_tab[7] = {
- 191, 97, 48, 607, 246, 230, 32,
-};
-
-static const int vhvlcsize_tab[7] = {
- 8, 7, 7, 10, 9, 9, 6,
-};
-
-static const uint8_t envelope_quant_index_huffbits[13][24] = {
- { 4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12 },
- { 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 },
- { 12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14 },
- { 13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13 },
- { 12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14 },
- { 12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14 },
- { 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16 },
- { 14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15 },
- { 9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13 },
- { 14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14 },
- { 13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14 },
- { 16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16 },
- { 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14 },
-};
-
-static const uint16_t envelope_quant_index_huffcodes[13][24] = {
- {0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001,
- 0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff},
- {0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005,
- 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff},
- {0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000,
- 0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff},
- {0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002,
- 0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff},
- {0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001,
- 0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff},
- {0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002,
- 0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff},
- {0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004,
- 0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff},
- {0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003,
- 0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff},
- {0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
- 0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff},
- {0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
- 0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
- {0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003,
- 0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff},
- {0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002,
- 0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff},
- {0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003,
- 0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
-};
-
-
-static const uint8_t cvh_huffbits0[191] = {
- 1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10,
- 11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9,
- 9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9,
- 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9,
- 9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9,
- 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8,
- 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14,
- 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13,
- 13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12,
- 12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11,
- 12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10,
- 11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10,
- 11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10,
- 10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0,
- 11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0,
- 0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16,
-};
-
-static const uint16_t cvh_huffcodes0[191] = {
- 0x0000,0x0008,0x002c,0x002d,0x0062,0x0063,0x00d4,0x00d5,0x00d6,0x01c6,0x01c7,0x03ca,
- 0x07d6,0x07d7,0x0009,0x0014,0x002e,0x0064,0x0065,0x00d7,0x00d8,0x01c8,0x01c9,0x01ca,
- 0x01cb,0x03cb,0x07d8,0x07d9,0x0015,0x002f,0x0066,0x00d9,0x00da,0x01cc,0x01cd,0x01ce,
- 0x01cf,0x03cc,0x03cd,0x03ce,0x07da,0x0fe4,0x0030,0x0067,0x00db,0x01d0,0x01d1,0x01d2,
- 0x01d3,0x03cf,0x03d0,0x03d1,0x03d2,0x07db,0x0fe5,0x1fea,0x0068,0x0069,0x00dc,0x01d4,
- 0x01d5,0x01d6,0x03d3,0x03d4,0x03d5,0x03d6,0x07dc,0x07dd,0x0fe6,0x1feb,0x00dd,0x00de,
- 0x01d7,0x01d8,0x01d9,0x03d7,0x03d8,0x03d9,0x03da,0x07de,0x07df,0x0fe7,0x1fec,0x3ff2,
- 0x00df,0x00e0,0x01da,0x01db,0x03db,0x03dc,0x07e0,0x07e1,0x07e2,0x0fe8,0x0fe9,0x1fed,
- 0x1fee,0x7ff4,0x00e1,0x00e2,0x01dc,0x01dd,0x03dd,0x03de,0x07e3,0x07e4,0x07e5,0x0fea,
- 0x0feb,0x1fef,0x3ff3,0x7ff5,0x01de,0x01df,0x01e0,0x03df,0x03e0,0x03e1,0x07e6,0x07e7,
- 0x0fec,0x1ff0,0x0fed,0x3ff4,0x7ff6,0xfff8,0x01e1,0x01e2,0x03e2,0x03e3,0x03e4,0x03e5,
- 0x07e8,0x0fee,0x0fef,0x3ff5,0x3ff6,0xfff9,0xfffa,0xfffa,0x01e3,0x01e4,0x03e6,0x03e7,
- 0x07e9,0x07ea,0x0ff0,0x1ff1,0x1ff2,0x3ff7,0x3ff8,0x7ff7,0x7ff7,0xfffa,0x03e8,0x03e9,
- 0x03ea,0x07eb,0x07ec,0x0ff1,0x0ff2,0x1ff3,0x7ff8,0x7ff9,0xfffb,0x3ff8,0x7ff7,0x7ff7,
- 0x07ed,0x07ee,0x07ef,0x0ff3,0x1ff4,0x1ff5,0x1ff6,0x7ffa,0xfffc,0xfffd,0xfffb,0xfffb,
- 0x3ff8,0x7ff7,0x07f0,0x07f1,0x0ff4,0x1ff7,0x1ff8,0x3ff9,0x7ffb,0xfffe,0xffff,
-};
-
-
-static const uint8_t cvh_huffbits1[97] = {
- 1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5,
- 6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7,
- 8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9,
- 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11,
- 11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14,
- 8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9,
- 9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10,
- 11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14,
- 16,
-};
-
-
-static const uint16_t cvh_huffcodes1[97] = {
- 0x0000,0x0008,0x0014,0x0030,0x006a,0x00e2,0x00e3,0x01e4,0x03ec,0x03ed,0x0009,0x0015,
- 0x0031,0x006b,0x006c,0x00e4,0x00e5,0x01e5,0x01e6,0x07f0,0x0016,0x0017,0x0032,0x006d,
- 0x00e6,0x00e7,0x01e7,0x01e8,0x03ee,0x07f1,0x0033,0x0034,0x006e,0x00e8,0x00e9,0x01e9,
- 0x01ea,0x03ef,0x07f2,0x0ff6,0x006f,0x0070,0x00ea,0x00eb,0x01eb,0x01ec,0x03f0,0x07f3,
- 0x07f4,0x1ffa,0x00ec,0x00ed,0x00ee,0x01ed,0x01ee,0x03f1,0x03f2,0x07f5,0x0ff7,0x3ffa,
- 0x00ef,0x00f0,0x00f1,0x01ef,0x03f3,0x07f6,0x07f7,0x0ff8,0x1ffb,0x7ffe,0x01f0,0x01f1,
- 0x01f2,0x03f4,0x07f8,0x0ff9,0x0ffa,0x3ffb,0x3ffc,0x0000,0x01f3,0x01f4,0x01f5,0x03f5,
- 0x07f9,0x0ffb,0x3ffd,0xfffe,0x0000,0x0000,0x03f6,0x03f7,0x07fa,0x0ffc,0x1ffc,0x3ffe,
- 0xffff,
-};
-
-static const uint8_t cvh_huffbits2[48] = {
- 1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8,
- 9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7,
- 8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8,
- 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16,
-};
-
-static const uint16_t cvh_huffcodes2[48] = {
- 0x0000,0x000a,0x0018,0x0074,0x00f2,0x01f4,0x03f6,0x0004,0x000b,0x0019,0x0075,0x00f3,
- 0x01f5,0x03f7,0x001a,0x001b,0x0038,0x0076,0x00f4,0x03f8,0x03f9,0x0077,0x0039,0x0078,
- 0x00f5,0x01f6,0x03fa,0x0ffc,0x00f6,0x00f7,0x00f8,0x01f7,0x03fb,0x0ffd,0x3ffe,0x00f9,
- 0x01f8,0x01f9,0x03fc,0x07fc,0x7ffe,0xfffe,0x01fa,0x03fd,0x07fd,0x0ffe,0x1ffe,0xffff,
-};
-
-static const uint8_t cvh_huffbits3[607] = {
- 2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8,
- 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16,
- 16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7,
- 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13,
- 16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13,
- 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12,
- 14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15,
- 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16,
- 16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15,
- 16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0,
- 16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6,
- 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15,
- 16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6,
- 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12,
- 12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16,
- 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10,
- 12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16,
- 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13,
- 12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16,
- 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0,
- 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8,
- 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13,
- 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6,
- 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11,
- 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0,
- 8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10,
- 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16,
- 0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12,
- 12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16,
- 0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0,
- 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0,
- 0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16,
- 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12,
- 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11,
- 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16,
- 0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11,
- 13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16,
- 16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0,
- 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16,
- 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15,
- 16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15,
- 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0,
- 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13,
- 15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16,
- 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16,
- 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16,
- 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 0, 0, 0, 16, 16,
-};
-
-
-static const uint16_t cvh_huffcodes3[607] = {
- 0x0000,0x0004,0x0022,0x00c6,0x03b0,0x000c,0x000d,0x0023,0x00c7,0x03b1,0x005c,0x00c8,
- 0x00c9,0x03b2,0x0fa4,0x01c2,0x01c3,0x03b3,0x0fa5,0x7f72,0x03b4,0x07b2,0x1f9a,0xff24,
- 0xff25,0x000e,0x0024,0x00ca,0x03b5,0x07b3,0x000f,0x0025,0x00cb,0x03b6,0x0fa6,0x005d,
- 0x005e,0x00cc,0x03b7,0x1f9b,0x01c4,0x01c5,0x03b8,0x0fa7,0x7f73,0x0fa8,0x07b4,0x1f9c,
- 0xff26,0xff27,0x005f,0x01c6,0x03b9,0x0fa9,0x7f74,0x0060,0x00cd,0x03ba,0x0faa,0x1f9d,
- 0x01c7,0x01c8,0x07b5,0x1f9e,0xff28,0x07b6,0x07b7,0x0fab,0x3fa2,0xff29,0x0fac,0x0fad,
- 0x3fa3,0xff2a,0x3fa2,0x01c9,0x07b8,0x0fae,0xff2b,0xff2c,0x01ca,0x03bb,0x1f9f,0x7f75,
- 0xff2d,0x03bc,0x07b9,0x0faf,0xff2e,0xff2f,0x1fa0,0x1fa1,0xff30,0xff31,0xff32,0xff33,
- 0xff34,0x7f76,0xff35,0xff31,0x07ba,0x1fa2,0xff36,0xff37,0x7f77,0x07bb,0x1fa3,0x7f78,
- 0xff38,0xff39,0x1fa4,0x1fa5,0xff3a,0xff3b,0xff2e,0x3fa4,0xff3c,0xff3d,0xff3e,0xff31,
- 0xff3f,0xff40,0xff30,0xff31,0xff31,0x0005,0x0026,0x00ce,0x03bd,0x1fa6,0x0027,0x0028,
- 0x00cf,0x03be,0x1fa7,0x01cb,0x00d0,0x03bf,0x0fb0,0xff41,0x03c0,0x03c1,0x07bc,0x7f79,
- 0xff42,0x1fa8,0x0fb1,0x3fa5,0xff43,0xff44,0x0010,0x0029,0x00d1,0x07bd,0x1fa9,0x002a,
- 0x002b,0x00d2,0x03c2,0x1faa,0x00d3,0x00d4,0x01cc,0x07be,0x3fa6,0x03c3,0x03c4,0x0fb2,
- 0x0fb3,0xff45,0x1fab,0x0fb4,0x1fac,0x7f7a,0xff46,0x0061,0x00d5,0x01cd,0x0fb5,0xff47,
- 0x0062,0x00d6,0x03c5,0x0fb6,0x3fa7,0x01ce,0x01cf,0x03c6,0x1fad,0xff48,0x07bf,0x03c7,
- 0x0fb7,0x7f7b,0xff49,0x1fae,0x1faf,0xff4a,0xff4b,0x7f7b,0x01d0,0x07c0,0x1fb0,0xff4c,
- 0xff4d,0x01d1,0x03c8,0x0fb8,0x7f7c,0xff4e,0x03c9,0x07c1,0x1fb1,0xff4f,0xff50,0x1fb2,
- 0x0fb9,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff52,0x07c2,0x1fb3,0xff58,
- 0xff59,0xff5a,0x07c3,0x1fb4,0xff5b,0xff5c,0xff5d,0x0fba,0x1fb5,0x7f7d,0xff5e,0xff4f,
- 0xff5f,0xff60,0xff61,0xff62,0xff52,0xff63,0xff64,0xff51,0xff52,0xff52,0x002c,0x00d7,
- 0x07c4,0x1fb6,0xff65,0x00d8,0x00d9,0x03ca,0x0fbb,0xff66,0x07c5,0x03cb,0x07c6,0x1fb7,
- 0xff67,0x0fbc,0x1fb8,0x1fb9,0x7f7e,0xff68,0xff69,0xff6a,0x3fa8,0xff6b,0x7f7e,0x002d,
- 0x00da,0x03cc,0x1fba,0xff6c,0x00db,0x00dc,0x03cd,0x0fbd,0xff6d,0x03ce,0x03cf,0x07c7,
- 0x1fbb,0xff6e,0x1fbc,0x0fbe,0x1fbd,0xff6f,0xff70,0x3fa9,0x3faa,0x3fab,0xff71,0xff6f,
- 0x00dd,0x01d2,0x07c8,0x1fbe,0xff72,0x00de,0x01d3,0x07c9,0xff73,0x3fac,0x03d0,0x03d1,
- 0x0fbf,0x7f7f,0xff74,0x0fc0,0x0fc1,0x1fbf,0xff75,0xff76,0x7f80,0xff77,0xff78,0xff79,
- 0xff75,0x03d2,0x0fc2,0x7f81,0xff7a,0xff7b,0x03d3,0x0fc3,0x0fc4,0x3fad,0xff7c,0x0fc5,
- 0x0fc6,0x1fc0,0xff7d,0xff7e,0x3fae,0x7f82,0xff7f,0xff80,0xff80,0xff81,0xff82,0xff83,
- 0xff80,0xff80,0x0fc7,0x7f83,0x7f84,0xff84,0xff7a,0x1fc1,0x1fc2,0xff85,0xff86,0x3fad,
- 0x3faf,0xff87,0xff88,0xff89,0xff7d,0xff8a,0xff8b,0xff8c,0xff80,0xff80,0x3fae,0x7f82,
- 0xff7f,0xff80,0xff80,0x00df,0x03d4,0x1fc3,0x7f85,0xff8d,0x03d5,0x07ca,0x1fc4,0xff8e,
- 0xff8f,0x1fc5,0x1fc6,0x3fb0,0xff90,0xff91,0xff92,0xff93,0xff94,0xff95,0xff96,0xff97,
- 0xff98,0xff99,0xff9a,0xff95,0x00e0,0x03d6,0x07cb,0x7f86,0xff9b,0x01d4,0x03d7,0x0fc8,
- 0xff9c,0xff9d,0x0fc9,0x0fca,0x7f87,0xff9e,0xff9f,0xffa0,0x3fb1,0xffa1,0xffa2,0xffa3,
- 0xffa4,0xffa5,0xffa6,0xffa7,0xffa2,0x01d5,0x07cc,0x3fb2,0xffa8,0xffa9,0x03d8,0x07cd,
- 0x1fc7,0xffaa,0xffab,0x3fb3,0x1fc8,0x3fb4,0xffac,0xffad,0xffae,0x7f88,0x7f89,0xffaf,
- 0xffaf,0xffb0,0xffb1,0xffb2,0xffaf,0xffaf,0x07ce,0x1fc9,0xffb3,0xffb4,0xffb5,0x07cf,
- 0x1fca,0x7f8a,0xffb6,0xffb7,0x1fcb,0xffb8,0xffb9,0xffba,0xffba,0xffbb,0xffbc,0xffbd,
- 0xffbe,0xffbe,0xffbf,0xffc0,0xffbd,0xffbe,0xffbe,0x7f8b,0xffc1,0xffc2,0xffc3,0xffb4,
- 0x3fb5,0xffc4,0xffc5,0xffc6,0xffb6,0xffc7,0xffc8,0xffc9,0xffba,0xffba,0xffca,0xffcb,
- 0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,0x01d6,0x1fcc,0xffcc,0xffcd,
- 0xffce,0x07d0,0x1fcd,0xffcf,0xffd0,0xffd1,0x3fb6,0x7f8c,0xffd2,0xffd3,0xff90,0x7f8d,
- 0xffd4,0xffd5,0xffd6,0xff95,0xffd7,0xffd8,0xff94,0xff95,0xff95,0x01d7,0x1fce,0x7f8e,
- 0x7f8f,0xffd9,0x0fcb,0x1fcf,0x3fb7,0xffda,0xffdb,0xffdc,0x7f90,0xffdd,0xffde,0xff9e,
- 0xffdf,0xffe0,0xffe1,0xffe2,0xffa2,0xffe3,0xffe4,0xffa1,0xffa2,0xffa2,0x07d1,0x1fd0,
- 0x7f91,0xffe5,0xffa8,0x0fcc,0x3fb8,0xffe6,0xffe7,0xffaa,0xffe8,0xffe9,0xffea,0xffeb,
- 0xffac,0xffec,0xffed,0xffee,0xffaf,0xffaf,0xffae,0x7f88,0x7f89,0xffaf,0xffaf,0xffef,
- 0xfff0,0xfff1,0xfff2,0xffb4,0xfff3,0xfff4,0xfff5,0xfff6,0xffb6,0xfff7,0xfff8,0xfff9,
- 0xffba,0xffba,0xfffa,0xfffb,0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,
- 0xfffc,0xfffd,0xffb3,0xffb4,0xffb4,0xfffe,0xffff,
-};
-
-static const uint8_t cvh_huffbits4[246] = {
- 2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14,
- 11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12,
- 8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15,
- 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0,
- 11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0,
- 15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13,
- 9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12,
- 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15,
- 7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15,
- 14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15,
- 15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14,
- 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0,
- 7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15,
- 15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15,
- 14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
- 14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
- 9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0,
- 15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15,
- 15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
- 15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
- 15, 15, 0, 0, 15, 15,
-};
-
-
-static const uint16_t cvh_huffcodes4[246] = {
- 0x0000,0x0004,0x006c,0x03e6,0x0005,0x0012,0x006d,0x03e7,0x006e,0x00e8,0x03e8,0x3fc4,
- 0x07e0,0x07e1,0x7fa4,0x7fa5,0x0006,0x0013,0x01e2,0x0fda,0x0014,0x0015,0x00e9,0x0fdb,
- 0x00ea,0x006f,0x03e9,0x7fa6,0x07e2,0x07e3,0x7fa7,0x7fa8,0x0070,0x01e3,0x0fdc,0x7fa9,
- 0x00eb,0x00ec,0x0fdd,0x7faa,0x03ea,0x03eb,0x1fd6,0x7fab,0x3fc5,0x3fc6,0x7fac,0x1fd6,
- 0x07e4,0x1fd7,0x7fad,0x7fae,0x07e5,0x1fd8,0x7faf,0x7fb0,0x3fc7,0x7fb1,0x7fb2,0x1fd6,
- 0x7fb3,0x7fb4,0x1fd6,0x1fd6,0x0007,0x0016,0x01e4,0x1fd9,0x0017,0x0032,0x01e5,0x1fda,
- 0x01e6,0x01e7,0x07e6,0x7fb5,0x3fc8,0x1fdb,0x7fb6,0x7fb7,0x0008,0x0033,0x01e8,0x0fde,
- 0x0018,0x0034,0x01e9,0x1fdc,0x01ea,0x00ed,0x07e7,0x7fb8,0x1fdd,0x0fdf,0x7fb9,0x7fba,
- 0x0071,0x01eb,0x0fe0,0x7fbb,0x0072,0x00ee,0x07e8,0x7fbc,0x03ec,0x03ed,0x3fc9,0x7fbd,
- 0x3fca,0x7fbe,0x7fbf,0x3fc9,0x03ee,0x0fe1,0x7fc0,0x7fc1,0x07e9,0x1fde,0x7fc2,0x7fc3,
- 0x7fc4,0x7fc5,0x7fc6,0x3fc9,0x7fc7,0x7fc8,0x3fc9,0x3fc9,0x0035,0x01ec,0x1fdf,0x3fcb,
- 0x00ef,0x01ed,0x0fe2,0x7fc9,0x0fe3,0x0fe4,0x7fca,0x7fcb,0x7fcc,0x7fcd,0x7fce,0x7fca,
- 0x0073,0x01ee,0x1fe0,0x7fcf,0x00f0,0x01ef,0x0fe5,0x7fd0,0x07ea,0x0fe6,0x7fd1,0x7fd2,
- 0x7fd3,0x7fd4,0x7fd5,0x7fd1,0x01f0,0x07eb,0x7fd6,0x7fd7,0x01f1,0x07ec,0x7fd8,0x7fd9,
- 0x3fcc,0x3fcd,0x7fda,0x7fda,0x7fdb,0x7fdc,0x7fda,0x7fda,0x3fce,0x7fdd,0x7fde,0x7fd6,
- 0x3fcf,0x7fdf,0x7fe0,0x7fd8,0x7fe1,0x7fe2,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
- 0x01f2,0x0fe7,0x7fe3,0x7fe4,0x0fe8,0x1fe1,0x7fe5,0x7fe6,0x7fe7,0x7fe8,0x7fe9,0x7fca,
- 0x7fea,0x7feb,0x7fca,0x7fca,0x03ef,0x0fe9,0x7fec,0x7fed,0x0fea,0x3fd0,0x7fee,0x7fef,
- 0x7ff0,0x7ff1,0x7ff2,0x7fd1,0x7ff3,0x7ff4,0x7fd1,0x7fd1,0x3fd1,0x7ff5,0x7ff6,0x7fd6,
- 0x7ff7,0x7ff8,0x7ff9,0x7fd8,0x7ffa,0x7ffb,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
- 0x7ffc,0x7ffd,0x7fd6,0x7fd6,0x7ffe,0x7fff,
-};
-
-
-static const uint8_t cvh_huffbits5[230] = {
- 2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11,
- 5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15,
- 14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15,
- 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15,
- 11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15,
- 15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0,
- 15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11,
- 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14,
- 12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0,
- 5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14,
- 7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15,
- 15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0,
- 11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0,
- 15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15,
- 15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0,
- 14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15,
- 12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15,
- 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0,
- 14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0,
- 15, 15,
-};
-
-
-
-static const uint16_t cvh_huffcodes5[230] = {
- 0x0000,0x0004,0x00f0,0x0005,0x0012,0x01f0,0x01f1,0x03e8,0x3fce,0x0006,0x0030,0x07de,
- 0x0013,0x0031,0x0fd2,0x03e9,0x07df,0x7fb0,0x01f2,0x07e0,0x7fb1,0x03ea,0x1fd2,0x7fb2,
- 0x3fcf,0x7fb3,0x0031,0x0007,0x0032,0x0fd3,0x0033,0x0070,0x0fd4,0x0fd5,0x0fd6,0x7fb4,
- 0x0014,0x0071,0x1fd3,0x0034,0x0072,0x1fd4,0x0fd7,0x1fd5,0x7fb5,0x03eb,0x0fd8,0x7fb6,
- 0x07e1,0x1fd6,0x7fb7,0x7fb8,0x7fb9,0x0072,0x00f1,0x1fd7,0x7fba,0x07e2,0x0fd9,0x7fbb,
- 0x7fbc,0x7fbd,0x0070,0x03ec,0x1fd8,0x7fbe,0x0fda,0x7fbf,0x7fc0,0x7fc1,0x7fc2,0x0072,
- 0x7fc3,0x7fc4,0x0071,0x7fc5,0x7fc6,0x0072,0x0034,0x0072,0x0072,0x0008,0x0015,0x07e3,
- 0x0016,0x0073,0x0fdb,0x07e4,0x0fdc,0x7fc7,0x0035,0x0074,0x1fd9,0x0075,0x00f2,0x3fd0,
- 0x0fdd,0x3fd1,0x7fc8,0x07e5,0x1fda,0x7fc9,0x0fde,0x1fdb,0x7fca,0x7fcb,0x7fcc,0x00f2,
- 0x0017,0x0036,0x1fdc,0x0076,0x00f3,0x7fcd,0x0fdf,0x3fd2,0x7fce,0x0037,0x00f4,0x3fd3,
- 0x0077,0x00f5,0x7fcf,0x3fd4,0x7fd0,0x7fd1,0x0fe0,0x0fe1,0x7fd2,0x0fe2,0x1fdd,0x7fd3,
- 0x7fd4,0x7fd5,0x00f5,0x01f3,0x1fde,0x7fd6,0x0fe3,0x1fdf,0x7fd7,0x7fd8,0x7fd9,0x00f3,
- 0x07e6,0x1fe0,0x7fda,0x1fe1,0x1fe2,0x7fdb,0x7fdc,0x7fdd,0x00f5,0x3fd5,0x7fde,0x00f4,
- 0x7fdf,0x7fe0,0x00f5,0x0077,0x00f5,0x00f5,0x00f6,0x03ed,0x7fe1,0x07e7,0x0fe4,0x7fe2,
- 0x7fe3,0x7fe4,0x0073,0x03ee,0x0fe5,0x7fe5,0x0fe6,0x1fe3,0x7fe6,0x7fe7,0x7fe8,0x00f2,
- 0x3fd6,0x7fe9,0x0074,0x7fea,0x7feb,0x00f2,0x0075,0x00f2,0x00f2,0x00f7,0x0fe7,0x7fec,
- 0x0fe8,0x1fe4,0x7fed,0x7fee,0x7fef,0x00f3,0x07e8,0x1fe5,0x7ff0,0x1fe6,0x7ff1,0x7ff2,
- 0x7ff3,0x7ff4,0x00f5,0x7ff5,0x7ff6,0x00f4,0x7ff7,0x7ff8,0x00f5,0x0077,0x00f5,0x00f5,
- 0x3fd7,0x7ff9,0x0036,0x7ffa,0x7ffb,0x00f3,0x0076,0x00f3,0x00f3,0x7ffc,0x7ffd,0x0000,
- 0x7ffe,0x7fff,
-};
-
-
-static const uint8_t cvh_huffbits6[32] = {
- 1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8,
- 6, 9, 8, 10, 4, 6, 7, 8, 6, 9, 8, 11,
- 6, 9, 8, 10, 8, 10, 9, 11,
-};
-
-static const uint16_t cvh_huffcodes6[32] = {
- 0x0000,0x0008,0x0009,0x0034,0x000a,0x0035,0x0036,0x00f6,0x000b,0x0037,0x0038,0x00f7,
- 0x0039,0x01fa,0x00f8,0x03fc,0x000c,0x003a,0x007a,0x00f9,0x003b,0x01fb,0x00fa,0x07fe,
- 0x003c,0x01fc,0x00fb,0x03fd,0x00fc,0x03fe,0x01fd,0x07ff,
-};
-
-static const uint16_t* const cvh_huffcodes[7] = {
- cvh_huffcodes0, cvh_huffcodes1, cvh_huffcodes2, cvh_huffcodes3,
- cvh_huffcodes4, cvh_huffcodes5, cvh_huffcodes6,
-};
-
-static const uint8_t* const cvh_huffbits[7] = {
- cvh_huffbits0, cvh_huffbits1, cvh_huffbits2, cvh_huffbits3,
- cvh_huffbits4, cvh_huffbits5, cvh_huffbits6,
-};
-
-
-static const uint16_t ccpl_huffcodes2[3] = {
- 0x02,0x00,0x03,
-};
-
-static const uint16_t ccpl_huffcodes3[7] = {
- 0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f,
-};
-
-static const uint16_t ccpl_huffcodes4[15] = {
- 0xfc,0xfd,0x7c,0x3c,0x1c,0x0c,0x04,0x00,0x05,0x0d,0x1d,0x3d,
- 0x7d,0xfe,0xff,
-};
-
-static const uint16_t ccpl_huffcodes5[31] = {
- 0x03f8,0x03f9,0x03fa,0x03fb,0x01f8,0x01f9,0x00f8,0x00f9,0x0078,0x0079,0x0038,0x0039,
- 0x0018,0x0019,0x0004,0x0000,0x0005,0x001a,0x001b,0x003a,0x003b,0x007a,0x007b,0x00fa,
- 0x00fb,0x01fa,0x01fb,0x03fc,0x03fd,0x03fe,0x03ff,
-};
-
-static const uint16_t ccpl_huffcodes6[63] = {
- 0x0004,0x0005,0x0005,0x0006,0x0006,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008,
- 0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,
- 0x000b,0x000b,0x000c,0x000d,0x000e,0x000e,0x0010,0x0000,0x000a,0x0018,0x0019,0x0036,
- 0x0037,0x0074,0x0075,0x0076,0x0077,0x00f4,0x00f5,0x00f6,0x00f7,0x01f5,0x01f6,0x01f7,
- 0x01f8,0x03f6,0x03f7,0x03f8,0x03f9,0x03fa,0x07fa,0x07fb,0x07fc,0x07fd,0x0ffd,0x1ffd,
- 0x3ffd,0x3ffe,0xffff,
-};
-
-static const uint8_t ccpl_huffbits2[3] = {
- 2,1,2,
-};
-
-static const uint8_t ccpl_huffbits3[7] = {
- 6,5,2,1,3,4,6,
-};
-
-static const uint8_t ccpl_huffbits4[15] = {
- 8,8,7,6,5,4,3,1,3,4,5,6,7,8,8,
-};
-
-static const uint8_t ccpl_huffbits5[31] = {
- 10,10,10,10,9,9,8,8,7,7,6,6,
- 5,5,3,1,3,5,5,6,6,7,7,8,
- 8,9,9,10,10,10,10,
-};
-
-static const uint8_t ccpl_huffbits6[63] = {
- 16,15,14,13,12,11,11,11,11,10,10,10,
- 10,9,9,9,9,9,8,8,8,8,7,7,
- 7,7,6,6,5,5,3,1,4,5,5,6,
- 6,7,7,7,7,8,8,8,8,9,9,9,
- 9,10,10,10,10,10,11,11,11,11,12,13,
- 14,14,16,
-};
-
-static const uint16_t* const ccpl_huffcodes[5] = {
- ccpl_huffcodes2,ccpl_huffcodes3,
- ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6
-};
-
-static const uint8_t* const ccpl_huffbits[5] = {
- ccpl_huffbits2,ccpl_huffbits3,
- ccpl_huffbits4,ccpl_huffbits5,ccpl_huffbits6
-};
-
-
-//Coupling tables
-
-static const int cplband[51] = {
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,11,12,12,13,13,14,14,14,
- 15,15,15,15,16,16,16,16,16,17,
- 17,17,17,17,17,18,18,18,18,18,
- 18,18,19,19,19,19,19,19,19,19,
- 19,
-};
-
-static const float cplscale2[3] = {
-0.953020632266998,0.70710676908493,0.302905440330505,
-};
-
-static const float cplscale3[7] = {
-0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
-0.482430040836334,0.349335819482803,0.192587479948997,
-};
-
-static const float cplscale4[15] = {
-0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
-0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
-0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
-0.302905440330505,0.229752898216248,0.130207896232605,
-};
-
-static const float cplscale5[31] = {
-0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
-0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
-0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
-0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
-0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
-0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
-0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
-0.205169528722763,0.157508864998817,0.0901700109243393,
-};
-
-static const float cplscale6[63] = {
-0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
-0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
-0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
-0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
-0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
-0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
-0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
-0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
-0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
-0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
-0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
-0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
-0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
-0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
-0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
-0.142307326197624,0.109772264957428,0.0631198287010193,
-};
-
-static const float* const cplscales[5] = {
- cplscale2, cplscale3, cplscale4, cplscale5, cplscale6,
-};
-
-#endif /* AVCODEC_COOKDATA_H */
+++ /dev/null
-/*
- * DCA compatible decoder
- * Copyright (C) 2004 Gildas Bazin
- * Copyright (C) 2004 Benjamin Zores
- * Copyright (C) 2006 Benjamin Larsson
- * Copyright (C) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DCA_H
-#define AVCODEC_DCA_H
-
-/** DCA syncwords, also used for bitstream type detection */
-#define DCA_MARKER_RAW_BE 0x7FFE8001
-#define DCA_MARKER_RAW_LE 0xFE7F0180
-#define DCA_MARKER_14B_BE 0x1FFFE800
-#define DCA_MARKER_14B_LE 0xFF1F00E8
-
-/** DCA-HD specific block starts with this marker. */
-#define DCA_HD_MARKER 0x64582025
-
-#endif /* AVCODEC_DCA_H */
+++ /dev/null
-/*
- * DCA compatible decoder data
- * Copyright (C) 2004 Gildas Bazin
- * Copyright (c) 2006 Benjamin Larsson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DCADATA_H
-#define AVCODEC_DCADATA_H
-
-#include <stdint.h>
-#include "libavutil/mem.h"
-
-/* Generic tables */
-
-static const uint32_t dca_sample_rates[16] =
-{
- 0, 8000, 16000, 32000, 0, 0, 11025, 22050, 44100, 0, 0,
- 12000, 24000, 48000, 96000, 192000
-};
-
-static const uint32_t dca_bit_rates[32] =
-{
- 32000, 56000, 64000, 96000, 112000, 128000,
- 192000, 224000, 256000, 320000, 384000,
- 448000, 512000, 576000, 640000, 768000,
- 896000, 1024000, 1152000, 1280000, 1344000,
- 1408000, 1411200, 1472000, 1536000, 1920000,
- 2048000, 3072000, 3840000, 1/*open*/, 2/*variable*/, 3/*lossless*/
-};
-
-static const uint8_t dca_channels[16] =
-{
- 1, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8
-};
-
-static const uint8_t dca_bits_per_sample[7] =
-{
- 16, 16, 20, 20, 0, 24, 24
-};
-
-
-/* Adpcm data */
-
-/* 16bits signed fractional Q13 binary codes */
-static const int16_t adpcm_vb[4096][4] =
-{
- { 9928, -2618, -1093, -1263 },
- { 11077, -2876, -1747, -308 },
- { 10503, -1082, -1426, -1167 },
- { 9337, -2403, -1495, 274 },
- { 10698, -2529, -532, -1122 },
- { 10368, -3974, -1264, -750 },
- { 10070, -3667, 346, 863 },
- { 10278, -3093, 311, -576 },
- { 9894, -1330, -1428, -860 },
- { 10544, -1923, -1058, -971 },
- { 10996, -1632, -841, -1404 },
- { 11832, -3465, 1658, -1990 },
- { 10852, -688, -2658, -499 },
- { 10546, -1749, -147, -1733 },
- { 10801, -1004, -708, -1453 },
- { 10588, -441, -2113, -952 },
- { 10141, -3331, -582, -1432 },
- { 9608, -2590, 383, 258 },
- { 11422, -3265, 229, -1544 },
- { 10460, -1338, -713, -1568 },
- { 10306, -1721, -1660, -603 },
- { 9580, -1812, -1235, -1061 },
- { 11471, -2285, -1617, -607 },
- { 10081, -2225, -1408, -868 },
- { 10715, -2624, -1367, -704 },
- { 10616, -1871, -2770, -35 },
- { 9352, -2340, -1024, -1566 },
- { 11065, -1458, -1926, -735 },
- { 11334, -2056, -1041, -1144 },
- { 9825, -2048, -794, -1536 },
- { 11850, -2695, -1123, -867 },
- { 10654, -2226, -1891, -373 },
- { 10024, -1557, -808, -1069 },
- { 11142, -1266, -3238, 128 },
- { 11729, -3282, -514, -1011 },
- { 11402, -2094, -2335, -189 },
- { 10195, -3658, 181, -1875 },
- { 11431, -2626, -404, -1377 },
- { 11001, -3868, -619, -1077 },
- { 10894, -2559, 274, -1758 },
- { 9633, -1482, -2253, -773 },
- { 11245, -3321, 830, -1972 },
- { 9768, -2701, -199, -1859 },
- { 10500, -2042, 525, -2043 },
- { 11669, -4069, 293, -1468 },
- { 9192, -1991, -583, -61 },
- { 10057, -3220, -2015, -473 },
- { 9497, -2315, -2490, -467 },
- { 10455, -3069, -1194, -1007 },
- { 9994, -1936, -60, -1225 },
- { 9295, -2156, -1761, -1134 },
- { 10085, -3748, -1026, 197 },
- { 9334, -2360, 804, -351 },
- { 11561, -2553, 1352, -2313 },
- { 12837, -3998, 1195, -1958 },
- { 10114, -1100, -2414, -394 },
- { 9341, -2530, 315, 755 },
- { 10131, -3164, 1411, -674 },
- { 9535, -905, -1551, 579 },
- { 11717, -1519, -3051, 91 },
- { 9824, -2911, -2775, 192 },
- { 9662, -2934, -561, 1450 },
- { 11085, -3392, -1298, -659 },
- { 8955, -2102, -1899, 703 },
- { 8607, -1742, -4348, 814 },
- { 7640, -2063, -3617, 52 },
- { 7074, -826, -4325, 4375 },
- { 7714, 584, -4238, 1927 },
- { 6355, -952, -4912, 3127 },
- { 7069, -660, -6413, 4087 },
- { 8313, -132, -2964, -876 },
- { 6952, -1422, -3962, -24 },
- { 9299, -734, -3088, -263 },
- { 9484, -574, -4513, 466 },
- { 7246, -91, -3735, -704 },
- { 8325, -1417, -3090, -530 },
- { 6469, -1226, -4757, 829 },
- { 6652, -368, -5682, 1393 },
- { 7971, -1278, -2284, 1205 },
- { 7229, -699, -3556, 1840 },
- { 7994, 1284, -2729, 732 },
- { 9005, -698, -4522, 2189 },
- { 6963, 197, -2727, 380 },
- { 8527, 135, -3991, -213 },
- { 8840, 934, -3014, -567 },
- { 10125, 418, -3284, -371 },
- { 6367, 361, -2318, 2554 },
- { 7892, 172, -5247, 4673 },
- { 6674, 387, -5424, 4398 },
- { 6240, 684, -4047, 1219 },
- { 11170, -794, -5081, 1195 },
- { 11765, -648, -6265, 2052 },
- { 10845, -775, -3837, 366 },
- { 12496, -689, -8260, 3562 },
- { 7893, -1166, -4972, 988 },
- { 8592, 1052, -5986, 3087 },
- { 7277, 1874, -5685, 3579 },
- { 6900, 2016, -4809, 3491 },
- { 8530, -2405, -3250, 1986 },
- { 9426, 494, -7067, 5038 },
- { 10285, 564, -8210, 5370 },
- { 8749, -2207, -3980, 2852 },
- { 9653, -2686, -4300, 1400 },
- { 9770, -2286, -5663, 4233 },
- { 8490, -4, -7048, 4496 },
- { 7697, -1209, -5328, 3183 },
- { 6451, 801, -4324, -554 },
- { 7387, 1806, -5265, 545 },
- { 7450, -2302, -4445, 1418 },
- { 8817, -1370, -5827, 2168 },
- { 10324, -2406, -5629, 2579 },
- { 8863, -2578, -3537, 467 },
- { 6901, -1624, -3169, 3392 },
- { 7846, 156, -6948, 3381 },
- { 7928, -1115, -5972, 4816 },
- { 6089, -599, -4368, -320 },
- { 7833, 1246, -3960, -621 },
- { 8931, 2521, -6768, 2052 },
- { 8900, 1944, -4126, 40 },
- { 7661, -34, -2855, 2480 },
- { 5873, 474, -3262, 3712 },
- { 7535, -234, -4699, 216 },
- { 5856, 143, -5142, 73 },
- { 8944, -106, -5874, 3663 },
- { 7134, 426, -5879, 2895 },
- { 10199, 1011, -4762, 369 },
- { 8454, 264, -5971, 1291 },
- { 7822, -2449, -4333, 4540 },
- { 6200, -2758, -2632, 1497 },
- { 6070, -4315, -2699, 414 },
- { 7047, -3739, -3210, 1060 },
- { 5675, -3801, -2717, -407 },
- { 4789, -4063, -2628, -744 },
- { 4023, -3366, -3133, -726 },
- { 4296, -2407, -3381, -513 },
- { 4388, -2931, -2820, 1512 },
- { 4559, -4233, -1941, 1976 },
- { 6702, -3208, -1755, 1680 },
- { 4416, -3521, -1052, 2984 },
- { 7154, -4266, -1203, 3732 },
- { 3625, -4242, -3244, 1395 },
- { 6518, -2856, -1304, 2887 },
- { 6170, -1949, -3014, 3973 },
- { 5189, -2451, -4020, 3477 },
- { 6218, -2988, -1921, 3844 },
- { 4827, -3688, -1928, 3343 },
- { 6668, -3991, -2805, 3095 },
- { 5297, -3115, -3684, 2390 },
- { 5354, -4614, -2662, 1504 },
- { 4196, -3091, -4147, 1135 },
- { 3540, -2893, -4007, 100 },
- { 5569, -1602, -4007, 1909 },
- { 4341, -2091, -4272, 252 },
- { 5559, -2878, -3832, 498 },
- { 4548, -4479, -2898, -27 },
- { 5176, -2494, -4635, 1476 },
- { 3294, -3485, -3738, 716 },
- { 4920, -1229, -4195, -365 },
- { 3257, -3518, -3349, 2862 },
- { 5286, -1948, -3485, -778 },
- { 6502, -3051, -152, 2854 },
- { 5864, -4192, -1076, 3451 },
- { 4656, -3122, -3448, 179 },
- { 5907, -754, -1596, 3116 },
- { 7229, -3680, -1590, 2892 },
- { 5107, -3888, -3364, 806 },
- { 6764, -2635, -3450, 134 },
- { 5258, -2827, -2844, -1052 },
- { 5798, -1725, -4305, 205 },
- { 5404, -1213, -3362, 449 },
- { 6224, -2738, -3046, -581 },
- { 4223, -2438, -2725, 3745 },
- { 4751, -3411, -2123, 116 },
- { 3868, -3000, -3954, 2297 },
- { 6819, -2899, -4277, 2825 },
- { 4207, -4754, -2808, 865 },
- { 4804, -1494, -1997, 4688 },
- { 5282, -2213, -548, 3559 },
- { 5580, -1912, -566, 4370 },
- { 6168, -2857, -672, 4053 },
- { 6583, -4515, -2850, 1670 },
- { 6511, -3093, -3988, 1421 },
- { 4646, -1790, -1443, 3650 },
- { 5915, -924, -2020, 896 },
- { 7814, -4181, -3152, 2007 },
- { 6190, -2238, -4817, 2279 },
- { 4737, -4034, -3288, 1835 },
- { 8161, -3633, -3423, 3137 },
- { 7415, -2351, -2088, 4290 },
- { 4106, -2517, -62, 2905 },
- { 4909, -3145, -614, 4112 },
- { 4938, -3281, -397, 1100 },
- { -173, 919, 1589, -5363 },
- { -13, 796, -295, -6655 },
- { -1860, -829, 1141, -4555 },
- { 2298, -838, -664, -5005 },
- { -884, -1097, 2074, -4613 },
- { -101, 281, 2846, -4535 },
- { 1166, 453, 2429, -5910 },
- { 879, -664, 2370, -5452 },
- { 1415, -370, -1699, -4727 },
- { -1413, 1277, -669, -6649 },
- { 2133, 304, -968, -4624 },
- { 380, 586, -2087, -4892 },
- { 1336, 275, -82, -5789 },
- { -2459, 1057, -34, -5416 },
- { 2278, -1758, 866, -5653 },
- { 1945, -2295, -149, -5302 },
- { 1287, -3525, 996, -5255 },
- { 2297, 803, 1177, -6067 },
- { 187, -180, -619, -6202 },
- { -793, -2537, 1554, -5057 },
- { -2703, -204, -629, -5853 },
- { -1007, -146, 313, -5582 },
- { 830, 357, 869, -6363 },
- { -228, -575, -3177, -4433 },
- { -1001, -1553, -142, -5708 },
- { -1644, 1683, 1721, -4533 },
- { 893, 1924, -15, -5791 },
- { 2195, 2061, -262, -5471 },
- { 3031, 270, 311, -5096 },
- { 1912, 1638, -1523, -4677 },
- { -3142, -55, 253, -4914 },
- { 356, -1680, 343, -6123 },
- { -2241, -1734, -976, -5939 },
- { -2196, -2893, 547, -4938 },
- { -1245, 126, -1916, -5419 },
- { -249, -3755, -1422, -5594 },
- { 575, -2683, -1926, -4566 },
- { -762, 1885, 192, -5880 },
- { -811, -2562, -1068, -6013 },
- { -2264, -3086, -976, -4775 },
- { 70, -1215, 2880, -4410 },
- { 714, -3760, 2916, -4691 },
- { -244, -3404, 1740, -4493 },
- { 684, -5137, -328, -5608 },
- { -529, -3825, -1786, -4535 },
- { -713, -4743, -1118, -5546 },
- { 2718, -3788, 1798, -5708 },
- { -1639, -3679, -1564, -6095 },
- { 1693, -2642, -1389, -4539 },
- { 505, -1573, -1651, -4878 },
- { -835, -2256, -1941, -5352 },
- { 1464, -411, 1993, -6441 },
- { 493, -3184, -145, -6148 },
- { -1413, 499, -1617, -6479 },
- { -294, 1722, -1419, -5725 },
- { -2937, -1528, -175, -4624 },
- { -594, -5911, -56, -6146 },
- { -300, -4275, 1156, -5947 },
- { 552, -2643, 2669, -3959 },
- { 905, -4158, 1789, -5809 },
- { 1336, -2009, 2108, -5903 },
- { 1555, -3600, 1110, -6759 },
- { -1294, -3464, 77, -6084 },
- { -1139, -4006, -1270, -4181 },
- { -5094, -3296, 1092, -2847 },
- { -5503, -2883, 1984, -2067 },
- { -4671, -4218, -1417, -4132 },
- { -3763, -3818, 1262, -3082 },
- { -5132, -3430, 2928, -728 },
- { -5957, -2877, 1251, -2446 },
- { -4425, -2319, -212, -4276 },
- { -6201, -1993, 1774, -2182 },
- { -5500, -3836, 2201, -1396 },
- { -6934, -2334, 2366, -1293 },
- { -6124, -4140, 1337, -1977 },
- { -6553, -4186, 1756, -1325 },
- { -5126, -1258, 744, -3656 },
- { -5167, -1390, 1581, -2895 },
- { -4525, -3398, 2429, -1865 },
- { -4076, -3183, 2027, -2510 },
- { -6191, -3274, 1838, -1814 },
- { -4454, -2753, 2723, -1185 },
- { -6655, -4797, 251, -2595 },
- { -6332, -2232, 1832, 217 },
- { -5869, -1698, 134, 340 },
- { -6614, -1045, 2126, -1932 },
- { -4859, -2107, 2010, -2435 },
- { -6274, -1622, 2808, -1374 },
- { -3119, -3209, 521, -3988 },
- { -5676, -2082, -420, -2711 },
- { -7073, -3623, 696, -2343 },
- { -5986, -4224, 572, -2454 },
- { -4340, -4521, 882, -2771 },
- { -6178, -1933, 535, -1444 },
- { -4923, -4163, 1744, -2066 },
- { -6410, -1519, 1058, -2683 },
- { -5077, -1185, 856, -2216 },
- { -7091, -2444, 687, -2597 },
- { -5284, -2165, 3239, -993 },
- { -4763, -1497, 197, -3179 },
- { -4128, -4958, -396, -3578 },
- { -5054, -3878, -647, -2672 },
- { -7005, -3348, 1679, -1579 },
- { -5767, -1017, 2582, -1915 },
- { -7069, -2787, 1331, -2070 },
- { -5532, -2296, 706, -2950 },
- { -5059, -3543, -821, -3637 },
- { -6639, -1835, 1016, -696 },
- { -5611, -5220, -694, -3371 },
- { -5994, -2803, 2933, -729 },
- { -5948, -619, 1596, -2676 },
- { -5486, -4419, 153, -3265 },
- { -4329, -3440, 1646, -1439 },
- { -4083, -3978, 177, -3569 },
- { -4289, -2599, 1224, -3075 },
- { -5707, -3253, 1912, -759 },
- { -6606, -3437, 2562, -571 },
- { -5254, -2444, 769, -352 },
- { -6545, -3154, 582, -1103 },
- { -5328, -2241, 2566, -1775 },
- { -7216, -1936, 1538, -1983 },
- { -3730, -2451, 426, -3869 },
- { -5110, -1385, 2031, -1169 },
- { -6470, -2715, 269, -3123 },
- { -5806, -2480, -97, -3832 },
- { -3683, -4916, -490, -4330 },
- { -6341, -2083, -669, -115 },
- { -4913, -4079, -837, -4673 },
- { -3274, -2497, 2334, -2652 },
- { -1286, -1731, 2550, -3756 },
- { -3375, -877, 926, -3977 },
- { -2525, -2079, 2879, -2625 },
- { -5308, -504, 3111, -1607 },
- { -4904, 460, 4093, -1232 },
- { -1993, 1616, 4656, -1913 },
- { -3481, -1176, 3119, -2236 },
- { -4132, -1502, 2339, -2545 },
- { -2542, 1151, 3569, -2550 },
- { -4381, 430, 3147, -2082 },
- { -3888, 867, 3899, -1657 },
- { -2861, 1290, 4202, -1979 },
- { -3893, -253, 2363, -2764 },
- { -1705, 688, 3827, -2923 },
- { -2223, 2312, 3700, -3148 },
- { -1986, -720, 5021, -795 },
- { -3177, 242, 1952, -3352 },
- { -1854, 1509, 2528, -3815 },
- { -3173, 97, 5019, -706 },
- { -2689, -145, 1375, -3915 },
- { -4838, -385, 2488, -2427 },
- { -4557, -355, 1603, -3060 },
- { -3522, 1832, 3292, -2674 },
- { -3769, 780, 2378, -2704 },
- { -4323, -1932, 3414, -1169 },
- { -2740, 1158, 2729, -3273 },
- { -3647, 210, 1464, -2892 },
- { -2342, -2097, 1513, -3727 },
- { -4422, -1242, 3130, -1833 },
- { -1308, -1039, 4290, -1875 },
- { -1754, -2535, 3298, -2314 },
- { -4102, -186, 4037, -1094 },
- { -1008, 1570, 3290, 171 },
- { -3322, -2621, 2791, -1536 },
- { -2539, -2597, 3442, -1672 },
- { -3411, -2015, 3670, -1174 },
- { -2097, 730, 5581, -1399 },
- { -1510, -74, 4820, -2004 },
- { -4086, -868, 4425, -771 },
- { -956, -986, 3640, -2925 },
- { -2087, -1250, 3464, -2458 },
- { -3308, -2411, 1334, -3667 },
- { -2264, -389, 4004, -1854 },
- { -680, 239, 4058, -3388 },
- { -1357, 30, 2993, -3658 },
- { -3601, -552, 1177, -1136 },
- { -2641, 442, 4374, -1625 },
- { -2525, 770, 1640, -3895 },
- { -3172, -891, 3893, -1608 },
- { -2996, 13, 3277, -2414 },
- { -899, 1055, 4470, -2501 },
- { -422, -584, 3475, -3787 },
- { -1978, -593, 2566, -3415 },
- { -3150, -1280, 2362, -3047 },
- { -3592, 224, 1026, -3932 },
- { -4840, -1189, 3633, -879 },
- { -3952, -2255, 2916, -1826 },
- { -1695, 28, 1810, -349 },
- { -745, -2484, 3308, -3293 },
- { -1016, 1563, 5365, -1823 },
- { -2172, -1787, 4266, -1287 },
- { -1241, -1951, 3982, -2413 },
- { -2009, -2639, 2330, -3480 },
- { 5105, -1618, -2588, -2015 },
- { 6497, -1523, -3218, -910 },
- { 6526, -2305, -2029, -1790 },
- { 5289, -99, -3436, -400 },
- { 5781, -1623, -1577, -2617 },
- { 5259, -670, -3125, -1700 },
- { 6343, -1256, -331, -3222 },
- { 7967, -678, -2195, -1462 },
- { 6119, -695, -2988, -1538 },
- { 6108, 494, -3359, -1548 },
- { 5067, 969, -2328, -2707 },
- { 7595, -435, -1497, -2056 },
- { 6929, -719, -2420, -1665 },
- { 5190, 584, -2982, -2103 },
- { 6106, -444, -1411, -2739 },
- { 5584, 289, -1804, -2803 },
- { 5276, 227, -1180, -3361 },
- { 7544, -1525, -1834, -1725 },
- { 5986, -1470, -2606, -1701 },
- { 5096, -765, -1712, -3006 },
- { 5423, -149, -3933, -1157 },
- { 7651, 26, -2445, -1507 },
- { 4745, -464, -1735, -2362 },
- { 5352, -1011, -1094, -1999 },
- { 6300, -672, -542, -1950 },
- { 6675, -1020, -1318, -1059 },
- { 7218, -2036, -603, -2462 },
- { 7755, -1514, -2430, -1229 },
- { 5041, 449, -1056, -2405 },
- { 6710, -2277, -1344, -2284 },
- { 6824, -1347, -2254, 251 },
- { 6068, -1857, -983, -1316 },
- { 5603, -2177, -2730, -1477 },
- { 5838, -1059, -3604, -970 },
- { 5076, -789, -335, -2413 },
- { 6191, -1634, -2000, -2129 },
- { 5092, -1292, -2543, -1034 },
- { 5305, 435, -1710, -1850 },
- { 6140, 561, -2176, -2380 },
- { 6752, 348, -2496, -1890 },
- { 6405, 273, -1098, -2778 },
- { 6942, -1340, -496, -1381 },
- { 5238, -687, -2454, -2349 },
- { 6959, -882, -1833, -2061 },
- { 6292, -253, -2125, -2199 },
- { 5838, -574, -759, -3215 },
- { 6954, -1484, -640, -2771 },
- { 7498, -1706, -1210, -2154 },
- { 6772, -1003, -1235, -2532 },
- { 6014, 228, -2154, -1108 },
- { 6943, -2178, -2644, -1122 },
- { 7262, -763, -3056, -1090 },
- { 6273, -1478, -1072, 177 },
- { 4734, 425, -2912, 357 },
- { 7129, 168, -1537, -2327 },
- { 7204, -434, -746, -2660 },
- { 6879, 57, -3087, -1310 },
- { 4623, -610, -718, -3459 },
- { 6565, -543, -1998, -339 },
- { 4752, -277, -2066, -1405 },
- { 7435, -1416, -1904, -505 },
- { 4076, 150, -1222, -3556 },
- { 7082, -28, -1456, -1174 },
- { 5941, -446, -1326, -1158 },
- { 3870, -1648, -2474, -2589 },
- { 858, 37, -3387, -3721 },
- { 3557, -1503, -1664, -3383 },
- { 3336, -1972, -3079, -2216 },
- { 3186, 60, -4185, -863 },
- { 3456, -773, -3066, -2457 },
- { 4131, -913, -2060, -2601 },
- { 4431, -691, -4114, -972 },
- { 3461, -334, -3680, -1751 },
- { 2006, -459, -2214, -3827 },
- { 1322, 32, -2816, -3203 },
- { 4425, -1897, -2791, -1946 },
- { 4504, 23, -3421, -1909 },
- { 3090, -885, -2366, -3264 },
- { 3209, -2363, -3730, -834 },
- { 3312, -1471, -3641, -1579 },
- { 4184, -1669, -3323, -1248 },
- { 2190, -931, -3302, -2944 },
- { 2947, -229, -4791, -1195 },
- { 2020, -1626, -2700, -3125 },
- { 2214, -326, -4352, -1683 },
- { 3286, -2619, -2412, -2458 },
- { 1000, -2571, -4129, -2158 },
- { 2496, -2627, -3611, -1433 },
- { 2043, -2191, -2167, -3827 },
- { 2571, -2544, -1915, -3222 },
- { 2022, -1501, -3856, -2165 },
- { 2685, -1180, -1461, -4038 },
- { 1610, -2313, -4391, -1173 },
- { 2340, -2490, -4215, -516 },
- { 1742, -2615, -3632, -2146 },
- { 523, -1293, -4246, -2442 },
- { 3725, -2723, -3014, -1576 },
- { 3554, -1381, -4200, -824 },
- { 1291, -1594, -4777, -1430 },
- { 1452, 515, -2960, -3830 },
- { 4264, -894, -3305, -1826 },
- { 2606, -1452, -4522, -966 },
- { 1196, -830, -4807, -1816 },
- { 1054, -775, -2616, -4071 },
- { 4206, 415, -4344, -1132 },
- { 3044, 491, -4126, -1934 },
- { 988, -901, -3353, -3443 },
- { 1729, -3063, -2267, -3370 },
- { 3915, 912, -2989, -2387 },
- { 3781, 300, -2457, -3050 },
- { 2712, 924, -1350, -1206 },
- { 4230, 405, -2343, 665 },
- { 1878, -873, -225, -29 },
- { 3510, 56, -1334, -3420 },
- { 2850, 1447, -2651, -3150 },
- { 1510, -706, -4125, -2483 },
- { 3115, 793, -1692, -3894 },
- { 2667, 213, -2973, -2786 },
- { 1184, -2384, -3051, -3173 },
- { 2139, 796, -2079, -3697 },
- { 1464, -1483, -3726, -2754 },
- { 2407, -1148, -3915, -1569 },
- { 2612, -1779, -3217, -2271 },
- { 2406, -2870, -2937, -2496 },
- { 2140, 126, -3646, -2758 },
- { 2952, -1036, 268, -1423 },
- { 93, -1931, -3841, -3535 },
- { 389, -2953, -3383, -3343 },
- { 8652, -5511, -1662, 565 },
- { 7427, -2791, -2535, -842 },
- { 8541, -4253, -1407, -988 },
- { 8018, -3203, -2998, 105 },
- { 7231, -3926, -958, 1308 },
- { 7331, -3690, -363, 2586 },
- { 6803, -3646, -2226, -903 },
- { 8163, -2811, -477, -2235 },
- { 9356, -3818, -1685, -684 },
- { 8466, -2854, -302, -698 },
- { 8458, -3224, 517, 279 },
- { 8074, -2619, -1326, 2596 },
- { 8779, -2761, -2527, -441 },
- { 6533, -2887, -899, -696 },
- { 7394, -2305, -1642, -120 },
- { 8281, -3780, -22, 1305 },
- { 9158, -4413, -779, 901 },
- { 9031, -5240, -1109, 1678 },
- { 8717, -3650, 410, -1075 },
- { 7317, -3197, -818, -2264 },
- { 7934, -2385, -1214, -1886 },
- { 8256, -4441, -291, -587 },
- { 7358, -3395, 1090, -270 },
- { 9446, -4910, -1343, -473 },
- { 8187, -4726, -808, 1166 },
- { 7504, -3845, -47, 267 },
- { 8029, -2146, -1283, -383 },
- { 7461, -2705, -853, 783 },
- { 9367, -3636, -645, -354 },
- { 8955, -3473, -308, -1947 },
- { 8676, -2683, -2099, 1485 },
- { 7481, -3003, -871, -444 },
- { 8015, -2839, -1673, 1175 },
- { 6947, -4643, -1527, -1047 },
- { 7622, -2575, -137, -960 },
- { 9388, -4279, -707, -1322 },
- { 8382, -5259, -1283, -565 },
- { 6856, -4138, -1030, 630 },
- { 8659, -2571, -1124, -1666 },
- { 8763, -3807, -537, 2543 },
- { 8049, -3578, -2186, -604 },
- { 8272, -2351, -1985, -1214 },
- { 6855, -3796, -1527, -1631 },
- { 7178, -2896, -1600, -1756 },
- { 7040, -2888, -89, -1586 },
- { 6261, -3403, -264, 998 },
- { 7756, -4699, -1543, -834 },
- { 7682, -4622, -758, -1721 },
- { 8839, -4232, -2932, 1959 },
- { 9363, -4679, -1956, 39 },
- { 7883, -3616, -1414, -1432 },
- { 8828, -3188, -1356, -1312 },
- { 7746, -3987, -121, -2424 },
- { 9262, -3256, -693, 818 },
- { 7670, -3420, -148, 3504 },
- { 7344, -3183, 608, 1595 },
- { 8976, -4139, -1848, 1304 },
- { 6708, -4131, 33, -852 },
- { 7840, -4429, -2275, 79 },
- { 8980, -3858, -2838, 453 },
- { 7815, -4604, -2563, 944 },
- { 8372, -4422, -1783, 3071 },
- { 8623, -5128, -1754, 2888 },
- { 7462, -3281, 889, 920 },
- { 8416, -59, -1320, -1825 },
- { 7928, -1488, -414, -2499 },
- { 8110, -977, -1047, -2042 },
- { 8278, -687, -1597, -1550 },
- { 7988, -174, -977, -2106 },
- { 8609, -1547, -1628, -1527 },
- { 9000, -1798, -946, -1761 },
- { 8954, -872, -1404, -1594 },
- { 8939, 466, -748, -1212 },
- { 9549, -329, -177, -1360 },
- { 9411, -18, -1126, -1568 },
- { 8859, -782, -488, -1338 },
- { 8955, -218, -43, -1209 },
- { 9131, -69, -453, -1001 },
- { 9069, -1519, -1091, -1199 },
- { 9247, -1309, -566, -1146 },
- { 8528, -1617, -287, -1313 },
- { 7763, -745, -149, -2040 },
- { 8294, -343, 257, -2633 },
- { 10149, -893, -552, -1649 },
- { 9398, -915, 218, -2042 },
- { 9703, -1194, -675, -1592 },
- { 9586, -700, -427, -1710 },
- { 8930, 497, -1445, -1218 },
- { 9285, -1323, -163, -1552 },
- { 8431, -1289, -985, -1404 },
- { 8965, -655, 653, -1483 },
- { 9542, -1001, -951, -1128 },
- { 9205, -647, -37, -882 },
- { 8603, -56, 514, -1793 },
- { 9300, -12, -1324, -567 },
- { 8773, 238, -184, -1456 },
- { 9941, -1306, -69, -1792 },
- { 9360, 279, -376, -1919 },
- { 9180, -285, 95, -2170 },
- { 9922, -501, -970, -1570 },
- { 8341, -1493, -856, -2092 },
- { 8780, -981, -850, -1014 },
- { 9721, -548, -1504, -1094 },
- { 9973, -1493, 482, -2105 },
- { 8707, -333, -1027, -1087 },
- { 9098, -469, -315, -1723 },
- { 8879, -1050, -661, -2020 },
- { 8857, 602, -866, -1918 },
- { 8945, -1025, -2154, -1071 },
- { 8484, -1930, -468, -2179 },
- { 9177, -1903, -224, -2112 },
- { 8652, -137, -2097, -1214 },
- { 9063, -973, -1405, -772 },
- { 9328, -456, 662, -2469 },
- { 10101, -697, 127, -2113 },
- { 9685, 811, -2359, -1024 },
- { 8586, -94, -460, -1982 },
- { 7924, -141, -509, -2513 },
- { 7773, -669, -107, -2835 },
- { 8636, -1064, -46, -2409 },
- { 9748, 596, -1815, -1349 },
- { 8924, 304, 547, -2614 },
- { 9442, 746, -1153, -1679 },
- { 9454, -278, -529, -1976 },
- { 8488, 561, -32, -2160 },
- { 10083, -63, -1544, -1364 },
- { 9390, -1278, 568, -1131 },
- { 9740, -49, -2253, -910 },
- { 3636, -2391, -1115, -3614 },
- { 6014, -3204, -1902, -1808 },
- { 5787, -3497, -1116, -2590 },
- { 4365, -3046, -1632, -2668 },
- { 4733, -2192, -2029, -2468 },
- { 5412, -2753, -1633, -2464 },
- { 4455, -3375, -767, -3399 },
- { 4456, -1644, -983, -2841 },
- { 4039, -2523, 38, -3967 },
- { 3406, -2662, 72, -4757 },
- { 4279, -2005, 1055, -4399 },
- { 4321, -1377, -860, -3786 },
- { 3743, -5739, -651, -3047 },
- { 3528, -5510, 361, -4060 },
- { 6496, -4886, -136, -2689 },
- { 4513, -5254, 551, -4010 },
- { 6557, -3413, -92, -3063 },
- { 4186, -2059, 187, 47 },
- { 6210, -4117, -1256, -1985 },
- { 6038, -4343, 351, -2124 },
- { 4305, -4780, -2077, -1897 },
- { 4480, -3815, -2228, -1533 },
- { 5582, -3689, 1221, -3429 },
- { 5532, -4874, 1195, -2765 },
- { 6518, -2853, -905, -2568 },
- { 5467, -2192, 470, -4115 },
- { 4139, -1577, 240, -3493 },
- { 5281, -1926, -729, -3340 },
- { 5214, -2870, 1359, -4289 },
- { 3046, -3510, -1536, -3214 },
- { 5433, -2881, -1230, -1184 },
- { 4861, -3932, -1071, -2791 },
- { 5693, -4234, -1906, -1502 },
- { 4004, -3935, -1804, -2383 },
- { 3728, -3792, 681, -4773 },
- { 3621, -3030, -1951, -2598 },
- { 5133, -3903, 44, -3700 },
- { 3561, -3451, 1183, -5301 },
- { 5026, -2762, -2341, -1780 },
- { 5841, -2492, -467, -3210 },
- { 5591, -1791, 497, -2472 },
- { 5054, -3898, -1822, -2097 },
- { 5813, -2792, 83, -1469 },
- { 4432, -4497, 1670, -5193 },
- { 5338, -4653, -1109, -2200 },
- { 3239, -4401, -648, -3655 },
- { 2147, -3598, -1200, -4242 },
- { 4417, -2271, -1552, -3210 },
- { 6494, -4360, 852, -3565 },
- { 2393, -6358, -856, -4524 },
- { 4959, -4196, -847, -1403 },
- { 4924, -5438, -226, -3026 },
- { 4254, -5303, -1306, -2424 },
- { 4121, -3126, -2334, -1981 },
- { 3437, -4443, -1464, -2953 },
- { 3203, -3459, -529, -4339 },
- { 5896, -5945, 543, -3246 },
- { 1987, -4733, -220, -4863 },
- { 4358, -4431, -514, -3081 },
- { 4583, -2416, -492, -2287 },
- { 2943, -5035, 419, -4927 },
- { 5358, -5129, 987, -4309 },
- { 4460, -3392, 1752, -5634 },
- { 3415, -4633, 1507, -5945 },
- { 811, -4692, -445, 2333 },
- { 1009, -5613, -1857, 1360 },
- { 1338, -2712, -2720, 3036 },
- { 1002, -3754, -2582, 2344 },
- { 750, -4608, -2334, 714 },
- { 2043, -3207, -2822, 2173 },
- { -140, -4654, -2953, 357 },
- { -54, -4026, -2376, 2695 },
- { 1858, -5022, -717, 2287 },
- { 2064, -3894, -722, 3255 },
- { 2727, -4558, -332, 2603 },
- { 1810, -5378, 283, 1826 },
- { 3935, -4326, 762, 3383 },
- { -767, -4697, -2510, 1922 },
- { 2146, -4312, -3090, 1641 },
- { 54, -5881, -2114, 921 },
- { 1992, -5766, -640, 1574 },
- { 1200, -5371, -1114, 1828 },
- { 2973, -5337, 34, 2266 },
- { 1531, -5018, -2817, 1192 },
- { 3078, -4570, 117, 1990 },
- { 924, -4286, -1388, 2713 },
- { 142, -5058, -2848, 1487 },
- { -106, -6180, -881, 842 },
- { 673, -5433, -229, 1596 },
- { 783, -5710, -2784, 562 },
- { 1935, -5729, -2009, 856 },
- { -410, -3375, -3326, 2734 },
- { 234, -3000, -2628, 3260 },
- { 733, -3405, -3806, 1589 },
- { 771, -4285, -3544, 1314 },
- { 1192, -3563, -3960, 2178 },
- { 206, -5555, -1250, 1546 },
- { -130, -3815, -1210, 3041 },
- { 646, -3940, -393, 2992 },
- { -184, -4931, -1767, 1925 },
- { 2746, -5120, -2275, 1464 },
- { 2440, -3731, -3352, 2729 },
- { -490, -4942, -3779, 997 },
- { 68, -2636, -4167, 3778 },
- { 48, -3986, -4118, 2106 },
- { -978, -5486, -1336, 1390 },
- { 1126, -5297, -855, 640 },
- { -472, -3975, -3622, 1557 },
- { 2456, -5344, -1523, 1648 },
- { -774, -5652, -2417, 1147 },
- { 995, -6122, -812, 1132 },
- { 3282, -4571, -1763, 2175 },
- { 3655, -3862, -676, 3568 },
- { 3038, -3647, -1672, 3381 },
- { 2595, -2964, -2772, 3263 },
- { 4176, -3353, -1148, 4354 },
- { 1603, -3442, -1500, 3444 },
- { 828, -6226, -1783, 678 },
- { 1421, -3333, -3080, 3403 },
- { 1121, -4727, -1924, 1984 },
- { -186, -5083, -682, 1796 },
- { 819, -2778, -3488, 530 },
- { 421, -2873, -3832, 2596 },
- { 2164, -4263, -1605, 2282 },
- { 585, -4437, -682, -491 },
- { -644, -4452, -1157, 2325 },
- { 1991, -4299, 210, 2834 },
- { 2135, -3632, -2113, 665 },
- { -7482, -2724, -2662, -1380 },
- { -6983, -2166, -3756, -3509 },
- { -7085, -1439, -2397, -3112 },
- { -7760, -3049, -3319, -2822 },
- { -8413, -2760, -4406, -3298 },
- { -5995, -3943, -1260, -3750 },
- { -7879, -1554, -3464, -2606 },
- { -6314, -2034, -3878, -1681 },
- { -8849, -2084, -1399, -1231 },
- { -7153, -2602, -1384, -817 },
- { -8041, -2571, -407, -2785 },
- { -7246, -2233, -1578, 260 },
- { -7336, -3883, -4061, -1342 },
- { -7619, -3908, -2342, 382 },
- { -8684, -3724, -1662, -727 },
- { -7850, -2922, -1770, -3449 },
- { -6766, -2034, -1293, -1988 },
- { -6895, -2116, -968, -3744 },
- { -7136, -5147, -2618, -2809 },
- { -8224, -3724, -2519, -1589 },
- { -6711, -2750, -3021, -219 },
- { -8059, -1638, -1102, -3175 },
- { -8710, -4839, -3963, -3143 },
- { -9363, -4965, -3257, -1002 },
- { -6099, -1751, -3157, -395 },
- { -6453, -3216, -4597, -483 },
- { -7879, -5477, -839, -2638 },
- { -7202, -4038, -526, -2856 },
- { -8022, -1228, -1910, -1646 },
- { -9117, -1393, -1582, -2535 },
- { -9095, -2693, -636, -2605 },
- { -9076, -2580, -3481, -2519 },
- { -8327, -4859, -2422, 83 },
- { -8368, -2129, -2324, -2173 },
- { -8554, -4563, -3842, -2007 },
- { -10462, -4261, -1934, -2084 },
- { -9717, -3187, -2294, -1896 },
- { -9625, -3889, -3020, -3224 },
- { -9857, -4955, -4239, -2184 },
- { -9752, -2351, -2277, -3129 },
- { -7219, -1302, -2639, -1603 },
- { -7477, -4360, -3718, -559 },
- { -5680, -2033, -2326, -3078 },
- { -10190, -5548, -4643, -3601 },
- { -9431, -4121, -879, -2479 },
- { -8365, -5450, -2020, -1439 },
- { -6289, -5178, -1605, -3845 },
- { -8319, -3866, -687, -2792 },
- { -8131, -1031, -3608, -3947 },
- { -10510, -2560, -1199, -2082 },
- { -11015, -3640, -2748, -3041 },
- { -8762, -5022, -5231, -1162 },
- { -10153, -2715, -4648, -4859 },
- { -7930, -5205, -1900, -3600 },
- { -9561, -3548, -4812, -3722 },
- { -7663, -4709, -1180, -1475 },
- { -9073, -5707, -1815, -2980 },
- { -8602, -2363, -2675, -3770 },
- { -9967, -5614, -3575, -3838 },
- { -8324, -1005, -2131, -3254 },
- { -10331, -5737, -2550, -2940 },
- { -8234, -3354, -3361, -4479 },
- { -8140, -1951, -4526, -4545 },
- { -6679, -2662, -2284, -4182 },
- { -1122, -1514, -6427, -212 },
- { 54, -1660, -5424, -1404 },
- { 254, -2778, -5222, 846 },
- { -267, -1661, -6577, 814 },
- { -305, -2021, -5759, 1484 },
- { -1791, -2446, -6867, -86 },
- { -2929, -3158, -6603, -1799 },
- { -1391, -3189, -5557, -1053 },
- { -1602, -884, -6767, -1213 },
- { -361, -318, -6219, -44 },
- { -4078, -2635, -5523, -433 },
- { -956, 478, -4382, 1470 },
- { -3300, -2462, -6021, -2721 },
- { 708, -2434, -5085, -540 },
- { -2435, -3607, -5647, -2110 },
- { -491, -1134, -4681, -2886 },
- { 87, -3435, -4641, -1194 },
- { -586, -2927, -4784, 366 },
- { -1394, -2326, -6021, 350 },
- { 97, -2519, -4678, -2120 },
- { -1547, -1907, -5069, -2993 },
- { 268, -3724, -4719, 127 },
- { -827, -1190, -5912, 1144 },
- { -3959, -2322, -6898, -1974 },
- { -2728, -2228, -6426, -562 },
- { -456, -666, -5785, -1609 },
- { 531, -1096, -5731, -656 },
- { -3569, -688, -3915, 110 },
- { -4752, -1725, -4393, -377 },
- { -3210, -3315, -6960, -840 },
- { -688, -3416, -4971, 1221 },
- { -1833, 77, -6491, -2434 },
- { -239, -255, -6850, -886 },
- { -2112, -1490, -6291, -2689 },
- { -1544, -4579, -5198, -1261 },
- { -2771, -4014, -5520, 683 },
- { -1635, -2829, -5512, 1214 },
- { -958, -2582, -4823, 2360 },
- { -2077, -4566, -4642, 365 },
- { -3112, -4214, -5960, -823 },
- { -2467, -2510, -4858, 1467 },
- { -1561, -3399, -5822, 211 },
- { -775, -1081, -4424, 2636 },
- { -1263, 25, -6378, -1392 },
- { -3476, -366, -5417, -1393 },
- { -3176, -1476, -4149, 1466 },
- { -2479, 518, -4448, -257 },
- { -2992, 158, -4660, -1279 },
- { -1320, -3872, -4479, 1147 },
- { -1475, -312, -5318, 539 },
- { -3527, -1679, -5860, -1681 },
- { -3397, -3438, -5593, 1866 },
- { -4089, -2439, -4763, 1275 },
- { -748, -4513, -4687, -48 },
- { -2166, -4531, -4691, -2856 },
- { -2385, -853, -6035, -627 },
- { -1194, -4091, -4472, -1963 },
- { -682, -3234, -4084, -3033 },
- { -3255, -5015, -5328, -12 },
- { -2313, -3436, -4601, -155 },
- { -2792, -1038, -6947, -2019 },
- { -1244, -1526, -5771, -1882 },
- { -4679, -3731, -5506, 283 },
- { -3062, -66, -3558, -758 },
- { -4895, -1187, 4751, 3728 },
- { -7600, -2752, 3320, 4613 },
- { -5703, -2975, 3944, 2659 },
- { -4972, -1257, -246, 2952 },
- { -4221, -2487, 1702, 4295 },
- { -2900, -1529, 2458, 4935 },
- { -5061, 407, 2416, 4050 },
- { -6931, -3478, 2761, 2213 },
- { -6037, -3921, 3192, 1866 },
- { -6113, -811, 2407, 3782 },
- { -5878, -1716, 1207, 3478 },
- { -5953, -2853, 2207, 2712 },
- { -6807, -3223, 2749, 3595 },
- { -3272, -3157, 1389, 3788 },
- { -5368, -1904, 1980, 5077 },
- { -7235, -1398, 3075, 4548 },
- { -4765, -3487, 2755, 2796 },
- { -7658, -4435, 2694, 2582 },
- { -6997, -4282, 456, 3832 },
- { -5563, -3115, -63, 3713 },
- { -4244, -4220, 1450, 2767 },
- { -3801, -2194, 190, 4303 },
- { -5458, -4119, 1958, 2274 },
- { -7300, -3469, 3514, 3193 },
- { -4594, -2067, 775, 4752 },
- { -3389, -1654, 1464, 5412 },
- { -4845, -3483, 964, 3437 },
- { -6007, -2818, 1666, 4659 },
- { -8709, -5007, 1757, 3287 },
- { -5833, -4389, 1025, 3171 },
- { -5788, -1780, 3944, 3661 },
- { -4430, -920, 1938, 4753 },
- { -7066, -1857, 4591, 4538 },
- { -3549, -513, 1427, 5317 },
- { -7517, -1220, 2883, 3049 },
- { -7605, -2687, 1874, 2735 },
- { -8718, -4035, 2676, 3730 },
- { -7990, -3907, 1185, 2607 },
- { -6058, -1744, 3349, 5157 },
- { -5954, 565, 3161, 3250 },
- { -6478, -612, 1930, 2271 },
- { -6535, -1445, -2, 1618 },
- { -8963, -4151, 1192, 4044 },
- { -7227, -3570, 1600, 4234 },
- { -4674, 79, 595, 3015 },
- { -3974, 430, 2727, 5137 },
- { -5299, 9, 3714, 4779 },
- { -6779, -2699, -8, 2436 },
- { -7016, -1145, 1293, 2310 },
- { -6955, -3312, 1534, 1801 },
- { -4025, 740, 1850, 4054 },
- { -9589, -3460, 4154, 5270 },
- { -4404, -1181, 4298, 5173 },
- { -7356, -4583, -18, 2644 },
- { -6516, -1235, 4439, 6234 },
- { -3453, -301, 4344, 4464 },
- { -4643, 1530, 3315, 4340 },
- { -4575, -2557, 3754, 3682 },
- { -3643, -3501, 2051, 2997 },
- { -5412, -2475, 2301, 1579 },
- { -5846, 259, 1360, 2348 },
- { -5258, -1358, 1050, 838 },
- { -5542, -219, 6377, 5750 },
- { -5713, -2952, 922, 899 },
- { -2049, -1135, 5206, 1033 },
- { -1693, -1886, 4835, -106 },
- { -2344, -3504, 4232, -13 },
- { -2475, -2334, 5043, 1126 },
- { -787, -2549, 3880, 2138 },
- { -3159, -2341, 4830, 2887 },
- { -1780, -1009, 6240, 2061 },
- { -4327, -3363, 2818, 886 },
- { -3376, -2743, 4104, 207 },
- { -3250, -4640, 2718, 1498 },
- { -382, -1075, 4382, 3460 },
- { -2416, -4168, 3530, 816 },
- { -1756, -2708, 4861, 622 },
- { -1879, -2097, 5156, 2889 },
- { -2496, -2418, 3722, 2671 },
- { -2717, -3252, 3341, 1944 },
- { -4063, -4091, 3306, 267 },
- { -3549, -3808, 3747, 842 },
- { -2635, 546, 5794, 1894 },
- { -1857, -1121, 4383, 3964 },
- { -2226, -2166, 3489, 3678 },
- { -3492, -660, 5323, 1063 },
- { -3033, -3130, 4382, 1828 },
- { -2703, -625, 6369, 2851 },
- { -1656, -2842, 4584, -528 },
- { -4781, -2622, 4390, 2097 },
- { -413, -2045, 5081, 3035 },
- { -3810, -2662, 4532, 1095 },
- { -3144, -1858, 5215, 1880 },
- { -3562, -1795, 4928, 670 },
- { -4800, -1509, 5189, 1859 },
- { -1085, -3832, 4169, 900 },
- { -1969, -3270, 2857, 2878 },
- { -4267, -4140, 3176, 1805 },
- { -5145, -3727, 3524, 1168 },
- { -1346, -1876, 5501, 1748 },
- { -4998, -2945, 3699, 338 },
- { -3458, -3096, 3406, -635 },
- { -1751, -3209, 3508, 395 },
- { -2507, 170, 5987, 705 },
- { -3756, -1072, 5647, 3536 },
- { -2870, -1439, 5026, 3212 },
- { -3913, -3225, 3669, 2144 },
- { -3739, 226, 5747, 764 },
- { -2052, -820, 5266, 3093 },
- { -3214, -3820, 2409, 2391 },
- { -4398, -2588, 3501, -218 },
- { -4484, -1763, 4180, -198 },
- { -3368, -1525, 4362, -134 },
- { -2407, 224, 4905, 3533 },
- { -1369, -2937, 4728, 1788 },
- { -4848, -1707, 4159, 851 },
- { -3454, -1749, 4281, 3230 },
- { -1990, -3853, 3487, 1735 },
- { -3117, 92, 6155, 4075 },
- { -2676, -2472, 4078, -589 },
- { -1547, -2012, 2626, 1835 },
- { -4275, -588, 4824, 725 },
- { -601, -2249, 3736, 3548 },
- { -4060, -61, 5333, 3097 },
- { -4303, 7, 6551, 3054 },
- { -5003, -1029, 5786, 3319 },
- { -2810, -728, 5392, 199 },
- { -1232, -200, 5228, 3121 },
- { 2621, 165, -6255, 298 },
- { 3669, 537, -6844, 1564 },
- { 1598, -1190, -6235, 2523 },
- { 2164, -32, -6894, 1383 },
- { 853, -1597, -6069, 1449 },
- { 1377, -1661, -5266, 108 },
- { 2660, 48, -5172, -517 },
- { 1903, -391, -5677, 1010 },
- { 3792, 206, -5274, -11 },
- { 1239, 2776, -2929, 2721 },
- { 4071, 149, -7259, 3125 },
- { 1436, -480, -6156, -196 },
- { 1373, -1960, -5005, 3122 },
- { 3413, -1271, -5176, 3283 },
- { 3060, -68, -6495, 2238 },
- { 2700, -2075, -4681, 91 },
- { 2928, -1728, -5168, 1858 },
- { 4424, 828, -4471, 88 },
- { 2672, -2604, -4038, 2753 },
- { 5223, -123, -6749, 2295 },
- { 4237, -420, -5538, 1353 },
- { 4744, -1281, -4097, 4708 },
- { 1103, -2764, -4751, 2024 },
- { 3747, -1913, -3911, 3960 },
- { 2470, -1416, -5542, 615 },
- { 4847, -1354, -5334, 1733 },
- { 5336, 88, -7593, 4007 },
- { 2388, -2880, -4807, 1037 },
- { 4495, 1391, -5685, -139 },
- { 5253, 1637, -6450, 1533 },
- { 1199, 795, -5515, 1261 },
- { 1397, -1259, -4252, 3838 },
- { 746, 70, -6640, 604 },
- { 1584, 166, -4972, 3072 },
- { 380, -999, -5397, 2267 },
- { 2974, 1707, -3242, 5360 },
- { 5202, -403, -5453, 2832 },
- { 3718, -1731, -4760, 714 },
- { 4150, -975, -4792, 61 },
- { 2925, -818, -4841, 15 },
- { 5301, 577, -4006, 3259 },
- { 5265, 1986, -5679, 3028 },
- { 3752, 1928, -4509, 3729 },
- { 3278, 1925, -6370, 1247 },
- { 5107, 1721, -4853, 3127 },
- { 3279, 2982, -2515, 4005 },
- { 4622, 668, -6204, 759 },
- { 6034, 317, -5763, 4818 },
- { -558, 57, -3785, 2817 },
- { 4476, 1616, -3965, 4536 },
- { 5953, 2056, -8215, 2715 },
- { 4387, 2613, -7463, 868 },
- { 5834, 1088, -4736, 4924 },
- { 6473, -856, -6991, 4172 },
- { 4959, -293, -5162, 76 },
- { 2731, -843, -6119, 3847 },
- { 3245, 1202, -6833, 616 },
- { 2553, 1383, -3829, 3859 },
- { 4332, 2099, -3480, 3622 },
- { 2110, 2683, -2728, 3990 },
- { 876, 1167, -3290, 3466 },
- { 3991, 1709, -2410, 4077 },
- { 5105, 939, -2584, 3256 },
- { 4719, 688, -1566, 3040 },
- { -3632, 4335, 1266, -3303 },
- { -4956, 3207, 1312, -2806 },
- { -4669, 2627, 2663, -2435 },
- { -4282, 3708, 2303, -3038 },
- { -4536, 2297, -175, -3350 },
- { -5234, 2503, -139, -880 },
- { -3978, 1512, 1092, -3619 },
- { -4519, 4649, 1363, -2455 },
- { -5118, 3132, 1961, -1577 },
- { -5196, 3379, -182, -1378 },
- { -6420, 4486, 2397, -1993 },
- { -5030, 5046, 1292, -1118 },
- { -4559, 2573, -927, -1406 },
- { -3501, 3730, 691, -4930 },
- { -4364, 2758, 1007, -3909 },
- { -4026, 2839, -1559, -2340 },
- { -5037, 4053, 836, -1571 },
- { -4727, 5136, 1110, -3588 },
- { -5245, 2799, -999, -2164 },
- { -4954, 1501, 422, -3963 },
- { -5994, 2726, 1462, -2833 },
- { -5621, 5159, 2038, -2512 },
- { -4991, 2291, 1917, -3151 },
- { -5469, 4382, -148, -2978 },
- { -5858, 1983, 807, -2720 },
- { -4709, 3556, 952, -467 },
- { -2489, 2362, 1714, -4230 },
- { -4717, 5004, -1180, -3672 },
- { -5914, 3653, 1359, -1317 },
- { -5506, 2995, 780, -1059 },
- { -5287, 3945, 2480, -2293 },
- { -3849, 4358, 322, -1770 },
- { -3911, 3570, 252, -3185 },
- { -3660, 5128, 158, -3719 },
- { -4599, 3277, -503, -2727 },
- { -3673, 3760, -1252, -3339 },
- { -5161, 2337, 388, -1943 },
- { -3529, 2216, 2156, -3080 },
- { -4309, 4331, 1808, -1460 },
- { -4782, 3820, 480, -2504 },
- { -4166, 3544, -378, -1567 },
- { -5572, 2466, -418, -2909 },
- { -6096, 2930, 119, -1878 },
- { -5963, 3554, 1011, -2233 },
- { -6433, 4335, 935, -2930 },
- { -5004, 3314, -1352, -3430 },
- { -6042, 3463, -1008, -3940 },
- { -4671, 2214, -640, -5040 },
- { -2795, 3759, 1412, -3803 },
- { -3647, 4436, 729, -515 },
- { -3594, 1033, 56, -4148 },
- { -2908, 3027, 2889, -3485 },
- { -3338, 2234, 313, -4285 },
- { -3825, 4497, -561, -2634 },
- { -6167, 3012, -48, -3149 },
- { -4828, 3515, -969, -4475 },
- { -5789, 2757, -539, -4173 },
- { -2452, 3067, 564, -4249 },
- { -4921, 1358, 1331, -2889 },
- { -3127, 4239, -1045, -1523 },
- { -4780, 2326, -1118, -3446 },
- { -3908, 5546, 152, -2622 },
- { -6972, 2976, 337, -2809 },
- { -4839, 4613, -35, -4077 },
- { -1408, 4822, -1149, -4997 },
- { -981, 4979, -912, -6304 },
- { -2098, 5689, -888, -2878 },
- { -3343, 4814, -657, -4434 },
- { -2461, 3601, -967, -4869 },
- { -2652, 3944, 87, -5520 },
- { -1104, 6076, 174, -6407 },
- { 355, 5370, -1721, -5869 },
- { 1242, 4497, -1107, -5091 },
- { -89, 4002, -1491, -5182 },
- { 1059, 5693, -1591, -4905 },
- { 1323, 4682, -2078, -4768 },
- { 818, 3996, -549, -5468 },
- { -287, 4529, 929, -5543 },
- { -919, 5519, -2791, -2844 },
- { -1407, 5679, -3289, -3974 },
- { -189, 6530, -3547, -4002 },
- { -900, 7039, -3371, -4855 },
- { -2983, 7211, -363, -4835 },
- { -814, 6503, -104, -5106 },
- { -2386, 6896, 809, -4919 },
- { 845, 4492, 352, -6621 },
- { -1998, 7237, -1646, -4231 },
- { -3380, 6251, 471, -4577 },
- { -1908, 7059, 84, -5726 },
- { -340, 6346, -803, -6265 },
- { -2279, 5834, -47, -4633 },
- { -1532, 5286, -1748, -1901 },
- { -2757, 6188, -453, -3415 },
- { -1255, 6405, -2043, -6357 },
- { 918, 5581, -121, -5667 },
- { 1840, 5336, -821, -5034 },
- { -2475, 4992, -1825, -3104 },
- { -2413, 5606, -1789, -4298 },
- { 132, 5128, -2389, -4442 },
- { 223, 6400, -2653, -4742 },
- { -673, 5012, 680, -4582 },
- { -1657, 6624, -349, -3596 },
- { -755, 6289, -1860, -3978 },
- { -572, 6894, -1946, -5207 },
- { -1141, 4756, -2665, -5586 },
- { -1073, 4269, -431, -4030 },
- { 186, 5761, 916, -5868 },
- { -1907, 4836, 1017, -5106 },
- { -963, 3363, -1248, -6348 },
- { -3262, 4774, -1818, -5858 },
- { 847, 3812, -2538, -4302 },
- { -1223, 5903, 1360, -5479 },
- { -1094, 6923, -1244, -2381 },
- { 267, 6276, -709, -2846 },
- { -157, 5840, 1124, -4266 },
- { 889, 3206, -910, -5305 },
- { -1736, 3344, 582, -4838 },
- { -2357, 5676, -2695, -6277 },
- { -1916, 6901, -986, -5397 },
- { -3062, 6028, -695, -5687 },
- { 1836, 3566, -1357, -5226 },
- { -2176, 4938, 646, -3872 },
- { -2199, 3055, -208, -6124 },
- { -236, 3032, -821, -5325 },
- { -3989, 7277, -565, -3899 },
- { -595, 4362, 74, -5975 },
- { 684, 5874, -841, -4424 },
- { -2731, 6305, -2389, -5465 },
- { -5775, 1325, -56, -2528 },
- { -7029, -534, -1890, -3278 },
- { -5798, -15, -2734, -2210 },
- { -5504, -1198, -353, -3659 },
- { -5079, 960, -894, -4336 },
- { -6073, -36, -133, -3014 },
- { -5782, -259, -1025, -3986 },
- { -6843, 1262, -807, -1639 },
- { -5263, -918, -3290, -579 },
- { -4840, 461, -2158, -533 },
- { -6014, -50, -620, 504 },
- { -5843, 241, -1359, -282 },
- { -5898, 577, 769, -3271 },
- { -6833, -946, -466, -3347 },
- { -6026, 1459, -512, -729 },
- { -7361, 747, -388, -1110 },
- { -6391, 2142, -1160, -2513 },
- { -6995, 304, 498, -2673 },
- { -6757, 679, -386, -433 },
- { -5222, 1688, -1093, -1032 },
- { -5019, 575, 184, -3627 },
- { -4237, 628, -3507, -1243 },
- { -7479, -456, -1722, -1486 },
- { -6464, 713, -1273, -1153 },
- { -6255, 1682, -606, -3607 },
- { -7033, 1497, -71, -1955 },
- { -6694, 1556, -1721, -3214 },
- { -6114, -356, 813, -2575 },
- { -5308, 632, -1851, -1636 },
- { -5742, -911, -1733, 383 },
- { -6083, -387, -2313, -879 },
- { -6535, -530, -1505, -2083 },
- { -4896, 1223, -2750, -1816 },
- { -6392, -463, -3247, -2093 },
- { -5373, 1264, -2706, -3042 },
- { -3894, -1390, -1020, -891 },
- { -6179, 1168, -1966, -1922 },
- { -5162, 1668, -1617, -1916 },
- { -6453, 920, -1169, -2432 },
- { -6130, 2005, -536, -1519 },
- { -6552, -98, -518, -1938 },
- { -7528, 355, -1101, -1772 },
- { -5745, 610, -247, -1360 },
- { -7003, 177, -2064, -1958 },
- { -6956, -570, -2220, -4225 },
- { -7830, 791, -1394, -2774 },
- { -7634, 480, -3171, -4224 },
- { -7913, 1154, -350, -2381 },
- { -5063, 1704, -1804, -2977 },
- { -4887, -524, -2703, 188 },
- { -5551, 406, -1620, -3063 },
- { -7109, 1342, 381, -3021 },
- { -6846, 631, -458, -3398 },
- { -4606, -605, 11, -3930 },
- { -8134, -225, -1738, -2648 },
- { -7043, 402, -2734, -3059 },
- { -7417, 1825, -2545, -4389 },
- { -6971, -236, -1031, -665 },
- { -5752, 2111, -1632, -3808 },
- { -7660, -78, -624, -3135 },
- { -6358, 619, -1951, -3911 },
- { -8134, 408, -1935, -3695 },
- { -6335, 1911, -2368, -4505 },
- { -7116, 2163, -344, -2753 },
- { 2357, 4488, 2220, -5682 },
- { 1385, 3206, 2300, -5305 },
- { 1419, 2557, 5203, -3516 },
- { 262, 4315, 3920, -1847 },
- { 3316, 3187, 1612, -5609 },
- { 1729, 2350, 1673, -6068 },
- { 1603, 6126, 1467, -2839 },
- { -1339, 3316, 3691, -3530 },
- { -563, 4618, 3180, -4548 },
- { 463, 4624, 3111, -5614 },
- { 1246, 5455, 3356, -5720 },
- { 480, 2149, 5422, -2893 },
- { 1768, 4827, 913, -5579 },
- { -149, 5381, 4366, -3297 },
- { 985, 3672, 2644, -92 },
- { -258, 2911, 5817, -2213 },
- { 3428, 3289, 3351, -3541 },
- { -666, 3295, 4727, -2869 },
- { 35, 6641, 4160, -4052 },
- { 623, 6787, 3156, -4560 },
- { 2654, 4360, 4676, -4632 },
- { 1386, 5246, 4834, -4497 },
- { 3488, 4574, 3856, -5946 },
- { 383, 4481, 4168, -4110 },
- { 1753, 3652, 4288, -3326 },
- { 1344, 4905, 2508, -4660 },
- { 1580, 4106, 3104, -2224 },
- { 2027, 5038, 1683, -1554 },
- { 446, 3699, 5872, -3013 },
- { 4637, 4087, 3578, -5018 },
- { 2629, 3560, 5331, -4900 },
- { 1527, 6674, 2523, -4131 },
- { -1437, 2804, 2528, -4464 },
- { -229, 3355, 2016, -5537 },
- { 3666, 3418, 4374, -4581 },
- { 1192, 3799, 923, -6596 },
- { 2040, 2956, 448, -5322 },
- { 2468, 5768, 4029, -5869 },
- { 3438, 6516, 3529, -6667 },
- { 2737, 5495, 680, -5535 },
- { 3896, 5727, 1801, -4958 },
- { 4988, 4957, 3592, -6518 },
- { -542, 4416, 5794, -2787 },
- { 4136, 4354, 2064, -4696 },
- { 3067, 5936, 1207, -3396 },
- { 2789, 4966, 2405, -3854 },
- { 1731, 3270, 3251, -1063 },
- { 1767, 5537, 2084, -2349 },
- { 465, 3116, 4532, -837 },
- { 1499, 2627, 4610, -2212 },
- { 122, 3095, 3642, -3552 },
- { 2542, 2866, 2705, -6402 },
- { 3134, 4323, 698, -4785 },
- { 731, 1859, 3112, -5242 },
- { 2553, 2980, 3241, -4846 },
- { 1329, 5310, 1607, -6624 },
- { 2468, 1858, 3476, -1034 },
- { -172, 4996, 2000, -5562 },
- { 2621, 4220, 1574, -3386 },
- { -333, 1832, 3362, -4117 },
- { 2169, 6762, 3065, -6225 },
- { 2844, 5528, 3223, -4765 },
- { 526, 5175, 1644, -4267 },
- { 2922, 4426, 2414, -2610 },
- { 452, 1399, -4516, -2636 },
- { 2872, 1720, -4667, -1435 },
- { 1279, 702, -5424, -1984 },
- { 2187, 870, -5021, -1341 },
- { 583, -144, -4628, -2464 },
- { 3, 2237, -5284, -2827 },
- { -19, 1005, -5460, -1819 },
- { 2897, 2084, -5885, -515 },
- { -400, 3370, -5527, -2947 },
- { 1505, 2593, -5518, -1802 },
- { 1341, 4534, -5094, -1899 },
- { 3241, 3670, -5493, -1252 },
- { -1287, 921, -5994, -1675 },
- { 627, 408, -6652, -364 },
- { -260, 1127, -4849, -3247 },
- { 371, 3400, -5976, -2285 },
- { 1533, 1566, -6373, -610 },
- { 2462, 4274, -6184, -1254 },
- { 1782, 3363, -6222, -1381 },
- { 572, 4650, -5673, -2754 },
- { 2674, 3414, -4460, -2154 },
- { 3614, 3820, -6883, -398 },
- { 1136, -1, -5511, -1112 },
- { -1773, 1137, -5647, -2377 },
- { -753, 2104, -6085, -2565 },
- { -204, 3025, -4731, -1418 },
- { -1486, 1438, -4380, -216 },
- { 302, 858, -5786, -264 },
- { 3486, 1495, -5234, -783 },
- { 888, 2327, -3423, -3720 },
- { -259, 772, -6596, -1311 },
- { -1197, 2073, -5174, -1826 },
- { 1500, 3470, -4462, -2645 },
- { 3072, 1960, -3277, -2264 },
- { 1841, 952, -4324, -2340 },
- { 1994, 2200, -3940, -2923 },
- { -1782, 1699, -4667, -1075 },
- { -1464, 2906, -3468, -375 },
- { 366, 2380, -3747, 1467 },
- { -545, 1645, -4619, 376 },
- { 1724, 2350, -2374, -3512 },
- { 3184, 2628, -2996, -3275 },
- { 734, 2010, -6239, -1479 },
- { 524, 3756, -4496, -3263 },
- { 1492, 3570, -3494, -3600 },
- { -932, 618, -5389, -2894 },
- { -133, 2161, -4083, -3267 },
- { 786, 774, -3279, -3731 },
- { 1078, 803, -3843, -3007 },
- { -332, 3405, -3347, 40 },
- { -17, 6, -4005, -3690 },
- { -189, 4372, -4488, -2561 },
- { -450, 3846, -3790, -1370 },
- { 362, 2212, -5272, -15 },
- { -1529, 791, -6802, -2296 },
- { 2145, 4241, -4474, 376 },
- { 1813, 2426, -2932, -2726 },
- { -542, 4557, -3140, -1080 },
- { 1192, 3784, -4371, -20 },
- { 2784, 5188, -6399, -1394 },
- { 431, 4561, -3673, -1398 },
- { 1382, 3096, -4083, 1253 },
- { 1209, 4224, -2930, 1500 },
- { 2798, 2684, -6676, -606 },
- { -2396, 1510, -5381, -2713 },
- { -2625, 2542, -4032, -2880 },
- { -1231, 3967, -4098, -2886 },
- { -1393, 2374, -3862, -4525 },
- { -2495, 1665, -1637, -5445 },
- { -3854, 1759, -1750, -4944 },
- { -2373, 1668, -2856, -6251 },
- { -2668, 1981, -886, -4557 },
- { -2927, 4427, -3451, -6172 },
- { -1925, 2596, -4696, -2527 },
- { -3202, 2847, -3928, -5896 },
- { -3332, 1665, -5025, -3412 },
- { -3212, 3115, -4155, -4062 },
- { -1013, 3205, -5133, -3751 },
- { -2022, 4595, -3947, -5611 },
- { -3556, 1755, -3715, -2300 },
- { -1784, 4114, -2723, -1773 },
- { -3586, 4081, -2733, -4942 },
- { -1608, 3685, -4154, -4573 },
- { -3368, 4042, -4452, -6227 },
- { -1407, 3881, -5729, -3719 },
- { -2751, 3281, -5077, -4999 },
- { -3791, 2410, -4906, -5288 },
- { -730, 2303, -4217, -3755 },
- { -1812, 2311, -5492, -3709 },
- { -610, 4336, -3915, -3783 },
- { -2841, 4337, -4278, -4430 },
- { -1662, 4666, -4661, -3964 },
- { -589, 5209, -4923, -3682 },
- { -4155, 2234, -4076, -4218 },
- { -3951, 2770, -2665, -2805 },
- { -2302, 3228, -3717, -1908 },
- { -3129, 4373, -2264, -2851 },
- { -447, 1363, -3578, -4323 },
- { -2648, 4237, -3159, -3071 },
- { -4072, 3241, -3541, -4605 },
- { -4507, 3458, -2339, -3838 },
- { -1646, 997, -4926, -3970 },
- { -3025, 1614, -3940, -1242 },
- { -1337, 1756, -3163, -5529 },
- { -3203, 1865, -3282, -4354 },
- { -1646, 2118, -2203, -6018 },
- { 174, 1871, -2707, -4639 },
- { -2607, 1485, -4778, -4750 },
- { -2199, 3991, -3134, -4879 },
- { -2962, 3323, -2816, -2419 },
- { -5286, 2495, -4548, -5395 },
- { -2810, 3710, -2274, -4211 },
- { -330, 3006, -2993, -4678 },
- { -1187, 2411, -2743, -5196 },
- { -664, 4033, -3101, -5641 },
- { -1458, 3602, -2816, -5371 },
- { -4116, 4923, -3321, -5630 },
- { -4165, 2528, -2592, -4798 },
- { -2759, 3080, -2333, -5719 },
- { -5157, 3011, -5526, -6348 },
- { -3095, 2126, -5881, -4234 },
- { -4377, 3849, -3600, -6099 },
- { -1994, 4947, -5235, -4753 },
- { -1067, 600, -3258, -5133 },
- { -4992, 3302, -2208, -5051 },
- { -3377, 2981, -1655, -4815 },
- { -3325, 2446, -1787, -6116 },
- { -2341, 2737, -3240, -6347 },
- { -2258, -3732, 3710, -1235 },
- { -1558, -3849, 2694, -3012 },
- { -599, -4837, 3050, -2951 },
- { -2246, -5433, 2798, -1910 },
- { -2255, -4989, 3260, 270 },
- { -3026, -5353, 2693, -1036 },
- { -1151, -6097, 1097, -3782 },
- { -3391, -6012, 2130, -1303 },
- { -2850, -4422, 3375, -480 },
- { -1138, -3779, 1491, -4162 },
- { -551, -3892, 3787, -2082 },
- { -3221, -3676, 3144, -1202 },
- { -3023, -5196, 2650, 605 },
- { -1756, -5729, 2646, 321 },
- { -2693, -4409, 494, -4797 },
- { -1913, -4573, 3372, -1730 },
- { -1277, -3604, 4061, -993 },
- { -420, -4993, 1351, -4796 },
- { -3052, -5333, 1435, -1242 },
- { -602, -5034, 3869, -1141 },
- { -2436, -4680, 1665, -3019 },
- { -2657, -3658, 1459, -3391 },
- { -1220, -6246, 2749, -525 },
- { -3838, -4844, 2265, -1735 },
- { -1247, -5679, 3356, -1417 },
- { -917, -5448, 3342, 105 },
- { -1756, -6839, 2276, -2350 },
- { -412, -5206, 1764, -3539 },
- { -1439, -6915, 1442, -3750 },
- { -1381, -4439, 3863, -282 },
- { -3482, -4953, 2726, -336 },
- { -1376, -5931, 1714, -1987 },
- { -1716, -4405, 2608, 105 },
- { -1590, -5191, 2652, -2704 },
- { -2149, -6442, 2453, -1263 },
- { -3426, -3832, 2334, -1829 },
- { -2747, -5948, 2362, -173 },
- { -2435, -3267, 2966, -1710 },
- { -3979, -4282, 2705, -775 },
- { -356, -4238, 2544, -4343 },
- { -1363, -6471, 2817, -1836 },
- { -2878, -5117, 218, -3149 },
- { -3539, -5196, 1710, -2356 },
- { -2888, -4537, 2746, -1701 },
- { -1870, -4439, 1496, -4121 },
- { -1486, -3388, 3349, -2145 },
- { -3333, -4138, 1467, -2876 },
- { -345, -5340, 1012, -1190 },
- { -1672, -4992, 2289, -1029 },
- { -2146, -5528, 3038, -635 },
- { -316, -3656, 3426, -3152 },
- { -2695, -5812, 2336, -2050 },
- { -2067, -6052, 737, -3258 },
- { -2664, -4205, -350, -1266 },
- { -617, -5406, 80, -4853 },
- { -2418, -3825, 1853, -1326 },
- { -1961, -4339, 583, -4315 },
- { -1495, -5141, -133, -5205 },
- { -3208, -6440, 1691, -2069 },
- { -2632, -3633, 2325, -2761 },
- { -2624, -5670, 1252, -3676 },
- { -3687, -5608, 687, -2833 },
- { -3320, -5707, 16, -3877 },
- { -2738, -6112, 84, -5135 },
- { 2277, -5661, 3076, 843 },
- { 1555, -5769, 2821, -5236 },
- { 536, -6381, 603, -4910 },
- { 734, -4609, 3314, -4092 },
- { 1836, -4547, 3267, -4322 },
- { -13, -5976, 3752, -1607 },
- { 1423, -6318, 2336, 398 },
- { 365, -7779, 1498, -534 },
- { 2104, -8366, 2946, -1345 },
- { 143, -5545, 1898, -3756 },
- { 655, -6852, 1430, 148 },
- { 4, -6653, 2397, -59 },
- { 2346, -5996, 4562, -934 },
- { 1229, -7104, 2963, -598 },
- { -528, -7048, 2887, -1790 },
- { 1451, -6857, 3900, -1637 },
- { 554, -6018, 3336, 9 },
- { 3278, -5758, 4034, 129 },
- { 3541, -7145, 4905, -1575 },
- { 2339, -6907, 3464, -301 },
- { 2775, -7301, 1667, -3894 },
- { 539, -7887, 991, -4156 },
- { 2115, -7421, 3131, -3075 },
- { 2803, -8546, 2564, -5836 },
- { 2869, -5833, 1620, -4561 },
- { 2591, -7281, 3215, -4719 },
- { -1228, -8477, 706, -4782 },
- { 1967, -5243, 4813, -1940 },
- { 701, -7010, 2273, -3893 },
- { 915, -8470, 1918, -5620 },
- { -94, -6715, 156, -3873 },
- { 1074, -5607, 4389, -1017 },
- { 2739, -6551, 1227, -3521 },
- { 725, -7835, 2701, -1291 },
- { -493, -7475, 2263, -1075 },
- { -412, -6508, 2984, -744 },
- { 665, -5451, 3725, -2692 },
- { 1499, -8129, 3564, -2072 },
- { 2870, -6333, 4487, -2108 },
- { 706, -5007, 3911, -152 },
- { -482, -8660, 1483, -2900 },
- { 2481, -6596, 2518, -1715 },
- { 1403, -6414, 1398, -5387 },
- { 652, -6267, 583, -5942 },
- { 694, -7540, 646, -6272 },
- { 2275, -7614, 256, -5015 },
- { 1416, -9727, 1900, -3153 },
- { 2760, -6433, 3875, -3771 },
- { 2325, -11196, 2182, -5155 },
- { 1223, -11061, 1377, -5097 },
- { 108, -10603, 307, -4952 },
- { -118, -8268, 1650, -1572 },
- { 1839, -7943, 1755, -612 },
- { 2501, -9056, 981, -2969 },
- { 2902, -8476, 1491, -5780 },
- { 1995, -11175, 1585, -3643 },
- { 696, -8212, 828, -2474 },
- { 1526, -8649, 1380, -1210 },
- { 461, -7253, 3222, -2229 },
- { 2966, -8641, 4121, -3271 },
- { 833, -6039, 2361, -1086 },
- { 3565, -7312, 1980, -5427 },
- { 2850, -8671, 3760, -1846 },
- { 2643, -7281, 2163, -173 },
- { 3463, -3706, -3132, -923 },
- { 1315, -3825, -3443, 2 },
- { 2594, -4083, -3815, 670 },
- { 1826, -4291, -2741, -155 },
- { 868, -3749, -4175, -298 },
- { 2008, -4237, -3897, -517 },
- { 1242, -3493, -4335, -1335 },
- { -88, -4142, -3390, -1529 },
- { 2176, -3488, -3822, -975 },
- { 1706, -5188, -3415, -637 },
- { 2717, -6159, -2333, -882 },
- { 1276, -3978, -4361, 537 },
- { 2471, -5556, -2866, -208 },
- { 799, -4673, -4086, 56 },
- { 1901, -4786, -3533, 270 },
- { 3036, -3902, -3606, -333 },
- { 2249, -3317, -4319, -144 },
- { 2594, -4207, -2105, -2930 },
- { 4008, -4774, -2626, -902 },
- { 1038, -3659, -3496, -2454 },
- { 2725, -3597, -3298, -1535 },
- { 1662, -5803, -2813, 175 },
- { 705, -3757, -3441, -1484 },
- { 1860, -5987, -2821, -886 },
- { 3786, -4918, -2199, -1929 },
- { 3683, -4235, -2547, -1287 },
- { 2531, -4896, -2956, -1593 },
- { 1005, -5585, -3324, -180 },
- { 1625, -5229, -1756, -3642 },
- { 1494, -5041, -2989, -2685 },
- { 2718, -4655, -3224, -867 },
- { 2374, -6640, -1745, -2975 },
- { 2133, -6436, -2477, -1499 },
- { 1833, -4418, -3523, -1512 },
- { 1128, -4910, -2658, -1106 },
- { 689, -4777, -2831, -2085 },
- { 3593, -5280, -2627, -315 },
- { 3264, -3771, -2673, -1861 },
- { 3202, -5602, -2409, 402 },
- { 552, -4618, -2221, -3002 },
- { 3095, -5356, -2666, -1083 },
- { 3401, -4609, -3146, 45 },
- { 3051, -4662, -2192, -2232 },
- { 2798, -5552, -2462, -1941 },
- { 2354, -5815, -2223, -2619 },
- { 192, -3708, -2807, -2658 },
- { 1886, -4226, -1862, -3529 },
- { 2526, -3976, -2819, -2332 },
- { 1577, -3870, -2711, -2806 },
- { 1288, -5588, -3382, -1403 },
- { 2711, -5399, -1564, -3253 },
- { 1459, -5492, -2222, -322 },
- { 2823, -5091, -2886, 776 },
- { 3559, -5821, -2109, -1360 },
- { 1587, -6331, -2760, -1909 },
- { 2139, -5213, -2874, -2120 },
- { 1318, -4337, -3695, -2098 },
- { 821, -4471, -1849, -565 },
- { 3329, -4782, -1725, -89 },
- { 582, -4914, -4105, -1119 },
- { 417, -4144, -4072, -2529 },
- { -199, -3803, -2765, -4042 },
- { 2731, -4283, -2143, 1 },
- { 2911, -6187, -1951, -2116 },
- { 1573, -6094, -493, -2838 },
- { 2081, -6927, -864, -3211 },
- { 1058, -7826, 79, -364 },
- { 3147, -5570, -684, -978 },
- { 3572, -5856, 1060, 1824 },
- { 1143, -6702, -1478, 338 },
- { 2341, -7220, -88, 260 },
- { 3639, -6861, 668, 815 },
- { 2227, -6268, -1706, 446 },
- { 3390, -6082, -353, 1302 },
- { 1123, -7556, -1237, -430 },
- { 1729, -7742, 729, -218 },
- { 1457, -6774, 587, 579 },
- { 505, -6919, -569, 371 },
- { 1106, -7245, 78, 158 },
- { 2755, -6745, -1122, 338 },
- { 3069, -6040, -1415, 986 },
- { 2174, -7064, -1430, -283 },
- { 1390, -8626, -446, -3031 },
- { 3534, -6890, -431, 547 },
- { 2267, -9618, 475, -2994 },
- { 3672, -7673, 75, -115 },
- { 2131, -7560, -1206, -750 },
- { 2972, -7477, -685, -262 },
- { 1604, -6637, -672, 699 },
- { 1666, -7577, -577, -240 },
- { 1591, -6554, -2158, -94 },
- { 2348, -6286, -353, 1123 },
- { 2017, -8810, -412, -1805 },
- { 2892, -6713, -1765, -554 },
- { 2500, -6828, -1995, -1197 },
- { 3877, -6639, -224, -1655 },
- { 2392, -7872, -91, -333 },
- { 3562, -7370, -532, -2836 },
- { 2552, -7614, 164, -1805 },
- { 990, -6104, 218, 438 },
- { 910, -7861, 312, -1195 },
- { 1472, -6327, 372, -640 },
- { 1576, -7143, -1983, -843 },
- { 422, -7625, -457, -278 },
- { 1797, -8532, 405, -1011 },
- { 1088, -7396, -238, -2277 },
- { 3209, -6753, -1431, -2072 },
- { 2617, -6839, 100, -2573 },
- { 2575, -8573, -387, -3188 },
- { 3618, -6971, -1190, -321 },
- { 2205, -7361, -1695, -2008 },
- { 2985, -6297, 1464, 1179 },
- { 2804, -7310, 1053, 338 },
- { 1362, -6074, -1163, -840 },
- { 3336, -6325, -1794, 21 },
- { 2836, -8109, 818, -329 },
- { 2791, -5879, 560, 1546 },
- { 2392, -6064, 135, 100 },
- { 1838, -6194, 596, 1085 },
- { 1926, -7515, -414, -4901 },
- { 3225, -7298, -1202, -1189 },
- { 3960, -7558, -659, -719 },
- { 3442, -6647, -1692, -1095 },
- { 3381, -6441, 262, -886 },
- { 1431, -8150, -1186, -1406 },
- { 340, -8498, -150, -899 },
- { 3004, -8149, -260, -953 },
- { 2749, -6611, 563, 873 },
- { -6647, -1325, -4517, -4691 },
- { -6005, -1657, -4089, -3797 },
- { -3157, 588, -5213, -3068 },
- { -3311, -1425, -6329, -3726 },
- { -5866, -819, -3857, -2744 },
- { -5001, -1799, -1075, -4621 },
- { -5330, -2650, -2672, -4664 },
- { -4930, -539, -2363, -4010 },
- { -2984, 10, -3863, -5749 },
- { -1055, -2106, -3713, -4267 },
- { -5476, -502, -4279, -6504 },
- { -5231, -1543, -5018, -6425 },
- { -5134, -363, -3165, -5109 },
- { -3953, -771, -4107, -6393 },
- { -2159, -563, -3652, -5342 },
- { -3888, -2321, -919, -5057 },
- { -1236, -597, -4235, -4193 },
- { -4053, 675, -3083, -6174 },
- { -2793, -1089, -5396, -3460 },
- { -3000, -44, -2209, -6575 },
- { -3336, -1531, -4313, -5160 },
- { -2127, 128, -4851, -3692 },
- { -3321, 136, -2067, -5660 },
- { -5215, 1404, -4374, -4356 },
- { -2747, 400, -6340, -3691 },
- { -3926, -599, -5361, -5006 },
- { -2875, -2592, -5143, -4092 },
- { -4991, -1958, -5322, -4891 },
- { -4965, -1318, -6652, -5333 },
- { -4920, -1691, -3388, -5561 },
- { -3644, -3354, -2688, -5982 },
- { -5076, -919, -4563, -2984 },
- { -6114, 250, -3884, -3915 },
- { -4014, 744, -3973, -1924 },
- { -5543, -1041, -5557, -3847 },
- { -4711, -1352, -5649, -2603 },
- { -3362, 775, -5305, -4879 },
- { -5001, 107, -3554, -2888 },
- { -6258, -1651, -6356, -6566 },
- { -4529, 407, -5003, -3865 },
- { -5154, 550, -5278, -5465 },
- { -4195, -467, -1894, -3129 },
- { -5022, 1127, -3349, -3314 },
- { -6075, 1250, -4313, -5641 },
- { -2677, -2283, -2312, -5903 },
- { -4113, 193, -1195, -4833 },
- { -3940, -1048, -1389, -5079 },
- { -3703, 917, -4043, -4451 },
- { -3366, -4231, -1534, -5488 },
- { -3326, -3583, -2091, -4903 },
- { -5144, 1254, -2532, -4949 },
- { -5982, -870, -2545, -4555 },
- { -3925, -157, -5367, -2281 },
- { -6419, -746, -5668, -4371 },
- { -5787, 518, -7096, -5805 },
- { -4258, 954, -6453, -4321 },
- { -4771, -695, -4158, -1639 },
- { -7078, -760, -5195, -5877 },
- { -7348, 83, -4101, -4586 },
- { -2430, 184, -2874, -1679 },
- { -2284, -3943, -2924, -5034 },
- { -1804, -1785, -3002, -4710 },
- { -4399, -2772, -1815, -4637 },
- { -6340, -2626, -2824, -5191 },
- { -4998, -5168, -3480, 1905 },
- { -3958, -5492, -1599, 1579 },
- { -2471, -3755, -276, 3182 },
- { -3033, -5779, -1063, 1554 },
- { -2936, -4829, -1290, 2386 },
- { -1835, -5073, -3051, 1299 },
- { -1724, -3771, -3935, 2324 },
- { -5070, -2550, -3692, 768 },
- { -4326, -5333, -297, 1878 },
- { -3472, -5619, -3094, 992 },
- { -3027, -4384, -3038, 2265 },
- { -3201, -5332, 67, 2200 },
- { -1681, -4373, -1947, 2461 },
- { -3221, -3329, -4238, 2564 },
- { -1262, -2968, -2915, 3227 },
- { -3419, -1878, -3373, 2110 },
- { -2244, -5583, -2012, 1288 },
- { -1971, -5266, -990, 1812 },
- { -2975, -2778, -452, 4063 },
- { -2198, -1165, -3298, 2965 },
- { -4782, -4894, -4767, 664 },
- { -6002, -3950, -2806, 2025 },
- { -3142, -3162, -2859, 3295 },
- { -3262, -3340, -4123, 1596 },
- { -4014, -3918, -1955, 3361 },
- { -1700, -3463, -1346, 3449 },
- { -4245, -4445, -4743, 1644 },
- { -4180, -3969, -401, 3281 },
- { -2782, -5240, -4117, 1156 },
- { -5744, -4040, -1439, 3470 },
- { -5063, -4663, -323, 3172 },
- { -4531, -3319, -844, 3988 },
- { -6226, -5125, -2064, 2976 },
- { -3115, -3267, -1531, 3898 },
- { -4628, -4421, -2864, 2808 },
- { -4559, -2989, -3442, 2024 },
- { -1775, -4487, -656, 2477 },
- { -2664, -1865, -1884, 4081 },
- { -1828, -2575, -3894, 3378 },
- { -6441, -3677, -2025, 1677 },
- { -4141, -2156, -1191, 3474 },
- { -4802, -1623, -1727, 2160 },
- { -5474, -2745, -1475, 2498 },
- { -3664, -1056, -1975, 2491 },
- { -4672, -3062, -2235, 2933 },
- { -4205, -5960, -2849, 1517 },
- { -4995, -5708, -1739, 1805 },
- { -4892, -6080, -4793, 872 },
- { -4270, -4172, -4263, 2185 },
- { -4687, -1470, -2905, 1023 },
- { -6446, -5017, -3919, 1000 },
- { -6046, -5538, -3943, 2006 },
- { -6028, -3750, -3953, 771 },
- { -5959, -4582, -5024, 824 },
- { -5818, -2576, -2249, 1326 },
- { -5659, -5345, -1119, 2500 },
- { -3346, -4155, 606, 2749 },
- { -5680, -4827, -2501, 1838 },
- { -6193, -2543, -1295, 840 },
- { -6871, -4925, -3512, 1801 },
- { -5605, -1788, -1895, 779 },
- { -3922, -5712, -4644, 510 },
- { -4745, -3869, -4533, 99 },
- { -2984, -4907, -399, 1497 },
- { 1847, -478, 3061, -5812 },
- { 4450, -1116, 3609, -6570 },
- { 3139, 99, 3007, -5532 },
- { 2590, -3782, 3138, -4770 },
- { 1881, 1204, 5778, -3404 },
- { 3631, 2060, 5566, -5038 },
- { 3461, 1961, 5167, -3800 },
- { 2947, 273, 4536, -4389 },
- { 4453, -1730, 5788, -4370 },
- { 4032, 1805, 2666, -4534 },
- { 3487, -944, 2313, -6028 },
- { 1313, 34, 4210, -4067 },
- { 5632, -1502, 5825, -5855 },
- { 7736, -547, 4879, -5476 },
- { 4906, -1512, 4760, -5760 },
- { 3843, 447, 1091, -4958 },
- { 2982, -1135, 5442, -4386 },
- { 3579, 271, 3031, -6770 },
- { 3932, -211, 4688, -5507 },
- { 4411, 1720, 2387, -5584 },
- { 5379, -479, 4575, -6280 },
- { 3613, -362, 2012, -4885 },
- { 3744, -2013, 4493, -5073 },
- { 5693, 109, 4379, -3362 },
- { 5475, -621, 5317, -3985 },
- { 6411, -673, 5708, -4752 },
- { 4933, -796, 7262, -4290 },
- { 2804, 444, 6276, -3655 },
- { 4120, -517, 6078, -4531 },
- { 5119, 841, 3486, -3910 },
- { 4738, 1539, 3525, -2970 },
- { 5086, 370, 5895, -5640 },
- { 4235, 2716, 4589, -5044 },
- { 3691, 682, 6199, -4700 },
- { 6111, -570, 6271, -6528 },
- { 2611, 1277, 3756, -4802 },
- { 4395, 970, 3807, -5879 },
- { 5225, 2299, 3242, -4333 },
- { 5144, 1778, 4946, -5545 },
- { 2989, -3016, 3247, -5495 },
- { 2983, 920, 2071, -6059 },
- { 5270, -903, 4434, -2350 },
- { 6415, -585, 3970, -3554 },
- { 3866, -197, 5216, -2884 },
- { 3767, -1298, 6702, -3315 },
- { 6299, 2620, 5284, -6824 },
- { 6654, 646, 3653, -4927 },
- { 4770, 3047, 5160, -6287 },
- { 5364, 434, 2919, -5207 },
- { 2998, 1344, 4801, -2456 },
- { 3896, 1013, 3773, -1864 },
- { 2115, 655, 2999, -6344 },
- { 5170, -981, 2849, -4464 },
- { 2735, -2159, 2717, -5776 },
- { 2430, -1952, 4392, -4559 },
- { 6143, -1180, 3659, -4746 },
- { 4978, -1483, 1726, -4875 },
- { 3486, -2383, 3306, -4301 },
- { 1434, -1372, 4171, -4770 },
- { 3354, -2627, 1525, -5093 },
- { 6790, 2386, 3995, -5909 },
- { 1475, -2674, 3451, -4204 },
- { 1999, -3494, 3693, -5556 },
- { 4764, -2848, 2856, -5589 },
- { -3677, 5131, 2827, -2934 },
- { -2844, 7078, 2852, -3580 },
- { -3902, 6434, 4118, -1911 },
- { -1769, 7530, 3492, -3541 },
- { -1937, 5679, -447, -1127 },
- { -2456, 4680, 4196, -2407 },
- { -2778, 8241, 1698, -4288 },
- { -2876, 6104, 5182, -2387 },
- { -2802, 7341, 4463, -2938 },
- { -1025, 6267, 4752, -3201 },
- { -2349, 5413, 2041, -3794 },
- { -2252, 8225, 2856, -4269 },
- { -1465, 4967, 4976, -2500 },
- { -636, 7565, 3517, -4233 },
- { -1905, 5618, 3904, -2942 },
- { -302, 6816, 3343, -3316 },
- { -2210, 4156, 2817, -3511 },
- { -717, 6568, 1863, -2951 },
- { -3873, 5682, 2164, -575 },
- { -2878, 5835, 440, -2597 },
- { -3228, 7701, 2610, -2514 },
- { -3608, 8888, 3377, -2468 },
- { -2582, 9717, 2519, -3126 },
- { -5238, 6202, 2866, -2831 },
- { -3428, 7370, 3056, -335 },
- { -1681, 8836, 1210, -2010 },
- { -3276, 6724, 1156, -3930 },
- { -894, 8149, 827, -1258 },
- { -2965, 8631, 2549, -1320 },
- { -3961, 6902, 3581, 55 },
- { -1894, 7745, 1750, -841 },
- { -821, 6844, 850, -676 },
- { -608, 6948, -4, -1376 },
- { 615, 6524, 1089, -1147 },
- { -2972, 5668, 1091, -489 },
- { -157, 4649, 2904, -413 },
- { 673, 5121, 1498, -66 },
- { -390, 5902, 1611, -245 },
- { -2349, 5478, 4772, -1320 },
- { 88, 6798, 1972, -1859 },
- { -1213, 5120, 2991, 200 },
- { -2347, 6040, 2839, 376 },
- { -578, 5976, 3364, -1796 },
- { -1391, 5872, 3002, -965 },
- { -564, 4496, 3946, -1186 },
- { -2299, 6386, 3135, -2176 },
- { -2131, 5641, 2011, 1223 },
- { -772, 5807, 1124, 895 },
- { -2837, 6758, 2297, -740 },
- { -3091, 6298, 1415, -2126 },
- { -4197, 6036, 1843, -3022 },
- { -41, 6459, 92, 344 },
- { -2241, 6860, 2095, -4396 },
- { -1931, 7088, 2117, -2135 },
- { -2375, 4422, 1688, -3169 },
- { -1742, 6674, 1538, -119 },
- { -4818, 7749, 4192, -1577 },
- { -2004, 5672, 193, -430 },
- { -3825, 6042, 2128, -1898 },
- { -1108, 8033, 2119, -3013 },
- { -2370, 5453, 1721, 266 },
- { -1570, 7134, 614, -2638 },
- { -1519, 8752, 3503, -4330 },
- { -2050, 3845, 2907, -1126 },
- { 5085, 4412, -335, -1923 },
- { 3618, 1423, -613, -4012 },
- { 4481, 3729, 589, -4631 },
- { 4270, 3216, -1763, -3168 },
- { 4241, 1796, -1701, -2796 },
- { 4787, 2338, -487, -3639 },
- { 2915, 3429, -621, -4753 },
- { 5175, 1660, -1265, -3223 },
- { 4280, 4057, -684, -4079 },
- { 4980, 4419, -1455, -2719 },
- { 5436, 2464, 387, -4197 },
- { 4507, 4018, 1121, -3314 },
- { 6020, 2401, -413, -3201 },
- { 4200, 3789, -333, -2813 },
- { 5229, 2493, -1194, -1878 },
- { 5851, 2695, -492, -2292 },
- { 5743, 3288, -697, -1221 },
- { 5692, 2612, 979, -2227 },
- { 5085, 2067, 1046, -1214 },
- { 3163, 2240, -2098, -3435 },
- { 5228, 1898, 145, -2397 },
- { 5860, 3976, -418, -2872 },
- { 6008, 3399, 1027, -3506 },
- { 4126, 2035, 1865, -893 },
- { 5375, 3596, 511, -2362 },
- { 1937, 1493, -852, -122 },
- { 3473, 4849, 547, -2603 },
- { 4631, 2977, 1141, -1768 },
- { 6149, 3050, -71, -1886 },
- { 4069, 4353, -289, -1429 },
- { 2884, 1225, -1388, 365 },
- { 5485, 2518, -235, -571 },
- { 1216, 4375, 1443, 398 },
- { 4988, 3106, 107, -1435 },
- { 4511, 2801, 307, -444 },
- { 3235, 4386, 327, -676 },
- { 2055, 3708, 1657, -305 },
- { 5839, 2374, 290, -1385 },
- { 5110, 3305, 1936, -4206 },
- { 6416, 2920, 338, -2736 },
- { 3350, 2824, -1269, -3881 },
- { 4840, 1815, 464, 186 },
- { 2399, 3332, 238, 1238 },
- { 3516, 1363, 1582, 688 },
- { 3582, 1874, 154, -4770 },
- { 3261, 2878, 886, 283 },
- { 3877, 2658, -327, 884 },
- { 4151, 3436, 2173, -2923 },
- { 3592, 3674, 1281, -1295 },
- { 4561, 3730, -1114, -1747 },
- { 4595, 3625, -558, -575 },
- { 2577, 2348, 2267, 120 },
- { 5242, 3299, 32, -3412 },
- { 4264, 3637, 709, -2320 },
- { 6556, 3570, -838, -2472 },
- { 5745, 4014, -940, -1973 },
- { 5629, 4475, 477, -3328 },
- { 5269, 3199, 1682, -3085 },
- { 4432, 2416, 1145, -3299 },
- { 4465, 2505, 2162, -2186 },
- { 4643, 4941, -88, -2885 },
- { 4568, 5231, 552, -3915 },
- { 5667, 3075, -1406, -2963 },
- { 5418, 5259, -771, -2818 },
- { -256, -7875, 511, -471 },
- { -1813, -7971, -424, -396 },
- { -306, -7006, 862, 282 },
- { -2306, -6422, -1440, 508 },
- { -245, -6787, 375, -100 },
- { -1309, -6065, -20, 779 },
- { -1656, -6047, -641, 1307 },
- { -1496, -6522, 964, 726 },
- { -2291, -6588, -202, 795 },
- { -762, -7522, 1454, -558 },
- { -2270, -7004, -834, -580 },
- { -1139, -7078, 259, 362 },
- { -2535, -7568, -1040, 49 },
- { -3786, -7280, 934, -476 },
- { -3336, -6368, 606, 1056 },
- { -3602, -6924, 52, 714 },
- { -2278, -6550, 1674, 204 },
- { -2855, -5765, 930, 1530 },
- { -2889, -7325, -215, 305 },
- { -2749, -6080, -237, 1452 },
- { -985, -6667, 1577, 400 },
- { -2036, -6083, 380, 1267 },
- { -2077, -7460, 380, -30 },
- { -1775, -7175, 1540, -386 },
- { -3065, -6927, 989, 168 },
- { -2836, -7602, 117, -3392 },
- { -1058, -6396, 593, -3078 },
- { -844, -6062, 999, -236 },
- { -3261, -6951, 1491, -720 },
- { -2186, -8484, 75, -1287 },
- { -2882, -7756, 456, -510 },
- { -1800, -6879, 960, -1183 },
- { -2554, -7241, 1614, -1474 },
- { -2608, -5305, 392, 851 },
- { -2973, -6562, -859, 858 },
- { -2640, -5989, 1031, -416 },
- { -977, -8366, 705, -1434 },
- { -1213, -7409, -77, -1390 },
- { -1335, -6657, 2125, -123 },
- { -2544, -6862, 1852, -737 },
- { -3235, -6422, 1752, -103 },
- { -1300, -7557, 939, -348 },
- { -3476, -7579, 202, -109 },
- { -2482, -6572, 753, 619 },
- { -2554, -8136, -648, -429 },
- { -1012, -7870, -3, -421 },
- { -3604, -6247, 32, -3102 },
- { -1486, -7271, 2013, -1021 },
- { -578, -6799, -523, 405 },
- { -2841, -5948, 1644, 911 },
- { -2411, -7473, 1084, -484 },
- { -2238, -6033, 294, -1059 },
- { -3459, -6470, -201, -790 },
- { -2027, -6009, 1833, 805 },
- { -1433, -8047, 1531, -1754 },
- { -3258, -7884, 763, -1422 },
- { -1544, -6928, -729, 478 },
- { -2314, -8415, 74, -3757 },
- { -3201, -5684, 95, -2214 },
- { -2423, -8694, 725, -3631 },
- { -3545, -7071, 1162, -1798 },
- { -294, -9662, 403, -2274 },
- { -2290, -5460, 1196, 402 },
- { -1603, -6713, 903, -2363 },
- { 4121, 2491, -3142, -2482 },
- { 4500, 3305, -3671, -1567 },
- { 5973, 3172, -1348, -534 },
- { 4830, 3379, -1549, 643 },
- { 5214, 3938, -2641, -2302 },
- { 4639, 4826, -5532, -847 },
- { 5639, 2731, -2170, -963 },
- { 6084, 3487, -3525, -1346 },
- { 5971, 3154, -2190, -2316 },
- { 5618, 4865, -6927, 116 },
- { 5345, 3568, -7391, 709 },
- { 5429, 5078, -3811, -1524 },
- { 6960, 2037, -3515, -1096 },
- { 7092, 2531, -4557, -588 },
- { 6061, 4247, -5651, -478 },
- { 4595, 3684, -4907, -827 },
- { 7497, 3213, -3048, -424 },
- { 5996, 2137, -3098, -1745 },
- { 6198, 5199, -2223, -2274 },
- { 6888, 2851, -2768, -1675 },
- { 6114, 4210, -2316, -954 },
- { 7127, 4242, -3041, -1408 },
- { 6126, 3668, -1517, -1427 },
- { 6245, 6129, -4225, -1186 },
- { 6816, 3213, -2101, -964 },
- { 5345, 5276, -2643, -847 },
- { 6592, 4665, -4338, 484 },
- { 6746, 3751, -3443, 124 },
- { 5453, 1980, -2738, 2606 },
- { 4662, 2179, -4226, -1059 },
- { 5571, 3208, -3554, 174 },
- { 5256, 4447, -1815, -1481 },
- { 5400, 2570, -1210, 235 },
- { 7056, 2549, -2674, 318 },
- { 4574, 4340, -2892, -130 },
- { 6203, 4587, -3273, -305 },
- { 5103, 1925, -2715, -2137 },
- { 3905, 4296, -1700, 247 },
- { 4421, 4605, -3299, 811 },
- { 5671, 1273, -3870, -924 },
- { 5486, 1805, -4901, 133 },
- { 6437, 2578, -1828, -106 },
- { 5530, 5253, -5058, 1223 },
- { 4816, 2025, -1215, 1443 },
- { 3457, 3525, -2456, 3217 },
- { 3316, 2595, -1108, 2459 },
- { 3068, 3810, -2207, 1926 },
- { 6351, 5436, -6470, 600 },
- { 6324, 4240, -5365, 2416 },
- { 4851, 4774, -4075, 1878 },
- { 4900, 3679, -5198, 1078 },
- { 8347, 3633, -4565, -171 },
- { 5244, 5718, -3853, 173 },
- { 3960, 3492, -2939, 2105 },
- { 6070, 3473, -2351, 161 },
- { 8228, 3034, -3360, -901 },
- { 7006, 3985, -1940, -1926 },
- { 7123, 4681, -4301, -878 },
- { 5122, 4097, -1851, -449 },
- { 6200, 2060, -2251, 1049 },
- { 7106, 3844, -7209, 2625 },
- { 7108, 3370, -6734, 533 },
- { 6859, 2849, -3992, 1360 },
- { 5458, 2278, -3253, 1131 },
- { -1072, -2109, 4783, -1073 },
- { -319, -2604, 4257, -2418 },
- { 2466, 1300, 3476, -314 },
- { 2847, -1502, 5296, -141 },
- { 1667, -1273, 5559, -2725 },
- { 2877, -3402, 6434, 204 },
- { 53, -2637, 5275, -1181 },
- { 1091, -2215, 5803, -1549 },
- { 2397, -922, 4327, 1182 },
- { 219, -3747, 4647, -1564 },
- { -29, -2705, 4812, 1277 },
- { 1499, -2608, 5648, 1407 },
- { 2139, -2399, 4202, 2791 },
- { -426, -2064, 5528, 151 },
- { 2560, -2803, 6179, -2806 },
- { 4537, -2479, 3797, 1095 },
- { 888, -3357, 5341, -415 },
- { 4460, -1814, 5388, -1227 },
- { 3920, -3268, 6364, -703 },
- { 3343, -4698, 4410, 784 },
- { 309, -1897, 6306, 1223 },
- { 958, -3318, 4254, -3167 },
- { -99, 1596, 6018, -1983 },
- { -429, -853, 6407, 878 },
- { 1170, -1322, 6290, -417 },
- { 2288, -505, 6303, -1999 },
- { 3312, -1674, 6749, -2494 },
- { -415, -3401, 4721, -371 },
- { -189, -1210, 4844, -2002 },
- { 888, -4142, 4377, 130 },
- { 2469, -4381, 5398, -2492 },
- { 2879, -2912, 5094, -2598 },
- { -717, -617, 5650, -685 },
- { 1470, -3863, 5352, -1684 },
- { 3935, -96, 3823, -730 },
- { 3769, -430, 3168, 694 },
- { 2556, 385, 3539, 512 },
- { 77, -1415, 5111, 2655 },
- { 2724, -2158, 6715, -822 },
- { 1832, 1001, 5385, -1900 },
- { 900, 2198, 4464, -559 },
- { 441, 69, 5921, -1743 },
- { -1161, 738, 6732, -308 },
- { 257, 2035, 4091, 736 },
- { 1607, 1288, 4355, -23 },
- { -13, 1316, 4180, 1672 },
- { 1511, 1336, 3057, 1435 },
- { 2189, -3813, 4530, 939 },
- { 3632, -706, 2646, 1375 },
- { 4266, -3761, 4241, 1077 },
- { 3101, -427, 5273, -1202 },
- { 2293, 276, 4810, -313 },
- { 3430, -1851, 3101, 2045 },
- { 3453, -2979, 5142, 942 },
- { 1683, -3281, 4802, 2002 },
- { 3954, -4715, 5611, 578 },
- { 1272, -155, 5085, 454 },
- { 128, -194, 5095, 1409 },
- { 820, 880, 5797, -2658 },
- { -1095, 656, 5774, 1095 },
- { 813, -1669, 4320, -3251 },
- { -119, 518, 6372, -651 },
- { 2922, -4299, 6115, -877 },
- { 4205, -4273, 4004, 2642 },
- { -1211, -3892, 224, 3127 },
- { -34, -4371, 1321, 2318 },
- { 77, -6326, 1201, 828 },
- { 3995, -3775, 1958, 3233 },
- { 178, -3301, 1985, 3318 },
- { 2330, -3801, 1033, 3195 },
- { 1413, -5536, 826, 1709 },
- { 2468, -3499, 3653, 3631 },
- { 741, -4617, 1723, 2008 },
- { 1246, -3043, 2978, 3949 },
- { -343, -4308, 2258, 2189 },
- { -682, -4640, 454, 2272 },
- { 1236, -4829, 2491, 1642 },
- { -512, -3766, 1182, 3052 },
- { 119, -3939, 3712, 971 },
- { -1145, -4624, 1360, 2281 },
- { 101, -4746, 2866, 1255 },
- { -1500, -5455, 539, 1637 },
- { -969, -5909, 1414, 1128 },
- { -1261, -4939, -231, 2022 },
- { -226, -5345, 1207, 705 },
- { 2712, -5109, 3205, 1866 },
- { -476, -5913, 273, 1208 },
- { -2039, -4464, 624, 2545 },
- { -2351, -3930, 2019, 2673 },
- { -2675, -4849, 1522, 1990 },
- { -1524, -3461, 1446, 3204 },
- { 477, -5314, 1710, 1577 },
- { 656, -3729, 2346, 2511 },
- { 550, -5917, 1975, 1040 },
- { 1728, -4704, 3067, 1058 },
- { -9, -5247, 506, 1760 },
- { -574, -5135, 1675, 1672 },
- { 2129, -3781, 3444, 2313 },
- { 1144, -4439, 2214, 2529 },
- { 1292, -4160, 3185, 1833 },
- { 2445, -3262, 2534, 3227 },
- { 2266, -4401, 2023, 2400 },
- { -587, -3602, 3408, 2067 },
- { -885, -4951, 3228, 1174 },
- { -728, -2711, 2807, 3552 },
- { 1019, -3043, 3195, 2954 },
- { 1888, -4615, 1140, 2454 },
- { 660, -5616, 754, 800 },
- { -1975, -5371, 1649, 1585 },
- { -1544, -5436, 2422, 1081 },
- { -422, -5882, 2390, 750 },
- { 1336, -5557, 2441, 1230 },
- { 136, -4001, 267, 2854 },
- { -522, -3289, 2226, 2728 },
- { -971, -4580, 2471, 708 },
- { 704, -5306, 3300, 1001 },
- { 325, -3464, 3555, 2398 },
- { 794, -3686, 848, 3169 },
- { 660, -3017, 4584, 3242 },
- { -1486, -3978, 2170, 1644 },
- { -1615, -4650, 2688, 1844 },
- { 750, -4578, 538, 2239 },
- { 1668, -5849, 1455, 1031 },
- { 3486, -4681, 2030, 2183 },
- { 2642, -5429, 1696, 1761 },
- { 4491, -4502, 3538, 2767 },
- { 3545, -4528, 3514, 2982 },
- { 3269, -3676, 2758, 3966 },
- { 5572, 1146, 209, -3379 },
- { 7459, 1053, 593, -1896 },
- { 4480, 200, -310, -4259 },
- { 5577, -939, 242, -3992 },
- { 8142, 442, 1257, -3083 },
- { 5442, 1261, 1424, -3236 },
- { 6260, -183, 3125, -2532 },
- { 7179, 889, 1618, -2548 },
- { 6416, 932, 2379, -2487 },
- { 7094, 2560, 961, -3392 },
- { 7322, 463, 2732, -3735 },
- { 6632, 1577, 1912, -3272 },
- { 6312, 1349, 3028, -3460 },
- { 6105, 386, 1213, -977 },
- { 5478, 1158, 1114, -486 },
- { 6493, 410, 1686, -2180 },
- { 6378, 1881, 1333, -2240 },
- { 5711, 812, 1958, -1300 },
- { 6844, 877, 730, -1189 },
- { 6824, -245, 2249, -2000 },
- { 7515, 1521, 1251, -3058 },
- { 6697, 1051, 1300, -1749 },
- { 6476, 1425, 811, -2773 },
- { 7350, 465, -76, -2849 },
- { 6975, 2095, 567, -2492 },
- { 4691, 1736, 2660, -2289 },
- { 7837, 1456, 340, -2767 },
- { 7930, 507, 838, -2074 },
- { 6106, 1502, 766, -1110 },
- { 4891, -659, 835, -3954 },
- { 7250, 141, 1369, -1523 },
- { 7651, 67, 1651, -2298 },
- { 7364, -305, 601, -3132 },
- { 7179, 193, 2491, -2871 },
- { 6504, -272, 2167, -1322 },
- { 4456, 983, 2300, -421 },
- { 4817, 457, 1695, 371 },
- { 6914, 555, 850, -3159 },
- { 5904, 1030, 202, -1959 },
- { 6258, 880, 2233, -4503 },
- { 6029, 10, 2130, -3600 },
- { 6449, 985, 1129, -3963 },
- { 6616, -18, -111, -3285 },
- { 4496, 775, 817, -4276 },
- { 6134, 2338, 1470, -2973 },
- { 6911, 152, 430, -1946 },
- { 4053, 991, 3218, -1193 },
- { 5435, 1285, 3124, -2412 },
- { 5507, 1836, 1935, -1988 },
- { 5240, 689, 2189, -2670 },
- { 6638, 1719, 606, -1799 },
- { 5556, -180, 129, -2595 },
- { 5644, 1918, 1281, -4316 },
- { 6410, 1088, -282, -3117 },
- { 6503, 1841, 312, -3514 },
- { 6947, 20, 1358, -3886 },
- { 5464, 2109, 2398, -3194 },
- { 5616, -407, 2140, -498 },
- { 6121, 2707, 2379, -4096 },
- { 7303, 1846, 2266, -4095 },
- { 5444, 470, 2718, -1553 },
- { 5817, -645, 3285, -1349 },
- { 5625, 1427, 1103, -1991 },
- { 6041, -806, 1196, -2943 },
- { 3050, -5722, 4070, -5460 },
- { 3420, -4386, 4078, -5155 },
- { 6020, -3982, 7268, -2689 },
- { 7502, -4317, 7894, -3973 },
- { 4156, -3558, 5247, -4316 },
- { 4725, -4401, 7290, -1540 },
- { 6688, -5122, 8216, -3210 },
- { 9176, -6576, 9276, -4963 },
- { 8706, -5708, 7987, -4621 },
- { 7060, -3535, 6532, -3308 },
- { 5600, -2719, 5363, -1568 },
- { 4661, -2803, 6263, -4716 },
- { 3673, -3636, 6147, -3433 },
- { 5305, -2585, 6073, -2638 },
- { 7614, -1962, 6079, -5266 },
- { 6760, -3366, 7382, -4322 },
- { 6385, -3883, 4797, -1353 },
- { 8182, -5120, 4298, -4641 },
- { 9130, -6198, 4975, -3063 },
- { 7421, -5436, 5576, -3713 },
- { 3483, -4898, 5443, -2745 },
- { 4907, -5643, 6390, -4105 },
- { 8119, -7008, 7992, -6764 },
- { 6528, -6122, 6967, -5590 },
- { 5890, -4190, 6624, -5688 },
- { 6815, -7934, 7275, -5456 },
- { 5434, -4306, 5169, -5378 },
- { 4364, -6436, 5376, -2604 },
- { 8152, -3404, 5913, -5048 },
- { 7983, -4863, 4262, -2461 },
- { 8023, -6188, 6238, -5062 },
- { 6753, -3692, 3935, -3723 },
- { 6826, -4760, 3284, -4051 },
- { 7224, -7423, 4492, -3875 },
- { 6904, -2590, 6587, -6248 },
- { 6106, -1944, 7345, -5506 },
- { 4956, -2990, 7808, -3146 },
- { 6908, -6885, 5949, -1288 },
- { 7162, -6058, 3419, -3401 },
- { 7015, -7080, 6907, -3018 },
- { 6971, -6832, 5646, -3273 },
- { 8014, -5546, 5471, -1544 },
- { 6792, -2220, 5105, -2879 },
- { 8494, -3974, 4408, -3999 },
- { 9591, -4866, 6027, -4558 },
- { 5264, -5161, 6101, -738 },
- { 5803, -6141, 5197, -5231 },
- { 4657, -6822, 3232, -5189 },
- { 4791, -5135, 3809, -4665 },
- { 6108, -5103, 2379, -3873 },
- { 4680, -3909, 3234, -5093 },
- { 5802, -3853, 3795, -4984 },
- { 4360, -7483, 4802, -3877 },
- { 5429, -7517, 5911, -3717 },
- { 6866, -2280, 4880, -4634 },
- { 10131, -4628, 4414, -4092 },
- { 10811, -5189, 7746, -5337 },
- { 5663, -8941, 5287, -5680 },
- { 8023, -5991, 7403, -2796 },
- { 9669, -6919, 6525, -4932 },
- { 7275, -3796, 4962, -2547 },
- { 8848, -4806, 5677, -3080 },
- { 8128, -4308, 7749, -6569 },
- { 4032, -5196, 2282, -6239 },
- { 6593, 700, -229, 304 },
- { 8260, 539, -66, -1259 },
- { 6605, 176, -814, -109 },
- { 8057, 0, -1, -136 },
- { 7382, -38, -484, -1129 },
- { 8373, -929, 682, -454 },
- { 7674, 690, -1278, 546 },
- { 7326, -517, 406, -1283 },
- { 7612, -1715, -1167, 1175 },
- { 8590, 441, -782, -710 },
- { 8572, -1202, -291, 260 },
- { 7308, -147, -1785, 414 },
- { 6787, -353, -672, 934 },
- { 5177, -133, 179, 82 },
- { 4161, -34, 447, 1497 },
- { 5997, -902, 1533, -121 },
- { 5727, -871, -1370, 945 },
- { 8386, -252, 293, -823 },
- { 6573, -1354, 682, 616 },
- { 7650, -2096, 725, 457 },
- { 8122, 78, 636, -1400 },
- { 8421, 428, -1620, 131 },
- { 7341, -1292, -717, 186 },
- { 7998, -49, -720, 266 },
- { 5987, -351, 669, 844 },
- { 7314, -1620, 250, -603 },
- { 7219, -1562, -572, 1994 },
- { 8682, -358, -290, -388 },
- { 5810, 155, -178, 1199 },
- { 7246, -12, 1042, -786 },
- { 7357, -923, 1468, -475 },
- { 7801, 621, -212, -724 },
- { 5346, -514, 1210, 1356 },
- { 8459, 36, -127, -779 },
- { 6878, -2429, 854, 1750 },
- { 7280, -1401, -1353, 2845 },
- { 7579, -2148, -1463, 2087 },
- { 6637, 946, -872, 750 },
- { 4807, -1100, 1289, 2602 },
- { 4495, 219, 1551, 1128 },
- { 7639, 506, 446, -1107 },
- { 6359, 188, 1009, -115 },
- { 6641, -1820, 1655, 723 },
- { 5394, -2382, 1604, 2542 },
- { 6021, -2644, 2396, 1407 },
- { 4698, 882, 245, 1525 },
- { 8103, 573, -798, -349 },
- { 8045, -519, 997, -1092 },
- { 7571, -122, 227, -338 },
- { 5347, -1200, 630, 1718 },
- { 7070, 790, 218, -544 },
- { 7440, 728, -527, -20 },
- { 6402, -355, 197, -736 },
- { 4031, 771, 866, 1895 },
- { 6009, 896, 445, -31 },
- { 5160, 1098, -856, 1784 },
- { 7980, -886, -1293, 1396 },
- { 6318, -1361, 2423, 252 },
- { 7547, -699, 133, 506 },
- { 8562, -2344, 940, 264 },
- { 5890, 1187, -1425, 2194 },
- { 6558, -645, -1311, 2621 },
- { 4634, -1671, 2075, 1623 },
- { 5614, 105, -816, 2376 },
- { 6646, 1558, -1365, 630 },
- { 6998, 1150, -2117, -990 },
- { 6555, 2311, -1093, -1783 },
- { 6682, 1430, -2391, -1940 },
- { 7861, 1555, -2977, -1188 },
- { 6745, 1723, -459, -2085 },
- { 7504, 1229, -1666, -2060 },
- { 7937, 671, -2128, -1529 },
- { 7139, 991, -735, -2632 },
- { 6867, 1592, -1303, -2324 },
- { 6401, 2230, -1732, -2508 },
- { 7201, 2184, -2169, -1988 },
- { 6636, 2190, -995, -2840 },
- { 7620, 2306, -2089, -651 },
- { 7584, 1875, -1438, -631 },
- { 9214, 1561, -2464, -1139 },
- { 6154, 1318, -1237, -2917 },
- { 7917, 2847, -1797, -1599 },
- { 8309, 2029, -2555, -465 },
- { 8204, 1282, -584, -2405 },
- { 8440, 1035, -1147, -1137 },
- { 7107, 1858, -60, -1568 },
- { 6781, 2912, -873, -1463 },
- { 7603, 1316, -319, -1249 },
- { 7833, 1335, -78, -1849 },
- { 7930, 1141, -1016, -695 },
- { 7883, 1610, -1017, -1314 },
- { 8069, 1409, -1811, -196 },
- { 8319, 1031, -582, -1590 },
- { 5948, 1537, -2153, -2373 },
- { 8684, 1171, -1871, -850 },
- { 8357, 2484, -2411, -1292 },
- { 6516, 2092, -193, -1167 },
- { 6112, 1697, 22, -525 },
- { 7161, 703, -602, -1879 },
- { 6047, 2351, -807, -219 },
- { 8072, 1854, -1817, -1553 },
- { 6956, 1304, 76, -1011 },
- { 6607, 1481, -544, -162 },
- { 6958, 2541, -265, -1938 },
- { 6416, 2514, -777, -850 },
- { 7272, 2110, -899, -1171 },
- { 7741, 2153, -283, -2614 },
- { 6482, 2041, -1758, -1221 },
- { 6762, 940, -1862, -2281 },
- { 5610, 1194, -1691, -1561 },
- { 7833, 2164, -823, -1952 },
- { 5460, 1438, -848, 1189 },
- { 6011, 1377, -771, -1557 },
- { 7679, 544, -1134, -2214 },
- { 7209, 1292, -2714, -1564 },
- { 5567, 1200, -404, -169 },
- { 5853, 1461, -1465, -518 },
- { 6782, 689, -844, -860 },
- { 7330, 1337, -1152, -71 },
- { 7189, 1506, -653, -685 },
- { 6860, 2116, -1403, -240 },
- { 8804, 1516, -1391, -1760 },
- { 7210, 2689, -1498, -989 },
- { 7030, 3022, -1441, -2083 },
- { 5649, 1836, -407, 525 },
- { 7451, 3099, -717, -2464 },
- { 7384, 1656, -2007, 398 },
- { 6504, 707, -1919, -134 },
- { -1851, 3639, -2279, -695 },
- { -4037, 1644, -77, 1329 },
- { -4025, 1960, -1565, -567 },
- { -3430, 2495, -795, 368 },
- { -4771, 2480, 993, 756 },
- { -3431, 2058, -2539, -971 },
- { -3802, 3418, 380, 217 },
- { -3074, 3350, -1652, -1056 },
- { -3705, 326, -1650, 1535 },
- { -3122, 1281, -1192, 1607 },
- { -4601, 1367, -968, 53 },
- { -3808, 958, 44, 2560 },
- { -2079, 2530, -1485, 1166 },
- { -3707, 343, -2889, 180 },
- { -5249, 1431, -31, 688 },
- { -4990, 125, -704, 1270 },
- { -2771, 1334, -2446, 746 },
- { -2292, 994, -1527, 2630 },
- { -1261, 3070, -2519, 268 },
- { -2544, 3890, -1057, -552 },
- { -4421, 255, -1980, 530 },
- { -2951, 454, -13, 3643 },
- { -2262, 1815, -370, 2880 },
- { -2383, 3657, -649, 576 },
- { -3541, -161, -1389, 2550 },
- { -4241, 1575, 1325, 2561 },
- { -2767, 4037, 1221, 1578 },
- { -3748, 2697, 1148, 1801 },
- { -4686, 2385, -220, 0 },
- { -1531, 1645, -2751, 1327 },
- { -45, 4032, -799, 2298 },
- { -2915, 2280, 709, 2495 },
- { -1199, 3278, -406, 2346 },
- { -2471, 116, -2706, 2060 },
- { -2440, 2173, -2894, -344 },
- { -3375, 2287, 1781, 3226 },
- { -2153, 3568, 1827, 2918 },
- { -862, 2267, -1626, 2527 },
- { -2698, 1135, 301, 4239 },
- { -2364, 2123, 1010, 3710 },
- { -2447, 3281, -81, 1408 },
- { -2660, 4735, 472, 258 },
- { -1053, 3097, 2682, 2398 },
- { -3366, -1037, -1152, -868 },
- { -643, 4242, 2212, 1259 },
- { 971, 3991, 934, 643 },
- { -1617, 2002, 2139, 2195 },
- { -4897, 972, 784, 1719 },
- { -1275, 2992, 1039, 3821 },
- { -392, 4973, -209, 1821 },
- { -1028, 4718, -1479, -137 },
- { 50, 3914, 553, 2210 },
- { 678, 4364, 359, 1303 },
- { -582, 4911, 514, 1671 },
- { 1276, 3914, -1252, 2934 },
- { -1496, 3984, 857, 2330 },
- { 772, 4744, -655, 2332 },
- { -799, 5283, -439, 624 },
- { 1341, 2937, 650, 2027 },
- { -1739, 4892, 1275, 1702 },
- { -892, 2596, -151, 3951 },
- { -3532, 1090, 1292, 32 },
- { 321, 3146, 2647, 1475 },
- { 264, 4199, -1591, 1317 },
- { -452, -2357, 2266, 4192 },
- { 3022, -1033, -2389, 5678 },
- { -1162, -1342, 3543, 4990 },
- { -474, -1477, -1223, 5016 },
- { -699, -2857, 900, 3835 },
- { -461, -2255, -117, 4626 },
- { 1204, -2062, -1211, 4403 },
- { 2192, -3035, -337, 3966 },
- { 108, -831, 279, 5643 },
- { 1457, -620, -2908, 5276 },
- { -2527, -78, 1085, 5460 },
- { -1978, -1918, -949, 4733 },
- { 32, 367, -1904, 5166 },
- { 1890, -1665, 440, 4752 },
- { -518, -348, 2816, 4891 },
- { 3695, -2490, -1374, 4603 },
- { 246, -1965, 3549, 3969 },
- { 1100, -3111, 656, 3737 },
- { -1379, 870, -414, 4575 },
- { 628, -357, -1227, 6179 },
- { -1129, -1318, -2457, 4576 },
- { -425, -98, -73, 6336 },
- { 367, -887, 2990, 4207 },
- { 2091, -1251, 2444, 3557 },
- { -1759, -1610, 2046, 5273 },
- { 3210, 1414, -20, 2616 },
- { 3303, -2636, 1005, 4237 },
- { -327, -3107, -640, 3687 },
- { -197, 764, 572, 5486 },
- { 646, -767, 1388, 5464 },
- { 104, 2742, -228, 3907 },
- { -236, 1829, -579, 4585 },
- { -2150, -474, -1525, 4006 },
- { -23, -2632, -2400, 3892 },
- { -12, -1739, -2910, 4867 },
- { -2310, -368, -102, 4583 },
- { -1991, -2061, 533, 4531 },
- { 3884, -1446, -153, 4393 },
- { 1568, 14, -289, 5268 },
- { -1376, -253, -2797, 3417 },
- { 3193, -2577, 2475, 3566 },
- { 3418, 617, 1350, 1857 },
- { 3792, -24, -272, 3370 },
- { 153, 1159, 2906, 2877 },
- { 511, 2162, 1548, 2741 },
- { 262, 819, -2791, 3734 },
- { 4232, -2015, 1486, 3477 },
- { 2943, -1110, -1014, 5480 },
- { 2842, 369, 703, 3476 },
- { 3011, 1634, -933, 3553 },
- { 4412, -1548, -942, 5021 },
- { -1405, 593, 2372, 5267 },
- { 2093, 2129, 896, 2365 },
- { 4845, -1980, 0, 3823 },
- { -2140, 81, 3278, 5637 },
- { 1484, 2665, -324, 3653 },
- { 10, 192, 1620, 5291 },
- { 2152, 738, -2269, 5000 },
- { 2102, 2748, -1652, 4707 },
- { 2855, -2131, -387, 5188 },
- { 1173, 676, 1338, 3277 },
- { 2340, -2329, -2064, 4095 },
- { 861, -2024, 1296, 5055 },
- { 2189, 3225, -695, 2626 },
- { 6196, -7079, 1943, -822 },
- { 4547, -4813, 3261, 1856 },
- { 4243, -6904, 3443, 448 },
- { 4581, -7503, 946, 506 },
- { 6626, -7754, 3427, 470 },
- { 3407, -9088, 3269, -1496 },
- { 4079, -6464, 2304, 777 },
- { 5621, -9336, 2684, -768 },
- { 5351, -6464, 5238, -214 },
- { 5961, -8007, 1724, -3091 },
- { 4213, -8067, 603, -246 },
- { 7208, -7403, 3168, -1738 },
- { 6098, -7700, 329, -1379 },
- { 6525, -6735, 4248, -1072 },
- { 6073, -6241, 2167, -2378 },
- { 4609, -9218, 3051, -1033 },
- { 6813, -7283, 1581, -1897 },
- { 6126, -6275, 2789, 681 },
- { 4423, -6538, 1621, -1692 },
- { 6272, -8298, 3167, -1855 },
- { 6172, -8558, 4498, -1169 },
- { 4844, -8588, 1647, -366 },
- { 6209, -8807, 1581, -369 },
- { 5389, -8059, 550, -192 },
- { 6654, -9775, 2504, -1063 },
- { 7103, -7998, 806, 530 },
- { 5662, -6736, 1565, -3620 },
- { 4165, -9564, 4191, -2131 },
- { 4526, -7181, 576, -2875 },
- { 4633, -8623, 2807, -4742 },
- { 3709, -7794, 1815, 34 },
- { 3634, -8622, 2313, -826 },
- { 6991, -8447, 2063, -3198 },
- { 7757, -9486, 2255, -558 },
- { 4149, -7778, 4728, -1696 },
- { 5767, -7427, 1113, 707 },
- { 4592, -6261, 2329, 1864 },
- { 3159, -10498, 1677, -4273 },
- { 3534, -9010, 2437, -3565 },
- { 4479, -10821, 2715, -4942 },
- { 3207, -9805, 3054, -3886 },
- { 4627, -8189, 3018, -2354 },
- { 5527, -10566, 3244, -2749 },
- { 4346, -10127, 3335, -3084 },
- { 6132, -10085, 3316, -1308 },
- { 5629, -9704, 2178, -3058 },
- { 3603, -8538, 1246, -624 },
- { 3737, -8488, 395, -3167 },
- { 5465, -11414, 2810, -4640 },
- { 5306, -7745, 2721, -3988 },
- { 7000, -9111, 1695, -1409 },
- { 6663, -7741, 2466, -4079 },
- { 4083, -7175, 1836, -4831 },
- { 3613, -9926, 1342, -3455 },
- { 6588, -8033, 457, -258 },
- { 4720, -8102, 17, -1209 },
- { 7414, -8709, 1294, -344 },
- { 5437, -10030, 4043, -1704 },
- { 4862, -9281, 1558, -1431 },
- { 6800, -6403, 5113, 862 },
- { 4623, -8242, 2667, -228 },
- { 5919, -5083, 3348, 2135 },
- { 5985, -8889, 2733, -5105 },
- { 5029, -5767, 4407, 719 },
- { 354, -6158, -838, -3001 },
- { 351, -5943, -2104, -1534 },
- { -633, -7190, -25, -4798 },
- { -1595, -7235, -3812, -1400 },
- { 103, -6197, -2933, -78 },
- { -1722, -5020, -3441, -4333 },
- { -1963, -5644, -4365, -270 },
- { -846, -5743, -3477, 196 },
- { -191, -5348, -4054, -469 },
- { -2515, -7754, -3495, -818 },
- { -2090, -6710, -2701, 117 },
- { -546, -7036, -1398, 163 },
- { -278, -7091, -2662, -536 },
- { -622, -7962, -2731, -1464 },
- { -1555, -8118, -3612, -2057 },
- { -1094, -6280, -2314, 505 },
- { -2556, -8538, -4024, -2247 },
- { 109, -7134, -3107, -1823 },
- { -900, -6954, -3340, -717 },
- { -605, -7113, -3656, -2154 },
- { 837, -6263, -3211, -2177 },
- { -417, -5810, -3871, -1469 },
- { -1318, -5649, -4207, -3198 },
- { 413, -6765, -2082, -33 },
- { -3101, -6450, -4362, -766 },
- { 755, -6489, -2967, -846 },
- { 1117, -7106, -2452, -1352 },
- { -1202, -8387, -3072, -2897 },
- { -365, -4894, -3561, -2937 },
- { -2372, -8776, -265, -4441 },
- { -1224, -8678, -896, -5074 },
- { -755, -10096, -600, -6623 },
- { 300, -8206, -225, -4568 },
- { -1176, -6824, -2633, -3527 },
- { -2006, -5443, -1526, -5849 },
- { -1115, -5540, -2363, -4785 },
- { 1059, -6812, -2543, -2654 },
- { -1976, -6861, -3062, -5508 },
- { -379, -5328, -2321, -3624 },
- { -2108, -5860, -4518, -1915 },
- { -379, -7885, -1329, -594 },
- { 774, -5389, -581, -5213 },
- { -2601, -5083, -1849, -4921 },
- { -176, -5580, 74, -5075 },
- { -204, -6780, -190, -6232 },
- { 418, -7594, -1987, -820 },
- { -1873, -8529, -2926, -1609 },
- { 1340, -6362, -919, -4975 },
- { 577, -7990, -2044, -1873 },
- { -2572, -7413, -1745, -2224 },
- { -2037, -7030, -1461, -7138 },
- { -2559, -8756, -2039, -5836 },
- { -2079, -6764, -1209, -5669 },
- { -1613, -7801, -2006, -685 },
- { -1865, -6583, -722, -3529 },
- { -589, -6358, -1377, -1003 },
- { -540, -7514, -1331, -3542 },
- { 419, -6192, -1677, -4927 },
- { -2786, -8763, -2966, -5065 },
- { -2172, -8411, -1726, -4675 },
- { -3382, -9833, -3497, -5722 },
- { -2433, -10169, -2077, -5775 },
- { -424, -9451, -1096, -3658 },
- { -537, -8522, -910, -1897 },
- { -5550, 2807, 1683, -693 },
- { -6395, 635, 3573, -1246 },
- { -7544, 2280, 2140, 44 },
- { -8751, 1136, 2951, -794 },
- { -5605, 2709, 2052, 916 },
- { -7650, 654, 869, 135 },
- { -6939, 967, 1409, 870 },
- { -7834, 2123, 3310, 974 },
- { -6935, 2818, 1274, -1678 },
- { -5605, 2233, 1013, 471 },
- { -7095, 1849, 1648, 198 },
- { -6636, 1634, 712, -37 },
- { -7279, 978, 296, -315 },
- { -7664, 3504, 3292, -216 },
- { -7836, 1209, 1221, -257 },
- { -7913, 2201, 1765, -1529 },
- { -7077, 3783, 2632, -1407 },
- { -5565, 1645, 1410, -622 },
- { -6494, 2879, 1181, -759 },
- { -7073, 3137, 3010, 550 },
- { -7249, 1839, 847, -805 },
- { -6630, 2197, 282, -1096 },
- { -8836, 1573, 1988, -1090 },
- { -7809, 1274, 836, -1198 },
- { -7895, 2970, 3511, -1097 },
- { -6960, 1664, 1356, -2442 },
- { -6582, 2866, 2273, 307 },
- { -7221, 821, 2851, -1435 },
- { -6015, 1703, 2001, -2367 },
- { -8082, 1034, 2103, 239 },
- { -5952, 1912, 301, -465 },
- { -6099, 841, 379, 567 },
- { -6343, 50, 494, 658 },
- { -6586, 983, 591, -893 },
- { -5500, 869, 2187, -2479 },
- { -6482, 60, 1545, -979 },
- { -6705, 515, 1974, -53 },
- { -6460, 1755, 1325, -1275 },
- { -6093, 2617, 2465, -623 },
- { -7330, 2161, 594, -2115 },
- { -7324, 762, 1593, -2004 },
- { -6385, 679, 1510, -2514 },
- { -6159, 241, 2976, -1631 },
- { -8583, 3030, 4045, -162 },
- { -6299, 66, 2209, -2103 },
- { -5428, 1279, 3267, -1846 },
- { -6438, 1335, 2728, -1631 },
- { -8012, 1070, 2428, -1151 },
- { -6201, 2781, 2349, -1918 },
- { -5918, 1139, 3121, -148 },
- { -6314, 2481, 3137, -1808 },
- { -7180, 1722, 2435, -1602 },
- { -6750, 1829, 3763, -1145 },
- { -6713, 1777, 2221, 1212 },
- { -7479, 1835, 3627, -479 },
- { -7299, 10, 2406, -1593 },
- { -8249, 3129, 996, -2870 },
- { -8374, 1534, 1333, -1882 },
- { -7507, 3353, 1598, -2299 },
- { -7379, 2701, 2326, -1167 },
- { -8440, 2276, 2796, -542 },
- { -10348, 1527, 2649, -1165 },
- { -8184, 3614, 2574, -1738 },
- { -5539, 1574, 1733, 1138 },
- { 9404, -7652, 67, 79 },
- { 8654, -3972, 1358, -60 },
- { 8617, -4794, 117, 2318 },
- { 7886, -4505, 1784, 1200 },
- { 8636, -6125, 3879, -1003 },
- { 9654, -6836, 1816, 205 },
- { 9374, -6553, 913, 1875 },
- { 8020, -6150, 1134, 2390 },
- { 7786, -4970, 2078, -1857 },
- { 8691, -6119, 711, 708 },
- { 9039, -5568, 2944, -1902 },
- { 9955, -5048, 1433, -601 },
- { 8089, -6927, 3093, -2846 },
- { 8487, -7024, 2415, 19 },
- { 9388, -5287, 3577, -2655 },
- { 8591, -7371, 2300, -996 },
- { 9104, -4763, 1453, -2558 },
- { 7615, -5457, 596, 164 },
- { 9860, -7047, 3433, -614 },
- { 8756, -4404, 2235, -964 },
- { 9462, -4660, 299, -1822 },
- { 10119, -5550, 2689, -1273 },
- { 10915, -7471, 2705, -1007 },
- { 11433, -7090, 1410, -1198 },
- { 9882, -7431, 2965, -1895 },
- { 7628, -5219, 769, -2661 },
- { 8169, -5318, 2262, 70 },
- { 8846, -6320, 1939, -754 },
- { 7147, -5593, 1248, -971 },
- { 10652, -5485, 935, 137 },
- { 7778, -6533, 2564, -1932 },
- { 8878, -5173, 1214, -361 },
- { 9828, -4943, 282, 510 },
- { 10042, -6134, 3895, -1914 },
- { 7965, -6630, 3566, -433 },
- { 8573, -4502, 3574, -1209 },
- { 8398, -4801, 1031, -1347 },
- { 10136, -7772, 2612, 1547 },
- { 9890, -7280, 1768, -1083 },
- { 8407, -6585, -706, -58 },
- { 7976, -7582, 229, -131 },
- { 10481, -8866, 1166, -147 },
- { 10914, -4342, 3189, -2412 },
- { 10440, -5198, -104, -1109 },
- { 11227, -6530, 2381, -2449 },
- { 8487, -8064, 1086, 230 },
- { 9975, -6123, -857, -134 },
- { 8339, -6498, 1232, -2337 },
- { 11042, -4506, 1119, -2098 },
- { 12563, -5592, 1837, -2062 },
- { 11801, -5590, 632, -1296 },
- { 10152, -5617, 1511, -1917 },
- { 7800, -6473, 51, -1337 },
- { 7941, -5560, 2438, -3270 },
- { 6554, -3834, 2100, 1476 },
- { 9065, -5520, -226, -1120 },
- { 10794, -7120, -243, 122 },
- { 10429, -6968, 272, -806 },
- { 8942, -8914, 1442, -392 },
- { 9969, -5051, 2033, -2953 },
- { 7275, -4152, 3058, -64 },
- { 11127, -5488, 4589, -3227 },
- { 9626, -6666, 2739, -2958 },
- { 6943, -5362, 4470, 1008 },
- { -7456, -967, 2936, -1002 },
- { -8622, -333, 6962, 2606 },
- { -7486, -3392, 3668, 1287 },
- { -8053, -827, 5148, 1097 },
- { -6610, 454, 4952, 96 },
- { -7701, -1982, 3161, -468 },
- { -7307, -1132, 4071, -36 },
- { -8125, -271, 5199, 3862 },
- { -9182, -1950, 2813, 1878 },
- { -9855, -952, 4794, 3010 },
- { -7241, 1431, 4202, 2468 },
- { -9646, 157, 4766, 1046 },
- { -9371, 1230, 6009, 2958 },
- { -11514, -64, 8630, 5248 },
- { -6766, 565, 2766, 2140 },
- { -8426, -9, 2852, 1271 },
- { -11291, -1113, 5087, 2937 },
- { -8297, 2092, 4495, 1264 },
- { -9983, 735, 3809, -51 },
- { -9048, -1000, 3191, -308 },
- { -7331, -1987, 2655, 1391 },
- { -7144, -21, 4333, 2161 },
- { -6032, -1540, 3543, 896 },
- { -7987, -1036, 1985, 1529 },
- { -9264, 2004, 5194, 290 },
- { -11308, -840, 5754, 1654 },
- { -9130, -2398, 4292, 2973 },
- { -6248, 838, 3563, 1223 },
- { -6819, -2760, 3511, 119 },
- { -7213, -2006, 4364, 762 },
- { -5431, -1047, 4533, 166 },
- { -7098, -641, 2021, 639 },
- { -8628, -2249, 3588, 399 },
- { -6352, -1498, 3560, -648 },
- { -7033, -2190, 4870, 2562 },
- { -7405, -46, 3772, -581 },
- { -6104, 796, 5143, 1965 },
- { -5787, 943, 5784, 3030 },
- { -8367, 1465, 7192, 4097 },
- { -8259, 789, 5694, 1963 },
- { -10614, -1899, 5748, 2645 },
- { -8258, -805, 3698, 2275 },
- { -6877, -972, 6431, 3160 },
- { -6483, 363, 7018, 3129 },
- { -6283, -1358, 5191, 1524 },
- { -8853, -3157, 4119, 1741 },
- { -6086, -267, 3883, -835 },
- { -7254, 1032, 6613, 4017 },
- { -11470, -3350, 4649, 3426 },
- { -6743, 481, 6148, 1239 },
- { -5394, -166, 5309, 3165 },
- { -7958, 1068, 4268, -240 },
- { -10520, 2256, 7916, 2828 },
- { -5132, -4, 5739, 1176 },
- { -8643, 120, 3255, -629 },
- { -9631, 1974, 8870, 4362 },
- { -10663, -1221, 3733, 589 },
- { -8224, -1843, 5806, 2655 },
- { -8282, 1255, 8647, 3478 },
- { -12311, -1505, 9043, 6256 },
- { -11312, -856, 7136, 4681 },
- { -11944, -722, 7941, 3309 },
- { -7868, -463, 6846, 4196 },
- { -8679, -241, 7410, 5347 },
- { 6759, -4680, -508, 1220 },
- { 5176, -6111, 944, 121 },
- { 6843, -5667, -1368, -533 },
- { 5616, -5884, -1471, -695 },
- { 6030, -5089, -1808, -940 },
- { 7444, -5463, -52, 1881 },
- { 4207, -6079, -506, 1571 },
- { 6785, -4410, -649, 3084 },
- { 4838, -5214, 2026, 2998 },
- { 4201, -5790, 645, 1811 },
- { 6930, -5129, -1940, 1698 },
- { 6332, -4627, 692, 3027 },
- { 6285, -4314, -106, 3644 },
- { 6255, -5450, -1975, 742 },
- { 4199, -4676, -459, 1796 },
- { 5592, -5500, 1345, 1300 },
- { 4358, -5556, -2236, 114 },
- { 4620, -5875, -1563, 888 },
- { 4892, -7550, -327, -419 },
- { 4734, -7085, 7, 613 },
- { 3883, -5562, -1969, 1080 },
- { 5610, -4990, -204, 834 },
- { 4117, -6482, -1271, 341 },
- { 6585, -5107, 892, 1169 },
- { 6632, -3683, 302, 3002 },
- { 6326, -5351, -983, -1250 },
- { 4382, -7192, -730, -158 },
- { 5227, -6540, -451, 1123 },
- { 5468, -6472, -870, -1471 },
- { 5191, -6402, -1365, -127 },
- { 7407, -6317, -973, -336 },
- { 4611, -6530, -820, -1980 },
- { 4963, -5159, -2050, -966 },
- { 4414, -5691, -211, -998 },
- { 5954, -5873, 750, -1749 },
- { 4394, -4796, -1268, 254 },
- { 7161, -6214, -1010, 689 },
- { 4965, -3598, 2372, 1711 },
- { 6248, -6180, 981, 864 },
- { 6473, -5336, 525, -600 },
- { 4591, -6864, -1131, -900 },
- { 6314, -6440, -1021, -375 },
- { 5838, -6209, -1199, 944 },
- { 5308, -5283, -2100, 1267 },
- { 4342, -5860, -1637, -1356 },
- { 5680, -4388, -1227, -104 },
- { 4900, -4098, 1449, 4046 },
- { 4677, -4284, -106, 3190 },
- { 7574, -6173, -848, 1859 },
- { 6493, -7207, -131, 726 },
- { 5513, -5261, -2117, 4 },
- { 6191, -7352, -193, -505 },
- { 5885, -4333, 324, -134 },
- { 6162, -6081, -312, -2044 },
- { 4216, -6200, -1810, -572 },
- { 5652, -7035, -696, -197 },
- { 7131, -7189, -366, -60 },
- { 5032, -4803, -1514, 2832 },
- { 7386, -4610, -606, 3489 },
- { 4211, -5031, 1221, 3047 },
- { 4050, -4653, 1584, 1469 },
- { 6852, -5302, -1861, 206 },
- { 7736, -4816, -1794, 3359 },
- { 6290, -3439, 1522, 2454 },
- { 1768, 5990, -5560, -2594 },
- { 3903, 5326, -1530, -1501 },
- { 2472, 3738, -2117, -4240 },
- { 3260, 5448, -904, -4733 },
- { 1435, 7297, -3676, -4102 },
- { 4096, 5951, -656, -3312 },
- { 2178, 6009, -3146, -3724 },
- { 3787, 5493, -5473, -1633 },
- { 2998, 7286, -3334, -3571 },
- { 2894, 6576, -4708, -2804 },
- { 830, 6163, -4286, -3348 },
- { 4755, 5569, -1730, -2739 },
- { 4604, 6065, -3562, -2605 },
- { 2749, 5141, -3986, -2775 },
- { 3942, 4875, -2143, -3340 },
- { 2819, 8517, -2004, -2724 },
- { 2146, 6298, -689, -3093 },
- { 5196, 6504, -3393, -1475 },
- { 1851, 8386, -1748, -1420 },
- { 3474, 8572, -3534, -2688 },
- { 4503, 7560, -3561, -2245 },
- { 4433, 6219, -2393, -1575 },
- { 3506, 7248, -2275, -1977 },
- { 3490, 7409, -3147, -604 },
- { 4214, 6447, -3520, 516 },
- { 619, 7034, -829, -1705 },
- { 1732, 7395, -356, -2208 },
- { 1226, 5204, -3294, -3732 },
- { 2027, 5619, -1813, -4146 },
- { 3078, 5877, 47, -2651 },
- { 1654, 5458, 424, -682 },
- { 3163, 5464, -2026, -270 },
- { 2884, 5375, -685, -530 },
- { 2950, 7286, -35, -2967 },
- { 1986, 5066, -597, 482 },
- { 3459, 4308, -3845, -2333 },
- { 3155, 7037, -1346, -4345 },
- { 2193, 6696, -717, -1319 },
- { 3677, 5089, -3892, -487 },
- { 2186, 5136, -4186, -1492 },
- { 773, 5796, -917, 817 },
- { 2489, 6546, -3570, -2117 },
- { 1223, 6469, -1362, -33 },
- { 271, 6061, -1466, -1725 },
- { 2540, 5171, -1847, 1032 },
- { 2548, 5251, -2697, 1677 },
- { 771, 7600, -768, -632 },
- { 4710, 6647, -4736, -1275 },
- { 1369, 5917, -2971, -1056 },
- { 163, 5239, -3499, -2275 },
- { 2104, 4285, -3211, -3286 },
- { 1107, 7411, -1972, -1671 },
- { 2196, 7262, -2310, -1926 },
- { -244, 6439, -1745, -839 },
- { 3293, 3832, -2890, -3000 },
- { 419, 6443, -379, -407 },
- { 3077, 4930, -1156, -2869 },
- { 2131, 5874, -2330, 224 },
- { 690, 6538, -2212, -2841 },
- { 1602, 4421, -2515, 1542 },
- { 3318, 9373, -3032, -3477 },
- { 5646, 7462, -5153, -1463 },
- { 4139, 7137, -1539, -3321 },
- { 3481, 9077, -1645, -3653 },
- { -7747, 375, -106, -543 },
- { -8587, -1379, -586, -461 },
- { -10146, -892, 2094, 694 },
- { -8103, 382, 504, -325 },
- { -8548, -92, 94, -656 },
- { -7460, 38, 152, 388 },
- { -8266, -271, -459, -883 },
- { -7935, -664, -1026, -802 },
- { -8341, -109, 853, 161 },
- { -8802, -1355, 1099, 630 },
- { -8957, -6, 1108, -669 },
- { -7260, -1520, -43, -407 },
- { -7555, -174, 668, -2562 },
- { -9014, -126, 227, -1191 },
- { -8184, 769, 290, -1375 },
- { -9476, 55, 962, -1528 },
- { -8679, 541, 755, -1030 },
- { -9842, -1626, 838, -1588 },
- { -8513, -702, 788, -1998 },
- { -10101, -1558, -366, -1841 },
- { -8135, 78, 1479, -1813 },
- { -9128, -454, 313, -1786 },
- { -7554, -1084, 831, -2442 },
- { -7576, -701, 2068, -1665 },
- { -7791, -1481, 1587, -1808 },
- { -6701, -596, -97, 802 },
- { -7418, -15, 684, -963 },
- { -7127, -477, -139, -426 },
- { -8097, -110, -36, -264 },
- { -7620, -1922, -590, -101 },
- { -7647, -1201, 279, 660 },
- { -7856, -1974, 758, -2271 },
- { -8496, -167, 2232, -1143 },
- { -8506, -1359, 624, -740 },
- { -7274, -1052, 1062, -139 },
- { -7800, -217, 91, -1794 },
- { -7030, -1694, -955, 615 },
- { -9020, -1864, 101, -2182 },
- { -9400, -740, 598, -667 },
- { -8448, -1184, 2024, -1272 },
- { -8812, -570, -897, -2384 },
- { -10559, -1286, 538, -1536 },
- { -8728, -888, -1089, -1397 },
- { -7080, -1185, 636, -1252 },
- { -9880, 233, 2344, -782 },
- { -7952, -1326, -378, -1947 },
- { -7207, -378, 1408, -2237 },
- { -8467, -1545, 902, -1987 },
- { -9163, -1474, 924, -1739 },
- { -8159, -992, -77, -2744 },
- { -8343, 148, -423, -1573 },
- { -9105, -649, -254, -1214 },
- { -8939, 456, 281, -1905 },
- { -8837, 179, -394, -2634 },
- { -9145, 757, 1547, -1319 },
- { -9775, -723, 441, -1680 },
- { -8910, -686, 1529, -1525 },
- { -9492, -1134, 2064, -938 },
- { -6111, -943, 677, -31 },
- { -7411, -613, -814, 46 },
- { -9479, -922, -430, -2061 },
- { -11298, -1268, 1318, -1117 },
- { -8190, 832, 671, -2214 },
- { -10453, -550, 1672, -886 },
- { 1044, 9353, -1651, -5423 },
- { 1034, 8149, -455, -6166 },
- { 761, 8293, -3214, -4838 },
- { 938, 8077, 164, -5130 },
- { 1295, 8673, 2582, -5490 },
- { -314, 7973, -2395, -5231 },
- { -507, 9012, -2497, -5775 },
- { 2396, 8314, -1022, -4673 },
- { -1516, 8501, 1950, -4969 },
- { -308, 7401, 1549, -4866 },
- { -112, 8340, 3003, -4920 },
- { -50, 9315, 1371, -5666 },
- { -659, 9449, 2496, -5547 },
- { 2573, 9148, -2270, -4783 },
- { 830, 7104, -438, -3907 },
- { 522, 10672, -677, -6483 },
- { -1190, 10108, -510, -6518 },
- { -427, 8271, -579, -6315 },
- { 1602, 8113, -1927, -4418 },
- { -2266, 8180, 448, -5190 },
- { -1633, 8816, -226, -5771 },
- { 759, 9481, -105, -5813 },
- { 2254, 6679, -466, -5662 },
- { -88, 6946, 895, -5958 },
- { -1705, 10009, 1394, -5574 },
- { 748, 7943, 540, -6692 },
- { 1411, 7009, 232, -6145 },
- { 697, 7290, -1221, -5342 },
- { -1764, 10580, 1944, -3981 },
- { -1334, 9124, 1195, -3903 },
- { -905, 10067, 635, -5039 },
- { 664, 10680, 49, -4625 },
- { 1374, 9536, -777, -3591 },
- { 252, 9698, -597, -2931 },
- { 824, 9164, -1014, -2144 },
- { 2438, 10569, -2289, -4424 },
- { 2101, 7102, 507, -3614 },
- { 294, 8051, -432, -1518 },
- { -665, 10337, 547, -2852 },
- { 1168, 11989, -492, -5427 },
- { 1344, 6416, 302, -5061 },
- { -1727, 12264, 1507, -4543 },
- { 674, 10889, -902, -3605 },
- { -582, 9504, 300, -3618 },
- { 641, 7654, 689, -2109 },
- { 2065, 9243, 508, -4367 },
- { 1055, 8373, 688, -3144 },
- { -641, 8185, 986, -3307 },
- { 1120, 7426, 1785, -3757 },
- { 1660, 8070, -593, -3104 },
- { 2002, 9467, -1722, -3475 },
- { 2361, 8368, 100, -3709 },
- { -772, 7845, -613, -4988 },
- { 1485, 7430, 1896, -6127 },
- { -432, 7823, -947, -2882 },
- { 313, 11122, -760, -4871 },
- { 412, 8412, -283, -4231 },
- { 1585, 10402, -1884, -3267 },
- { 321, 6952, 773, -3016 },
- { -105, 9014, 121, -2249 },
- { 1585, 10313, -977, -4812 },
- { 1619, 11869, 1306, -6876 },
- { -1168, 8886, -81, -2500 },
- { -395, 10886, 733, -6490 },
- { -4949, 4274, 3992, -1054 },
- { -4241, 5299, 4262, -1584 },
- { -2710, 3862, 4552, -1673 },
- { -4608, 2472, 3672, -1715 },
- { -2843, 2816, 4003, -2326 },
- { -5229, 2964, 5636, 90 },
- { -4924, 3442, 5015, -1096 },
- { -1281, 3313, 5537, -2066 },
- { -3808, 1939, 4351, -919 },
- { -1915, 2585, 4939, -1614 },
- { -3470, 1843, 5562, -682 },
- { -3800, 870, 5827, 144 },
- { -4985, 1452, 4728, -709 },
- { -3745, 2750, 7220, 259 },
- { -1875, 1900, 6514, -826 },
- { -4329, 1574, 7192, 1304 },
- { -5408, 1444, 6208, 631 },
- { -3327, 5312, 5707, -1541 },
- { -6966, 3334, 4034, 1028 },
- { -7484, 4245, 4218, -212 },
- { -6567, 5839, 4539, -512 },
- { -5715, 5935, 3747, -1186 },
- { -6410, 4881, 3356, -1610 },
- { -5146, 2590, 2850, 2172 },
- { -5196, 4095, 2569, -373 },
- { -5043, 6025, 4318, 692 },
- { -5525, 4884, 3513, 370 },
- { -6804, 7533, 5812, -488 },
- { -5657, 2480, 4061, 1234 },
- { -3155, 1472, 6071, 1188 },
- { -3427, 5217, 3442, 858 },
- { -4698, 3013, 5517, 2586 },
- { -4449, 2226, 5418, 3580 },
- { -6395, 3547, 5487, 2028 },
- { -3500, 5019, 4787, 1 },
- { -4038, 2578, 3073, 3151 },
- { -2750, 1955, 4469, 3856 },
- { -5696, 1659, 6118, 2469 },
- { -4350, 1241, 6840, 3126 },
- { -5565, 5058, 5196, 1314 },
- { -1642, 4190, 3948, 607 },
- { -1233, 4108, 4850, -640 },
- { -997, 3428, 3239, 1378 },
- { -6488, 2741, 6926, 2792 },
- { -4188, 3763, 4235, 2018 },
- { -3210, 3224, 5646, 1427 },
- { -5526, 6909, 5070, -627 },
- { -2815, 3994, 3425, 1903 },
- { -2163, 2734, 5423, 145 },
- { -4149, 4247, 2355, 734 },
- { -410, 2521, 4138, -16 },
- { -2411, 2385, 4927, 2105 },
- { -6077, 3591, 3114, 594 },
- { -4186, 4834, 5926, -1004 },
- { -7315, 3369, 5966, 448 },
- { -7042, 5721, 5771, 238 },
- { -4466, 3907, 3535, -1751 },
- { -2116, 3970, 6163, -1392 },
- { -7239, 2143, 8407, 3630 },
- { -5431, 4486, 6486, -42 },
- { -1874, 1617, 6333, 519 },
- { -6478, 2629, 4634, -505 },
- { -7784, 2342, 7216, 1365 },
- { -1154, 1432, 4831, 1544 },
- { -4964, -5801, 1797, 506 },
- { -4436, -6905, 1059, -1237 },
- { -5400, -6886, 884, -290 },
- { -6259, -7103, 523, -227 },
- { -4819, -6450, 1412, -450 },
- { -4056, -6213, 1725, -943 },
- { -5642, -6091, 1357, 605 },
- { -4196, -5678, 2187, -173 },
- { -4726, -5126, 2470, 321 },
- { -6642, -5091, 1507, -1005 },
- { -5304, -5250, 1944, 1579 },
- { -7179, -5520, 1468, -425 },
- { -6033, -4895, 1876, -955 },
- { -6595, -5143, 2207, 1291 },
- { -4224, -4943, 1846, 1792 },
- { -7128, -6950, 539, 724 },
- { -4369, -4901, 2590, 1103 },
- { -7413, -5696, 1712, 1440 },
- { -5885, -6821, 418, 871 },
- { -6828, -5599, 710, -1563 },
- { -6123, -5817, 1358, 1631 },
- { -5291, -5622, 578, 2138 },
- { -7171, -6004, 347, 2208 },
- { -6083, -5251, 2132, 425 },
- { -4329, -5721, 407, -2993 },
- { -5326, -5056, 1119, -1837 },
- { -5485, -5856, 185, -2389 },
- { -6529, -5178, 403, -697 },
- { -6719, -4412, 2726, 871 },
- { -5126, -5629, 1835, -771 },
- { -5622, -4361, 2973, 858 },
- { -5282, -5895, 45, -335 },
- { -4357, -5656, 1696, -1558 },
- { -7139, -6659, 627, -409 },
- { -4415, -6328, 35, 1306 },
- { -7639, -6110, 1134, 197 },
- { -3626, -5592, 2019, 901 },
- { -3547, -5064, 1176, 1738 },
- { -5075, -3899, 2087, 266 },
- { -4086, -6311, 1479, 360 },
- { -6210, -5220, -199, -1477 },
- { -3910, -5063, 1356, -15 },
- { -7616, -4977, 461, 2401 },
- { -6118, -6131, 1258, -563 },
- { -6127, -4968, 1286, -27 },
- { -4121, -5852, 1113, 1476 },
- { -5157, -4881, 1162, -662 },
- { -4637, -5031, 1179, 709 },
- { -5509, -5452, -397, 1224 },
- { -4597, -6861, 646, 467 },
- { -6247, -4043, 468, 278 },
- { -5336, -6465, 874, -1472 },
- { -6998, -6346, 78, -1798 },
- { -4915, -4530, 2756, -203 },
- { -6048, -4373, 1468, 1052 },
- { -4273, -7100, 942, -323 },
- { -6552, -4287, 2351, 69 },
- { -6954, -4613, 722, 1521 },
- { -4201, -5361, 763, -1562 },
- { -6881, -5596, -748, 669 },
- { -6695, -3547, -34, 1299 },
- { -3981, -5728, 84, 111 },
- { -4663, -4809, 2173, -1031 },
- { -6599, -6077, 1303, 256 },
- { -7596, -4265, -5791, -4140 },
- { -6610, -2758, -5288, -3936 },
- { -5880, -3865, -6563, -3088 },
- { -7228, -5510, -7677, -3912 },
- { -8854, -6553, -8318, -5361 },
- { -9362, -5249, -6413, -4319 },
- { -4418, -3110, -6368, -4358 },
- { -5544, -4203, -6863, -5013 },
- { -3056, -4316, -5567, -3181 },
- { -3078, -5999, -5051, -2657 },
- { -5884, -6292, -5756, -4013 },
- { -4825, -4549, -5535, -4053 },
- { -4443, -6126, -5316, -1368 },
- { -3972, -6341, -6098, -2686 },
- { -5751, -2781, -5398, -6230 },
- { -4466, -6135, -5570, -3679 },
- { -4291, -5992, -3564, -5189 },
- { -7189, -4429, -7279, -6082 },
- { -5076, -4433, -2748, -5366 },
- { -6225, -2825, -6833, -5663 },
- { -2989, -4792, -3960, -4492 },
- { -7836, -7773, -7722, -5741 },
- { -6559, -5703, -5844, -5589 },
- { -7612, -5438, -4136, -3774 },
- { -4218, -4176, -6591, -2333 },
- { -4837, -5063, -6581, 322 },
- { -6590, -5990, -2980, -3847 },
- { -5558, -2971, -5489, -1932 },
- { -7001, -5323, -4975, -1697 },
- { -4694, -2688, -6904, -3044 },
- { -8511, -5379, -5767, -2549 },
- { -7548, -5412, -6522, -2572 },
- { -6597, -4973, -6423, -1274 },
- { -6415, -4022, -5168, -1072 },
- { -5528, -5530, -7218, -2345 },
- { -4845, -4805, -5943, -1227 },
- { -6049, -7150, -6744, -2161 },
- { -9061, -7299, -8542, -4375 },
- { -5010, -5546, -5416, -82 },
- { -4135, -4205, -5109, -3373 },
- { -3311, -5869, -4007, -5061 },
- { -5993, -6472, -3962, -4718 },
- { -2966, -5832, -2821, -6305 },
- { -4851, -5152, -2067, -3930 },
- { -3620, -4441, -3362, -5836 },
- { -4469, -5221, -4534, -5592 },
- { -4022, -6335, -4321, -6107 },
- { -4899, -4503, -3084, -3725 },
- { -4490, -8276, -4620, -6236 },
- { -6591, -4342, -7365, -4063 },
- { -6498, -5057, -5553, 485 },
- { -6060, -2714, -7093, -4144 },
- { -6199, -7774, -7094, -4057 },
- { -7536, -6424, -6415, -4265 },
- { -7439, -2454, -6348, -4827 },
- { -5333, -7565, -4417, -4639 },
- { -4353, -7103, -4197, -2689 },
- { -5229, -6549, -5129, -6804 },
- { -6129, -7701, -5236, -4836 },
- { -6797, -3983, -3884, -4406 },
- { -6624, -4467, -4745, -5052 },
- { -3324, -7596, -2720, -6553 },
- { -5473, -6284, -1704, -4511 },
- { -4131, -7263, -3180, -5196 },
- { -7116, -5565, -3469, 685 },
- { -6002, -6021, -3858, 576 },
- { -3144, -8203, -1291, -434 },
- { -6096, -7027, -4004, 1353 },
- { -3943, -7709, -2344, -36 },
- { -4510, -6767, -2642, 631 },
- { -3657, -11541, -2570, -3984 },
- { -5959, -8854, -1333, -867 },
- { -6699, -8866, -1606, -344 },
- { -3836, -7961, -2334, -2028 },
- { -3430, -8045, -3037, -672 },
- { -3868, -9184, -3635, -1819 },
- { -4258, -9060, -2621, -1008 },
- { -3595, -8693, -2022, -752 },
- { -4573, -8048, -3166, -2622 },
- { -4852, -7903, -1405, 256 },
- { -4591, -7057, -1560, 965 },
- { -6963, -7655, -980, 808 },
- { -5179, -6641, -3356, 1196 },
- { -7102, -6941, -2798, 2123 },
- { -6867, -5834, -3320, -770 },
- { -5977, -7369, -2500, -778 },
- { -6160, -6400, -934, -2543 },
- { -6741, -7608, -355, -1289 },
- { -6856, -6466, -1433, -1643 },
- { -4786, -6292, -4970, 376 },
- { -5407, -8866, -2255, -400 },
- { -3814, -6506, -1387, -3620 },
- { -4998, -6137, -1200, -4092 },
- { -5123, -9557, -2849, -1306 },
- { -4259, -6444, -4395, -338 },
- { -5221, -6810, -883, 1225 },
- { -6137, -6215, -2165, 554 },
- { -3895, -6557, -3176, -1829 },
- { -3886, -8188, -87, -954 },
- { -7243, -6707, -2216, -316 },
- { -5592, -7606, 85, -432 },
- { -3957, -7945, -504, -144 },
- { -4617, -7624, 218, -312 },
- { -4797, -8737, -844, -1051 },
- { -4478, -8516, -1401, -454 },
- { -4557, -7058, -302, -2332 },
- { -6623, -7736, -271, -50 },
- { -3157, -7532, -1111, -2207 },
- { -3590, -7300, -1271, 517 },
- { -4442, -7306, -507, 590 },
- { -6458, -7524, -2807, 666 },
- { -4991, -8466, -3363, -785 },
- { -7474, -7541, -1056, -1839 },
- { -7501, -8316, -938, -180 },
- { -5329, -7739, -579, -2341 },
- { -4549, -7063, -176, -3539 },
- { -5191, -8612, -1504, -4250 },
- { -3083, -7058, -2251, 32 },
- { -4003, -7043, -1093, -791 },
- { -5523, -8093, -678, -114 },
- { -3022, -10265, -2070, -3109 },
- { -3905, -6274, -182, -3652 },
- { -3269, -9217, -551, -2650 },
- { -3138, -9314, -1726, -1704 },
- { -4420, -10339, -1744, -3459 },
- { -4163, -8609, -2298, -4113 },
- { -5566, -6505, -1241, -463 },
- { -3130, -9746, -2352, -4884 },
- { -7825, -3439, 1451, -1468 },
- { -8451, -3318, 2360, -435 },
- { -8462, -4130, 1438, -1024 },
- { -9425, -4564, 1328, -689 },
- { -11014, -3202, 2278, 2080 },
- { -8269, -2761, -146, -440 },
- { -7497, -2618, -166, 413 },
- { -8250, -3060, 522, -2133 },
- { -8365, -5366, 1347, -451 },
- { -8589, -3979, 2943, 714 },
- { -8111, -2572, 1272, -1748 },
- { -7830, -5193, 605, -1484 },
- { -8119, -4736, 2141, 256 },
- { -7724, -4769, 1463, -812 },
- { -7363, -3911, 2540, 4 },
- { -7974, -3397, 2363, 1366 },
- { -7359, -4204, 1752, -958 },
- { -7622, -3505, 660, 916 },
- { -9934, -3665, 3165, 828 },
- { -8721, -4162, 62, 1718 },
- { -9433, -4768, 2722, 1234 },
- { -7960, -4496, 138, 1528 },
- { -8198, -3454, -443, 631 },
- { -7756, -2246, 655, 1137 },
- { -8841, -3145, 1113, 829 },
- { -7817, -3298, 1251, 230 },
- { -9413, -2733, 323, -1862 },
- { -9408, -4168, 1270, 1549 },
- { -9037, -3892, -942, 283 },
- { -8255, -3849, 1301, 1762 },
- { -9057, -3987, -41, -682 },
- { -9441, -4187, 2019, -111 },
- { -9740, -3178, 1602, -871 },
- { -8344, -2474, 1461, 1506 },
- { -9752, -2925, 1996, 1243 },
- { -9199, -3796, 180, 537 },
- { -9060, -2405, 1140, -1562 },
- { -9348, -2376, 309, -162 },
- { -10786, -3182, -5, -1500 },
- { -8142, -4540, -434, -826 },
- { -7528, -2341, 1104, -73 },
- { -9360, -2658, 3062, 56 },
- { -8267, -2335, 2000, -1193 },
- { -12169, -3154, 1287, -640 },
- { -11398, -2120, 946, -1163 },
- { -8940, -4559, 328, -1696 },
- { -11025, -4213, 2813, 840 },
- { -9224, -3581, 2224, 2039 },
- { -8943, -3337, 1248, -1298 },
- { -7900, -4042, 485, -2080 },
- { -9221, -1947, 2191, -880 },
- { -10762, -1800, 2516, -324 },
- { -10095, -2238, 981, -1335 },
- { -11908, -2808, 3255, 645 },
- { -10640, -4105, 1283, -595 },
- { -7663, -2863, 2467, -797 },
- { -10712, -3854, 3710, 1538 },
- { -10823, -2893, 1408, -801 },
- { -9874, -3832, 256, -1638 },
- { -10394, -3391, 2315, -94 },
- { -11525, -4079, 4153, 2122 },
- { -9546, -2088, 1541, 481 },
- { -8731, -2433, 1042, 2160 },
- { -7852, -3977, -1370, 1677 },
- { 7072, -3420, 1398, -1741 },
- { 6180, -1976, 1280, -3557 },
- { 7692, -1793, 2844, -1700 },
- { 8363, -1773, 3104, -2679 },
- { 9213, -3266, 3756, -3542 },
- { 9650, -2644, 1426, -1318 },
- { 7712, -2796, 3686, -1975 },
- { 7316, -3517, 2821, -622 },
- { 7434, -2594, 2305, -2264 },
- { 7237, -1797, 255, -3114 },
- { 8663, -1983, 1338, -3056 },
- { 6616, -952, 4059, -2652 },
- { 8823, -1327, 1362, -1356 },
- { 9938, -1722, 1287, -2362 },
- { 7207, -1057, 1913, -1315 },
- { 7508, -1585, 870, -1982 },
- { 8217, -3680, 1417, -3170 },
- { 8329, -2541, 1684, -585 },
- { 8062, -2335, 252, -2800 },
- { 8204, -4108, 3097, -2569 },
- { 7701, -3367, 576, -3008 },
- { 7350, -786, 2414, -2129 },
- { 6948, -2568, 1607, -225 },
- { 7684, -2387, 1308, -3449 },
- { 8306, -3458, 2394, -1454 },
- { 8438, -2781, 1043, -1362 },
- { 9175, -2076, 2144, -1987 },
- { 8347, -2709, 3489, -4301 },
- { 5696, -2377, 2870, 851 },
- { 8825, -1243, 2219, -2603 },
- { 8801, -1614, 584, -2513 },
- { 8413, -384, 1421, -2244 },
- { 9228, -3050, 3279, -2164 },
- { 6342, -2698, 3547, -107 },
- { 10053, -2476, 2837, -3168 },
- { 7439, -604, 3177, -3991 },
- { 7749, -1064, 4329, -4855 },
- { 8655, -2177, 2252, -3519 },
- { 8490, -228, 1958, -3233 },
- { 10513, -2968, 1911, -2340 },
- { 8146, -862, 1884, -1723 },
- { 7788, -666, 3004, -2891 },
- { 7785, -1620, 4133, -3417 },
- { 10262, -3731, 3455, -2971 },
- { 8570, -905, 4519, -4649 },
- { 9129, -2562, 463, -2465 },
- { 9451, -3587, 1904, -3056 },
- { 6549, -2236, 3010, -4523 },
- { 7175, -2684, 2967, -3458 },
- { 9872, -3278, 1054, -2472 },
- { 9153, -931, 1217, -2565 },
- { 8789, -3469, 753, -2568 },
- { 6683, -3791, 1797, -3968 },
- { 6801, -1977, 2311, -452 },
- { 6336, -1572, 2612, -3264 },
- { 7996, -1008, 730, -2964 },
- { 7521, -1059, 1573, -3694 },
- { 8148, -3973, 2600, -3572 },
- { 7765, -1532, 2528, -3856 },
- { 7404, -3918, 4472, -143 },
- { 8894, -1398, 3299, -3685 },
- { 5768, -2041, 1487, -637 },
- { 5131, -2865, 2463, -811 },
- { 6439, -1568, 3500, -1550 },
- { -8878, -6798, -5319, -1452 },
- { -6332, -9713, -3112, -990 },
- { -8444, -6316, -3694, -687 },
- { -6123, -10840, -3637, -4358 },
- { -4784, -9580, -4577, -2581 },
- { -6108, -10515, -4859, -2524 },
- { -7605, -7518, -2327, -2797 },
- { -9662, -8775, -2467, -2010 },
- { -6494, -7523, -4715, -118 },
- { -8290, -8982, -1672, -317 },
- { -8798, -11051, -3888, -1426 },
- { -6273, -6623, -6791, -142 },
- { -8313, -7668, -2141, -1275 },
- { -6453, -8412, -3589, -4102 },
- { -6747, -7750, -5690, -2498 },
- { -7814, -6693, -3174, -2446 },
- { -10383, -10130, -3931, -2364 },
- { -10606, -8467, -5539, -2772 },
- { -9475, -6671, -3305, -2271 },
- { -8982, -9457, -5635, -4005 },
- { -10111, -7965, -6515, -4180 },
- { -7301, -6479, -5364, 720 },
- { -9543, -8999, -7921, -912 },
- { -9534, -8562, -3469, -384 },
- { -7601, -10344, -3205, -1127 },
- { -8088, -8620, -4954, -2888 },
- { -8202, -8406, -7038, -3775 },
- { -7312, -8324, -3334, -1775 },
- { -8566, -9262, -8071, -4174 },
- { -7068, -11300, -5573, -2907 },
- { -8295, -8952, -4366, -1544 },
- { -11104, -10210, -2285, -384 },
- { -5213, -7520, -5008, -1339 },
- { -5889, -7940, -5987, -1385 },
- { -10816, -8201, -4153, -1485 },
- { -10277, -8919, -6315, -1652 },
- { -5888, -10320, -3821, -1733 },
- { -10497, -7181, -6083, -3032 },
- { -7721, -9724, -6591, -5336 },
- { -5688, -7894, -3486, -2552 },
- { -10014, -10500, -3247, -820 },
- { -6301, -8765, -4506, -2923 },
- { -8261, -7847, -6213, -1552 },
- { -10212, -7481, -8113, -3954 },
- { -6938, -10874, -6074, -4703 },
- { -7183, -10968, -4446, -1773 },
- { -7120, -9193, -1966, -2509 },
- { -6234, -9263, -2313, -4284 },
- { -8503, -9857, -2429, -608 },
- { -9372, -7844, -8391, -2120 },
- { -7951, -7157, -6535, -11 },
- { -7256, -9473, -2172, -660 },
- { -10063, -9612, -2515, -15 },
- { -6684, -9134, -6109, -4206 },
- { -8204, -11932, -5220, -2306 },
- { -9710, -6706, -4115, -3275 },
- { -6855, -7078, -2409, -4447 },
- { -7344, -7673, -4479, -4116 },
- { -8851, -6842, -4927, -2948 },
- { -8927, -10452, -5633, -2194 },
- { -8627, -9002, -7176, -1575 },
- { -8209, -9722, -7021, -3324 },
- { -3770, -10249, -3623, -4816 },
- { -8183, -7465, -4090, 646 },
- { -8163, -7149, 200, 498 },
- { -8289, -6266, 686, -206 },
- { -10030, -6241, -1032, -1864 },
- { -8793, -8327, -773, -169 },
- { -9149, -6215, 969, -15 },
- { -8303, -5859, -7, 2006 },
- { -9682, -7283, 255, 1322 },
- { -9293, -7227, 71, -231 },
- { -8525, -6215, 287, -837 },
- { -10477, -5379, 1159, 1449 },
- { -10726, -7856, -130, 102 },
- { -8694, -7461, -1210, 690 },
- { -9367, -5324, 1103, 3170 },
- { -10686, -8055, -831, 1633 },
- { -9201, -6873, -2704, 2258 },
- { -8421, -5358, -1405, 226 },
- { -9066, -5830, -307, -1571 },
- { -11150, -7381, -2746, -900 },
- { -9978, -5925, -2006, -437 },
- { -9464, -4741, -273, 1061 },
- { -10543, -6684, -1113, 1660 },
- { -10073, -5576, 1083, -269 },
- { -8826, -5763, 1600, 1486 },
- { -10445, -9071, -1253, -64 },
- { -12085, -5799, 2, 769 },
- { -12939, -6663, 1650, 1437 },
- { -10932, -6434, -1252, -649 },
- { -11650, -7826, -2053, 710 },
- { -12122, -6733, -1889, -731 },
- { -9093, -6095, -2463, -842 },
- { -10977, -4364, 469, 420 },
- { -11488, -6908, -521, 893 },
- { -9669, -5478, -842, 337 },
- { -10606, -5203, -632, -1361 },
- { -10198, -6284, 1662, 1277 },
- { -10135, -5292, 2435, 3493 },
- { -11027, -6561, 655, 56 },
- { -10977, -5030, 1127, -358 },
- { -12766, -3986, 1348, -335 },
- { -14244, -7731, 264, 317 },
- { -15124, -10309, -508, 1447 },
- { -12821, -8638, -608, 137 },
- { -13076, -8693, -2852, -431 },
- { -11156, -5546, -2252, -1600 },
- { -8692, -7366, -819, -1223 },
- { -12507, -9816, -1714, -121 },
- { -10712, -6666, 544, 3349 },
- { -12462, -5890, -2491, -2318 },
- { -12468, -7226, 437, 232 },
- { -11300, -5226, 2068, 687 },
- { -11994, -8320, -626, 2728 },
- { -12222, -5476, 1142, 18 },
- { -10277, -8122, -2418, 2003 },
- { -13418, -6115, -3563, -2802 },
- { -14759, -9834, -1243, 21 },
- { -13699, -5665, 1525, 507 },
- { -16269, -9476, -701, 163 },
- { -12677, -5437, -247, -1019 },
- { -11827, -4295, -181, -1243 },
- { -12847, -4496, 2984, 1123 },
- { -13860, -7915, -1166, -547 },
- { -12276, -8145, -2290, -1527 },
- { -11417, -4830, 2983, 1854 },
- { -11793, -6002, 1163, 1940 },
- { 11443, -4920, -3235, 3151 },
- { 11300, -6616, -1506, 1175 },
- { 9198, -4628, -2060, 2390 },
- { 10532, -4027, -643, 912 },
- { 9902, -3573, -1606, 1327 },
- { 9653, -3536, -2240, 1869 },
- { 9948, -5171, -423, 2662 },
- { 12316, -4004, -1989, 281 },
- { 12125, -4800, -1265, -163 },
- { 10650, -2617, -2337, 1462 },
- { 9909, -4968, -2376, 916 },
- { 12944, -4647, -1958, 460 },
- { 12988, -5283, -1141, 41 },
- { 12321, -2915, -3621, 1025 },
- { 11449, -2894, -2728, 351 },
- { 12087, -3041, -2002, -32 },
- { 11558, -4031, -1343, -399 },
- { 12983, -3740, -3516, 1245 },
- { 12099, -2515, -2752, 225 },
- { 12515, -3465, -2701, 550 },
- { 14683, -5022, -5272, 2996 },
- { 12260, -3383, -1215, -528 },
- { 13810, -5422, -2443, 1166 },
- { 13421, -5378, -1886, 721 },
- { 12961, -4259, -2594, 796 },
- { 12266, -2104, -4768, 1591 },
- { 13523, -4710, -3045, 1342 },
- { 12437, -2099, -5610, 2117 },
- { 11850, -2183, -3497, 661 },
- { 12275, -3936, -597, -697 },
- { 12459, -5253, -517, -544 },
- { 12835, -4094, -1322, -168 },
- { 14360, -5677, -3305, 1859 },
- { 13905, -4552, -4309, 2117 },
- { 11559, -3412, -1847, -81 },
- { 13379, -3167, -5764, 2746 },
- { 11910, -1634, -4342, 1052 },
- { 12662, -4742, 71, -974 },
- { 13057, -3254, -4424, 1705 },
- { 15046, -5706, -4851, 3019 },
- { 14162, -4142, -5514, 2843 },
- { 12764, -1845, -6684, 2888 },
- { 13714, -2374, -7838, 3857 },
- { 13295, -1663, -8293, 4073 },
- { 10032, -4152, -3403, 1421 },
- { 10942, -5386, -2222, 950 },
- { 10532, -6385, -1750, 1925 },
- { 10273, -5972, -1534, 643 },
- { 10605, -4782, -1695, 27 },
- { 10988, -5153, -1123, -341 },
- { 11629, -5884, -1060, 48 },
- { 10441, -4045, -2431, 311 },
- { 10788, -3595, -4171, 1807 },
- { 12110, -5686, -2127, 976 },
- { 11746, -4773, -2639, 891 },
- { 11541, -5299, -3031, 1732 },
- { 11416, -2559, -5359, 2198 },
- { 11583, -5376, -704, 677 },
- { 10416, -3214, -3516, 872 },
- { 9651, -5435, -1618, 3255 },
- { 9973, -5133, -996, 3923 },
- { 11707, -4643, -430, -796 },
- { 10994, -2709, -3587, 2302 },
- { 10716, -5118, -645, 270 },
- { 14100, -10314, 1095, 1531 },
- { 12944, -8049, 1105, -741 },
- { 13276, -7035, -511, 274 },
- { 14008, -7254, -283, 139 },
- { 11594, -6536, -91, 1671 },
- { 11732, -8645, 746, 15 },
- { 14613, -7085, -1578, 1183 },
- { 13083, -6224, -750, -4 },
- { 13988, -6256, -1592, 820 },
- { 14678, -8683, 441, 126 },
- { 15571, -8872, -521, 1139 },
- { 15642, -9533, 341, 697 },
- { 15960, -9586, -168, 1121 },
- { 15464, -10239, 1433, -1 },
- { 14934, -7887, -1046, 1080 },
- { 15252, -7630, -1899, 1628 },
- { 15485, -8384, -1234, 1484 },
- { 15962, -8638, -1815, 1931 },
- { 16501, -10664, 398, 1167 },
- { 16146, -10145, 411, 918 },
- { 14573, -7475, -697, 601 },
- { 14302, -7996, 28, 257 },
- { 14769, -6792, -2286, 1574 },
- { 14144, -6137, -2169, 1257 },
- { 14770, -6271, -3111, 1933 },
- { 14110, -8312, 1083, -531 },
- { 15235, -6991, -2993, 2174 },
- { 13222, -5805, 547, -891 },
- { 14796, -8762, 1254, -246 },
- { 16040, -9181, -1005, 1551 },
- { 16487, -10086, -373, 1420 },
- { 15077, -9479, 966, 51 },
- { 13026, -6468, 932, -1080 },
- { 12703, -6152, -33, -573 },
- { 15641, -6810, -4128, 2874 },
- { 13282, -7673, 1583, -1283 },
- { 12373, -7150, 1512, -917 },
- { 12992, -7751, -678, 783 },
- { 10907, -6858, -313, 2597 },
- { 13026, -8963, 125, 2152 },
- { 12770, -9946, 1957, -505 },
- { 12482, -6849, -1268, 833 },
- { 13790, -6181, -138, -279 },
- { 12709, -8382, 2044, 227 },
- { 12244, -6630, 203, -457 },
- { 14209, -6816, -1032, 632 },
- { 15134, -8267, -288, 640 },
- { 13619, -6157, -1090, 356 },
- { 14044, -7413, 725, -484 },
- { 12958, -7753, 2585, -1980 },
- { 13188, -8396, 2306, -1558 },
- { 14379, -9980, 2132, -688 },
- { 14275, -9857, 1162, 179 },
- { 13690, -8648, 1621, -889 },
- { 11770, -6829, -746, 278 },
- { 12732, -8202, 286, 90 },
- { 13630, -10146, 1867, -207 },
- { 12072, -8740, 1299, -645 },
- { 12852, -9492, 1226, 62 },
- { 11792, -7382, -54, -116 },
- { 13779, -9014, 487, 351 },
- { 11951, -7729, 121, 834 },
- { 11970, -9781, 2276, -4 },
- { 12680, -7984, 2787, -787 },
- { 13300, -14488, 6408, -1927 },
- { 13635, -15355, 9153, -3073 },
- { 12804, -13566, 5517, -1625 },
- { 16624, -10854, 1690, 28 },
- { 20387, -18532, 6162, -261 },
- { 16515, -12642, 3392, -519 },
- { 15800, -11095, 2151, -202 },
- { 16824, -11790, 1651, 599 },
- { 17604, -13213, 2563, 538 },
- { 17892, -14177, 3562, 147 },
- { 16987, -11399, 869, 1052 },
- { 17003, -12456, 2442, 265 },
- { 21657, -21806, 9198, -1250 },
- { 16825, -13341, 3980, -686 },
- { 17525, -12714, 1887, 805 },
- { 16419, -11034, 1216, 617 },
- { 20931, -19939, 7469, -684 },
- { 18452, -15390, 4573, -191 },
- { 14778, -10077, 2841, -1209 },
- { 17402, -13319, 3042, 160 },
- { 19365, -17922, 7087, -1061 },
- { 16298, -11941, 2810, -351 },
- { 19087, -16176, 4775, -84 },
- { 17666, -12289, 938, 1224 },
- { 18581, -15894, 5132, -430 },
- { 19823, -16717, 4142, 545 },
- { 19960, -19423, 8400, -1492 },
- { 18973, -16817, 5906, -594 },
- { 19079, -15431, 3528, 503 },
- { 16667, -12485, 4467, -1302 },
- { 19791, -17797, 6196, -529 },
- { 20005, -17606, 5354, -20 },
- { 20123, -18599, 6886, -728 },
- { 19068, -14805, 2394, 1105 },
- { 14443, -13723, 5631, -2029 },
- { 14730, -14231, 5631, -1450 },
- { 16089, -15959, 7271, -2029 },
- { 13473, -11200, 3236, -924 },
- { 14413, -10902, 2347, -267 },
- { 17666, -18662, 11381, -3496 },
- { 14749, -11042, 3305, -275 },
- { 15304, -10486, 1869, -240 },
- { 14809, -12126, 3369, -616 },
- { 16896, -16561, 7307, -1845 },
- { 15782, -14336, 5380, -1264 },
- { 16395, -15520, 6415, -1588 },
- { 13681, -11114, 2584, -320 },
- { 14244, -12326, 4480, -1632 },
- { 15247, -13119, 4265, -898 },
- { 13987, -12091, 3469, -597 },
- { 13941, -12770, 4240, -839 },
- { 13771, -13627, 5252, -1384 },
- { 15010, -16074, 7592, -2249 },
- { 15852, -17226, 8619, -2655 },
- { 18921, -16916, 6875, -1501 },
- { 14909, -11678, 2768, -295 },
- { 18988, -18353, 8424, -2070 },
- { 15457, -15080, 6218, -1513 },
- { 14916, -15512, 6949, -1883 },
- { 18108, -14702, 4681, -701 },
- { 17600, -15733, 5616, -775 },
- { 14070, -13683, 6472, -2626 },
- { 13832, -11914, 5201, -2232 },
- { 18846, -19009, 9192, -1961 },
- { -11981, -10994, -6324, -2264 },
- { -10976, -9047, -6546, -3828 },
- { -11288, -10532, -7014, -4191 },
- { -10139, -10189, -7799, -2688 },
- { -10555, -9988, -9181, -2040 },
- { -11596, -11339, -10022, -2707 },
- { -13400, -13395, -11306, -4206 },
- { -9774, -12281, -7466, -4133 },
- { -10842, -13125, -8777, -4956 },
- { -11964, -15082, -9779, -5095 },
- { -9382, -10188, -9053, -4927 },
- { -11562, -11296, -3651, -985 },
- { -9287, -10083, -7918, -4069 },
- { -12821, -16556, -11410, -6195 },
- { -12628, -8959, -4521, -1113 },
- { -13845, -11581, -3649, -681 },
- { -12685, -10269, -5483, -1275 },
- { -14988, -12874, -5107, -1189 },
- { -13761, -11367, -6202, -1804 },
- { -13225, -11249, -7820, -3354 },
- { -14809, -11992, -3202, -312 },
- { -15620, -15519, -10210, -3433 },
- { -12954, -10200, -3139, -611 },
- { -11536, -9981, -5284, -923 },
- { -13034, -12417, -4612, -1098 },
- { -16911, -15505, -6123, -1352 },
- { -17396, -17685, -8330, -2171 },
- { -14120, -10764, -2265, -99 },
- { -12598, -7367, -5406, -3530 },
- { -14143, -12793, -10909, -5226 },
- { -14692, -16871, -11626, -5554 },
- { -12581, -11197, -9194, -3837 },
- { -16752, -16726, -9746, -2808 },
- { -10600, -10358, -6560, -1227 },
- { -14573, -13312, -8957, -3393 },
- { -10172, -8463, -8579, -3387 },
- { -11418, -12421, -5522, -1842 },
- { -11855, -14204, -6669, -2625 },
- { -13308, -8191, -3941, -2194 },
- { -10007, -12266, -5022, -1811 },
- { -13532, -15771, -9497, -3175 },
- { -11760, -11148, -10339, -5529 },
- { -12149, -12763, -11198, -3697 },
- { -12029, -12119, -8555, -1792 },
- { -16995, -19957, -11447, -3471 },
- { -13144, -14504, -9988, -3191 },
- { -9938, -11064, -6139, -3162 },
- { -8873, -11550, -8294, -6550 },
- { -9303, -13010, -6150, -2711 },
- { -15463, -10469, -1766, -170 },
- { -15985, -11693, -3007, -650 },
- { -17142, -10671, -1434, 47 },
- { -16063, -13858, -4817, -1058 },
- { -19446, -19599, -9594, -2464 },
- { -20076, -18744, -8313, -1889 },
- { -15047, -16085, -7590, -2250 },
- { -13481, -16195, -8552, -2998 },
- { -13829, -14869, -6704, -1932 },
- { -16357, -18484, -9802, -2959 },
- { -10551, -8393, -9303, -5070 },
- { -11345, -9156, -5641, -3107 },
- { -13217, -13449, -9270, -4541 },
- { -11988, -13732, -9995, -6374 },
- { -11007, -9519, -5168, -4107 },
- { 9930, -7858, 8061, -4375 },
- { 8274, -7867, 5992, -2096 },
- { 9692, -9675, 7621, -3670 },
- { 9589, -8110, 6509, -3010 },
- { 12617, -11976, 10122, -5360 },
- { 11867, -8895, 7948, -5323 },
- { 10388, -10482, 9234, -4324 },
- { 8188, -8220, 7810, -2737 },
- { 10407, -8787, 4806, -1930 },
- { 10348, -8845, 9233, -6614 },
- { 9422, -7091, 4820, -2878 },
- { 9758, -9796, 5584, -2256 },
- { 10188, -7994, 5347, -3343 },
- { 11133, -7455, 4015, -2306 },
- { 10676, -10744, 6093, -2629 },
- { 11522, -12184, 7848, -3375 },
- { 8805, -9883, 5317, -3071 },
- { 9498, -9654, 6555, -3592 },
- { 10488, -8008, 4066, -1252 },
- { 11261, -8930, 6068, -2738 },
- { 12180, -10397, 5027, -1531 },
- { 9138, -8531, 3601, -1959 },
- { 8107, -8380, 4970, -2061 },
- { 9737, -13248, 6438, -2617 },
- { 11178, -10423, 2622, -522 },
- { 9572, -12372, 5199, -2019 },
- { 12057, -12144, 4147, -1099 },
- { 9047, -9925, 2516, -665 },
- { 10790, -8030, 5882, -4386 },
- { 7199, -8426, 6337, -2841 },
- { 7778, -8285, 3529, -3442 },
- { 7559, -10569, 3484, -1332 },
- { 9404, -8115, 7484, -5541 },
- { 7792, -11976, 5546, -2573 },
- { 9313, -10264, 7661, -5195 },
- { 6701, -10725, 4370, -1784 },
- { 4918, -11361, 4507, -4527 },
- { 5147, -12305, 3978, -5556 },
- { 6525, -9899, 4481, -3129 },
- { 7538, -12855, 6060, -4826 },
- { 8659, -12111, 7159, -4430 },
- { 8440, -11304, 4547, -1747 },
- { 9216, -10918, 3507, -1195 },
- { 6165, -9254, 4771, -4677 },
- { 9163, -11019, 5637, -4935 },
- { 13441, -11509, 6676, -2434 },
- { 7912, -9398, 6663, -4048 },
- { 11723, -13745, 8131, -4148 },
- { 6065, -10257, 5005, -6327 },
- { 11618, -12417, 5336, -1894 },
- { 8891, -13924, 8407, -6131 },
- { 9622, -12563, 7908, -5109 },
- { 11479, -10315, 8349, -3991 },
- { 11676, -14103, 6611, -2330 },
- { 11951, -8953, 3829, -1550 },
- { 10486, -8044, 10493, -5920 },
- { 11801, -10769, 9763, -5305 },
- { 6109, -8676, 5827, -1346 },
- { 7030, -9611, 5624, -5761 },
- { 12808, -12886, 8683, -4148 },
- { 13213, -10464, 6381, -3189 },
- { 11796, -13681, 10703, -6075 },
- { 9639, -7949, 9625, -3944 },
- { 8538, -6997, 5309, 453 }
-};
-
-/* quantization tables */
-
-static const uint32_t scale_factor_quant6[64] = {
- 1, 2, 2, 3, 3, 4, 6, 7,
- 10, 12, 16, 20, 26, 34, 44, 56,
- 72, 93, 120, 155, 200, 257, 331, 427,
- 550, 708, 912, 1175, 1514, 1950, 2512, 3236,
- 4169, 5370, 6918, 8913, 11482, 14791, 19055, 24547,
- 31623, 40738, 52481, 67608, 87096, 112202, 144544, 186209,
- 239883, 309030, 398107, 512861, 660693, 851138, 1096478, 1412538,
- 1819701, 2344229, 3019952, 3890451, 5011872, 6456542, 8317638, 0
-};
-
-static const uint32_t scale_factor_quant7[128] = {
- 1, 1, 2, 2, 2, 2, 3, 3,
- 3, 4, 4, 5, 6, 7, 7, 8,
- 10, 11, 12, 14, 16, 18, 20, 23,
- 26, 30, 34, 38, 44, 50, 56, 64,
- 72, 82, 93, 106, 120, 136, 155, 176,
- 200, 226, 257, 292, 331, 376, 427, 484,
- 550, 624, 708, 804, 912, 1035, 1175, 1334,
- 1514, 1718, 1950, 2213, 2512, 2851, 3236, 3673,
- 4169, 4732, 5370, 6095, 6918, 7852, 8913, 10116,
- 11482, 13032, 14791, 16788, 19055, 21627, 24547, 27861,
- 31623, 35892, 40738, 46238, 52481, 59566, 67608, 76736,
- 87096, 98855, 112202, 127350, 144544, 164059, 186209, 211349,
- 239883, 272270, 309030, 350752, 398107, 451856, 512861, 582103,
- 660693, 749894, 851138, 966051, 1096478, 1244515, 1412538, 1603245,
- 1819701, 2065380, 2344229, 2660725, 3019952, 3427678, 3890451, 4415704,
- 5011872, 5688529, 6456542, 7328245, 8317638, 0, 0, 0
-};
-
-/* 20bits unsigned fractional binary codes */
-static const uint32_t lossy_quant[32] = {
- 0, 6710886, 4194304, 3355443, 2474639, 2097152, 1761608, 1426063,
- 796918, 461373, 251658, 146801, 79692, 46137, 27263, 16777,
- 10486, 5872, 3355, 1887, 1258, 713, 336, 168,
- 84, 42, 21, 0, 0, 0, 0, 0
-};
-
-static const float lossy_quant_d[32] = {
- 0, 1.6, 1.0, 0.8, 0.59, 0.50, 0.42, 0.34,
- 0.19, 0.11, 0.06, 0.035, 0.019, 0.011, 0.0065, 0.0040,
- 0.0025, 0.0014, 0.0008, 0.00045, 0.00030, 0.00017, 0.00008, 0.00004,
- 0.00002, 0.00001, 0.000005, 0, 0, 0, 0, 0
-};
-
-/* 20bits unsigned fractional binary codes */
-static const uint32_t lossless_quant[32] = {
- 0, 4194304, 2097152, 1384120, 1048576, 696254, 524288, 348127,
- 262144, 131072, 65431, 33026, 16450, 8208, 4100, 2049,
- 1024, 512, 256, 128, 64, 32, 16, 8,
- 4, 2, 1, 0, 0, 0, 0, 0
-};
-
-static const float lossless_quant_d[32] = {
- 0, 1.0, 0.5, 0.33, 0.25, 0.166, 0.125,
- 0.083, 0.0625, 0.03125, 0.0156, 7.874E-3, 3.922E-3, 1.957E-3,
- 9.775E-4, 4.885E-4, 2.442E-4, 1.221E-4, 6.104E-5, 3.052E-5, 1.526E-5,
- 7.629E-6, 3.815E-6, 1.907E-6, 9.537E-7, 4.768E-7, 2.384E-7, 0,
- 0, 0, 0, 0
-};
-
-
-/* Vector quantization tables */
-
-static const int8_t high_freq_vq[1024][32] =
-{
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { -4, -2, 2, 1, -16, -10, 1, 3, 1, 0, 6, 1, -3, 7, 1, -22,
- 2, -4, -3, 11, 14, 6, -1, 1, -13, 29, -28, 10, 10, -8, 0, -9 },
- { -8, 8, -7, 10, -3, -12, -5, -8, 1, -2, 9, -2, -5, -18, 1, 9,
- -8, -8, 3, 41, 7, -9, -9, 22, -42, -29, 14, -18, -14, -32, 1, -15 },
- { -16, 8, 15, 16, -16, 5, 2, 7, -6, -16, -7, 1, 1, -3, -2, 0,
- 8, 20, -26, -11, 2, -17, 0, -3, -34, -37, 10, 44, -2, 22, 2, -4 },
- { 7, 14, 5, 6, 15, -1, 3, -3, -9, -23, -5, -14, 8, -1, -14, -6,
- -5, -8, 54, 31, -6, 18, 2, -19, -2, -11, -30, -6, -19, 2, -2, -14 },
- { 1, 2, -2, -1, -3, -3, 1, -5, 1, -3, -4, -8, 5, -4, 0, 1,
- 3, 7, -5, -4, -3, -12, 3, -2, -3, 12, -53, -51, 6, -1, 6, 8 },
- { 0, -1, 5, 1, -6, -8, 7, 5, -18, -4, -1, 1, 0, -3, -3, -14,
- -1, -6, 0, -14, -1, -1, 5, -3, -11, 1, -20, 10, 2, 19, -2, -2 },
- { 2, 4, 3, 0, 5, 0, 3, 1, -2, 0, -6, -3, -4, -5, -3, -3,
- -7, 0, -34, 4, -43, 17, 0, -53, -13, -7, 24, 14, 5, -18, 9, -20 },
- { 1, 0, -3, 2, 3, -5, -2, 7, -21, 5, -25, 23, 11, -28, 2, 1,
- -11, 9, 13, -6, -12, 5, 7, 2, 4, -11, -6, -1, 8, 0, 1, -2 },
- { 2, -4, -6, -4, 0, -5, -29, 13, -6, -22, -3, -43, 12, -41, 5, 24,
- 18, -9, -36, -6, 4, -7, -4, 13, 4, -15, -1, -5, 1, 2, -5, 4 },
- { 0, -1, 13, -6, -5, 1, 0, -3, 1, -5, 19, -22, 31, -27, 4, -15,
- -6, 15, 9, -13, 1, -9, 10, -17, 4, -1, -1, 4, 2, 0, -3, -5 },
- { -7, 3, -8, 13, 19, -12, 8, -19, -3, -2, -24, 31, 14, 0, 7, -13,
- -18, 0, 3, 6, 13, -2, 1, -12, -21, 9, -2, 30, 21, -14, 2, -14 },
- { -3, -7, 8, -1, -2, -9, 6, 1, -7, 7, 13, 3, -1, -10, 30, 4,
- -10, 12, 5, 6, -13, -7, -4, -2, -2, 7, -3, -6, 3, 4, 1, 2 },
- { -8, 9, 2, -3, -5, 2, 0, 9, 3, 7, -4, -16, -13, 3, 23, -27,
- 18, 46, -38, 6, 4, 43, -1, 0, 8, -7, -4, -1, 11, -7, 6, -3 },
- { 1, 1, 18, -8, -6, 0, 3, 4, 22, -3, -4, -2, -4, -11, 40, -7,
- -3, -13, -14, -7, -10, 14, 7, 5, -14, 11, -5, 7, 21, -2, 9, -3 },
- { 0, 0, -2, 4, -2, 0, 2, 0, -1, 2, -1, 0, 0, 2, 2, 2,
- -1, 1, -3, -1, -15, -2, -63, -27, -21, -47, -14, 1, -14, 10, 0, 2 },
- { 1, 0, -4, 0, -3, -9, 4, 2, 6, -6, 0, -5, 11, -7, -15, 6,
- -7, -6, 3, 7, -15, -5, 23, -13, -6, 12, -8, 9, 2, -3, 3, 4 },
- { 6, 0, 3, 0, -2, -4, 2, 1, 1, -1, 1, -2, -1, -4, -22, -15,
- -46, -66, 10, 20, 2, -17, 12, -6, 1, -2, -2, 0, 1, -5, 1, 2 },
- { -1, 0, 0, 1, 0, -4, 0, 1, -10, -3, -8, 5, 7, -11, 2, -11,
- 29, -25, 11, 10, 0, -1, 5, -7, -2, -5, -2, 4, 4, -3, 5, -2 },
- { 1, -1, -1, -3, -2, 1, -8, -3, 2, -2, 4, -5, -1, -7, -2, 1,
- -14, -7, 3, -30, -15, -14, 3, -4, -1, 3, -13, -1, -3, 1, 2, 3 },
- { -1, -2, -3, 2, 2, -3, 3, 1, -3, 2, 0, -4, 6, 5, -5, 10,
- -57, 3, 22, -50, 1, -2, -5, -6, -1, 5, 1, 2, 2, 1, -2, 2 },
- { 2, 0, -1, -7, 2, 1, 3, 2, 0, 4, 3, -2, 3, -3, 4, -4,
- 24, -35, -3, 38, -6, -5, 15, 20, 3, 16, -7, -5, 0, -4, -5, 0 },
- { 0, 1, 0, 0, 0, -1, -1, 1, 1, -1, 1, -2, 0, 0, 0, 0,
- 0, -1, -2, -1, -5, -2, -43, -3, 46, -52, -10, 7, -8, 11, -2, -1 },
- { 0, 0, -1, 0, -1, 2, -41, 33, -44, -48, -15, -26, -9, 6, 3, 3,
- -3, 2, 2, 2, 2, -1, -1, -2, 1, 3, 0, 0, 5, 2, 3, 1 },
- { -4, 1, 6, 1, -6, -1, -2, 1, -14, -4, 0, -5, -2, 2, -2, 0,
- -6, 1, 0, 8, -21, 32, -3, -36, -6, -2, -1, -7, 3, 0, 1, -6 },
- { -3, -2, 3, 0, 2, 2, 8, -4, -4, 6, 2, 1, 3, -6, 4, 3,
- 13, 0, -12, -1, 25, -20, -2, -23, -15, 7, -3, -11, -3, 6, -1, 0 },
- { 0, 0, -3, -1, 0, 0, -2, -1, -2, -2, 1, -1, 0, 0, 10, 3,
- -2, 3, 3, -7, -6, -5, 0, -4, -60, -16, -6, 38, 5, 6, -5, 0 },
- { 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 1, 0, 0, 1,
- 0, 0, -1, 0, -8, 2, -9, 10, 40, 31, -56, -21, 4, 20, -4, 7 },
- { -2, -2, 0, 4, -3, -1, 7, 3, 1, 3, -8, 0, 3, 1, 2, 5,
- 1, -2, 14, 5, 4, 5, 5, 5, -5, 9, -66, 0, -20, -2, -8, 4 },
- { -2, -1, 4, -1, -8, -2, -4, -1, -3, -3, 2, -7, -3, 5, 7, -2,
- 45, 31, -17, -16, -2, -2, -1, -22, 1, -1, -3, 3, 5, -3, 5, -1 },
- { -4, 0, 7, 5, 8, 7, 2, 9, -9, -9, -7, -11, -3, -8, 17, -4,
- 34, 32, 18, 22, 1, 2, 1, -7, -5, 6, -1, 6, 4, 10, -2, -7 },
- { 6, 0, 14, 9, 6, -1, -2, -3, 4, -6, -8, 4, 7, -1, 28, 38,
- 15, -1, 16, -11, 5, 8, 4, -10, 3, -10, -17, 5, 3, 3, 3, 1 },
- { 1, 1, 2, -1, 2, 1, 0, 0, -1, 0, 0, -2, 1, -3, 0, 1,
- 2, -2, -4, -2, 0, -1, 1, -3, 1, 1, 1, -1, 8, 8, 66, 33 },
- { -5, 2, -3, -7, 2, -8, -4, 10, 17, -18, -7, 4, -4, -7, -6, -6,
- -5, 5, -12, 2, 0, 6, 8, -2, 1, 4, -11, 2, 1, 8, 31, 19 },
- { 6, 9, 16, -6, -6, -1, -2, -3, -11, -2, 7, 7, 17, 3, 4, 10,
- 2, 5, -13, 8, 7, 1, 4, 5, 7, 6, 7, -8, 9, -8, 33, 6 },
- { 3, -1, 1, 0, -7, -5, 0, 14, -7, 1, -7, 1, 2, -4, 7, 10,
- -16, 12, 1, -6, 3, 8, -1, 10, -13, -6, -12, -23, 12, -3, 30, 14 },
- { -2, -15, 0, 8, 3, -19, 5, -3, 2, 3, 13, 7, 14, -3, -10, 0,
- 8, 5, -6, -16, -8, -8, 14, 2, -1, 1, -9, -11, 11, -5, 27, 9 },
- { -8, 6, -4, 4, -4, -1, 5, 4, 1, -7, -5, -4, -15, 1, 9, 0,
- 8, 4, 1, -17, 11, -2, -19, -1, -6, -8, 3, -12, 3, -17, 33, -10 },
- { -3, -1, 2, 7, 7, -2, 9, 8, -18, -1, -13, -10, -3, -3, 11, 8,
- -2, -12, -8, 1, 4, 9, 14, 10, -3, 0, 2, 1, -2, 3, 31, 10 },
- { -3, -10, 8, -1, -5, -11, 7, -5, 3, 6, 1, 4, -16, 10, 5, -4,
- -2, -10, -1, 13, 6, -5, -7, 12, 7, -3, -17, 1, 12, -4, 29, 8 },
- { 1, 2, 5, 2, -6, -7, 0, -1, 6, -1, 10, 6, -4, 5, 2, 2,
- -2, -8, -6, -11, 14, -13, 27, 3, -2, -12, 5, -16, 2, -26, 20, 15 },
- { -1, -3, -5, -3, -3, 6, -1, 3, -5, 1, 7, 2, 1, 0, -1, -1,
- 0, -1, 9, 7, -6, -3, 4, -5, -4, 8, -8, -25, -8, -4, 34, 23 },
- { -1, -2, 1, 1, -1, -2, -1, 1, -1, 0, 0, 0, 0, -2, -1, 1,
- 0, 2, 1, -1, 4, 0, 0, 1, -1, 0, 5, 3, 12, -9, 68, -16 },
- { 10, 0, -8, 14, -6, 1, -12, 0, 0, -3, -5, -11, -6, 12, 9, -10,
- -3, 5, 0, 7, 11, 2, 4, -3, -8, -3, 7, 4, 3, -3, 34, 4 },
- { -12, 13, -5, 7, -11, -2, -1, 1, -4, -14, -21, 3, -3, -3, -4, -7,
- -9, -4, 3, -17, -2, -13, 10, -2, 12, -4, 0, -9, 1, -5, 31, 10 },
- { -10, 6, 5, 6, 4, -7, 10, 0, -28, -3, 0, -11, -1, -5, 16, -10,
- -16, 7, 20, 2, -4, 2, -5, 0, 15, 6, 5, -10, 7, -9, 20, 4 },
- { 1, -7, -2, -7, 4, -3, -2, -7, -1, -14, 6, -16, 4, -5, -4, -6,
- -5, 0, -2, 2, -6, 9, -5, 4, -18, 8, -10, 8, 15, 0, 32, 1 },
- { -5, 7, -3, 7, 15, -4, 0, -16, 9, 5, -5, 5, 4, -3, -12, -9,
- -18, 10, 2, 2, -3, 7, 3, -1, 6, -9, -10, 3, 15, -4, 35, -7 },
- { -1, -10, 2, 2, -4, -2, 10, 2, -1, 2, -2, 1, -1, -14, -11, 3,
- -8, 5, -8, -2, 6, -1, -7, 1, 7, 5, 7, 8, 30, -4, 30, 14 },
- { 2, -2, 1, 2, 3, -8, 3, 0, -2, 0, -9, 2, 1, 4, -6, -1,
- -2, 5, 0, 1, -2, 12, 6, -3, 9, -3, 4, -12, 21, -39, 24, -2 },
- { 3, 5, 1, -2, -2, -2, -3, 6, -8, -2, -11, -8, -1, 4, 2, 2,
- -4, -10, 12, -5, -11, 1, -15, -34, -11, -7, -11, -1, 7, -14, 38, -1 },
- { -4, 4, 8, 9, 8, 1, -5, -9, 4, -2, 15, -4, 11, -15, 20, -1,
- -1, -3, 4, -9, -2, -2, -2, 8, 6, 12, -5, 0, 11, -12, 27, -4 },
- { 0, 8, -4, 3, -11, 6, -11, 2, 3, 0, 5, -8, -7, -6, -9, -21,
- 4, -11, -1, -16, -7, 16, -3, 7, -7, 4, -5, 0, 11, -7, 31, 3 },
- { 1, 3, 4, 11, -11, -2, -3, -6, 6, 5, 0, 3, -9, -6, 4, -4,
- 0, 4, -8, 13, -6, -13, -1, -5, -1, 4, 0, 0, 9, -22, 24, 18 },
- { -7, 3, 10, -13, -6, 6, -6, 6, 22, 1, 0, -14, 2, 3, 7, -1,
- 8, 20, -1, 5, -4, 13, 9, -9, -9, 6, 0, -4, 0, -8, 31, -4 },
- { -3, -4, 0, 1, 7, 3, -7, 0, 5, -2, 1, 3, 3, 1, -5, -2,
- 5, 2, -11, 4, 0, -1, 12, 0, -3, -13, 15, 8, -6, -27, 34, 0 },
- { -3, -3, 10, -4, 2, -1, -3, 0, -1, -1, -4, 2, 6, -2, 12, 1,
- 3, -6, -7, -6, -5, 4, -19, -6, -8, -34, -4, -8, 10, -7, 23, 10 },
- { -7, 0, -1, -6, 8, 4, -4, 2, -5, -8, -7, -9, -8, 5, 9, 7,
- -6, 1, -12, -12, -1, -16, 5, 0, 16, 3, -7, -8, 27, -4, 23, 15 },
- { -8, 4, 8, 5, 6, 11, -3, 5, 3, -1, -11, 6, -5, 0, 2, -6,
- -3, -6, 4, -1, 5, -5, -12, -6, 7, -5, 9, 3, 6, -7, 29, 1 },
- { 1, 3, -2, -2, -6, -2, 1, 6, -6, -3, 1, 2, 3, 4, 1, 5,
- -1, 0, 4, 2, 11, 6, 2, -3, 13, -9, -19, 18, -15, -10, 36, 21 },
- { -3, -3, 2, -1, -7, 6, -4, 1, -3, -1, -2, 2, 3, -7, -3, 0,
- -2, 0, -2, 6, -19, 3, -8, 2, -6, 7, -1, 0, 29, -6, 28, -10 },
- { -5, 1, -3, -7, -12, -4, 1, 1, -1, 13, -10, -1, -9, -5, -13, 6,
- 13, 3, -4, 2, 3, 11, 2, 6, -25, -16, -6, 0, 14, -1, 27, 16 },
- { -6, -1, -7, -5, -2, -5, -5, -1, 9, 1, 0, 3, -8, -12, -6, 5,
- -6, 5, 3, -9, 1, 4, -7, -10, -9, -7, -17, -5, -15, -23, 25, 3 },
- { -8, -2, 9, -3, -4, 3, -1, 8, -7, -7, -5, -4, -2, 9, 4, -1,
- -7, -4, -5, -16, 3, -6, 18, -13, -9, 16, -15, 8, 15, -10, 24, 5 },
- { 1, -38, 2, 34, 9, 10, 11, 2, 2, -6, 3, 2, -2, 5, 4, -7,
- -1, 1, 4, 0, 3, 1, -8, -1, -6, 5, 4, 2, -4, 5, 2, -1 },
- { 1, -22, 15, 18, -2, 10, -16, -9, -8, -11, 8, 4, 0, 7, -14, -5,
- -1, -7, 12, 17, 9, 5, -7, -4, -12, -6, 7, 0, 7, 2, -2, 1 },
- { -11, -29, 7, 10, 19, -1, -8, -9, 7, 1, 9, 6, 8, -7, -14, 8,
- -3, -11, -13, 0, -7, -23, -2, -8, 12, 9, 2, 14, 19, 1, -1, 5 },
- { -24, -27, -11, 36, 2, 6, -3, 4, -6, 8, 0, 12, -1, -4, -6, 3,
- 4, -1, 2, -3, -2, 3, 2, -1, -2, -4, 0, -1, -2, 7, 2, 3 },
- { -9, -24, 11, 13, -10, -12, 12, -2, 7, 4, 8, 13, -3, -3, 2, 9,
- -3, -4, 4, 13, 5, 13, -6, -3, 1, 15, 7, -3, 0, 19, -2, -9 },
- { -8, -15, 7, 14, -4, -5, 2, -18, -19, -2, 2, 17, 16, 6, -10, 10,
- -9, 14, -1, -5, -1, -6, -7, 2, 9, 11, 13, 6, -5, -12, 3, 2 },
- { -10, -37, 13, 1, 3, -14, 0, -20, 4, -3, 8, 2, -2, -3, -9, -5,
- -3, -17, -1, 13, -11, 2, -6, 4, 4, 0, 3, 1, -9, -4, -5, -4 },
- { -2, -22, -5, 46, -8, 5, 9, -11, 8, 7, 7, -1, -1, -2, -7, 2,
- -3, 3, -1, -2, 7, 0, 2, -1, 1, -2, -2, -3, 6, 0, -4, -6 },
- { -16, -27, 15, 16, -4, 14, -7, -26, 2, -2, 6, 5, -3, 11, 0, 2,
- 3, 9, -7, -1, 2, -4, -4, -1, 6, 10, 1, 1, -3, -2, 3, 0 },
- { -3, -22, 10, 26, 1, 2, -3, 3, 17, -3, -7, 9, 1, -21, -4, 5,
- 3, 0, -7, -6, 3, 3, -8, -7, -9, 3, 7, 1, -8, 12, 6, -7 },
- { -9, -25, 3, 18, 9, -6, -11, 0, -5, -12, 9, -8, -7, -6, -6, 22,
- 2, -6, -3, 15, 3, 2, -2, 9, 14, -10, -7, 15, 13, 6, -2, 11 },
- { 5, -20, -5, 28, 11, 10, -4, -4, 0, -7, 3, 5, 2, -5, -8, 2,
- 6, 10, 9, -9, -18, 3, 14, 1, 3, -3, -1, -6, 7, 7, 2, -1 },
- { -8, -30, 7, 12, 10, 8, 7, -13, -16, 0, 1, -1, -6, -11, -15, 4,
- 1, -2, 10, -15, 1, 11, -2, 8, 9, -7, -7, 9, -5, 2, 7, -18 },
- { -10, -32, 10, 11, 3, -1, 3, -5, 5, 2, 14, -6, 3, 1, 5, -15,
- -11, 6, 20, 4, 0, -12, -7, 3, 1, -1, 10, 6, -1, -9, -4, -1 },
- { 1, -25, -14, 12, -11, 9, 9, -16, -24, -17, 22, -9, 11, -30, -3, -4,
- 6, -7, 9, 2, -1, -5, -6, 2, -1, -1, 10, 1, -3, 3, 4, 8 },
- { -14, -26, -6, 9, 8, 17, -11, -24, -7, -4, -8, -2, 10, 2, 2, -1,
- 2, 13, 12, -7, 4, -6, -10, 6, 6, -13, -11, -7, -16, 0, -2, 5 },
- { -4, -30, -13, 12, 16, -6, 12, -16, -13, 5, 15, -2, -2, -10, -7, 7,
- 11, -1, -4, -2, -4, 7, 4, -8, 1, 3, 0, 11, 3, -2, -5, 4 },
- { -4, -21, 20, 22, 2, 20, -8, 1, -12, -5, -9, 4, -10, -17, -3, -8,
- -3, 3, -12, 1, -3, 0, 7, 4, 7, 7, -3, 7, 5, 3, 1, -5 },
- { -12, -20, 2, 29, 11, -6, 9, -7, -6, -4, 0, 6, 17, -13, -2, -10,
- -17, -1, -18, 2, 0, 14, -6, 1, 0, 3, 2, -10, 1, -5, -2, 5 },
- { 16, -37, -1, 26, -2, -14, 1, -5, -14, 2, 2, 3, 6, 1, 1, 4,
- 0, -1, 0, -2, -2, 4, 9, -6, 0, -2, 10, -7, -2, 4, 1, 0 },
- { -9, -24, -12, 5, 5, 3, -17, -14, 4, 3, 2, -4, 10, -22, -8, -3,
- 6, 1, 12, -8, 4, 1, 9, -1, 18, -3, 6, 5, 3, -5, 9, -5 },
- { -14, -33, -2, 20, -13, -10, 2, -7, -1, 11, -9, -8, 18, -3, 1, 8,
- 0, -2, 10, 7, -2, -13, 9, -3, -4, 5, -2, -2, -1, -5, 1, -7 },
- { -10, -23, 8, 14, 1, 7, 1, -3, -7, 4, 1, 1, 8, -7, 15, -14,
- 13, 14, 2, 5, -13, -5, -8, -1, 6, 3, 6, 9, 6, 15, 14, 5 },
- { -13, -25, -10, 13, -17, -24, -7, -13, -6, -10, -8, 2, 0, -13, -10, -4,
- -8, 4, -9, 9, -4, 4, -3, -3, 3, 3, -5, -9, 1, -2, 11, 2 },
- { -12, -23, 1, 18, -11, -2, 5, 9, -5, 5, 14, -9, -3, -2, -6, 2,
- -2, 11, -13, 1, -3, 11, -9, -4, -2, -6, 8, 10, 1, 4, 2, 1 },
- { -5, -18, 16, 22, 2, 0, 8, -6, -9, -7, 10, -16, 23, 10, -11, -1,
- 7, 2, 7, 2, 1, -5, 6, 1, 0, -4, 9, 2, -3, 1, 0, -4 },
- { -3, -26, 14, 11, 2, -9, 17, -2, -1, -5, -16, -9, -5, 10, -13, 1,
- 6, 12, 10, 11, 0, 0, -3, -14, 6, -2, 0, 4, -5, -1, -7, -1 },
- { -10, -33, 1, 8, 11, -5, 1, -6, 7, 4, 5, 6, 1, -2, -10, -5,
- -6, 12, -11, 5, -10, 4, 12, -1, -1, -3, 4, -1, 9, 0, 16, -17 },
- { -14, -37, 7, 7, -2, 5, -8, -11, 2, -13, 4, -19, 1, 8, 8, 4,
- -9, 2, -4, 3, 12, 2, 4, -4, -8, 8, 1, 4, 8, -1, 6, -2 },
- { -6, -30, 18, 17, 1, -22, -3, 4, -7, -10, 7, 0, -8, 8, -1, 4,
- 2, 8, 6, -2, 2, 7, 4, 4, 3, -6, 2, 1, -3, 1, -1, -5 },
- { -17, -18, -3, 22, -8, 1, 9, -2, -17, 20, -5, -5, -12, -5, 4, -5,
- -9, 8, -2, 16, -3, 0, 19, -8, 8, 1, 2, -4, 0, 11, 0, -3 },
- { -9, -23, 3, 10, 4, 4, -3, -2, -2, -2, 1, -22, 11, 0, -2, 5,
- -2, 14, -9, -11, -4, 7, 5, 32, 1, -3, -7, 0, 21, -9, 7, -6 },
- { 0, 0, 0, 2, -1, 1, 0, 1, 3, 0, 0, 1, 0, 1, 0, 1,
- -3, 0, -1, -2, 0, -1, -1, -3, -1, 1, -4, 1, -1, -5, -69, -19 },
- { -3, -5, -8, -12, 4, -3, -19, -11, -5, 0, -14, 7, 18, -6, 7, 22,
- 8, 14, 15, 10, 3, -1, -3, 5, -1, 7, -7, 1, -6, 3, -26, -11 },
- { -1, -6, 4, -4, -5, -16, 0, -6, -3, 11, 1, 0, 9, 5, 16, 3,
- -4, -33, -4, 4, -7, 0, 1, 6, -11, -2, -13, -2, -18, 20, -25, -16 },
- { 4, 0, -1, 0, -5, 1, 0, 2, 0, 11, -10, 4, -10, 7, 16, 2,
- 16, 15, 2, -1, 2, 9, 2, 8, -3, -5, -2, 0, -3, 0, -33, -2 },
- { -3, -15, 10, 10, -9, -1, 7, 3, 5, -5, -8, -8, -3, 15, -9, 4,
- 12, 13, -13, -14, 10, -6, 9, 22, -27, 23, -1, 5, -24, 2, -30, 5 },
- { 0, -2, 7, -5, -5, 3, 5, 3, -3, -5, 2, 1, -4, 3, -3, -1,
- 1, -2, 10, 22, -3, -4, -2, -2, -7, 3, 8, 1, 14, 4, -37, 9 },
- { -3, -4, -1, 1, -4, 0, 6, 2, 6, -7, -10, -10, -1, -4, 11, -3,
- 7, -6, 4, -12, -1, 5, 1, -7, 10, -6, 17, -4, 8, 3, -40, 13 },
- { 2, 12, 4, -7, 14, -3, 16, -2, 18, 2, 13, 5, 5, 1, 11, -1,
- 0, 9, 2, -6, -1, 2, -6, 2, -5, 3, 5, 1, -1, 1, -32, -7 },
- { -16, 11, 7, -4, 2, -5, -9, 9, 11, 11, 15, -13, -11, 11, 9, 4,
- 3, -8, -10, 12, 12, 0, 0, -16, -9, 13, 2, 9, 4, -13, -33, 3 },
- { 6, 4, 5, 4, 3, -1, 5, 6, 4, 2, -11, -1, -15, -11, -1, 1,
- 11, -3, -2, 24, -4, -6, -25, -10, -15, -8, 0, 0, -5, 4, -30, 2 },
- { 10, -3, -6, 1, -9, -5, 6, 9, -10, -3, 8, -1, 4, -1, 11, -11,
- 3, 9, 11, -3, 6, -17, 5, -8, -33, 9, -13, 19, -2, 9, -25, 2 },
- { 0, 0, -1, -3, 0, -2, 1, 0, 0, 2, 1, 0, -2, 0, -1, 2,
- 0, -1, 4, -1, 2, -3, 4, -2, 3, 3, 1, 0, -15, 12, -63, 27 },
- { -2, 14, 9, -1, 3, 0, 1, 1, -19, 15, 3, 4, 0, -10, 1, -5,
- 3, 0, -5, -10, 2, -16, -4, 8, -12, -6, 7, -5, -10, -1, -33, -4 },
- { 0, 3, 1, 3, 1, 2, 4, 4, 9, -6, -8, -5, 1, -12, 3, 8,
- -10, 6, -1, 1, 13, -5, -5, 2, -4, 13, -18, -10, -7, -9, -33, 10 },
- { -6, -3, -12, 5, -1, 11, -6, 0, -2, 1, 2, -7, 3, 1, 3, -2,
- 1, 8, -10, 7, -1, -3, 3, 0, 13, 1, 6, 7, -16, -7, -39, 8 },
- { -6, -1, 11, 6, -3, 8, 3, -5, 3, 0, -5, -2, -6, -3, -4, 2,
- -3, 13, -11, 1, 7, 5, 19, -5, -3, -15, -1, 7, -1, 6, -33, 8 },
- { -7, 3, -4, -3, -4, 1, 6, -5, -5, 6, -8, -1, -7, 4, -1, -6,
- -2, 1, 7, 0, 1, 1, -5, 2, -2, 0, -13, -2, -31, -14, -39, -12 },
- { -10, 9, 0, -3, 1, -1, -1, 0, 1, -5, -1, -4, -2, 5, 2, -7,
- 18, -8, -2, -19, -7, -7, -12, -14, -11, -1, -9, -13, -7, -12, -31, -9 },
- { -3, -16, 10, 9, 1, -10, -12, 2, -2, 2, 7, -3, -3, 1, -4, -5,
- -9, 5, 7, 3, -1, 4, -11, -8, 4, 13, -10, 13, 10, -4, -36, 1 },
- { -7, -12, 4, -20, -7, -7, 2, 11, -1, -2, 3, -12, 1, 0, -6, -7,
- 6, 4, 13, 3, -3, 4, 3, -6, -12, 5, -5, -22, -13, -8, -37, -6 },
- { -7, 5, 3, 5, 7, 9, -14, -3, 10, 17, -1, 1, -12, 5, -6, 0,
- -4, -9, 0, -11, -14, 3, 13, 6, -25, -8, -12, 4, -10, 18, -30, -1 },
- { -10, 6, -10, 6, 6, 1, -10, 0, -7, 5, -2, 17, -18, -4, 0, -3,
- -16, -6, -3, -8, 5, 1, -4, 6, -7, 16, 6, 10, -1, 0, -32, -11 },
- { -1, 9, 9, -5, 4, 9, 6, 9, -4, -2, 7, 11, 4, 2, -5, -4,
- -6, 0, 2, -3, -1, 5, 10, 0, 12, -10, -18, -3, -1, 14, -33, 2 },
- { 4, -8, -18, -4, -5, -11, 4, -10, -4, 9, 13, -12, 1, -6, 1, 2,
- 4, -9, 8, 3, -6, 21, 13, -1, -2, 1, -2, 6, -7, 0, -30, 1 },
- { 6, -1, 2, -3, -1, -4, 6, -4, 0, 4, 2, 2, -9, 2, 6, 3,
- -2, 4, -1, 9, -6, 0, 7, -8, 5, 19, -2, 9, -5, 2, -33, -8 },
- { 2, 1, 12, -5, -8, 8, 3, -2, -4, 1, -2, 5, -4, -9, -8, -8,
- 7, -11, -4, 6, -10, 7, -1, -1, -2, -1, 16, 32, -7, 20, -33, -6 },
- { -18, 2, 6, 13, 9, 9, -1, 3, -17, 24, -2, -6, 28, 8, -2, 6,
- 3, -10, -34, -16, -13, -4, -15, -11, -12, -3, -10, 4, -8, 4, -31, -4 },
- { -11, 0, 18, 2, -16, -9, -13, -2, -2, -12, -3, -22, 30, 0, 8, 3,
- 9, -4, -16, 1, 0, -11, 15, -2, -4, 6, -5, 6, 1, 2, -25, -12 },
- { 14, -1, 5, 7, 3, -15, -8, 1, 5, -2, 12, 13, 11, -25, 3, 1,
- 0, -2, -4, -16, -23, 0, -5, -17, 7, 5, -9, 6, -5, 2, -32, -7 },
- { 3, -1, 6, 14, 2, -12, -9, -9, 4, 7, 4, 6, 5, -8, 4, 2,
- 4, 5, -2, 8, 8, -6, 0, 10, -20, -1, 3, -1, 8, 23, -33, -5 },
- { -3, 11, -6, 3, -4, 5, 7, 3, 4, 5, -2, 3, -1, 30, 6, 1,
- 8, -6, 0, 0, -9, 6, -9, 4, 2, 9, -6, 1, -12, 0, -34, 18 },
- { -17, 13, 0, 1, 9, -4, -11, 0, 7, 0, -10, -4, -1, 6, -6, 4,
- 1, 6, -9, 3, -5, -6, -11, 2, -4, 14, 23, -3, 2, 5, -30, 12 },
- { -14, 5, -27, 2, 0, 7, 1, 4, 30, 8, 7, 5, 1, -1, 0, 5,
- 8, -10, 48, -11, 12, 33, 6, 8, -15, 20, -2, -5, 32, 5, -19, 10 },
- { -16, -4, -12, -7, -2, 0, 8, -6, -20, -18, 16, -3, 0, 31, -2, 11,
- 2, -9, 49, -19, -12, -23, 10, 26, 16, -2, 4, -21, -14, 13, -11, -9 },
- { -5, -9, -1, 3, -5, -21, 2, 10, 0, 0, 10, -21, -7, 7, -26, -9,
- 22, 32, 58, 11, -3, 11, -5, -8, -13, 6, -5, -9, 1, 10, 14, -8 },
- { 7, 7, 10, 3, -2, -1, -11, -11, -6, -43, -3, 14, -19, -18, 19, 18,
- -32, 10, 45, -6, 6, 21, -20, -12, 2, 4, 6, 6, -4, 3, 3, 1 },
- { 21, 22, -3, -2, -11, -6, -1, -2, 8, 8, 32, -21, 7, 28, -4, -6,
- -3, -2, 50, 2, 2, 27, -5, -8, 12, 7, -5, -1, -4, -17, 27, 6 },
- { 13, 7, 2, -6, -12, 2, -10, -5, -17, 11, 4, 17, -12, -2, 5, -17,
- 37, -16, 48, -14, -18, 29, 8, 24, 11, -5, -9, 11, -1, 1, -13, -3 },
- { 1, 1, -1, 2, 0, 0, 0, -1, 1, -1, 7, 2, -3, 3, 0, 6,
- 2, 10, 54, -25, 7, 54, -5, -6, -1, -15, 9, 13, -24, -15, -12, 3 },
- { 21, 5, 8, 3, -3, -4, -2, -4, 3, -11, -5, -8, 9, 16, 8, -9,
- -10, -3, 46, -46, 2, 1, -10, 10, 17, 11, -20, -36, 10, 14, 0, -5 },
- { 7, -13, -6, -9, -24, 45, 2, 8, 8, 0, 17, 20, 12, -24, 1, -7,
- -15, -3, 46, -13, -2, 20, 1, -13, -11, -13, 2, 15, 1, 10, -1, 3 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, -1,
- -16, -9, 31, -69, -34, 26, 7, 17, -1, -6, -1, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4,
- -5, -20, 18, -82, 22, 3, -7, 9, 4, 6, 2, -4, -1, 0, -2, 2 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, -1,
- 15, -5, 62, -36, 4, 52, -7, 5, 0, 6, 1, 2, 1, 1, -1, 0 },
- { 3, -19, 19, -20, 13, -4, -11, 8, 8, -16, 10, 1, -14, 30, 1, -33,
- 10, -11, 45, -30, 3, -4, -3, -13, 7, 12, 3, -22, 3, -2, -4, -2 },
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1,
- 11, 8, 70, 48, -10, 21, 4, 9, -9, -9, -4, -6, 0, -1, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 2, -1, 80, 2, -15, -36, -10, -5, -2, 8, -2, 2, 0, 0, 0, 0 },
- { 10, 8, -8, -8, -24, 12, -1, 0, 20, 9, -1, -2, 2, -2, 12, -10,
- -2, -13, 35, -43, 44, 15, -10, -25, 4, 10, -3, -5, -5, 7, -1, 3 },
- { 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, -1,
- -18, 9, 49, -72, 7, -8, 7, -5, 2, 3, 2, -2, 1, -2, -3, 1 },
- { -1, 4, -3, 10, 19, 4, 3, 20, 6, -24, 6, 9, 8, 15, 18, 18,
- -36, 19, 57, -11, 4, -3, 8, 7, 2, -3, -2, -9, -15, -2, 12, -4 },
- { 20, 3, 11, -9, -4, 22, 42, -25, 1, 5, -10, -19, 0, 9, -16, 5,
- 2, 10, 44, -29, 17, -3, -9, -2, -1, 8, 14, -7, -1, 16, -5, 1 },
- { -7, 16, -11, 12, 6, 33, -15, 14, -23, 2, -26, 8, 2, 10, 0, -5,
- 8, -8, 38, -38, -4, 5, 5, 5, 1, 22, -15, 7, 6, 0, 4, 28 },
- { -1, -12, 2, 10, -2, 0, 7, 17, 12, 22, -4, 10, 25, 29, 5, 18,
- 4, 1, 27, -39, 31, 17, 2, 2, 22, -23, 13, 16, 1, -7, -4, -5 },
- { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, 0, -14, 0,
- -7, -11, 49, -22, -4, 19, 17, -39, 4, -29, 10, 2, 36, -4, 23, -1 },
- { -2, -2, -2, -2, 1, 15, -5, -7, -16, -8, -19, 16, -3, -20, 36, -9,
- -3, 20, 39, -20, 0, 2, 27, -16, 10, 10, -14, -22, -16, -3, 13, -8 },
- { 5, -9, 6, -25, 7, 37, 13, -10, -5, 3, -5, 7, 18, -22, -7, 9,
- -5, -4, 50, -11, -4, -5, -5, 8, -4, -2, -4, -27, 14, 20, 7, -9 },
- { 0, -14, -10, -27, -14, -17, -6, 26, 10, 2, 14, -12, -5, 0, 8, 9,
- 0, -28, 55, -7, -12, -7, 4, -10, 10, 7, -12, 11, 3, 5, 9, -8 },
- { 2, 23, 4, -2, -1, -20, -2, 14, 10, -9, -9, -24, 10, 0, 11, -12,
- 12, 11, 49, -25, -2, 29, 7, -13, 21, -10, 11, -17, 3, 1, -8, 5 },
- { 3, 0, -14, -6, 18, -2, 17, -9, -19, 9, -5, 9, 14, 6, 19, -3,
- 27, 1, 41, -21, 20, -15, 33, 0, 26, 14, 7, 10, 3, 20, -3, -12 },
- { -1, 16, 15, -8, 3, -8, -8, 21, -5, -16, -29, 4, 1, -6, -4, -28,
- 2, 31, 37, -26, -2, 13, 24, 8, -9, -6, -29, 10, 7, 2, 7, 8 },
- { -10, -10, 11, 13, -32, 2, 16, 9, 14, 23, -15, -13, 24, 13, 4, -27,
- 14, 12, 31, -18, 17, 23, -2, -7, -14, 9, -17, -6, -10, 20, 9, 6 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 5, 1, 89, 8, 10, -6, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1,
- 4, -7, 64, -50, 7, 37, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
- { -2, 5, 3, -4, -4, -3, 2, -3, 3, -3, 5, 4, 1, -6, -1, 1,
- 6, -2, 50, -35, -7, 43, 7, -7, -5, -26, 24, 21, 3, -15, 5, 6 },
- { -8, 21, -19, 33, -8, 22, -11, 17, 3, 0, 0, -2, 1, -3, 6, -1,
- 10, -8, 4, -11, -4, -5, 0, 8, -4, 3, 1, -4, 4, 2, 8, 4 },
- { -7, 5, -20, 9, -22, 3, -14, 1, 6, 13, 23, -2, -4, -7, 2, 0,
- 11, 4, 6, 3, -7, -11, -7, 4, 5, 5, -12, 8, 2, 4, 7, -3 },
- { -7, 6, -4, 20, -20, 16, -2, 7, 6, 16, 11, 12, -7, -7, 5, 3,
- -9, -4, 1, 2, 5, 2, 1, -9, -2, -17, -4, 6, -10, 7, -7, -6 },
- { -9, 18, -17, 12, -24, 1, -1, 4, 14, 9, 4, 3, 2, 8, -12, -14,
- 4, -8, -4, 7, 7, 6, -1, 13, -9, -4, -1, 1, 0, -4, 15, 8 },
- { -25, 2, -11, 6, -5, 24, -28, -5, 8, 12, -2, 6, 8, -3, 8, -9,
- -1, -5, -1, -5, 6, -1, -1, -1, -4, 8, -12, -2, -13, 7, 2, 1 },
- { -14, 14, -18, 20, -10, 12, -2, 9, 1, 0, 12, -2, 15, -10, 26, -17,
- 16, -11, 10, -10, 9, -2, 4, -8, 2, -3, 4, 4, 2, -3, -5, 1 },
- { -18, 12, -18, 21, -6, 12, -6, 13, -25, 18, 1, 11, -9, -5, 0, 10,
- -5, 3, -3, 8, -9, 7, 4, 2, -9, 0, 5, 0, 2, -3, 9, -8 },
- { -4, 16, 1, 18, -30, 9, 1, 6, -8, 13, 13, -12, -6, -1, 13, 7,
- 6, 2, -15, -3, 5, 5, 1, -6, 1, -5, 0, 2, -16, 0, 3, -4 },
- { -21, 1, -2, 6, -43, 18, -1, 5, -1, 4, 6, -2, -1, -3, -1, -3,
- 0, 1, 2, -9, 0, -1, 0, -2, 0, -1, -1, -2, 6, 0, 1, -2 },
- { -23, 10, 4, 7, -32, -11, -18, 2, -2, -7, -6, -3, -3, -12, 19, 3,
- -5, -6, 16, -6, 16, 2, 16, 16, 8, -2, 13, 8, -15, -11, 2, 10 },
- { -8, 2, -13, 2, -29, 24, -20, 19, 1, 10, -4, 10, 1, 2, -9, 11,
- -1, -2, 9, -5, 19, -7, 16, -9, -2, -18, 11, 1, 1, 0, 7, -3 },
- { -6, 3, 4, 13, -26, 10, -10, 28, -7, 28, 1, 7, 0, -14, 5, 7,
- 4, -4, 3, -2, 3, 3, -11, 7, 6, 4, 0, -1, 2, -1, -3, 2 },
- { -6, 16, -31, 13, -10, 17, -6, 4, -14, 4, 4, -1, -10, 12, -5, 1,
- -14, 15, 0, -8, 1, -5, 3, 3, 9, -5, 7, -20, 7, 4, 11, -5 },
- { -19, 3, -17, 14, -12, 16, -22, 18, 14, 8, -2, 4, 10, 12, -14, 4,
- -3, 2, 3, 7, -7, 7, -6, 2, -2, -4, -5, 0, -5, -2, 2, 1 },
- { -9, -7, -11, 24, -36, -9, -11, 5, 7, -12, -13, 18, -2, 20, 1, -4,
- -1, -10, 15, -6, 14, 1, 0, 2, 1, 2, -9, -16, -11, 7, 13, 0 },
- { -24, 24, -18, 18, -22, 14, -11, 13, -12, 11, -10, 11, -7, 11, -5, -4,
- -1, 1, 5, 2, 3, -1, 1, -5, 7, -4, 5, -6, 8, -7, 8, -6 },
- { -6, 18, -22, 22, 5, 11, -1, 6, 19, 22, 8, 4, -8, 20, -2, 15,
- -6, -18, 0, -33, -9, -12, -1, 6, 5, 2, 5, 5, -5, -17, -3, -3 },
- { 1, 11, -16, 9, -18, 11, -4, 18, 20, 26, -10, 8, 1, -11, 8, -4,
- 0, 7, 3, 5, 2, 2, 10, -2, -4, 4, -4, -2, 1, -4, -5, -1 },
- { -10, 6, -1, 18, -17, 27, -3, 10, -2, 12, -7, -9, 1, 1, -1, 7,
- -12, -1, -7, -6, -1, 8, 3, -15, 8, 9, 3, -7, 4, -1, 1, -1 },
- { -14, 6, -16, 22, 2, 5, 0, 5, -18, 11, 6, -3, 22, -20, -9, -3,
- 6, -6, -7, -15, 1, 15, -8, 11, 8, -3, -8, 1, -8, 2, 6, -2 },
- { -21, 5, -19, 19, -7, 4, -7, 0, -8, 6, 12, 5, -3, -22, -13, -6,
- -1, -3, -2, -14, 6, -3, 1, -8, -7, -5, -6, 11, -3, -10, -5, 2 },
- { -1, 9, -12, 15, -6, 6, -19, 14, -9, 11, 3, 12, -17, -3, 8, -4,
- -3, -4, 1, -5, 4, 5, -7, -15, -7, 15, -6, -5, 1, -5, -3, 1 },
- { -12, 20, -15, 20, -14, 3, -14, 9, -6, 33, -13, 6, -2, 8, -6, 7,
- -5, -6, -3, -3, 0, 8, -3, -3, 1, -2, 2, 2, 6, -5, -5, -2 },
- { -7, 12, -18, 12, -18, 10, -4, 8, 2, 4, 8, 9, 0, 3, -8, 3,
- 6, -12, -4, 1, 25, -5, -9, 6, -7, 0, -9, -7, 3, -5, -4, -4 },
- { -18, 12, -10, 11, -22, 0, -15, 5, -2, 2, -3, 6, -4, -4, -3, -15,
- -2, -3, 21, 6, -12, -11, 19, 3, 3, -14, 7, 0, -11, -22, -10, 0 },
- { -15, 2, -30, 15, -17, 13, -16, 8, -7, 10, -8, 2, 11, 3, 10, -7,
- 7, -22, 12, -10, 3, -12, 6, -10, 12, -10, 7, -8, 5, 2, 9, 1 },
- { -9, 11, -14, 6, -10, 21, 5, 12, -5, 5, 7, 21, 6, 2, -2, -1,
- -1, 4, 2, -20, -18, -1, -14, 3, -1, 4, -7, 10, 1, 11, 4, -4 },
- { -22, 8, -30, 13, -21, -4, 4, -1, 12, 9, -2, -3, 2, -6, 4, -13,
- -2, 8, 8, 1, -7, 3, -4, -5, -1, -7, -2, 8, 8, 7, 8, 0 },
- { -6, -4, -35, 16, -13, 15, -11, 14, -7, 9, -1, 11, 7, 0, 13, 10,
- -1, 8, 1, 1, -2, 8, -1, 2, 2, 3, -10, -1, 7, -13, -3, -7 },
- { -15, 7, -16, 14, -18, 17, -6, 14, 3, 4, 7, -3, 10, -22, 5, -15,
- 4, -4, -11, 15, -15, 11, -11, 20, 1, 0, 2, 1, 11, -3, 11, -7 },
- { -12, 3, 5, 16, -37, -1, 15, 15, -15, 10, 3, -10, 1, 15, 7, -15,
- -13, 8, 9, -3, 2, 12, -8, 2, -5, 0, -3, 4, 5, -9, -4, 5 },
- { -16, 26, -4, 14, -22, 26, 6, -3, -8, 4, 21, 6, 16, -4, -11, 7,
- -10, 3, 3, 7, -4, 2, -9, 8, -2, 2, 5, -2, -4, -2, 7, -1 },
- { -7, -10, 4, 3, 2, -4, -12, -10, -4, -5, 16, 19, -16, 1, 2, -9,
- -10, 0, 9, 7, -8, 3, 12, 8, -6, -11, -13, -1, -3, -20, 6, -5 },
- { -14, -17, 3, -5, 14, -12, -12, 8, -6, -25, 21, 21, 10, -8, -12, 4,
- 10, -4, 3, -9, 11, 9, 0, 4, 2, -15, 1, -14, 4, 1, 0, -4 },
- { -4, -9, -3, -1, 6, 3, -6, 6, -10, -4, 14, 8, 2, -3, -12, -19,
- 0, 11, -20, 1, 6, -2, -27, -6, 10, -17, -14, -17, -9, 8, -8, 3 },
- { -12, -13, 16, -4, -2, 12, -7, -11, 2, -13, 3, 7, -16, -18, -1, -12,
- -2, 1, -12, -9, -2, -6, 2, 9, -22, -3, -4, -14, -7, 7, -1, 2 },
- { -7, -8, -8, 15, 15, 18, 15, 16, -4, -37, 11, 15, -12, -1, -3, 3,
- 6, 6, 0, -5, -3, -5, 9, 1, 1, -11, -1, -8, -6, 2, 3, 0 },
- { -6, 7, -5, -12, 13, 10, -18, -4, -3, -21, 6, 16, -15, -7, -12, -9,
- 1, -12, -1, 10, -2, -1, -3, 4, -4, 1, -16, -1, 12, -9, 5, 9 },
- { -14, -5, 9, 3, 4, 26, -28, 3, -6, -24, 4, 5, 3, 13, 5, -1,
- 3, -1, 3, 1, 1, -5, 3, 0, -7, -8, -7, -3, 3, -5, 4, 0 },
- { -4, 2, -10, -6, 25, 26, -6, 10, -6, -8, 15, 11, -6, -3, 2, -7,
- 5, 14, 9, -1, 0, -12, 4, -4, -10, 1, -3, 3, -2, -2, -6, -1 },
- { -10, 8, -15, -10, 19, 17, -8, 0, -3, -7, 7, 5, -13, -1, 7, -7,
- 1, 13, -12, -13, 17, -12, 1, 26, -18, -3, -5, -6, 4, 5, 8, 1 },
- { 2, -5, 3, 0, 0, 0, 2, -3, -2, -5, 7, 13, -4, 9, 0, -5,
- 4, -1, -11, -8, -4, 0, -13, 2, -47, -23, -8, -11, -4, 4, -2, -3 },
- { -18, -4, 4, 5, -1, 17, -12, -8, 1, -12, 7, 20, -12, 3, -2, -11,
- 16, 12, -6, 1, -13, -16, -6, -3, -3, -5, 4, -12, -5, -9, 10, 1 },
- { -11, 0, 4, 7, 7, 8, 3, -1, 3, -19, 32, 8, -19, -8, 2, 4,
- -12, 15, -16, 3, 1, 9, -2, 1, -2, 8, 5, 6, -4, -1, 11, -8 },
- { 3, -1, 4, -2, 14, 32, -9, -23, -10, -12, 22, 15, -1, -2, 10, 0,
- 4, 6, -8, 4, -15, -2, -1, -4, 0, -8, 4, 1, -8, 3, 4, 1 },
- { -17, -12, 6, -8, 16, 13, -20, -8, -1, -16, 10, 21, -19, 11, -9, -5,
- 7, 18, -6, 7, -7, -18, 13, 2, -2, 8, -12, -9, 2, 4, -5, 16 },
- { 4, 0, 17, -11, 12, 7, -12, 5, -1, -25, 30, -8, -7, -6, -4, -7,
- 9, 8, 7, 3, 3, -16, 8, 0, -2, -2, -18, -3, -4, -5, 1, 4 },
- { -3, -6, 6, -16, 17, 6, -3, 2, -9, -17, 12, 11, 11, 2, -20, 8,
- 1, 1, 0, 2, -2, -6, -21, -13, -9, -15, -1, -8, -6, -8, 0, -2 },
- { -11, -7, 6, -9, 3, 6, 8, 16, 4, -5, 23, 26, -10, -3, 4, 0,
- 2, 2, -4, 4, -2, -12, 12, 10, -11, 0, -10, -16, 3, 0, 0, -10 },
- { -5, -16, 10, -6, 27, 13, -3, 4, -2, -13, 15, 5, 2, 5, 3, -4,
- 13, 12, -11, -7, 0, 1, 11, 12, 2, 13, -15, -8, 9, -2, 3, 8 },
- { -5, -8, 4, 3, 9, 3, -11, 10, 14, -25, 14, 8, -2, 5, -12, -21,
- 2, 10, -7, 2, -3, 2, 0, 2, -1, -3, -5, -6, -1, -16, 2, 8 },
- { -1, 5, 1, -11, 5, 9, -7, 8, -13, -12, 4, 12, -4, 1, -1, -1,
- 27, 29, 10, 15, 2, -6, -3, 4, -21, 10, -9, -11, -6, -1, -9, -3 },
- { -6, -3, -1, -6, 11, -5, 0, -2, -5, -31, 11, 3, -1, 5, -3, 4,
- 5, 7, -10, 5, -10, -13, 4, 12, -15, -2, 2, -7, 1, -9, -3, -10 },
- { -3, -7, 17, -8, -5, 36, 8, -7, -8, -20, 12, 8, 1, -1, 3, 0,
- 1, 4, -10, 3, 1, 4, -2, -3, -2, -3, -10, 4, -1, -7, 3, 2 },
- { -13, -3, -5, 9, 22, 6, -23, 3, -10, -7, 17, 17, 18, -14, -8, -8,
- 2, 4, -8, 2, -3, -8, 6, 4, -1, 7, 0, 0, -3, 0, -12, -3 },
- { -3, -10, -15, -3, 9, 3, -23, -9, -13, -18, 12, 13, -2, 0, 1, 8,
- -1, 2, -7, -12, -5, 14, 2, 1, -22, 6, -10, -8, -9, 28, -7, -14 },
- { -3, 1, 2, -1, 13, 7, -2, -7, 1, -3, 6, 9, -3, -2, 4, -2,
- 2, 1, -10, -2, -2, -22, -2, -7, -10, -5, -11, -27, -12, -16, 4, -7 },
- { 2, -6, -3, 1, 8, 0, -2, 12, -3, -4, 58, 15, -10, -4, -2, 2,
- -2, 0, -2, -6, 2, 4, -1, 1, -4, 1, -1, -5, -4, -3, 3, 1 },
- { 10, -1, 0, 5, 21, 7, -14, 6, -3, -16, 15, 17, -16, 13, 3, -6,
- -4, 6, -12, -5, 1, -4, -7, -8, 2, 3, -6, 6, -1, -8, 5, 4 },
- { -6, -2, -8, -11, 15, 10, 0, 8, -6, -15, 33, 8, -2, 18, -15, -11,
- 5, -1, 0, 15, -15, -4, -4, -1, 10, 7, -13, 4, -4, 0, 8, 3 },
- { -7, -2, 0, -2, 0, -2, -4, -5, -14, -16, 12, 38, 7, 12, 6, -4,
- 0, -1, 0, 3, -2, -6, 0, 2, -9, 1, 0, -1, 0, -2, 4, 1 },
- { -8, -4, 18, 1, 14, 5, -12, -3, 20, -17, 5, 19, -11, -8, 11, -3,
- 3, 9, -7, -8, 9, -17, 2, 15, -10, -11, 5, -5, 7, 15, -6, -2 },
- { -7, 2, 38, 5, 19, 16, -5, 4, -13, -20, 0, 4, -4, 6, 4, 2,
- -7, 6, -8, -2, -5, -7, 6, 3, -4, -3, -2, -3, 7, -6, -4, 0 },
- { -11, -12, 8, -15, -3, 14, -7, -22, -11, 2, 22, 14, -19, 2, -19, -6,
- 1, 3, -18, 14, 2, -6, -2, -8, -3, -6, 5, -7, -8, -4, 1, 1 },
- { 8, 7, 25, -21, 12, -6, -5, -4, -10, 6, 0, 10, 1, -12, 18, -5,
- -15, 4, 1, 14, -1, 5, 8, -7, 1, -7, -3, 9, 10, 1, -1, 0 },
- { 9, 10, 32, -15, 8, 2, 11, -7, -18, -8, 2, -6, -9, -16, -3, 3,
- -1, 3, 1, -5, 4, -2, 1, -8, 0, -6, -3, -11, 1, 5, 0, 0 },
- { 14, 0, 23, -25, 22, 3, 7, 10, 0, -2, 7, 8, 0, 10, 0, 0,
- 3, 2, 3, -10, 0, 10, 0, -7, 0, 10, -1, -5, -7, 1, -1, 2 },
- { 12, 0, 25, -18, -5, -4, 13, -10, 3, -6, 7, 21, 0, -16, 3, -10,
- -6, 5, -7, -3, 2, 5, 3, -6, 4, 9, -8, 12, -2, 3, 2, 4 },
- { 31, 15, 27, -20, 10, -7, 15, -10, 9, -8, 4, -5, 3, -3, 5, 6,
- 11, -2, -12, -2, 6, -2, 1, 2, -1, -1, 1, 1, 3, 1, 1, 2 },
- { 12, -4, 13, -23, 12, -6, 2, 4, -3, 13, 6, -7, 5, -19, -7, 18,
- 1, -7, 7, 1, 16, -7, 3, 0, 3, 0, -12, 8, -11, 9, 4, 7 },
- { 29, 1, 3, -22, -5, 6, 0, 12, -14, 11, 1, 6, -3, 4, 6, -2,
- 4, -13, 12, 1, 1, 3, -11, 9, -10, -1, -7, 16, -11, -1, 3, 9 },
- { 4, 4, 36, -23, -5, -8, -15, 1, -6, 3, 13, -1, -5, -7, 4, 9,
- 2, -11, -3, 5, 1, 3, -6, -1, -4, -4, -2, 2, 3, -1, -5, -2 },
- { 19, 10, 6, -17, 2, -4, -2, -4, -3, 13, 2, 2, -13, -7, -3, -11,
- 9, -6, 1, -9, -5, 4, -5, -9, -18, -7, -11, 9, 4, -11, 8, 4 },
- { 16, -3, 9, -16, 18, -2, -12, -16, -11, 11, -18, 16, -13, 6, 2, 8,
- 3, 8, -4, -16, 10, -11, -1, -3, -8, 5, -9, -4, 9, -4, 0, -3 },
- { 14, 15, 3, -23, -5, 7, -8, -6, 2, 17, 2, 12, -8, -12, 13, -1,
- -9, 3, 1, 1, 19, 15, 4, -1, 1, 2, -3, 2, -3, 1, 5, 3 },
- { 32, 5, -10, -47, -5, -1, 4, 11, -7, 0, 2, -2, 1, -7, 6, -4,
- 6, 2, -4, -2, 2, -2, 0, -4, 1, -6, -5, 2, -2, -1, -3, -4 },
- { 20, 8, 10, -21, -7, -9, -16, 12, 1, 4, 6, -5, 9, -11, -7, 4,
- -11, 28, -3, 2, 4, -6, 10, -8, -5, -5, -9, 9, -2, -1, 6, -5 },
- { 38, 3, 23, -25, -6, -18, 3, -10, -8, 6, -10, 1, -10, 2, 2, 0,
- -7, 2, -4, 5, -1, 8, -3, 0, 3, 3, -1, 1, 0, -4, -4, 0 },
- { 20, 5, 16, -22, 24, -18, 2, -12, -14, -7, -3, 10, 2, 7, -10, 2,
- -8, 1, 8, -1, 4, 1, 4, -2, 5, -9, -18, -8, -13, 5, -11, 10 },
- { 14, 8, -12, -16, 9, -11, -3, -6, -25, -7, 6, 5, -7, -16, 10, 2,
- -7, -1, -9, -3, 16, 4, 3, 3, -3, -3, -15, 13, -3, 4, 13, -7 },
- { 16, -9, 19, -23, 7, -19, -3, -5, -15, 11, -21, 21, -16, 18, -1, 6,
- 10, -10, 18, -14, 16, -15, 6, -5, -9, 5, -17, 13, -10, 13, 0, 10 },
- { 8, -4, 4, -24, 8, -21, -18, 9, -11, 4, -6, 17, 5, -9, -2, -2,
- 2, 15, -2, -3, -2, 1, 7, -13, 15, -10, -8, -11, 3, 3, -1, -1 },
- { 14, 17, 6, -32, 5, -17, -2, 0, 15, -1, -5, 16, 1, -5, -2, 9,
- -3, 8, 4, -2, -2, -4, -3, 1, 0, 7, -3, 4, -5, 0, -7, 2 },
- { 24, 6, 22, -12, 8, 3, -14, 4, -7, 8, 6, 5, 6, 1, 6, -12,
- 15, 10, 4, 11, 9, 6, -7, -4, 10, -9, 2, -1, -5, 11, 15, 3 },
- { 17, 12, 3, -23, 5, -1, -2, 1, -9, -1, -3, 1, 8, 1, -5, 17,
- 11, 0, -2, -11, 7, 4, 0, -27, -7, 1, 2, -8, 9, 7, 5, 3 },
- { 12, 10, 12, -10, -4, 5, -1, 2, -24, 5, -8, 2, 6, -17, 19, 5,
- 12, -2, 16, -7, -6, -14, 4, 1, -3, 13, -16, 5, -1, 4, 1, 1 },
- { 31, 9, 11, -17, 10, -3, -7, 7, 1, 2, 2, 4, -3, -1, 11, 4,
- -5, -8, 1, 4, 15, -6, -28, 1, 8, 3, -6, 5, 17, -2, 2, -4 },
- { 11, 19, 16, -26, 0, -7, -7, 2, -13, -15, -12, 9, -3, 27, 8, 4,
- -6, 1, 4, -6, 11, -1, -6, -7, -3, 0, -6, 4, -6, -7, -3, -1 },
- { 10, 18, 16, -32, 19, -9, -4, -3, -7, 8, 8, -3, -11, -2, -6, -16,
- 13, 13, -6, -1, 10, -2, -2, -9, 0, -3, 9, 4, 11, -2, -6, 6 },
- { 9, 4, 19, -33, 4, 7, -12, 36, -3, -1, 8, -2, 2, -8, -9, -4,
- -8, 0, 1, -1, 0, -4, -4, 3, 0, 3, 6, 0, -6, 2, 0, -2 },
- { 25, 7, 15, -12, 2, -24, -1, 24, -4, 4, 9, 0, -2, -9, 4, 6,
- 3, 13, -3, 1, 5, -1, -3, -5, -1, 7, -2, 3, 4, 4, 1, 0 },
- { 19, 6, 8, -20, 9, -9, 5, -4, -13, 7, 11, -3, 5, -13, -9, 6,
- -11, -1, 0, 4, 11, 26, 3, 6, -7, 12, 6, -3, 1, -9, 7, 1 },
- { 15, 6, 19, -23, -3, -9, 3, 16, -6, -4, 6, -5, -10, 1, 16, -14,
- 2, 0, 2, -13, -3, 8, -6, 3, 1, 1, 2, -5, 12, -4, -8, -3 },
- { 14, 4, 16, -20, 1, 12, 0, 6, -3, 9, 4, 16, 10, -16, 5, 7,
- 5, -4, -4, -18, -3, -11, -4, 4, -7, 3, 13, 7, 3, 3, 2, -7 },
- { 22, 3, -1, -30, 18, -3, -9, 9, -2, 11, -16, -2, -14, 12, 0, 4,
- -5, 4, -1, 3, -20, 12, 4, -10, -2, -2, -12, -12, 10, 6, 11, -3 },
- { 15, 7, 2, -21, 5, 4, 9, -9, -33, 7, 7, 3, -6, -14, -8, 10,
- 12, 0, 2, -1, 5, 4, -2, 0, -7, 0, 2, 4, 0, 1, -3, 8 },
- { -7, 0, 12, 3, 0, -6, 8, -4, 0, 2, 14, -15, 2, -7, -31, -3,
- 14, 0, 14, -15, -1, -4, -15, 10, 1, -3, 1, 2, 5, 2, -8, 1 },
- { -2, 5, 1, 0, -3, 3, 3, -6, -1, 2, -4, 1, -19, 0, -11, 18,
- 11, 10, 21, 5, 6, 2, 10, 3, -6, 0, -2, 13, 5, -1, -2, 9 },
- { -9, 1, -5, 0, 0, -15, 8, 4, 8, 3, 8, 12, -13, -2, -39, -2,
- 4, -4, 5, -3, -4, 3, -3, 3, 10, 5, 3, 2, -3, 5, -2, 8 },
- { -9, 6, 6, -8, 12, -12, 23, -18, 4, -15, -5, 2, -20, 13, -7, 7,
- 7, -12, 14, -12, 6, 1, 1, -3, -8, 9, 0, 1, -7, 3, 7, -6 },
- { -18, 13, 4, 3, -10, -30, -10, -6, -14, 1, -7, -4, -35, 5, -25, 11,
- 9, 8, 19, -4, -7, -3, -18, -8, 1, 5, 10, -4, -14, -9, 3, -4 },
- { -6, -1, 4, -9, -9, 4, 20, 0, 0, 3, 11, 7, -16, -17, -20, 11,
- -6, -14, 1, 4, 19, 2, -8, 6, -15, 3, 6, -5, -14, 3, 7, 2 },
- { 1, 6, -2, -8, -5, -3, 3, -8, 21, 1, 3, 16, -14, -2, -9, -4,
- 13, -2, 18, 14, 14, 19, -13, 5, -10, 2, -3, 3, 5, 5, 1, -1 },
- { -1, -5, -6, -2, -11, -7, 5, -4, 5, -1, 0, 3, -3, 2, -19, 18,
- 16, 4, 14, -22, -2, -11, -22, 1, -1, 11, 1, 2, 11, -10, 7, -12 },
- { 1, 4, 5, -1, -9, -5, 1, 12, 5, 6, 12, 9, -24, 23, 1, 20,
- 14, -11, 13, 5, -2, -2, 5, 6, 2, 1, -9, 6, 10, 5, -4, 11 },
- { -1, -1, 1, 7, -3, -4, 8, -16, 15, -1, -7, 9, -22, -11, -11, 10,
- 16, 9, -2, 4, 13, 10, 6, 16, 4, 7, 1, -8, -7, -14, -7, 4 },
- { 1, 3, -6, 0, 15, -9, -4, 0, 4, 6, 12, 9, -6, -5, -22, 17,
- 7, -11, 15, -5, 1, 3, -19, 0, -15, -3, 16, 5, 5, -7, -11, 12 },
- { -2, -1, 13, 2, 4, -24, 37, -5, -2, -6, 12, 7, -2, -23, -4, 9,
- 2, -3, 3, 2, 3, 3, -14, 11, 0, -4, -2, -2, 3, 10, -10, 4 },
- { 2, 9, 8, -6, -28, 14, 28, -11, 18, -11, 0, 2, -2, 4, -12, 3,
- 6, 0, 7, -7, -6, 2, 5, -1, -1, -1, 5, 2, 3, 0, -3, 9 },
- { -7, 14, 5, -10, -3, 7, 4, -5, 7, -8, -7, 4, -12, 14, -16, 25,
- 3, 0, 1, -5, 12, -10, 0, -10, 0, 12, 12, 17, 12, 10, -1, 0 },
- { -4, -2, 5, -2, -17, -3, 5, -5, 7, -17, 1, 5, -4, 4, -20, 0,
- 11, -15, 13, -8, 10, 1, 1, 5, -12, 9, -8, 0, 6, -1, -11, 4 },
- { -3, 12, 13, -15, -7, -7, 0, 5, 33, 3, 3, -6, -13, -7, -15, 10,
- 3, 3, 3, -5, 2, 7, -1, 0, -12, 2, 11, -6, -9, 0, 5, 11 },
- { -8, 5, 10, -7, -14, -4, 13, 0, 18, -3, -6, 7, 1, -6, 0, 21,
- 8, -7, 10, -8, -3, 17, -9, 0, -5, 1, 4, 8, -3, 11, -5, 0 },
- { -8, 8, -3, -8, 8, -11, 16, -16, 17, 0, 8, 16, -17, 10, -16, 10,
- -8, 6, 11, 0, 10, 7, 4, 5, 7, -5, -5, -6, -7, -5, -1, 16 },
- { -6, 0, 6, 1, -8, -8, 8, -7, -5, -10, -11, 8, -19, 6, -7, 13,
- 5, -3, 4, -8, 7, -1, -18, 9, 0, -5, 6, 26, 3, 8, 2, 4 },
- { -2, -2, 23, -2, -20, 2, 7, -7, -6, -15, 3, 9, -19, -2, -10, 7,
- -2, 7, 9, 11, 0, 4, -4, 6, 9, -2, 4, -3, 4, 3, 2, 8 },
- { -6, 12, 10, -10, -7, 4, 17, 11, -6, 1, 12, 11, -18, 8, -12, 4,
- 1, 13, 6, -13, 23, 9, -5, 8, -2, -5, 1, 3, 0, -2, -4, 4 },
- { 7, 1, 7, -17, -8, 8, -1, -7, 5, -6, 4, -3, -16, 9, -24, 18,
- -3, 10, 13, -11, -6, -11, -4, 10, 0, 11, 8, 2, 6, -5, -11, 4 },
- { -4, 1, -5, -10, 0, -3, 9, -2, 4, -1, 1, 5, -41, -10, -7, 4,
- -3, 3, 1, 0, -12, 4, -3, 0, 2, -1, -2, -5, 3, 2, -7, 5 },
- { -2, 1, 4, 4, -3, -6, 1, 0, 12, -5, 11, 0, -17, -3, -1, 11,
- 4, 1, 27, -12, 0, -14, 2, -15, -3, -9, 0, -7, -3, 15, -8, 6 },
- { -6, 4, 9, 2, 4, 3, 7, -10, 28, 1, -2, 48, 7, 0, -10, 10,
- 1, -9, 2, -1, 0, 3, -5, 5, -4, -2, 7, 7, 1, 3, 2, 5 },
- { -3, 3, -1, 3, -9, 0, -1, 3, 2, -6, 39, -14, -12, 5, -19, 21,
- 7, -6, 4, -1, -4, 0, -4, 1, 0, -9, 1, 10, 0, -2, 0, 7 },
- { 4, 2, -29, 12, 5, -3, 16, -6, 15, -13, -4, -1, -13, 22, -16, 17,
- 16, 4, 9, -4, 4, -6, -4, 11, -8, 7, 8, 4, 3, -3, -7, -13 },
- { 0, 3, 3, -6, -4, 0, 9, 0, 5, 0, 10, 10, 4, -13, -12, 16,
- 23, -4, -12, -6, -4, 20, 2, 0, -4, 23, 1, 8, 11, -4, -5, 15 },
- { -6, 4, -15, -9, -1, -19, 12, -30, -17, -4, 1, -13, -13, 4, -3, 26,
- 5, -25, 11, -14, -6, -13, 0, -7, 9, 2, 8, -1, -8, 1, -8, 13 },
- { 1, 6, 1, -4, -4, 1, 2, 0, -3, 2, 10, 6, -6, -2, -11, 4,
- 32, 15, 15, -47, -8, 3, -12, 4, -5, 4, -1, 0, -5, 5, 1, -7 },
- { 2, -1, 0, 0, -1, -6, 0, -6, 4, -4, 5, 9, -5, 1, -3, 51,
- 4, -5, 4, -14, -1, -4, -3, 1, -4, -1, 0, 2, -8, 0, 1, 2 },
- { 0, 4, -2, -7, -2, -9, 6, -8, 11, -3, -6, 3, -11, -8, -12, 8,
- 11, 5, 19, 3, -24, 19, -14, 11, -5, -18, -8, -12, -5, -4, -1, 4 },
- { 16, 9, 10, 14, -18, -2, -18, -27, 10, -5, 12, 14, 4, 0, -2, -6,
- -12, -7, -1, 3, 4, 7, 11, 10, 5, -5, -7, -16, -3, -6, 6, 9 },
- { 7, 15, -9, 10, -19, 4, -5, -37, -2, -4, 8, 2, 4, -1, 1, 9,
- -5, -5, -12, 1, -1, -8, 3, -3, 4, 6, 9, 3, 3, -1, 2, 4 },
- { 13, 17, 3, 9, -7, -7, -15, -17, -8, -13, -4, -8, 19, 2, 16, 25,
- 7, 15, 2, 16, -5, -6, -10, -9, -7, -6, -2, -7, 7, 2, 4, 5 },
- { 24, 7, 9, 8, -13, -2, 0, -4, 1, -13, 3, 6, 7, 10, -4, 15,
- 5, 7, -4, 5, -5, 3, 13, -7, 5, 15, -11, -2, 7, 5, 8, 6 },
- { 17, 6, -15, 23, -2, -1, -6, -2, 0, -4, 11, -3, 12, 15, 6, -8,
- -15, 10, -9, 7, -1, -11, 2, -8, -4, 3, 4, -10, 4, 4, 11, 1 },
- { 21, 12, -3, 6, -8, 8, -11, -8, -5, -5, 3, 7, -1, -5, 12, 15,
- -10, -11, 3, 15, 8, 4, 2, -15, 0, 14, 1, -8, -1, 3, 10, -7 },
- { 16, 12, 5, 13, -6, 15, -23, 0, -17, -9, 0, 4, -9, 13, 6, 18,
- 0, 0, -4, -1, 0, 14, 5, -1, 8, -4, -8, -6, 5, -2, -2, 0 },
- { 14, 16, -1, 12, -15, -9, -6, -20, 4, 6, 8, 9, 3, 1, -9, -4,
- -1, -11, 9, 11, -12, 1, -14, -7, 2, -8, 11, 9, -4, 10, 4, -16 },
- { 13, 10, 3, 7, 0, -8, -33, -6, 4, -4, 19, -2, 14, 6, 5, 7,
- 6, -3, -1, -10, -10, -9, 4, -3, 5, 9, 2, 2, 10, 9, -2, -3 },
- { 11, 10, 25, 18, -1, -6, -21, -21, -11, -16, 6, 5, 14, 4, 8, 7,
- 0, -10, -7, -9, -5, -4, 3, -1, 1, 6, -1, 6, -2, 2, -3, -9 },
- { 15, 9, 5, 22, -17, 15, -9, 7, 7, -9, 13, 9, 10, -1, 8, -3,
- -2, 6, 1, 17, 8, -14, 7, -3, 12, 9, 1, 0, 1, -5, 17, -18 },
- { 25, 19, -17, 12, -4, -10, 1, -13, -19, -7, -3, 9, 6, -2, 3, 1,
- 4, -2, -11, -14, -1, -7, -5, -9, 7, -1, -3, 4, -5, 1, 0, -1 },
- { 20, 8, -3, -10, -24, 3, -6, -2, 0, -12, 14, 6, 7, 11, 4, 7,
- -12, -5, -8, -10, 5, -1, -4, 4, 16, 7, -14, 6, -1, -2, -7, -11 },
- { 16, 18, 17, 1, -15, -6, -5, -3, -1, -19, 8, -2, 2, 8, 12, -19,
- -12, 8, 0, -3, -1, -1, 4, -14, 9, -1, -12, -1, -7, 10, -3, 5 },
- { 18, 12, -7, 7, 0, -3, -13, 0, -1, -4, 9, -2, 6, -1, 0, 1,
- 15, -21, 1, -8, 25, -19, 13, -9, 2, 12, 5, -7, -3, -1, -3, 1 },
- { 13, 16, -4, 9, -2, 2, -1, -19, -7, -4, 18, -6, 14, 18, -5, 4,
- -6, -3, -19, -14, -1, -12, 10, 6, 7, 17, -12, -13, -10, -4, 5, 4 },
- { 27, 17, 4, 14, -9, -2, -4, -8, 0, -6, 14, -11, -7, 2, -3, -3,
- -2, -3, -13, 12, 16, 1, -5, -9, -10, -11, -2, 3, -7, 5, 11, -7 },
- { 7, 17, -16, -2, -14, -28, -7, -8, 15, -10, 7, 15, 8, 17, 13, -1,
- 4, -7, -12, -11, 0, 0, 2, 3, -3, 7, -6, 6, 1, -16, 1, -2 },
- { 23, 11, -9, 15, -23, -4, -6, -4, 2, -9, -7, 9, -8, 3, -13, -4,
- 8, 18, -6, -2, 1, -5, 6, -14, -5, -2, -6, -5, -3, -2, 4, -5 },
- { 12, 13, 18, 18, -35, 2, 7, -17, 3, -11, 6, 9, -3, -2, 10, -4,
- 3, 3, -2, -7, 0, 2, -4, 0, -4, 0, -6, 5, 10, 4, -3, -1 },
- { 19, 11, 1, 20, -14, 4, -9, -13, -2, 11, 0, 17, -1, -1, -1, -1,
- -5, -8, 0, 5, -1, -8, 5, -1, 3, 2, -12, 21, -2, -24, 5, 7 },
- { 15, 15, -15, 17, -14, -22, 3, -4, -11, -3, -7, 1, 18, 10, 1, 10,
- -6, -3, 8, 2, -7, 0, -2, 1, 1, 2, -9, -2, 1, 2, -3, 4 },
- { 45, 13, 8, 17, -5, 2, -16, 2, 8, -2, 8, -15, 4, 5, -1, 7,
- -6, -2, -6, 2, -3, 0, 0, -9, -1, 7, 2, 3, -3, -3, -1, 5 },
- { 1, 18, -8, 18, -12, -10, 3, 4, -22, -12, 20, 8, -3, 9, 2, 10,
- -10, -3, 9, 3, 6, -3, 10, -1, -3, 2, -2, 4, 2, 3, -3, -18 },
- { 9, 10, -5, 9, -35, -21, -18, -16, -1, -12, -6, -7, -15, -19, 12, 4,
- 4, 9, -7, 2, 14, 1, 4, 0, -1, 6, -7, 2, 1, 1, -4, 4 },
- { 31, 8, -17, 35, -8, 1, -5, -6, -7, -6, 10, -2, -3, 6, 9, 3,
- -6, -2, 3, 3, 5, -3, 0, 6, 0, 1, -5, -3, -2, -4, -1, 0 },
- { 18, 4, -8, 7, -8, -15, -1, -16, 12, 18, 3, 19, 2, 4, 8, 8,
- 0, -5, -8, -12, 10, -5, 0, 1, 0, 4, -3, 16, 11, 11, -2, -6 },
- { 27, 15, -17, -10, -23, -22, -1, -14, -4, -7, 20, -2, -7, 6, 15, -5,
- 32, 4, 9, -11, -3, -8, 11, -4, -1, -4, -8, -6, -4, -5, -2, -7 },
- { 22, 4, -7, 2, -15, -11, -17, -10, 2, 0, 15, 11, 7, 12, -8, 6,
- -10, -18, -6, -12, 7, 3, 22, 3, -7, 14, -5, -2, -13, -7, -1, -7 },
- { 18, 13, 9, 24, -4, -19, -9, -11, 13, 8, 2, 4, -1, 8, 14, 10,
- -12, 0, 0, 5, 10, 5, 4, -1, 5, 1, -1, 11, 2, -4, 0, -9 },
- { 15, 19, -5, 1, -4, -10, -8, -27, 6, 8, 5, 10, 4, 11, 5, -5,
- -11, 0, -11, -14, -4, -9, -8, -8, 6, -9, 4, -5, -1, 1, 5, -4 },
- { 18, 1, -13, 14, -14, 9, -15, -7, 12, 1, 13, -4, -20, 12, 10, 12,
- -12, 7, 1, -13, 10, -6, 5, -3, 4, 8, 10, -13, -3, -6, 9, -3 },
- { 19, -14, 5, -8, -6, 2, -5, 5, -3, -1, -28, 11, 18, -6, -4, -2,
- 11, 14, -43, -42, 9, 2, 20, -23, 6, 32, 0, 5, 0, 6, 9, 5 },
- { 8, 11, -14, -1, 7, 12, -7, 2, -16, 2, 10, -3, -1, -7, -7, -1,
- 1, -10, -60, -23, -18, 42, -13, 9, 18, -11, 0, 1, 0, 2, -5, 1 },
- { -5, -1, 2, 0, 3, -3, 3, -2, -6, 0, -3, -3, 7, 2, 0, -2,
- -2, 3, -34, -15, 37, 47, 10, 20, 9, 1, 3, -21, -25, -33, -14, 8 },
- { 5, 6, 2, -2, -2, -2, 6, 5, -5, 7, -3, 1, -5, -13, 9, 3,
- -17, -19, -2, -79, -12, -7, -8, -6, -2, -2, -1, -1, -7, -13, 6, -1 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1,
- 0, 3, 4, -87, 6, -11, 16, -9, -1, 8, 0, 5, 0, 1, 2, 1 },
- { -5, 6, 2, -24, 5, -9, -7, 0, 7, 3, -3, 16, -14, -16, 0, 18,
- 15, -9, -14, -28, -17, 53, 14, -6, -28, -1, -3, -10, -7, -14, 19, -15 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0,
- -13, 0, -53, 3, -22, 63, 19, 16, 1, -11, 0, -3, 0, -3, 0, 1 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
- -1, -6, -43, -43, -2, 65, -13, -4, 9, 1, 1, 2, 1, 0, 0, 1 },
- { 0, 1, 0, 0, -1, 0, 1, 1, 0, 0, 1, 2, -1, -1, -3, -1,
- -23, 1, -61, -55, 3, -28, -6, -4, -4, 8, 2, 1, 1, -1, 0, 0 },
- { 0, 1, -1, 1, -1, 0, -1, 0, 1, -1, 0, 1, -1, 0, -9, -4,
- -48, -19, -52, -46, 11, -12, 5, -14, 0, -10, 0, 0, -1, -2, -1, 0 },
- { 0, -3, -1, -4, 2, -1, -7, 3, 1, 3, -1, 1, -3, 0, -7, 0,
- 3, -7, -61, -51, -4, -21, -16, -21, -11, 14, -7, 8, 3, -5, 1, 2 },
- { 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1, 9, -3,
- 56, -11, -6, -67, -1, 13, 0, 7, 1, -9, -1, -1, 0, 0, 1, 0 },
- { 14, 9, -2, 14, -10, -10, 9, -5, 1, -8, -23, 30, 8, -7, 23, 8,
- 2, 10, -1, -27, -17, 57, 22, 4, -5, 2, -12, -6, 2, -7, -4, -9 },
- { 1, 5, 12, -2, -2, -3, 2, -3, 6, 0, 4, -2, -8, -6, 0, 16,
- -15, 29, -55, -29, -24, 29, 3, 10, 6, 13, 10, -5, 21, 11, -14, 5 },
- { 4, 2, 26, -6, 10, 11, -23, -10, -27, -20, 3, -24, -11, -10, -13, 25,
- -10, 5, -9, -36, -7, 43, 3, -13, 6, 13, -2, 0, 1, 3, -3, -4 },
- { -1, 0, -1, 0, 0, 0, 0, -1, 1, 0, -1, 0, 0, 0, -1, 1,
- -12, 12, -26, -64, -15, 29, 37, -7, -3, -12, -5, 14, 8, -8, -10, -2 },
- { 19, -4, -11, -16, 8, 14, 5, 19, 3, 22, -11, -21, -1, -6, -11, 11,
- 10, -24, -23, -40, -8, 20, 17, 5, 13, -6, 3, 14, -20, -8, 3, 28 },
- { 2, -12, 10, -14, -18, 26, -22, 4, -2, 5, -21, 8, 3, 1, 19, 0,
- -12, 24, -14, -40, 15, 29, -15, 6, 15, 1, -19, 2, 4, 7, -12, -3 },
- { 0, 17, 13, 7, -5, -11, 2, -19, 3, 38, -21, -3, -6, -4, 7, 1,
- 1, -5, -40, -10, -2, 35, 8, 8, -10, -8, -9, 33, 4, 4, 0, -2 },
- { -2, -12, 7, 29, -24, 2, 16, -1, -7, 16, 10, -2, -2, -2, 13, -2,
- -37, 15, -22, -40, -11, 33, 10, -1, 8, 10, 6, 8, 9, 0, -12, 2 },
- { 15, -8, -9, -2, 7, -17, 7, 19, 14, 4, 12, 27, 11, 10, 4, 11,
- -15, 14, -13, -48, 5, 18, 0, -9, -36, -11, 2, 4, 5, 5, -15, -12 },
- { -12, 0, 3, 4, 7, -5, 5, -14, -24, -18, -6, -15, -8, -20, 1, -7,
- -33, -28, -40, -38, -18, -10, -5, 17, -12, 4, 3, -5, 5, -13, 4, -7 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
- -3, -9, -49, -60, -5, 45, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
- -3, -9, -49, -60, -5, 45, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0,
- 3, -2, 9, -29, -11, 55, 8, 32, -36, -13, -7, 37, 4, 11, 0, 3 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, -1, -39, -4, -30, 63, 28, -17, -6, 10, 7, -14, -9, 11, 9, 7 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
- 13, -2, -50, -32, 22, 51, 4, 7, 6, 11, -20, -13, 9, -5, 21, -4 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
- -3, -9, -49, -60, -5, 45, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1,
- -3, -9, -49, -60, -5, 45, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0,
- 3, -2, 9, -29, -11, 55, 8, 32, -36, -13, -7, 37, 4, 11, 0, 3 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, -1, -39, -4, -30, 63, 28, -17, -6, 10, 7, -14, -9, 11, 9, 7 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
- 13, -2, -50, -32, 22, 51, 4, 7, 6, 11, -20, -13, 9, -5, 21, -4 },
- { -8, 2, 1, 22, -31, -6, -25, -3, -3, 1, -15, -11, -2, -3, 4, -13,
- -9, 15, -18, 37, -7, -37, 12, -13, -11, -25, -10, -11, -22, 7, 16, 7 },
- { 14, 10, 4, -10, -1, -5, -7, -3, 16, 13, -5, -15, 5, 11, -1, 8,
- -27, 7, -12, 49, 17, -22, 9, -2, -9, -1, 2, -15, -1, 41, -18, -17 },
- { -4, -9, -15, -3, 3, 4, 4, 2, 7, -3, -7, -8, -5, 17, -19, -7,
- 36, -9, -38, 17, 1, -48, 11, -18, -13, -2, -8, 4, -10, -5, 21, 11 },
- { 15, -13, 4, 2, 1, -5, -2, 1, -10, 7, -1, 3, -6, 0, 11, -11,
- 8, 20, -17, 51, -17, -41, 2, 15, 4, 8, -2, 16, -32, -1, 17, 6 },
- { -8, 8, -18, -5, 4, 6, -3, 8, 0, -4, 2, 0, -1, -4, 5, 8,
- 30, 30, -8, 70, 2, 8, 2, 0, 7, 1, 13, -1, -6, -7, -11, 2 },
- { -8, -7, 9, -10, -13, 6, -11, -14, 13, 25, -26, 5, 2, -5, -5, 5,
- -8, 4, 0, 33, 12, -38, -4, 6, 13, 6, 25, 34, -1, 25, -19, -5 },
- { 18, 3, -17, 4, -8, 7, 20, 1, -1, 5, -5, -2, -8, 8, -35, 15,
- 24, 43, -5, 51, 5, -12, -3, 1, -2, 3, -3, -3, -9, 8, -9, 2 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 2, 10, 24, 76, -2, -22, 11, -1, 4, 33, 4, 1, -1, 1, 2, 0 },
- { 0, -1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 2, 0,
- 24, 13, 32, 70, 26, 5, -21, -9, -6, -15, 2, -2, 2, 4, 1, 1 },
- { 5, -4, -11, 4, -4, 22, 10, -2, 13, -11, -4, -21, -17, 0, -7, 4,
- 10, -34, 11, 52, 2, -46, -5, 0, 0, -1, 2, 4, -9, 1, 1, -7 },
- { 0, 1, 1, 0, -1, 0, 1, 0, 1, 1, 0, 1, 0, 0, -3, 1,
- -8, 9, -1, 64, -13, -61, -3, 3, -5, 10, 1, 3, -1, -1, -1, -1 },
- { 0, 1, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 1, 1, 2, 1,
- 10, -2, -31, 79, -10, 27, 0, -1, 3, 8, 1, 1, 0, -1, 0, -1 },
- { 3, 12, 10, 26, -19, 10, -9, 6, -4, -15, 10, 3, -16, 6, 11, -19,
- 3, 10, 18, 44, 5, -30, 5, -9, 21, 4, 20, 10, 14, -25, 8, -17 },
- { 0, 0, 0, 1, -1, 0, -1, 0, 1, 0, 1, 1, 0, 0, -6, -2,
- 8, -8, 13, 69, 26, -19, -25, -17, 16, 6, -12, 22, 2, -6, 9, 5 },
- { 0, -1, 0, 1, 0, -1, -1, 0, 0, 1, -2, 1, 0, 0, -4, -1,
- -34, -15, -33, 56, 9, -42, 9, 10, 6, 9, -8, -11, 0, -6, 15, 5 },
- { 10, 2, -14, -3, -15, -35, -1, 7, -18, 14, 8, -1, -15, -26, 6, -15,
- -18, 22, 9, 33, 0, -32, -9, 3, -11, 7, 4, -1, 5, 30, 9, 1 },
- { 4, 15, 0, 6, -5, -11, 9, 6, 6, 6, 14, 2, -1, 10, -24, -25,
- -2, -4, -1, 37, 2, -29, 14, -9, 22, 17, -2, 33, 10, -25, 11, -11 },
- { 0, 5, 2, 18, -12, 21, 22, 33, -7, 21, -9, -7, 7, -15, -7, 16,
- 7, 0, -14, 44, 10, -25, 5, -4, 15, -8, 10, -4, 5, 9, -1, 16 },
- { 3, 13, 12, 12, 8, 25, -23, 8, -22, -3, -18, -8, 15, 12, 9, 19,
- 0, 0, -9, 49, -27, -15, -9, -15, 12, -8, -16, -7, 13, 5, 13, 2 },
- { 12, -6, 7, -2, 20, -9, -14, 12, 13, -5, -17, 22, -8, -4, 2, 7,
- -13, -2, -15, 43, -5, -30, 27, 4, 10, -27, 5, 27, -10, -10, -18, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- -1, 10, -18, 70, -2, -52, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- -1, 10, -18, 70, -2, -52, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 15, -13, -20, 16, 2, 13, 5, -11, -8, -5, -3, 2, 24, -23, 30, -7,
- 11, 30, -15, 43, 5, -15, 15, -3, -14, 1, -23, 8, 3, 9, 4, -11 },
- { 0, -1, 0, 1, 0, -1, -1, 0, 0, 1, -2, 1, 0, 0, -4, -1,
- -34, -15, -33, 56, 9, -42, 9, 10, 6, 9, -8, -11, 0, -6, 15, 5 },
- { 10, 2, -14, -3, -15, -35, -1, 7, -18, 14, 8, -1, -15, -26, 6, -15,
- -18, 22, 9, 33, 0, -32, -9, 3, -11, 7, 4, -1, 5, 30, 9, 1 },
- { 4, 15, 0, 6, -5, -11, 9, 6, 6, 6, 14, 2, -1, 10, -24, -25,
- -2, -4, -1, 37, 2, -29, 14, -9, 22, 17, -2, 33, 10, -25, 11, -11 },
- { 0, 5, 2, 18, -12, 21, 22, 33, -7, 21, -9, -7, 7, -15, -7, 16,
- 7, 0, -14, 44, 10, -25, 5, -4, 15, -8, 10, -4, 5, 9, -1, 16 },
- { 3, 13, 12, 12, 8, 25, -23, 8, -22, -3, -18, -8, 15, 12, 9, 19,
- 0, 0, -9, 49, -27, -15, -9, -15, 12, -8, -16, -7, 13, 5, 13, 2 },
- { 12, -6, 7, -2, 20, -9, -14, 12, 13, -5, -17, 22, -8, -4, 2, 7,
- -13, -2, -15, 43, -5, -30, 27, 4, 10, -27, 5, 27, -10, -10, -18, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- -1, 10, -18, 70, -2, -52, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- -1, 10, -18, 70, -2, -52, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 15, -13, -20, 16, 2, 13, 5, -11, -8, -5, -3, 2, 24, -23, 30, -7,
- 11, 30, -15, 43, 5, -15, 15, -3, -14, 1, -23, 8, 3, 9, 4, -11 },
- { 16, -18, 7, -4, 31, -15, -9, -13, 20, -12, -6, 0, 12, -6, -2, 4,
- 3, -3, -1, 0, 1, 3, 3, -2, 1, 6, 4, 0, -3, 2, -5, 1 },
- { 38, -5, -13, -4, 8, -15, 11, 1, 2, -4, -1, 9, 13, 4, -12, -7,
- 0, -2, 7, 2, -6, -2, -3, -2, 3, -4, 6, 15, 1, 1, -11, -2 },
- { 47, -22, 9, -26, 3, -5, 2, -7, 4, -2, 2, -2, 3, 0, 3, -4,
- 3, -3, 2, -3, 7, -3, -1, 1, 1, -5, 5, 0, 2, -5, -3, -2 },
- { 14, -16, 2, -6, 7, -2, -7, -4, -4, -7, 14, -3, 7, -19, -14, -17,
- -29, 6, 26, 16, -5, 13, -4, -1, 21, 14, 1, 3, -6, 0, -7, -1 },
- { 29, -11, 5, -3, 4, 11, 4, -10, 1, -22, -3, -10, 5, 4, 2, 8,
- -2, -7, -12, -12, -8, -3, -18, -2, -9, -5, -1, -3, 2, -14, -14, 7 },
- { 28, -12, 5, 3, 9, -7, 0, -2, 2, 1, 4, 0, -7, -3, -2, 4,
- 4, 14, 8, -1, -4, 14, -7, 17, -2, -2, -9, 2, 19, -7, 9, -8 },
- { 31, -18, -22, 8, 15, -5, -10, -15, 1, 10, 6, 7, 6, -8, 2, -1,
- 12, -3, 3, -1, 1, 5, -6, -4, 0, 1, 7, -10, -2, 4, -3, -4 },
- { 53, -30, -4, 12, 2, 3, -3, -3, 0, 1, 6, 5, -5, -4, -7, 1,
- 0, 2, 1, 3, 1, 5, 0, 2, 2, -1, 0, 4, 2, 0, -2, 0 },
- { 27, -18, -3, -2, 4, -8, 3, -2, -11, 2, 10, -8, -8, -4, 0, -2,
- 8, 0, 9, 0, -16, 11, 1, -6, 13, -3, -10, -13, -15, 25, 1, 0 },
- { 35, -5, -1, -8, 23, 11, -14, -3, 2, -2, 8, -6, 17, -2, 7, 0,
- -2, 10, -17, 13, -2, -2, 11, 11, -14, 2, -2, -3, -8, -1, -12, -5 },
- { 29, -9, 7, 3, 2, -10, 0, 3, 9, 0, -3, 5, 1, -10, 10, -5,
- 3, 6, -20, -9, -6, -4, 1, 0, 12, 17, -8, 9, 3, -1, -9, 0 },
- { 15, -16, 18, -19, 16, -15, 17, -18, 13, -16, 17, -14, 15, -9, 13, -17,
- 9, -7, 4, -5, 3, -4, -3, 0, -6, 7, -9, 7, -2, 7, -9, 9 },
- { 21, -10, 7, -2, 12, -7, 13, -17, 11, -2, 20, 3, 5, -11, -6, -6,
- -15, 0, -9, 5, -11, 7, -1, 7, 8, -10, -9, 3, -5, 9, -8, -2 },
- { 23, -22, 15, -5, 16, -4, -3, -12, 9, 3, -1, -2, -8, 2, -2, -16,
- 3, 4, -2, -6, -7, 12, -8, 2, -14, 2, -7, 11, -2, 6, -4, -1 },
- { 34, -17, -4, 8, 4, -6, 1, 8, 4, 16, 3, 6, 12, -1, -1, -15,
- 6, 4, -7, -6, 6, 0, 2, 1, -2, 2, 3, 3, -3, -2, 8, -6 },
- { 18, -18, 2, -2, 10, 1, 18, -23, -3, -10, 0, 4, 20, -19, -3, -4,
- 2, 8, 6, 1, -3, 1, 1, 3, 5, -1, -11, 3, -7, 5, -1, 1 },
- { 15, -14, 2, 3, 10, -8, 12, -13, 13, -15, 6, -8, -4, -10, 14, -9,
- 24, 2, -7, -18, 13, -11, 8, 14, -6, -2, 3, -1, -4, 7, -7, -4 },
- { 20, -12, 13, 5, -1, -10, 15, -6, 8, -1, -3, -10, 17, 0, -6, -19,
- 2, -1, 8, -3, -16, 0, -3, 2, -2, 0, 8, -9, 0, 1, -10, -9 },
- { 32, 0, -9, -5, -1, 5, 13, -11, 8, 3, 11, -11, 0, -8, -2, -14,
- 7, 10, 6, -5, 1, 10, 2, 12, -10, 4, 4, 6, 4, 0, -7, -10 },
- { 16, -14, 10, -7, 11, -11, 11, -11, 18, -13, 8, -15, 16, -11, 13, -9,
- 8, -7, 12, -11, 7, -6, 3, -5, 9, -5, 4, -1, 7, -4, 8, -3 },
- { 24, -27, -1, 5, 8, -5, 12, 7, 4, -3, 3, -1, -9, -11, -13, -5,
- 10, 0, -13, 7, 1, -5, 4, -9, 7, -3, 13, 2, -5, -3, -17, -2 },
- { 23, -19, 15, 1, -10, -18, -12, -6, 8, -3, 12, 0, -12, -10, -4, -4,
- 8, -10, 4, 2, -2, -8, 13, -3, -2, -6, 2, -3, 5, -2, 2, 11 },
- { 25, -12, 4, 2, 24, -3, 3, -6, 14, 11, 0, -21, -3, -3, 1, -8,
- 7, 0, 0, 3, 3, -6, -7, 6, 2, 1, -4, 5, -1, 10, -2, 9 },
- { 24, -8, -6, 7, 16, -12, 13, -1, 11, -21, 2, -6, 3, -12, 0, 9,
- 4, 11, -7, 1, 4, 1, -8, 3, 3, -6, 3, 3, 0, -8, 8, 4 },
- { 25, -21, 13, 14, 13, -18, 4, -3, 0, -5, -4, 5, -3, 0, 4, 12,
- 7, 3, 5, -5, 2, -2, 3, -10, 2, -9, -15, 6, 1, 7, -5, 1 },
- { 23, -16, -2, 10, 4, -1, 3, 1, 32, 3, -5, -2, 9, 10, -1, -4,
- -6, 2, 9, -1, 14, 12, -6, -1, -17, -2, -4, -9, -7, -6, -8, 3 },
- { 50, -8, 5, 2, -11, 10, 0, 0, 6, -3, 7, 0, -3, -2, -3, 0,
- 6, -4, 2, -5, -9, 0, 3, 10, 1, -7, -2, -3, -6, -9, 1, -2 },
- { 28, -17, 0, -2, 2, -9, 1, 5, -4, -1, 0, 0, 19, -27, 5, -12,
- 7, -14, -3, -6, 10, -2, -4, -2, 4, -5, -2, -7, 1, 7, -9, 4 },
- { 22, -19, -6, -6, 3, -22, 3, 5, 20, -8, -14, -5, 1, 1, 20, 2,
- 16, 6, 3, 14, 4, 3, 5, 1, 5, -7, -10, -6, 3, -6, 1, -14 },
- { 29, -14, -8, 13, 8, -10, -6, 4, 4, -6, 5, -7, 1, 12, 14, 11,
- -7, 1, 2, -9, -11, -9, 0, 4, -1, 7, 10, 4, 4, 20, -1, -11 },
- { 18, -9, 4, 1, 7, -29, 12, 1, -1, -9, -2, -1, -2, 2, 9, -8,
- -13, 5, 4, -13, -4, 2, -5, -7, -6, 14, -10, -34, -3, 1, -3, -13 },
- { 38, -9, 24, 8, 11, 4, -6, -11, -2, -12, 1, 1, -11, -8, -5, -2,
- -15, -8, 8, 0, 1, -7, 5, 4, -1, 8, -2, 11, -3, -1, -5, -5 },
- { -20, 11, -4, 24, -11, 1, 15, 4, 0, -28, -10, -1, 10, 10, -6, 5,
- -6, 2, 7, -2, 1, -2, -6, -3, -7, 1, 2, 12, -1, 7, 0, -2 },
- { -9, 10, -23, 27, -4, -17, 20, -6, 14, -17, 5, -1, 5, -9, -7, 5,
- -6, 4, -2, 9, 0, 8, 0, 1, -3, -3, -5, -8, 5, -2, -2, 12 },
- { -10, 19, 4, 9, 1, -16, 17, -2, 9, -29, -16, -11, -4, 7, -5, 4,
- -1, -3, 3, 2, 3, -4, 5, -12, -2, 6, 5, -4, 4, 1, 4, 10 },
- { -20, 10, -24, 14, -5, 11, 9, 0, 16, -20, 10, -5, -6, -6, -1, 2,
- -4, 5, -16, 8, -2, 5, 5, -11, 9, -11, 4, -11, -1, -1, 4, 3 },
- { -9, 11, 3, 19, 24, 4, 5, -14, 30, -17, -4, -2, -17, 7, 2, 3,
- 1, 3, -7, -4, 2, -3, 1, 4, -1, -1, 3, -12, -2, 3, -3, 10 },
- { -19, 18, 11, 19, 19, 19, 10, 4, 13, 6, 5, 4, 8, 3, -2, 12,
- -6, -2, 7, -6, 15, 12, 16, 16, 18, -3, -4, -20, 0, 10, -9, -3 },
- { -21, 9, 20, 12, 0, -3, 5, -9, 15, -13, 5, -5, -6, 24, 2, 9,
- -5, 2, -7, 2, 5, 7, -5, 2, 15, 3, 1, -1, -4, -2, 7, 0 },
- { -18, 16, 13, 15, 2, -10, 14, -11, 4, -11, 5, 12, 12, 20, 8, 30,
- 2, 11, -9, 7, 0, -3, -16, -5, -6, 5, -4, -21, 0, 5, 6, 1 },
- { -26, 8, -13, 9, 6, -10, 2, -11, 7, -4, 6, -19, -11, -6, -12, 16,
- 0, 5, -7, 8, 5, 6, 17, -9, 10, -10, 5, -3, -11, 2, 4, 10 },
- { -11, 17, -3, 22, -5, 18, 3, 1, 4, -5, 14, -27, 5, -7, -4, -5,
- -10, 11, 1, 15, 1, 1, -6, -5, 10, -22, -7, -7, -15, 13, -4, 5 },
- { -17, 14, -7, 13, 3, 0, 13, -6, 9, -14, -22, -1, 1, 19, 14, -3,
- 4, -13, -13, 2, -4, 8, -2, -2, 13, -12, 13, -12, -7, -5, -3, 6 },
- { -17, 17, -1, 33, 6, 3, 9, -16, 3, -14, -8, 6, -17, 8, 3, 13,
- 8, -6, 3, 1, -2, 0, -2, 8, 4, 9, 13, -10, 4, -17, 0, -6 },
- { -20, 7, 7, 21, 1, -3, 7, -3, -2, -12, 9, -7, 2, -3, 14, 1,
- -1, -7, 12, -10, 5, -20, 11, -2, 0, -24, -17, 6, 6, -4, 3, -1 },
- { -8, 10, 6, 7, -1, -6, 28, -6, 10, -33, 1, -20, 0, -12, 10, 1,
- -6, 8, -3, -1, -10, 8, 5, 0, 10, -2, 8, 16, -5, -3, -7, 4 },
- { -17, 13, 3, 15, 1, -5, 27, -5, 6, -6, 12, 2, -4, 8, -1, -3,
- -2, 12, -15, 3, 4, 1, 2, -9, 0, -16, -21, 2, -4, 16, -7, 4 },
- { -15, 20, 8, 17, 5, -14, 15, -11, 21, -11, 13, -13, 2, -15, -13, 1,
- -5, 5, 2, 10, -9, 4, -1, 3, 2, -4, 13, -5, 1, -4, 5, -3 },
- { -21, 8, 2, 16, -1, 2, 15, -16, 13, -12, -12, -7, -8, 2, -7, 11,
- -8, 5, 2, -7, 16, -4, 1, -7, 3, -15, 6, -5, -8, 2, -8, 5 },
- { -15, 17, -6, 3, -3, 3, 9, -7, 14, -23, 11, 1, -1, 4, 7, 6,
- -1, -14, 7, 6, -8, 5, 1, -15, 10, -9, 2, -3, -1, 4, -10, -4 },
- { -10, 18, 3, 11, 1, 4, 14, -14, 7, -4, 15, -10, 10, -11, 10, -4,
- 5, -14, 10, 4, 15, -12, 15, -13, 20, -15, 14, -15, 8, -11, 4, -6 },
- { -7, 23, 2, 20, 7, 8, 19, -5, 9, -16, -8, -17, -5, 1, 5, -6,
- -8, 1, -6, -4, 10, 6, 6, 2, -11, -4, 0, 2, 4, 7, 9, -4 },
- { -15, 20, -5, 22, 11, -8, 9, -5, 10, -13, -8, 8, 2, -2, -3, 7,
- 6, 10, 1, 2, -5, -9, 1, 10, 16, -22, -7, 0, 7, 7, 6, 1 },
- { -26, 19, -5, 3, 5, 25, 18, -5, 9, -14, -8, -6, -2, -6, 2, 3,
- -8, -2, -7, 7, -3, 7, 3, 4, -8, 0, 1, -8, -4, -2, -2, 1 },
- { -20, 14, -10, 6, -3, 7, 8, -32, -2, -7, -2, -10, 16, -12, -9, 15,
- -2, -5, -6, 2, -7, 5, 9, 1, 6, -7, -1, 0, -2, -4, -7, 3 },
- { -14, 16, 4, 11, -8, 1, 23, -4, 17, -13, -10, 1, 12, 9, 12, -4,
- 7, -1, -1, 5, -8, -6, 3, 3, -6, -3, -18, 0, 18, 20, 4, -2 },
- { -33, 19, -10, 30, 15, 2, -3, -1, -4, -14, 7, -7, -1, 7, -8, 9,
- -1, -3, -5, 2, 2, 4, 0, 5, 0, 0, 2, 3, 3, -3, -3, 4 },
- { -6, 20, 0, 5, 17, -10, 18, -17, 9, -16, 4, -13, -6, 2, -14, 14,
- -28, 9, -12, 25, -4, 7, 7, -8, 6, -6, -2, -10, 2, -11, -1, 2 },
- { -12, 14, 12, 52, -3, 5, -5, 4, 8, -13, 2, -5, -4, 2, -2, -1,
- -2, 3, 3, 5, 2, 3, 0, 1, -5, 2, -4, -3, 1, -5, -2, 0 },
- { -13, 6, 9, 24, 0, 8, 14, -15, 18, -9, -11, -8, 3, 15, -2, -4,
- -9, 4, -3, 12, 14, -13, 11, -4, 2, -4, 0, -6, -6, -6, -14, -1 },
- { -10, 28, 3, 12, 9, 3, 11, -28, 6, -11, -7, 4, 0, 7, 8, -9,
- 0, -6, 0, -16, 4, 7, 4, 4, 7, 3, 4, -7, 0, -3, -10, 6 },
- { -11, 14, -2, 19, -1, -1, 7, 9, -2, -27, 10, -14, 15, -4, 12, -4,
- 2, -2, -6, 12, -6, 0, -5, -4, -5, 1, 3, -11, 5, -9, 3, -8 },
- { -18, 7, 13, 16, -4, 3, 9, -10, 10, -10, -3, -22, -4, -12, 3, -16,
- 0, -3, -16, 8, -11, 1, 10, -7, 15, 3, 0, -1, -13, 8, 1, 6 },
- { -20, 10, -10, 10, 8, -1, 6, 0, 16, -12, 9, -10, -1, -5, -4, -13,
- 13, 16, -8, 12, -2, 14, 18, 13, 0, -16, 2, -5, -5, -5, -4, 3 },
- { -14, 5, -7, -17, 5, -13, 23, 20, -4, -1, 1, -6, 13, 5, -1, 4,
- -14, -2, -7, 8, 3, 2, 2, -7, 2, -1, 4, 7, 3, -9, -1, -5 },
- { -19, 3, -24, -28, -9, -7, 19, 3, 2, 19, 7, 5, -13, 8, -15, -17,
- 3, -11, 4, 13, 3, 2, -1, -3, -4, -4, 2, 0, -5, -6, 6, 2 },
- { -17, 18, -30, -20, -2, -3, 1, 15, -1, -11, 6, -4, 11, 11, -4, -5,
- -10, 0, 0, 1, 3, -7, 8, 2, 5, 1, 5, -5, 1, 6, 4, 1 },
- { -6, 1, -30, -25, -1, -8, -2, -9, -17, 16, 3, -1, -2, -9, -6, -7,
- -3, 12, 6, -4, -10, 0, 10, -8, -6, -5, -3, -11, -4, 0, -1, -3 },
- { -1, -1, -34, -28, 1, -10, 2, 9, 4, 16, 2, 6, 14, 17, 0, 7,
- -4, 4, 4, 4, 0, 1, -1, -5, 8, 1, -4, 1, -9, -2, 5, 6 },
- { -11, 14, 1, -31, -7, -24, 9, 7, 6, 5, -13, 1, -1, 3, 4, -1,
- -2, -8, -6, 3, 5, -4, -6, 7, -2, 5, 3, 3, 0, 0, -5, 2 },
- { -25, 8, -11, -18, 1, -4, 8, -3, -4, 15, 6, -5, 8, 2, 3, 4,
- -4, 5, 6, 8, -7, 6, 1, -11, -15, -13, 9, -4, -14, 10, 12, 7 },
- { -20, 11, -15, -25, 3, 4, 18, 13, -4, -5, -9, -1, -5, -2, -2, -7,
- 16, 5, -4, -5, -7, -2, -3, -9, 11, -2, 0, -7, -17, -6, -11, 6 },
- { -11, 18, -5, -20, -15, -3, 9, 11, -20, 12, 5, 5, 11, -3, 7, 1,
- 10, -6, -3, -3, 3, 3, 14, -7, 10, -17, 9, -11, -2, -6, 7, -12 },
- { -20, 8, -14, -17, -9, -13, -3, 0, -27, -14, -3, -14, 4, 3, 6, -6,
- 7, 4, 23, 9, 11, 9, 3, -4, 9, 2, 4, -1, -6, 1, -8, -11 },
- { -9, 14, 2, -37, -7, 13, 6, -11, -6, 9, 18, -11, -6, 2, 12, 4,
- -1, 3, 1, -2, -2, 1, -9, -4, -2, -3, 3, 5, -6, 0, -2, -8 },
- { -29, 8, -1, -13, -2, 8, 23, 2, -10, 7, 13, -6, -5, 11, 13, 0,
- -10, -13, 11, -12, -10, 6, 4, 6, 4, 3, 6, -5, -9, -2, -1, 3 },
- { -18, 6, -10, -55, -4, -11, -2, 0, 1, -3, -9, -6, 3, -2, -1, 6,
- 3, -1, 3, 1, -4, -7, -2, 6, 3, -2, -1, -3, -2, 0, 4, 1 },
- { -14, 5, 3, -21, -8, -16, -4, -2, -11, 27, 15, -20, 3, 0, 1, 1,
- 2, -5, -5, 4, 1, -9, 5, -3, 3, 0, -4, -2, -11, -4, -3, 7 },
- { -17, -1, -9, -17, -8, -18, 12, -13, -9, 13, -3, 3, 3, -3, 1, -2,
- 0, 16, -9, 6, 12, 9, 5, 11, 2, -15, 1, -4, -16, 7, -4, -12 },
- { -18, 8, -6, -11, -8, -7, 13, 7, 1, 6, 8, -1, 21, -4, 14, 15,
- 18, -4, -3, 15, 0, 9, 4, 7, 3, -1, 9, -2, 0, 7, -8, 2 },
- { -10, 7, -18, -29, 3, 12, 12, 9, 11, 4, -1, -15, 1, -1, 8, -2,
- -2, 10, -15, -1, 0, 6, 12, -6, -1, 10, -6, -3, -11, -4, 9, -6 },
- { -14, 14, -9, -21, -12, -2, -1, -7, -5, -10, 5, -8, 0, 6, 9, -11,
- 11, -3, -5, 3, 8, 15, -2, -4, -22, 4, -6, 12, 2, 13, 6, -7 },
- { -12, 11, -5, -29, -25, 4, 12, -13, -11, -7, 4, 2, 2, -5, 5, 8,
- 7, -5, -5, 6, 3, -10, 1, -6, 6, -6, -5, -1, -2, -4, 7, 6 },
- { -15, 11, -5, -16, 0, -13, 26, -23, -6, -3, 5, -2, -2, 21, -6, -3,
- -5, -1, 6, -1, 0, -13, 2, -3, -9, -1, -4, -3, 5, -4, 12, -16 },
- { -9, 9, -1, -17, -3, -6, 12, 6, -18, -2, 11, -14, -6, 3, 14, -12,
- -11, -5, 14, 2, 5, -8, -4, -11, 2, -5, 16, 6, -7, -4, 8, 13 },
- { -13, 5, 3, -28, -14, 0, 6, 23, 5, 4, -1, -17, 1, -3, 0, 0,
- 5, 4, 0, -18, 14, 10, 4, 2, 5, -2, 4, -3, 2, 0, 2, 0 },
- { -15, 4, -13, -16, -3, -12, -2, 2, 7, 10, 9, 3, 11, 4, 23, 14,
- 9, 16, 4, 1, -12, -3, 4, -7, -15, -7, -10, -14, -6, -8, -1, -6 },
- { -7, 10, -5, -10, -3, -13, 16, -1, -12, 7, -3, -12, 2, 13, 13, 2,
- 17, 15, -13, 1, -5, -2, 3, -1, 1, -3, 6, -3, -12, -16, 7, -7 },
- { -11, -5, -12, -30, -6, -22, 1, 4, -6, -3, 12, 6, 7, 0, 16, 6,
- -2, 0, -22, -2, -9, 2, -13, 8, 6, -8, 4, -7, -1, -6, 4, 6 },
- { -14, 5, 1, -27, -4, 2, 1, 14, -11, -7, -8, -4, 1, 8, 0, -6,
- -13, 11, -12, -7, -5, 1, 10, 7, 3, -2, 0, 6, -8, 2, 10, -1 },
- { -10, 10, -25, -13, -20, -4, 19, 3, 13, 5, 5, 7, -8, 2, 4, 2,
- 3, -1, -1, -9, 14, 10, 9, 14, 3, 3, -6, 0, -5, 4, 1, -1 },
- { -9, 15, -18, -17, 4, -11, 6, 7, -12, 8, -1, -11, 2, 3, 7, 16,
- -3, -9, 7, -12, 23, 0, 6, 7, -14, -9, 8, 1, -2, 6, -2, -1 },
- { -6, 9, -16, -26, -14, -11, 9, -6, 5, -2, 13, 17, 21, 7, 18, -19,
- 6, -23, -2, -15, -2, 2, -10, -8, 2, 1, -2, 4, -3, -4, -5, -4 },
- { 0, 6, -5, -28, -17, -32, 2, -10, 11, 3, -5, 9, 10, 3, 11, 11,
- -3, 12, -2, 2, 4, -6, 9, -4, -4, -4, -4, -9, 2, 0, 2, 4 },
- { 0, -8, -18, -34, -9, -7, -4, -11, 10, 15, 11, -1, -8, 15, 6, -13,
- 9, 2, -4, -12, 0, -1, 19, 12, 6, 5, 0, -3, -10, -12, 3, -5 },
- { -10, 6, -9, -17, -12, -11, 9, -6, 11, 11, 18, -7, 0, 16, 4, 2,
- -6, 3, -12, -1, 0, 1, -5, -22, -2, -12, 0, 6, 17, 5, 5, 6 },
- { 12, -5, 7, 1, -5, -2, -1, 2, 2, -4, -3, -3, -3, -2, -29, 11,
- 5, -13, -73, 24, 12, 4, -14, -10, 5, 1, 0, -11, -7, -7, 7, 3 },
- { 10, -3, -1, -3, 4, -11, -5, -2, -8, 7, 9, 2, -8, -6, 6, 7,
- 21, 17, -54, 47, -14, -10, 14, 19, 13, 21, -4, 3, 1, 2, -4, 2 },
- { -12, 4, -16, -12, 5, -9, -4, 19, -7, -22, -22, -17, 3, 0, -6, 8,
- 23, -4, -55, -28, 2, -26, 2, 1, 4, 0, -13, 6, 0, 10, -7, -11 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1,
- 35, -1, -67, -35, -24, -24, -6, 2, 2, -2, 1, 3, 2, 0, -1, 1 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,
- 41, -4, -73, -15, 18, 4, 17, 8, -1, -16, -1, -2, 1, 0, 0, 0 },
- { -4, -4, 4, 6, -1, 2, -16, -10, -15, -10, 21, -2, -6, -2, 14, -7,
- 10, -5, -55, 34, -12, 11, -13, -2, 2, 28, -26, 0, 7, 4, 21, -7 },
- { 2, 1, 15, -22, 10, -3, 14, -6, -2, 15, -2, -7, 20, 6, -15, -7,
- 23, 10, -60, 8, -4, 29, -22, 2, -13, 9, -10, 12, -1, -3, 4, 7 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -2, 11, -5,
- -21, -11, -60, -27, -17, -39, 6, 36, 0, -8, 2, 2, 0, 0, -2, 3 },
- { 2, -5, 9, -17, -1, 2, -3, -6, 8, 12, 7, -6, -33, -11, -14, -40,
- 10, 36, -46, 0, -19, 5, 0, -10, 3, 12, -6, -8, 6, -12, -7, 1 },
- { 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, -2, 0,
- 4, -2, -87, -3, -2, 2, -2, 20, 2, 6, -1, 6, 0, 0, 2, -1 },
- { 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1,
- 1, 7, -76, 41, -7, -24, 0, -6, 3, 6, 0, -2, -1, 1, 0, 0 },
- { 0, -3, 4, 2, 3, 2, 2, 0, 3, -1, 4, 0, -1, 4, -2, -4,
- -32, -11, -64, -29, -9, -43, 2, -11, -1, -7, 0, -4, -2, -2, -2, 2 },
- { 10, -20, 3, -3, 13, 13, 0, -4, 2, 7, -8, 7, -2, 2, -20, -20,
- -19, 3, -47, -18, -16, -6, -15, -42, -17, 14, -6, 8, 12, -10, 11, -12 },
- { -3, -2, -2, -1, -1, 4, -3, -1, -6, -2, 3, 2, -3, 6, -1, -9,
- 10, 13, -68, -9, 26, 3, 5, 3, -21, 10, -15, 21, -22, 19, 11, -14 },
- { 1, 5, 18, -19, -29, -13, -2, 18, -10, 20, 2, 10, -10, 11, 1, 8,
- -16, -17, -41, 10, -14, -25, 0, -14, -19, 17, 7, -12, 14, -11, 14, 5 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1, -43, 5,
- 6, -12, -48, 19, 8, -38, -8, -3, 22, -21, -10, 15, 20, -9, -5, 8 },
- { 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 6, -3,
- 22, -14, -71, -24, -2, -33, 23, 7, -8, 7, -3, 2, -4, 1, -8, -2 },
- { 1, 0, -1, 2, 0, -2, 0, 0, -1, 0, 4, 0, 26, -1, 10, -11,
- -17, -32, -58, 14, -14, -11, -2, 15, 2, -8, 12, 10, -9, 13, -33, -14 },
- { 15, -17, -19, 7, -8, -15, -32, -22, 7, 12, 18, 0, 0, -15, -4, 16,
- 37, -2, -46, 11, 2, -8, -10, -8, 14, 9, -4, 5, 7, -17, 4, 3 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0,
- -5, 3, -85, 23, -9, -17, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0,
- -5, 3, -85, 23, -9, -17, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1,
- 1, 7, -76, 41, -7, -24, 0, -6, 3, 6, 0, -2, -1, 1, 0, 0 },
- { 0, -3, 4, 2, 3, 2, 2, 0, 3, -1, 4, 0, -1, 4, -2, -4,
- -32, -11, -64, -29, -9, -43, 2, -11, -1, -7, 0, -4, -2, -2, -2, 2 },
- { 10, -20, 3, -3, 13, 13, 0, -4, 2, 7, -8, 7, -2, 2, -20, -20,
- -19, 3, -47, -18, -16, -6, -15, -42, -17, 14, -6, 8, 12, -10, 11, -12 },
- { -3, -2, -2, -1, -1, 4, -3, -1, -6, -2, 3, 2, -3, 6, -1, -9,
- 10, 13, -68, -9, 26, 3, 5, 3, -21, 10, -15, 21, -22, 19, 11, -14 },
- { 1, 5, 18, -19, -29, -13, -2, 18, -10, 20, 2, 10, -10, 11, 1, 8,
- -16, -17, -41, 10, -14, -25, 0, -14, -19, 17, 7, -12, 14, -11, 14, 5 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1, -43, 5,
- 6, -12, -48, 19, 8, -38, -8, -3, 22, -21, -10, 15, 20, -9, -5, 8 },
- { 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 6, -3,
- 22, -14, -71, -24, -2, -33, 23, 7, -8, 7, -3, 2, -4, 1, -8, -2 },
- { 1, 0, -1, 2, 0, -2, 0, 0, -1, 0, 4, 0, 26, -1, 10, -11,
- -17, -32, -58, 14, -14, -11, -2, 15, 2, -8, 12, 10, -9, 13, -33, -14 },
- { 15, -17, -19, 7, -8, -15, -32, -22, 7, 12, 18, 0, 0, -15, -4, 16,
- 37, -2, -46, 11, 2, -8, -10, -8, 14, 9, -4, 5, 7, -17, 4, 3 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0,
- -5, 3, -85, 23, -9, -17, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0,
- -5, 3, -85, 23, -9, -17, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 16, 65, -2, -2, 4, 3, 0, -7, 3, 1, 3, 1, 0, 5, 1, -5,
- 0, 2, -1, 3, 0, 0, -1, -2, 6, 0, -2, 0, 0, -1, 1, 1 },
- { 5, 37, -4, 8, -4, -1, 9, 17, 6, -7, 5, -1, 11, 6, -4, 7,
- -2, 4, 1, -3, 11, 3, 3, -9, 6, 0, -2, -4, -5, 4, -12, -11 },
- { 15, 24, -14, 2, 6, 17, 26, 5, 8, 11, -9, -7, -6, -8, 3, -5,
- 9, 10, -3, 10, 0, 1, 4, -9, 4, 9, 3, 0, 4, 0, -5, 3 },
- { 9, 36, -9, -8, 7, 7, 4, 3, -1, -16, -2, 7, -5, -6, 6, 12,
- -11, -12, 9, -1, -3, -9, 12, 6, -6, 2, 2, 5, 0, 5, 6, -6 },
- { 25, 39, -5, 24, 3, 10, 3, -6, 13, -8, 3, -7, 2, -10, -5, 2,
- -2, 3, 5, -2, 1, 5, -2, 3, -4, 1, -5, -4, 0, 1, -2, 0 },
- { 16, 27, -1, 0, -14, 6, 4, -5, 7, -2, -6, 0, -3, -5, 2, -1,
- -1, -19, 5, -8, 0, 11, 12, 5, 0, 3, 10, 6, -14, 14, -13, -15 },
- { 12, 23, -14, 2, 1, 4, -3, 16, 7, -8, 2, -8, 8, 6, -8, -7,
- -3, 0, 2, 8, -13, 7, 13, -6, -4, 6, -13, -16, 14, 11, -7, 5 },
- { 16, 28, -7, -1, 6, -3, 9, 0, -7, 3, 0, 3, -12, 20, 8, 9,
- 8, 23, 8, -13, -2, 4, 9, 3, -5, 13, 5, -2, 12, 14, 5, -1 },
- { 19, 37, 19, 5, 7, 5, 10, 5, 19, 10, 14, 0, 2, 5, 1, -4,
- -4, 2, 2, -5, -2, -1, 2, -6, -4, -4, -5, -3, 2, -2, -2, -2 },
- { 24, 21, 1, -11, -10, 17, -14, 14, 6, -1, -6, -1, 0, -13, -1, -12,
- -2, -5, 6, -4, -12, 14, 5, -2, -8, -8, 15, -7, -30, -12, 4, 0 },
- { 11, 26, -3, 3, 5, -1, -2, 3, -2, 10, 15, -4, 10, -28, 10, -17,
- -8, 1, 2, -7, -1, -6, -15, -1, 4, 5, -7, 9, 0, -5, -4, 4 },
- { 18, 32, 1, 2, -7, 4, 15, 2, -9, -2, 12, -11, 7, 11, 13, 2,
- 0, 5, 9, -10, 16, 3, -3, 5, -9, -23, 2, -2, -1, 5, 2, 11 },
- { 35, 24, -20, 2, 4, -1, 5, 14, -10, -9, 8, -7, 0, 5, -7, -7,
- 11, 1, 5, 3, 2, 0, -2, 3, 0, 1, 4, 0, -2, -8, 0, -4 },
- { 9, 35, -1, 2, -1, -19, -3, 12, -1, 8, 8, -13, -1, -2, 2, 5,
- -8, -1, 13, -2, 11, 1, 0, -10, 0, -3, -7, 2, 1, -12, 3, 12 },
- { 20, 27, -12, -12, 7, 4, -1, -13, -1, -9, 2, 13, -11, 5, 7, -9,
- 9, 1, 1, 8, -9, 0, -6, 7, 4, 2, -2, 7, 3, -2, 1, -9 },
- { 8, 37, -20, -5, 0, -21, 10, -8, 3, 19, -9, 7, -3, -8, 10, -2,
- 0, 5, 6, -4, -2, -1, 0, -7, 6, 1, 0, 4, -5, 6, -8, 2 },
- { 8, 27, 1, -3, -5, 1, 6, 0, 15, 2, 17, -1, 3, -17, 10, 5,
- 5, -6, -6, 6, -10, 18, -5, 0, 0, 13, 7, 10, -5, -6, -2, -4 },
- { 14, 29, -20, -4, -3, 1, -5, -1, 2, 12, -10, -3, 4, -18, 4, 14,
- -4, -1, -9, 15, -2, 2, -5, -3, 2, 9, -2, -14, -3, 4, -4, -7 },
- { 23, 23, -23, -11, 27, 4, 4, -1, 7, 0, -5, 9, 2, -11, 3, 7,
- -2, -5, 2, -7, -7, 13, -3, -6, 2, 3, 3, -4, -1, -8, 5, -2 },
- { 16, 26, -6, 8, -9, -1, -2, -1, -8, 4, -2, 0, -12, 9, -1, 0,
- -17, -9, 30, -5, -15, -16, -13, 0, 10, -11, -7, -3, -1, 0, -11, -2 },
- { 12, 32, -4, -5, 10, 19, -10, 4, -12, 5, -6, 9, -12, -6, -6, -8,
- 4, 1, 3, 0, 8, 0, -3, -4, -7, -4, 10, 8, 6, 5, -1, 4 },
- { 46, 42, -3, -14, -2, -6, 6, -2, -5, -1, -3, -3, 1, -1, 3, 1,
- 1, 4, -1, 2, 3, 1, -2, 6, 0, -1, -2, 4, -2, -1, 2, 2 },
- { 9, 33, -13, 4, -11, 3, -8, 22, 12, -2, 4, 0, -16, 5, 4, -1,
- 7, -6, -9, 1, 7, 5, 0, -5, 5, -1, 10, 3, -2, -1, 3, -2 },
- { 9, 30, 6, -3, 6, 1, -7, 5, 11, 14, 7, 1, 0, 2, 2, -1,
- 8, 7, -6, -13, -10, -2, 1, -6, 10, 7, 6, 5, -2, -5, -1, -16 },
- { 9, 28, -11, -10, 9, -10, 15, 8, 4, 9, -4, -7, 0, -5, 9, 8,
- -7, 2, -15, -23, 4, -4, 4, 16, -8, -3, 0, -8, 14, 5, -3, 15 },
- { 17, 26, -5, -5, -1, -8, 20, 18, -7, -2, 4, -7, -8, -5, -4, 16,
- 0, 0, -7, -2, -13, -5, -2, 3, 12, 1, 3, -5, 2, 2, 0, -1 },
- { 11, 37, 7, -23, 6, -1, 15, 13, 4, -9, 7, 5, 3, -3, -5, -8,
- -2, 3, -5, -1, -8, 7, 2, 13, 1, 3, 0, -3, -1, 2, 0, -2 },
- { 21, 33, 7, 20, 21, -10, 6, -5, -5, -6, -9, 2, 10, 0, 8, -4,
- 10, 2, -2, -2, 0, -10, -6, -2, 0, -5, 3, -11, 3, -9, -3, 1 },
- { 6, 30, -15, -8, 16, 1, 4, 6, 4, 5, 8, -3, 8, -9, -1, -6,
- 8, 2, -2, 4, -2, 5, 11, -21, 3, -10, 16, -11, 24, 10, 14, -6 },
- { 15, 36, -3, -9, -20, 12, 0, -7, -18, -4, -8, -9, 9, -7, -3, -1,
- 2, 7, -5, -8, 6, 2, 2, -1, 7, 1, 1, -3, 3, -4, -8, 1 },
- { 16, 34, 21, 3, -9, 10, 7, 9, -7, 1, -4, -9, -4, -5, -5, 3,
- 3, -19, 1, 5, 4, -2, -6, -5, -10, -11, -8, -2, 2, -5, -8, -7 },
- { 28, 29, -3, 18, -2, 0, -6, 12, -2, 10, -11, -4, -13, -12, -6, -4,
- 0, 4, -1, -8, 6, 4, 12, 11, 10, 10, -3, -6, 1, 2, 1, 7 },
- { 3, 8, 22, -8, 3, 36, -8, -1, 9, 6, -13, -14, 8, -1, 1, 2,
- -2, -8, 0, 3, 1, 2, -1, 5, -1, -8, 0, -2, 2, 2, -1, 1 },
- { 0, 6, 0, 0, 4, 13, -7, -16, -6, 15, -14, -21, -9, -10, -10, -6,
- -21, 5, 4, 2, 12, 4, 12, 11, -4, -6, -6, -10, -7, -18, 1, 4 },
- { -1, 3, 10, 1, -1, 15, 4, -7, -16, 3, 0, -22, 10, 2, -3, -2,
- 13, 5, -8, 16, -5, 4, 0, -11, -10, -22, 0, -4, -17, 5, 2, 1 },
- { 12, 8, -4, -9, 14, 40, -21, 0, 1, -15, -10, -12, 12, 6, -10, 2,
- 8, 6, -12, -10, -11, 1, 0, -11, 2, 1, 13, 0, 6, 3, 8, 4 },
- { -10, 3, 5, -4, -3, 3, 0, -9, 2, 8, -22, -23, 17, 8, -17, -3,
- 14, -8, -4, 1, -8, 3, 0, 5, -1, -3, -2, -4, 1, -10, 0, -2 },
- { 0, -1, 5, -7, 4, 12, -2, 0, -7, 2, -16, -15, 12, 21, -7, -4,
- 7, -7, -11, -15, -7, -9, -5, -8, 0, -6, 8, -3, -8, 22, -7, -9 },
- { 7, 19, 4, -9, 24, 22, 2, -6, 8, 13, -14, -20, -4, 11, 8, -4,
- -1, 2, 0, -7, 5, -17, -3, 3, -6, 5, 3, 4, -5, -7, -3, 14 },
- { -2, 6, 2, 8, -2, 5, -4, -2, -10, 3, -45, -30, -3, -3, -12, -4,
- -3, -3, -1, 9, -6, -6, 5, -4, 0, 5, -1, -2, -1, 0, -6, -1 },
- { -3, 14, -16, -10, 10, 0, -2, -40, -9, 12, 2, -19, 15, -4, 4, 3,
- 3, -4, 7, 1, -4, -5, 0, 4, -1, 0, -9, -2, -4, -1, -2, 0 },
- { 7, 16, 2, -7, 8, 2, 0, 1, 5, 21, -10, -26, 7, 2, -9, -7,
- -3, -16, 8, 5, 5, -6, 10, 4, -14, -6, 5, 3, -2, -2, -4, 1 },
- { -9, 14, -1, 3, 3, 11, 1, -5, -3, 13, -16, -18, 20, 6, -5, 0,
- -3, 2, 8, 4, -19, -9, 12, 0, -8, 2, 2, 1, 6, 13, -7, -11 },
- { 2, 5, 16, -4, 19, 15, 4, 0, -11, 7, -10, -10, -16, 18, -11, -12,
- -9, -4, 7, -4, -4, -17, 1, 1, -8, -3, -3, 5, -2, -6, -11, -5 },
- { 2, 12, 0, -9, -10, 14, 6, 2, -3, 2, -12, -28, 12, 1, -1, 2,
- 0, -3, -4, 7, 16, 5, -7, 8, -4, -3, -1, 3, -12, 4, -17, -5 },
- { -4, 7, 11, 6, 1, 14, -4, -6, 5, 5, -6, -24, 23, -9, -15, 13,
- -7, -9, -15, 10, -1, 8, -5, 1, 12, 6, 2, 0, 4, -2, 9, -10 },
- { 1, 5, 11, 3, 6, 12, -3, 8, -21, 5, -7, -20, 12, -2, -9, -3,
- 17, -7, -8, -9, -14, 3, -13, 18, -8, 9, 2, -8, 4, -8, -5, -2 },
- { -3, -3, -1, 5, -2, 15, 3, 2, 1, -8, 1, -39, -6, 13, -13, 0,
- -2, -5, -6, -3, 0, -5, -2, 15, -9, 5, -3, -6, -2, 7, 0, -13 },
- { 2, 8, 5, -12, -13, 22, 8, -16, 11, 5, -2, -32, -2, -4, 11, 5,
- 5, -6, 1, 3, 1, 5, 3, 6, -5, 4, 4, -8, 8, 4, 1, 3 },
- { 13, 9, 5, -4, 9, 18, -11, 2, -1, 15, -10, -19, -2, 14, 0, -10,
- 1, 1, -18, 3, 2, -6, -8, 20, 7, -8, 16, 9, 9, -13, -3, -2 },
- { -13, 11, 11, -9, -10, 13, -3, -18, 2, 10, 5, -21, 6, 15, -11, -21,
- 3, 14, 0, -12, 9, -1, -2, -4, 3, -3, -9, -8, -5, -2, -8, 2 },
- { 3, 3, 11, 4, 0, 13, 1, -8, 10, 13, -6, -26, 2, 12, -3, -5,
- 12, -2, 1, 8, -7, -17, -19, 5, 10, 7, -3, 2, -3, 0, 5, 0 },
- { 5, 0, 3, -3, -9, 5, -15, -5, -5, 17, -5, -31, 0, 13, 13, 5,
- -1, -6, -14, 7, -8, 9, -14, -2, -16, -4, -4, -6, 6, -6, -10, 6 },
- { 13, 3, 1, 7, -3, 4, -1, -2, -1, 4, -8, -32, -1, -4, 0, 3,
- -10, 7, 10, -10, 4, -1, 6, 2, -16, -9, 4, 3, 13, -23, -3, -4 },
- { 4, 11, -4, -9, 4, 11, -12, -12, -12, 6, 1, -28, -3, 14, 18, -2,
- -12, 7, 15, -3, -5, -7, -3, 2, -6, 4, 4, -2, -5, -3, 2, -13 },
- { 8, 7, -7, 0, 13, 7, -8, -7, 8, 36, -10, -22, 3, 23, -3, -10,
- -3, 11, 1, -7, 3, 3, -1, -7, -4, 2, 3, 2, 5, 3, -4, -1 },
- { -1, 1, 13, 1, -6, -1, -6, -9, -18, 17, -5, -37, -1, -1, -6, -4,
- 1, -6, -15, 2, 17, -9, 0, -3, 0, 4, 0, -5, 0, 4, 1, -5 },
- { 0, 14, 5, 0, -7, 2, -6, 17, -6, -9, 7, -16, -5, 23, -14, -13,
- 8, -15, 11, 10, -11, -13, -33, -5, -2, 1, 6, 8, 0, -13, -9, 5 },
- { 11, 7, -2, -8, 9, 11, 25, -14, 7, 3, -1, -33, 14, 8, -6, -19,
- 3, 3, 2, -1, -3, -1, -2, -10, -3, 1, 2, 1, 4, 2, -3, 4 },
- { -2, 8, 4, -2, 9, 13, -4, -2, -15, -3, 19, -37, 9, 25, -9, 2,
- -5, -2, -2, -4, 4, 2, 2, 0, 3, 3, 3, 5, -2, -3, -4, -3 },
- { 10, 13, -1, -15, 4, 6, -18, -4, 25, 1, -23, -17, 15, 13, -8, -8,
- 7, 4, -5, 3, 6, 9, -7, 6, 0, -5, 8, 0, -6, -1, -2, -2 },
- { 1, 3, 9, -5, 27, 15, -9, -31, -1, 23, -2, -9, 1, 8, -1, -7,
- -2, -8, -4, -4, -2, -1, 3, 5, 0, 0, -1, 1, -7, 7, -3, -3 },
- { -8, 7, 3, -6, 8, 3, -11, -2, 36, 14, 1, -30, 6, 10, -12, -6,
- -6, -2, -4, -3, -5, 0, 9, 4, -5, -5, -8, 12, 4, -3, 1, -8 },
- { -2, 9, 33, 0, 12, -3, -7, -4, -4, -1, 6, -25, 11, -6, -9, -11,
- -2, -4, -2, 6, -1, -3, -6, 15, -6, 3, 10, -4, 1, 0, 5, 8 },
- { -22, -21, -9, -19, -5, -7, -12, -15, -8, 9, -19, 14, -7, -4, 5, -8,
- -2, 7, 1, -3, 4, -4, 6, 11, 2, 6, -3, -5, 2, -2, 0, -3 },
- { -32, -13, 3, -24, 3, -8, 4, 1, -10, 14, -15, 0, 4, 6, -1, 6,
- 7, -1, 6, 4, -3, -17, 1, 4, -6, -1, 1, 0, 3, 3, -7, -4 },
- { -32, -11, 7, -8, -12, 13, -5, -22, -4, 12, -16, 2, 0, 4, 0, 1,
- 0, 6, -5, -8, 2, 6, 5, 0, -3, -6, 5, 6, 5, 5, 13, -4 },
- { -44, -33, 6, -4, 2, 0, -9, 10, 3, 4, 7, 0, -1, 7, 5, 1,
- 1, -3, 1, 6, -1, 0, 2, 3, -4, 0, 0, 1, 0, -1, -2, -1 },
- { -30, -18, -24, -8, 5, 0, -2, 14, 7, 0, 1, 12, 6, 4, -9, 7,
- 5, 7, -11, -5, 1, -8, -1, 2, 2, -9, 7, -1, 7, 5, 6, 6 },
- { -22, -20, -13, -9, 20, -3, 10, -8, 6, -4, 2, -7, 10, 8, 0, -1,
- 2, -3, 6, -19, 2, 4, 3, 3, -7, 2, -1, -6, 1, 1, 6, -2 },
- { -27, -8, -1, 3, -1, -11, 24, 4, -1, 1, -8, 8, 5, -11, 15, -3,
- -15, -1, -1, -13, -1, 1, -5, 5, 2, 3, -9, 0, 4, 3, -7, 6 },
- { -33, -16, -1, -8, 10, -23, 6, 13, -1, -3, -9, 0, 5, -7, -5, -12,
- -2, 3, 3, 6, -2, -3, 2, -3, 9, -6, -3, -2, 0, 5, -3, -4 },
- { -22, -17, 11, -3, 3, 1, -1, -5, 17, 2, -15, -2, 10, -9, 6, 14,
- -16, -12, 20, -1, -7, 6, -3, -12, 1, 10, -10, -1, 7, -3, -1, 10 },
- { -28, -13, 1, -3, -1, -1, 0, 3, 3, 5, 1, 10, -10, -3, 7, 2,
- 4, 19, -1, -1, 10, 5, -8, 1, 11, -15, -4, -3, -5, 4, -13, 3 },
- { -22, -13, 42, -20, 5, -13, 7, -11, 1, 1, -1, 1, 6, 3, 6, -11,
- 3, 3, -2, 0, -4, 4, -3, -1, -5, 2, 0, 0, -9, -1, 4, 4 },
- { -26, -15, -2, -6, -4, -2, 16, 8, 21, 8, 1, -3, -10, 7, -8, -12,
- -5, 12, -9, 3, -2, -3, 18, 1, -12, -15, -4, 5, -3, 0, 12, 7 },
- { -26, -16, 5, 6, 14, -3, 15, 6, 1, -7, -13, 16, -15, 5, 11, -2,
- 9, -7, -4, -2, 0, 0, -2, 7, -8, -6, -5, 2, 7, -3, 2, 12 },
- { -31, -17, -8, -30, 4, 14, 6, -6, 6, -11, 0, 3, -4, 0, 0, -4,
- 0, -4, 1, 4, 3, 4, 0, -5, 3, 2, 2, 0, 2, 1, 3, 5 },
- { -61, -10, 4, 10, 4, 7, 0, -3, 0, 1, 0, -3, 0, 1, 0, -2,
- -1, 1, 2, -2, 4, -3, 1, 1, -1, 1, -2, -4, -4, 4, 0, 0 },
- { -28, -13, -8, -4, 3, -3, 2, 1, 11, 14, 3, 9, 1, 13, 3, 5,
- -3, -2, -2, -12, -14, -9, -11, -15, -12, -5, -4, -12, 3, -3, 0, -5 },
- { -41, 0, 12, -24, 13, 4, 5, 16, -5, -4, 0, 0, 13, -4, 1, -9,
- 9, -6, -1, 6, -2, 5, 2, 9, 6, -9, -8, 8, -2, -3, -6, -4 },
- { -26, -19, -2, -15, 4, -14, 6, 0, 26, 20, 8, 9, 9, 3, -4, -5,
- -8, 1, 0, -1, 5, 9, 3, 4, 4, 7, 1, 3, -2, -2, -10, 0 },
- { -29, -18, 9, -4, 1, -5, -14, -12, 5, -10, -5, 4, -5, 0, -1, -1,
- 4, -5, 7, -16, -11, 2, 7, -15, 2, -4, 6, -4, -6, 7, -3, 7 },
- { -27, -16, 9, -14, 3, -8, 9, 0, 7, -4, -3, -7, 0, -10, -1, 2,
- 1, -2, 15, -10, 14, 7, 6, 17, 3, -4, 3, -10, 8, -8, 3, 11 },
- { -21, -20, -8, -8, 4, 5, -3, -2, 0, -5, 14, -10, 11, -4, 13, 0,
- 5, -11, 19, -18, 18, 3, -5, -3, -4, -8, 11, -10, 10, 3, 4, -9 },
- { -35, -15, 13, -12, 4, 0, -2, -4, -12, -3, -8, -24, -7, 1, 7, 8,
- -3, 0, -2, -1, 3, -2, -2, -6, 8, 1, 0, 1, -6, -1, 2, -6 },
- { -19, -14, 13, -10, 9, -1, 1, 3, -12, 5, -16, 7, 13, 9, 4, -4,
- 6, -5, 4, 9, -3, 17, -4, 12, -11, -6, -5, -6, 13, 2, 7, -9 },
- { -34, -8, -4, 1, 2, -1, 3, 6, -20, -11, 8, -1, 4, 2, -9, 4,
- -4, -5, 16, 10, -4, 14, -13, 1, -6, 0, 2, -10, 0, -3, -3, 7 },
- { -36, -10, -8, -3, 2, -2, 14, -4, -1, -7, -4, 10, -1, -3, 15, -11,
- 0, 2, 3, -1, 4, 0, 8, -1, 0, 18, -11, -5, 15, -5, 13, -12 },
- { -22, -13, 14, -20, 15, 25, 16, 10, 8, -2, -10, -5, -1, -8, 11, 8,
- -1, -2, -4, 1, 2, -1, -7, 0, 0, 0, -3, 0, 2, -1, 0, 2 },
- { -31, -22, 7, 6, -2, 5, -20, 14, -6, 7, 0, 14, 3, -7, 3, -6,
- -2, 1, -3, -5, 1, -10, 1, -24, 6, -2, 3, -7, 1, -7, 8, 7 },
- { -25, -20, -3, -9, 10, 6, 12, 7, 5, 4, -3, 6, -1, -5, -6, -8,
- 3, 5, 6, 5, -10, 10, -4, -15, -15, -2, -9, 2, 18, 1, 8, 12 },
- { -24, -19, -2, -4, -7, 11, 6, 9, 16, 2, -7, 18, 6, -7, 6, 6,
- -2, -9, 3, 12, -2, 3, -1, 6, 7, 8, 0, 8, -11, 8, 4, 2 },
- { -26, -20, -12, -12, -2, -3, 1, -5, -1, -2, 0, 3, 7, 9, -2, 2,
- 9, 22, 13, 4, -4, -1, -2, -14, 5, 15, -8, -5, -7, -11, -14, -6 },
- { -21, -18, -1, -4, 0, 3, 7, -2, 10, 8, -8, -1, 15, 1, -9, 3,
- 1, 3, -5, -2, 2, 4, 0, -1, 10, 2, -19, -8, 8, 30, -7, 8 },
- { -25, -6, 26, 4, -8, 4, -2, 21, 5, -4, -16, 5, 13, 4, -10, -1,
- -6, -2, 2, -10, -13, 1, 3, -3, -6, -8, 2, 11, 1, -7, 0, 5 },
- { 0, -1, -2, 19, -12, -48, -6, 11, 8, -2, -4, -2, -7, 5, -3, 2,
- -2, -1, -1, -7, 0, -3, -3, -4, -4, 4, 1, 3, -3, -1, -2, -5 },
- { -11, -8, -28, 18, 16, -24, -8, 19, 4, 8, -12, 9, -4, -2, 4, -7,
- 6, 2, 3, 3, -4, 0, 1, -6, -4, -2, 2, 6, 0, -3, 1, -16 },
- { -9, -5, -26, 7, -3, -37, -16, -2, 2, -7, 4, -13, 0, -4, -6, -5,
- -6, -4, 0, 3, 4, -3, -4, -4, 4, -3, 9, -4, -2, 2, 7, -4 },
- { 2, 9, -18, 7, 29, -24, -1, 7, 14, 10, 3, -3, -2, -5, 6, -10,
- -6, -3, -8, 0, 5, 1, 4, 3, -12, 2, 6, 1, 3, 4, 1, -3 },
- { -20, 2, 8, 20, -9, -24, -4, 18, 3, 11, -1, -11, 6, 9, -1, -3,
- 1, -1, -15, 3, 15, 9, 3, 2, -13, 2, -8, 8, 1, -1, 1, -8 },
- { -12, 5, -11, 6, 19, -26, -17, -6, 4, 14, 6, -8, 9, 5, -6, -5,
- 2, -1, 20, 1, -11, -10, -18, 20, -7, 0, -3, 4, 2, 0, 10, 4 },
- { -15, 1, -2, 13, -8, -21, -22, 4, 4, 3, 3, -7, -31, 4, -10, -14,
- 0, 8, 4, 5, 8, 11, 2, -8, 6, 7, 0, -2, 6, 8, 8, 7 },
- { -13, -10, -9, 12, 19, -16, -3, -2, 9, 2, 11, -29, -1, 9, 4, -3,
- 1, -10, -10, 16, 1, 7, -7, -6, -4, -1, -5, 3, 6, 0, 3, 1 },
- { -17, -1, -5, 19, 12, -9, -21, -5, 2, 12, -7, -7, -3, 8, 7, -2,
- 6, -9, -9, 1, -4, 1, 1, 3, -14, 2, -8, 0, 10, 1, -12, -6 },
- { -13, -5, 8, 15, 0, -20, -2, 20, 8, -8, 8, -19, 12, 10, 2, -11,
- 0, 12, 1, -11, 0, -11, -15, 5, -11, 2, 4, -4, -11, 5, -4, -5 },
- { 3, -11, -7, 8, 0, -17, -26, 15, 19, -7, 10, -9, -5, -5, 14, -25,
- 0, -8, 2, -9, -3, 9, 1, -6, 4, -4, 3, -9, -1, 6, 2, 2 },
- { -12, 5, 5, 9, 14, -18, -19, 4, 2, 16, 14, -21, -15, -9, -1, 16,
- 12, -11, -10, -5, -7, 4, 15, -8, -5, -1, 1, 14, 13, -7, -1, -4 },
- { -10, -5, -1, 8, 7, -23, -10, 14, 6, 11, 10, -16, -3, 16, 6, 0,
- 0, 9, 6, -2, -7, 1, 22, 5, 3, -8, 0, 3, -2, -10, 3, 0 },
- { -2, -14, 2, 16, 15, -17, -17, 6, 19, 4, -10, -15, -1, 15, 11, -14,
- -8, 5, 8, 8, -2, -8, -11, 10, 10, -8, -14, 2, 13, 4, -2, -12 },
- { -10, 3, 6, 4, 19, -23, -19, 1, 4, -9, -30, 3, -6, 18, 0, 2,
- 0, -11, 0, 3, 7, -2, 8, 5, 2, -3, 6, -9, 1, -4, 7, -6 },
- { 9, 5, -2, 21, 20, -33, -13, 7, -10, 8, 8, -15, -6, -4, 1, 5,
- 3, 7, -2, -9, -1, 4, -6, 1, 0, 9, -1, -5, 2, 1, -3, 3 },
- { -9, -3, 3, 15, -3, -30, -7, -7, -25, 6, 2, -6, 1, 19, 1, -12,
- 1, -8, -13, 9, 13, 1, 8, 2, 5, 15, -2, 3, -9, 0, -4, 4 },
- { -6, -12, -17, 25, 22, -13, -10, 9, 2, 11, -7, -16, 4, 6, 1, 0,
- 0, 18, -4, -5, 4, -2, -1, -5, 0, -4, 6, 1, 6, -1, 7, 0 },
- { -1, 0, -10, 8, 8, -27, 0, -2, 29, 16, -2, -4, 9, -1, 2, 0,
- 6, 10, 6, 4, 2, -7, 9, -18, 3, 3, 3, -10, 17, 10, 9, -6 },
- { -3, -12, -6, 11, 20, -32, 5, 21, 3, -4, -9, 2, -10, 1, 7, -4,
- 5, 0, 0, -1, -8, -9, -7, 4, -10, 5, 0, 2, -5, 4, 9, 1 },
- { -5, -1, -5, 1, 2, -19, -13, 1, 6, 12, 2, -16, -17, 11, 10, 13,
- 16, -12, -11, 3, -6, 0, 6, 4, -3, 1, 8, 2, 5, -11, 3, -14 },
- { -19, 5, 10, 11, 2, -23, -9, 16, -2, 7, 0, -11, -7, 10, 6, -7,
- 26, -15, -4, 8, 6, -4, 7, -9, -15, 1, 8, -4, 4, 2, -12, 16 },
- { -11, 1, 11, -4, 1, -31, -13, -1, 8, 5, 4, -2, 0, 13, 7, -17,
- 7, -10, -6, 1, 4, -1, 2, -9, -4, 9, 3, 3, -4, -5, 3, 4 },
- { -3, 1, 10, -1, 0, -15, -22, 4, 40, -11, -4, -3, -14, 9, 11, -1,
- 9, -1, -6, 6, 3, -6, 0, 0, -12, 7, -2, 0, 9, 3, 1, 3 },
- { -1, -1, -1, 14, 8, -24, -14, -8, 5, 8, 5, -12, -17, 8, 2, 7,
- 10, -8, 0, 4, -6, -6, -10, 8, 4, -12, 3, -9, -12, 5, 4, -3 },
- { -5, 1, -11, 8, 9, -24, 0, 2, 2, 14, -12, -13, 1, 6, 7, 0,
- 7, -6, 9, 26, 11, -14, 8, 10, 1, 9, 0, 11, -2, 6, 2, -10 },
- { -13, 1, 4, 34, 19, -17, -15, 0, 3, -2, -7, -1, 0, -3, -3, -1,
- 1, -1, -10, 8, 5, 0, -8, 4, -17, 9, -2, 0, 0, 6, 2, -3 },
- { -6, -4, 1, 2, 2, -14, -29, 0, 9, 34, -3, -5, -14, 6, -10, -9,
- -5, -1, 0, 3, 3, 0, 1, -1, -2, -1, -1, -3, -3, -4, 3, -3 },
- { -4, 6, 3, 14, 14, -8, -29, 31, 11, 14, -4, -5, -6, 10, 6, -9,
- -1, -11, -7, 1, 7, 4, 1, -6, 4, 0, 10, -7, -5, -1, 2, 4 },
- { -4, -4, -2, 14, 6, -32, -6, -14, 14, -5, -11, 10, -18, -4, 6, -8,
- 9, 5, -4, 1, -4, 5, -2, -9, 3, 5, 2, -10, -6, -17, 3, 17 },
- { -16, 9, 21, 19, 4, -20, -17, 14, 9, 15, -6, -17, -1, 1, 6, -3,
- 1, 1, 8, -3, -6, 6, 9, 4, 9, -9, -5, 1, -1, 0, -1, 2 },
- { -7, -5, 3, 19, 1, -20, -9, 14, 21, -7, -18, -9, 26, -7, -17, -7,
- 12, 6, 0, -9, -6, 14, 9, -9, -8, 4, 15, -7, -9, -1, 9, 1 },
- { -20, 30, -6, 11, 24, -4, 0, -6, -2, 8, -4, 12, -8, -17, 0, 5,
- -4, 1, -1, 3, -3, 5, 3, 3, 7, -2, -3, -2, 4, 0, 0, -1 },
- { -35, 17, 6, 1, -9, -1, -16, 3, -20, -13, 8, 7, -4, -7, -4, -20,
- 7, 12, -5, 5, -5, -11, 12, -1, 15, -9, -6, 16, -4, -9, -13, 4 },
- { -21, 36, -19, 9, 0, -7, -8, 9, -4, -3, 3, 0, 7, -8, -2, -2,
- -11, 13, -1, 5, -3, 7, 2, 3, -1, -2, -5, 1, -1, -2, -5, -3 },
- { -12, 33, -4, 1, -12, -9, 0, -13, -1, 2, -8, 4, -10, 6, -16, -7,
- -1, -4, -10, 15, -1, 0, -5, -8, 5, 5, -3, 0, 2, -7, 1, -7 },
- { -14, 32, 5, -7, -15, 3, -5, 8, 14, 5, 9, 13, 3, 18, -3, 7,
- 4, -10, -10, 10, -1, 2, 0, -2, -11, 5, -3, -4, 2, 2, 7, 4 },
- { -14, 34, 1, 20, -1, -12, 0, -3, -7, -4, 7, 18, 9, -3, 14, -7,
- -9, -20, -7, -4, -13, 12, 1, 12, 5, -6, 2, -4, 0, -15, 1, 3 },
- { -21, 23, 7, -8, 3, -13, -3, 0, -6, -2, -7, 6, -12, 9, -6, -2,
- -2, -4, -1, 6, 9, 5, -9, 15, 0, 8, -8, 7, 6, -15, 3, -5 },
- { -27, 32, -1, -4, -2, 4, -10, 12, -3, 8, 13, 7, 0, -15, 4, -2,
- 3, 5, 7, -4, 9, -12, -1, -2, -1, -4, 0, -4, 2, -5, 6, -6 },
- { -17, 29, 15, 0, -1, -4, -10, 13, 12, -1, -8, -10, -10, 4, 7, -2,
- 6, -5, -13, 19, 6, 1, -7, 2, -9, -2, 12, -4, -8, -3, 2, 4 },
- { -38, 27, 16, -15, -6, 3, -7, -4, 0, -1, 6, -2, -3, -6, 6, -6,
- -3, 0, 2, 0, -4, 6, 1, -1, 0, 4, -1, 3, 4, 1, -2, 5 },
- { -33, 40, -4, 2, 1, 0, 0, -10, -14, 0, -7, 4, -1, 3, -2, 5,
- 7, 6, -1, 4, 1, 3, 1, -7, 1, -4, 5, 7, 0, 4, 3, -4 },
- { -20, 25, 12, -4, 16, -4, 2, 2, -14, -2, -3, 29, -1, 1, 3, 1,
- 9, -5, 2, -8, -3, 1, -7, -2, -7, 1, 0, 4, 16, -2, -1, -1 },
- { -10, 30, 17, 3, -5, -2, 0, -5, -22, 4, 5, 5, -3, -18, -6, 10,
- -5, -7, 2, 8, 7, -7, -11, -2, 0, -3, 3, 2, 11, -4, 4, -4 },
- { -11, 30, 11, 4, -3, -8, 1, -2, 4, 18, 3, 1, -1, 0, -8, -4,
- -3, 10, 13, 14, 5, -5, 1, 1, -10, 2, 15, 4, 9, -1, -5, -3 },
- { -17, 32, 18, -18, -3, -5, 6, 10, 1, -15, -5, 9, 8, -12, -10, -6,
- 11, 9, -5, -8, -7, 10, 5, -10, -14, -4, -3, 1, 9, -11, 2, 1 },
- { -13, 28, -11, -1, 2, -16, -2, 7, -24, 0, 3, 6, 3, -1, -8, -7,
- -12, 2, 2, -20, 10, 4, 0, -13, -2, -2, 1, 8, -14, 0, 4, 1 },
- { -14, 23, 12, 8, 8, -26, 2, -4, -14, 13, -14, 15, 3, -9, -1, -13,
- -10, -2, -10, 6, -16, 12, 8, 0, 9, -10, -7, -4, -4, 7, -8, 8 },
- { -20, 45, 10, -14, 4, 16, 8, -9, 1, -8, 10, 5, -7, -2, 2, -5,
- -1, 0, -5, 4, -6, -2, 4, 1, 3, 4, -4, 2, -2, -2, 5, 1 },
- { -20, 26, -4, 1, 7, 4, -8, 1, -5, -13, 2, 13, -7, -3, 6, -6,
- 22, 0, 5, 11, -4, -11, 8, -9, 2, -2, -4, -2, 2, -13, -4, -8 },
- { -28, 18, 17, 3, -8, -23, -16, -6, 5, -10, 14, 10, 5, -1, -8, 4,
- -2, 13, -3, -2, 3, 4, 3, -2, -3, -4, 0, 1, 3, 4, 0, 4 },
- { -12, 32, -6, -16, 18, 12, -16, 0, 7, 13, -4, 5, -8, -1, -3, 4,
- 6, -2, -1, -13, 4, -1, 3, 12, -3, -10, 1, 6, 8, -11, -2, 4 },
- { -18, 26, 2, 5, 0, -9, -17, 14, 5, 1, 7, -3, -8, -3, 11, 7,
- -5, -12, -8, 7, 0, -7, 2, -12, -9, 13, -11, 9, 6, -11, -5, 11 },
- { -24, 22, -15, -9, 8, 1, -7, -12, -9, 3, 11, 15, 14, -11, 12, -15,
- -5, 7, -2, 0, -8, 3, 3, -1, 2, 11, -11, 14, -6, 13, 1, -6 },
- { -20, 28, 18, -4, -6, -5, 12, 14, 2, 10, -13, -6, -8, -6, -13, -1,
- -26, 22, -3, -14, 6, 0, 10, -15, -13, -9, 6, -7, 1, -5, -4, -1 },
- { -19, 26, -8, -3, -14, -6, -9, -4, -8, 15, -8, 3, -12, -4, -2, -7,
- -5, 3, 13, -3, -4, -25, 4, -1, 5, -12, -1, -13, 5, 2, 0, 6 },
- { -18, 43, 14, -8, 1, -23, -2, -2, 1, 3, -7, 0, 0, 8, -1, -3,
- -5, 1, 5, 2, 0, -2, -2, -2, 1, -1, -1, -7, 0, 3, -3, 9 },
- { -11, 30, 10, -14, 3, 1, 10, -11, 1, -7, -4, 14, 2, 1, -9, 1,
- -11, -2, -7, 5, -11, 1, 3, 14, 1, -16, -8, 3, -5, 7, -4, 4 },
- { -18, 24, 6, 3, 8, 7, -22, -7, -7, 3, -8, 4, 23, 9, 3, -1,
- 3, 6, 7, -1, -7, 6, 4, 1, -3, 1, -6, -1, 2, -7, 3, 3 },
- { -15, 38, -7, -1, -11, 2, -17, -24, 24, 8, 7, -4, -5, 2, 2, -7,
- 1, 4, 0, -9, 5, 0, -1, 1, -1, -5, -6, 3, 0, 7, 8, -3 },
- { -14, 22, 1, -5, 9, -12, -9, -5, -6, 5, 7, 8, -1, -4, -9, -3,
- -33, -16, -9, -1, 12, -11, 17, -7, -3, -1, -7, 3, 2, -3, 16, -4 },
- { -14, 20, 6, 4, -10, -4, -4, -4, 1, -7, 2, 6, 8, -12, 4, 1,
- -1, 12, 10, 3, -14, -10, -3, 18, -2, 33, -5, -17, 17, -5, 9, 7 },
- { -12, 23, 13, 0, -11, -8, -11, 12, -5, -9, -16, 11, 6, 4, 12, -5,
- 5, -13, 7, -12, -3, 1, 2, 12, 1, -4, -1, 5, 4, 11, -12, -3 },
- { 15, 2, 14, 7, 1, 2, 1, 12, 10, 23, 4, 6, -20, -10, 4, 26,
- -6, 13, 4, 3, 2, -11, 5, -7, -10, 4, 9, 1, 10, -4, 11, 4 },
- { 17, 15, 31, 17, 18, 16, 11, 24, 2, 4, 2, 3, -8, -3, 7, -3,
- -5, -7, -2, -6, -4, -5, -4, -1, -4, -2, -5, -6, 2, -1, 4, -2 },
- { 16, 8, 15, 14, 3, 7, 21, 9, 8, 15, 21, 6, 8, 12, 5, -5,
- 7, -3, 10, 2, -3, 8, 6, 0, 5, 5, 6, -3, 2, 4, 0, -5 },
- { 5, -4, 6, 12, 6, 13, 24, 17, -5, 17, -1, -6, -7, -10, -8, -18,
- 3, -2, 2, 7, -15, -11, 12, -3, -2, -2, -4, -7, 2, 0, 5, 5 },
- { 10, -6, 8, 11, 12, 20, 22, -11, -3, 15, -3, 15, -2, -2, 0, 2,
- 5, -8, 4, -5, -9, -4, -1, 2, -1, -3, 1, 3, 13, -1, 9, 7 },
- { -5, 8, 5, 11, 14, -5, 14, -9, 2, 35, 8, 15, 1, -2, 2, -2,
- 4, -9, -3, -14, -12, -2, -2, -4, -2, -8, -3, 1, -6, 3, 10, 0 },
- { 16, 0, -6, 15, -3, 4, 4, 3, 3, 20, 5, -4, 10, 9, -9, -3,
- -10, -2, -7, 11, -11, -10, 17, -1, 3, -15, 2, 9, -15, -10, 16, 10 },
- { 14, 4, -7, 19, 3, 0, 19, 8, 16, 34, -9, 6, -13, -1, 6, 5,
- -1, -2, 4, 3, 2, 1, 1, -1, 0, -7, 2, -1, 1, 0, 6, -1 },
- { 1, 6, 9, 13, 9, 10, 15, 16, 10, 18, 13, 17, 3, -1, -7, 2,
- -15, -11, -10, -4, -13, -6, -17, -13, -6, -14, 1, -10, 6, 4, -1, -1 },
- { 13, 1, 7, 10, 14, 13, -7, 5, 5, 28, 14, 14, -2, 2, 3, -3,
- -13, -4, 10, -9, 19, -4, -3, 4, -5, -5, 0, 5, -5, 0, 3, -4 },
- { 1, 0, 6, 22, 9, 18, 18, -3, 5, 10, 12, -2, 1, -3, -8, -12,
- 9, -10, -7, 1, -1, 19, 0, 2, -8, -11, -10, 9, 6, 11, 0, 3 },
- { 10, 11, 19, 44, 0, 14, 1, -7, 6, 22, 2, -1, 9, 2, 0, -4,
- 4, 0, -6, -6, 3, 0, 0, -2, 2, -5, 1, -2, 0, 1, 1, 1 },
- { 5, 7, 0, 32, 30, 26, 5, 4, -7, -3, 15, -6, 3, -10, 7, 6,
- -8, -7, 2, -13, -5, -1, -3, 7, 3, -2, -8, 0, 6, 4, 5, 0 },
- { 9, 8, -2, 4, 2, 11, 4, 29, -5, 14, 8, -5, -14, 8, 0, 9,
- 8, -10, 5, -15, -6, -9, 9, -1, 18, -16, 9, -21, -3, -13, -2, 8 },
- { 25, 7, -9, 23, 20, 18, 6, 16, -9, 8, 8, -5, 11, 13, -8, 7,
- 4, 10, -2, -1, -7, -9, -7, -9, -4, 1, 1, -5, -10, 8, 4, -5 },
- { 9, 2, 16, 14, -5, 14, 1, 0, -21, 17, -1, 9, 12, -3, -3, 4,
- -4, 14, 10, 3, 0, -10, 7, 4, 4, -11, 2, 4, -1, -3, 9, -1 },
- { 17, 8, 11, 26, 15, -3, 14, -1, 12, 9, 10, -8, 8, -18, -11, -3,
- -14, -7, 7, -3, -3, -4, 1, -7, -3, 2, -3, 16, 10, 0, 9, 6 },
- { 9, 8, 3, 8, 18, 14, 11, 1, 10, 6, 1, -4, -16, -2, 14, -2,
- 1, 8, 12, 14, 3, -3, 8, 8, 12, -15, 3, -3, 3, -2, 14, 10 },
- { 22, -3, -11, 13, -7, 11, 4, 11, 3, 14, 0, -6, -2, -9, 4, 2,
- -2, 0, -5, -27, -10, 3, -1, 5, 8, -24, -3, -11, -3, 2, 11, -1 },
- { 19, 2, 8, 36, 5, -6, 3, 15, -3, -4, -5, 14, -10, 1, -12, -10,
- -3, -4, 3, -2, 1, -8, 4, 3, 5, -3, 0, 4, 8, -2, 8, 4 },
- { 8, 14, 15, 9, -4, 10, 5, 11, 9, 10, 8, 9, -15, 15, 6, -8,
- -10, -13, 5, -8, -20, -13, -6, -11, -1, -3, -6, -4, -1, 0, 13, 15 },
- { -2, -1, 9, 12, 2, 2, 13, 3, -23, 33, 15, 2, -4, -1, 3, 8,
- 8, 6, 6, -7, 8, 6, 9, -1, 3, -8, 0, -4, 1, -8, 11, -1 },
- { 6, 5, -6, 16, 2, -3, 31, 21, -9, 12, 0, -1, -4, 1, -12, 3,
- -13, -18, 2, -11, -9, 2, -8, -6, 11, -3, -1, 0, -1, 0, 13, 5 },
- { 5, -1, 2, 0, 25, 5, 10, 16, -5, 21, 14, 12, 13, 2, -5, 5,
- 5, -3, -2, -14, 0, -12, 7, 11, -1, -7, 19, -1, -1, -1, 8, -1 },
- { 10, 7, 3, 11, 0, 8, 22, 3, 3, 19, -4, 12, 15, 9, 5, 15,
- 2, 1, 2, -10, -10, 0, 2, -1, 0, 1, -12, -1, 21, 16, 9, -7 },
- { 11, -4, -5, 24, -7, 11, 20, 11, -15, 18, 5, -13, -15, 0, -5, 9,
- 1, 0, -1, -9, 4, -8, 6, -8, 1, -2, -7, 20, 9, 3, 9, 3 },
- { 20, 0, -12, -6, 9, 31, 9, 12, 8, 27, 15, 7, -16, 5, -3, -7,
- -1, -9, -2, -7, -3, 4, -8, -3, 3, -6, -2, -2, -3, -6, -1, 2 },
- { 6, -6, 48, 8, -3, 19, 12, 11, -7, 2, 3, 0, -1, 1, 8, -4,
- 4, -6, 0, -4, -4, -3, 3, 6, 3, -13, -8, 5, -3, -7, 8, 5 },
- { 7, -2, 6, 11, 12, 2, 14, 4, -5, 12, 2, 9, 4, 2, 0, -1,
- 2, 0, -15, -9, -16, -2, 8, -17, -5, -22, -19, -5, -1, -10, 1, -2 },
- { 11, -9, 3, 12, 6, 6, 1, 17, -6, 19, 14, 7, -7, -1, -1, -9,
- 9, -11, -17, 0, -6, 16, 0, 1, 9, -24, 3, 3, -9, -3, 3, -2 },
- { 9, 0, 1, 8, 1, 7, 2, -5, -3, 8, -1, 7, 2, 6, -3, -6,
- 5, -2, 6, -2, -4, -3, 0, -3, 13, -50, 1, -2, 2, 4, 4, 3 },
- { 7, 0, 26, 21, -4, 2, 17, 8, 7, 11, -7, 1, -1, -15, -1, -15,
- -11, -4, -17, -4, 1, -7, 3, 6, 3, -9, 2, 3, 6, 10, 6, 12 },
- { 1, -2, 2, -1, -10, -4, 6, -3, -5, -2, -8, 2, 2, 2, 8, 0,
- 1, 1, 6, 0, 11, 13, 3, 4, 0, -12, 11, -5, 19, 20, 2, 5 },
- { 5, 3, -13, -2, 1, -12, 11, -7, -12, 7, 10, 0, 7, 0, -2, 4,
- -6, -9, -11, -12, -23, 12, 10, -3, 0, 6, 19, -1, 24, 18, 9, 12 },
- { 6, -3, 2, 5, 2, 2, -2, -5, -8, -11, -4, 3, -8, -4, 5, -3,
- -16, -4, 3, -12, -4, 3, 32, 7, 2, 8, 32, -18, -1, 12, 1, 7 },
- { 0, -8, -1, 0, -8, 7, -8, -1, -1, 4, -12, -1, 3, 0, 1, -18,
- 8, 8, -14, -10, -11, 19, 9, 5, -7, 6, 8, -4, 26, 12, -1, 6 },
- { 3, 5, -14, 7, 14, 8, 20, -13, -16, -10, -2, 17, -7, 4, -8, -9,
- 14, -5, 3, -4, -12, 7, 14, -10, -19, -20, 35, 8, 13, 14, -2, 9 },
- { -2, -4, -1, 1, -3, 0, -1, 1, 2, 2, 6, 0, 0, 4, 5, -2,
- 3, 3, 3, -2, -7, -3, -3, -1, 6, -2, 29, 22, 13, 34, 0, 14 },
- { -3, -9, 3, 1, 5, -4, 2, 0, 7, -9, 0, 2, -5, -3, 0, 6,
- -1, -1, -1, 2, 2, 4, 8, 7, 20, -6, 7, 16, 33, 20, 6, -1 },
- { -11, 1, -3, -3, -11, 3, -9, -25, -1, -16, 4, -8, 15, 1, -2, 7,
- 8, 23, 2, 18, -13, 16, 3, -7, 6, 3, 16, -8, 12, 16, 3, 4 },
- { 0, 5, 5, -5, 1, -1, 2, -3, -2, 1, -13, 2, 2, 10, 6, 7,
- 18, 18, 7, 9, 8, 9, 21, 14, 7, 12, 15, 14, 15, 12, 11, 5 },
- { 1, -5, 11, -2, 17, 8, 3, 0, -1, 6, 11, -7, 6, 6, 7, 5,
- -15, 14, 1, 11, 4, 10, 12, 1, 2, 4, 30, 1, 11, 1, 6, 13 },
- { 2, 4, 3, -7, 5, 8, -11, 7, -5, 9, -10, 6, 8, -10, -3, 10,
- 1, -29, -4, -26, 5, -8, 13, 4, 3, 6, 35, 1, 3, 6, 3, 0 },
- { -2, 1, 0, 0, -1, -3, -7, -3, -9, -3, -1, -6, 3, 4, 4, 0,
- 5, -1, -2, -2, -1, -4, -10, 8, 0, -6, 10, -4, 46, 12, 2, 28 },
- { 4, -1, 4, 1, 0, 4, -2, -2, -2, -1, 2, -4, 1, 5, 0, -3,
- 1, 1, -2, 0, 1, -2, -1, -1, 3, -6, 35, -11, 13, 53, -3, -1 },
- { -5, -2, 0, -13, -16, 5, -12, -11, 1, -30, 3, -18, -24, -8, -5, -19,
- 1, -3, -8, 7, -7, -8, 15, -19, 4, 10, 30, 24, 6, 1, -9, 10 },
- { -4, 8, -7, -4, -6, 12, -1, -9, -4, 2, -9, 3, 2, -2, 4, 2,
- 22, 9, 4, -5, 0, 5, -2, -9, -3, 1, 18, -12, 18, 16, 4, 16 },
- { -5, -8, -3, -5, -3, 6, -7, -3, -2, -5, -3, 1, 2, 2, 4, -6,
- 10, 3, 12, -3, 20, 0, 27, -4, 16, 5, 18, -3, 23, 4, 12, 11 },
- { 0, 1, 0, 1, -2, 1, 2, 1, -1, 0, -2, 2, -2, -4, 1, -2,
- -2, -1, -5, -2, 0, 0, -2, 2, 9, 7, 63, 5, 12, -1, 1, 0 },
- { 4, -3, -7, -5, -11, -5, -12, -10, -10, -12, -15, -12, -14, -14, 1, 1,
- 10, -10, 16, 6, 2, 9, 11, 9, 9, 8, 12, -1, 13, 12, 6, 3 },
- { 7, -3, -2, 4, 6, -8, 2, -3, -12, -5, -9, -8, -10, 15, -2, -4,
- 8, 9, 7, -13, -18, 34, -5, 7, 12, 22, 16, -11, 13, 25, -15, -11 },
- { -3, -2, 0, -4, 1, 0, -3, -13, -7, 13, 12, -7, -10, 13, 19, 6,
- 16, 15, -12, -15, -3, 34, 1, 5, 1, -9, 11, 21, 8, 17, -5, -6 },
- { 3, -5, 0, -4, 0, 4, -11, 4, -7, -3, -1, -8, 3, -2, 2, 1,
- 11, 5, 6, 14, -3, 2, -4, -7, 0, 31, 15, -2, 24, 11, 5, 4 },
- { -1, -4, -9, 5, -8, -18, -4, -9, -20, -18, 7, -14, -16, 3, 8, -3,
- 29, 11, -13, -13, 7, 1, 17, 6, 6, 21, 11, 1, 14, -8, 2, 5 },
- { -3, 8, -10, -6, 12, 2, 1, 3, 3, 3, 3, -6, -8, -14, 15, -5,
- 16, 4, 16, 0, 7, -1, 0, 16, 2, 1, 22, 4, 19, 13, -11, 1 },
- { 2, -3, 10, 20, -4, -1, -8, 5, -8, -9, -6, -2, -4, -7, 8, -10,
- 0, 8, -6, 1, -8, 14, 13, 5, 17, -6, 26, -1, 7, -1, 0, 12 },
- { -4, -7, -31, -2, -7, -1, 5, -5, -5, -12, 4, -7, -6, 3, 15, -2,
- 5, -2, 7, -1, 10, 7, 8, -1, 14, 20, 14, 9, 16, 16, 8, 24 },
- { -7, 0, -3, -6, 1, 3, -13, -6, -4, -4, -5, -9, -1, -10, -4, -8,
- 2, 0, -1, 1, 24, 24, 21, 31, 5, 2, 11, 12, 7, 4, 3, 6 },
- { -3, -5, 6, -4, -3, -1, 2, -1, -2, 1, 0, -8, -1, 2, 0, -4,
- 6, 22, -1, -5, 8, 12, -1, -2, 28, 27, 20, -27, 14, 1, 2, -3 },
- { 1, -5, -2, -2, 6, -2, 9, 1, -2, -5, 3, 4, 11, 5, 2, 8,
- -3, -1, 1, -2, -3, -5, 5, 8, 49, 12, 8, -3, 9, 20, 12, 17 },
- { -6, 0, 1, 7, 0, 9, -2, -4, 8, 0, -2, -10, 0, 7, 21, -1,
- 0, 1, 17, -7, -5, 2, 4, 16, -2, 17, 14, -20, 15, 14, 4, 15 },
- { 0, 3, -4, 9, -4, 0, 6, 4, -6, -6, -5, -7, 2, -9, -10, -2,
- -5, 0, -3, -21, 9, 14, -11, 13, 29, 2, 25, 4, 22, -1, 2, -3 },
- { 2, 12, -11, 2, 16, 9, -4, 7, 1, -10, -15, 11, -4, 3, -2, 4,
- 4, -5, -10, 1, 4, 19, -15, 6, -4, -2, 30, -7, 11, 21, -12, 5 },
- { -2, -3, -2, 4, -1, -5, -3, -7, -5, 1, 0, -6, 1, -6, 7, 0,
- 8, -7, -3, -2, 2, 14, 2, -3, -26, -1, 26, 22, 32, 1, -2, 6 },
- { 1, -38, -1, -20, -2, -3, -6, -4, 2, 2, 7, 0, 3, 5, 3, 10,
- 6, 1, -3, -5, 7, 5, -5, -4, 8, 3, 1, -14, -1, -9, -5, -4 },
- { -5, -26, -7, -19, -10, -5, -11, 5, -11, -25, -8, -14, -9, -16, -8, -6,
- -17, -14, -1, -1, 6, 2, 2, 2, 3, 0, 2, 8, -8, 3, 0, -3 },
- { 17, -49, -3, -23, -1, 11, 7, 3, 4, -4, 0, 0, -1, 4, 2, 4,
- -2, -4, 2, -2, -1, -2, 2, 0, 0, -1, 0, 0, 1, 2, 0, 0 },
- { 4, -34, -6, -9, 1, 21, -7, 3, -2, -1, -3, 18, 2, -16, 7, -3,
- 8, 7, -5, 7, 2, 4, 8, -6, -7, -2, -5, -1, 4, 1, 2, -4 },
- { 5, -29, 13, -2, -14, 3, 1, 18, -15, 4, -8, 8, -10, 8, 2, 1,
- -8, 15, 3, -10, -4, -4, -2, 0, -3, -4, 2, -3, -4, -3, 12, -6 },
- { 13, -20, 3, -18, -17, 4, -14, 13, 28, 11, -8, -6, 16, 6, 0, 10,
- 3, 4, -9, 13, 5, -7, 12, -5, 0, -7, 5, 1, 3, 3, 2, 1 },
- { 3, -27, -5, -11, -21, -11, -12, 0, -5, 7, -22, 1, 3, 5, 0, -5,
- 8, 7, 1, -5, -7, 2, -5, 4, 1, 3, -8, -2, 0, 4, -2, 6 },
- { 31, -45, 0, -1, -12, 1, 2, -6, 4, 3, -1, 3, 3, 0, 5, 3,
- -5, 12, 4, 6, 2, 1, -2, 1, 3, 2, 5, 2, 2, 2, 3, -1 },
- { 9, -45, 6, 5, -1, -17, -2, 18, -3, 2, 0, 1, 0, -1, 10, 8,
- -7, -2, -5, -8, 6, -1, 0, 4, 6, -3, 12, -1, -2, 0, 5, -7 },
- { 3, -26, -2, -12, -12, 2, -10, 16, -3, 12, 4, 5, 11, 8, -16, -17,
- -2, -3, -3, 2, 5, -9, 13, 1, 10, 11, 3, 5, -2, 2, 2, -7 },
- { 8, -26, 32, -7, -5, 22, 2, 14, -10, -8, -7, 3, 3, 7, 0, -5,
- 0, -1, -3, 0, 8, 4, -5, -7, 6, -1, 4, 8, 1, 1, 7, -6 },
- { 4, -31, 2, -14, 2, 0, 1, 8, -6, -1, 17, -3, 13, -6, 5, -10,
- -2, -10, -2, -10, -3, 7, 1, 5, -8, 8, -14, -3, -15, 7, -10, -6 },
- { 16, -27, 13, -4, -23, 7, -9, 6, -7, 5, 4, 2, -1, -3, 23, -18,
- 7, 0, -3, 4, -3, 9, -6, -2, -1, 8, -6, 2, 6, -3, 2, -2 },
- { -1, -35, -2, -8, 11, -1, -7, -3, -2, 11, 7, 6, -6, -10, 9, 6,
- -3, -5, -6, -3, 9, 16, -16, -9, -20, 12, 3, 5, -3, 1, -9, 4 },
- { 2, -24, 1, -12, -16, 5, -4, 3, -4, -1, -11, -11, -8, -14, 14, 10,
- -8, 20, 8, -3, -11, 1, 1, -4, -4, -7, -3, 15, 2, -6, -2, 7 },
- { 9, -21, 2, -19, -7, -5, -8, 25, 3, 17, 5, -3, 9, -12, 8, 2,
- -4, 3, 3, 1, 11, -9, -4, -3, 4, 3, -22, 6, 4, 6, 11, -5 },
- { 16, -23, 13, -17, -21, -12, 5, 9, -20, 7, 6, -6, 0, 2, -9, 6,
- -6, -13, -7, -1, 5, -3, 5, -7, -10, 1, 0, 8, -9, 11, 0, -8 },
- { 10, -26, -9, -7, -19, -4, 6, 16, -7, 5, -4, 4, 8, 0, 4, -1,
- 6, -7, 1, -8, -11, 10, -14, 0, -16, 6, -3, 5, -1, 14, 12, 1 },
- { 8, -27, 12, -14, -1, -1, -19, 10, -11, 21, -14, 9, -8, -3, 8, -1,
- 12, -13, 3, -4, -2, 0, -9, 0, -7, 2, -3, 12, 1, -3, 3, 1 },
- { 18, -20, -14, -14, -16, -3, -24, 6, -17, 2, -3, -11, 2, -3, 12, 10,
- 10, 1, 10, 7, 8, 5, 5, 4, -1, 7, 2, 2, 0, 4, 7, 0 },
- { 0, -30, 9, -16, -18, 15, 12, -3, 4, -4, -5, -11, -4, -12, -10, 0,
- 2, -2, -4, -1, 2, 0, -1, -6, 2, -3, 4, -5, 7, 3, 5, 7 },
- { 25, -24, -1, -6, -9, 6, -13, -2, 3, 15, -3, 11, 4, -8, -11, 2,
- 0, -9, -2, 7, 4, 8, 5, -8, 5, 6, -1, -11, -15, -5, 0, 11 },
- { 0, -34, -7, -11, -7, 9, -3, 19, 4, -8, 3, -11, 11, -3, -9, 12,
- 9, 9, 2, 1, -7, 1, -3, 0, -6, -2, -1, 3, 0, -7, -2, -5 },
- { 6, -34, -4, -5, -3, -9, 2, 9, -1, 9, -5, -3, -26, -12, 8, -6,
- -7, 11, -8, 4, 4, 1, -1, 0, 8, 9, -4, 7, -1, 1, -3, -1 },
- { 3, -30, 5, 6, -10, 3, -7, 6, 3, 3, -26, -19, -3, 1, 7, 5,
- -4, -5, 6, 10, 13, -10, 4, -7, -4, 5, -3, 9, -6, 3, 9, 5 },
- { 4, -24, 9, -19, 2, -4, -5, 8, -3, 2, 0, -15, -1, 9, -4, 22,
- 6, 9, 3, 7, 11, -9, 0, -3, 4, 5, -5, 10, -8, 5, -7, -3 },
- { 8, -27, 7, -3, -1, 2, -9, 13, 7, 12, -4, -6, -6, 5, 0, 7,
- 5, 1, 15, -3, -4, 0, -5, -2, 7, -5, -7, 1, -2, 13, -8, 13 },
- { 17, -22, -15, -11, -8, 16, -14, 18, 2, -1, 14, -7, 14, -6, -6, -7,
- -8, 17, 6, 4, 4, -7, -5, -9, -14, -6, -1, 9, -3, 1, 6, -5 },
- { 25, -30, 2, -12, -13, 18, -18, 16, 8, -3, 10, -8, -3, -1, -6, 3,
- -5, -7, 4, 6, 7, 1, 1, -11, -5, 6, 2, -4, 9, -1, -5, -2 },
- { 7, -23, 7, -15, -1, -3, -1, 0, -10, 12, 2, 5, -4, 0, 4, 6,
- -1, 5, -9, -1, -1, -7, 1, 17, 9, -17, -16, 8, 4, -14, 11, 14 },
- { 0, -31, 7, -13, 3, -11, -7, 6, 1, -11, 8, -7, 15, -3, 16, -11,
- -1, -15, 16, -3, 5, 0, -2, -2, -6, 11, 5, 6, 5, -5, 6, 3 },
- { 13, -24, -2, -20, -10, 7, -3, -1, 15, 2, 6, -5, -7, -10, -20, 1,
- -4, 14, 8, -2, 3, -13, -3, 1, -4, 1, -3, 2, 8, -7, 16, -4 },
- { 1, -2, -2, -3, -4, -7, 0, 3, 6, 7, 3, 2, 1, -2, -1, 0,
- -6, 4, 2, -4, -3, -4, 5, 9, 5, 0, -3, -3, -4, -7, -31, -50 },
- { -1, -3, 7, 2, -1, 2, 4, 6, 0, 10, -2, 0, -20, -6, -3, 9,
- -20, -22, -1, -1, 15, 9, -12, 10, -13, -20, 12, 3, 5, 6, -7, -26 },
- { 0, 4, -2, -14, -12, 6, -13, 11, -10, 3, 22, 6, 16, -2, -5, 1,
- -3, -11, 0, -7, 5, -5, 0, 1, -1, -6, 8, 8, 10, 9, -5, -27 },
- { -5, 10, -2, 7, 9, -9, 5, -9, 5, 4, -15, 14, 1, 3, -10, 5,
- 0, -2, 7, 3, -13, 6, 9, -6, 5, -14, -17, -1, 11, 14, -2, -26 },
- { 0, 6, -3, 0, -8, 6, 0, 1, 4, -8, 2, -5, 4, 7, 15, 11,
- 9, 19, -2, 14, -8, 7, -1, 3, -3, -3, -10, -2, 12, -2, -12, -29 },
- { -12, -5, 0, -3, -2, 6, 3, -3, 2, -2, 1, 11, 2, -7, 5, 1,
- 2, -2, -14, 0, -1, -5, 3, 8, -28, -26, 6, -6, 3, 8, -10, -27 },
- { -1, -3, 6, 2, 4, 15, 1, 0, 2, -2, -2, 13, 3, 6, 0, 6,
- -1, -4, -1, -5, 8, -1, 5, -5, -15, 11, -8, -5, 14, -6, -14, -29 },
- { -5, -6, 0, 1, 0, 6, -3, 2, -5, -1, 5, -3, 2, -10, 3, 4,
- 3, 0, 13, -3, -1, 4, -4, -6, 2, 9, 8, 2, -3, 28, -11, -31 },
- { 1, -4, -10, -9, -4, -3, -15, -6, 1, 5, -3, -6, 5, -6, -22, 27,
- -13, 5, 3, -7, -4, 20, -7, -12, -1, -24, -4, -13, -8, -11, -15, -21 },
- { -6, -4, 19, -6, 2, 11, -6, 1, -3, -10, 9, -9, 12, -10, 2, 1,
- -9, 1, 15, 7, -5, 5, -29, -35, 4, -30, 9, 9, 19, 17, 2, -17 },
- { -3, 3, -3, 1, 2, 5, -1, 5, -2, -3, 1, -3, -8, 3, -4, -2,
- -4, -1, 12, 0, 2, -8, -6, -4, 16, -1, -14, -2, 25, -6, -15, -36 },
- { 0, -1, 3, -4, -4, -1, 7, -4, 8, 0, 10, 9, -4, 1, 10, -1,
- -3, -13, -5, -4, -1, -4, 8, 11, 14, -7, -5, 16, 12, 13, -1, -28 },
- { 1, -2, 2, -3, -8, 10, 4, 9, 12, 3, 5, 0, 8, -3, -6, 2,
- 16, -11, 11, 0, 1, 6, 1, 18, -10, -16, -1, -4, 5, -14, -15, -20 },
- { 1, -12, 5, 4, -7, 8, -1, -17, -2, -9, -14, -11, 6, -9, 5, -4,
- 3, -2, 7, 18, -5, 5, 6, -1, -11, -2, -10, -3, 8, -3, -2, -32 },
- { -12, 5, 20, -5, -6, -11, -6, -6, -13, 4, -6, 19, -8, 2, 3, -9,
- -4, -4, -1, 9, -1, 21, -1, 7, 15, -10, -1, -3, 9, -3, 2, -24 },
- { 0, -3, 2, -6, 4, -1, -9, -2, -1, -3, 6, -1, -5, -6, -5, -8,
- 0, -2, -6, 9, -4, 3, 2, -13, 1, -7, 23, -13, 4, -3, -15, -33 },
- { -7, 2, -15, 11, -10, 14, 0, -11, 3, -1, 12, -4, -4, 9, 11, -13,
- -13, -3, -14, 1, 3, 6, -5, 8, 0, 5, 5, -10, 4, 5, -6, -30 },
- { -6, 4, 0, -5, 4, 1, -1, -1, 3, 6, 5, -2, -5, 0, -2, 5,
- -4, -2, -4, -2, 4, 7, -7, -1, 1, -4, -3, -19, 37, 12, 10, -40 },
- { -7, 2, -7, -12, 17, 11, -7, 2, 2, 3, 1, -1, 3, 4, -2, -5,
- 9, -9, 6, 4, 9, 12, 11, -5, 2, -1, 0, 9, 5, -7, -2, -24 },
- { -7, 6, 1, 3, 1, 0, 6, 0, 4, -12, -2, -2, 1, -9, 10, -2,
- 11, -1, 21, -12, 15, -5, 10, -5, 5, -5, 14, -6, 5, -7, -3, -29 },
- { -2, 0, -5, -2, -3, 1, -3, 0, 4, 2, 3, 0, 2, -2, 7, -2,
- 3, -5, 2, -1, 6, -4, 0, -3, 8, -11, 19, -8, 22, -34, 13, -35 },
- { -1, -3, -1, 9, 11, -3, -3, -1, 7, 18, 11, -5, 2, -12, -11, 18,
- 9, -5, 1, -6, -9, 12, 1, -3, -3, -9, -14, 9, 9, 8, -6, -26 },
- { 0, 5, -5, -1, -1, -2, 4, 6, 8, 2, -1, -2, 5, 1, -5, -4,
- 1, 1, 18, 1, 7, -10, 3, -2, 12, -1, -15, 9, 12, -14, 13, -38 },
- { 3, 0, -8, -1, 0, 8, -9, -3, -8, 16, 3, 16, -5, -9, 0, -1,
- -7, -1, -4, 13, 7, 0, 1, 2, -1, -16, 0, -2, 1, 8, -8, -28 },
- { 7, 9, -5, -3, -2, 2, 0, 3, 11, -6, -4, -2, -2, -5, 28, -18,
- -6, 2, 15, -10, -15, -10, -2, 0, -2, -2, 4, -3, 7, 11, 5, -30 },
- { 9, 0, -7, -1, -4, -7, 2, 2, 9, -2, 2, 3, -8, -6, -6, 3,
- -10, 4, 10, 5, 21, -4, 14, -18, 1, 3, -10, -2, 6, 14, -8, -26 },
- { -14, -1, 2, 3, -3, 7, 1, -22, -1, -1, 0, 1, 12, -14, 3, -5,
- 0, 10, -3, 1, -5, 12, -3, 10, -8, -22, -11, -13, -7, -10, -13, -25 },
- { -2, -5, -4, -4, -9, -18, 9, -3, -5, 17, 13, 5, 6, 11, 3, 8,
- 20, 4, 2, 9, 8, 5, 6, 1, 7, -7, -6, -2, -7, 0, -17, -23 },
- { -5, -5, 2, 0, 6, 2, -2, 2, -3, 4, 4, 0, -5, -2, -4, 6,
- 8, 10, -1, 1, -5, 5, -14, -2, -11, 8, 6, 25, 7, -1, 0, -43 },
- { -4, 0, 4, -2, 7, 0, 3, 17, 5, 2, -5, 1, 21, 3, -2, -10,
- -16, -9, 7, -12, 9, -8, 2, 5, -5, -10, -2, -11, -5, -1, -9, -30 },
- { -2, 3, 1, -4, -1, 0, 8, 1, 12, 4, -1, -1, 3, -17, 13, 9,
- 0, 7, -6, -5, 9, 1, 5, 4, -10, -18, 0, 14, 11, -4, -16, -28 },
- { -1, 0, 2, -1, 4, 1, -1, 1, -1, -2, -1, -2, 3, 0, 0, -1,
- -1, 1, 2, -2, 3, 3, -2, 4, -2, -1, -6, 1, -1, -1, 6, -70 },
- { 7, 3, -11, -1, 12, -4, -14, 4, 4, -4, 4, -2, 2, -12, -4, 15,
- -17, -4, -3, 6, 8, -5, 22, -22, 5, -11, 15, -4, 4, -1, -21, -1 },
- { 10, -2, -13, 11, 4, 14, 4, 9, 8, 8, 19, 15, 14, 15, 5, 10,
- 8, 15, -5, 4, 14, -8, 1, 1, 2, 1, -1, -3, 21, 8, -29, 13 },
- { -6, 0, -6, 6, -1, 2, 8, -4, -5, 4, -4, -5, 0, -2, -4, 0,
- 9, -2, 1, -2, 26, -19, 21, -10, 4, 1, -8, 5, 22, -10, -13, 15 },
- { 11, -5, 1, 0, 6, 3, 7, -2, -2, -3, -5, -1, -2, -6, 1, 1,
- -8, -5, -13, 13, -2, -3, -1, -9, -28, 4, 2, -11, 18, -20, -24, 9 },
- { 7, 4, -3, 6, 6, -6, -7, -5, -7, -4, -4, 0, -7, -5, -6, -5,
- 2, -13, -12, 2, 0, 5, 18, 15, -13, -7, 13, -20, 16, -10, -19, 6 },
- { 5, -8, -1, 5, 10, 2, -1, -10, -11, 23, 8, -5, -8, 4, -5, -4,
- -5, -5, -11, -8, 5, 1, 7, -9, -9, -6, 12, 14, 17, -12, -22, 3 },
- { -5, -8, -3, 3, 12, -1, 0, -4, -5, 1, 1, 6, 1, 5, -5, 7,
- -2, 7, 1, 6, 6, 2, 0, -5, 17, -4, -5, -24, 13, -20, -27, 14 },
- { -1, 2, -3, 1, -3, 1, -3, 0, -2, 3, -2, 1, 2, -1, -2, -1,
- -2, -5, 5, -2, 0, -7, 1, -6, 8, 8, 11, -5, 24, -43, -13, 2 },
- { -2, 4, 7, -3, -4, 4, 13, -4, 0, 0, -2, 9, 0, -3, -6, 1,
- -7, 1, -1, 10, 0, 5, -1, -24, 25, -15, 7, 2, 22, -10, -21, 0 },
- { -5, 2, 6, -2, 13, 3, 5, -12, -11, 16, 6, 10, -5, 0, -3, 6,
- 5, -5, -5, 10, 12, 10, 11, -7, 8, -14, 2, -15, 13, -14, -8, -3 },
- { 5, 6, -7, -5, 5, 2, 9, 5, 0, -1, -4, 2, 8, 0, 3, 5,
- -12, 3, -3, -6, 2, -1, -5, 14, 11, -20, -21, -25, 24, -1, -10, 6 },
- { -5, 5, -2, 9, 4, -4, -1, -6, 11, -6, 5, 0, 2, -3, 6, -1,
- -17, -18, -4, -13, 9, -1, 9, -7, -4, -8, 2, -3, 12, -31, -18, 5 },
- { -7, -11, 6, -8, 4, -3, -12, 0, -1, -6, -3, 0, 5, 9, 7, 2,
- 1, -8, -6, 8, 2, -5, 7, -1, 16, -10, 16, -12, 18, -1, -25, -12 },
- { 3, -12, 1, 2, -2, -18, -8, -15, -10, -9, 2, -7, 11, -11, 2, -1,
- -1, -1, -9, -6, 3, -14, -2, -1, 2, -13, -7, -9, 19, -5, -17, 2 },
- { 7, 1, -8, 7, 17, -13, -10, 5, 7, 1, -6, 4, 9, -4, 0, 3,
- 8, 1, -14, -9, 4, 7, -9, 0, 6, -5, -12, -2, 25, -2, -19, 1 },
- { 7, -3, 6, -3, 1, 6, -7, 0, 10, 0, 4, -5, -17, -4, 4, -1,
- 0, -3, -7, 19, 24, -1, 21, 8, 10, 9, 8, -1, 23, -2, -18, -2 },
- { 3, -3, 0, 5, 8, -2, -9, 2, 9, 6, 19, 8, 2, 6, -9, -2,
- -4, -3, -8, 7, -7, -8, 5, 4, 26, -6, 7, 18, 24, 0, -13, 4 },
- { 0, -13, -11, -1, 3, -9, 5, 4, -7, 3, 0, 2, -1, 4, -5, 2,
- 9, -2, -11, 15, 1, -21, 1, -1, 0, 4, -14, -4, 24, -16, -13, 1 },
- { 1, -9, -8, 0, 0, -4, 11, -1, 14, 16, 0, 17, -2, -9, -12, 0,
- -1, -14, -9, -14, 0, -2, 19, 4, 6, 4, 4, -11, 8, -17, -19, -5 },
- { -3, 1, 2, 12, -4, -18, -1, -4, -7, 14, -3, 2, 0, -7, -8, 12,
- -5, -9, 14, 12, -9, -2, 4, -6, 4, 18, -1, -25, 22, 2, -23, -5 },
- { -2, 0, 0, 0, 1, 3, 5, -1, 5, -2, -2, 2, -3, 0, 1, 2,
- 0, -1, 2, -1, -9, -6, -7, -4, -2, 4, -7, -5, 64, -3, -25, 4 },
- { 12, -2, -3, 0, 8, -9, 13, -7, 6, -3, -12, 12, 15, -9, -4, 2,
- 9, -4, -12, 3, 14, 1, 7, -15, 15, 0, -6, -12, 0, -3, -20, 6 },
- { 2, -1, -4, 5, 9, 6, -7, 2, -2, -7, -2, 0, -1, -18, -4, -6,
- -15, -5, 11, 5, -10, -1, 2, 7, 12, -19, -7, 8, 21, -4, -15, 4 },
- { 4, 2, 5, 5, -5, 1, 3, 2, -8, 13, 0, -5, -2, -14, -11, 6,
- 2, 17, 8, -13, 26, -2, 5, -15, -4, -14, 12, -9, 13, -21, -23, -4 },
- { 2, -3, -2, -3, 3, -2, 6, 9, -9, 13, 4, 2, 12, -3, -3, 1,
- -17, -22, -3, 4, 3, -2, 1, -9, 1, -6, 11, -13, 14, 0, -15, 6 },
- { -16, -4, 17, -2, -20, -11, 11, 10, 5, -8, 16, 2, -17, -14, 11, 11,
- -6, -11, -7, 12, 12, -10, -6, 5, 8, -4, -2, -5, 28, 3, -13, 4 },
- { 0, -3, 3, -7, 6, 8, -12, 20, -19, 18, -11, 10, -5, 0, -9, 11,
- 3, 0, -2, 9, -7, -5, 18, 3, -2, -16, 1, 6, 12, -7, -16, 1 },
- { 4, 1, 5, -5, 15, 2, -8, 3, 5, -11, 15, -3, 8, -8, -1, 7,
- 4, 7, -2, 6, -9, 5, 12, 2, 33, -2, -6, -18, 4, 0, -18, 11 },
- { 3, -1, 1, -1, 0, 1, 4, -1, -5, 0, 1, 0, 4, 2, -1, 4,
- -3, 2, 0, -2, 4, 6, -1, 6, 42, 19, -4, -37, 19, 1, -15, -4 },
- { 2, 0, -5, 0, 10, 0, 0, -5, 3, 0, 0, -3, -3, 0, 2, -4,
- -10, 2, -6, 4, 4, 1, 27, -7, 17, -34, 5, -9, 15, -16, -7, -5 },
- { -2, 7, 7, -2, 9, -2, -15, 11, 11, 7, 5, 1, 15, 1, -9, 31,
- 2, -15, 2, 4, 3, 4, -1, -8, 2, -7, 6, -17, 11, -14, -11, 2 },
- { 1, 1, -11, 9, 9, -6, -14, -11, -10, 8, -3, 11, 16, -9, -8, -13,
- -8, 9, 0, 6, 6, -2, 13, -8, -2, 3, 13, -3, 10, -6, -17, 4 },
- { 14, 5, 4, -6, -12, 10, -7, 8, 21, -8, -30, 15, -2, 1, 11, -9,
- -5, 1, 0, -1, -1, -6, -2, 3, -5, 7, 9, 5, -5, 2, 0, 1 },
- { -1, 2, 20, -17, -15, 3, 3, 7, 11, -17, -13, -6, -3, 18, 17, -15,
- -4, -4, -5, 22, 14, -14, -2, -10, -7, 11, 8, -7, -3, 0, -7, 11 },
- { 7, -11, -7, -8, -14, 22, 5, 2, 6, 13, -12, -2, 10, 3, 0, -21,
- -4, 20, 3, 10, 21, -10, -12, 8, 11, 2, -5, 2, 1, 3, -1, 15 },
- { -1, -2, -1, -2, -13, 8, -4, 0, 7, -2, -17, 8, 18, 5, 3, 8,
- -8, -2, 3, -4, 14, -18, -13, 14, 15, -13, -1, -2, 4, 11, 1, 12 },
- { 13, -6, -4, -16, -17, 16, 21, -2, 5, -11, -9, 19, 21, -17, -3, -17,
- 3, 12, 8, -12, -6, 1, -7, 9, 9, -7, -5, -1, -3, 5, -6, -4 },
- { 11, 5, 12, -20, -6, 10, 4, 12, 8, -5, -10, 15, 13, 14, 10, -15,
- -13, 1, 6, 14, 15, -17, -13, 4, -5, 10, 7, -6, -8, -3, -4, 12 },
- { 25, -1, 7, -5, -7, 11, 1, 17, 13, -15, -14, -4, 5, 3, 8, -3,
- -2, 2, 0, 6, 16, -12, -6, -4, 4, -3, 7, -10, -3, -7, -13, 7 },
- { -8, 10, -3, -13, 5, 2, 4, 9, 9, -17, -13, 2, 11, 1, 6, -4,
- 8, -10, 4, 1, 19, -15, -4, 12, 31, 7, -5, -17, -4, 9, -2, 7 },
- { 14, -6, -6, -6, -14, 13, 17, -5, 4, -14, -9, 7, 7, -9, 3, -16,
- -15, 11, 11, 6, 4, -11, -19, 3, 5, 8, 13, -14, -14, 3, -4, 12 },
- { -2, -4, 10, -4, -7, -1, 27, 5, 2, -16, -18, 4, 12, -2, -3, -2,
- -1, 1, -8, -12, 3, -4, 8, 15, 2, 4, 9, -13, -14, 9, -7, 5 },
- { 4, 2, -10, -5, -7, 2, 1, 4, -1, -6, -15, 6, 1, 10, 5, -10,
- -9, -1, 13, -3, 5, -21, -11, 8, 8, 5, 27, -21, -18, -5, -1, 15 },
- { 11, 1, -16, -8, -11, 0, 5, -8, -12, -13, -17, 22, 4, -6, -1, -18,
- -10, 0, 19, 2, -2, -8, -7, -3, 2, -2, -9, -17, -5, 4, 4, 10 },
- { 8, -6, -19, -5, -4, 12, 14, 15, 10, -9, -1, -9, 19, 12, 0, -1,
- 2, 4, 7, 9, 16, -16, -14, 9, -4, 3, 1, 0, -2, 10, -1, -1 },
- { 12, -8, 12, -9, 0, 25, 7, 9, 2, -31, -9, -4, 15, 4, -5, 1,
- -10, 11, 8, 10, 0, -6, 5, 11, -1, -6, 4, -10, -9, 6, 4, 5 },
- { 14, 6, -17, -2, 17, 12, -9, 2, 0, -25, -14, 5, 20, 14, 8, -20,
- 5, 2, -2, -3, 9, -13, -3, -1, -6, 3, 7, -6, 0, 2, 3, 1 },
- { 8, 4, -15, -3, 10, 18, -4, 13, 8, -22, -10, 9, 19, -15, 7, -5,
- -13, 12, -4, 9, 2, -9, -6, 0, 2, 1, -9, -6, 6, 1, -1, 11 },
- { 4, 1, 4, -5, -10, 18, 7, 2, -4, -9, -11, 0, 32, -7, 4, -16,
- -1, 0, 6, 3, 6, -3, -14, 16, 9, -2, 7, -1, 0, -5, 5, -3 },
- { -3, 2, 3, -8, -6, 4, 6, 2, 4, -12, -15, 2, 8, 8, 9, -3,
- -18, 6, 34, 11, 12, -15, -1, 2, 9, 2, -4, -4, 2, 4, 2, -3 },
- { 18, -6, -12, -8, -1, 15, 20, -4, -1, -11, -5, 6, 6, -11, -15, -7,
- 3, 7, 10, 2, 8, -10, -5, 8, 15, -5, 5, -17, -13, 13, 11, 7 },
- { 8, -4, -6, -1, -14, -3, 6, -2, 1, -5, -1, 10, 10, -15, 5, 0,
- -10, -4, -3, 7, -4, -19, -15, 27, 11, 18, 3, -19, -2, 6, 0, 12 },
- { 12, 0, -5, 0, 4, -5, 1, 5, 10, -7, -11, 21, 29, 1, -2, 1,
- -4, -11, -1, 13, 11, -20, -1, 4, 4, 4, -5, 6, -13, -2, 11, 9 },
- { 2, -7, -7, -3, -10, -1, 20, 12, 1, -19, -19, -1, 5, 4, -7, -25,
- 14, 1, -3, 2, 12, -4, -3, -3, -2, 6, 1, 0, 3, 2, 5, -1 },
- { 12, -8, 3, -12, -10, 10, 13, 0, 23, -14, -18, 10, 0, 15, 3, -12,
- -3, -5, 5, -4, 2, -14, -10, 8, 2, 9, -1, -11, -3, 5, 13, 2 },
- { 9, -6, 7, -7, -30, 17, 6, 13, 1, -14, 0, -1, 6, -9, 8, 3,
- -4, 0, -1, -7, -5, -13, -19, -3, -4, 4, -6, -2, -13, 1, -2, 3 },
- { 10, 1, 3, -18, -26, 17, 4, -16, 4, -3, -13, -4, -6, -11, -4, -21,
- 7, 8, 2, 5, 13, -6, 1, 5, 8, 7, 9, -6, -6, 1, -1, 2 },
- { -3, -1, 0, -2, -2, 0, -1, 3, 4, -14, -8, -9, 13, 2, 50, -23,
- -8, 8, 7, 11, 16, 3, -7, 0, -2, 6, 5, -1, 1, -2, 4, 3 },
- { 1, 3, 1, 1, -6, 3, 6, 6, 2, -2, -3, 10, 2, -8, -5, -5,
- 5, 4, 4, -2, 10, -8, -40, -1, 21, 8, 3, -4, -1, 13, 4, 7 },
- { 2, 0, -4, -8, 5, 2, 7, -5, 5, -8, -4, -1, 12, 2, 12, -13,
- -9, 0, 1, -12, 9, -43, 1, -5, 12, 1, 3, 6, 1, -1, 3, -2 },
- { 6, -2, -1, 1, 0, 4, 8, 14, 4, -7, -23, -5, 23, -17, -6, -15,
- -8, 7, 10, -1, 7, -16, 4, -6, 2, 3, -3, -3, -1, 8, -1, 4 },
- { 10, 4, -4, 1, 7, -3, 2, 11, 4, -6, -3, 8, 5, 4, 1, -45,
- -6, -4, 4, 2, 1, -14, -10, 1, 1, 6, 2, -8, -1, -3, 3, 3 },
- { 1, -1, 2, -3, -8, 9, 3, 3, -2, -5, -8, 8, 7, -7, -4, -6,
- 5, -9, 11, -2, 46, -5, -1, 9, -2, 0, 3, -5, -3, -5, 7, 0 },
- { -4, 1, -2, -1, -11, 11, 8, -3, -2, -10, 0, 4, 9, 9, -17, -17,
- -34, -4, -5, -7, -3, -12, -3, 11, 18, 3, -2, -5, -18, -5, -3, 6 },
- { 7, -5, -3, 1, -4, -3, -5, -1, 2, 5, -2, 3, -10, 12, -18, -5,
- -10, 12, -9, 4, -6, 2, 0, 16, -17, 15, 14, -12, -10, -2, -9, -1 },
- { 4, -5, -3, -5, -3, -1, 7, 18, -7, 12, 3, 5, -8, -4, -20, 1,
- -25, 1, -8, 13, -10, 8, -19, -1, -8, 10, 6, -9, -1, 0, 12, 4 },
- { -4, 5, 0, -1, 2, 5, -8, -2, -6, 4, -8, 9, 3, 2, -7, 4,
- -25, 13, -23, 10, 14, 15, -11, 3, -18, 4, 16, -4, 1, -10, -10, 3 },
- { 5, -3, -1, -3, 4, 1, -3, -4, -5, 1, -12, 14, -7, 11, -15, 6,
- -6, 24, -4, 13, -1, 15, -13, 8, 3, 7, -5, 2, 2, 0, 3, -7 },
- { -3, 1, 0, 8, 6, -1, 6, 5, -5, -2, -12, 4, 0, -2, -3, 5,
- -6, 0, -8, 9, -10, 4, -28, 12, -20, 11, -13, 7, -18, 1, -11, 1 },
- { 1, -4, -15, 5, 0, -13, -5, 13, -11, 4, -4, -5, 5, -14, -16, 0,
- -14, 5, -20, 12, 10, -7, -5, 6, 6, 22, 6, -4, -2, 3, 8, 11 },
- { 13, -11, -2, 16, 16, -7, 0, 20, -7, -1, 0, 5, -9, 12, -2, -5,
- -22, 5, -10, 12, -6, 11, 9, 21, -8, 15, 4, 0, -8, -4, -4, 10 },
- { 18, -4, -13, 0, 1, -15, -1, -3, 2, 10, -1, 6, 1, -4, -20, -5,
- -8, 6, -8, 17, -5, 5, -10, 8, -22, 6, -5, -2, 8, -17, 8, 2 },
- { 1, -2, -9, 6, -31, -8, -8, 8, 0, 5, -9, -4, 2, 3, -12, 11,
- -18, 10, -5, 3, -11, 13, -6, 11, -3, 12, -7, 3, -9, -1, 2, 11 },
- { -9, -6, 21, -8, -15, 4, -11, 12, -11, 17, -1, 2, -6, 0, -15, 13,
- -12, 19, 0, 2, -6, -3, -9, 10, 3, 17, -2, 5, -10, -3, 0, 1 },
- { 4, -6, 5, -10, 1, -5, 1, 0, 0, 0, 2, 7, -2, 2, -2, 0,
- -4, 3, -4, 1, -12, 6, -49, 16, -10, 13, 0, -2, 8, 6, 1, 8 },
- { 5, -8, -7, 9, 13, -5, 7, 0, 10, 11, -4, -3, -1, 13, -14, 6,
- -15, -6, -14, 16, 15, 1, -18, -4, -20, 20, -7, -1, -9, -2, -10, 10 },
- { -12, 4, 0, 10, 0, 3, 8, 4, -27, -1, -2, 19, -4, 2, -13, 3,
- 1, 9, -12, 1, -22, 19, -5, 4, -9, 12, 2, -9, -8, 11, -3, 7 },
- { 4, -5, 11, -6, 17, -17, 5, -4, -2, -6, 1, -5, 2, 4, -14, 6,
- -20, 19, -20, 12, -21, 5, -14, 13, -2, 11, 4, -3, 0, -10, -4, -2 },
- { -2, -1, -3, 8, -9, -7, -22, -3, -24, 13, -2, 10, -15, 5, -9, 4,
- -7, 0, -5, 15, -8, 11, -13, 6, -4, 19, -8, 12, -4, 6, 9, 7 },
- { 2, -3, 2, -1, 0, 3, 1, 2, 1, -4, -2, -3, 1, 5, -12, 6,
- -16, 14, -23, 10, -14, 17, -15, 16, -2, 9, -25, 9, -10, 16, 4, 9 },
- { -3, 7, -8, -3, 2, 2, -4, -8, -9, 10, 3, -11, 25, -10, -28, 27,
- -9, 7, -13, 9, -2, 4, -12, -8, -14, 6, 7, -10, 3, 3, -3, 5 },
- { -8, -3, 1, -10, 8, -3, -9, -4, 13, 7, 2, 4, -10, 4, 3, 7,
- -18, 2, -22, 15, 4, 20, -7, 5, -6, 13, -1, 4, -7, -6, 6, 13 },
- { -2, 3, 0, 2, -4, -2, 0, 0, 1, 2, -2, -5, 0, 1, -4, 0,
- -2, -3, 1, 2, -1, 2, -8, -1, -24, 68, -3, 8, 3, 3, -1, -1 },
- { -15, -2, -9, -7, -1, 8, -14, 8, 3, 6, 0, -1, -8, 8, -23, 2,
- -14, 17, -15, 8, -4, 7, -18, 0, -8, -3, -1, -4, -10, 4, -1, 4 },
- { 8, 0, 2, -7, 0, 5, 1, 3, -11, 4, -8, 14, 3, 20, 1, 26,
- -11, 13, -13, 20, -2, 0, -8, 2, -6, 6, -1, 9, 3, -6, -3, 10 },
- { 5, 0, -1, -7, 10, 1, -3, 5, 4, 7, -5, -1, -3, -1, 12, -3,
- -15, 7, -9, 22, -19, 8, -9, 4, -23, 13, -14, 6, -6, -14, -4, 7 },
- { 14, -5, -8, -10, 25, 3, -23, -7, -28, 0, -1, -9, 4, 1, -13, 20,
- -8, 10, -16, 8, 12, -13, -21, 5, -13, 11, -2, 1, 12, -7, 2, -10 },
- { -5, -4, 9, 5, -6, 35, -7, 8, 15, 2, -1, -9, -6, 2, -18, 7,
- -15, 6, -3, 2, 8, 12, -30, 7, -4, 20, 2, 6, 13, -6, -4, 0 },
- { 1, 8, -9, 9, -5, 12, -9, 16, -9, 16, -17, 14, -13, 15, -18, 14,
- -15, 17, -12, 14, -13, 7, -16, 13, -9, 5, -11, 10, -9, 6, -12, 13 },
- { -10, -4, 5, 3, 1, 6, 8, -14, -5, 15, 7, 4, 8, 7, -22, 8,
- -7, -8, -15, 26, 1, 13, -3, 17, -5, 9, -2, 4, -6, 3, -8, 9 },
- { 8, -3, 2, 3, 3, 1, -2, -1, -11, 8, -4, 0, -6, -5, -1, 13,
- -37, 9, 1, -6, -10, -2, -10, 11, 8, 13, -3, -2, -6, 8, -4, 13 },
- { 3, 2, -3, -4, -4, 7, -8, 9, -8, 9, -20, 12, -19, 15, -18, 17,
- -15, 7, -1, 20, -11, 6, -6, 3, 1, 9, 2, -14, -2, -2, 2, 1 },
- { -7, 1, -1, -3, -6, 4, 4, -3, 3, -1, 5, -4, 3, 2, -1, 9,
- -59, 5, -4, 30, 3, 3, -2, -3, -1, 2, 2, 1, -1, -1, -2, 1 },
- { 0, -3, 2, 0, -1, -8, 0, 2, -3, 4, -4, 1, 10, 6, -6, 8,
- -7, 4, 10, 11, -41, 27, -20, 3, -3, 8, 1, 11, -5, -8, 0, 4 },
- { 5, 1, 4, -2, 1, 2, -1, 6, -7, 2, 11, 4, 0, 0, -8, 7,
- -10, 0, 0, 8, 2, 10, -1, 1, -2, 44, -2, -21, -12, -3, -1, 2 },
- { -4, 4, -2, -2, 6, -8, 2, 1, -10, 14, 8, 6, 5, 1, -2, 4,
- -13, 4, 2, 5, 10, -2, -21, 32, -3, 18, 9, -6, -9, -9, 10, 2 },
- { 9, -16, -6, -2, 1, 4, 22, 2, -2, 1, -3, -2, -9, 3, 16, 19,
- -24, -6, -6, -5, -8, -7, 8, -7, -1, -12, 5, -3, 0, 4, 2, -3 },
- { 10, 3, -16, -4, -1, 13, 4, 4, 1, -3, 1, -6, -14, 18, 3, 8,
- -8, -28, -16, 4, 4, 2, 12, 7, 9, -4, -4, 5, -1, -1, 2, 2 },
- { -5, -13, -22, -3, -8, 21, -2, -9, 21, -4, -9, 5, -8, 15, 5, 1,
- -5, -9, -7, -2, -5, -5, -1, -5, -5, -5, 3, 10, -4, 0, -7, -2 },
- { 5, -10, -18, 2, 20, 4, 13, -10, 8, -15, -11, -3, -1, 16, 10, 9,
- -8, 6, 7, -5, 6, 11, 5, 17, -4, 7, -11, 5, -3, -6, 2, 1 },
- { 3, -5, -19, 1, 1, -3, -2, -25, -11, -17, 0, -13, -4, 10, 10, 2,
- -5, 4, 0, 3, -3, -5, -10, -2, 13, -22, 0, 3, -11, -5, 7, -1 },
- { 12, -14, -29, 6, -1, 10, 7, -17, -12, 14, 3, 9, -9, 9, 7, 6,
- -3, -13, 0, 5, 3, -1, -6, -1, 0, 2, 4, -12, -5, -1, 2, 11 },
- { 12, -15, -7, -2, -12, 17, 20, -16, -2, -12, -6, 15, -6, 12, 11, 9,
- 7, -6, 7, -4, -19, 6, 2, 2, 3, -11, -10, -4, -5, -3, 3, 2 },
- { 11, -22, -6, 0, 8, 18, 3, -11, -4, -7, -15, -17, -12, 6, 16, 4,
- -9, 4, -5, 3, 6, -16, 10, -7, -7, -3, 5, 0, 1, -15, -4, 5 },
- { 12, -22, -16, 5, -6, 8, 12, -4, -9, -17, -11, 3, 5, 8, -17, 0,
- 11, -4, -13, -6, 2, -1, -1, 3, 3, -11, -12, -1, 1, 1, 12, -2 },
- { 8, -10, -33, -5, -3, -6, 1, -7, -8, -4, -6, -1, 5, -4, -6, -12,
- -16, -8, 11, 8, -14, 7, 12, 11, 4, -14, -3, 6, -7, -5, -3, 3 },
- { 0, -8, -7, 2, -4, 24, 2, -9, -11, -3, -7, 11, -12, 17, 1, -1,
- 3, -5, -7, 12, 4, 11, 0, 3, 2, -18, -3, 4, 7, -6, 3, 15 },
- { 10, -15, -16, -2, -4, -9, 7, -15, -6, 2, -16, 13, -8, 7, 19, -21,
- -4, -12, -9, -3, -3, 6, 11, -3, -1, -19, 3, -7, -9, -4, 3, -6 },
- { -5, -10, -21, 0, -3, -7, 18, -21, 15, -5, -12, -4, -13, 2, 6, -9,
- -9, -11, -4, 13, -3, 6, 4, -1, 7, -9, -4, 9, 5, 2, 6, 3 },
- { 15, -1, -27, -2, 10, 3, 7, -8, 9, -2, 7, 1, -2, -5, 18, 9,
- -11, -17, -2, 7, -9, 11, 10, 0, -8, 6, -16, -3, 2, -7, 3, 11 },
- { 4, -9, -39, 19, 6, -13, 13, -5, -5, -15, -2, 9, 0, 4, 14, 6,
- -10, -4, -5, 2, -4, -2, 5, -11, 3, 3, -2, -2, -7, 9, 7, -10 },
- { 5, -11, -8, 10, -2, 12, 16, 0, 12, -2, -6, 8, 14, 8, 7, 1,
- 18, -30, 4, 10, -4, -6, 2, -11, 9, -10, -8, 5, 0, 0, -7, 6 },
- { -1, -16, -10, 11, 0, 13, 12, -4, -4, -5, -21, 12, 4, 13, 14, -7,
- 6, -16, -13, 8, 2, 9, 15, -12, 1, -9, -22, 10, -9, 9, 9, -7 },
- { 4, -12, -27, 1, -2, 11, 15, 3, 14, -14, -9, 0, -9, 16, 22, 10,
- 16, -10, 5, -5, -9, 1, 1, 6, 6, -4, 2, -17, -5, -6, -15, -1 },
- { 7, -12, -17, 1, -9, 5, 20, -7, 3, 23, -8, -8, -8, -1, 13, 17,
- -7, -13, 4, -4, 7, 14, 8, 11, -3, -3, 4, 0, 4, 6, -1, -9 },
- { 7, -15, -15, -4, 10, 12, 3, -13, 6, 14, 9, -8, -15, 14, 23, -5,
- -10, -5, 1, 15, -10, -7, 1, 9, 4, -13, -10, 10, 7, -3, 2, 3 },
- { 4, -10, -14, 0, 3, 4, 0, -9, -3, -4, -11, 2, -17, 8, 2, 15,
- 6, -12, -12, 15, -5, 17, 18, 3, -3, -3, -4, -6, -8, 13, 4, 10 },
- { -2, -18, -26, 10, -4, 10, 13, 4, -4, -16, -7, -17, -3, 5, -4, 2,
- -15, -10, -1, -8, -7, -3, 2, 2, 8, -10, -7, 2, 2, -4, 4, -1 },
- { 4, -19, -5, -1, -1, -6, 2, -8, 10, -16, -28, -6, 8, -1, 11, 28,
- 2, -10, -4, 6, -6, 6, 11, 15, -4, -2, 7, 3, 7, -7, 4, 1 },
- { -3, -6, -10, -5, 13, 18, 10, -15, -5, -3, -13, 5, 1, 2, 18, -5,
- -10, -10, -7, 4, 2, 1, 5, 4, 2, 5, 4, 8, -9, -17, 7, 7 },
- { 20, -12, -2, -4, 5, 14, 7, -11, -1, -16, -6, -4, -11, 17, 14, 0,
- -8, -10, -8, 10, 3, 5, 10, -16, 3, -8, -14, 10, 3, 9, 0, 3 },
- { 12, -10, -36, 0, 7, 15, 2, -16, 2, -1, 0, -1, 5, 4, 5, -3,
- 1, -10, 5, -1, -15, -3, -12, 12, 2, 5, -1, 5, 6, -3, -2, 2 },
- { 17, -15, -31, 23, -4, 15, -2, -3, 6, -7, -5, 1, -12, 4, 6, 8,
- -10, 8, 3, 5, -4, 1, 5, 3, -1, -4, -3, 1, 10, -4, -2, -2 },
- { 6, -18, -5, 12, 10, 12, 14, -11, 15, 2, -9, -6, -5, -2, -9, 4,
- -5, -28, -4, 14, 0, -16, 9, 14, -1, 3, -4, -4, 2, 1, 0, 4 },
- { -5, -14, -31, 8, 16, 7, 13, -13, 5, 6, -16, 10, -5, 2, -2, 2,
- 14, -5, 8, -5, 7, -16, 6, -13, -5, 0, -5, 8, -3, -1, 4, 3 },
- { 1, -2, -1, 0, 6, 5, 2, -4, -3, -1, 0, 1, 4, 2, 43, 28,
- -12, -35, -2, -2, -7, -1, 0, 2, -1, -2, -2, 1, -4, 0, -2, 3 },
- { 2, -9, -22, 12, 3, 3, -7, -4, -19, -22, -14, -4, -1, 21, 9, -3,
- -15, -16, -13, 1, -11, 4, -9, 1, -7, -1, -1, 0, -2, 9, -13, -3 },
- { -1, -3, -23, 0, 2, 12, 3, -9, -4, 7, 3, 9, -10, 1, 27, 28,
- 0, 9, -15, -2, -2, 1, 6, 8, -8, 7, -3, 20, 0, 0, -1, -6 },
- { -1, 11, 8, -2, 1, 5, -6, -1, 4, 2, -4, 0, -1, -5, 4, -6,
- -10, -12, 19, 1, -7, 9, -8, -9, -16, -11, -2, 12, 14, 4, 4, 34 },
- { 17, 7, -6, 1, 4, -10, -5, 4, -11, 3, -18, 4, 14, -13, -3, 1,
- 0, 0, -11, 0, 7, -17, -4, 4, -11, -6, -8, 18, 0, 0, 0, 26 },
- { -6, -7, -1, -1, 11, -8, 1, 3, 2, 11, -6, -6, 10, -3, 1, -3,
- 7, 4, -12, -8, 0, -9, 8, -22, -5, 0, -6, 22, -2, 11, -13, 24 },
- { -3, 4, 0, 3, 9, 10, -1, 3, -9, -12, 1, -5, 18, 0, -3, 8,
- 25, 15, -8, 2, 2, -2, 4, 8, 9, -1, -5, 10, -3, 1, -1, 23 },
- { -5, 2, -9, -1, -3, 0, 3, -1, -10, -4, 0, -13, 16, 9, -1, -14,
- 2, 6, -2, -6, -5, -2, -7, 7, 5, 3, 11, -2, -14, 0, -9, 30 },
- { 4, 6, 6, 5, -3, -1, 4, 5, 10, 0, 5, -4, 7, -11, 14, 14,
- 7, 34, -9, 0, -10, 22, -7, -1, 7, -9, 2, -8, 0, -7, -5, 29 },
- { -4, 3, -1, -4, -3, 5, 1, -4, 0, 2, 4, 2, 1, -1, -10, 1,
- 6, -6, -4, 1, 4, -3, -3, -5, 0, 3, 7, -12, 0, -2, -10, 55 },
- { 5, 9, -1, 0, 4, 9, -21, -9, 4, 2, 6, -7, 11, -7, 1, -5,
- 0, -4, 2, -3, -13, -8, 0, -9, -4, 2, 16, -2, -15, -7, -11, 31 },
- { 8, 2, -1, 0, 3, -5, -5, 5, 1, -1, -9, 1, 0, -6, -2, -1,
- 5, 2, 0, 0, 12, 20, -19, 1, 8, -12, -11, 0, 6, -5, 2, 31 },
- { -1, -1, -2, 1, -1, 3, -9, -5, 8, -2, 5, -1, 0, -2, 4, -2,
- -3, -12, 0, -2, 3, 0, 9, 4, -1, 21, -8, 3, -4, 9, -6, 30 },
- { -4, 0, -7, 17, 10, -12, -2, -10, -12, -3, 10, 0, 11, -4, -13, -3,
- 5, 6, 10, 7, -8, 0, -7, -13, 1, 0, -2, 7, -12, 4, -3, 24 },
- { -13, 9, 4, -2, 2, -4, -14, -1, -3, -5, -10, 4, 13, -2, 5, 13,
- 8, 3, -2, 1, 5, -6, 7, -18, -10, 1, -1, 5, 4, 1, 0, 25 },
- { -5, -1, 18, 12, 8, 8, -16, -1, 1, 1, 1, -4, -5, 3, 3, 4,
- 4, -11, -12, -16, -6, 2, 12, -13, 0, 9, 7, 9, -9, 0, -10, 24 },
- { -4, 1, -3, 0, 2, -4, 4, 1, 5, 0, -3, 2, -3, -2, 2, -1,
- 1, 4, -1, -2, -2, 1, -1, -1, -4, -1, -4, -2, -6, 6, 12, 69 },
- { 8, 5, 11, 0, -15, -4, 13, 6, 0, -4, 9, 1, -5, -3, 15, 0,
- 1, 6, -5, 0, 1, 6, 5, 8, 0, 7, 1, -1, -4, -11, -9, 41 },
- { -4, -9, 32, -6, 0, 7, -4, 6, -6, 1, -6, -2, 4, -8, -5, -3,
- -16, -1, -2, -6, 1, 15, 0, 21, 3, -3, -4, 3, -12, 16, 2, 27 },
- { -6, -5, 1, -9, -5, 3, 7, -3, 5, 5, 14, 13, 20, -7, -1, 12,
- -1, 10, -11, -11, -7, -4, -14, 7, -14, 13, 22, 18, -1, 0, 14, 28 },
- { -8, 3, -2, 0, 5, 6, -1, -4, 1, 3, -7, 3, 1, -15, 4, -9,
- 22, -10, -9, -4, 1, 8, -4, 9, -15, 2, -6, -4, -16, 12, -10, 23 },
- { 0, 0, 2, 0, -1, 3, -3, -1, 3, -5, 7, 1, 5, -5, -8, 1,
- 13, -15, -5, -7, 12, -6, -2, 3, 10, -5, -8, 17, -5, -11, -14, 23 },
- { -7, -4, 6, -4, 5, -6, -5, 2, -4, 11, 9, -4, 2, -2, -4, 6,
- 15, 3, -3, 18, -15, -2, -6, 3, 3, -20, 17, 11, -4, 2, 3, 29 },
- { 6, 1, -6, 2, 3, 0, 0, -3, 3, 3, -1, 3, -4, -6, -6, -7,
- -3, -2, -7, -2, -4, 5, 3, -5, -20, -13, -4, 10, -14, -29, 14, 37 },
- { 3, 4, 3, -6, -4, 5, 0, 3, 2, 3, 0, -2, 4, 0, -3, -5,
- -4, 4, -4, 4, 4, 3, 1, -4, -4, -9, -14, 20, -30, 3, -18, 33 },
- { 0, 2, 5, -2, -4, -2, -1, 2, -6, -3, -2, -2, 2, -5, -1, 4,
- 3, 2, -3, 0, -1, -1, -10, -7, 2, -4, -18, 2, -37, -1, 12, 40 },
- { -7, 2, -1, 0, -2, 4, -8, 1, -4, 12, 7, 4, 15, -7, 1, -9,
- 18, 0, 12, -17, -3, -1, 0, 0, 0, 2, -6, 0, -4, -3, -1, 26 },
- { -6, 4, 8, -5, -6, -2, 2, -1, 1, -1, -15, 8, 7, -1, -17, -4,
- 1, 5, 6, -11, -6, 14, 17, -5, -15, 11, 8, 0, -3, -15, -6, 28 },
- { -1, 0, 0, 0, 1, 0, -1, 0, 1, 3, 2, -2, 3, -1, -1, 2,
- 2, -1, -1, -7, 1, 2, -9, 0, -1, -4, -18, 7, -10, 49, -13, 32 },
- { -1, -3, 4, 1, 2, -5, 1, -7, -1, 5, -9, 4, 4, 25, 1, -1,
- 2, -5, 2, -7, 17, -2, 10, -5, 0, 2, -15, 3, -9, 7, -9, 30 },
- { -5, -1, 0, 2, 1, -1, 2, 5, -33, 3, -5, 14, 11, 7, 5, -3,
- 2, -8, -4, -2, -7, -6, 4, -8, -1, -8, 2, -2, -8, -1, -4, 27 },
- { -1, 0, -1, -2, 1, -1, -2, -1, 2, 0, 1, 2, 2, 4, 1, 3,
- 4, 2, 1, -7, -4, 1, -3, -4, -35, -25, 17, 10, -3, -26, -7, 32 },
- { -5, 1, 6, -2, 6, 6, -9, 3, -1, -4, 5, -4, -2, -2, -9, 2,
- -5, 2, 2, 4, 3, 5, -5, -16, -31, -12, -11, 2, -19, 20, -2, 21 },
- { -5, 2, 7, -7, -7, 5, -7, 2, 0, 0, -4, 3, -1, 0, -1, -2,
- 0, -3, 5, -11, -8, -3, -7, -7, 28, -11, -7, 0, -16, -11, -4, 29 },
- { 2, 1, -3, -2, -1, 3, 4, 0, 1, 0, -1, -5, 4, -5, -12, 2,
- -2, -5, -22, -2, -1, 11, 8, -7, -12, 0, -34, 6, -5, 11, -8, 19 },
- { -1, -3, 5, 11, 18, -2, -2, -5, -2, 4, -1, 8, 5, -6, 1, -1,
- 2, 8, 4, -5, -8, -2, 5, -18, 7, 12, 7, 19, -18, 2, -6, -13 },
- { 9, 0, 0, 5, 4, 3, -6, 4, 1, -4, 5, -1, -4, 8, 8, 6,
- -8, -6, 0, 6, -3, 3, 5, -3, 17, 31, 16, 10, -13, 0, -9, -19 },
- { 12, -10, 2, -2, -2, -1, -3, 6, -12, -5, -2, 14, -16, 4, 12, 12,
- 17, 4, 7, -16, 7, -6, 11, 7, 7, 2, -25, 23, -24, 5, -7, -9 },
- { 10, 4, 13, 10, 10, 3, -6, 3, 3, 2, -1, -6, 8, 4, 10, 0,
- 1, 2, -4, 2, -3, -8, 0, -1, 9, 9, -10, -3, -29, 1, -1, -27 },
- { 2, 2, 0, 7, 9, -2, -10, -1, -1, 1, -9, -5, 8, 4, 1, 2,
- -10, 1, 13, 12, -3, 15, -9, 2, -7, 1, -10, 23, -20, -18, -9, -15 },
- { -3, -5, -1, 8, 0, -5, -1, 4, 7, -1, -7, 2, -8, -5, 11, 7,
- -6, 3, -3, -9, 7, 9, -22, 1, 6, -4, 14, 27, -25, -14, 3, -5 },
- { 1, 3, 8, 4, 7, 6, 12, -17, -15, 1, -8, -10, 7, -14, -8, 6,
- -2, -2, -11, -11, -7, 13, -2, -2, 4, 5, -5, 13, -23, -6, -17, -8 },
- { -5, 4, -14, -5, -4, -5, 6, 5, -8, -5, -2, -11, -7, -12, 3, -11,
- 2, -6, 4, -10, -5, -7, 14, 5, 23, 11, 7, 12, -16, -6, -4, -16 },
- { 5, 6, 2, 5, -2, -5, -5, -6, -5, -19, -13, -1, -3, -13, 5, 0,
- 6, -2, -2, -6, -7, -7, -1, -9, 4, 14, 17, -12, -27, 3, 0, -1 },
- { 7, -1, 9, -10, 8, 2, -7, -2, 5, 2, -3, -7, 3, 0, 6, 4,
- 12, 5, 11, 14, -13, -1, 8, 1, 13, 9, 12, 12, -18, -14, -11, -16 },
- { -7, -5, -6, -5, 0, -1, -3, 2, 2, 1, 4, 9, 2, 3, 5, -2,
- 2, 1, 8, 0, 3, 0, -2, 2, 1, 7, 29, 0, -36, -5, -9, -21 },
- { 14, -6, -9, 0, -1, -8, -8, -11, 2, 2, -9, -12, 12, -4, 5, 3,
- -5, -9, 11, -1, -3, 12, -21, -3, 12, 5, 3, 11, -18, -15, 1, -2 },
- { -1, 3, -9, -3, 7, -7, -18, 2, 4, 12, -10, 2, 8, -3, -14, 13,
- 17, -5, 5, -9, 13, -3, -7, -18, 17, -2, 5, 7, -20, -3, -6, -11 },
- { -3, 3, 3, -1, 1, -6, -5, 1, 5, -3, -14, -6, -5, -8, 14, -6,
- 7, -1, 5, 1, 15, -1, -7, -4, 6, -11, 9, -2, -37, 16, -7, -3 },
- { -1, 0, 6, 1, -3, -9, 0, 11, -8, 2, -2, 0, 5, 2, 12, -10,
- 10, 13, 2, 7, -6, 2, -10, -10, 21, -5, 5, 5, -12, -23, 3, -14 },
- { 6, 0, -2, 1, 0, 1, 0, -4, 1, 1, 8, -2, 2, -5, -2, 1,
- 8, -4, -1, -1, 4, -1, 2, 6, 32, 1, -5, -20, -40, -4, -18, -14 },
- { 2, 2, -7, -2, 4, 4, -1, 2, 0, -2, -4, -7, 3, 5, 0, -5,
- 1, 2, -6, 4, -1, -2, -1, -15, 8, 3, 9, 46, -7, -18, 6, -11 },
- { 5, 5, 16, 21, 3, -11, -4, 11, -12, 2, 4, -12, -1, 11, 8, 1,
- -4, 11, -11, -21, 1, 1, -11, 3, 13, 1, 5, 12, -25, 1, -3, -2 },
- { 1, 6, -7, 4, 2, 3, 1, -5, 8, 9, -15, 3, -3, -14, 17, 4,
- -8, 14, -2, -8, -4, 5, 8, -7, 8, 9, 7, 6, -29, -17, 8, 4 },
- { -7, -7, 4, 0, 13, 1, 0, 4, 4, -16, -10, -7, 5, 9, -15, -10,
- -10, 8, -4, -1, -11, -1, -10, -15, 3, 3, 14, 10, -19, 2, -18, -12 },
- { -4, 0, 2, 0, 5, -2, -9, 0, 4, -4, 2, -1, -2, 2, -4, 9,
- 2, -6, -4, -2, -1, -3, -3, -1, 2, 5, -1, 11, -24, -44, -9, -15 },
- { -1, -10, 6, 21, 11, 15, -7, 10, -14, -9, -8, -8, 4, 6, 19, 1,
- -6, 1, -5, -17, -8, -10, 9, 5, 11, 18, -1, 10, -16, -7, -9, -8 },
- { 3, -5, 0, 0, -2, -2, -6, 4, -4, 1, -1, 0, 7, -3, 4, -4,
- -7, 7, 17, -20, 6, 4, 1, -6, -12, 31, 13, 19, -14, -10, -7, -2 },
- { -2, 6, -10, 3, 9, 6, -14, 15, 2, -5, 2, -11, 9, -8, 4, 6,
- 20, -15, -3, -3, -1, 32, -21, 6, 1, 9, 11, 17, -19, 6, -1, -3 },
- { 8, 10, -2, 0, -8, -16, 7, 7, 6, 10, 4, -14, 7, -6, 21, -7,
- 10, 5, 5, 0, -7, 2, -6, 0, -7, 11, -9, 15, -20, -7, -11, 2 },
- { 0, -7, 5, 2, 0, -3, -6, -4, -2, -1, -4, -5, -13, -1, 27, -9,
- -6, -11, -7, 1, 11, -4, -4, -14, -2, 11, 6, 10, -19, -6, -15, 2 },
- { 0, 7, -1, 2, -7, -15, -2, -3, 13, -5, -5, 12, 3, 0, 5, -5,
- -22, 2, 7, 22, 13, 0, -1, 2, 3, 2, -7, 7, -27, -4, -4, -12 },
- { 11, 1, -16, 6, -15, 1, 3, 2, 0, 2, -3, 2, 5, -2, -5, 9,
- 5, -3, 3, -2, -11, 3, 9, 6, 9, 3, -1, 12, -41, 8, -6, 9 },
- { 3, -7, 3, 2, 5, 5, 0, -1, 1, 3, -5, -2, -13, 7, -1, -2,
- -2, -6, 4, -6, 0, 2, -2, 2, 4, 1, -4, 1, -47, -21, 7, -6 },
- { 3, 16, -7, 13, -4, -2, 10, -3, -1, 18, -13, 7, -13, -4, 8, 4,
- 8, 9, -5, 13, 8, -5, 3, -6, 7, 18, -8, 10, -25, -3, -12, -12 },
- { 1, -1, -1, 0, 2, 5, -5, -3, 0, -5, -1, 0, -4, -8, -2, 3,
- 2, -2, -17, -6, -4, 1, 33, -6, -20, -6, 8, 31, -26, -8, -1, -4 },
- { 3, -3, -3, 5, -3, -2, 1, 7, 0, 3, 6, 3, 6, -2, 9, 15,
- -10, -3, -15, -5, -3, -4, -6, -30, 17, -8, -2, 2, -20, 0, -8, -2 },
- { -2, -1, -1, -1, 3, -5, -2, -3, 4, -2, 0, 5, 8, -3, 1, -4,
- 1, 1, -3, 4, 4, -14, 3, 11, -5, 3, -3, 7, -3, 13, 23, -16 },
- { 2, -6, 1, -3, 5, 0, -6, -11, -7, -4, -1, 2, -7, -1, -1, 7,
- 1, -2, 6, 12, -6, 8, -13, 17, 25, -23, -19, -7, -12, 9, 16, -17 },
- { 9, 4, 4, 4, -3, -1, 6, -2, -3, 0, 13, -4, -7, 14, 1, -7,
- 0, -5, 3, -19, -3, 5, 3, 9, -1, 9, -13, 13, -17, 4, 21, -26 },
- { 0, -5, 0, 0, -4, -5, 2, -6, -4, 5, -7, 10, 0, 2, 0, -2,
- -2, 0, 4, -6, 7, -2, 6, 5, -5, 2, -12, 1, -29, 29, 27, 12 },
- { 9, -10, -22, 6, -1, -1, 9, -14, -12, -2, 1, -1, 10, -11, -16, 0,
- 3, 11, 13, -14, -9, -2, -1, 6, 4, -14, 0, -10, -2, 16, 17, -11 },
- { 2, 0, -1, -2, 4, 3, -6, -2, 1, -1, 1, 3, -4, 1, 3, -4,
- -1, -1, 4, -1, 1, 0, 1, 6, -5, -7, 2, 1, -47, -3, 50, -17 },
- { 8, -4, -11, -7, 11, 11, 14, -7, 12, -7, 6, 2, 13, -6, -3, -2,
- -14, 6, 6, 6, 0, 2, -1, 5, -20, 2, -1, 4, -5, 6, 21, -11 },
- { -2, -9, 3, 0, -6, 7, 8, -8, 1, -3, 4, 1, 5, -2, -3, -7,
- 4, 7, -12, -9, -2, 10, -6, 13, 6, 5, 20, 2, -15, 9, 28, -7 },
- { 0, -5, -6, -6, -6, 1, -6, 6, -2, 4, 8, -3, 12, -1, -4, -2,
- 6, 16, -14, 9, -14, -2, -8, -27, -3, 18, -1, -7, -3, 8, 23, -23 },
- { 1, 4, -9, -1, -5, 10, -2, 1, -11, 1, -9, 4, 7, 14, -9, -2,
- -3, 2, -5, -1, -6, -10, -7, 11, 20, 2, 3, -19, 3, 15, 30, -9 },
- { 7, 2, -14, -4, 0, -2, 5, 2, 5, -2, 8, -3, -7, 6, 6, -11,
- -14, 1, 10, -1, -7, -8, 1, 10, 3, -6, -15, -12, -17, 4, 30, -6 },
- { 4, 2, 1, -2, 3, 0, 1, 0, 2, 0, 1, 6, -7, 0, 3, 4,
- 4, -4, -2, -5, -2, 2, -1, -2, 0, -2, -11, -7, -3, 42, 24, -14 },
- { 4, 1, 3, 2, 0, -2, -3, -2, 2, -1, 4, 11, -2, 2, 3, -4,
- -5, 9, 2, -4, -9, 5, 8, -1, -7, 1, 24, -13, -28, 20, 15, -22 },
- { -3, 7, 6, 3, -2, -5, -10, -2, -2, -1, -6, -6, -2, -14, -16, -6,
- -5, 0, 18, 0, 9, 1, 7, -13, -5, -6, -9, 11, -15, 9, 22, -11 },
- { 9, -2, 6, 5, 2, 9, -10, 1, 1, 5, -4, 12, 2, 2, -10, -7,
- -4, -6, 7, 9, 6, 15, 6, 6, -10, 10, 5, -13, -5, 6, 24, -12 },
- { 1, 3, -3, -3, 8, 1, -6, 2, -5, -3, 7, 2, 14, 6, 9, -6,
- -5, -4, 27, 7, -3, 8, -6, 3, -8, 8, 22, -5, -6, -2, 22, -17 },
- { -2, -2, 3, 10, 9, 9, 12, -15, -1, -11, -13, 3, -2, 1, -3, -11,
- 7, 9, 16, -3, -10, -5, -5, 1, 8, -3, 9, 9, -5, 3, 31, -12 },
- { 7, -5, 10, -4, -8, 2, 16, -2, 10, 10, -3, -2, 3, -8, -3, 3,
- -13, -6, 15, 20, -9, -3, -12, 1, -2, -16, 8, 8, -1, 16, 22, -5 },
- { 5, -3, -15, -2, 12, -8, 8, -5, 2, -8, 20, -18, 14, -4, 3, 3,
- 7, -13, -16, 1, -10, 7, 16, 7, 4, -14, -4, -5, -9, 8, 23, -6 },
- { 5, -4, -5, -4, 1, 8, 4, -7, -5, 8, 10, 6, -6, -10, -2, 6,
- 9, -17, -14, 11, 12, -3, -13, -7, 2, 18, 3, -25, -16, 18, 22, -5 },
- { 5, 6, -7, -20, -4, 2, 8, 4, -24, -4, 1, 4, -5, -2, 1, -10,
- -2, 9, 3, -4, -3, -4, -4, -4, 10, 10, 3, 0, -6, 25, 21, -11 },
- { 0, 7, -1, 14, -6, -4, -10, 5, 4, 4, 4, -5, 3, 4, -1, -7,
- 8, -19, 0, 6, 2, 3, -18, -3, -6, 2, 8, 14, -26, 22, 27, -13 },
- { -2, -6, 7, -5, 12, -7, 8, -1, 3, -2, 4, 1, 8, -2, 0, 14,
- 6, -5, 6, -4, -7, 7, -21, 8, 1, 8, -9, -4, -3, 11, 25, -13 },
- { 4, 4, -1, -6, 4, 9, -8, 1, -3, -10, -2, 0, 15, -9, -16, 11,
- 1, 1, 6, 3, -9, -5, 16, 26, 1, -14, 1, -3, -14, 7, 15, -9 },
- { -12, -2, -9, -13, 2, 6, 14, 0, 1, 0, -1, -13, 0, 10, -1, 6,
- 9, -7, 8, 8, 19, 6, -1, 9, 10, -4, 1, -7, -22, -2, 29, -7 },
- { 2, 4, 13, -12, -8, -4, -5, 13, 12, -5, -3, -3, -4, 1, -1, 10,
- 15, -6, -1, -11, -30, 4, 15, -1, 9, -7, 0, -2, -7, 10, 25, -16 },
- { 7, -15, -7, -7, -1, -5, -5, -11, -20, 10, 3, -10, -3, 5, 20, -4,
- 0, -2, -2, 17, 2, 0, -3, 3, 6, 5, -1, -12, -3, 15, 22, -16 },
- { 4, -1, 3, 4, -5, 0, -1, -5, -24, -29, 4, -9, 1, -3, 0, 0,
- 0, -4, 7, -4, -4, -4, 3, 1, -6, 5, -3, -5, -10, 3, 25, -10 },
- { -2, -1, -1, 4, 4, -1, 2, 0, -4, -4, 2, -1, -3, -1, -2, -2,
- 1, -3, -5, -1, 2, -3, -4, -4, -3, 5, -9, 1, -11, 7, 46, -46 },
- { 0, -9, 3, 4, 4, 3, -5, -6, 5, -4, 4, -2, 1, 7, -4, -10,
- 13, 1, 3, -6, 4, -4, 7, 2, -19, -25, -3, -16, -12, 16, 20, -1 },
- { 18, 6, 4, -12, 0, -14, 9, -6, -1, -4, -5, 2, 1, 12, 4, 2,
- 7, 0, 2, 5, -11, -5, -2, 2, -4, 10, 0, -9, -7, 9, 25, -8 },
- { 5, 0, -6, 5, 6, 3, 3, -10, -5, 1, -1, 4, 3, -11, -8, 5,
- 4, -5, 5, -5, -7, -5, 11, 5, 20, -8, -16, 21, -4, 27, 23, -5 }
-};
-
-
-/* FIR filter coefficients, they can be cut on half and maybe use float instead of double*/
-
-DECLARE_ALIGNED(16, static const float, fir_32bands_perfect)[] =
-{
-+1.135985195E-010,
-+7.018770981E-011,
--1.608403011E-008,
--5.083275667E-008,
--1.543309907E-007,
--3.961981463E-007,
--7.342250683E-007,
--3.970030775E-007,
--4.741137047E-007,
--6.022448247E-007,
--6.628192182E-007,
--6.982898526E-007,
--7.020648809E-007,
--6.767839409E-007,
--6.262345096E-007,
--5.564140224E-007,
-+7.003467317E-007,
-+8.419976893E-007,
-+9.742954035E-007,
-+1.085227950E-006,
-+1.162929266E-006,
-+1.194632091E-006,
-+1.179182050E-006,
-+1.033426656E-006,
-+9.451737242E-007,
-+1.975324267E-006,
-+1.190443072E-006,
-+5.234479659E-007,
-+2.014677420E-007,
-+7.834767501E-008,
--6.702406963E-010,
--1.613285505E-009,
--2.682709610E-009,
--3.399493131E-009,
-+1.314406006E-008,
-+7.506701927E-009,
-+2.788728892E-008,
-+1.444918922E-007,
-+3.132386439E-007,
-+1.399798180E-006,
-+2.032118118E-006,
-+2.715013807E-006,
-+3.453840463E-006,
-+4.195037945E-006,
-+4.896494374E-006,
-+5.516381407E-006,
-+6.015239251E-006,
-+6.361419310E-006,
-+8.006985809E-006,
-+8.087732567E-006,
-+7.941360309E-006,
-+7.568834008E-006,
-+6.986399967E-006,
-+6.225028756E-006,
-+5.315936960E-006,
-+4.429412002E-006,
-+3.332600045E-006,
-+8.427224429E-007,
-+4.341498823E-007,
-+9.458596395E-008,
-+2.975164826E-008,
-+6.402664354E-008,
--3.246264413E-008,
--3.809887872E-008,
-+8.434094667E-008,
-+6.437721822E-008,
-+1.189317118E-006,
-+2.497214155E-006,
-+3.617151151E-006,
-+3.157242645E-006,
-+2.319611212E-006,
-+7.869333785E-006,
-+9.826449968E-006,
-+1.177108606E-005,
-+1.379448349E-005,
-+1.571428584E-005,
-+1.743183020E-005,
-+1.884208177E-005,
-+1.987093310E-005,
-+2.042970118E-005,
--3.144468428E-005,
--3.334947178E-005,
--3.460439257E-005,
--3.515914432E-005,
--3.495384954E-005,
--3.397853652E-005,
--3.225446198E-005,
--2.978993689E-005,
--2.677291741E-005,
--1.806914770E-005,
--1.776598037E-005,
--1.661818715E-005,
--1.207003334E-005,
--6.993315310E-006,
--5.633860383E-007,
--9.984935332E-007,
--1.470520488E-006,
--1.853591357E-006,
-+7.198007665E-007,
-+3.086857760E-006,
-+6.084746474E-006,
-+9.561075785E-006,
-+1.309637537E-005,
-+2.263354872E-005,
-+2.847247197E-005,
-+3.415624451E-005,
-+3.946387005E-005,
-+4.425736552E-005,
-+4.839275425E-005,
-+5.176846025E-005,
-+5.429694284E-005,
-+5.595519906E-005,
-+4.916387297E-006,
-+9.299508747E-006,
-+1.356193479E-005,
-+1.751866148E-005,
-+2.093936746E-005,
-+2.362549276E-005,
-+2.537086584E-005,
-+2.618136386E-005,
-+2.554462844E-005,
-+3.018750249E-005,
-+2.570833203E-005,
-+1.985177369E-005,
-+1.191342653E-005,
-+2.525620175E-006,
--1.521241393E-005,
--1.617751332E-005,
-+1.992636317E-005,
-+1.774702469E-005,
-+4.624524081E-005,
-+5.610509834E-005,
-+6.568001118E-005,
-+7.513730816E-005,
-+8.413690375E-005,
-+8.757545584E-005,
-+9.517164290E-005,
-+1.020687996E-004,
-+1.084438481E-004,
-+1.140582463E-004,
-+1.187910311E-004,
-+1.224978914E-004,
-+1.250260248E-004,
-+1.262027217E-004,
-+1.226499153E-004,
-+1.213575742E-004,
-+1.180980107E-004,
-+1.126275165E-004,
-+1.047207043E-004,
-+9.417100227E-005,
-+8.078388782E-005,
-+6.447290798E-005,
-+4.491530854E-005,
-+2.470704203E-005,
--1.714242217E-006,
--3.193307566E-005,
--6.541742187E-005,
--1.024175072E-004,
--1.312203676E-004,
--1.774113771E-004,
--2.233728592E-004,
--2.682086197E-004,
--3.347633174E-004,
--3.906481725E-004,
--4.490280990E-004,
--5.099929986E-004,
--5.729619297E-004,
--6.358824321E-004,
--7.021900383E-004,
--7.698345580E-004,
--8.385353722E-004,
--9.078957955E-004,
--9.775133803E-004,
--1.046945457E-003,
--1.115717343E-003,
--1.183370827E-003,
--1.252829796E-003,
--1.316190348E-003,
--1.376571832E-003,
--1.433344092E-003,
--1.485876855E-003,
--1.533520175E-003,
--1.575609902E-003,
--1.611457788E-003,
--1.640390139E-003,
--1.661288203E-003,
--1.674512983E-003,
--1.678415807E-003,
--1.672798418E-003,
--1.656501088E-003,
--1.633993932E-003,
--1.593449386E-003,
-+1.542080659E-003,
-+1.479332102E-003,
-+1.395521569E-003,
-+1.303116791E-003,
-+1.196175464E-003,
-+1.073757303E-003,
-+9.358961834E-004,
-+7.817269652E-004,
-+6.114174030E-004,
-+4.244441516E-004,
-+2.206075296E-004,
--2.719412748E-007,
--2.382978710E-004,
--4.935106263E-004,
--7.658848190E-004,
--1.055365428E-003,
--1.361547387E-003,
--1.684492454E-003,
--2.023874084E-003,
--2.379294252E-003,
--2.750317100E-003,
--3.136433195E-003,
--3.537061159E-003,
--3.951539751E-003,
--4.379155114E-003,
--4.819062538E-003,
--5.270531867E-003,
--5.732392892E-003,
--6.203945260E-003,
--6.683901884E-003,
--7.170005701E-003,
--7.664063945E-003,
--8.162760176E-003,
--8.665001951E-003,
--9.170533158E-003,
--9.676489048E-003,
--1.018219907E-002,
--1.068630442E-002,
--1.118756086E-002,
--1.168460958E-002,
--1.217562053E-002,
--1.265939046E-002,
--1.313448418E-002,
--1.359948888E-002,
--1.405300573E-002,
--1.449365262E-002,
--1.492007636E-002,
--1.533095632E-002,
--1.572482102E-002,
--1.610082202E-002,
--1.645756140E-002,
--1.679391414E-002,
--1.710879989E-002,
--1.740120351E-002,
--1.767017506E-002,
--1.791484281E-002,
--1.813439466E-002,
--1.832821220E-002,
--1.849545911E-002,
--1.863567345E-002,
--1.874836907E-002,
--1.883326657E-002,
--1.889026538E-002,
--1.891860925E-002,
-+1.891860925E-002,
-+1.889026538E-002,
-+1.883326657E-002,
-+1.874836907E-002,
-+1.863567345E-002,
-+1.849545911E-002,
-+1.832821220E-002,
-+1.813439466E-002,
-+1.791484281E-002,
-+1.767017506E-002,
-+1.740120351E-002,
-+1.710879989E-002,
-+1.679391414E-002,
-+1.645756140E-002,
-+1.610082202E-002,
-+1.572482102E-002,
-+1.533095632E-002,
-+1.492007636E-002,
-+1.449365262E-002,
-+1.405300573E-002,
-+1.359948888E-002,
-+1.313448418E-002,
-+1.265939046E-002,
-+1.217562053E-002,
-+1.168460958E-002,
-+1.118756086E-002,
-+1.068630442E-002,
-+1.018219907E-002,
-+9.676489048E-003,
-+9.170533158E-003,
-+8.665001951E-003,
-+8.162760176E-003,
-+7.664063945E-003,
-+7.170005701E-003,
-+6.683901884E-003,
-+6.203945260E-003,
-+5.732392892E-003,
-+5.270531867E-003,
-+4.819062538E-003,
-+4.379155114E-003,
-+3.951539751E-003,
-+3.537061159E-003,
-+3.136433195E-003,
-+2.750317100E-003,
-+2.379294252E-003,
-+2.023874084E-003,
-+1.684492454E-003,
-+1.361547387E-003,
-+1.055365428E-003,
-+7.658848190E-004,
-+4.935106263E-004,
-+2.382978710E-004,
-+2.719412748E-007,
--2.206075296E-004,
--4.244441516E-004,
--6.114174030E-004,
--7.817269652E-004,
--9.358961834E-004,
--1.073757303E-003,
--1.196175464E-003,
--1.303116791E-003,
--1.395521569E-003,
--1.479332102E-003,
--1.542080659E-003,
-+1.593449386E-003,
-+1.633993932E-003,
-+1.656501088E-003,
-+1.672798418E-003,
-+1.678415807E-003,
-+1.674512983E-003,
-+1.661288203E-003,
-+1.640390139E-003,
-+1.611457788E-003,
-+1.575609902E-003,
-+1.533520175E-003,
-+1.485876855E-003,
-+1.433344092E-003,
-+1.376571832E-003,
-+1.316190348E-003,
-+1.252829796E-003,
-+1.183370827E-003,
-+1.115717343E-003,
-+1.046945457E-003,
-+9.775133803E-004,
-+9.078957955E-004,
-+8.385353722E-004,
-+7.698345580E-004,
-+7.021900383E-004,
-+6.358824321E-004,
-+5.729619297E-004,
-+5.099929986E-004,
-+4.490280990E-004,
-+3.906481725E-004,
-+3.347633174E-004,
-+2.682086197E-004,
-+2.233728592E-004,
-+1.774113771E-004,
-+1.312203676E-004,
-+1.024175072E-004,
-+6.541742187E-005,
-+3.193307566E-005,
-+1.714242217E-006,
--2.470704203E-005,
--4.491530854E-005,
--6.447290798E-005,
--8.078388782E-005,
--9.417100227E-005,
--1.047207043E-004,
--1.126275165E-004,
--1.180980107E-004,
--1.213575742E-004,
--1.226499153E-004,
--1.262027217E-004,
--1.250260248E-004,
--1.224978914E-004,
--1.187910311E-004,
--1.140582463E-004,
--1.084438481E-004,
--1.020687996E-004,
--9.517164290E-005,
--8.757545584E-005,
--8.413690375E-005,
--7.513730816E-005,
--6.568001118E-005,
--5.610509834E-005,
--4.624524081E-005,
--1.774702469E-005,
--1.992636317E-005,
-+1.617751332E-005,
-+1.521241393E-005,
--2.525620175E-006,
--1.191342653E-005,
--1.985177369E-005,
--2.570833203E-005,
--3.018750249E-005,
--2.554462844E-005,
--2.618136386E-005,
--2.537086584E-005,
--2.362549276E-005,
--2.093936746E-005,
--1.751866148E-005,
--1.356193479E-005,
--9.299508747E-006,
--4.916387297E-006,
--5.595519906E-005,
--5.429694284E-005,
--5.176846025E-005,
--4.839275425E-005,
--4.425736552E-005,
--3.946387005E-005,
--3.415624451E-005,
--2.847247197E-005,
--2.263354872E-005,
--1.309637537E-005,
--9.561075785E-006,
--6.084746474E-006,
--3.086857760E-006,
--7.198007665E-007,
-+1.853591357E-006,
-+1.470520488E-006,
-+9.984935332E-007,
-+5.633860383E-007,
-+6.993315310E-006,
-+1.207003334E-005,
-+1.661818715E-005,
-+1.776598037E-005,
-+1.806914770E-005,
-+2.677291741E-005,
-+2.978993689E-005,
-+3.225446198E-005,
-+3.397853652E-005,
-+3.495384954E-005,
-+3.515914432E-005,
-+3.460439257E-005,
-+3.334947178E-005,
-+3.144468428E-005,
--2.042970118E-005,
--1.987093310E-005,
--1.884208177E-005,
--1.743183020E-005,
--1.571428584E-005,
--1.379448349E-005,
--1.177108606E-005,
--9.826449968E-006,
--7.869333785E-006,
--2.319611212E-006,
--3.157242645E-006,
--3.617151151E-006,
--2.497214155E-006,
--1.189317118E-006,
--6.437721822E-008,
--8.434094667E-008,
-+3.809887872E-008,
-+3.246264413E-008,
--6.402664354E-008,
--2.975164826E-008,
--9.458596395E-008,
--4.341498823E-007,
--8.427224429E-007,
--3.332600045E-006,
--4.429412002E-006,
--5.315936960E-006,
--6.225028756E-006,
--6.986399967E-006,
--7.568834008E-006,
--7.941360309E-006,
--8.087732567E-006,
--8.006985809E-006,
--6.361419310E-006,
--6.015239251E-006,
--5.516381407E-006,
--4.896494374E-006,
--4.195037945E-006,
--3.453840463E-006,
--2.715013807E-006,
--2.032118118E-006,
--1.399798180E-006,
--3.132386439E-007,
--1.444918922E-007,
--2.788728892E-008,
--7.506701927E-009,
--1.314406006E-008,
-+3.399493131E-009,
-+2.682709610E-009,
-+1.613285505E-009,
-+6.702406963E-010,
--7.834767501E-008,
--2.014677420E-007,
--5.234479659E-007,
--1.190443072E-006,
--1.975324267E-006,
--9.451737242E-007,
--1.033426656E-006,
--1.179182050E-006,
--1.194632091E-006,
--1.162929266E-006,
--1.085227950E-006,
--9.742954035E-007,
--8.419976893E-007,
--7.003467317E-007,
-+5.564140224E-007,
-+6.262345096E-007,
-+6.767839409E-007,
-+7.020648809E-007,
-+6.982898526E-007,
-+6.628192182E-007,
-+6.022448247E-007,
-+4.741137047E-007,
-+3.970030775E-007,
-+7.342250683E-007,
-+3.961981463E-007,
-+1.543309907E-007,
-+5.083275667E-008,
-+1.608403011E-008,
--7.018770981E-011,
--1.135985195E-010
-};
-
-DECLARE_ALIGNED(16, static const float, fir_32bands_nonperfect)[] =
-{
--1.390191784E-007,
--1.693738625E-007,
--2.030677564E-007,
--2.404238444E-007,
--2.818143514E-007,
--3.276689142E-007,
--3.784752209E-007,
--4.347855338E-007,
--4.972276315E-007,
--5.665120852E-007,
--6.434325428E-007,
--7.288739425E-007,
--8.238164355E-007,
--9.293416952E-007,
--1.046637067E-006,
--1.176999604E-006,
--1.321840614E-006,
--1.482681114E-006,
--1.661159786E-006,
--1.859034001E-006,
--2.078171747E-006,
--2.320550948E-006,
--2.588257530E-006,
--2.883470643E-006,
--3.208459020E-006,
--3.565570978E-006,
--3.957220997E-006,
--4.385879038E-006,
--4.854050530E-006,
--5.364252502E-006,
--5.918994248E-006,
--6.520755960E-006,
--7.171964626E-006,
--7.874960829E-006,
--8.631964192E-006,
--9.445050637E-006,
--1.031611009E-005,
--1.124680875E-005,
--1.223855270E-005,
--1.329243969E-005,
--1.440921824E-005,
--1.558924305E-005,
--1.683242772E-005,
--1.813820381E-005,
--1.950545993E-005,
--2.093250441E-005,
--2.241701623E-005,
--2.395598858E-005,
--2.554569073E-005,
--2.718161704E-005,
--2.885844333E-005,
--3.056998685E-005,
--3.230916263E-005,
--3.406793985E-005,
--3.583733633E-005,
--3.760734762E-005,
--3.936696885E-005,
--4.110412556E-005,
--4.280570283E-005,
--4.445751256E-005,
--4.604430433E-005,
--4.754976908E-005,
--4.895655002E-005,
--5.024627535E-005,
-+5.139957648E-005,
-+5.239612074E-005,
-+5.321469871E-005,
-+5.383323878E-005,
-+5.422891263E-005,
-+5.437819709E-005,
-+5.425697600E-005,
-+5.384063843E-005,
-+5.310418419E-005,
-+5.202236207E-005,
-+5.056979353E-005,
-+4.872112549E-005,
-+4.645117951E-005,
-+4.373511547E-005,
-+4.054862075E-005,
-+3.686808850E-005,
-+3.267079956E-005,
-+2.793515523E-005,
-+2.264085742E-005,
-+1.676913780E-005,
-+1.030297699E-005,
-+3.227306706E-006,
--4.470633485E-006,
--1.280130618E-005,
--2.177240640E-005,
--3.138873581E-005,
--4.165195787E-005,
--5.256036457E-005,
--6.410864444E-005,
--7.628766616E-005,
--8.908427117E-005,
--1.024810626E-004,
--1.164562127E-004,
--1.309833024E-004,
--1.460311323E-004,
--1.615635992E-004,
--1.775395358E-004,
--1.939126523E-004,
--2.106313768E-004,
--2.276388550E-004,
--2.448728774E-004,
--2.622658503E-004,
--2.797449124E-004,
--2.972317743E-004,
--3.146430245E-004,
--3.318900708E-004,
--3.488793736E-004,
--3.655125911E-004,
--3.816867538E-004,
--3.972945851E-004,
--4.122247046E-004,
--4.263620067E-004,
--4.395879805E-004,
--4.517810594E-004,
--4.628172028E-004,
--4.725702747E-004,
--4.809123348E-004,
--4.877146275E-004,
--4.928477574E-004,
--4.961824161E-004,
--4.975944757E-004,
--4.969481961E-004,
--4.941228544E-004,
--4.889960401E-004,
-+4.814492422E-004,
-+4.713678791E-004,
-+4.586426076E-004,
-+4.431701091E-004,
-+4.248536134E-004,
-+4.036037717E-004,
-+3.793396754E-004,
-+3.519894381E-004,
-+3.214911267E-004,
-+2.877934603E-004,
-+2.508567995E-004,
-+2.106537577E-004,
-+1.671699720E-004,
-+1.204049113E-004,
-+7.037253090E-005,
-+1.710198012E-005,
--3.936182839E-005,
--9.895755647E-005,
--1.616069785E-004,
--2.272142592E-004,
--2.956659591E-004,
--3.668301215E-004,
--4.405563814E-004,
--5.166754709E-004,
--5.949990009E-004,
--6.753197522E-004,
--7.574109477E-004,
--8.410271257E-004,
--9.259034996E-004,
--1.011756598E-003,
--1.098284614E-003,
--1.185167348E-003,
--1.272067428E-003,
--1.358630019E-003,
--1.444484224E-003,
--1.529243193E-003,
--1.612505526E-003,
--1.693855622E-003,
--1.772865304E-003,
--1.849094522E-003,
--1.922092517E-003,
--1.991399564E-003,
--2.056547208E-003,
--2.117061289E-003,
--2.172462177E-003,
--2.222266514E-003,
--2.265989315E-003,
--2.303145360E-003,
--2.333251061E-003,
--2.355825622E-003,
--2.370394068E-003,
--2.376487479E-003,
--2.373647178E-003,
--2.361423569E-003,
--2.339380793E-003,
--2.307097195E-003,
--2.264167881E-003,
--2.210205887E-003,
--2.144844970E-003,
--2.067740774E-003,
--1.978572691E-003,
--1.877046190E-003,
--1.762894331E-003,
--1.635878929E-003,
-+1.495792647E-003,
-+1.342460280E-003,
-+1.175740734E-003,
-+9.955273708E-004,
-+8.017504588E-004,
-+5.943773431E-004,
-+3.734139318E-004,
-+1.389056415E-004,
--1.090620208E-004,
--3.703625989E-004,
--6.448282511E-004,
--9.322494152E-004,
--1.232374110E-003,
--1.544908970E-003,
--1.869517611E-003,
--2.205822384E-003,
--2.553403843E-003,
--2.911801683E-003,
--3.280514618E-003,
--3.659002949E-003,
--4.046686925E-003,
--4.442950245E-003,
--4.847140983E-003,
--5.258570891E-003,
--5.676518660E-003,
--6.100233644E-003,
--6.528933067E-003,
--6.961807609E-003,
--7.398022339E-003,
--7.836719044E-003,
--8.277016692E-003,
--8.718019351E-003,
--9.158811532E-003,
--9.598465636E-003,
--1.003604382E-002,
--1.047059800E-002,
--1.090117730E-002,
--1.132682897E-002,
--1.174659748E-002,
--1.215953380E-002,
--1.256469358E-002,
--1.296114177E-002,
--1.334795821E-002,
--1.372423489E-002,
--1.408908330E-002,
--1.444163360E-002,
--1.478104480E-002,
--1.510649733E-002,
--1.541720331E-002,
--1.571240649E-002,
--1.599138230E-002,
--1.625344716E-002,
--1.649795473E-002,
--1.672429405E-002,
--1.693190821E-002,
--1.712027565E-002,
--1.728892699E-002,
--1.743743755E-002,
--1.756543480E-002,
--1.767260395E-002,
--1.775865816E-002,
--1.782339066E-002,
--1.786663756E-002,
--1.788828894E-002,
-+1.788828894E-002,
-+1.786663756E-002,
-+1.782339066E-002,
-+1.775865816E-002,
-+1.767260395E-002,
-+1.756543480E-002,
-+1.743743755E-002,
-+1.728892699E-002,
-+1.712027565E-002,
-+1.693190821E-002,
-+1.672429405E-002,
-+1.649795473E-002,
-+1.625344716E-002,
-+1.599138230E-002,
-+1.571240649E-002,
-+1.541720331E-002,
-+1.510649733E-002,
-+1.478104480E-002,
-+1.444163360E-002,
-+1.408908330E-002,
-+1.372423489E-002,
-+1.334795821E-002,
-+1.296114177E-002,
-+1.256469358E-002,
-+1.215953380E-002,
-+1.174659748E-002,
-+1.132682897E-002,
-+1.090117730E-002,
-+1.047059800E-002,
-+1.003604382E-002,
-+9.598465636E-003,
-+9.158811532E-003,
-+8.718019351E-003,
-+8.277016692E-003,
-+7.836719044E-003,
-+7.398022339E-003,
-+6.961807609E-003,
-+6.528933067E-003,
-+6.100233644E-003,
-+5.676518660E-003,
-+5.258570891E-003,
-+4.847140983E-003,
-+4.442950245E-003,
-+4.046686925E-003,
-+3.659002949E-003,
-+3.280514618E-003,
-+2.911801683E-003,
-+2.553403843E-003,
-+2.205822384E-003,
-+1.869517611E-003,
-+1.544908970E-003,
-+1.232374110E-003,
-+9.322494152E-004,
-+6.448282511E-004,
-+3.703625989E-004,
-+1.090620208E-004,
--1.389056415E-004,
--3.734139318E-004,
--5.943773431E-004,
--8.017504588E-004,
--9.955273708E-004,
--1.175740734E-003,
--1.342460280E-003,
--1.495792647E-003,
-+1.635878929E-003,
-+1.762894331E-003,
-+1.877046190E-003,
-+1.978572691E-003,
-+2.067740774E-003,
-+2.144844970E-003,
-+2.210205887E-003,
-+2.264167881E-003,
-+2.307097195E-003,
-+2.339380793E-003,
-+2.361423569E-003,
-+2.373647178E-003,
-+2.376487479E-003,
-+2.370394068E-003,
-+2.355825622E-003,
-+2.333251061E-003,
-+2.303145360E-003,
-+2.265989315E-003,
-+2.222266514E-003,
-+2.172462177E-003,
-+2.117061289E-003,
-+2.056547208E-003,
-+1.991399564E-003,
-+1.922092517E-003,
-+1.849094522E-003,
-+1.772865304E-003,
-+1.693855622E-003,
-+1.612505526E-003,
-+1.529243193E-003,
-+1.444484224E-003,
-+1.358630019E-003,
-+1.272067428E-003,
-+1.185167348E-003,
-+1.098284614E-003,
-+1.011756598E-003,
-+9.259034996E-004,
-+8.410271257E-004,
-+7.574109477E-004,
-+6.753197522E-004,
-+5.949990009E-004,
-+5.166754709E-004,
-+4.405563814E-004,
-+3.668301215E-004,
-+2.956659591E-004,
-+2.272142592E-004,
-+1.616069785E-004,
-+9.895755647E-005,
-+3.936182839E-005,
--1.710198012E-005,
--7.037253090E-005,
--1.204049113E-004,
--1.671699720E-004,
--2.106537577E-004,
--2.508567995E-004,
--2.877934603E-004,
--3.214911267E-004,
--3.519894381E-004,
--3.793396754E-004,
--4.036037717E-004,
--4.248536134E-004,
--4.431701091E-004,
--4.586426076E-004,
--4.713678791E-004,
--4.814492422E-004,
-+4.889960401E-004,
-+4.941228544E-004,
-+4.969481961E-004,
-+4.975944757E-004,
-+4.961824161E-004,
-+4.928477574E-004,
-+4.877146275E-004,
-+4.809123348E-004,
-+4.725702747E-004,
-+4.628172028E-004,
-+4.517810594E-004,
-+4.395879805E-004,
-+4.263620067E-004,
-+4.122247046E-004,
-+3.972945851E-004,
-+3.816867538E-004,
-+3.655125911E-004,
-+3.488793736E-004,
-+3.318900708E-004,
-+3.146430245E-004,
-+2.972317743E-004,
-+2.797449124E-004,
-+2.622658503E-004,
-+2.448728774E-004,
-+2.276388550E-004,
-+2.106313768E-004,
-+1.939126523E-004,
-+1.775395358E-004,
-+1.615635992E-004,
-+1.460311323E-004,
-+1.309833024E-004,
-+1.164562127E-004,
-+1.024810626E-004,
-+8.908427117E-005,
-+7.628766616E-005,
-+6.410864444E-005,
-+5.256036457E-005,
-+4.165195787E-005,
-+3.138873581E-005,
-+2.177240640E-005,
-+1.280130618E-005,
-+4.470633485E-006,
--3.227306706E-006,
--1.030297699E-005,
--1.676913780E-005,
--2.264085742E-005,
--2.793515523E-005,
--3.267079956E-005,
--3.686808850E-005,
--4.054862075E-005,
--4.373511547E-005,
--4.645117951E-005,
--4.872112549E-005,
--5.056979353E-005,
--5.202236207E-005,
--5.310418419E-005,
--5.384063843E-005,
--5.425697600E-005,
--5.437819709E-005,
--5.422891263E-005,
--5.383323878E-005,
--5.321469871E-005,
--5.239612074E-005,
--5.139957648E-005,
-+5.024627535E-005,
-+4.895655002E-005,
-+4.754976908E-005,
-+4.604430433E-005,
-+4.445751256E-005,
-+4.280570283E-005,
-+4.110412556E-005,
-+3.936696885E-005,
-+3.760734762E-005,
-+3.583733633E-005,
-+3.406793985E-005,
-+3.230916263E-005,
-+3.056998685E-005,
-+2.885844333E-005,
-+2.718161704E-005,
-+2.554569073E-005,
-+2.395598858E-005,
-+2.241701623E-005,
-+2.093250441E-005,
-+1.950545993E-005,
-+1.813820381E-005,
-+1.683242772E-005,
-+1.558924305E-005,
-+1.440921824E-005,
-+1.329243969E-005,
-+1.223855270E-005,
-+1.124680875E-005,
-+1.031611009E-005,
-+9.445050637E-006,
-+8.631964192E-006,
-+7.874960829E-006,
-+7.171964626E-006,
-+6.520755960E-006,
-+5.918994248E-006,
-+5.364252502E-006,
-+4.854050530E-006,
-+4.385879038E-006,
-+3.957220997E-006,
-+3.565570978E-006,
-+3.208459020E-006,
-+2.883470643E-006,
-+2.588257530E-006,
-+2.320550948E-006,
-+2.078171747E-006,
-+1.859034001E-006,
-+1.661159786E-006,
-+1.482681114E-006,
-+1.321840614E-006,
-+1.176999604E-006,
-+1.046637067E-006,
-+9.293416952E-007,
-+8.238164355E-007,
-+7.288739425E-007,
-+6.434325428E-007,
-+5.665120852E-007,
-+4.972276315E-007,
-+4.347855338E-007,
-+3.784752209E-007,
-+3.276689142E-007,
-+2.818143514E-007,
-+2.404238444E-007,
-+2.030677564E-007,
-+1.693738625E-007,
-+1.390191784E-007
-};
-
-DECLARE_ALIGNED(16, static const float, lfe_fir_64)[] =
-{
- 2.658434386830777e-4, 9.029330685734748e-3,
- 7.939263433218002e-2, 2.425158768892288e-1,
- 3.430179357528686e-1, 2.398228943347931e-1,
- 7.746443897485733e-2, 8.622321300208569e-3,
- 8.179365249816328e-5, 9.450953453779220e-3,
- 8.134882897138596e-2, 2.451938837766648e-1,
- 3.429597318172455e-1, 2.371159791946411e-1,
- 7.556436210870743e-2, 8.229630999267101e-3,
- 9.439323912374676e-5, 9.887560270726680e-3,
- 8.333285897970200e-2, 2.478559017181396e-1,
- 3.428434133529663e-1, 2.343961596488952e-1,
- 7.369252294301987e-2, 7.850865833461285e-3,
- 1.082170274457894e-4, 1.033949479460716e-2,
- 8.534456789493561e-2, 2.505008876323700e-1,
- 3.426689505577088e-1, 2.316644787788391e-1,
- 7.184901088476181e-2, 7.485736627131701e-3,
- 1.233371440321207e-4, 1.080708485096693e-2,
- 8.738376945257187e-2, 2.531278133392334e-1,
- 3.424364924430847e-1, 2.289219647645950e-1,
- 7.003392279148102e-2, 7.133882027119398e-3,
- 1.397485757479444e-4, 1.129068247973919e-2,
- 8.945026248693466e-2, 2.557355761528015e-1,
- 3.421461284160614e-1, 2.261696159839630e-1,
- 6.824731826782227e-2, 6.794991903007030e-3,
- 1.575958012836054e-4, 1.179065089672804e-2,
- 9.154383838176728e-2, 2.583232223987580e-1,
- 3.417979776859284e-1, 2.234084606170654e-1,
- 6.648923456668854e-2, 6.468691397458315e-3,
- 1.769922382663936e-4, 1.230732165277004e-2,
- 9.366425126791000e-2, 2.608896791934967e-1,
- 3.413922190666198e-1, 2.206395119428635e-1,
- 6.475970894098282e-2, 6.154712289571762e-3,
- 1.981738605536520e-4, 1.284105982631445e-2,
- 9.581124037504196e-2, 2.634339034557342e-1,
- 3.409290313720703e-1, 2.178637981414795e-1,
- 6.305878609418869e-2, 5.852684378623962e-3,
- 2.211847313446924e-4, 1.339218579232693e-2,
- 9.798453748226166e-2, 2.659549415111542e-1,
- 3.404086530208588e-1, 2.150822728872299e-1,
- 6.138643622398376e-2, 5.562345497310162e-3,
- 2.460231189616024e-4, 1.396108977496624e-2,
- 1.001838669180870e-1, 2.684516608715058e-1,
- 3.398312926292420e-1, 2.122959494590759e-1,
- 5.974265560507774e-2, 5.283284001052380e-3,
- 2.726115926634520e-4, 1.454808749258518e-2,
- 1.024089083075523e-1, 2.709231376647949e-1,
- 3.391972482204438e-1, 2.095058411359787e-1,
- 5.812742188572884e-2, 5.015311297029257e-3,
- 3.013863170053810e-4, 1.515355054289102e-2,
- 1.046593263745308e-1, 2.733682692050934e-1,
- 3.385068178176880e-1, 2.067128717899322e-1,
- 5.654069408774376e-2, 4.758012015372515e-3,
- 3.328395541757345e-4, 1.577781140804291e-2,
- 1.069347932934761e-1, 2.757860720157624e-1,
- 3.377602994441986e-1, 2.039180546998978e-1,
- 5.498242005705833e-2, 4.511159844696522e-3,
- 3.658991190604866e-4, 1.642123050987720e-2,
- 1.092349365353584e-1, 2.781755328178406e-1,
- 3.369580209255218e-1, 2.011223286390304e-1,
- 5.345252528786659e-2, 4.274417180567980e-3,
- 4.018281470052898e-4, 1.708412915468216e-2,
- 1.115593686699867e-1, 2.805356979370117e-1,
- 3.361004292964936e-1, 1.983266174793244e-1,
- 5.195093154907227e-2, 4.047499038279056e-3,
- 4.401875485200435e-4, 1.776690222322941e-2,
- 1.139076948165894e-1, 2.828655838966370e-1,
- 3.351879119873047e-1, 1.955319195985794e-1,
- 5.047753453254700e-2, 3.830091329291463e-3,
- 4.812776169274002e-4, 1.846982724964619e-2,
- 1.162794977426529e-1, 2.851640880107880e-1,
- 3.342207968235016e-1, 1.927391141653061e-1,
- 4.903224110603333e-2, 3.621967276558280e-3,
- 5.252459668554366e-4, 1.919330470263958e-2,
- 1.186743453145027e-1, 2.874303460121155e-1,
- 3.331996202468872e-1, 1.899491697549820e-1,
- 4.761491715908051e-2, 3.422776935622096e-3,
- 5.721592460758984e-4, 1.993762329220772e-2,
- 1.210917681455612e-1, 2.896633744239807e-1,
- 3.321248590946198e-1, 1.871629506349564e-1,
- 4.622544348239899e-2, 3.232272574678064e-3,
- 6.222130032256246e-4, 2.070316113531590e-2,
- 1.235313042998314e-1, 2.918621897697448e-1,
- 3.309969604015350e-1, 1.843813359737396e-1,
- 4.486365616321564e-2, 3.050152910873294e-3,
- 6.755515350960195e-4, 2.149021252989769e-2,
- 1.259924471378326e-1, 2.940258979797364e-1,
- 3.298164308071136e-1, 1.816052496433258e-1,
- 4.352942481637001e-2, 2.876190468668938e-3,
- 7.324148900806904e-4, 2.229913882911205e-2,
- 1.284746825695038e-1, 2.961534857749939e-1,
- 3.285838961601258e-1, 1.788355410099030e-1,
- 4.222255200147629e-2, 2.710093278437853e-3,
- 7.928516715764999e-4, 2.313023805618286e-2,
- 1.309774816036224e-1, 2.982441186904907e-1,
- 3.272998929023742e-1, 1.760730892419815e-1,
- 4.094288870692253e-2, 2.551567042246461e-3,
- 8.570110658183694e-4, 2.398385666310787e-2,
- 1.335003077983856e-1, 3.002967536449432e-1,
- 3.259649574756622e-1, 1.733186990022659e-1,
- 3.969023004174232e-2, 2.400433411821723e-3,
- 9.251192095689476e-4, 2.486028522253036e-2,
- 1.360425949096680e-1, 3.023106753826142e-1,
- 3.245797157287598e-1, 1.705732345581055e-1,
- 3.846437484025955e-2, 2.256359672173858e-3,
- 9.974770946428180e-4, 2.575986087322235e-2,
- 1.386037617921829e-1, 3.042849004268646e-1,
- 3.231448531150818e-1, 1.678375005722046e-1,
- 3.726511076092720e-2, 2.119151875376701e-3,
- 1.073930296115577e-3, 2.668286114931106e-2,
- 1.411831974983215e-1, 3.062185347080230e-1,
- 3.216609656810760e-1, 1.651122719049454e-1,
- 3.609224036335945e-2, 1.988604199141264e-3,
- 1.155023579485714e-3, 2.762960828840732e-2,
- 1.437802612781525e-1, 3.081108033657074e-1,
- 3.201287388801574e-1, 1.623983532190323e-1,
- 3.494550660252571e-2, 1.864377525635064e-3,
- 1.240676851011813e-3, 2.860039286315441e-2,
- 1.463943719863892e-1, 3.099608123302460e-1,
- 3.185488879680634e-1, 1.596965193748474e-1,
- 3.382468968629837e-2, 1.746327499859035e-3,
- 1.331258914433420e-3, 2.959549613296986e-2,
- 1.490248143672943e-1, 3.117676973342896e-1,
- 3.169221282005310e-1, 1.570075154304504e-1,
- 3.272953629493714e-2, 1.634211512282491e-3,
- 1.426893868483603e-3, 3.061520494520664e-2,
- 1.516709625720978e-1, 3.135308027267456e-1,
- 3.152491748332978e-1, 1.543320864439010e-1,
- 3.165979683399200e-2, 1.527829794213176e-3,
-};
-
-DECLARE_ALIGNED(16, static const float, lfe_fir_128)[] =
-{
- 0.00053168571, 0.15878495574, 0.68603444099, 0.15492856503,
- 0.00016358691, 0.16269733012, 0.68591803312, 0.15112841129,
- 0.00018878609, 0.16666537523, 0.68568539619, 0.14738474786,
- 0.00021643363, 0.17068879306, 0.68533653021, 0.14369773865,
- 0.00024667382, 0.17476719618, 0.68487155437, 0.14006754756,
- 0.00027949660, 0.17890018225, 0.68429082632, 0.13649433851,
- 0.00031519096, 0.18308731914, 0.68359452486, 0.13297818601,
- 0.00035398375, 0.18732811511, 0.68278300762, 0.12951917946,
- 0.00039634691, 0.19162209332, 0.68185669184, 0.12611730397,
- 0.00044236859, 0.19596865773, 0.68081587553, 0.12277261168,
- 0.00049204525, 0.20036731660, 0.67966115475, 0.11948505789,
- 0.00054522208, 0.20481738448, 0.67839306593, 0.11625462025,
- 0.00060277141, 0.20931822062, 0.67701220512, 0.11308115721,
- 0.00066567765, 0.21386915445, 0.67551922798, 0.10996460915,
- 0.00073179678, 0.21846942604, 0.67391467094, 0.10690483451,
- 0.00080365466, 0.22311829031, 0.67219948769, 0.10390164703,
- 0.00088037323, 0.22781492770, 0.67037439346, 0.10095486045,
- 0.00096255314, 0.23255851865, 0.66844022274, 0.09806428105,
- 0.00105048984, 0.23734821379, 0.66639786959, 0.09522963315,
- 0.00114431616, 0.24218304455, 0.66424828768, 0.09245070815,
- 0.00124442333, 0.24706205726, 0.66199249029, 0.08972713351,
- 0.00135110028, 0.25198432803, 0.65963155031, 0.08705867827,
- 0.00146482687, 0.25694879889, 0.65716648102, 0.08444493264,
- 0.00158570008, 0.26195442677, 0.65459835529, 0.08188561350,
- 0.00171401864, 0.26700007915, 0.65192854404, 0.07938029617,
- 0.00185023469, 0.27208462358, 0.64915806055, 0.07692859322,
- 0.00199495023, 0.27720692754, 0.64628833532, 0.07453006506,
- 0.00214785640, 0.28236576915, 0.64332056046, 0.07218432426,
- 0.00231004250, 0.28755992651, 0.64025616646, 0.06989086419,
- 0.00248134881, 0.29278811812, 0.63709646463, 0.06764923781,
- 0.00266251224, 0.29804900289, 0.63384294510, 0.06545893103,
- 0.00285378192, 0.30334126949, 0.63049703836, 0.06331945211,
- 0.00305565330, 0.30866351724, 0.62706029415, 0.06123027951,
- 0.00326841651, 0.31401440501, 0.62353414297, 0.05919086933,
- 0.00349264755, 0.31939238310, 0.61992025375, 0.05720067024,
- 0.00372874714, 0.32479602098, 0.61622029543, 0.05525910854,
- 0.00397720048, 0.33022382855, 0.61243581772, 0.05336561054,
- 0.00423829490, 0.33567428589, 0.60856848955, 0.05151961371,
- 0.00451271003, 0.34114575386, 0.60462015867, 0.04972046614,
- 0.00480085658, 0.34663668275, 0.60059231520, 0.04796761274,
- 0.00510312291, 0.35214546323, 0.59648692608, 0.04626038298,
- 0.00542017492, 0.35767036676, 0.59230577946, 0.04459818453,
- 0.00575236930, 0.36320972443, 0.58805054426, 0.04298033938,
- 0.00610029325, 0.36876192689, 0.58372318745, 0.04140623659,
- 0.00646453211, 0.37432509661, 0.57932555676, 0.03987516090,
- 0.00684553990, 0.37989753485, 0.57485944033, 0.03838652745,
- 0.00724391919, 0.38547745347, 0.57032698393, 0.03693958372,
- 0.00766016589, 0.39106300473, 0.56572991610, 0.03553372994,
- 0.00809498038, 0.39665243030, 0.56107026339, 0.03416819125,
- 0.00854881573, 0.40224379301, 0.55634999275, 0.03284239396,
- 0.00902230106, 0.40783521533, 0.55157101154, 0.03155555204,
- 0.00951600447, 0.41342487931, 0.54673534632, 0.03030703776,
- 0.01003060210, 0.41901078820, 0.54184508324, 0.02909611352,
- 0.01056654565, 0.42459106445, 0.53690224886, 0.02792212367,
- 0.01112466771, 0.43016362190, 0.53190881014, 0.02678431384,
- 0.01170534454, 0.43572667241, 0.52686679363, 0.02568206564,
- 0.01230939943, 0.44127810001, 0.52177828550, 0.02461459488,
- 0.01293735672, 0.44681602716, 0.51664537191, 0.02358125709,
- 0.01358995494, 0.45233830810, 0.51147013903, 0.02258131653,
- 0.01426773332, 0.45784294605, 0.50625455379, 0.02161412500,
- 0.01497144438, 0.46332800388, 0.50100076199, 0.02067894675,
- 0.01570170000, 0.46879136562, 0.49571081996, 0.01977507770,
- 0.01645922661, 0.47423094511, 0.49038675427, 0.01890186779,
- 0.01724460535, 0.47964480519, 0.48503074050, 0.01805862412,
-};
-
-/* 10^-(dB/20), with dB being a list of dB values ranging from 0 to -72 */
-/* do a 20*log10(dca_downmix_coeffs) to reconvert the values */
-
-static const float dca_downmix_coeffs[65] = {
- 1.000000000000000, 0.988553094656939, 0.971627951577106, 0.944060876285923, 0.917275935389780, 0.891250938133746,
- 0.865964323360065, 0.841395141645195, 0.817523037943650, 0.794328234724281, 0.771791515585012, 0.749894209332456,
- 0.728618174513228, 0.707945784384138, 0.687859912308808, 0.668343917568615, 0.649381631576211, 0.630957344480193,
- 0.613055792149821, 0.595662143529010, 0.578761988349121, 0.562341325190349, 0.546386549881854, 0.530884444230988,
- 0.515822165072306, 0.501187233627272, 0.446683592150963, 0.398107170553497, 0.354813389233575, 0.316227766016838,
- 0.281838293126445, 0.251188643150958, 0.223872113856834, 0.199526231496888, 0.177827941003892, 0.158489319246111,
- 0.141253754462275, 0.125892541179417, 0.112201845430196, 0.100000000000000, 0.089125093813374, 0.079432823472428,
- 0.070794578438414, 0.063095734448019, 0.053088444423099, 0.044668359215096, 0.037583740428844, 0.031622776601684,
- 0.026607250597988, 0.022387211385683, 0.018836490894898, 0.015848931924611, 0.013335214321633, 0.011220184543020,
- 0.009440608762859, 0.007943282347243, 0.005623413251903, 0.003981071705535, 0.002818382931264, 0.001995262314969,
- 0.001412537544623, 0.001000000000000, 0.000501187233627, 0.000251188643151, 0.000000000000000,
-};
-
-static const uint8_t dca_default_coeffs[16][5][2] = {
- { { 13, 13 }, },
- { { 0, 64 }, { 64, 0 }, },
- { { 0, 64 }, { 64, 0 }, },
- { { 0, 64 }, { 64, 0 }, },
- { { 0, 64 }, { 64, 0 }, },
- { { 6, 6 }, { 0, 25 }, { 25, 0 }, },
- { { 0, 25 }, { 25, 0 }, { 13, 13 }, },
- { { 6, 6 }, { 0, 25 }, { 25, 0 }, { 13, 13 }, },
- { { 0, 25 }, { 25, 0 }, { 0, 13 }, { 13, 0 }, },
- { { 6, 6 }, { 0, 25 }, { 25, 0 }, { 0, 13 }, { 13, 0 }, },
-};
-
-/* downmix coeffs
-
- TABLE 9
-______________________________________
-Down-mix coefficients for 8-channel source
-audio (5 + 3 format)
- lt
- cen- rt lt ctr rt
-lt ter ctr center
- rt srd srd srd
-______________________________________
-1 0.71 0.74 1.0 0.71 0.71 0.58 0.58 0.58
-2 left 1.0 0.89 0.71 0.46 0.71 0.50
- rt 0.45 0.71 0.89 1.0 0.50 0.71
-3 lt 1.0 0.89 0.71 0.45
- rt 0.45 0.71 0.89 1.0
- srd 0.71 0.71 0.71
-4 lt 1.0 0.89 0.71 0.45
- rt 0.45 0.71 0.89 1.0
- lt srd 1.0 0.71
- rt srd 0.71 0.71
-4 lt 1.0 0.5
- ctr 0.87 1.0 0.87
- rt 0.5 1.0
- srd 0.71 0.71 0.71
-5 lt 1.0 0.5
- ctr 0.87 1.0 0.87
- rt 0.5 1.0
- lt srd 1.0 0.71
- rt srd 0.71 1.0
-6 lt 1.0 0.5
- lt ctr 0.87 0.71
- rt ctr 0.71 0.87
- rt 0.5 1.0
- lt srd 1.0 0.71
- rt srd 0.71 1.0
-6 lt 1.0 0.5
- ctr 0.86 1.0 0.86
- rt 0.5 1.0
- lt srd 1.0
- ctr srd 1.0
- rt srd 1.0
-7 lt 1.0
- lt ctr 1.0
- ctr 1.0
- rt ctr 1.0
- rt 1.0
- lt srd 1.0 0.71
- rt srd 0.71 1.0
-7 lt 1.0 0.5
- lt ctr 0.87 0.71
- rt ctr 0.71 0.87
- rt 0.5 1.0
- lt srd 1.0
- ctr srd 1.0
- rt srd 1.0
-8 lt 1.0 0.5
- lt ctr 0.87 0.71
- rt ctr 0.71 0.87
- rt 0.5 1.0
- lt 1 srd 0.87 0.35
- lt 2 srd 0.5 0.61
- rt 2 srd 0.61 0.50
- rt 2 srd 0.35 0.87
-
- Generation of Lt Rt
-
-In the case when the playback system has analog or digital surround multi-channel capability, a down matrix from 5, 4, or 3 channel to Lt Rt may be desirable. In the case when the number of decoded audio channels exceeds 5, 4 or 3 respectively a first stage down mix to 5, 4 or 3 chs should be used as described above.
-
-The down matrixing equations for 5-channel source audio to a two-channel Lt Rt playback system are given by:
-
-Left left+0.7*center-0.7*(lt surround+rt surround)
-
-Right=right+0.7*center+0.7*(lt surround+rt surround)
-
-Embedded mixing to 2-channel
-
-One concern arising from the proliferation of multi-channel audio systems is that most home systems presently have only two channel playback capability. To accommodate this a fixed 2-channel down matrix processes is commonly used following the multi-channel decoding stage. However, for music only applications the image quality etc. of the down matrixed signal may not match that of an equivalent stereo recording found on CD.
-
-The concept of embedded mixing is to allow the producer to dynamically specify the matrixing coefficients within the audio frame itself. In this way the stereo down mix at the decoder may be better matched to a 2-channel playback environment.
-
-CHS*2, 7-bit down mix indexes (MCOEFFS) are transmitted along with the multi-channel audio once in every frame. The indexes are converted to attenuation factors using a 7 bit LUT. The 2-ch down mix equations are as follows,
-
-Left Ch=sum (MCOEFF[n]*Ch[n]) for n=1, CHS
-
-Right Ch sum (MCOEFF[n+CHS]*Ch[n]) for n=1, CHS
-
-where Ch(n) represents the subband samples in the (n)th audio channel.
-
-
-*/
-
-#endif /* AVCODEC_DCADATA_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DCADSP_H
-#define AVCODEC_DCADSP_H
-
-typedef struct DCADSPContext {
- void (*lfe_fir)(float *out, const float *in, const float *coefs,
- int decifactor, float scale, float bias);
-} DCADSPContext;
-
-void ff_dcadsp_init(DCADSPContext *s);
-void ff_dcadsp_init_arm(DCADSPContext *s);
-
-#endif /* AVCODEC_DCADSP_H */
+++ /dev/null
-/*
- * DCA compatible decoder - huffman tables
- * Copyright (C) 2004 Gildas Bazin
- * Copyright (C) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DCAHUFF_H
-#define AVCODEC_DCAHUFF_H
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#define TMODE_COUNT 4
-static const uint8_t tmode_vlc_bits[TMODE_COUNT] = { 3, 3, 3, 2 };
-static const uint16_t tmode_codes[TMODE_COUNT][4] = {
- { 0x0000, 0x0002, 0x0006, 0x0007 },
- { 0x0002, 0x0006, 0x0007, 0x0000 },
- { 0x0006, 0x0007, 0x0000, 0x0002 },
- { 0x0000, 0x0001, 0x0002, 0x0003 }
-};
-static const uint8_t tmode_bits[TMODE_COUNT][4] = {
- { 1, 2, 3, 3 },
- { 2, 3, 3, 1 },
- { 3, 3, 1, 2 },
- { 2, 2, 2, 2 }
-};
-
-
-#define BITALLOC_12_COUNT 5
-#define BITALLOC_12_VLC_BITS 9
-static const uint8_t bitalloc_12_vlc_bits[BITALLOC_12_COUNT] = {
- 9, 7, 7, 9, 9
-};
-static const uint16_t bitalloc_12_codes[BITALLOC_12_COUNT][12] = {
- {
- 0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E, 0x00FF, 0x00FE,
- 0x01FB, 0x01FA, 0x01F9, 0x01F8,
- },
- {
- 0x0001, 0x0000, 0x0002, 0x000F, 0x000C, 0x001D, 0x0039, 0x0038,
- 0x0037, 0x0036, 0x0035, 0x0034,
- },
- {
- 0x0000, 0x0007, 0x0005, 0x0004, 0x0002, 0x000D, 0x000C, 0x0006,
- 0x000F, 0x001D, 0x0039, 0x0038,
- },
- {
- 0x0003, 0x0002, 0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E,
- 0x007E, 0x00FE, 0x01FF, 0x01FE,
- },
- {
- 0x0001, 0x0000, 0x0002, 0x0006, 0x000E, 0x003F, 0x003D, 0x007C,
- 0x0079, 0x0078, 0x00FB, 0x00FA,
- }
-};
-static const uint8_t bitalloc_12_bits[BITALLOC_12_COUNT][12] = {
- { 1, 2, 3, 4, 5, 6, 8, 8, 9, 9, 9, 9 },
- { 1, 2, 3, 5, 5, 6, 7, 7, 7, 7, 7, 7 },
- { 2, 3, 3, 3, 3, 4, 4, 4, 5, 6, 7, 7 },
- { 2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10 },
- { 1, 2, 3, 4, 5, 7, 7, 8, 8, 8, 9, 9 }
-};
-
-
-#define SCALES_COUNT 5
-#define SCALES_VLC_BITS 9
-static const uint16_t scales_codes[SCALES_COUNT][129] = {
- {
- 0x3AB0, 0x3AB2, 0x3AB4, 0x3AB6, 0x3AB8, 0x3ABA, 0x3ABC, 0x3ABE,
- 0x3AC0, 0x3AC2, 0x3AC4, 0x3AC6, 0x3AC8, 0x3ACA, 0x3ACC, 0x3ACE,
- 0x3AD0, 0x3AD2, 0x3AD4, 0x3AD6, 0x3AD8, 0x3ADA, 0x3ADC, 0x3ADE,
- 0x3AE0, 0x3AE2, 0x3AE4, 0x3AE6, 0x3AE8, 0x3AEA, 0x3AEC, 0x3AEE,
- 0x3AF0, 0x3AF2, 0x3AF4, 0x3AF6, 0x3AF8, 0x3AFA, 0x3AFC, 0x3AFE,
- 0x0540, 0x0542, 0x0544, 0x0546, 0x0548, 0x054A, 0x054C, 0x054E,
- 0x0558, 0x055E, 0x02AD, 0x0154, 0x0754, 0x03A8, 0x0056, 0x0028,
- 0x00E8, 0x004A, 0x000B, 0x003B, 0x0013, 0x0003, 0x000F, 0x0005,
- 0x0001, 0x0006, 0x0000, 0x0008, 0x001C, 0x0004, 0x0024, 0x004B,
- 0x00E9, 0x0029, 0x0057, 0x03A9, 0x0755, 0x0155, 0x02AE, 0x055F,
- 0x0559, 0x054F, 0x054D, 0x054B, 0x0549, 0x0547, 0x0545, 0x0543,
- 0x0541, 0x3AFF, 0x3AFD, 0x3AFB, 0x3AF9, 0x3AF7, 0x3AF5, 0x3AF3,
- 0x3AF1, 0x3AEF, 0x3AED, 0x3AEB, 0x3AE9, 0x3AE7, 0x3AE5, 0x3AE3,
- 0x3AE1, 0x3ADF, 0x3ADD, 0x3ADB, 0x3AD9, 0x3AD7, 0x3AD5, 0x3AD3,
- 0x3AD1, 0x3ACF, 0x3ACD, 0x3ACB, 0x3AC9, 0x3AC7, 0x3AC5, 0x3AC3,
- 0x3AC1, 0x3ABF, 0x3ABD, 0x3ABB, 0x3AB9, 0x3AB7, 0x3AB5, 0x3AB3,
- 0x3AB1,
- },
- {
- 0x0F60, 0x0F62, 0x0F64, 0x0F66, 0x0F68, 0x0F6A, 0x0F6C, 0x0F6E,
- 0x0F70, 0x0F72, 0x0F74, 0x0F76, 0x0F78, 0x0F7A, 0x0F7C, 0x0F7E,
- 0x0F80, 0x0F82, 0x0F84, 0x0F86, 0x0F88, 0x0F8A, 0x0F8C, 0x0F8E,
- 0x0F90, 0x0F92, 0x0F94, 0x0F96, 0x0F98, 0x0F9A, 0x0F9C, 0x0F9E,
- 0x0FA0, 0x0FA2, 0x0FA4, 0x0FA6, 0x0FA8, 0x0FAA, 0x0FAC, 0x0FAE,
- 0x0FB0, 0x0FB2, 0x0FB4, 0x0FB6, 0x0FB8, 0x0FBA, 0x0FBC, 0x0FBE,
- 0x07A0, 0x07A2, 0x03D2, 0x01EA, 0x00FC, 0x007F, 0x001C, 0x000C,
- 0x0004, 0x0034, 0x0010, 0x001B, 0x0009, 0x000B, 0x000E, 0x0001,
- 0x0003, 0x0002, 0x000F, 0x000C, 0x000A, 0x0000, 0x0011, 0x0035,
- 0x0005, 0x000D, 0x001D, 0x003C, 0x00FD, 0x01EB, 0x03D3, 0x07A3,
- 0x07A1, 0x0FBF, 0x0FBD, 0x0FBB, 0x0FB9, 0x0FB7, 0x0FB5, 0x0FB3,
- 0x0FB1, 0x0FAF, 0x0FAD, 0x0FAB, 0x0FA9, 0x0FA7, 0x0FA5, 0x0FA3,
- 0x0FA1, 0x0F9F, 0x0F9D, 0x0F9B, 0x0F99, 0x0F97, 0x0F95, 0x0F93,
- 0x0F91, 0x0F8F, 0x0F8D, 0x0F8B, 0x0F89, 0x0F87, 0x0F85, 0x0F83,
- 0x0F81, 0x0F7F, 0x0F7D, 0x0F7B, 0x0F79, 0x0F77, 0x0F75, 0x0F73,
- 0x0F71, 0x0F6F, 0x0F6D, 0x0F6B, 0x0F69, 0x0F67, 0x0F65, 0x0F63,
- 0x0F61,
- },
- {
- 0x51D0, 0x51D2, 0x51D4, 0x51D6, 0x51D8, 0x51DA, 0x51DC, 0x51DE,
- 0x51E0, 0x51E2, 0x51E4, 0x51E6, 0x51E8, 0x51EA, 0x51EC, 0x51EE,
- 0x51F0, 0x51F2, 0x51F4, 0x51F6, 0x51F8, 0x51FA, 0x51FC, 0x51FE,
- 0x70C0, 0x70C2, 0x70C4, 0x70C6, 0x70C8, 0x70CA, 0x70CC, 0x70CE,
- 0x70EC, 0x10EA, 0x3868, 0x3877, 0x0876, 0x1C35, 0x0434, 0x0A34,
- 0x0E1B, 0x021B, 0x051B, 0x070F, 0x010F, 0x0380, 0x0080, 0x0140,
- 0x01C1, 0x0041, 0x00A1, 0x00E2, 0x0022, 0x0052, 0x0072, 0x0012,
- 0x002A, 0x003A, 0x000A, 0x0016, 0x001E, 0x0006, 0x000C, 0x0000,
- 0x0004, 0x0001, 0x000D, 0x0007, 0x001F, 0x0017, 0x000B, 0x003B,
- 0x002B, 0x0013, 0x0073, 0x0053, 0x0023, 0x00E3, 0x00A2, 0x0042,
- 0x01C2, 0x0141, 0x0081, 0x0381, 0x028C, 0x010C, 0x051C, 0x021C,
- 0x0E1C, 0x0A35, 0x0435, 0x1C3A, 0x0877, 0x0874, 0x3869, 0x10EB,
- 0x70ED, 0x70CF, 0x70CD, 0x70CB, 0x70C9, 0x70C7, 0x70C5, 0x70C3,
- 0x70C1, 0x51FF, 0x51FD, 0x51FB, 0x51F9, 0x51F7, 0x51F5, 0x51F3,
- 0x51F1, 0x51EF, 0x51ED, 0x51EB, 0x51E9, 0x51E7, 0x51E5, 0x51E3,
- 0x51E1, 0x51DF, 0x51DD, 0x51DB, 0x51D9, 0x51D7, 0x51D5, 0x51D3,
- 0x51D1,
- },
- {
- 0x6F64, 0x6F66, 0x6F68, 0x6F6A, 0x6F6C, 0x6F6E, 0x6F70, 0x6F72,
- 0x6F74, 0x6F76, 0x6F78, 0x6F7A, 0x6F7C, 0x6F7E, 0x6F80, 0x6F82,
- 0x6F84, 0x6F86, 0x6F88, 0x6F8A, 0x6F8C, 0x6F8E, 0x6F90, 0x6F92,
- 0x6F94, 0x6F96, 0x6F98, 0x6F9A, 0x6F9C, 0x6F9E, 0x6FA0, 0x6FA2,
- 0x6FA4, 0x6FA6, 0x6FA8, 0x6FAA, 0x6FAC, 0x6FAE, 0x6FB0, 0x6FB2,
- 0x6FB4, 0x6FB6, 0x17B4, 0x37DC, 0x0BDB, 0x1BEF, 0x05EE, 0x0DF8,
- 0x02F8, 0x06FD, 0x017D, 0x037F, 0x00BF, 0x0040, 0x00C0, 0x0021,
- 0x0061, 0x0011, 0x0031, 0x0009, 0x0019, 0x0006, 0x000E, 0x0004,
- 0x0000, 0x0005, 0x000F, 0x0007, 0x001A, 0x000A, 0x0036, 0x0016,
- 0x006E, 0x002E, 0x00C1, 0x0041, 0x01BC, 0x00BC, 0x037A, 0x017A,
- 0x02F9, 0x0DF9, 0x05EF, 0x05EC, 0x1BD8, 0x37DD, 0x17B5, 0x6FB7,
- 0x6FB5, 0x6FB3, 0x6FB1, 0x6FAF, 0x6FAD, 0x6FAB, 0x6FA9, 0x6FA7,
- 0x6FA5, 0x6FA3, 0x6FA1, 0x6F9F, 0x6F9D, 0x6F9B, 0x6F99, 0x6F97,
- 0x6F95, 0x6F93, 0x6F91, 0x6F8F, 0x6F8D, 0x6F8B, 0x6F89, 0x6F87,
- 0x6F85, 0x6F83, 0x6F81, 0x6F7F, 0x6F7D, 0x6F7B, 0x6F79, 0x6F77,
- 0x6F75, 0x6F73, 0x6F71, 0x6F6F, 0x6F6D, 0x6F6B, 0x6F69, 0x6F67,
- 0x6F65,
- },
- {
- 0xDF54, 0xDF56, 0xDFC8, 0xDFCA, 0xDFCC, 0xDFCE, 0xDFD0, 0xDFD2,
- 0xDFD4, 0xDFD6, 0xDFD8, 0xDFDA, 0xDFDC, 0xDFDE, 0xDFE0, 0xDFE2,
- 0x0FE8, 0x2FEA, 0x6FA8, 0x6FF6, 0x07F5, 0x07F7, 0x37D2, 0x37F9,
- 0x03F8, 0x0BF8, 0x0BFB, 0x1BEB, 0x01FA, 0x05FA, 0x09FA, 0x0DFA,
- 0x0DFF, 0x00FF, 0x02FF, 0x06FB, 0x007C, 0x017C, 0x027C, 0x027F,
- 0x003C, 0x00BC, 0x013C, 0x01BC, 0x001C, 0x005C, 0x009C, 0x00DC,
- 0x000C, 0x002C, 0x004C, 0x006C, 0x0004, 0x0014, 0x0024, 0x0034,
- 0x0000, 0x0008, 0x0010, 0x0018, 0x001E, 0x0002, 0x0006, 0x000A,
- 0x000E, 0x000B, 0x0007, 0x0003, 0x001F, 0x0019, 0x0011, 0x0009,
- 0x0001, 0x0035, 0x0025, 0x0015, 0x0005, 0x006D, 0x004D, 0x002D,
- 0x000D, 0x00DD, 0x009D, 0x005D, 0x001D, 0x01BD, 0x013D, 0x00BD,
- 0x003D, 0x037C, 0x027D, 0x017D, 0x007D, 0x06FC, 0x04FC, 0x02FC,
- 0x00FC, 0x0DFB, 0x09FB, 0x05FB, 0x01FB, 0x1BF8, 0x1BE8, 0x0BF9,
- 0x03F9, 0x37FA, 0x37D3, 0x17F4, 0x07F6, 0x6FF7, 0x6FA9, 0x2FEB,
- 0x0FE9, 0xDFE3, 0xDFE1, 0xDFDF, 0xDFDD, 0xDFDB, 0xDFD9, 0xDFD7,
- 0xDFD5, 0xDFD3, 0xDFD1, 0xDFCF, 0xDFCD, 0xDFCB, 0xDFC9, 0xDF57,
- 0xDF55,
- }
-};
-
-static const uint8_t scales_bits[SCALES_COUNT][129] = {
- {
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 12, 11, 11, 10, 9, 8,
- 8, 7, 6, 6, 5, 4, 4, 3,
- 2, 3, 3, 4, 5, 5, 6, 7,
- 8, 8, 9, 10, 11, 11, 12, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14,
- },
- {
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 14, 14, 13, 12, 11, 10, 8, 7,
- 6, 6, 5, 5, 4, 4, 4, 3,
- 3, 3, 4, 4, 4, 4, 5, 6,
- 6, 7, 8, 9, 11, 12, 13, 14,
- 14, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15,
- },
- {
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 14, 14, 14, 13, 13, 12, 12,
- 12, 11, 11, 11, 10, 10, 9, 9,
- 9, 8, 8, 8, 7, 7, 7, 6,
- 6, 6, 5, 5, 5, 4, 4, 3,
- 3, 3, 4, 4, 5, 5, 5, 6,
- 6, 6, 7, 7, 7, 8, 8, 8,
- 9, 9, 9, 10, 10, 10, 11, 11,
- 12, 12, 12, 13, 13, 13, 14, 14,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15,
- },
- {
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 14, 14, 13, 13, 12, 12,
- 11, 11, 10, 10, 9, 8, 8, 7,
- 7, 6, 6, 5, 5, 4, 4, 3,
- 2, 3, 4, 4, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 10,
- 11, 12, 12, 12, 13, 14, 14, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15,
- },
- {
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 15, 15, 15, 15, 14, 14, 14, 14,
- 13, 13, 13, 13, 12, 12, 12, 12,
- 12, 11, 11, 11, 10, 10, 10, 10,
- 9, 9, 9, 9, 8, 8, 8, 8,
- 7, 7, 7, 7, 6, 6, 6, 6,
- 5, 5, 5, 5, 5, 4, 4, 4,
- 4, 4, 4, 4, 5, 5, 5, 5,
- 5, 6, 6, 6, 6, 7, 7, 7,
- 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 10, 10, 10, 10, 11, 11, 11,
- 11, 12, 12, 12, 12, 13, 13, 13,
- 13, 14, 14, 14, 14, 15, 15, 15,
- 15, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16,
- }
-};
-
-static const uint16_t bitalloc_3_codes[3] =
-{
- 0x0003, 0x0000, 0x0002,
-};
-static const uint8_t bitalloc_3_bits[3] =
-{
- 2, 1, 2,
-};
-
-static const uint16_t bitalloc_5_codes_a[5] =
-{
- 0x000F, 0x0006, 0x0000, 0x0002, 0x000E,
-};
-static const uint16_t bitalloc_5_codes_b[5] =
-{
- 0x0007, 0x0001, 0x0002, 0x0000, 0x0006,
-};
-static const uint16_t bitalloc_5_codes_c[5] =
-{
- 0x0007, 0x0005, 0x0000, 0x0004, 0x0006,
-};
-static const uint8_t bitalloc_5_bits_a[5] =
-{
- 4, 3, 1, 2, 4,
-};
-static const uint8_t bitalloc_5_bits_b[5] =
-{
- 3, 2, 2, 2, 3,
-};
-static const uint8_t bitalloc_5_bits_c[5] =
-{
- 3, 3, 1, 3, 3,
-};
-
-static const uint16_t bitalloc_7_codes_a[7] =
-{
- 0x001E, 0x000E, 0x0005, 0x0000, 0x0006, 0x0004, 0x001F,
-};
-static const uint16_t bitalloc_7_codes_b[7] =
-{
- 0x0014, 0x000B, 0x0000, 0x0003, 0x0001, 0x0004, 0x0015,
-};
-static const uint16_t bitalloc_7_codes_c[7] =
-{
- 0x0000, 0x0002, 0x0001, 0x0003, 0x0002, 0x0003, 0x0001,
-};
-static const uint8_t bitalloc_7_bits_a[7] =
-{
- 5, 4, 3, 1, 3, 3, 5,
-};
-static const uint8_t bitalloc_7_bits_b[7] =
-{
- 5, 4, 2, 2, 2, 3, 5,
-};
-static const uint8_t bitalloc_7_bits_c[7] =
-{
- 4, 4, 2, 2, 2, 4, 4,
-};
-
-static const uint16_t bitalloc_9_codes_a[9] =
-{
- 0x0030, 0x0019, 0x0009, 0x0005, 0x0000, 0x0007, 0x000D, 0x0008,
- 0x0031,
-};
-static const uint16_t bitalloc_9_codes_b[9] =
-{
- 0x0018, 0x001A, 0x0002, 0x0007, 0x0002, 0x0000, 0x0003, 0x001B,
- 0x0019,
-};
-static const uint16_t bitalloc_9_codes_c[9] =
-{
- 0x001C, 0x000F, 0x0002, 0x0007, 0x0002, 0x0000, 0x0006, 0x0006,
- 0x001D,
-};
-static const uint8_t bitalloc_9_bits_a[9] =
-{
- 6, 5, 4, 3, 1, 3, 4, 4, 6,
-};
-static const uint8_t bitalloc_9_bits_b[9] =
-{
- 5, 5, 3, 3, 2, 2, 3, 5, 5,
-};
-static const uint8_t bitalloc_9_bits_c[9] =
-{
- 6, 5, 3, 3, 2, 2, 3, 4, 6,
-};
-
-static const uint16_t bitalloc_13_codes_a[13] =
-{
- 0x0070, 0x002E, 0x0039, 0x001D, 0x000C, 0x000F, 0x0000, 0x0004,
- 0x000D, 0x000A, 0x0016, 0x002F, 0x0071,
-};
-static const uint16_t bitalloc_13_codes_b[13] =
-{
- 0x0038, 0x0010, 0x001D, 0x0007, 0x000F, 0x0005, 0x0000, 0x0006,
- 0x0002, 0x0009, 0x0006, 0x0011, 0x0039,
-};
-static const uint16_t bitalloc_13_codes_c[13] =
-{
- 0x0004, 0x001A, 0x0003, 0x000E, 0x0000, 0x0003, 0x0005, 0x0004,
- 0x0002, 0x000F, 0x000C, 0x001B, 0x0005,
-};
-static const uint8_t bitalloc_13_bits_a[13] =
-{
- 7, 6, 6, 5, 4, 4, 1, 3, 4, 4, 5, 6, 7,
-};
-static const uint8_t bitalloc_13_bits_b[13] =
-{
- 6, 5, 5, 4, 4, 3, 2, 3, 3, 4, 4, 5, 6,
-};
-static const uint8_t bitalloc_13_bits_c[13] =
-{
- 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5,
-};
-
-static const uint16_t bitalloc_17_codes_a[17] =
-{
- 0x0154, 0x00AB, 0x002B, 0x000B, 0x0003, 0x000A, 0x0001, 0x0006,
- 0x0001, 0x0007, 0x0004, 0x000B, 0x0000, 0x0004, 0x0014, 0x0054,
- 0x0155,
-};
-static const uint16_t bitalloc_17_codes_b[17] =
-{
- 0x007C, 0x003F, 0x0019, 0x000D, 0x001C, 0x0008, 0x000F, 0x0005,
- 0x0000, 0x0006, 0x0002, 0x0009, 0x001D, 0x000E, 0x001E, 0x0018,
- 0x007D,
-};
-static const uint16_t bitalloc_17_codes_c[17] =
-{
- 0x002C, 0x0017, 0x0005, 0x001C, 0x0003, 0x000A, 0x000F, 0x0003,
- 0x0006, 0x0004, 0x0000, 0x000B, 0x0004, 0x001D, 0x000A, 0x0004,
- 0x002D,
-};
-static const uint16_t bitalloc_17_codes_d[17] =
-{
- 0x0100, 0x0102, 0x0082, 0x0042, 0x0022, 0x0012, 0x000A, 0x0006,
- 0x0000, 0x0007, 0x000B, 0x0013, 0x0023, 0x0043, 0x0083, 0x0103,
- 0x0101,
-};
-static const uint16_t bitalloc_17_codes_e[17] =
-{
- 0x00E8, 0x00F6, 0x0075, 0x0034, 0x003B, 0x001B, 0x001F, 0x0004,
- 0x0000, 0x0005, 0x000C, 0x001C, 0x003C, 0x0035, 0x007A, 0x00F7,
- 0x00E9,
-};
-static const uint16_t bitalloc_17_codes_f[17] =
-{
- 0x0004, 0x0003, 0x001E, 0x0001, 0x0001, 0x000E, 0x0001, 0x0004,
- 0x0006, 0x0005, 0x0002, 0x000F, 0x0006, 0x000E, 0x001F, 0x0000,
- 0x0005,
-};
-static const uint16_t bitalloc_17_codes_g[17] =
-{
- 0x0060, 0x007E, 0x0031, 0x0019, 0x000D, 0x0004, 0x0000, 0x0006,
- 0x0002, 0x0007, 0x0001, 0x0005, 0x000E, 0x001E, 0x003E, 0x007F,
- 0x0061,
-};
-static const uint8_t bitalloc_17_bits_a[17] =
-{
- 12, 11, 9, 7, 5, 4, 3, 3, 2, 3, 3, 4, 4, 6, 8, 10,
- 12,
-};
-static const uint8_t bitalloc_17_bits_b[17] =
-{
- 8, 7, 6, 5, 5, 4, 4, 3, 2, 3, 3, 4, 5, 5, 6, 6,
- 8,
-};
-static const uint8_t bitalloc_17_bits_c[17] =
-{
- 7, 6, 5, 5, 4, 4, 4, 3, 3, 3, 3, 4, 4, 5, 5, 5,
- 7,
-};
-static const uint8_t bitalloc_17_bits_d[17] =
-{
- 9, 9, 8, 7, 6, 5, 4, 3, 1, 3, 4, 5, 6, 7, 8, 9,
- 9,
-};
-static const uint8_t bitalloc_17_bits_e[17] =
-{
- 8, 8, 7, 6, 6, 5, 5, 3, 1, 3, 4, 5, 6, 6, 7, 8,
- 8,
-};
-static const uint8_t bitalloc_17_bits_f[17] =
-{
- 8, 7, 6, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 6, 6,
- 8,
-};
-static const uint8_t bitalloc_17_bits_g[17] =
-{
- 8, 8, 7, 6, 5, 4, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8,
- 8,
-};
-
-static const uint16_t bitalloc_25_codes_a[25] =
-{
- 0x2854, 0x142B, 0x050B, 0x0143, 0x00A2, 0x0052, 0x002E, 0x0015,
- 0x0004, 0x000E, 0x0000, 0x0003, 0x0006, 0x0004, 0x0001, 0x000F,
- 0x0005, 0x0016, 0x002F, 0x0053, 0x00A3, 0x00A0, 0x0284, 0x0A14,
- 0x2855,
-};
-static const uint16_t bitalloc_25_codes_b[25] =
-{
- 0x001C, 0x000F, 0x0005, 0x0000, 0x0030, 0x0036, 0x000E, 0x0019,
- 0x0001, 0x0008, 0x000E, 0x0001, 0x0005, 0x0002, 0x000F, 0x0009,
- 0x0006, 0x001A, 0x000F, 0x0037, 0x0031, 0x0001, 0x0006, 0x0004,
- 0x001D,
-};
-static const uint16_t bitalloc_25_codes_c[25] =
-{
- 0x004C, 0x0027, 0x006D, 0x0028, 0x0037, 0x000E, 0x0015, 0x0000,
- 0x0005, 0x0008, 0x000B, 0x000E, 0x0001, 0x000F, 0x000C, 0x0009,
- 0x0006, 0x0001, 0x001A, 0x000F, 0x0008, 0x0029, 0x0012, 0x006C,
- 0x004D,
-};
-static const uint16_t bitalloc_25_codes_d[25] =
-{
- 0x0780, 0x0782, 0x03C2, 0x01E2, 0x00FE, 0x0079, 0x003D, 0x001C,
- 0x000C, 0x0004, 0x0000, 0x0006, 0x0002, 0x0007, 0x0001, 0x0005,
- 0x000D, 0x001D, 0x003E, 0x007E, 0x00FF, 0x01E3, 0x03C3, 0x0783,
- 0x0781,
-};
-static const uint16_t bitalloc_25_codes_e[25] =
-{
- 0x003C, 0x0092, 0x0018, 0x001F, 0x004E, 0x000D, 0x0025, 0x0004,
- 0x0010, 0x0000, 0x000A, 0x0002, 0x0003, 0x0003, 0x000B, 0x0001,
- 0x0011, 0x0005, 0x0026, 0x000E, 0x004F, 0x0048, 0x0019, 0x0093,
- 0x003D,
-};
-static const uint16_t bitalloc_25_codes_f[25] =
-{
- 0x0324, 0x0193, 0x00CE, 0x0065, 0x0024, 0x000C, 0x0013, 0x0004,
- 0x0007, 0x000A, 0x000D, 0x000F, 0x0001, 0x0000, 0x000E, 0x000B,
- 0x0008, 0x0005, 0x0018, 0x000D, 0x0025, 0x0066, 0x00CF, 0x00C8,
- 0x0325,
-};
-static const uint16_t bitalloc_25_codes_g[25] =
-{
- 0x03A8, 0x03AE, 0x01D5, 0x0094, 0x0014, 0x004B, 0x000B, 0x003B,
- 0x0013, 0x0003, 0x000F, 0x0005, 0x0001, 0x0006, 0x0000, 0x0008,
- 0x001C, 0x0004, 0x0024, 0x0074, 0x0015, 0x0095, 0x01D6, 0x03AF,
- 0x03A9,
-};
-static const uint8_t bitalloc_25_bits_a[25] =
-{
- 14, 13, 11, 9, 8, 7, 6, 5, 4, 4, 3, 3, 3, 3, 3, 4,
- 4, 5, 6, 7, 8, 8, 10, 12, 14,
-};
-static const uint8_t bitalloc_25_bits_b[25] =
-{
- 9, 8, 7, 6, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 4, 4,
- 4, 5, 5, 6, 6, 6, 7, 7, 9,
-};
-static const uint8_t bitalloc_25_bits_c[25] =
-{
- 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 4, 4, 3, 4, 4, 4,
- 4, 4, 5, 5, 5, 6, 6, 7, 8,
-};
-static const uint8_t bitalloc_25_bits_d[25] =
-{
- 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 3, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 12,
-};
-static const uint8_t bitalloc_25_bits_e[25] =
-{
- 8, 8, 7, 7, 7, 6, 6, 5, 5, 4, 4, 3, 2, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 7, 8, 8,
-};
-static const uint8_t bitalloc_25_bits_f[25] =
-{
- 10, 9, 8, 7, 6, 5, 5, 4, 4, 4, 4, 4, 3, 3, 4, 4,
- 4, 4, 5, 5, 6, 7, 8, 8, 10,
-};
-static const uint8_t bitalloc_25_bits_g[25] =
-{
- 10, 10, 9, 8, 7, 7, 6, 6, 5, 4, 4, 3, 2, 3, 3, 4,
- 5, 5, 6, 7, 7, 8, 9, 10, 10,
-};
-
-static const uint16_t bitalloc_33_codes_a[33] =
-{
- 0x1580, 0x1582, 0x0AC2, 0x0562, 0x02B2, 0x015E, 0x00AD, 0x0054,
- 0x001C, 0x003C, 0x000F, 0x001F, 0x0008, 0x000B, 0x000D, 0x0000,
- 0x0002, 0x0001, 0x000E, 0x000C, 0x0009, 0x0006, 0x0014, 0x003D,
- 0x001D, 0x0055, 0x00AE, 0x015F, 0x02B3, 0x0563, 0x0AC3, 0x1583,
- 0x1581,
-};
-static const uint16_t bitalloc_33_codes_b[33] =
-{
- 0x030C, 0x0187, 0x006D, 0x0028, 0x0037, 0x0066, 0x0015, 0x0031,
- 0x0000, 0x000B, 0x0012, 0x001A, 0x0001, 0x0007, 0x000A, 0x000E,
- 0x0001, 0x000F, 0x000B, 0x0008, 0x0004, 0x001B, 0x0013, 0x000C,
- 0x0001, 0x0032, 0x001A, 0x0067, 0x0060, 0x0029, 0x00C2, 0x006C,
- 0x030D,
-};
-static const uint16_t bitalloc_33_codes_c[33] =
-{
- 0x00CC, 0x0067, 0x0005, 0x0070, 0x0003, 0x001A, 0x0039, 0x003F,
- 0x000A, 0x0012, 0x0018, 0x001D, 0x0001, 0x0003, 0x0007, 0x000A,
- 0x000D, 0x000B, 0x0008, 0x0004, 0x0002, 0x001E, 0x0019, 0x0013,
- 0x000B, 0x0000, 0x003E, 0x001B, 0x0018, 0x0071, 0x0032, 0x0004,
- 0x00CD,
-};
-static const uint16_t bitalloc_33_codes_d[33] =
-{
- 0x3AF8, 0x3AFA, 0x1D7E, 0x0EBC, 0x075C, 0x03AC, 0x01D4, 0x0094,
- 0x0014, 0x004B, 0x000B, 0x003B, 0x0013, 0x0003, 0x000F, 0x0005,
- 0x0001, 0x0006, 0x0000, 0x0008, 0x001C, 0x0004, 0x0024, 0x0074,
- 0x0015, 0x0095, 0x01D5, 0x03AD, 0x075D, 0x0EBD, 0x1D7F, 0x3AFB,
- 0x3AF9,
-};
-static const uint16_t bitalloc_33_codes_e[33] =
-{
- 0x01C8, 0x01E6, 0x0064, 0x00E2, 0x00E5, 0x0030, 0x0033, 0x0073,
- 0x007A, 0x001A, 0x003A, 0x0002, 0x001A, 0x001F, 0x0007, 0x0001,
- 0x0002, 0x0002, 0x000C, 0x0000, 0x001B, 0x0003, 0x003B, 0x001B,
- 0x007B, 0x0078, 0x0070, 0x0031, 0x00F2, 0x00E3, 0x0065, 0x01E7,
- 0x01C9,
-};
-static const uint16_t bitalloc_33_codes_f[33] =
-{
- 0x0724, 0x0393, 0x01CE, 0x00E5, 0x002C, 0x0008, 0x0017, 0x003E,
- 0x0005, 0x0014, 0x001D, 0x0000, 0x0003, 0x0006, 0x0008, 0x000B,
- 0x000D, 0x000C, 0x0009, 0x0007, 0x0004, 0x0001, 0x001E, 0x0015,
- 0x000A, 0x003F, 0x0038, 0x0009, 0x002D, 0x00E6, 0x01CF, 0x01C8,
- 0x0725,
-};
-static const uint16_t bitalloc_33_codes_g[33] =
-{
- 0x0284, 0x0042, 0x0140, 0x0143, 0x003E, 0x00BE, 0x0011, 0x0051,
- 0x0009, 0x0029, 0x0005, 0x0015, 0x0000, 0x0008, 0x000E, 0x0002,
- 0x0006, 0x0003, 0x000F, 0x0009, 0x0001, 0x0016, 0x0006, 0x002E,
- 0x000E, 0x005E, 0x001E, 0x00BF, 0x003F, 0x0020, 0x0141, 0x0043,
- 0x0285,
-};
-static const uint8_t bitalloc_33_bits_a[33] =
-{
- 13, 13, 12, 11, 10, 9, 8, 7, 6, 6, 5, 5, 4, 4, 4, 3,
- 3, 3, 4, 4, 4, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13,
- 13,
-};
-static const uint8_t bitalloc_33_bits_b[33] =
-{
- 10, 9, 8, 7, 7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4,
- 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8,
- 10,
-};
-static const uint8_t bitalloc_33_bits_c[33] =
-{
- 9, 8, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7,
- 9,
-};
-static const uint8_t bitalloc_33_bits_d[33] =
-{
- 14, 14, 13, 12, 11, 10, 9, 8, 7, 7, 6, 6, 5, 4, 4, 3,
- 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
- 14,
-};
-static const uint8_t bitalloc_33_bits_e[33] =
-{
- 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 5, 5, 5, 4, 3,
- 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9,
- 9,
-};
-static const uint8_t bitalloc_33_bits_f[33] =
-{
- 11, 10, 9, 8, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9,
- 11,
-};
-static const uint8_t bitalloc_33_bits_g[33] =
-{
- 10, 9, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3,
- 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9,
- 10,
-};
-
-static const uint16_t bitalloc_65_codes_a[65] =
-{
- 0x9E5C, 0x9E5E, 0x4F2C, 0x2794, 0x13C4, 0x1E44, 0x09E3, 0x0F23,
- 0x04F3, 0x0792, 0x027E, 0x03CE, 0x013D, 0x01E5, 0x009C, 0x00CC,
- 0x0040, 0x0058, 0x0067, 0x001E, 0x0021, 0x002D, 0x003D, 0x0007,
- 0x0011, 0x0014, 0x0017, 0x001A, 0x001C, 0x001F, 0x0001, 0x0004,
- 0x0006, 0x0005, 0x0002, 0x0000, 0x001D, 0x001B, 0x0018, 0x0015,
- 0x0012, 0x000E, 0x0006, 0x0032, 0x0026, 0x001F, 0x0078, 0x0059,
- 0x0041, 0x00CD, 0x009D, 0x01E6, 0x013E, 0x03CF, 0x027F, 0x0793,
- 0x0790, 0x04F0, 0x09E4, 0x1E45, 0x13C5, 0x2795, 0x4F2D, 0x9E5F,
- 0x9E5D,
-};
-static const uint16_t bitalloc_65_codes_b[65] =
-{
- 0x0A8C, 0x0547, 0x01B5, 0x0008, 0x00DB, 0x0152, 0x0005, 0x000B,
- 0x008E, 0x00AE, 0x00E4, 0x0003, 0x0037, 0x0039, 0x0055, 0x006C,
- 0x0073, 0x0003, 0x0015, 0x001D, 0x0028, 0x0030, 0x0037, 0x003E,
- 0x0006, 0x000B, 0x000F, 0x0012, 0x0016, 0x0019, 0x001D, 0x0001,
- 0x0004, 0x0002, 0x001E, 0x001A, 0x0017, 0x0013, 0x0010, 0x000C,
- 0x0007, 0x003F, 0x0038, 0x0031, 0x0029, 0x0022, 0x001A, 0x0014,
- 0x0000, 0x006D, 0x0056, 0x0046, 0x0038, 0x0004, 0x00E5, 0x00AF,
- 0x008F, 0x006C, 0x000A, 0x0153, 0x0150, 0x0009, 0x02A2, 0x01B4,
- 0x0A8D,
-};
-static const uint16_t bitalloc_65_codes_c[65] =
-{
- 0x045C, 0x022F, 0x03F5, 0x01BC, 0x01FB, 0x0059, 0x00D0, 0x00DF,
- 0x000A, 0x002D, 0x002F, 0x0052, 0x0069, 0x0078, 0x007F, 0x000A,
- 0x0010, 0x001C, 0x0023, 0x002A, 0x0035, 0x003A, 0x003D, 0x0000,
- 0x0003, 0x0006, 0x0009, 0x000C, 0x000F, 0x0012, 0x0016, 0x0018,
- 0x001C, 0x0019, 0x0017, 0x0013, 0x0010, 0x000D, 0x000A, 0x0007,
- 0x0004, 0x0001, 0x003E, 0x003B, 0x0036, 0x002B, 0x0028, 0x001D,
- 0x0011, 0x000B, 0x0004, 0x0079, 0x006E, 0x0053, 0x0044, 0x002E,
- 0x000B, 0x00FC, 0x00D1, 0x008A, 0x0058, 0x01BD, 0x0116, 0x03F4,
- 0x045D,
-};
-static const uint16_t bitalloc_65_codes_d[65] =
-{
- 0x70B0, 0x70B2, 0x70B4, 0x2852, 0x385B, 0x142E, 0x1C2E, 0x0A15,
- 0x0E14, 0x0214, 0x0704, 0x0104, 0x010B, 0x0383, 0x0083, 0x0143,
- 0x01C3, 0x0043, 0x00A2, 0x00E2, 0x0022, 0x0052, 0x0072, 0x0012,
- 0x002A, 0x003A, 0x000A, 0x0016, 0x001E, 0x0006, 0x000C, 0x0000,
- 0x0004, 0x0001, 0x000D, 0x0007, 0x001F, 0x0017, 0x000B, 0x003B,
- 0x002B, 0x0013, 0x0073, 0x0053, 0x0023, 0x00E3, 0x00A3, 0x00A0,
- 0x0040, 0x01C0, 0x0084, 0x0384, 0x0284, 0x0105, 0x0705, 0x0215,
- 0x0E15, 0x0A16, 0x1C2F, 0x142F, 0x1428, 0x2853, 0x70B5, 0x70B3,
- 0x70B1,
-};
-static const uint16_t bitalloc_65_codes_e[65] =
-{
- 0x032C, 0x0332, 0x0378, 0x037E, 0x008C, 0x014A, 0x0188, 0x0197,
- 0x019E, 0x01BD, 0x0044, 0x0047, 0x00AA, 0x00C5, 0x00CD, 0x00DC,
- 0x001C, 0x002C, 0x0053, 0x0063, 0x0068, 0x0008, 0x000F, 0x0017,
- 0x002B, 0x0035, 0x0005, 0x0009, 0x0016, 0x001C, 0x0006, 0x000F,
- 0x0004, 0x0000, 0x0007, 0x001D, 0x0017, 0x000A, 0x0006, 0x0036,
- 0x0030, 0x0028, 0x0010, 0x0009, 0x0069, 0x0064, 0x0054, 0x002D,
- 0x001D, 0x00DD, 0x00CE, 0x00CA, 0x00AB, 0x00A4, 0x0045, 0x01BE,
- 0x019F, 0x0198, 0x0189, 0x014B, 0x008D, 0x037F, 0x0379, 0x0333,
- 0x032D,
-};
-static const uint16_t bitalloc_65_codes_f[65] =
-{
- 0x0FE0, 0x0FE2, 0x0FE8, 0x0FEA, 0x0FEC, 0x0FEE, 0x0FF0, 0x0FF2,
- 0x0FF4, 0x2FF2, 0x07F2, 0x07FB, 0x03F6, 0x0BFA, 0x0BFD, 0x01FF,
- 0x05FF, 0x02FC, 0x007C, 0x017C, 0x003C, 0x00BC, 0x001C, 0x005C,
- 0x000C, 0x002C, 0x0004, 0x0014, 0x0000, 0x0008, 0x000E, 0x0002,
- 0x0006, 0x0003, 0x000F, 0x0009, 0x0001, 0x0015, 0x0005, 0x002D,
- 0x000D, 0x005D, 0x001D, 0x00BD, 0x003D, 0x017D, 0x007D, 0x02FD,
- 0x00FC, 0x05FC, 0x01FA, 0x0BFB, 0x03F7, 0x17F8, 0x07F3, 0x2FF3,
- 0x0FF5, 0x0FF3, 0x0FF1, 0x0FEF, 0x0FED, 0x0FEB, 0x0FE9, 0x0FE3,
- 0x0FE1,
-};
-static const uint16_t bitalloc_65_codes_g[65] =
-{
- 0x010C, 0x038A, 0x0608, 0x0786, 0x0084, 0x0087, 0x0302, 0x0305,
- 0x0040, 0x00E0, 0x00E3, 0x0183, 0x001E, 0x005E, 0x009E, 0x00DE,
- 0x00F1, 0x0011, 0x0039, 0x0061, 0x0079, 0x0009, 0x001D, 0x0031,
- 0x003D, 0x0005, 0x000F, 0x0019, 0x001F, 0x0003, 0x0006, 0x000A,
- 0x000E, 0x000B, 0x0008, 0x0004, 0x0000, 0x001A, 0x0012, 0x000A,
- 0x0002, 0x0036, 0x0026, 0x0016, 0x0006, 0x006E, 0x004E, 0x002E,
- 0x000E, 0x00DF, 0x009F, 0x005F, 0x001F, 0x01E0, 0x0180, 0x00E1,
- 0x0041, 0x03C2, 0x0303, 0x01C4, 0x0085, 0x0787, 0x0609, 0x038B,
- 0x010D,
-};
-static const uint8_t bitalloc_65_bits_a[65] =
-{
- 16, 16, 15, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 8, 8,
- 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4,
- 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7,
- 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 13, 13, 14, 15, 16,
- 16,
-};
-static const uint8_t bitalloc_65_bits_b[65] =
-{
- 12, 11, 10, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
- 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
- 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 10, 10,
- 12,
-};
-static const uint8_t bitalloc_65_bits_c[65] =
-{
- 11, 10, 10, 9, 9, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6,
- 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 10,
- 11,
-};
-static const uint8_t bitalloc_65_bits_d[65] =
-{
- 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 10, 9, 9,
- 9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 3,
- 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 15, 15,
- 15,
-};
-static const uint8_t bitalloc_65_bits_e[65] =
-{
- 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4,
- 3, 3, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10,
- 10,
-};
-static const uint8_t bitalloc_65_bits_f[65] =
-{
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11,
- 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3,
- 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
- 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14,
-};
-static const uint8_t bitalloc_65_bits_g[65] =
-{
- 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8,
- 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4,
- 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7,
- 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11,
- 11,
-};
-
-static const uint16_t bitalloc_129_codes_a[129] =
-{
- 0x0660, 0x0666, 0x06EC, 0x0722, 0x0760, 0x076E, 0x004C, 0x004E,
- 0x00F4, 0x010A, 0x0148, 0x0156, 0x01D4, 0x01F2, 0x0331, 0x0370,
- 0x0377, 0x0396, 0x03B1, 0x0024, 0x0064, 0x007B, 0x008A, 0x00A5,
- 0x00D4, 0x00EB, 0x00FA, 0x019A, 0x01B9, 0x01C9, 0x01D9, 0x0010,
- 0x0030, 0x0033, 0x0043, 0x0053, 0x006B, 0x007A, 0x00CA, 0x00D2,
- 0x00DE, 0x00E6, 0x00F6, 0x000E, 0x001F, 0x0023, 0x002B, 0x003B,
- 0x003F, 0x0067, 0x0070, 0x0077, 0x0005, 0x000D, 0x0012, 0x001B,
- 0x002C, 0x0035, 0x003A, 0x0004, 0x000B, 0x0017, 0x001F, 0x0009,
- 0x0008, 0x000A, 0x0000, 0x0018, 0x000C, 0x0005, 0x003C, 0x0036,
- 0x002D, 0x001C, 0x0013, 0x000E, 0x0006, 0x007A, 0x0071, 0x0068,
- 0x0064, 0x003C, 0x0034, 0x0028, 0x0020, 0x000F, 0x00F7, 0x00E7,
- 0x00DF, 0x00D3, 0x00CB, 0x007B, 0x0074, 0x0054, 0x0044, 0x003C,
- 0x0031, 0x0011, 0x01DA, 0x01CA, 0x01BA, 0x019B, 0x00FB, 0x00F8,
- 0x00D5, 0x00AA, 0x008B, 0x0084, 0x0065, 0x0025, 0x03B6, 0x0397,
- 0x0390, 0x0371, 0x0332, 0x01F3, 0x01D5, 0x0157, 0x0149, 0x010B,
- 0x00F5, 0x004F, 0x004D, 0x076F, 0x0761, 0x0723, 0x06ED, 0x0667,
- 0x0661,
-};
-static const uint16_t bitalloc_129_codes_b[129] =
-{
- 0x29DC, 0x14EF, 0x0455, 0x0E9C, 0x022B, 0x0489, 0x0740, 0x074F,
- 0x0172, 0x0245, 0x0247, 0x030A, 0x03A1, 0x001C, 0x008B, 0x00D6,
- 0x010C, 0x0148, 0x014F, 0x0186, 0x01D1, 0x0008, 0x000F, 0x0046,
- 0x005D, 0x0078, 0x0087, 0x0096, 0x00A5, 0x00BC, 0x00D8, 0x00DE,
- 0x00F6, 0x0005, 0x0014, 0x0024, 0x002F, 0x003A, 0x003D, 0x0049,
- 0x0050, 0x0058, 0x005F, 0x0066, 0x006D, 0x0075, 0x007C, 0x0004,
- 0x000B, 0x0013, 0x0018, 0x001B, 0x001F, 0x0022, 0x0026, 0x002A,
- 0x002D, 0x0031, 0x0034, 0x0038, 0x003B, 0x003F, 0x0003, 0x0006,
- 0x000A, 0x0007, 0x0004, 0x0000, 0x003C, 0x0039, 0x0035, 0x0032,
- 0x002E, 0x002B, 0x0027, 0x0023, 0x0020, 0x001C, 0x0019, 0x0016,
- 0x0010, 0x0005, 0x007D, 0x007A, 0x006E, 0x0067, 0x0060, 0x0059,
- 0x0051, 0x004A, 0x0042, 0x003B, 0x0034, 0x0025, 0x0015, 0x0006,
- 0x00F7, 0x00DF, 0x00D9, 0x00BD, 0x00A6, 0x0097, 0x0090, 0x0079,
- 0x006A, 0x0047, 0x0044, 0x0009, 0x01D2, 0x0187, 0x0184, 0x0149,
- 0x010D, 0x00D7, 0x00B8, 0x001D, 0x03A6, 0x030B, 0x029C, 0x0246,
- 0x0173, 0x0114, 0x0741, 0x053A, 0x0488, 0x0E9D, 0x0A76, 0x0454,
- 0x29DD,
-};
-static const uint16_t bitalloc_129_codes_c[129] =
-{
- 0x0E5C, 0x072F, 0x001D, 0x0724, 0x000F, 0x010D, 0x0324, 0x0393,
- 0x03E9, 0x0080, 0x0087, 0x00FA, 0x0164, 0x0193, 0x01DE, 0x01F5,
- 0x0010, 0x002A, 0x0041, 0x0064, 0x0073, 0x008E, 0x00A4, 0x00B3,
- 0x00D6, 0x00E5, 0x00F4, 0x00FB, 0x0002, 0x0009, 0x0013, 0x001E,
- 0x0026, 0x002C, 0x0033, 0x003F, 0x0041, 0x004C, 0x0053, 0x005E,
- 0x0065, 0x0070, 0x0073, 0x0078, 0x007B, 0x007E, 0x0002, 0x0005,
- 0x0007, 0x000B, 0x000D, 0x0011, 0x0014, 0x0017, 0x001A, 0x001D,
- 0x0021, 0x0024, 0x0027, 0x002A, 0x002D, 0x0030, 0x0033, 0x0036,
- 0x003A, 0x0037, 0x0034, 0x0031, 0x002E, 0x002B, 0x0028, 0x0025,
- 0x0022, 0x001E, 0x001B, 0x0018, 0x0015, 0x0012, 0x000E, 0x000C,
- 0x0008, 0x0006, 0x0003, 0x007F, 0x007C, 0x0079, 0x0076, 0x0071,
- 0x006A, 0x005F, 0x0058, 0x004D, 0x0046, 0x0040, 0x0038, 0x002D,
- 0x0027, 0x001F, 0x0014, 0x0012, 0x0003, 0x0000, 0x00F5, 0x00EE,
- 0x00D7, 0x00C8, 0x00A5, 0x008F, 0x007C, 0x0065, 0x0042, 0x002B,
- 0x0011, 0x0002, 0x01DF, 0x01C8, 0x0165, 0x00FB, 0x00E4, 0x0081,
- 0x0006, 0x03E8, 0x0325, 0x01CA, 0x010C, 0x0725, 0x0396, 0x001C,
- 0x0E5D,
-};
-static const uint16_t bitalloc_129_codes_d[129] =
-{
- 0xA598, 0xA59A, 0xA59C, 0xA59E, 0xC598, 0xE586, 0x3ACC, 0x52CA,
- 0x62CD, 0x0D48, 0x1D67, 0x2978, 0x3167, 0x3966, 0x06A5, 0x0EBC,
- 0x14BD, 0x1CB1, 0x0350, 0x0353, 0x075F, 0x0A5F, 0x0C5E, 0x0E5E,
- 0x01AE, 0x03AD, 0x052D, 0x062D, 0x072D, 0x00D5, 0x01D4, 0x0294,
- 0x0314, 0x0394, 0x0014, 0x0094, 0x0114, 0x0174, 0x01B4, 0x01F4,
- 0x000B, 0x004B, 0x008B, 0x00BB, 0x00DB, 0x00FB, 0x001B, 0x003B,
- 0x0053, 0x0063, 0x0073, 0x0003, 0x0013, 0x0023, 0x002F, 0x0037,
- 0x003F, 0x0007, 0x000F, 0x0015, 0x0019, 0x001D, 0x0001, 0x0005,
- 0x0009, 0x0006, 0x0002, 0x001E, 0x001A, 0x0016, 0x0010, 0x0008,
- 0x0000, 0x0038, 0x0030, 0x0028, 0x001C, 0x000C, 0x007C, 0x006C,
- 0x005C, 0x0044, 0x0024, 0x0004, 0x00E4, 0x00C4, 0x00A4, 0x0074,
- 0x0034, 0x01F5, 0x01B5, 0x0175, 0x0115, 0x0095, 0x0015, 0x0395,
- 0x0315, 0x0295, 0x01D5, 0x00D6, 0x072E, 0x062E, 0x052E, 0x03AE,
- 0x01AF, 0x0E5F, 0x0C5F, 0x0C58, 0x0A58, 0x0758, 0x0351, 0x1CB2,
- 0x18B2, 0x0EBD, 0x0EB2, 0x3967, 0x3960, 0x2979, 0x2964, 0x0D49,
- 0x72C2, 0x52CB, 0x3ACD, 0xE587, 0xC599, 0xA59F, 0xA59D, 0xA59B,
- 0xA599,
-};
-static const uint16_t bitalloc_129_codes_e[129] =
-{
- 0xA13C, 0xC720, 0xA13F, 0xA13E, 0xA13D, 0xE722, 0x5090, 0x6393,
- 0x7392, 0x2849, 0x31CE, 0x39CE, 0x1425, 0x18E5, 0x1CE5, 0x0844,
- 0x0A1C, 0x0C7C, 0x036C, 0x0423, 0x050F, 0x063F, 0x01B7, 0x0216,
- 0x0285, 0x031D, 0x039D, 0x0109, 0x0140, 0x0180, 0x01C8, 0x01CF,
- 0x007A, 0x008A, 0x00A2, 0x00C1, 0x00E5, 0x0014, 0x0037, 0x0043,
- 0x004E, 0x0056, 0x0061, 0x006C, 0x007C, 0x000B, 0x001C, 0x001F,
- 0x0023, 0x0025, 0x0029, 0x002C, 0x002E, 0x0032, 0x0034, 0x0037,
- 0x003A, 0x003C, 0x003F, 0x0001, 0x0003, 0x0006, 0x0008, 0x000A,
- 0x000C, 0x000B, 0x0009, 0x0007, 0x0004, 0x0002, 0x0000, 0x003D,
- 0x003B, 0x0038, 0x0035, 0x0033, 0x002F, 0x002D, 0x002A, 0x0026,
- 0x0024, 0x0020, 0x001D, 0x001A, 0x007D, 0x006D, 0x0062, 0x0057,
- 0x004F, 0x0044, 0x003C, 0x0015, 0x00E6, 0x00C6, 0x00A3, 0x008B,
- 0x007B, 0x006C, 0x01C9, 0x0181, 0x0141, 0x010A, 0x00DA, 0x031E,
- 0x0286, 0x0217, 0x0210, 0x0738, 0x0638, 0x0508, 0x036D, 0x0C7D,
- 0x0A1D, 0x0845, 0x1CE6, 0x18E6, 0x1426, 0x39CF, 0x31CF, 0x284E,
- 0x7393, 0x7390, 0x5091, 0xE723, 0xC724, 0xC725, 0xC722, 0xC723,
- 0xC721,
-};
-static const uint16_t bitalloc_129_codes_f[129] =
-{
- 0x762C, 0x3B17, 0x1555, 0x0608, 0x0AAB, 0x0FF2, 0x0305, 0x0307,
- 0x0763, 0x0046, 0x010C, 0x01BC, 0x02AB, 0x03B6, 0x03FD, 0x0080,
- 0x0087, 0x00DF, 0x0156, 0x01D9, 0x01F8, 0x01FF, 0x002A, 0x0041,
- 0x0061, 0x0094, 0x00D4, 0x00EA, 0x00F2, 0x00FD, 0x0009, 0x000B,
- 0x001A, 0x0026, 0x0031, 0x0040, 0x004B, 0x006B, 0x0073, 0x0077,
- 0x007A, 0x007C, 0x0000, 0x0002, 0x0006, 0x0008, 0x000B, 0x000E,
- 0x0011, 0x0014, 0x0016, 0x0019, 0x001C, 0x001E, 0x0021, 0x0023,
- 0x0026, 0x0028, 0x002B, 0x002D, 0x002F, 0x0031, 0x0033, 0x0036,
- 0x0038, 0x0037, 0x0034, 0x0032, 0x0030, 0x002E, 0x002C, 0x0029,
- 0x0027, 0x0024, 0x0022, 0x001F, 0x001D, 0x001A, 0x0017, 0x0015,
- 0x0012, 0x000F, 0x000C, 0x0009, 0x0007, 0x0003, 0x0001, 0x007D,
- 0x007B, 0x0078, 0x0074, 0x0072, 0x0054, 0x0041, 0x0036, 0x0027,
- 0x001B, 0x0014, 0x000A, 0x00FE, 0x00F3, 0x00EB, 0x00D5, 0x0095,
- 0x006E, 0x0042, 0x002B, 0x0010, 0x01F9, 0x01DA, 0x0157, 0x0154,
- 0x00C0, 0x0081, 0x0022, 0x03B7, 0x03B0, 0x01BD, 0x010D, 0x0047,
- 0x07F8, 0x0554, 0x0306, 0x0FF3, 0x0EC4, 0x0609, 0x1D8A, 0x1554,
- 0x762D,
-};
-static const uint16_t bitalloc_129_codes_g[129] =
-{
- 0x1E20, 0x1E5E, 0x031C, 0x051A, 0x0718, 0x0916, 0x0B14, 0x0D12,
- 0x0F11, 0x0090, 0x018F, 0x028E, 0x038D, 0x048C, 0x058B, 0x068A,
- 0x0789, 0x0049, 0x00C8, 0x0148, 0x01C7, 0x0247, 0x02C6, 0x0346,
- 0x03C5, 0x0025, 0x0065, 0x00A5, 0x00E4, 0x0124, 0x0164, 0x01A4,
- 0x01E3, 0x0013, 0x0033, 0x0053, 0x0073, 0x0093, 0x00B3, 0x00D3,
- 0x00F3, 0x000A, 0x001A, 0x002A, 0x003A, 0x004A, 0x005A, 0x006A,
- 0x007A, 0x0006, 0x000E, 0x0016, 0x001E, 0x0026, 0x002E, 0x0036,
- 0x003E, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C,
- 0x0000, 0x001D, 0x0019, 0x0015, 0x0011, 0x000D, 0x0009, 0x0005,
- 0x003F, 0x0037, 0x002F, 0x0027, 0x001F, 0x0017, 0x000F, 0x0007,
- 0x007B, 0x006B, 0x005B, 0x004B, 0x003B, 0x002B, 0x001B, 0x000B,
- 0x0008, 0x00F0, 0x00D0, 0x00B0, 0x0090, 0x0070, 0x0050, 0x0030,
- 0x01E4, 0x01A5, 0x0165, 0x0125, 0x00E5, 0x00E2, 0x00A2, 0x0062,
- 0x03CA, 0x0347, 0x02C7, 0x02C4, 0x0244, 0x0149, 0x00C9, 0x00C6,
- 0x0796, 0x068B, 0x0688, 0x048D, 0x048A, 0x028F, 0x028C, 0x0091,
- 0x0F2E, 0x0D13, 0x0B15, 0x0917, 0x0719, 0x051B, 0x031D, 0x1E5F,
- 0x1E21,
-};
-static const uint8_t bitalloc_129_bits_a[129] =
-{
- 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4,
- 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,
- 11,
-};
-static const uint8_t bitalloc_129_bits_b[129] =
-{
- 14, 13, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9,
- 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5,
- 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12,
- 14,
-};
-static const uint8_t bitalloc_129_bits_c[129] =
-{
- 13, 12, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11,
- 13,
-};
-static const uint8_t bitalloc_129_bits_d[129] =
-{
- 16, 16, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 14, 14, 13, 13,
- 13, 13, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10,
- 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 7, 7,
- 7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4,
- 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7,
- 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10,
- 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13,
- 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 16,
- 16,
-};
-static const uint8_t bitalloc_129_bits_e[129] =
-{
- 16, 16, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12,
- 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9,
- 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
- 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 16,
- 16,
-};
-static const uint8_t bitalloc_129_bits_f[129] =
-{
- 15, 14, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 10, 10, 9,
- 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13,
- 15,
-};
-static const uint8_t bitalloc_129_bits_g[129] =
-{
- 13, 13, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11,
- 11, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9,
- 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7,
- 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5,
- 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
- 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
- 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13,
- 13,
-};
-
-static const uint8_t bitalloc_sizes[10] = { 3, 5, 7, 9, 13, 17, 25, 33, 65, 129 };
-
-static const int8_t bitalloc_offsets[10] =
- { -1, -2, -3, -4, -6, -8, -12, -16, -32, -64 };
-
-static const uint8_t bitalloc_maxbits[10][7] = {
- { 2 },
- { 4, 3, 3 },
- { 5, 5, 4 },
- { 6, 5, 6 },
- { 7, 6, 5 },
- { 9, 8, 7, 9, 8, 8, 8 },
- { 9, 9, 8, 9, 8, 9, 9 },
- { 9, 9, 9, 9, 9, 9, 9 },
- { 9, 9, 9, 9, 9, 9, 9 },
- { 9, 9, 9, 9, 9, 9, 9 }
-};
-
-static const uint16_t* const bitalloc_codes[10][8] = {
- { bitalloc_3_codes, NULL },
- { bitalloc_5_codes_a, bitalloc_5_codes_b, bitalloc_5_codes_c, NULL },
- { bitalloc_7_codes_a, bitalloc_7_codes_b, bitalloc_7_codes_c, NULL },
- { bitalloc_9_codes_a, bitalloc_9_codes_b, bitalloc_9_codes_c, NULL },
- { bitalloc_13_codes_a, bitalloc_13_codes_b, bitalloc_13_codes_c, NULL },
- { bitalloc_17_codes_a, bitalloc_17_codes_b, bitalloc_17_codes_c, bitalloc_17_codes_d,
- bitalloc_17_codes_e, bitalloc_17_codes_f, bitalloc_17_codes_g, NULL },
- { bitalloc_25_codes_a, bitalloc_25_codes_b, bitalloc_25_codes_c, bitalloc_25_codes_d,
- bitalloc_25_codes_e, bitalloc_25_codes_f, bitalloc_25_codes_g, NULL },
- { bitalloc_33_codes_a, bitalloc_33_codes_b, bitalloc_33_codes_c, bitalloc_33_codes_d,
- bitalloc_33_codes_e, bitalloc_33_codes_f, bitalloc_33_codes_g, NULL },
- { bitalloc_65_codes_a, bitalloc_65_codes_b, bitalloc_65_codes_c, bitalloc_65_codes_d,
- bitalloc_65_codes_e, bitalloc_65_codes_f, bitalloc_65_codes_g, NULL },
- { bitalloc_129_codes_a, bitalloc_129_codes_b, bitalloc_129_codes_c, bitalloc_129_codes_d,
- bitalloc_129_codes_e, bitalloc_129_codes_f, bitalloc_129_codes_g, NULL }
-};
-
-static const uint8_t* const bitalloc_bits[10][8] = {
- { bitalloc_3_bits, NULL },
- { bitalloc_5_bits_a, bitalloc_5_bits_b, bitalloc_5_bits_c, NULL },
- { bitalloc_7_bits_a, bitalloc_7_bits_b, bitalloc_7_bits_c, NULL },
- { bitalloc_9_bits_a, bitalloc_9_bits_b, bitalloc_9_bits_c, NULL },
- { bitalloc_13_bits_a, bitalloc_13_bits_b, bitalloc_13_bits_c, NULL },
- { bitalloc_17_bits_a, bitalloc_17_bits_b, bitalloc_17_bits_c, bitalloc_17_bits_d,
- bitalloc_17_bits_e, bitalloc_17_bits_f, bitalloc_17_bits_g, NULL },
- { bitalloc_25_bits_a, bitalloc_25_bits_b, bitalloc_25_bits_c, bitalloc_25_bits_d,
- bitalloc_25_bits_e, bitalloc_25_bits_f, bitalloc_25_bits_g, NULL },
- { bitalloc_33_bits_a, bitalloc_33_bits_b, bitalloc_33_bits_c, bitalloc_33_bits_d,
- bitalloc_33_bits_e, bitalloc_33_bits_f, bitalloc_33_bits_g, NULL },
- { bitalloc_65_bits_a, bitalloc_65_bits_b, bitalloc_65_bits_c, bitalloc_65_bits_d,
- bitalloc_65_bits_e, bitalloc_65_bits_f, bitalloc_65_bits_g, NULL },
- { bitalloc_129_bits_a, bitalloc_129_bits_b, bitalloc_129_bits_c, bitalloc_129_bits_d,
- bitalloc_129_bits_e, bitalloc_129_bits_f, bitalloc_129_bits_g, NULL }
-};
-
-#endif /* AVCODEC_DCAHUFF_H */
+++ /dev/null
-/*
- * reference discrete cosine transform (double precision)
- * Copyright (C) 2009 Dylan Yudaken
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DCTREF_H
-#define AVCODEC_DCTREF_H
-
-#include "dsputil.h"
-
-void ff_ref_fdct(DCTELEM *block);
-void ff_ref_idct(DCTELEM *block);
-void ff_ref_dct_init(void);
-
-#endif
+++ /dev/null
-/*
- * Copyright (C) 2007 Marco Gerards <marco@gnu.org>
- * Copyright (C) 2009 David Conrad
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DIRAC_H
-#define AVCODEC_DIRAC_H
-
-/**
- * @file
- * Interfaces to Dirac Decoder/Encoder
- * @author Marco Gerards <marco@gnu.org>
- */
-
-#include "avcodec.h"
-#include "get_bits.h"
-
-typedef struct {
- unsigned width;
- unsigned height;
- uint8_t chroma_format; ///< 0: 444 1: 422 2: 420
-
- uint8_t interlaced;
- uint8_t top_field_first;
-
- uint8_t frame_rate_index; ///< index into dirac_frame_rate[]
- uint8_t aspect_ratio_index; ///< index into dirac_aspect_ratio[]
-
- uint16_t clean_width;
- uint16_t clean_height;
- uint16_t clean_left_offset;
- uint16_t clean_right_offset;
-
- uint8_t pixel_range_index; ///< index into dirac_pixel_range_presets[]
- uint8_t color_spec_index; ///< index into dirac_color_spec_presets[]
-} dirac_source_params;
-
-int ff_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
- dirac_source_params *source);
-
-#endif /* AVCODEC_DIRAC_H */
+++ /dev/null
-/*
- * VC3/DNxHD decoder.
- * Copyright (c) 2007 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DNXHDDATA_H
-#define AVCODEC_DNXHDDATA_H
-
-#include <stdint.h>
-#include "avcodec.h"
-
-typedef struct {
- int cid;
- unsigned int width, height;
- int interlaced;
- unsigned int frame_size;
- unsigned int coding_unit_size;
- int index_bits;
- int bit_depth;
- const uint8_t *luma_weight, *chroma_weight;
- const uint8_t *dc_codes, *dc_bits;
- const uint16_t *ac_codes;
- const uint8_t *ac_bits, *ac_level;
- const uint8_t *ac_run_flag, *ac_index_flag;
- const uint16_t *run_codes;
- const uint8_t *run_bits, *run;
- int bit_rates[5]; ///< Helpher to choose variants, rounded to nearest 5Mb/s
-} CIDEntry;
-
-extern const CIDEntry ff_dnxhd_cid_table[];
-
-int ff_dnxhd_get_cid_table(int cid);
-int ff_dnxhd_find_cid(AVCodecContext *avctx);
-
-#endif /* AVCODEC_DNXHDDATA_H */
+++ /dev/null
-/*
- * VC3/DNxHD encoder structure definitions and prototypes
- * Copyright (c) 2007 Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
- *
- * VC-3 encoder funded by the British Broadcasting Corporation
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DNXHDENC_H
-#define AVCODEC_DNXHDENC_H
-
-#include <stdint.h>
-#include "libavcodec/mpegvideo.h"
-#include "libavcodec/dnxhddata.h"
-
-typedef struct {
- uint16_t mb;
- int value;
-} RCCMPEntry;
-
-typedef struct {
- int ssd;
- int bits;
-} RCEntry;
-
-typedef struct DNXHDEncContext {
- MpegEncContext m; ///< Used for quantization dsp functions
-
- AVFrame frame;
- int cid;
- const CIDEntry *cid_table;
- uint8_t *msip; ///< Macroblock Scan Indexes Payload
- uint32_t *slice_size;
- uint32_t *slice_offs;
-
- struct DNXHDEncContext *thread[MAX_THREADS];
-
- unsigned dct_y_offset;
- unsigned dct_uv_offset;
- int interlaced;
- int cur_field;
-
- DECLARE_ALIGNED(16, DCTELEM, blocks)[8][64];
-
- int (*qmatrix_c) [64];
- int (*qmatrix_l) [64];
- uint16_t (*qmatrix_l16)[2][64];
- uint16_t (*qmatrix_c16)[2][64];
-
- unsigned frame_bits;
- uint8_t *src[3];
-
- uint32_t *vlc_codes;
- uint8_t *vlc_bits;
- uint16_t *run_codes;
- uint8_t *run_bits;
-
- /** Rate control */
- unsigned slice_bits;
- unsigned qscale;
- unsigned lambda;
-
- unsigned thread_size;
-
- uint16_t *mb_bits;
- uint8_t *mb_qscale;
-
- RCCMPEntry *mb_cmp;
- RCEntry (*mb_rc)[8160];
-
- void (*get_pixels_8x4_sym)(DCTELEM */*align 16*/, const uint8_t *, int);
-} DNXHDEncContext;
-
-void ff_dnxhd_init_mmx(DNXHDEncContext *ctx);
-
-#endif /* AVCODEC_DNXHDENC_H */
+++ /dev/null
-/*
- * DSP utils
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * DSP utils.
- * note, many functions in here may use MMX which trashes the FPU state, it is
- * absolutely necessary to call emms_c() between dsp & float/double code
- */
-
-#ifndef AVCODEC_DSPUTIL_H
-#define AVCODEC_DSPUTIL_H
-
-#include "libavutil/intreadwrite.h"
-#include "avcodec.h"
-
-
-//#define DEBUG
-/* dct code */
-typedef short DCTELEM;
-
-void fdct_ifast (DCTELEM *data);
-void fdct_ifast248 (DCTELEM *data);
-void ff_jpeg_fdct_islow (DCTELEM *data);
-void ff_fdct248_islow (DCTELEM *data);
-
-void j_rev_dct (DCTELEM *data);
-void j_rev_dct4 (DCTELEM *data);
-void j_rev_dct2 (DCTELEM *data);
-void j_rev_dct1 (DCTELEM *data);
-void ff_wmv2_idct_c(DCTELEM *data);
-
-void ff_fdct_mmx(DCTELEM *block);
-void ff_fdct_mmx2(DCTELEM *block);
-void ff_fdct_sse2(DCTELEM *block);
-
-void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride);
-void ff_h264_idct_add_c(uint8_t *dst, DCTELEM *block, int stride);
-void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
-void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
-void ff_h264_lowres_idct_add_c(uint8_t *dst, int stride, DCTELEM *block);
-void ff_h264_lowres_idct_put_c(uint8_t *dst, int stride, DCTELEM *block);
-void ff_h264_idct_add16_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
-void ff_h264_idct_add16intra_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
-void ff_h264_idct8_add4_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
-void ff_h264_idct_add8_c(uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
-
-void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1,
- const float *win, float add_bias, int len);
-void ff_float_to_int16_c(int16_t *dst, const float *src, long len);
-void ff_float_to_int16_interleave_c(int16_t *dst, const float **src, long len, int channels);
-
-/* encoding scans */
-extern const uint8_t ff_alternate_horizontal_scan[64];
-extern const uint8_t ff_alternate_vertical_scan[64];
-extern const uint8_t ff_zigzag_direct[64];
-extern const uint8_t ff_zigzag248_direct[64];
-
-/* pixel operations */
-#define MAX_NEG_CROP 1024
-
-/* temporary */
-extern uint32_t ff_squareTbl[512];
-extern uint8_t ff_cropTbl[256 + 2 * MAX_NEG_CROP];
-
-/* VP3 DSP functions */
-void ff_vp3_idct_c(DCTELEM *block/* align 16*/);
-void ff_vp3_idct_put_c(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
-void ff_vp3_idct_add_c(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
-void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/);
-
-void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
-void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
-
-/* VP6 DSP functions */
-void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride,
- const int16_t *h_weights, const int16_t *v_weights);
-
-/* Bink functions */
-void ff_bink_idct_c (DCTELEM *block);
-void ff_bink_idct_add_c(uint8_t *dest, int linesize, DCTELEM *block);
-void ff_bink_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
-
-/* CAVS functions */
-void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-
-/* VC1 functions */
-void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
-void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
-
-/* EA functions */
-void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
-
-/* 1/2^n downscaling functions from imgconvert.c */
-void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-
-void ff_gmc_c(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy,
- int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height);
-
-/* minimum alignment rules ;)
-If you notice errors in the align stuff, need more alignment for some ASM code
-for some CPU or need to use a function with less aligned data then send a mail
-to the ffmpeg-devel mailing list, ...
-
-!warning These alignments might not match reality, (missing attribute((align))
-stuff somewhere possible).
-I (Michael) did not check them, these are just the alignments which I think
-could be reached easily ...
-
-!future video codecs might need functions with less strict alignment
-*/
-
-/*
-void get_pixels_c(DCTELEM *block, const uint8_t *pixels, int line_size);
-void diff_pixels_c(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride);
-void put_pixels_clamped_c(const DCTELEM *block, uint8_t *pixels, int line_size);
-void add_pixels_clamped_c(const DCTELEM *block, uint8_t *pixels, int line_size);
-void clear_blocks_c(DCTELEM *blocks);
-*/
-
-/* add and put pixel (decoding) */
-// blocksizes for op_pixels_func are 8x4,8x8 16x8 16x16
-//h for op_pixels_func is limited to {width/2, width} but never larger than 16 and never smaller then 4
-typedef void (*op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int h);
-typedef void (*tpel_mc_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int w, int h);
-typedef void (*qpel_mc_func)(uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);
-typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y);
-
-typedef void (*op_fill_func)(uint8_t *block/*align width (8 or 16)*/, uint8_t value, int line_size, int h);
-
-#define DEF_OLD_QPEL(name)\
-void ff_put_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
-void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
-void ff_avg_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);
-
-DEF_OLD_QPEL(qpel16_mc11_old_c)
-DEF_OLD_QPEL(qpel16_mc31_old_c)
-DEF_OLD_QPEL(qpel16_mc12_old_c)
-DEF_OLD_QPEL(qpel16_mc32_old_c)
-DEF_OLD_QPEL(qpel16_mc13_old_c)
-DEF_OLD_QPEL(qpel16_mc33_old_c)
-DEF_OLD_QPEL(qpel8_mc11_old_c)
-DEF_OLD_QPEL(qpel8_mc31_old_c)
-DEF_OLD_QPEL(qpel8_mc12_old_c)
-DEF_OLD_QPEL(qpel8_mc32_old_c)
-DEF_OLD_QPEL(qpel8_mc13_old_c)
-DEF_OLD_QPEL(qpel8_mc33_old_c)
-
-#define CALL_2X_PIXELS(a, b, n)\
-static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\
- b(block , pixels , line_size, h);\
- b(block+n, pixels+n, line_size, h);\
-}
-
-/* motion estimation */
-// h is limited to {width/2, width, 2*width} but never larger than 16 and never smaller then 2
-// although currently h<4 is not used as functions with width <8 are neither used nor implemented
-typedef int (*me_cmp_func)(void /*MpegEncContext*/ *s, uint8_t *blk1/*align width (8 or 16)*/, uint8_t *blk2/*align 1*/, int line_size, int h)/* __attribute__ ((const))*/;
-
-/**
- * Scantable.
- */
-typedef struct ScanTable{
- const uint8_t *scantable;
- uint8_t permutated[64];
- uint8_t raster_end[64];
-#if ARCH_PPC
- /** Used by dct_quantize_altivec to find last-non-zero */
- DECLARE_ALIGNED(16, uint8_t, inverse)[64];
-#endif
-} ScanTable;
-
-void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);
-
-void ff_emulated_edge_mc(uint8_t *buf, uint8_t *src, int linesize,
- int block_w, int block_h,
- int src_x, int src_y, int w, int h);
-
-/**
- * DSPContext.
- */
-typedef struct DSPContext {
- /* pixel ops : interface with DCT */
- void (*get_pixels)(DCTELEM *block/*align 16*/, const uint8_t *pixels/*align 8*/, int line_size);
- void (*diff_pixels)(DCTELEM *block/*align 16*/, const uint8_t *s1/*align 8*/, const uint8_t *s2/*align 8*/, int stride);
- void (*put_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
- void (*put_signed_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
- void (*put_pixels_nonclamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
- void (*add_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
- void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size);
- void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size);
- int (*sum_abs_dctelem)(DCTELEM *block/*align 16*/);
- /**
- * translational global motion compensation.
- */
- void (*gmc1)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x16, int y16, int rounder);
- /**
- * global motion compensation.
- */
- void (*gmc )(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int ox, int oy,
- int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height);
- void (*clear_block)(DCTELEM *block/*align 16*/);
- void (*clear_blocks)(DCTELEM *blocks/*align 16*/);
- int (*pix_sum)(uint8_t * pix, int line_size);
- int (*pix_norm1)(uint8_t * pix, int line_size);
-// 16x16 8x8 4x4 2x2 16x8 8x4 4x2 8x16 4x8 2x4
-
- me_cmp_func sad[6]; /* identical to pix_absAxA except additional void * */
- me_cmp_func sse[6];
- me_cmp_func hadamard8_diff[6];
- me_cmp_func dct_sad[6];
- me_cmp_func quant_psnr[6];
- me_cmp_func bit[6];
- me_cmp_func rd[6];
- me_cmp_func vsad[6];
- me_cmp_func vsse[6];
- me_cmp_func nsse[6];
- me_cmp_func w53[6];
- me_cmp_func w97[6];
- me_cmp_func dct_max[6];
- me_cmp_func dct264_sad[6];
-
- me_cmp_func me_pre_cmp[6];
- me_cmp_func me_cmp[6];
- me_cmp_func me_sub_cmp[6];
- me_cmp_func mb_cmp[6];
- me_cmp_func ildct_cmp[6]; //only width 16 used
- me_cmp_func frame_skip_cmp[6]; //only width 8 used
-
- int (*ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2,
- int size);
-
- /**
- * Halfpel motion compensation with rounding (a+b+1)>>1.
- * this is an array[4][4] of motion compensation functions for 4
- * horizontal blocksizes (8,16) and the 4 halfpel positions<br>
- * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
- * @param block destination where the result is stored
- * @param pixels source
- * @param line_size number of bytes in a horizontal line of block
- * @param h height
- */
- op_pixels_func put_pixels_tab[4][4];
-
- /**
- * Halfpel motion compensation with rounding (a+b+1)>>1.
- * This is an array[4][4] of motion compensation functions for 4
- * horizontal blocksizes (8,16) and the 4 halfpel positions<br>
- * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
- * @param block destination into which the result is averaged (a+b+1)>>1
- * @param pixels source
- * @param line_size number of bytes in a horizontal line of block
- * @param h height
- */
- op_pixels_func avg_pixels_tab[4][4];
-
- /**
- * Halfpel motion compensation with no rounding (a+b)>>1.
- * this is an array[2][4] of motion compensation functions for 2
- * horizontal blocksizes (8,16) and the 4 halfpel positions<br>
- * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
- * @param block destination where the result is stored
- * @param pixels source
- * @param line_size number of bytes in a horizontal line of block
- * @param h height
- */
- op_pixels_func put_no_rnd_pixels_tab[4][4];
-
- /**
- * Halfpel motion compensation with no rounding (a+b)>>1.
- * this is an array[2][4] of motion compensation functions for 2
- * horizontal blocksizes (8,16) and the 4 halfpel positions<br>
- * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
- * @param block destination into which the result is averaged (a+b)>>1
- * @param pixels source
- * @param line_size number of bytes in a horizontal line of block
- * @param h height
- */
- op_pixels_func avg_no_rnd_pixels_tab[4][4];
-
- void (*put_no_rnd_pixels_l2[2])(uint8_t *block/*align width (8 or 16)*/, const uint8_t *a/*align 1*/, const uint8_t *b/*align 1*/, int line_size, int h);
-
- /**
- * Thirdpel motion compensation with rounding (a+b+1)>>1.
- * this is an array[12] of motion compensation functions for the 9 thirdpe
- * positions<br>
- * *pixels_tab[ xthirdpel + 4*ythirdpel ]
- * @param block destination where the result is stored
- * @param pixels source
- * @param line_size number of bytes in a horizontal line of block
- * @param h height
- */
- tpel_mc_func put_tpel_pixels_tab[11]; //FIXME individual func ptr per width?
- tpel_mc_func avg_tpel_pixels_tab[11]; //FIXME individual func ptr per width?
-
- qpel_mc_func put_qpel_pixels_tab[2][16];
- qpel_mc_func avg_qpel_pixels_tab[2][16];
- qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16];
- qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16];
- qpel_mc_func put_mspel_pixels_tab[8];
-
- /**
- * h264 Chroma MC
- */
- h264_chroma_mc_func put_h264_chroma_pixels_tab[3];
- h264_chroma_mc_func avg_h264_chroma_pixels_tab[3];
- /* This is really one func used in VC-1 decoding */
- h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3];
- h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3];
-
- qpel_mc_func put_h264_qpel_pixels_tab[4][16];
- qpel_mc_func avg_h264_qpel_pixels_tab[4][16];
-
- qpel_mc_func put_2tap_qpel_pixels_tab[4][16];
- qpel_mc_func avg_2tap_qpel_pixels_tab[4][16];
-
- /* AVS specific */
- qpel_mc_func put_cavs_qpel_pixels_tab[2][16];
- qpel_mc_func avg_cavs_qpel_pixels_tab[2][16];
- void (*cavs_filter_lv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2);
- void (*cavs_filter_lh)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2);
- void (*cavs_filter_cv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2);
- void (*cavs_filter_ch)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2);
- void (*cavs_idct8_add)(uint8_t *dst, DCTELEM *block, int stride);
-
- me_cmp_func pix_abs[2][4];
-
- /* huffyuv specific */
- void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w);
- void (*add_bytes_l2)(uint8_t *dst/*align 16*/, uint8_t *src1/*align 16*/, uint8_t *src2/*align 16*/, int w);
- void (*diff_bytes)(uint8_t *dst/*align 16*/, uint8_t *src1/*align 16*/, uint8_t *src2/*align 1*/,int w);
- /**
- * subtract huffyuv's variant of median prediction
- * note, this might read from src1[-1], src2[-1]
- */
- void (*sub_hfyu_median_prediction)(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top);
- void (*add_hfyu_median_prediction)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top);
- int (*add_hfyu_left_prediction)(uint8_t *dst, const uint8_t *src, int w, int left);
- void (*add_hfyu_left_prediction_bgr32)(uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue, int *alpha);
- /* this might write to dst[w] */
- void (*add_png_paeth_prediction)(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
- void (*bswap_buf)(uint32_t *dst, const uint32_t *src, int w);
-
- void (*h263_v_loop_filter)(uint8_t *src, int stride, int qscale);
- void (*h263_h_loop_filter)(uint8_t *src, int stride, int qscale);
-
- void (*h261_loop_filter)(uint8_t *src, int stride);
-
- void (*x8_v_loop_filter)(uint8_t *src, int stride, int qscale);
- void (*x8_h_loop_filter)(uint8_t *src, int stride, int qscale);
-
- void (*vp3_idct_dc_add)(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/);
- void (*vp3_v_loop_filter)(uint8_t *src, int stride, int *bounding_values);
- void (*vp3_h_loop_filter)(uint8_t *src, int stride, int *bounding_values);
-
- void (*vp6_filter_diag4)(uint8_t *dst, uint8_t *src, int stride,
- const int16_t *h_weights,const int16_t *v_weights);
-
- /* assume len is a multiple of 4, and arrays are 16-byte aligned */
- void (*vorbis_inverse_coupling)(float *mag, float *ang, int blocksize);
- void (*ac3_downmix)(float (*samples)[256], float (*matrix)[2], int out_ch, int in_ch, int len);
- /* no alignment needed */
- void (*lpc_compute_autocorr)(const int32_t *data, int len, int lag, double *autoc);
- /* assume len is a multiple of 8, and arrays are 16-byte aligned */
- void (*vector_fmul)(float *dst, const float *src, int len);
- void (*vector_fmul_reverse)(float *dst, const float *src0, const float *src1, int len);
- /* assume len is a multiple of 8, and src arrays are 16-byte aligned */
- void (*vector_fmul_add)(float *dst, const float *src0, const float *src1, const float *src2, int len);
- /* assume len is a multiple of 4, and arrays are 16-byte aligned */
- void (*vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len);
- /* assume len is a multiple of 8, and arrays are 16-byte aligned */
- void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len);
- void (*vector_clipf)(float *dst /* align 16 */, const float *src /* align 16 */, float min, float max, int len /* align 16 */);
- /**
- * Multiply a vector of floats by a scalar float. Source and
- * destination vectors must overlap exactly or not at all.
- * @param dst result vector, 16-byte aligned
- * @param src input vector, 16-byte aligned
- * @param mul scalar value
- * @param len length of vector, multiple of 4
- */
- void (*vector_fmul_scalar)(float *dst, const float *src, float mul,
- int len);
- /**
- * Multiply a vector of floats by concatenated short vectors of
- * floats and by a scalar float. Source and destination vectors
- * must overlap exactly or not at all.
- * [0]: short vectors of length 2, 8-byte aligned
- * [1]: short vectors of length 4, 16-byte aligned
- * @param dst output vector, 16-byte aligned
- * @param src input vector, 16-byte aligned
- * @param sv array of pointers to short vectors
- * @param mul scalar value
- * @param len number of elements in src and dst, multiple of 4
- */
- void (*vector_fmul_sv_scalar[2])(float *dst, const float *src,
- const float **sv, float mul, int len);
- /**
- * Multiply short vectors of floats by a scalar float, store
- * concatenated result.
- * [0]: short vectors of length 2, 8-byte aligned
- * [1]: short vectors of length 4, 16-byte aligned
- * @param dst output vector, 16-byte aligned
- * @param sv array of pointers to short vectors
- * @param mul scalar value
- * @param len number of output elements, multiple of 4
- */
- void (*sv_fmul_scalar[2])(float *dst, const float **sv,
- float mul, int len);
- /**
- * Calculate the scalar product of two vectors of floats.
- * @param v1 first vector, 16-byte aligned
- * @param v2 second vector, 16-byte aligned
- * @param len length of vectors, multiple of 4
- */
- float (*scalarproduct_float)(const float *v1, const float *v2, int len);
- /**
- * Calculate the sum and difference of two vectors of floats.
- * @param v1 first input vector, sum output, 16-byte aligned
- * @param v2 second input vector, difference output, 16-byte aligned
- * @param len length of vectors, multiple of 4
- */
- void (*butterflies_float)(float *restrict v1, float *restrict v2, int len);
-
- /* C version: convert floats from the range [384.0,386.0] to ints in [-32768,32767]
- * simd versions: convert floats from [-32768.0,32767.0] without rescaling and arrays are 16byte aligned */
- void (*float_to_int16)(int16_t *dst, const float *src, long len);
- void (*float_to_int16_interleave)(int16_t *dst, const float **src, long len, int channels);
-
- /* (I)DCT */
- void (*fdct)(DCTELEM *block/* align 16*/);
- void (*fdct248)(DCTELEM *block/* align 16*/);
-
- /* IDCT really*/
- void (*idct)(DCTELEM *block/* align 16*/);
-
- /**
- * block -> idct -> clip to unsigned 8 bit -> dest.
- * (-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...)
- * @param line_size size in bytes of a horizontal line of dest
- */
- void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
-
- /**
- * block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
- * @param line_size size in bytes of a horizontal line of dest
- */
- void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
-
- /**
- * idct input permutation.
- * several optimized IDCTs need a permutated input (relative to the normal order of the reference
- * IDCT)
- * this permutation must be performed before the idct_put/add, note, normally this can be merged
- * with the zigzag/alternate scan<br>
- * an example to avoid confusion:
- * - (->decode coeffs -> zigzag reorder -> dequant -> reference idct ->...)
- * - (x -> referece dct -> reference idct -> x)
- * - (x -> referece dct -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
- * - (->decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx ->...)
- */
- uint8_t idct_permutation[64];
- int idct_permutation_type;
-#define FF_NO_IDCT_PERM 1
-#define FF_LIBMPEG2_IDCT_PERM 2
-#define FF_SIMPLE_IDCT_PERM 3
-#define FF_TRANSPOSE_IDCT_PERM 4
-#define FF_PARTTRANS_IDCT_PERM 5
-#define FF_SSE2_IDCT_PERM 6
-
- int (*try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale);
- void (*add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale);
-#define BASIS_SHIFT 16
-#define RECON_SHIFT 6
-
- void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);
-#define EDGE_WIDTH 16
-
- void (*prefetch)(void *mem, int stride, int h);
-
- void (*shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-
- /* mlp/truehd functions */
- void (*mlp_filter_channel)(int32_t *state, const int32_t *coeff,
- int firorder, int iirorder,
- unsigned int filter_shift, int32_t mask, int blocksize,
- int32_t *sample_buffer);
-
- /* vc1 functions */
- void (*vc1_inv_trans_8x8)(DCTELEM *b);
- void (*vc1_inv_trans_8x4)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_4x8)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_4x4)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_8x8_dc)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_8x4_dc)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_4x8_dc)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_inv_trans_4x4_dc)(uint8_t *dest, int line_size, DCTELEM *block);
- void (*vc1_v_overlap)(uint8_t* src, int stride);
- void (*vc1_h_overlap)(uint8_t* src, int stride);
- void (*vc1_v_loop_filter4)(uint8_t *src, int stride, int pq);
- void (*vc1_h_loop_filter4)(uint8_t *src, int stride, int pq);
- void (*vc1_v_loop_filter8)(uint8_t *src, int stride, int pq);
- void (*vc1_h_loop_filter8)(uint8_t *src, int stride, int pq);
- void (*vc1_v_loop_filter16)(uint8_t *src, int stride, int pq);
- void (*vc1_h_loop_filter16)(uint8_t *src, int stride, int pq);
- /* put 8x8 block with bicubic interpolation and quarterpel precision
- * last argument is actually round value instead of height
- */
- op_pixels_func put_vc1_mspel_pixels_tab[16];
- op_pixels_func avg_vc1_mspel_pixels_tab[16];
-
- /* intrax8 functions */
- void (*x8_spatial_compensation[12])(uint8_t *src , uint8_t *dst, int linesize);
- void (*x8_setup_spatial_compensation)(uint8_t *src, uint8_t *dst, int linesize,
- int * range, int * sum, int edges);
-
- /**
- * Calculate scalar product of two vectors.
- * @param len length of vectors, should be multiple of 16
- * @param shift number of bits to discard from product
- */
- int32_t (*scalarproduct_int16)(int16_t *v1, int16_t *v2/*align 16*/, int len, int shift);
- /* ape functions */
- /**
- * Calculate scalar product of v1 and v2,
- * and v1[i] += v3[i] * mul
- * @param len length of vectors, should be multiple of 16
- */
- int32_t (*scalarproduct_and_madd_int16)(int16_t *v1/*align 16*/, int16_t *v2, int16_t *v3, int len, int mul);
-
- /* rv30 functions */
- qpel_mc_func put_rv30_tpel_pixels_tab[4][16];
- qpel_mc_func avg_rv30_tpel_pixels_tab[4][16];
-
- /* rv40 functions */
- qpel_mc_func put_rv40_qpel_pixels_tab[4][16];
- qpel_mc_func avg_rv40_qpel_pixels_tab[4][16];
- h264_chroma_mc_func put_rv40_chroma_pixels_tab[3];
- h264_chroma_mc_func avg_rv40_chroma_pixels_tab[3];
-
- /* bink functions */
- op_fill_func fill_block_tab[2];
- void (*scale_block)(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align 8*/, int linesize);
-} DSPContext;
-
-void dsputil_static_init(void);
-void dsputil_init(DSPContext* p, AVCodecContext *avctx);
-
-int ff_check_alignment(void);
-
-/**
- * permute block according to permuatation.
- * @param last last non zero element in scantable order
- */
-void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last);
-
-void ff_set_cmp(DSPContext* c, me_cmp_func *cmp, int type);
-
-#define BYTE_VEC32(c) ((c)*0x01010101UL)
-
-static inline uint32_t rnd_avg32(uint32_t a, uint32_t b)
-{
- return (a | b) - (((a ^ b) & ~BYTE_VEC32(0x01)) >> 1);
-}
-
-static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b)
-{
- return (a & b) + (((a ^ b) & ~BYTE_VEC32(0x01)) >> 1);
-}
-
-static inline int get_penalty_factor(int lambda, int lambda2, int type){
- switch(type&0xFF){
- default:
- case FF_CMP_SAD:
- return lambda>>FF_LAMBDA_SHIFT;
- case FF_CMP_DCT:
- return (3*lambda)>>(FF_LAMBDA_SHIFT+1);
- case FF_CMP_W53:
- return (4*lambda)>>(FF_LAMBDA_SHIFT);
- case FF_CMP_W97:
- return (2*lambda)>>(FF_LAMBDA_SHIFT);
- case FF_CMP_SATD:
- case FF_CMP_DCT264:
- return (2*lambda)>>FF_LAMBDA_SHIFT;
- case FF_CMP_RD:
- case FF_CMP_PSNR:
- case FF_CMP_SSE:
- case FF_CMP_NSSE:
- return lambda2>>FF_LAMBDA_SHIFT;
- case FF_CMP_BIT:
- return 1;
- }
-}
-
-/**
- * Empty mmx state.
- * this must be called between any dsp function and float/double code.
- * for example sin(); dsp->idct_put(); emms_c(); cos()
- */
-#define emms_c()
-
-/* should be defined by architectures supporting
- one or more MultiMedia extension */
-int mm_support(void);
-extern int mm_flags;
-
-void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_arm(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_bfin(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_mlib(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_mmi(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
-void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
-
-void ff_dsputil_init_dwt(DSPContext *c);
-void ff_cavsdsp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_rv30dsp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_rv40dsp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_vc1dsp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_intrax8dsp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_mlp_init(DSPContext* c, AVCodecContext *avctx);
-void ff_mlp_init_x86(DSPContext* c, AVCodecContext *avctx);
-
-#if HAVE_MMX
-
-#undef emms_c
-
-static inline void emms(void)
-{
- __asm__ volatile ("emms;":::"memory");
-}
-
-
-#define emms_c() \
-{\
- if (mm_flags & FF_MM_MMX)\
- emms();\
-}
-
-#elif ARCH_ARM
-
-#if HAVE_NEON
-# define STRIDE_ALIGN 16
-#endif
-
-#elif ARCH_PPC
-
-#define STRIDE_ALIGN 16
-
-#elif HAVE_MMI
-
-#define STRIDE_ALIGN 16
-
-#else
-
-#define mm_flags 0
-#define mm_support() 0
-
-#endif
-
-#ifndef STRIDE_ALIGN
-# define STRIDE_ALIGN 8
-#endif
-
-#define LOCAL_ALIGNED(a, t, v, s, ...) \
- uint8_t la_##v[sizeof(t s __VA_ARGS__) + (a)]; \
- t (*v) __VA_ARGS__ = (void *)FFALIGN((uintptr_t)la_##v, a)
-
-#if HAVE_LOCAL_ALIGNED_8
-# define LOCAL_ALIGNED_8(t, v, s, ...) DECLARE_ALIGNED(8, t, v) s __VA_ARGS__
-#else
-# define LOCAL_ALIGNED_8(t, v, s, ...) LOCAL_ALIGNED(8, t, v, s, __VA_ARGS__)
-#endif
-
-#if HAVE_LOCAL_ALIGNED_16
-# define LOCAL_ALIGNED_16(t, v, s, ...) DECLARE_ALIGNED(16, t, v) s __VA_ARGS__
-#else
-# define LOCAL_ALIGNED_16(t, v, s, ...) LOCAL_ALIGNED(16, t, v, s, __VA_ARGS__)
-#endif
-
-/* PSNR */
-void get_psnr(uint8_t *orig_image[3], uint8_t *coded_image[3],
- int orig_linesize[3], int coded_linesize,
- AVCodecContext *avctx);
-
-#define WRAPPER8_16(name8, name16)\
-static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
- return name8(s, dst , src , stride, h)\
- +name8(s, dst+8 , src+8 , stride, h);\
-}
-
-#define WRAPPER8_16_SQ(name8, name16)\
-static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
- int score=0;\
- score +=name8(s, dst , src , stride, 8);\
- score +=name8(s, dst+8 , src+8 , stride, 8);\
- if(h==16){\
- dst += 8*stride;\
- src += 8*stride;\
- score +=name8(s, dst , src , stride, 8);\
- score +=name8(s, dst+8 , src+8 , stride, 8);\
- }\
- return score;\
-}
-
-
-static inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN16(dst , AV_RN16(src ));
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-static inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN32(dst , AV_RN32(src ));
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN32(dst , AV_RN32(src ));
- AV_WN32(dst+4 , AV_RN32(src+4 ));
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN32(dst , AV_RN32(src ));
- AV_WN32(dst+4 , AV_RN32(src+4 ));
- dst[8]= src[8];
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-static inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN32(dst , AV_RN32(src ));
- AV_WN32(dst+4 , AV_RN32(src+4 ));
- AV_WN32(dst+8 , AV_RN32(src+8 ));
- AV_WN32(dst+12, AV_RN32(src+12));
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
-{
- int i;
- for(i=0; i<h; i++)
- {
- AV_WN32(dst , AV_RN32(src ));
- AV_WN32(dst+4 , AV_RN32(src+4 ));
- AV_WN32(dst+8 , AV_RN32(src+8 ));
- AV_WN32(dst+12, AV_RN32(src+12));
- dst[16]= src[16];
- dst+=dstStride;
- src+=srcStride;
- }
-}
-
-#endif /* AVCODEC_DSPUTIL_H */
+++ /dev/null
-/*
- * Header file for hardcoded DV tables
- *
- * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef DV_TABLEGEN_H
-#define DV_TABLEGEN_H
-
-#include <stdint.h>
-#include "dv_vlc_data.h"
-
-#if CONFIG_SMALL
-#define DV_VLC_MAP_RUN_SIZE 15
-#define DV_VLC_MAP_LEV_SIZE 23
-#else
-#define DV_VLC_MAP_RUN_SIZE 64
-#define DV_VLC_MAP_LEV_SIZE 512 //FIXME sign was removed so this should be /2 but needs check
-#endif
-
-/* VLC encoding lookup table */
-struct dv_vlc_pair {
- uint32_t vlc;
- uint32_t size;
-};
-
-#if CONFIG_HARDCODED_TABLES
-#define dv_vlc_map_tableinit()
-#include "libavcodec/dv_tables.h"
-#else
-static struct dv_vlc_pair dv_vlc_map[DV_VLC_MAP_RUN_SIZE][DV_VLC_MAP_LEV_SIZE];
-
-static void dv_vlc_map_tableinit(void)
-{
- int i, j;
- for (i = 0; i < NB_DV_VLC - 1; i++) {
- if (dv_vlc_run[i] >= DV_VLC_MAP_RUN_SIZE)
- continue;
-#if CONFIG_SMALL
- if (dv_vlc_level[i] >= DV_VLC_MAP_LEV_SIZE)
- continue;
-#endif
-
- if (dv_vlc_map[dv_vlc_run[i]][dv_vlc_level[i]].size != 0)
- continue;
-
- dv_vlc_map[dv_vlc_run[i]][dv_vlc_level[i]].vlc =
- dv_vlc_bits[i] << (!!dv_vlc_level[i]);
- dv_vlc_map[dv_vlc_run[i]][dv_vlc_level[i]].size =
- dv_vlc_len[i] + (!!dv_vlc_level[i]);
- }
- for (i = 0; i < DV_VLC_MAP_RUN_SIZE; i++) {
-#if CONFIG_SMALL
- for (j = 1; j < DV_VLC_MAP_LEV_SIZE; j++) {
- if (dv_vlc_map[i][j].size == 0) {
- dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc |
- (dv_vlc_map[i-1][0].vlc << (dv_vlc_map[0][j].size));
- dv_vlc_map[i][j].size = dv_vlc_map[i-1][0].size +
- dv_vlc_map[0][j].size;
- }
- }
-#else
- for (j = 1; j < DV_VLC_MAP_LEV_SIZE/2; j++) {
- if (dv_vlc_map[i][j].size == 0) {
- dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc |
- (dv_vlc_map[i-1][0].vlc << (dv_vlc_map[0][j].size));
- dv_vlc_map[i][j].size = dv_vlc_map[i-1][0].size +
- dv_vlc_map[0][j].size;
- }
- dv_vlc_map[i][((uint16_t)(-j))&0x1ff].vlc =
- dv_vlc_map[i][j].vlc | 1;
- dv_vlc_map[i][((uint16_t)(-j))&0x1ff].size =
- dv_vlc_map[i][j].size;
- }
-#endif
- }
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* DV_TABLEGEN_H */
+++ /dev/null
-/*
- * VLC constants for DV codec
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * VLC constants for DV codec.
- */
-
-#ifndef AVCODEC_DV_VLC_DATA_H
-#define AVCODEC_DV_VLC_DATA_H
-
-#include <stdint.h>
-
-#define NB_DV_VLC 409
-
-/*
- * There's a catch about the following three tables: the mapping they establish
- * between (run, level) and vlc is not 1-1. So you have to watch out for that
- * when building misc. tables. E.g. (1, 0) can be either 0x7cf or 0x1f82.
- */
-static const uint16_t dv_vlc_bits[409] = {
- 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
- 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
- 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
- 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
- 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
- 0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
- 0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
- 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
- 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
- 0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
- 0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
- 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
- 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
- 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
- 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
- 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
- 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
- 0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
- 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
- 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
- 0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
- 0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
- 0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
- 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
- 0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
- 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
- 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
- 0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
- 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
- 0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
- 0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
- 0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
- 0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
- 0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
- 0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
- 0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
- 0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
- 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
- 0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
- 0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
- 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
- 0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
- 0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
- 0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
- 0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
- 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
- 0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
- 0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
- 0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
- 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
- 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
- 0x0006,
-};
-
-static const uint8_t dv_vlc_len[409] = {
- 2, 3, 4, 4, 4, 5, 5, 5,
- 5, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 10, 10, 10,
- 10, 10, 10, 10, 11, 11, 11, 11,
- 11, 11, 11, 11, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 4,
-};
-
-static const uint8_t dv_vlc_run[409] = {
- 0, 0, 1, 0, 0, 2, 1, 0,
- 0, 3, 4, 0, 0, 5, 6, 2,
- 1, 1, 0, 0, 0, 7, 8, 9,
- 10, 3, 4, 2, 1, 1, 1, 0,
- 0, 0, 0, 0, 0, 11, 12, 13,
- 14, 5, 6, 3, 4, 2, 2, 1,
- 0, 0, 0, 0, 0, 5, 3, 3,
- 2, 1, 1, 1, 0, 1, 6, 4,
- 3, 1, 1, 1, 2, 3, 4, 5,
- 7, 8, 9, 10, 7, 8, 4, 3,
- 2, 2, 2, 2, 2, 1, 1, 1,
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-127,
-};
-
-static const uint8_t dv_vlc_level[409] = {
- 1, 2, 1, 3, 4, 1, 2, 5,
- 6, 1, 1, 7, 8, 1, 1, 2,
- 3, 4, 9, 10, 11, 1, 1, 1,
- 1, 2, 2, 3, 5, 6, 7, 12,
- 13, 14, 15, 16, 17, 1, 1, 1,
- 1, 2, 2, 3, 3, 4, 5, 8,
- 18, 19, 20, 21, 22, 3, 4, 5,
- 6, 9, 10, 11, 0, 0, 3, 4,
- 6, 12, 13, 14, 0, 0, 0, 0,
- 2, 2, 2, 2, 3, 3, 5, 7,
- 7, 8, 9, 10, 11, 15, 16, 17,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255,
- 0,
-};
-
-#endif /* AVCODEC_DV_VLC_DATA_H */
+++ /dev/null
-/*
- * Constants for DV codec
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Constants for DV codec.
- */
-
-#ifndef AVCODEC_DVDATA_H
-#define AVCODEC_DVDATA_H
-
-#include "libavutil/rational.h"
-#include "avcodec.h"
-
-typedef struct DVwork_chunk {
- uint16_t buf_offset;
- uint16_t mb_coordinates[5];
-} DVwork_chunk;
-
-/*
- * DVprofile is used to express the differences between various
- * DV flavors. For now it's primarily used for differentiating
- * 525/60 and 625/50, but the plans are to use it for various
- * DV specs as well (e.g. SMPTE314M vs. IEC 61834).
- */
-typedef struct DVprofile {
- int dsf; /* value of the dsf in the DV header */
- int video_stype; /* stype for VAUX source pack */
- int frame_size; /* total size of one frame in bytes */
- int difseg_size; /* number of DIF segments per DIF channel */
- int n_difchan; /* number of DIF channels per frame */
- AVRational time_base; /* 1/framerate */
- int ltc_divisor; /* FPS from the LTS standpoint */
- int height; /* picture height in pixels */
- int width; /* picture width in pixels */
- AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */
- DVwork_chunk *work_chunks; /* each thread gets its own chunk of frame to work on */
- uint32_t *idct_factor; /* set of iDCT factor tables */
- enum PixelFormat pix_fmt; /* picture pixel format */
- int bpm; /* blocks per macroblock */
- const uint8_t *block_sizes; /* AC block sizes, in bits */
- int audio_stride; /* size of audio_shuffle table */
- int audio_min_samples[3]; /* min amount of audio samples */
- /* for 48kHz, 44.1kHz and 32kHz */
- int audio_samples_dist[5]; /* how many samples are supposed to be */
- /* in each frame in a 5 frames window */
- const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */
-} DVprofile;
-
-/* unquant tables (not used directly) */
-static const uint8_t dv_quant_shifts[22][4] = {
- { 3,3,4,4 },
- { 3,3,4,4 },
- { 2,3,3,4 },
- { 2,3,3,4 },
- { 2,2,3,3 },
- { 2,2,3,3 },
- { 1,2,2,3 },
- { 1,2,2,3 },
- { 1,1,2,2 },
- { 1,1,2,2 },
- { 0,1,1,2 },
- { 0,1,1,2 },
- { 0,0,1,1 },
- { 0,0,1,1 },
- { 0,0,0,1 },
- { 0,0,0,0 },
- { 0,0,0,0 },
- { 0,0,0,0 },
- { 0,0,0,0 },
- { 0,0,0,0 },
- { 0,0,0,0 },
- { 0,0,0,0 },
-};
-
-static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 };
-static const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 };
-
-/* quantization quanta by QNO for DV100 */
-static const uint8_t dv100_qstep[16] = {
- 1, /* QNO = 0 and 1 both have no quantization */
- 1,
- 2, 3, 4, 5, 6, 7, 8, 16, 18, 20, 22, 24, 28, 52
-};
-
-/* DV25/50 DCT coefficient weights and inverse weights */
-/* created by dvtables.py */
-static const int dv_weight_bits = 18;
-static const int dv_weight_88[64] = {
- 131072, 257107, 257107, 242189, 252167, 242189, 235923, 237536,
- 237536, 235923, 229376, 231390, 223754, 231390, 229376, 222935,
- 224969, 217965, 217965, 224969, 222935, 200636, 218652, 211916,
- 212325, 211916, 218652, 200636, 188995, 196781, 205965, 206433,
- 206433, 205965, 196781, 188995, 185364, 185364, 200636, 200704,
- 200636, 185364, 185364, 174609, 180568, 195068, 195068, 180568,
- 174609, 170091, 175557, 189591, 175557, 170091, 165371, 170627,
- 170627, 165371, 160727, 153560, 160727, 144651, 144651, 136258,
-};
-static const int dv_weight_248[64] = {
- 131072, 242189, 257107, 237536, 229376, 200636, 242189, 223754,
- 224969, 196781, 262144, 242189, 229376, 200636, 257107, 237536,
- 211916, 185364, 235923, 217965, 229376, 211916, 206433, 180568,
- 242189, 223754, 224969, 196781, 211916, 185364, 235923, 217965,
- 200704, 175557, 222935, 205965, 200636, 185364, 195068, 170627,
- 229376, 211916, 206433, 180568, 200704, 175557, 222935, 205965,
- 175557, 153560, 188995, 174609, 165371, 144651, 200636, 185364,
- 195068, 170627, 175557, 153560, 188995, 174609, 165371, 144651,
-};
-static const int dv_iweight_bits = 14;
-static const int dv_iweight_88[64] = {
- 32768, 16710, 16710, 17735, 17015, 17735, 18197, 18079,
- 18079, 18197, 18725, 18559, 19196, 18559, 18725, 19284,
- 19108, 19692, 19692, 19108, 19284, 21400, 19645, 20262,
- 20214, 20262, 19645, 21400, 22733, 21845, 20867, 20815,
- 20815, 20867, 21845, 22733, 23173, 23173, 21400, 21400,
- 21400, 23173, 23173, 24600, 23764, 22017, 22017, 23764,
- 24600, 25267, 24457, 22672, 24457, 25267, 25971, 25191,
- 25191, 25971, 26715, 27962, 26715, 29642, 29642, 31536,
-};
-static const int dv_iweight_248[64] = {
- 32768, 17735, 16710, 18079, 18725, 21400, 17735, 19196,
- 19108, 21845, 16384, 17735, 18725, 21400, 16710, 18079,
- 20262, 23173, 18197, 19692, 18725, 20262, 20815, 23764,
- 17735, 19196, 19108, 21845, 20262, 23173, 18197, 19692,
- 21400, 24457, 19284, 20867, 21400, 23173, 22017, 25191,
- 18725, 20262, 20815, 23764, 21400, 24457, 19284, 20867,
- 24457, 27962, 22733, 24600, 25971, 29642, 21400, 23173,
- 22017, 25191, 24457, 27962, 22733, 24600, 25971, 29642,
-};
-
-/**
- * The "inverse" DV100 weights are actually just the spec weights (zig-zagged).
- */
-static const int dv_iweight_1080_y[64] = {
- 128, 16, 16, 17, 17, 17, 18, 18,
- 18, 18, 18, 18, 19, 18, 18, 19,
- 19, 19, 19, 19, 19, 42, 38, 40,
- 40, 40, 38, 42, 44, 43, 41, 41,
- 41, 41, 43, 44, 45, 45, 42, 42,
- 42, 45, 45, 48, 46, 43, 43, 46,
- 48, 49, 48, 44, 48, 49, 101, 98,
- 98, 101, 104, 109, 104, 116, 116, 123,
-};
-static const int dv_iweight_1080_c[64] = {
- 128, 16, 16, 17, 17, 17, 25, 25,
- 25, 25, 26, 25, 26, 25, 26, 26,
- 26, 27, 27, 26, 26, 42, 38, 40,
- 40, 40, 38, 42, 44, 43, 41, 41,
- 41, 41, 43, 44, 91, 91, 84, 84,
- 84, 91, 91, 96, 93, 86, 86, 93,
- 96, 197, 191, 177, 191, 197, 203, 197,
- 197, 203, 209, 219, 209, 232, 232, 246,
-};
-static const int dv_iweight_720_y[64] = {
- 128, 16, 16, 17, 17, 17, 18, 18,
- 18, 18, 18, 18, 19, 18, 18, 19,
- 19, 19, 19, 19, 19, 42, 38, 40,
- 40, 40, 38, 42, 44, 43, 41, 41,
- 41, 41, 43, 44, 68, 68, 63, 63,
- 63, 68, 68, 96, 92, 86, 86, 92,
- 96, 98, 96, 88, 96, 98, 202, 196,
- 196, 202, 208, 218, 208, 232, 232, 246,
-};
-static const int dv_iweight_720_c[64] = {
- 128, 24, 24, 26, 26, 26, 36, 36,
- 36, 36, 36, 36, 38, 36, 36, 38,
- 38, 38, 38, 38, 38, 84, 76, 80,
- 80, 80, 76, 84, 88, 86, 82, 82,
- 82, 82, 86, 88, 182, 182, 168, 168,
- 168, 182, 182, 192, 186, 192, 172, 186,
- 192, 394, 382, 354, 382, 394, 406, 394,
- 394, 406, 418, 438, 418, 464, 464, 492,
-};
-
-static const uint8_t dv_audio_shuffle525[10][9] = {
- { 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */
- { 6, 36, 66, 26, 56, 86, 16, 46, 76 },
- { 12, 42, 72, 2, 32, 62, 22, 52, 82 },
- { 18, 48, 78, 8, 38, 68, 28, 58, 88 },
- { 24, 54, 84, 14, 44, 74, 4, 34, 64 },
-
- { 1, 31, 61, 21, 51, 81, 11, 41, 71 }, /* 2nd channel */
- { 7, 37, 67, 27, 57, 87, 17, 47, 77 },
- { 13, 43, 73, 3, 33, 63, 23, 53, 83 },
- { 19, 49, 79, 9, 39, 69, 29, 59, 89 },
- { 25, 55, 85, 15, 45, 75, 5, 35, 65 },
-};
-
-static const uint8_t dv_audio_shuffle625[12][9] = {
- { 0, 36, 72, 26, 62, 98, 16, 52, 88}, /* 1st channel */
- { 6, 42, 78, 32, 68, 104, 22, 58, 94},
- { 12, 48, 84, 2, 38, 74, 28, 64, 100},
- { 18, 54, 90, 8, 44, 80, 34, 70, 106},
- { 24, 60, 96, 14, 50, 86, 4, 40, 76},
- { 30, 66, 102, 20, 56, 92, 10, 46, 82},
-
- { 1, 37, 73, 27, 63, 99, 17, 53, 89}, /* 2nd channel */
- { 7, 43, 79, 33, 69, 105, 23, 59, 95},
- { 13, 49, 85, 3, 39, 75, 29, 65, 101},
- { 19, 55, 91, 9, 45, 81, 35, 71, 107},
- { 25, 61, 97, 15, 51, 87, 5, 41, 77},
- { 31, 67, 103, 21, 57, 93, 11, 47, 83},
-};
-
-static const av_unused int dv_audio_frequency[3] = {
- 48000, 44100, 32000,
-};
-
-/* macroblock bit budgets */
-static const uint8_t block_sizes_dv2550[8] = {
- 112, 112, 112, 112, 80, 80, 0, 0,
-};
-
-static const uint8_t block_sizes_dv100[8] = {
- 80, 80, 80, 80, 80, 80, 64, 64,
-};
-
-enum dv_section_type {
- dv_sect_header = 0x1f,
- dv_sect_subcode = 0x3f,
- dv_sect_vaux = 0x56,
- dv_sect_audio = 0x76,
- dv_sect_video = 0x96,
-};
-
-enum dv_pack_type {
- dv_header525 = 0x3f, /* see dv_write_pack for important details on */
- dv_header625 = 0xbf, /* these two packs */
- dv_timecode = 0x13,
- dv_audio_source = 0x50,
- dv_audio_control = 0x51,
- dv_audio_recdate = 0x52,
- dv_audio_rectime = 0x53,
- dv_video_source = 0x60,
- dv_video_control = 0x61,
- dv_video_recdate = 0x62,
- dv_video_rectime = 0x63,
- dv_unknown_pack = 0xff,
-};
-
-#define DV_PROFILE_IS_HD(p) ((p)->video_stype & 0x10)
-#define DV_PROFILE_IS_1080i50(p) (((p)->video_stype == 0x14) && ((p)->dsf == 1))
-#define DV_PROFILE_IS_720p50(p) (((p)->video_stype == 0x18) && ((p)->dsf == 1))
-
-/* minimum number of bytes to read from a DV stream in order to
- determine the profile */
-#define DV_PROFILE_BYTES (6*80) /* 6 DIF blocks */
-
-/**
- * largest possible DV frame, in bytes (1080i50)
- */
-#define DV_MAX_FRAME_SIZE 576000
-
-/**
- * maximum number of blocks per macroblock in any DV format
- */
-#define DV_MAX_BPM 8
-
-const DVprofile* ff_dv_frame_profile(const DVprofile *sys,
- const uint8_t* frame, unsigned buf_size);
-const DVprofile* ff_dv_codec_profile(AVCodecContext* codec);
-
-static inline int dv_write_dif_id(enum dv_section_type t, uint8_t chan_num,
- uint8_t seq_num, uint8_t dif_num,
- uint8_t* buf)
-{
- buf[0] = (uint8_t)t; /* Section type */
- buf[1] = (seq_num << 4) | /* DIF seq number 0-9 for 525/60; 0-11 for 625/50 */
- (chan_num << 3) | /* FSC: for 50Mb/s 0 - first channel; 1 - second */
- 7; /* reserved -- always 1 */
- buf[2] = dif_num; /* DIF block number Video: 0-134, Audio: 0-8 */
- return 3;
-}
-
-
-static inline int dv_write_ssyb_id(uint8_t syb_num, uint8_t fr, uint8_t* buf)
-{
- if (syb_num == 0 || syb_num == 6) {
- buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
- (0 << 4) | /* AP3 (Subcode application ID) */
- 0x0f; /* reserved -- always 1 */
- }
- else if (syb_num == 11) {
- buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
- 0x7f; /* reserved -- always 1 */
- }
- else {
- buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
- (0 << 4) | /* APT (Track application ID) */
- 0x0f; /* reserved -- always 1 */
- }
- buf[1] = 0xf0 | /* reserved -- always 1 */
- (syb_num & 0x0f); /* SSYB number 0 - 11 */
- buf[2] = 0xff; /* reserved -- always 1 */
- return 3;
-}
-
-#endif /* AVCODEC_DVDATA_H */
+++ /dev/null
-/*
- * Copyright (C) 2004-2010 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DWT_H
-#define AVCODEC_DWT_H
-
-#include <stdint.h>
-
-typedef int DWTELEM;
-typedef short IDWTELEM;
-
-typedef struct {
- IDWTELEM *b0;
- IDWTELEM *b1;
- IDWTELEM *b2;
- IDWTELEM *b3;
- int y;
-} DWTCompose;
-
-/** Used to minimize the amount of memory used in order to optimize cache performance. **/
-typedef struct slice_buffer_s {
- IDWTELEM * * line; ///< For use by idwt and predict_slices.
- IDWTELEM * * data_stack; ///< Used for internal purposes.
- int data_stack_top;
- int line_count;
- int line_width;
- int data_count;
- IDWTELEM * base_buffer; ///< Buffer that this structure is caching.
-} slice_buffer;
-
-typedef struct DWTContext {
- void (*vertical_compose97i)(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
- void (*horizontal_compose97i)(IDWTELEM *b, int width);
- void (*inner_add_yblock)(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
-} DWTContext;
-
-#define MAX_DECOMPOSITIONS 8
-
-#define DWT_97 0
-#define DWT_53 1
-
-#define liftS lift
-#if 1
-#define W_AM 3
-#define W_AO 0
-#define W_AS 1
-
-#undef liftS
-#define W_BM 1
-#define W_BO 8
-#define W_BS 4
-
-#define W_CM 1
-#define W_CO 0
-#define W_CS 0
-
-#define W_DM 3
-#define W_DO 4
-#define W_DS 3
-#elif 0
-#define W_AM 55
-#define W_AO 16
-#define W_AS 5
-
-#define W_BM 3
-#define W_BO 32
-#define W_BS 6
-
-#define W_CM 127
-#define W_CO 64
-#define W_CS 7
-
-#define W_DM 7
-#define W_DO 8
-#define W_DS 4
-#elif 0
-#define W_AM 97
-#define W_AO 32
-#define W_AS 6
-
-#define W_BM 63
-#define W_BO 512
-#define W_BS 10
-
-#define W_CM 13
-#define W_CO 8
-#define W_CS 4
-
-#define W_DM 15
-#define W_DO 16
-#define W_DS 5
-
-#else
-
-#define W_AM 203
-#define W_AO 64
-#define W_AS 7
-
-#define W_BM 217
-#define W_BO 2048
-#define W_BS 12
-
-#define W_CM 113
-#define W_CO 64
-#define W_CS 7
-
-#define W_DM 227
-#define W_DO 128
-#define W_DS 9
-#endif
-
-#define slice_buffer_get_line(slice_buf, line_num) ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : ff_slice_buffer_load_line((slice_buf), (line_num)))
-//#define slice_buffer_get_line(slice_buf, line_num) (ff_slice_buffer_load_line((slice_buf), (line_num)))
-
-void ff_slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM * base_buffer);
-void ff_slice_buffer_release(slice_buffer * buf, int line);
-void ff_slice_buffer_flush(slice_buffer * buf);
-void ff_slice_buffer_destroy(slice_buffer * buf);
-IDWTELEM * ff_slice_buffer_load_line(slice_buffer * buf, int line);
-
-void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
-void ff_snow_horizontal_compose97i(IDWTELEM *b, int width);
-void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
-
-int ff_w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h);
-int ff_w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h);
-
-void ff_spatial_dwt(int *buffer, int width, int height, int stride, int type, int decomposition_count);
-
-void ff_spatial_idwt_buffered_init(DWTCompose *cs, slice_buffer * sb, int width, int height, int stride_line, int type, int decomposition_count);
-void ff_spatial_idwt_buffered_slice(DWTContext *dsp, DWTCompose *cs, slice_buffer * slice_buf, int width, int height, int stride_line, int type, int decomposition_count, int y);
-void ff_spatial_idwt_init(DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count);
-void ff_spatial_idwt_slice(DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count, int y);
-void ff_spatial_idwt(IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count);
-
-void ff_dwt_init(DWTContext *c);
-void ff_dwt_init_x86(DWTContext *c);
-
-#endif /* AVCODEC_DWT_H */
+++ /dev/null
-/*
- * DXVA2 HW acceleration
- *
- * copyright (c) 2009 Laurent Aimar
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DXVA_H
-#define AVCODEC_DXVA_H
-
-#include <stdint.h>
-
-#include <dxva2api.h>
-
-/**
- * This structure is used to provides the necessary configurations and data
- * to the DXVA2 FFmpeg HWAccel implementation.
- *
- * The application must make it available as AVCodecContext.hwaccel_context.
- */
-struct dxva_context {
- /**
- * DXVA2 decoder object
- */
- IDirectXVideoDecoder *decoder;
-
- /**
- * DXVA2 configuration used to create the decoder
- */
- const DXVA2_ConfigPictureDecode *cfg;
-
- /**
- * The number of surface in the surface array
- */
- unsigned surface_count;
-
- /**
- * The array of Direct3D surfaces used to create the decoder
- */
- LPDIRECT3DSURFACE9 *surface;
-
- /**
- * A bit field configuring the workarounds needed for using the decoder
- */
- uint64_t workaround;
-
- /**
- * Private to the FFmpeg AVHWAccel implementation
- */
- unsigned report_id;
-};
-
-#endif /* AVCODEC_DXVA_H */
+++ /dev/null
-/*
- * DXVA2 HW acceleration
- *
- * copyright (c) 2010 Laurent Aimar
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_DXVA_INTERNAL_H
-#define AVCODEC_DXVA_INTERNAL_H
-
-#include "dxva2.h"
-#include "avcodec.h"
-#include "mpegvideo.h"
-
-void *ff_dxva2_get_surface(const Picture *picture);
-
-unsigned ff_dxva2_get_surface_index(const struct dxva_context *,
- const Picture *picture);
-
-int ff_dxva2_commit_buffer(AVCodecContext *, struct dxva_context *,
- DXVA2_DecodeBufferDesc *,
- unsigned type, const void *data, unsigned size,
- unsigned mb_count);
-
-
-int ff_dxva2_common_end_frame(AVCodecContext *, MpegEncContext *,
- const void *pp, unsigned pp_size,
- const void *qm, unsigned qm_size,
- int (*commit_bs_si)(AVCodecContext *,
- DXVA2_DecodeBufferDesc *bs,
- DXVA2_DecodeBufferDesc *slice));
-
-#endif /* AVCODEC_DXVA_INTERNAL_H */
+++ /dev/null
-/*
- * E-AC-3 decoder tables
- * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_EAC3DEC_DATA_H
-#define AVCODEC_EAC3DEC_DATA_H
-
-#include <stdint.h>
-
-extern const uint8_t ff_eac3_bits_vs_hebap[20];
-extern const int16_t ff_eac3_gaq_remap_1[12];
-extern const int16_t ff_eac3_gaq_remap_2_4_a[9][2];
-extern const int16_t ff_eac3_gaq_remap_2_4_b[9][2];
-
-extern const int16_t (* const ff_eac3_mantissa_vq[8])[6];
-extern const uint8_t ff_eac3_frm_expstr[32][6];
-extern const float ff_eac3_spx_atten_tab[32][3];
-
-#endif /* AVCODEC_EAC3DEC_DATA_H */
+++ /dev/null
-/*
- * Copyright (C) 2007 Vitor Sessak <vitor1001@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ELBG_H
-#define AVCODEC_ELBG_H
-
-#include "libavutil/lfg.h"
-
-/**
- * Implementation of the Enhanced LBG Algorithm
- * Based on the paper "Neural Networks 14:1219-1237" that can be found in
- * http://citeseer.ist.psu.edu/patan01enhanced.html .
- *
- * @param points Input points.
- * @param dim Dimension of the points.
- * @param numpoints Num of points in **points.
- * @param codebook Pointer to the output codebook. Must be allocated.
- * @param numCB Number of points in the codebook.
- * @param num_steps The maximum number of steps. One step is already a good compromise between time and quality.
- * @param closest_cb Return the closest codebook to each point. Must be allocated.
- * @param rand_state A random number generator state. Should be already initialized by av_lfg_init().
- */
-void ff_do_elbg(int *points, int dim, int numpoints, int *codebook,
- int numCB, int num_steps, int *closest_cb,
- AVLFG *rand_state);
-
-/**
- * Initialize the **codebook vector for the elbg algorithm. If you have already
- * a codebook and you want to refine it, you shouldn't call this function.
- * If numpoints < 8*numCB this function fills **codebook with random numbers.
- * If not, it calls ff_do_elbg for a (smaller) random sample of the points in
- * **points. Get the same parameters as ff_do_elbg.
- */
-void ff_init_elbg(int *points, int dim, int numpoints, int *codebook,
- int numCB, int num_steps, int *closest_cb,
- AVLFG *rand_state);
-
-#endif /* AVCODEC_ELBG_H */
+++ /dev/null
-/*
- * Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * simple arithmetic expression evaluator
- */
-
-#ifndef AVCODEC_EVAL_H
-#define AVCODEC_EVAL_H
-
-typedef struct AVExpr AVExpr;
-
-/**
- * Parses and evaluates an expression.
- * Note, this is significantly slower than ff_eval_expr().
- *
- * @param s expression as a zero terminated string for example "1+2^3+5*5+sin(2/3)"
- * @param func1 NULL terminated array of function pointers for functions which take 1 argument
- * @param func2 NULL terminated array of function pointers for functions which take 2 arguments
- * @param const_name NULL terminated array of zero terminated strings of constant identifers for example {"PI", "E", 0}
- * @param func1_name NULL terminated array of zero terminated strings of func1 identifers
- * @param func2_name NULL terminated array of zero terminated strings of func2 identifers
- * @param error pointer to a char* which is set to an error message if something goes wrong
- * @param const_value a zero terminated array of values for the identifers from const_name
- * @param opaque a pointer which will be passed to all functions from func1 and func2
- * @return the value of the expression
- */
-double ff_parse_and_eval_expr(const char *s, const double *const_value, const char * const *const_name,
- double (* const *func1)(void *, double), const char * const *func1_name,
- double (* const *func2)(void *, double, double), const char * const *func2_name,
- void *opaque, const char **error);
-
-/**
- * Parses an expression.
- *
- * @param s expression as a zero terminated string for example "1+2^3+5*5+sin(2/3)"
- * @param func1 NULL terminated array of function pointers for functions which take 1 argument
- * @param func2 NULL terminated array of function pointers for functions which take 2 arguments
- * @param const_name NULL terminated array of zero terminated strings of constant identifers for example {"PI", "E", 0}
- * @param func1_name NULL terminated array of zero terminated strings of func1 identifers
- * @param func2_name NULL terminated array of zero terminated strings of func2 identifers
- * @param error pointer to a char* which is set to an error message if something goes wrong
- * @return AVExpr which must be freed with ff_free_expr() by the user when it is not needed anymore
- * NULL if anything went wrong
- */
-AVExpr *ff_parse_expr(const char *s, const char * const *const_name,
- double (* const *func1)(void *, double), const char * const *func1_name,
- double (* const *func2)(void *, double, double), const char * const *func2_name,
- const char **error);
-
-/**
- * Evaluates a previously parsed expression.
- *
- * @param const_value a zero terminated array of values for the identifers from ff_parse const_name
- * @param opaque a pointer which will be passed to all functions from func1 and func2
- * @return the value of the expression
- */
-double ff_eval_expr(AVExpr * e, const double *const_value, void *opaque);
-
-/**
- * Frees a parsed expression previously created with ff_parse().
- */
-void ff_free_expr(AVExpr *e);
-
-/**
- * Parses the string in numstr and returns its value as a double. If
- * the string is empty, contains only whitespaces, or does not contain
- * an initial substring that has the expected syntax for a
- * floating-point number, no conversion is performed. In this case,
- * returns a value of zero and the value returned in tail is the value
- * of numstr.
- *
- * @param numstr a string representing a number, may contain one of
- * the International System number postfixes, for example 'K', 'M',
- * 'G'. If 'i' is appended after the postfix, powers of 2 are used
- * instead of powers of 10. The 'B' postfix multiplies the value for
- * 8, and can be appended after another postfix or used alone. This
- * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix.
- * @param tail if non-NULL puts here the pointer to the char next
- * after the last parsed character
- */
-double av_strtod(const char *numstr, char **tail);
-
-#endif /* AVCODEC_EVAL_H */
+++ /dev/null
-/*
- * Floating point AAN DCT
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief
- * Floating point AAN DCT
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_FAANDCT_H
-#define AVCODEC_FAANDCT_H
-
-#include "dsputil.h"
-
-#define FAAN_POSTSCALE
-
-void ff_faandct(DCTELEM * data);
-void ff_faandct248(DCTELEM * data);
-
-#endif /* AVCODEC_FAANDCT_H */
+++ /dev/null
-/*
- * Floating point AAN IDCT
- * Copyright (c) 2008 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_FAANIDCT_H
-#define AVCODEC_FAANIDCT_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-void ff_faanidct(DCTELEM block[64]);
-void ff_faanidct_add(uint8_t *dest, int line_size, DCTELEM block[64]);
-void ff_faanidct_put(uint8_t *dest, int line_size, DCTELEM block[64]);
-
-#endif /* AVCODEC_FAANIDCT_H */
+++ /dev/null
-/*
- * CCITT Fax Group 3 and 4 decompression
- * Copyright (c) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * CCITT Fax Group 3 and 4 decompression
- * @file
- * @author Konstantin Shishkov
- */
-#ifndef AVCODEC_FAXCOMPR_H
-#define AVCODEC_FAXCOMPR_H
-
-#include "avcodec.h"
-#include "tiff.h"
-
-/**
- * initialize upacker code
- */
-void ff_ccitt_unpack_init(void);
-
-/**
- * unpack data compressed with CCITT Group 3 1/2-D or Group 4 method
- */
-int ff_ccitt_unpack(AVCodecContext *avctx,
- const uint8_t *src, int srcsize,
- uint8_t *dst, int height, int stride,
- enum TiffCompr compr, int opts);
-
-#endif /* AVCODEC_FAXCOMPR_H */
+++ /dev/null
-/*
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_FFT_H
-#define AVCODEC_FFT_H
-
-#include <stdint.h>
-#include "config.h"
-#include "libavutil/mem.h"
-#include "avfft.h"
-
-/* FFT computation */
-
-struct FFTContext {
- int nbits;
- int inverse;
- uint16_t *revtab;
- FFTComplex *exptab;
- FFTComplex *exptab1; /* only used by SSE code */
- FFTComplex *tmp_buf;
- int mdct_size; /* size of MDCT (i.e. number of input data * 2) */
- int mdct_bits; /* n = 2^nbits */
- /* pre/post rotation tables */
- FFTSample *tcos;
- FFTSample *tsin;
- void (*fft_permute)(struct FFTContext *s, FFTComplex *z);
- void (*fft_calc)(struct FFTContext *s, FFTComplex *z);
- void (*imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input);
- void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input);
- void (*mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input);
- int split_radix;
- int permutation;
-#define FF_MDCT_PERM_NONE 0
-#define FF_MDCT_PERM_INTERLEAVE 1
-};
-
-#if CONFIG_HARDCODED_TABLES
-#define COSTABLE_CONST const
-#define SINTABLE_CONST const
-#define SINETABLE_CONST const
-#else
-#define COSTABLE_CONST
-#define SINTABLE_CONST
-#define SINETABLE_CONST
-#endif
-
-#define COSTABLE(size) \
- COSTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_cos_##size)[size/2]
-#define SINTABLE(size) \
- SINTABLE_CONST DECLARE_ALIGNED(16, FFTSample, ff_sin_##size)[size/2]
-#define SINETABLE(size) \
- SINETABLE_CONST DECLARE_ALIGNED(16, float, ff_sine_##size)[size]
-extern COSTABLE(16);
-extern COSTABLE(32);
-extern COSTABLE(64);
-extern COSTABLE(128);
-extern COSTABLE(256);
-extern COSTABLE(512);
-extern COSTABLE(1024);
-extern COSTABLE(2048);
-extern COSTABLE(4096);
-extern COSTABLE(8192);
-extern COSTABLE(16384);
-extern COSTABLE(32768);
-extern COSTABLE(65536);
-extern COSTABLE_CONST FFTSample* const ff_cos_tabs[17];
-
-/**
- * Initializes the cosine table in ff_cos_tabs[index]
- * \param index index in ff_cos_tabs array of the table to initialize
- */
-void ff_init_ff_cos_tabs(int index);
-
-extern SINTABLE(16);
-extern SINTABLE(32);
-extern SINTABLE(64);
-extern SINTABLE(128);
-extern SINTABLE(256);
-extern SINTABLE(512);
-extern SINTABLE(1024);
-extern SINTABLE(2048);
-extern SINTABLE(4096);
-extern SINTABLE(8192);
-extern SINTABLE(16384);
-extern SINTABLE(32768);
-extern SINTABLE(65536);
-
-/**
- * Sets up a complex FFT.
- * @param nbits log2 of the length of the input array
- * @param inverse if 0 perform the forward transform, if 1 perform the inverse
- */
-int ff_fft_init(FFTContext *s, int nbits, int inverse);
-void ff_fft_permute_c(FFTContext *s, FFTComplex *z);
-void ff_fft_calc_c(FFTContext *s, FFTComplex *z);
-
-void ff_fft_init_altivec(FFTContext *s);
-void ff_fft_init_mmx(FFTContext *s);
-void ff_fft_init_arm(FFTContext *s);
-
-/**
- * Do the permutation needed BEFORE calling ff_fft_calc().
- */
-static inline void ff_fft_permute(FFTContext *s, FFTComplex *z)
-{
- s->fft_permute(s, z);
-}
-/**
- * Do a complex FFT with the parameters defined in ff_fft_init(). The
- * input data must be permuted before. No 1.0/sqrt(n) normalization is done.
- */
-static inline void ff_fft_calc(FFTContext *s, FFTComplex *z)
-{
- s->fft_calc(s, z);
-}
-void ff_fft_end(FFTContext *s);
-
-/* MDCT computation */
-
-static inline void ff_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input)
-{
- s->imdct_calc(s, output, input);
-}
-static inline void ff_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input)
-{
- s->imdct_half(s, output, input);
-}
-
-static inline void ff_mdct_calc(FFTContext *s, FFTSample *output,
- const FFTSample *input)
-{
- s->mdct_calc(s, output, input);
-}
-
-/**
- * Generate a Kaiser-Bessel Derived Window.
- * @param window pointer to half window
- * @param alpha determines window shape
- * @param n size of half window
- */
-void ff_kbd_window_init(float *window, float alpha, int n);
-
-/**
- * Generate a sine window.
- * @param window pointer to half window
- * @param n size of half window
- */
-void ff_sine_window_init(float *window, int n);
-
-/**
- * initialize the specified entry of ff_sine_windows
- */
-void ff_init_ff_sine_windows(int index);
-extern SINETABLE( 32);
-extern SINETABLE( 64);
-extern SINETABLE( 128);
-extern SINETABLE( 256);
-extern SINETABLE( 512);
-extern SINETABLE(1024);
-extern SINETABLE(2048);
-extern SINETABLE(4096);
-extern SINETABLE_CONST float * const ff_sine_windows[13];
-
-int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale);
-void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input);
-void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input);
-void ff_mdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input);
-void ff_mdct_end(FFTContext *s);
-
-/* Real Discrete Fourier Transform */
-
-struct RDFTContext {
- int nbits;
- int inverse;
- int sign_convention;
-
- /* pre/post rotation tables */
- const FFTSample *tcos;
- SINTABLE_CONST FFTSample *tsin;
- FFTContext fft;
- void (*rdft_calc)(struct RDFTContext *s, FFTSample *z);
-};
-
-/**
- * Sets up a real FFT.
- * @param nbits log2 of the length of the input array
- * @param trans the type of transform
- */
-int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans);
-void ff_rdft_end(RDFTContext *s);
-
-void ff_rdft_init_arm(RDFTContext *s);
-
-static av_always_inline void ff_rdft_calc(RDFTContext *s, FFTSample *data)
-{
- s->rdft_calc(s, data);
-}
-
-/* Discrete Cosine Transform */
-
-struct DCTContext {
- int nbits;
- int inverse;
- RDFTContext rdft;
- const float *costab;
- FFTSample *csc2;
- void (*dct_calc)(struct DCTContext *s, FFTSample *data);
-};
-
-/**
- * Sets up DCT.
- * @param nbits size of the input array:
- * (1 << nbits) for DCT-II, DCT-III and DST-I
- * (1 << nbits) + 1 for DCT-I
- *
- * @note the first element of the input of DST-I is ignored
- */
-int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType type);
-void ff_dct_calc(DCTContext *s, FFTSample *data);
-void ff_dct_end (DCTContext *s);
-
-#endif /* AVCODEC_FFT_H */
+++ /dev/null
-/*
- * FLAC (Free Lossless Audio Codec) decoder/demuxer common functions
- * Copyright (c) 2008 Justin Ruggles
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * FLAC (Free Lossless Audio Codec) decoder/demuxer common functions
- */
-
-#ifndef AVCODEC_FLAC_H
-#define AVCODEC_FLAC_H
-
-#include "avcodec.h"
-
-#define FLAC_STREAMINFO_SIZE 34
-#define FLAC_MAX_CHANNELS 8
-#define FLAC_MIN_BLOCKSIZE 16
-#define FLAC_MAX_BLOCKSIZE 65535
-
-enum {
- FLAC_CHMODE_INDEPENDENT = 0,
- FLAC_CHMODE_LEFT_SIDE = 8,
- FLAC_CHMODE_RIGHT_SIDE = 9,
- FLAC_CHMODE_MID_SIDE = 10,
-};
-
-enum {
- FLAC_METADATA_TYPE_STREAMINFO = 0,
- FLAC_METADATA_TYPE_PADDING,
- FLAC_METADATA_TYPE_APPLICATION,
- FLAC_METADATA_TYPE_SEEKTABLE,
- FLAC_METADATA_TYPE_VORBIS_COMMENT,
- FLAC_METADATA_TYPE_CUESHEET,
- FLAC_METADATA_TYPE_PICTURE,
- FLAC_METADATA_TYPE_INVALID = 127
-};
-
-enum FLACExtradataFormat {
- FLAC_EXTRADATA_FORMAT_STREAMINFO = 0,
- FLAC_EXTRADATA_FORMAT_FULL_HEADER = 1
-};
-
-#define FLACCOMMONINFO \
- int samplerate; /**< sample rate */\
- int channels; /**< number of channels */\
- int bps; /**< bits-per-sample */\
-
-/**
- * Data needed from the Streaminfo header for use by the raw FLAC demuxer
- * and/or the FLAC decoder.
- */
-#define FLACSTREAMINFO \
- FLACCOMMONINFO \
- int max_blocksize; /**< maximum block size, in samples */\
- int max_framesize; /**< maximum frame size, in bytes */\
- int64_t samples; /**< total number of samples */\
-
-typedef struct FLACStreaminfo {
- FLACSTREAMINFO
-} FLACStreaminfo;
-
-typedef struct FLACFrameInfo {
- FLACCOMMONINFO
- int blocksize; /**< block size of the frame */
- int ch_mode; /**< channel decorrelation mode */
-} FLACFrameInfo;
-
-/**
- * Parse the Streaminfo metadata block
- * @param[out] avctx codec context to set basic stream parameters
- * @param[out] s where parsed information is stored
- * @param[in] buffer pointer to start of 34-byte streaminfo data
- */
-void ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s,
- const uint8_t *buffer);
-
-/**
- * Validate the FLAC extradata.
- * @param[in] avctx codec context containing the extradata.
- * @param[out] format extradata format.
- * @param[out] streaminfo_start pointer to start of 34-byte STREAMINFO data.
- * @return 1 if valid, 0 if not valid.
- */
-int ff_flac_is_extradata_valid(AVCodecContext *avctx,
- enum FLACExtradataFormat *format,
- uint8_t **streaminfo_start);
-
-/**
- * Parse the metadata block parameters from the header.
- * @param[in] block_header header data, at least 4 bytes
- * @param[out] last indicator for last metadata block
- * @param[out] type metadata block type
- * @param[out] size metadata block size
- */
-void ff_flac_parse_block_header(const uint8_t *block_header,
- int *last, int *type, int *size);
-
-/**
- * Calculate an estimate for the maximum frame size based on verbatim mode.
- * @param blocksize block size, in samples
- * @param ch number of channels
- * @param bps bits-per-sample
- */
-int ff_flac_get_max_frame_size(int blocksize, int ch, int bps);
-
-#endif /* AVCODEC_FLAC_H */
+++ /dev/null
-/*
- * FLAC data header
- * Copyright (c) 2003 Alex Beregszaszi
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_FLACDATA_H
-#define AVCODEC_FLACDATA_H
-
-#include "internal.h"
-
-extern const int ff_flac_sample_rate_table[16];
-
-extern const int16_t ff_flac_blocksize_table[16];
-
-#endif /* AVCODEC_FLACDATA_H */
+++ /dev/null
-/*
- * FLV specific private header.
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_FLV_H
-#define AVCODEC_FLV_H
-
-#include "mpegvideo.h"
-#include "get_bits.h"
-#include "put_bits.h"
-
-void ff_flv_encode_picture_header(MpegEncContext * s, int picture_number);
-void ff_flv2_encode_ac_esc(PutBitContext *pb, int slevel, int level, int run, int last);
-
-int ff_flv_decode_picture_header(MpegEncContext *s);
-void ff_flv2_decode_ac_esc(GetBitContext *gb, int *level, int *run, int *last);
-
-#endif
-
+++ /dev/null
-/*
- * G.729 decoder
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVCODEC_G729_H
-#define AVCODEC_G729_H
-
-/**
- * subframe size
- */
-#define SUBFRAME_SIZE 40
-
-#endif // AVCODEC_G729_H
+++ /dev/null
-/*
- * data for G.729 decoder
- * Copyright (c) 2007 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_G729DATA_H
-#define AVCODEC_G729DATA_H
-
-#include <stdint.h>
-
-#define MA_NP 4 ///< Moving Average (MA) prediction order
-
-#define VQ_1ST_BITS 7 ///< first stage vector of quantizer (size in bits)
-#define VQ_2ND_BITS 5 ///< second stage vector of quantizer (size in bits)
-
-#define GC_1ST_IDX_BITS_8K 3 ///< gain codebook (first stage) index, 8k mode (size in bits)
-#define GC_2ND_IDX_BITS_8K 4 ///< gain codebook (second stage) index, 8k mode (size in bits)
-
-#define GC_1ST_IDX_BITS_6K4 3 ///< gain codebook (first stage) index, 6.4k mode (size in bits)
-#define GC_2ND_IDX_BITS_6K4 3 ///< gain codebook (second stage) index, 6.4k mode (size in bits)
-
-/**
- * first stage LSP codebook
- * (10-dimensional, with 128 entries (3.24 of G.729)
- */
-static const int16_t cb_lsp_1st[1<<VQ_1ST_BITS][10] = { /* (2.13) */
- { 1486, 2168, 3751, 9074, 12134, 13944, 17983, 19173, 21190, 21820},
- { 1730, 2640, 3450, 4870, 6126, 7876, 15644, 17817, 20294, 21902},
- { 1568, 2256, 3088, 4874, 11063, 13393, 18307, 19293, 21109, 21741},
- { 1733, 2512, 3357, 4708, 6977, 10296, 17024, 17956, 19145, 20350},
- { 1744, 2436, 3308, 8731, 10432, 12007, 15614, 16639, 21359, 21913},
- { 1786, 2369, 3372, 4521, 6795, 12963, 17674, 18988, 20855, 21640},
- { 1631, 2433, 3361, 6328, 10709, 12013, 13277, 13904, 19441, 21088},
- { 1489, 2364, 3291, 6250, 9227, 10403, 13843, 15278, 17721, 21451},
- { 1869, 2533, 3475, 4365, 9152, 14513, 15908, 17022, 20611, 21411},
- { 2070, 3025, 4333, 5854, 7805, 9231, 10597, 16047, 20109, 21834},
- { 1910, 2673, 3419, 4261, 11168, 15111, 16577, 17591, 19310, 20265},
- { 1141, 1815, 2624, 4623, 6495, 9588, 13968, 16428, 19351, 21286},
- { 2192, 3171, 4707, 5808, 10904, 12500, 14162, 15664, 21124, 21789},
- { 1286, 1907, 2548, 3453, 9574, 11964, 15978, 17344, 19691, 22495},
- { 1921, 2720, 4604, 6684, 11503, 12992, 14350, 15262, 16997, 20791},
- { 2052, 2759, 3897, 5246, 6638, 10267, 15834, 16814, 18149, 21675},
- { 1798, 2497, 5617, 11449, 13189, 14711, 17050, 18195, 20307, 21182},
- { 1009, 1647, 2889, 5709, 9541, 12354, 15231, 18494, 20966, 22033},
- { 3016, 3794, 5406, 7469, 12488, 13984, 15328, 16334, 19952, 20791},
- { 2203, 3040, 3796, 5442, 11987, 13512, 14931, 16370, 17856, 18803},
- { 2912, 4292, 7988, 9572, 11562, 13244, 14556, 16529, 20004, 21073},
- { 2861, 3607, 5923, 7034, 9234, 12054, 13729, 18056, 20262, 20974},
- { 3069, 4311, 5967, 7367, 11482, 12699, 14309, 16233, 18333, 19172},
- { 2434, 3661, 4866, 5798, 10383, 11722, 13049, 15668, 18862, 19831},
- { 2020, 2605, 3860, 9241, 13275, 14644, 16010, 17099, 19268, 20251},
- { 1877, 2809, 3590, 4707, 11056, 12441, 15622, 17168, 18761, 19907},
- { 2107, 2873, 3673, 5799, 13579, 14687, 15938, 17077, 18890, 19831},
- { 1612, 2284, 2944, 3572, 8219, 13959, 15924, 17239, 18592, 20117},
- { 2420, 3156, 6542, 10215, 12061, 13534, 15305, 16452, 18717, 19880},
- { 1667, 2612, 3534, 5237, 10513, 11696, 12940, 16798, 18058, 19378},
- { 2388, 3017, 4839, 9333, 11413, 12730, 15024, 16248, 17449, 18677},
- { 1875, 2786, 4231, 6320, 8694, 10149, 11785, 17013, 18608, 19960},
- { 679, 1411, 4654, 8006, 11446, 13249, 15763, 18127, 20361, 21567},
- { 1838, 2596, 3578, 4608, 5650, 11274, 14355, 15886, 20579, 21754},
- { 1303, 1955, 2395, 3322, 12023, 13764, 15883, 18077, 20180, 21232},
- { 1438, 2102, 2663, 3462, 8328, 10362, 13763, 17248, 19732, 22344},
- { 860, 1904, 6098, 7775, 9815, 12007, 14821, 16709, 19787, 21132},
- { 1673, 2723, 3704, 6125, 7668, 9447, 13683, 14443, 20538, 21731},
- { 1246, 1849, 2902, 4508, 7221, 12710, 14835, 16314, 19335, 22720},
- { 1525, 2260, 3862, 5659, 7342, 11748, 13370, 14442, 18044, 21334},
- { 1196, 1846, 3104, 7063, 10972, 12905, 14814, 17037, 19922, 22636},
- { 2147, 3106, 4475, 6511, 8227, 9765, 10984, 12161, 18971, 21300},
- { 1585, 2405, 2994, 4036, 11481, 13177, 14519, 15431, 19967, 21275},
- { 1778, 2688, 3614, 4680, 9465, 11064, 12473, 16320, 19742, 20800},
- { 1862, 2586, 3492, 6719, 11708, 13012, 14364, 16128, 19610, 20425},
- { 1395, 2156, 2669, 3386, 10607, 12125, 13614, 16705, 18976, 21367},
- { 1444, 2117, 3286, 6233, 9423, 12981, 14998, 15853, 17188, 21857},
- { 2004, 2895, 3783, 4897, 6168, 7297, 12609, 16445, 19297, 21465},
- { 1495, 2863, 6360, 8100, 11399, 14271, 15902, 17711, 20479, 22061},
- { 2484, 3114, 5718, 7097, 8400, 12616, 14073, 14847, 20535, 21396},
- { 2424, 3277, 5296, 6284, 11290, 12903, 16022, 17508, 19333, 20283},
- { 2565, 3778, 5360, 6989, 8782, 10428, 14390, 15742, 17770, 21734},
- { 2727, 3384, 6613, 9254, 10542, 12236, 14651, 15687, 20074, 21102},
- { 1916, 2953, 6274, 8088, 9710, 10925, 12392, 16434, 20010, 21183},
- { 3384, 4366, 5349, 7667, 11180, 12605, 13921, 15324, 19901, 20754},
- { 3075, 4283, 5951, 7619, 9604, 11010, 12384, 14006, 20658, 21497},
- { 1751, 2455, 5147, 9966, 11621, 13176, 14739, 16470, 20788, 21756},
- { 1442, 2188, 3330, 6813, 8929, 12135, 14476, 15306, 19635, 20544},
- { 2294, 2895, 4070, 8035, 12233, 13416, 14762, 17367, 18952, 19688},
- { 1937, 2659, 4602, 6697, 9071, 12863, 14197, 15230, 16047, 18877},
- { 2071, 2663, 4216, 9445, 10887, 12292, 13949, 14909, 19236, 20341},
- { 1740, 2491, 3488, 8138, 9656, 11153, 13206, 14688, 20896, 21907},
- { 2199, 2881, 4675, 8527, 10051, 11408, 14435, 15463, 17190, 20597},
- { 1943, 2988, 4177, 6039, 7478, 8536, 14181, 15551, 17622, 21579},
- { 1825, 3175, 7062, 9818, 12824, 15450, 18330, 19856, 21830, 22412},
- { 2464, 3046, 4822, 5977, 7696, 15398, 16730, 17646, 20588, 21320},
- { 2550, 3393, 5305, 6920, 10235, 14083, 18143, 19195, 20681, 21336},
- { 3003, 3799, 5321, 6437, 7919, 11643, 15810, 16846, 18119, 18980},
- { 3455, 4157, 6838, 8199, 9877, 12314, 15905, 16826, 19949, 20892},
- { 3052, 3769, 4891, 5810, 6977, 10126, 14788, 15990, 19773, 20904},
- { 3671, 4356, 5827, 6997, 8460, 12084, 14154, 14939, 19247, 20423},
- { 2716, 3684, 5246, 6686, 8463, 10001, 12394, 14131, 16150, 19776},
- { 1945, 2638, 4130, 7995, 14338, 15576, 17057, 18206, 20225, 20997},
- { 2304, 2928, 4122, 4824, 5640, 13139, 15825, 16938, 20108, 21054},
- { 1800, 2516, 3350, 5219, 13406, 15948, 17618, 18540, 20531, 21252},
- { 1436, 2224, 2753, 4546, 9657, 11245, 15177, 16317, 17489, 19135},
- { 2319, 2899, 4980, 6936, 8404, 13489, 15554, 16281, 20270, 20911},
- { 2187, 2919, 4610, 5875, 7390, 12556, 14033, 16794, 20998, 21769},
- { 2235, 2923, 5121, 6259, 8099, 13589, 15340, 16340, 17927, 20159},
- { 1765, 2638, 3751, 5730, 7883, 10108, 13633, 15419, 16808, 18574},
- { 3460, 5741, 9596, 11742, 14413, 16080, 18173, 19090, 20845, 21601},
- { 3735, 4426, 6199, 7363, 9250, 14489, 16035, 17026, 19873, 20876},
- { 3521, 4778, 6887, 8680, 12717, 14322, 15950, 18050, 20166, 21145},
- { 2141, 2968, 6865, 8051, 10010, 13159, 14813, 15861, 17528, 18655},
- { 4148, 6128, 9028, 10871, 12686, 14005, 15976, 17208, 19587, 20595},
- { 4403, 5367, 6634, 8371, 10163, 11599, 14963, 16331, 17982, 18768},
- { 4091, 5386, 6852, 8770, 11563, 13290, 15728, 16930, 19056, 20102},
- { 2746, 3625, 5299, 7504, 10262, 11432, 13172, 15490, 16875, 17514},
- { 2248, 3556, 8539, 10590, 12665, 14696, 16515, 17824, 20268, 21247},
- { 1279, 1960, 3920, 7793, 10153, 14753, 16646, 18139, 20679, 21466},
- { 2440, 3475, 6737, 8654, 12190, 14588, 17119, 17925, 19110, 19979},
- { 1879, 2514, 4497, 7572, 10017, 14948, 16141, 16897, 18397, 19376},
- { 2804, 3688, 7490, 10086, 11218, 12711, 16307, 17470, 20077, 21126},
- { 2023, 2682, 3873, 8268, 10255, 11645, 15187, 17102, 18965, 19788},
- { 2823, 3605, 5815, 8595, 10085, 11469, 16568, 17462, 18754, 19876},
- { 2851, 3681, 5280, 7648, 9173, 10338, 14961, 16148, 17559, 18474},
- { 1348, 2645, 5826, 8785, 10620, 12831, 16255, 18319, 21133, 22586},
- { 2141, 3036, 4293, 6082, 7593, 10629, 17158, 18033, 21466, 22084},
- { 1608, 2375, 3384, 6878, 9970, 11227, 16928, 17650, 20185, 21120},
- { 2774, 3616, 5014, 6557, 7788, 8959, 17068, 18302, 19537, 20542},
- { 1934, 4813, 6204, 7212, 8979, 11665, 15989, 17811, 20426, 21703},
- { 2288, 3507, 5037, 6841, 8278, 9638, 15066, 16481, 21653, 22214},
- { 2951, 3771, 4878, 7578, 9016, 10298, 14490, 15242, 20223, 20990},
- { 3256, 4791, 6601, 7521, 8644, 9707, 13398, 16078, 19102, 20249},
- { 1827, 2614, 3486, 6039, 12149, 13823, 16191, 17282, 21423, 22041},
- { 1000, 1704, 3002, 6335, 8471, 10500, 14878, 16979, 20026, 22427},
- { 1646, 2286, 3109, 7245, 11493, 12791, 16824, 17667, 18981, 20222},
- { 1708, 2501, 3315, 6737, 8729, 9924, 16089, 17097, 18374, 19917},
- { 2623, 3510, 4478, 5645, 9862, 11115, 15219, 18067, 19583, 20382},
- { 2518, 3434, 4728, 6388, 8082, 9285, 13162, 18383, 19819, 20552},
- { 1726, 2383, 4090, 6303, 7805, 12845, 14612, 17608, 19269, 20181},
- { 2860, 3735, 4838, 6044, 7254, 8402, 14031, 16381, 18037, 19410},
- { 4247, 5993, 7952, 9792, 12342, 14653, 17527, 18774, 20831, 21699},
- { 3502, 4051, 5680, 6805, 8146, 11945, 16649, 17444, 20390, 21564},
- { 3151, 4893, 5899, 7198, 11418, 13073, 15124, 17673, 20520, 21861},
- { 3960, 4848, 5926, 7259, 8811, 10529, 15661, 16560, 18196, 20183},
- { 4499, 6604, 8036, 9251, 10804, 12627, 15880, 17512, 20020, 21046},
- { 4251, 5541, 6654, 8318, 9900, 11686, 15100, 17093, 20572, 21687},
- { 3769, 5327, 7865, 9360, 10684, 11818, 13660, 15366, 18733, 19882},
- { 3083, 3969, 6248, 8121, 9798, 10994, 12393, 13686, 17888, 19105},
- { 2731, 4670, 7063, 9201, 11346, 13735, 16875, 18797, 20787, 22360},
- { 1187, 2227, 4737, 7214, 9622, 12633, 15404, 17968, 20262, 23533},
- { 1911, 2477, 3915, 10098, 11616, 12955, 16223, 17138, 19270, 20729},
- { 1764, 2519, 3887, 6944, 9150, 12590, 16258, 16984, 17924, 18435},
- { 1400, 3674, 7131, 8718, 10688, 12508, 15708, 17711, 19720, 21068},
- { 2322, 3073, 4287, 8108, 9407, 10628, 15862, 16693, 19714, 21474},
- { 2630, 3339, 4758, 8360, 10274, 11333, 12880, 17374, 19221, 19936},
- { 1721, 2577, 5553, 7195, 8651, 10686, 15069, 16953, 18703, 19929}
-};
-
-/**
- * second stage LSP codebook, high and low parts
- (both 5-dimensional, with 32 entries (3.2.4 of G.729)
- */
-static const int16_t cb_lsp_2nd[1<<VQ_2ND_BITS][10] = { /* (2.13) */
- { -435, -815, -742, 1033, -518, 582, -1201, 829, 86, 385},
- { -833, -891, 463, -8, -1251, 1450, 72, -231, 864, 661},
- {-1021, 231, -306, 321, -220, -163, -526, -754, -1633, 267},
- { 57, -198, -339, -33, -1468, 573, 796, -169, -631, 816},
- { 171, -350, 294, 1660, 453, 519, 291, 159, -640, -1296},
- { -701, -842, -58, 950, 892, 1549, 715, 527, -714, -193},
- { 584, 31, -289, 356, -333, -457, 612, -283, -1381, -741},
- { -109, -808, 231, 77, -87, -344, 1341, 1087, -654, -569},
- { -859, 1236, 550, 854, 714, -543, -1752, -195, -98, -276},
- { -877, -954, -1248, -299, 212, -235, -728, 949, 1517, 895},
- { -77, 344, -620, 763, 413, 502, -362, -960, -483, 1386},
- { -314, -307, -256, -1260, -429, 450, -466, -108, 1010, 2223},
- { 711, 693, 521, 650, 1305, -28, -378, 744, -1005, 240},
- { -112, -271, -500, 946, 1733, 271, -15, 909, -259, 1688},
- { 575, -10, -468, -199, 1101, -1011, 581, -53, -747, 878},
- { 145, -285, -1280, -398, 36, -498, -1377, 18, -444, 1483},
- {-1133, -835, 1350, 1284, -95, 1015, -222, 443, 372, -354},
- {-1459, -1237, 416, -213, 466, 669, 659, 1640, 932, 534},
- { -15, 66, 468, 1019, -748, 1385, -182, -907, -721, -262},
- { -338, 148, 1445, 75, -760, 569, 1247, 337, 416, -121},
- { 389, 239, 1568, 981, 113, 369, -1003, -507, -587, -904},
- { -312, -98, 949, 31, 1104, 72, -141, 1465, 63, -785},
- { 1127, 584, 835, 277, -1159, 208, 301, -882, 117, -404},
- { 539, -114, 856, -493, 223, -912, 623, -76, 276, -440},
- { 2197, 2337, 1268, 670, 304, -267, -525, 140, 882, -139},
- {-1596, 550, 801, -456, -56, -697, 865, 1060, 413, 446},
- { 1154, 593, -77, 1237, -31, 581, -1037, -895, 669, 297},
- { 397, 558, 203, -797, -919, 3, 692, -292, 1050, 782},
- { 334, 1475, 632, -80, 48, -1061, -484, 362, -597, -852},
- { -545, -330, -429, -680, 1133, -1182, -744, 1340, 262, 63},
- { 1320, 827, -398, -576, 341, -774, -483, -1247, -70, 98},
- { -163, 674, -11, -886, 531, -1125, -265, -242, 724, 934}
-};
-
-/**
- * gain codebook (first stage), 8k mode (3.9.2 of G.729)
- */
-static const int16_t cb_gain_1st_8k[1<<GC_1ST_IDX_BITS_8K][2] = { /*(0.14) (2.13) */
- { 3242 , 9949 },
- { 1551 , 2425 },
- { 2678 , 27162 },
- { 1921 , 9291 },
- { 1831 , 5022 },
- { 1 , 1516 },
- { 356 , 14756 },
- { 57 , 5404 },
-};
-
-/**
- * gain codebook (second stage), 8k mode (3.9.2 of G.729)
- */
-static const int16_t cb_gain_2nd_8k[1<<GC_2ND_IDX_BITS_8K][2] = { /*(1.14) (1.13) */
- { 5142 , 592 },
- { 17299 , 1861 },
- { 6160 , 2395 },
- { 16112 , 3392 },
- { 826 , 2005 },
- { 18973 , 5935 },
- { 1994 , 0 },
- { 15434 , 237 },
- { 10573 , 2966 },
- { 15132 , 4914 },
- { 11569 , 1196 },
- { 14194 , 1630 },
- { 8091 , 4861 },
- { 15161 , 14276 },
- { 9120 , 525 },
- { 13260 , 3256 },
-};
-
-/**
- * 4th order Moving Average (MA) Predictor codebook (3.2.4 of G.729)
- */
-static const int16_t cb_ma_predictor[2][MA_NP][10] = { /* (0.15) */
- {
- { 8421, 9109, 9175, 8965, 9034, 9057, 8765, 8775, 9106, 8673},
- { 7018, 7189, 7638, 7307, 7444, 7379, 7038, 6956, 6930, 6868},
- { 5472, 4990, 5134, 5177, 5246, 5141, 5206, 5095, 4830, 5147},
- { 4056, 3031, 2614, 3024, 2916, 2713, 3309, 3237, 2857, 3473}
- },
- {
- { 7733, 7880, 8188, 8175, 8247, 8490, 8637, 8601, 8359, 7569},
- { 4210, 3031, 2552, 3473, 3876, 3853, 4184, 4154, 3909, 3968},
- { 3214, 1930, 1313, 2143, 2493, 2385, 2755, 2706, 2542, 2919},
- { 3024, 1592, 940, 1631, 1723, 1579, 2034, 2084, 1913, 2601}
- }
-};
-
-static const int16_t cb_ma_predictor_sum[2][10] = { /* (0.15) */
- { 7798, 8447, 8205, 8293, 8126, 8477, 8447, 8703, 9043, 8604},
- {14585, 18333, 19772, 17344, 16426, 16459, 15155, 15220, 16043, 15708}
-};
-
-/**
- * initial LSP coefficients belongs to virtual frame preceding the
- * first frame of the stream
- */
-static const int16_t lsp_init[10]= { /* (0.15) */
- 30000, 26000, 21000, 15000, 8000, 0, -8000,-15000,-21000,-26000
-};
-#endif /* AVCODEC_G729DATA_H */
+++ /dev/null
-/*
- * copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * bitstream reader API header.
- */
-
-#ifndef AVCODEC_GET_BITS_H
-#define AVCODEC_GET_BITS_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "libavutil/bswap.h"
-#include "libavutil/common.h"
-#include "libavutil/intreadwrite.h"
-#include "libavutil/log.h"
-#include "mathops.h"
-
-#if defined(ALT_BITSTREAM_READER_LE) && !defined(ALT_BITSTREAM_READER)
-# define ALT_BITSTREAM_READER
-#endif
-
-#if !defined(LIBMPEG2_BITSTREAM_READER) && !defined(A32_BITSTREAM_READER) && !defined(ALT_BITSTREAM_READER)
-# if ARCH_ARM && !HAVE_FAST_UNALIGNED
-# define A32_BITSTREAM_READER
-# else
-# define ALT_BITSTREAM_READER
-//#define LIBMPEG2_BITSTREAM_READER
-//#define A32_BITSTREAM_READER
-# endif
-#endif
-
-/* bit input */
-/* buffer, buffer_end and size_in_bits must be present and used by every reader */
-typedef struct GetBitContext {
- const uint8_t *buffer, *buffer_end;
-#ifdef ALT_BITSTREAM_READER
- int index;
-#elif defined LIBMPEG2_BITSTREAM_READER
- uint8_t *buffer_ptr;
- uint32_t cache;
- int bit_count;
-#elif defined A32_BITSTREAM_READER
- uint32_t *buffer_ptr;
- uint32_t cache0;
- uint32_t cache1;
- int bit_count;
-#endif
- int size_in_bits;
-} GetBitContext;
-
-#define VLC_TYPE int16_t
-
-typedef struct VLC {
- int bits;
- VLC_TYPE (*table)[2]; ///< code, bits
- int table_size, table_allocated;
-} VLC;
-
-typedef struct RL_VLC_ELEM {
- int16_t level;
- int8_t len;
- uint8_t run;
-} RL_VLC_ELEM;
-
-/* Bitstream reader API docs:
-name
- arbitrary name which is used as prefix for the internal variables
-
-gb
- getbitcontext
-
-OPEN_READER(name, gb)
- loads gb into local variables
-
-CLOSE_READER(name, gb)
- stores local vars in gb
-
-UPDATE_CACHE(name, gb)
- refills the internal cache from the bitstream
- after this call at least MIN_CACHE_BITS will be available,
-
-GET_CACHE(name, gb)
- will output the contents of the internal cache, next bit is MSB of 32 or 64 bit (FIXME 64bit)
-
-SHOW_UBITS(name, gb, num)
- will return the next num bits
-
-SHOW_SBITS(name, gb, num)
- will return the next num bits and do sign extension
-
-SKIP_BITS(name, gb, num)
- will skip over the next num bits
- note, this is equivalent to SKIP_CACHE; SKIP_COUNTER
-
-SKIP_CACHE(name, gb, num)
- will remove the next num bits from the cache (note SKIP_COUNTER MUST be called before UPDATE_CACHE / CLOSE_READER)
-
-SKIP_COUNTER(name, gb, num)
- will increment the internal bit counter (see SKIP_CACHE & SKIP_BITS)
-
-LAST_SKIP_CACHE(name, gb, num)
- will remove the next num bits from the cache if it is needed for UPDATE_CACHE otherwise it will do nothing
-
-LAST_SKIP_BITS(name, gb, num)
- is equivalent to LAST_SKIP_CACHE; SKIP_COUNTER
-
-for examples see get_bits, show_bits, skip_bits, get_vlc
-*/
-
-#ifdef ALT_BITSTREAM_READER
-# define MIN_CACHE_BITS 25
-
-# define OPEN_READER(name, gb)\
- unsigned int name##_index= (gb)->index;\
- int name##_cache= 0;\
-
-# define CLOSE_READER(name, gb)\
- (gb)->index= name##_index;\
-
-# ifdef ALT_BITSTREAM_READER_LE
-# define UPDATE_CACHE(name, gb)\
- name##_cache= AV_RL32( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) >> (name##_index&0x07);\
-
-# define SKIP_CACHE(name, gb, num)\
- name##_cache >>= (num);
-# else
-# define UPDATE_CACHE(name, gb)\
- name##_cache= AV_RB32( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) << (name##_index&0x07);\
-
-# define SKIP_CACHE(name, gb, num)\
- name##_cache <<= (num);
-# endif
-
-// FIXME name?
-# define SKIP_COUNTER(name, gb, num)\
- name##_index += (num);\
-
-# define SKIP_BITS(name, gb, num)\
- {\
- SKIP_CACHE(name, gb, num)\
- SKIP_COUNTER(name, gb, num)\
- }\
-
-# define LAST_SKIP_BITS(name, gb, num) SKIP_COUNTER(name, gb, num)
-# define LAST_SKIP_CACHE(name, gb, num) ;
-
-# ifdef ALT_BITSTREAM_READER_LE
-# define SHOW_UBITS(name, gb, num)\
- zero_extend(name##_cache, num)
-
-# define SHOW_SBITS(name, gb, num)\
- sign_extend(name##_cache, num)
-# else
-# define SHOW_UBITS(name, gb, num)\
- NEG_USR32(name##_cache, num)
-
-# define SHOW_SBITS(name, gb, num)\
- NEG_SSR32(name##_cache, num)
-# endif
-
-# define GET_CACHE(name, gb)\
- ((uint32_t)name##_cache)
-
-static inline int get_bits_count(const GetBitContext *s){
- return s->index;
-}
-
-static inline void skip_bits_long(GetBitContext *s, int n){
- s->index += n;
-}
-
-#elif defined LIBMPEG2_BITSTREAM_READER
-//libmpeg2 like reader
-
-# define MIN_CACHE_BITS 17
-
-# define OPEN_READER(name, gb)\
- int name##_bit_count=(gb)->bit_count;\
- int name##_cache= (gb)->cache;\
- uint8_t * name##_buffer_ptr=(gb)->buffer_ptr;\
-
-# define CLOSE_READER(name, gb)\
- (gb)->bit_count= name##_bit_count;\
- (gb)->cache= name##_cache;\
- (gb)->buffer_ptr= name##_buffer_ptr;\
-
-# define UPDATE_CACHE(name, gb)\
- if(name##_bit_count >= 0){\
- name##_cache+= AV_RB16(name##_buffer_ptr) << name##_bit_count; \
- name##_buffer_ptr+=2;\
- name##_bit_count-= 16;\
- }\
-
-# define SKIP_CACHE(name, gb, num)\
- name##_cache <<= (num);\
-
-# define SKIP_COUNTER(name, gb, num)\
- name##_bit_count += (num);\
-
-# define SKIP_BITS(name, gb, num)\
- {\
- SKIP_CACHE(name, gb, num)\
- SKIP_COUNTER(name, gb, num)\
- }\
-
-# define LAST_SKIP_BITS(name, gb, num) SKIP_BITS(name, gb, num)
-# define LAST_SKIP_CACHE(name, gb, num) SKIP_CACHE(name, gb, num)
-
-# define SHOW_UBITS(name, gb, num)\
- NEG_USR32(name##_cache, num)
-
-# define SHOW_SBITS(name, gb, num)\
- NEG_SSR32(name##_cache, num)
-
-# define GET_CACHE(name, gb)\
- ((uint32_t)name##_cache)
-
-static inline int get_bits_count(const GetBitContext *s){
- return (s->buffer_ptr - s->buffer)*8 - 16 + s->bit_count;
-}
-
-static inline void skip_bits_long(GetBitContext *s, int n){
- OPEN_READER(re, s)
- re_bit_count += n;
- re_buffer_ptr += 2*(re_bit_count>>4);
- re_bit_count &= 15;
- re_cache = ((re_buffer_ptr[-2]<<8) + re_buffer_ptr[-1]) << (16+re_bit_count);
- UPDATE_CACHE(re, s)
- CLOSE_READER(re, s)
-}
-
-#elif defined A32_BITSTREAM_READER
-
-# define MIN_CACHE_BITS 32
-
-# define OPEN_READER(name, gb)\
- int name##_bit_count=(gb)->bit_count;\
- uint32_t name##_cache0= (gb)->cache0;\
- uint32_t name##_cache1= (gb)->cache1;\
- uint32_t * name##_buffer_ptr=(gb)->buffer_ptr;\
-
-# define CLOSE_READER(name, gb)\
- (gb)->bit_count= name##_bit_count;\
- (gb)->cache0= name##_cache0;\
- (gb)->cache1= name##_cache1;\
- (gb)->buffer_ptr= name##_buffer_ptr;\
-
-# define UPDATE_CACHE(name, gb)\
- if(name##_bit_count > 0){\
- const uint32_t next= be2me_32( *name##_buffer_ptr );\
- name##_cache0 |= NEG_USR32(next,name##_bit_count);\
- name##_cache1 |= next<<name##_bit_count;\
- name##_buffer_ptr++;\
- name##_bit_count-= 32;\
- }\
-
-#if ARCH_X86
-# define SKIP_CACHE(name, gb, num)\
- __asm__(\
- "shldl %2, %1, %0 \n\t"\
- "shll %2, %1 \n\t"\
- : "+r" (name##_cache0), "+r" (name##_cache1)\
- : "Ic" ((uint8_t)(num))\
- );
-#else
-# define SKIP_CACHE(name, gb, num)\
- name##_cache0 <<= (num);\
- name##_cache0 |= NEG_USR32(name##_cache1,num);\
- name##_cache1 <<= (num);
-#endif
-
-# define SKIP_COUNTER(name, gb, num)\
- name##_bit_count += (num);\
-
-# define SKIP_BITS(name, gb, num)\
- {\
- SKIP_CACHE(name, gb, num)\
- SKIP_COUNTER(name, gb, num)\
- }\
-
-# define LAST_SKIP_BITS(name, gb, num) SKIP_BITS(name, gb, num)
-# define LAST_SKIP_CACHE(name, gb, num) SKIP_CACHE(name, gb, num)
-
-# define SHOW_UBITS(name, gb, num)\
- NEG_USR32(name##_cache0, num)
-
-# define SHOW_SBITS(name, gb, num)\
- NEG_SSR32(name##_cache0, num)
-
-# define GET_CACHE(name, gb)\
- (name##_cache0)
-
-static inline int get_bits_count(const GetBitContext *s){
- return ((uint8_t*)s->buffer_ptr - s->buffer)*8 - 32 + s->bit_count;
-}
-
-static inline void skip_bits_long(GetBitContext *s, int n){
- OPEN_READER(re, s)
- re_bit_count += n;
- re_buffer_ptr += re_bit_count>>5;
- re_bit_count &= 31;
- re_cache0 = be2me_32( re_buffer_ptr[-1] ) << re_bit_count;
- re_cache1 = 0;
- UPDATE_CACHE(re, s)
- CLOSE_READER(re, s)
-}
-
-#endif
-
-/**
- * read mpeg1 dc style vlc (sign bit + mantisse with no MSB).
- * if MSB not set it is negative
- * @param n length in bits
- * @author BERO
- */
-static inline int get_xbits(GetBitContext *s, int n){
- register int sign;
- register int32_t cache;
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
- cache = GET_CACHE(re,s);
- sign=(~cache)>>31;
- LAST_SKIP_BITS(re, s, n)
- CLOSE_READER(re, s)
- return (NEG_USR32(sign ^ cache, n) ^ sign) - sign;
-}
-
-static inline int get_sbits(GetBitContext *s, int n){
- register int tmp;
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
- tmp= SHOW_SBITS(re, s, n);
- LAST_SKIP_BITS(re, s, n)
- CLOSE_READER(re, s)
- return tmp;
-}
-
-/**
- * reads 1-17 bits.
- * Note, the alt bitstream reader can read up to 25 bits, but the libmpeg2 reader can't
- */
-static inline unsigned int get_bits(GetBitContext *s, int n){
- register int tmp;
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
- tmp= SHOW_UBITS(re, s, n);
- LAST_SKIP_BITS(re, s, n)
- CLOSE_READER(re, s)
- return tmp;
-}
-
-/**
- * shows 1-17 bits.
- * Note, the alt bitstream reader can read up to 25 bits, but the libmpeg2 reader can't
- */
-static inline unsigned int show_bits(GetBitContext *s, int n){
- register int tmp;
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
- tmp= SHOW_UBITS(re, s, n);
-// CLOSE_READER(re, s)
- return tmp;
-}
-
-static inline void skip_bits(GetBitContext *s, int n){
- //Note gcc seems to optimize this to s->index+=n for the ALT_READER :))
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
- LAST_SKIP_BITS(re, s, n)
- CLOSE_READER(re, s)
-}
-
-static inline unsigned int get_bits1(GetBitContext *s){
-#ifdef ALT_BITSTREAM_READER
- unsigned int index= s->index;
- uint8_t result= s->buffer[ index>>3 ];
-#ifdef ALT_BITSTREAM_READER_LE
- result>>= (index&0x07);
- result&= 1;
-#else
- result<<= (index&0x07);
- result>>= 8 - 1;
-#endif
- index++;
- s->index= index;
-
- return result;
-#else
- return get_bits(s, 1);
-#endif
-}
-
-static inline unsigned int show_bits1(GetBitContext *s){
- return show_bits(s, 1);
-}
-
-static inline void skip_bits1(GetBitContext *s){
- skip_bits(s, 1);
-}
-
-/**
- * reads 0-32 bits.
- */
-static inline unsigned int get_bits_long(GetBitContext *s, int n){
- if(n<=MIN_CACHE_BITS) return get_bits(s, n);
- else{
-#ifdef ALT_BITSTREAM_READER_LE
- int ret= get_bits(s, 16);
- return ret | (get_bits(s, n-16) << 16);
-#else
- int ret= get_bits(s, 16) << (n-16);
- return ret | get_bits(s, n-16);
-#endif
- }
-}
-
-/**
- * reads 0-32 bits as a signed integer.
- */
-static inline int get_sbits_long(GetBitContext *s, int n) {
- return sign_extend(get_bits_long(s, n), n);
-}
-
-/**
- * shows 0-32 bits.
- */
-static inline unsigned int show_bits_long(GetBitContext *s, int n){
- if(n<=MIN_CACHE_BITS) return show_bits(s, n);
- else{
- GetBitContext gb= *s;
- return get_bits_long(&gb, n);
- }
-}
-
-static inline int check_marker(GetBitContext *s, const char *msg)
-{
- int bit= get_bits1(s);
- if(!bit)
- av_log(NULL, AV_LOG_INFO, "Marker bit missing %s\n", msg);
-
- return bit;
-}
-
-/**
- * init GetBitContext.
- * @param buffer bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE bytes larger then the actual read bits
- * because some optimized bitstream readers read 32 or 64 bit at once and could read over the end
- * @param bit_size the size of the buffer in bits
- *
- * While GetBitContext stores the buffer size, for performance reasons you are
- * responsible for checking for the buffer end yourself (take advantage of the padding)!
- */
-static inline void init_get_bits(GetBitContext *s,
- const uint8_t *buffer, int bit_size)
-{
- int buffer_size= (bit_size+7)>>3;
- if(buffer_size < 0 || bit_size < 0) {
- buffer_size = bit_size = 0;
- buffer = NULL;
- }
-
- s->buffer= buffer;
- s->size_in_bits= bit_size;
- s->buffer_end= buffer + buffer_size;
-#ifdef ALT_BITSTREAM_READER
- s->index=0;
-#elif defined LIBMPEG2_BITSTREAM_READER
- s->buffer_ptr = (uint8_t*)((intptr_t)buffer&(~1));
- s->bit_count = 16 + 8*((intptr_t)buffer&1);
- skip_bits_long(s, 0);
-#elif defined A32_BITSTREAM_READER
- s->buffer_ptr = (uint32_t*)((intptr_t)buffer&(~3));
- s->bit_count = 32 + 8*((intptr_t)buffer&3);
- skip_bits_long(s, 0);
-#endif
-}
-
-static inline void align_get_bits(GetBitContext *s)
-{
- int n= (-get_bits_count(s)) & 7;
- if(n) skip_bits(s, n);
-}
-
-#define init_vlc(vlc, nb_bits, nb_codes,\
- bits, bits_wrap, bits_size,\
- codes, codes_wrap, codes_size,\
- flags)\
- init_vlc_sparse(vlc, nb_bits, nb_codes,\
- bits, bits_wrap, bits_size,\
- codes, codes_wrap, codes_size,\
- NULL, 0, 0, flags)
-
-int init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes,
- const void *bits, int bits_wrap, int bits_size,
- const void *codes, int codes_wrap, int codes_size,
- const void *symbols, int symbols_wrap, int symbols_size,
- int flags);
-#define INIT_VLC_LE 2
-#define INIT_VLC_USE_NEW_STATIC 4
-void free_vlc(VLC *vlc);
-
-#define INIT_VLC_STATIC(vlc, bits, a,b,c,d,e,f,g, static_size)\
-{\
- static VLC_TYPE table[static_size][2];\
- (vlc)->table= table;\
- (vlc)->table_allocated= static_size;\
- init_vlc(vlc, bits, a,b,c,d,e,f,g, INIT_VLC_USE_NEW_STATIC);\
-}
-
-
-/**
- *
- * If the vlc code is invalid and max_depth=1, then no bits will be removed.
- * If the vlc code is invalid and max_depth>1, then the number of bits removed
- * is undefined.
- */
-#define GET_VLC(code, name, gb, table, bits, max_depth)\
-{\
- int n, nb_bits;\
- unsigned int index;\
-\
- index= SHOW_UBITS(name, gb, bits);\
- code = table[index][0];\
- n = table[index][1];\
-\
- if(max_depth > 1 && n < 0){\
- LAST_SKIP_BITS(name, gb, bits)\
- UPDATE_CACHE(name, gb)\
-\
- nb_bits = -n;\
-\
- index= SHOW_UBITS(name, gb, nb_bits) + code;\
- code = table[index][0];\
- n = table[index][1];\
- if(max_depth > 2 && n < 0){\
- LAST_SKIP_BITS(name, gb, nb_bits)\
- UPDATE_CACHE(name, gb)\
-\
- nb_bits = -n;\
-\
- index= SHOW_UBITS(name, gb, nb_bits) + code;\
- code = table[index][0];\
- n = table[index][1];\
- }\
- }\
- SKIP_BITS(name, gb, n)\
-}
-
-#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth, need_update)\
-{\
- int n, nb_bits;\
- unsigned int index;\
-\
- index= SHOW_UBITS(name, gb, bits);\
- level = table[index].level;\
- n = table[index].len;\
-\
- if(max_depth > 1 && n < 0){\
- SKIP_BITS(name, gb, bits)\
- if(need_update){\
- UPDATE_CACHE(name, gb)\
- }\
-\
- nb_bits = -n;\
-\
- index= SHOW_UBITS(name, gb, nb_bits) + level;\
- level = table[index].level;\
- n = table[index].len;\
- }\
- run= table[index].run;\
- SKIP_BITS(name, gb, n)\
-}
-
-
-/**
- * parses a vlc code, faster then get_vlc()
- * @param bits is the number of bits which will be read at once, must be
- * identical to nb_bits in init_vlc()
- * @param max_depth is the number of times bits bits must be read to completely
- * read the longest vlc code
- * = (max_vlc_length + bits - 1) / bits
- */
-static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE (*table)[2],
- int bits, int max_depth)
-{
- int code;
-
- OPEN_READER(re, s)
- UPDATE_CACHE(re, s)
-
- GET_VLC(code, re, s, table, bits, max_depth)
-
- CLOSE_READER(re, s)
- return code;
-}
-
-//#define TRACE
-
-#ifdef TRACE
-static inline void print_bin(int bits, int n){
- int i;
-
- for(i=n-1; i>=0; i--){
- av_log(NULL, AV_LOG_DEBUG, "%d", (bits>>i)&1);
- }
- for(i=n; i<24; i++)
- av_log(NULL, AV_LOG_DEBUG, " ");
-}
-
-static inline int get_bits_trace(GetBitContext *s, int n, char *file, const char *func, int line){
- int r= get_bits(s, n);
-
- print_bin(r, n);
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d bit @%5d in %s %s:%d\n", r, n, r, get_bits_count(s)-n, file, func, line);
- return r;
-}
-static inline int get_vlc_trace(GetBitContext *s, VLC_TYPE (*table)[2], int bits, int max_depth, char *file, const char *func, int line){
- int show= show_bits(s, 24);
- int pos= get_bits_count(s);
- int r= get_vlc2(s, table, bits, max_depth);
- int len= get_bits_count(s) - pos;
- int bits2= show>>(24-len);
-
- print_bin(bits2, len);
-
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d vlc @%5d in %s %s:%d\n", bits2, len, r, pos, file, func, line);
- return r;
-}
-static inline int get_xbits_trace(GetBitContext *s, int n, char *file, const char *func, int line){
- int show= show_bits(s, n);
- int r= get_xbits(s, n);
-
- print_bin(show, n);
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d xbt @%5d in %s %s:%d\n", show, n, r, get_bits_count(s)-n, file, func, line);
- return r;
-}
-
-#define get_bits(s, n) get_bits_trace(s, n, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_bits1(s) get_bits_trace(s, 1, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_xbits(s, n) get_xbits_trace(s, n, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_vlc(s, vlc) get_vlc_trace(s, (vlc)->table, (vlc)->bits, 3, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_vlc2(s, tab, bits, max) get_vlc_trace(s, tab, bits, max, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-
-#define tprintf(p, ...) av_log(p, AV_LOG_DEBUG, __VA_ARGS__)
-
-#else //TRACE
-#define tprintf(p, ...) {}
-#endif
-
-static inline int decode012(GetBitContext *gb){
- int n;
- n = get_bits1(gb);
- if (n == 0)
- return 0;
- else
- return get_bits1(gb) + 1;
-}
-
-static inline int decode210(GetBitContext *gb){
- if (get_bits1(gb))
- return 0;
- else
- return 2 - get_bits1(gb);
-}
-
-static inline int get_bits_left(GetBitContext *gb)
-{
- return gb->size_in_bits - get_bits_count(gb);
-}
-
-#endif /* AVCODEC_GET_BITS_H */
+++ /dev/null
-/*
- * exp golomb vlc stuff
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (c) 2004 Alex Beregszaszi
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief
- * exp golomb vlc stuff
- * @author Michael Niedermayer <michaelni@gmx.at> and Alex Beregszaszi
- */
-
-#ifndef AVCODEC_GOLOMB_H
-#define AVCODEC_GOLOMB_H
-
-#include <stdint.h>
-#include "get_bits.h"
-#include "put_bits.h"
-
-#define INVALID_VLC 0x80000000
-
-extern const uint8_t ff_golomb_vlc_len[512];
-extern const uint8_t ff_ue_golomb_vlc_code[512];
-extern const int8_t ff_se_golomb_vlc_code[512];
-extern const uint8_t ff_ue_golomb_len[256];
-
-extern const uint8_t ff_interleaved_golomb_vlc_len[256];
-extern const uint8_t ff_interleaved_ue_golomb_vlc_code[256];
-extern const int8_t ff_interleaved_se_golomb_vlc_code[256];
-extern const uint8_t ff_interleaved_dirac_golomb_vlc_code[256];
-
-
- /**
- * read unsigned exp golomb code.
- */
-static inline int get_ue_golomb(GetBitContext *gb){
- unsigned int buf;
- int log;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- if(buf >= (1<<27)){
- buf >>= 32 - 9;
- LAST_SKIP_BITS(re, gb, ff_golomb_vlc_len[buf]);
- CLOSE_READER(re, gb);
-
- return ff_ue_golomb_vlc_code[buf];
- }else{
- log= 2*av_log2(buf) - 31;
- buf>>= log;
- buf--;
- LAST_SKIP_BITS(re, gb, 32 - log);
- CLOSE_READER(re, gb);
-
- return buf;
- }
-}
-
- /**
- * read unsigned exp golomb code, constraint to a max of 31.
- * the return value is undefined if the stored value exceeds 31.
- */
-static inline int get_ue_golomb_31(GetBitContext *gb){
- unsigned int buf;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- buf >>= 32 - 9;
- LAST_SKIP_BITS(re, gb, ff_golomb_vlc_len[buf]);
- CLOSE_READER(re, gb);
-
- return ff_ue_golomb_vlc_code[buf];
-}
-
-static inline int svq3_get_ue_golomb(GetBitContext *gb){
- uint32_t buf;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- if(buf&0xAA800000){
- buf >>= 32 - 8;
- LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]);
- CLOSE_READER(re, gb);
-
- return ff_interleaved_ue_golomb_vlc_code[buf];
- }else{
- int ret = 1;
-
- while (1) {
- buf >>= 32 - 8;
- LAST_SKIP_BITS(re, gb, FFMIN(ff_interleaved_golomb_vlc_len[buf], 8));
-
- if (ff_interleaved_golomb_vlc_len[buf] != 9){
- ret <<= (ff_interleaved_golomb_vlc_len[buf] - 1) >> 1;
- ret |= ff_interleaved_dirac_golomb_vlc_code[buf];
- break;
- }
- ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];
- UPDATE_CACHE(re, gb);
- buf = GET_CACHE(re, gb);
- }
-
- CLOSE_READER(re, gb);
- return ret - 1;
- }
-}
-
-/**
- * read unsigned truncated exp golomb code.
- */
-static inline int get_te0_golomb(GetBitContext *gb, int range){
- assert(range >= 1);
-
- if(range==1) return 0;
- else if(range==2) return get_bits1(gb)^1;
- else return get_ue_golomb(gb);
-}
-
-/**
- * read unsigned truncated exp golomb code.
- */
-static inline int get_te_golomb(GetBitContext *gb, int range){
- assert(range >= 1);
-
- if(range==2) return get_bits1(gb)^1;
- else return get_ue_golomb(gb);
-}
-
-
-/**
- * read signed exp golomb code.
- */
-static inline int get_se_golomb(GetBitContext *gb){
- unsigned int buf;
- int log;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- if(buf >= (1<<27)){
- buf >>= 32 - 9;
- LAST_SKIP_BITS(re, gb, ff_golomb_vlc_len[buf]);
- CLOSE_READER(re, gb);
-
- return ff_se_golomb_vlc_code[buf];
- }else{
- log= 2*av_log2(buf) - 31;
- buf>>= log;
-
- LAST_SKIP_BITS(re, gb, 32 - log);
- CLOSE_READER(re, gb);
-
- if(buf&1) buf= -(buf>>1);
- else buf= (buf>>1);
-
- return buf;
- }
-}
-
-static inline int svq3_get_se_golomb(GetBitContext *gb){
- unsigned int buf;
- int log;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- if(buf&0xAA800000){
- buf >>= 32 - 8;
- LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]);
- CLOSE_READER(re, gb);
-
- return ff_interleaved_se_golomb_vlc_code[buf];
- }else{
- LAST_SKIP_BITS(re, gb, 8);
- UPDATE_CACHE(re, gb);
- buf |= 1 | (GET_CACHE(re, gb) >> 8);
-
- if((buf & 0xAAAAAAAA) == 0)
- return INVALID_VLC;
-
- for(log=31; (buf & 0x80000000) == 0; log--){
- buf = (buf << 2) - ((buf << log) >> (log - 1)) + (buf >> 30);
- }
-
- LAST_SKIP_BITS(re, gb, 63 - 2*log - 8);
- CLOSE_READER(re, gb);
-
- return (signed) (((((buf << log) >> log) - 1) ^ -(buf & 0x1)) + 1) >> 1;
- }
-}
-
-static inline int dirac_get_se_golomb(GetBitContext *gb){
- uint32_t buf;
- uint32_t ret;
-
- ret = svq3_get_ue_golomb(gb);
-
- if (ret) {
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf = SHOW_SBITS(re, gb, 1);
- LAST_SKIP_BITS(re, gb, 1);
- ret = (ret ^ buf) - buf;
- CLOSE_READER(re, gb);
- }
-
- return ret;
-}
-
-/**
- * read unsigned golomb rice code (ffv1).
- */
-static inline int get_ur_golomb(GetBitContext *gb, int k, int limit, int esc_len){
- unsigned int buf;
- int log;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- log= av_log2(buf);
-
- if(log > 31-limit){
- buf >>= log - k;
- buf += (30-log)<<k;
- LAST_SKIP_BITS(re, gb, 32 + k - log);
- CLOSE_READER(re, gb);
-
- return buf;
- }else{
- LAST_SKIP_BITS(re, gb, limit);
- UPDATE_CACHE(re, gb);
-
- buf = SHOW_UBITS(re, gb, esc_len);
-
- LAST_SKIP_BITS(re, gb, esc_len);
- CLOSE_READER(re, gb);
-
- return buf + limit - 1;
- }
-}
-
-/**
- * read unsigned golomb rice code (jpegls).
- */
-static inline int get_ur_golomb_jpegls(GetBitContext *gb, int k, int limit, int esc_len){
- unsigned int buf;
- int log;
-
- OPEN_READER(re, gb);
- UPDATE_CACHE(re, gb);
- buf=GET_CACHE(re, gb);
-
- log= av_log2(buf);
-
- if(log - k >= 32-MIN_CACHE_BITS+(MIN_CACHE_BITS==32) && 32-log < limit){
- buf >>= log - k;
- buf += (30-log)<<k;
- LAST_SKIP_BITS(re, gb, 32 + k - log);
- CLOSE_READER(re, gb);
-
- return buf;
- }else{
- int i;
- for(i=0; SHOW_UBITS(re, gb, 1) == 0; i++){
- LAST_SKIP_BITS(re, gb, 1);
- UPDATE_CACHE(re, gb);
- }
- SKIP_BITS(re, gb, 1);
-
- if(i < limit - 1){
- if(k){
- buf = SHOW_UBITS(re, gb, k);
- LAST_SKIP_BITS(re, gb, k);
- }else{
- buf=0;
- }
-
- CLOSE_READER(re, gb);
- return buf + (i<<k);
- }else if(i == limit - 1){
- buf = SHOW_UBITS(re, gb, esc_len);
- LAST_SKIP_BITS(re, gb, esc_len);
- CLOSE_READER(re, gb);
-
- return buf + 1;
- }else
- return -1;
- }
-}
-
-/**
- * read signed golomb rice code (ffv1).
- */
-static inline int get_sr_golomb(GetBitContext *gb, int k, int limit, int esc_len){
- int v= get_ur_golomb(gb, k, limit, esc_len);
-
- v++;
- if (v&1) return v>>1;
- else return -(v>>1);
-
-// return (v>>1) ^ -(v&1);
-}
-
-/**
- * read signed golomb rice code (flac).
- */
-static inline int get_sr_golomb_flac(GetBitContext *gb, int k, int limit, int esc_len){
- int v= get_ur_golomb_jpegls(gb, k, limit, esc_len);
- return (v>>1) ^ -(v&1);
-}
-
-/**
- * read unsigned golomb rice code (shorten).
- */
-static inline unsigned int get_ur_golomb_shorten(GetBitContext *gb, int k){
- return get_ur_golomb_jpegls(gb, k, INT_MAX, 0);
-}
-
-/**
- * read signed golomb rice code (shorten).
- */
-static inline int get_sr_golomb_shorten(GetBitContext* gb, int k)
-{
- int uvar = get_ur_golomb_jpegls(gb, k + 1, INT_MAX, 0);
- if (uvar & 1)
- return ~(uvar >> 1);
- else
- return uvar >> 1;
-}
-
-
-
-#ifdef TRACE
-
-static inline int get_ue(GetBitContext *s, char *file, const char *func, int line){
- int show= show_bits(s, 24);
- int pos= get_bits_count(s);
- int i= get_ue_golomb(s);
- int len= get_bits_count(s) - pos;
- int bits= show>>(24-len);
-
- print_bin(bits, len);
-
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d ue @%5d in %s %s:%d\n", bits, len, i, pos, file, func, line);
-
- return i;
-}
-
-static inline int get_se(GetBitContext *s, char *file, const char *func, int line){
- int show= show_bits(s, 24);
- int pos= get_bits_count(s);
- int i= get_se_golomb(s);
- int len= get_bits_count(s) - pos;
- int bits= show>>(24-len);
-
- print_bin(bits, len);
-
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d se @%5d in %s %s:%d\n", bits, len, i, pos, file, func, line);
-
- return i;
-}
-
-static inline int get_te(GetBitContext *s, int r, char *file, const char *func, int line){
- int show= show_bits(s, 24);
- int pos= get_bits_count(s);
- int i= get_te0_golomb(s, r);
- int len= get_bits_count(s) - pos;
- int bits= show>>(24-len);
-
- print_bin(bits, len);
-
- av_log(NULL, AV_LOG_DEBUG, "%5d %2d %3d te @%5d in %s %s:%d\n", bits, len, i, pos, file, func, line);
-
- return i;
-}
-
-#define get_ue_golomb(a) get_ue(a, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_se_golomb(a) get_se(a, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_te_golomb(a, r) get_te(a, r, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-#define get_te0_golomb(a, r) get_te(a, r, __FILE__, __PRETTY_FUNCTION__, __LINE__)
-
-#endif
-
-/**
- * write unsigned exp golomb code.
- */
-static inline void set_ue_golomb(PutBitContext *pb, int i){
- int e;
-
- assert(i>=0);
-
-#if 0
- if(i=0){
- put_bits(pb, 1, 1);
- return;
- }
-#endif
- if(i<256)
- put_bits(pb, ff_ue_golomb_len[i], i+1);
- else{
- e= av_log2(i+1);
-
- put_bits(pb, 2*e+1, i+1);
- }
-}
-
-/**
- * write truncated unsigned exp golomb code.
- */
-static inline void set_te_golomb(PutBitContext *pb, int i, int range){
- assert(range >= 1);
- assert(i<=range);
-
- if(range==2) put_bits(pb, 1, i^1);
- else set_ue_golomb(pb, i);
-}
-
-/**
- * write signed exp golomb code. 16 bits at most.
- */
-static inline void set_se_golomb(PutBitContext *pb, int i){
-// if (i>32767 || i<-32767)
-// av_log(NULL,AV_LOG_ERROR,"value out of range %d\n", i);
-#if 0
- if(i<=0) i= -2*i;
- else i= 2*i-1;
-#elif 1
- i= 2*i-1;
- if(i<0) i^= -1; //FIXME check if gcc does the right thing
-#else
- i= 2*i-1;
- i^= (i>>31);
-#endif
- set_ue_golomb(pb, i);
-}
-
-/**
- * write unsigned golomb rice code (ffv1).
- */
-static inline void set_ur_golomb(PutBitContext *pb, int i, int k, int limit, int esc_len){
- int e;
-
- assert(i>=0);
-
- e= i>>k;
- if(e<limit){
- put_bits(pb, e + k + 1, (1<<k) + (i&((1<<k)-1)));
- }else{
- put_bits(pb, limit + esc_len, i - limit + 1);
- }
-}
-
-/**
- * write unsigned golomb rice code (jpegls).
- */
-static inline void set_ur_golomb_jpegls(PutBitContext *pb, int i, int k, int limit, int esc_len){
- int e;
-
- assert(i>=0);
-
- e= (i>>k) + 1;
- if(e<limit){
- while(e > 31) {
- put_bits(pb, 31, 0);
- e -= 31;
- }
- put_bits(pb, e, 1);
- if(k)
- put_sbits(pb, k, i);
- }else{
- while(limit > 31) {
- put_bits(pb, 31, 0);
- limit -= 31;
- }
- put_bits(pb, limit , 1);
- put_bits(pb, esc_len, i - 1);
- }
-}
-
-/**
- * write signed golomb rice code (ffv1).
- */
-static inline void set_sr_golomb(PutBitContext *pb, int i, int k, int limit, int esc_len){
- int v;
-
- v = -2*i-1;
- v ^= (v>>31);
-
- set_ur_golomb(pb, v, k, limit, esc_len);
-}
-
-/**
- * write signed golomb rice code (flac).
- */
-static inline void set_sr_golomb_flac(PutBitContext *pb, int i, int k, int limit, int esc_len){
- int v;
-
- v = -2*i-1;
- v ^= (v>>31);
-
- set_ur_golomb_jpegls(pb, v, k, limit, esc_len);
-}
-
-#endif /* AVCODEC_GOLOMB_H */
+++ /dev/null
-/*
- * H261 decoder
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (c) 2004 Maarten Daniels
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * h261codec.
- */
-
-#ifndef AVCODEC_H261_H
-#define AVCODEC_H261_H
-
-#include "mpegvideo.h"
-
-/**
- * H261Context
- */
-typedef struct H261Context{
- MpegEncContext s;
-
- int current_mba;
- int previous_mba;
- int mba_diff;
- int mtype;
- int current_mv_x;
- int current_mv_y;
- int gob_number;
- int gob_start_code_skipped; // 1 if gob start code is already read before gob header is read
-}H261Context;
-
-#define MB_TYPE_H261_FIL 0x800000
-
-#endif /* AVCODEC_H261_H */
+++ /dev/null
-/*
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- * copyright (c) 2004 Maarten Daniels
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.261 tables.
- */
-
-#ifndef AVCODEC_H261DATA_H
-#define AVCODEC_H261DATA_H
-
-#include <stdint.h>
-#include "h261.h"
-
-// H.261 VLC table for macroblock addressing
-static const uint8_t h261_mba_code[35] = {
- 1, 3, 2, 3,
- 2, 3, 2, 7,
- 6, 11, 10, 9,
- 8, 7, 6, 23,
- 22, 21, 20, 19,
- 18, 35, 34, 33,
- 32, 31, 30, 29,
- 28, 27, 26, 25,
- 24,
- 15, //(MBA stuffing)
- 1 //(start code)
-};
-
-static const uint8_t h261_mba_bits[35] = {
- 1, 3, 3, 4,
- 4, 5, 5, 7,
- 7, 8, 8, 8,
- 8, 8, 8, 10,
- 10, 10, 10, 10,
- 10, 11, 11, 11,
- 11, 11, 11, 11,
- 11, 11, 11, 11,
- 11,
- 11, //(MBA stuffing)
- 16 //(start code)
-};
-
-//H.261 VLC table for macroblock type
-static const uint8_t h261_mtype_code[10] = {
- 1, 1, 1, 1,
- 1, 1, 1, 1,
- 1, 1
-};
-
-static const uint8_t h261_mtype_bits[10] = {
- 4, 7, 1, 5,
- 9, 8, 10, 3,
- 2, 6
-};
-
-static const int h261_mtype_map[10]= {
- MB_TYPE_INTRA4x4,
- MB_TYPE_INTRA4x4 | MB_TYPE_QUANT,
- MB_TYPE_CBP,
- MB_TYPE_QUANT | MB_TYPE_CBP,
- MB_TYPE_16x16,
- MB_TYPE_CBP | MB_TYPE_16x16,
- MB_TYPE_QUANT | MB_TYPE_CBP | MB_TYPE_16x16,
- MB_TYPE_16x16 | MB_TYPE_H261_FIL,
- MB_TYPE_CBP | MB_TYPE_16x16 | MB_TYPE_H261_FIL,
- MB_TYPE_QUANT | MB_TYPE_CBP | MB_TYPE_16x16 | MB_TYPE_H261_FIL
-};
-
-//H.261 VLC table for motion vectors
-static const uint8_t h261_mv_tab[17][2] = {
- {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
- {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10}, {12,10}
-};
-
-static const int mvmap[17] =
-{
- 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16
-};
-
-//H.261 VLC table for coded block pattern
-static const uint8_t h261_cbp_tab[63][2] =
-{
- {11,5}, {9,5}, {13,6}, {13,4}, {23,7}, {19,7}, {31,8}, {12,4},
- {22,7}, {18,7}, {30,8}, {19,5}, {27,8}, {23,8}, {19,8}, {11,4},
- {21,7}, {17,7}, {29,8}, {17,5}, {25,8}, {21,8}, {17,8}, {15,6},
- {15,8}, {13,8}, {3,9}, {15,5}, {11,8}, {7,8}, {7,9}, {10,4},
- {20,7}, {16,7}, {28,8}, {14,6}, {14,8}, {12,8}, {2,9}, {16,5},
- {24,8}, {20,8}, {16,8}, {14,5}, {10,8}, {6,8}, {6,9}, {18,5},
- {26,8}, {22,8}, {18,8}, {13,5}, {9,8}, {5,8}, {5,9}, {12,5},
- {8,8}, {4,8}, {4,9}, {7,3}, {10,5}, {8,5}, {12,6}
-};
-
-//H.261 VLC table for transform coefficients
-static const uint16_t h261_tcoeff_vlc[65][2] = {
-{ 0x2, 2 }, { 0x3, 2 },{ 0x4, 4 },{ 0x5, 5 },
-{ 0x6, 7 },{ 0x26, 8 },{ 0x21, 8 },{ 0xa, 10 },
-{ 0x1d, 12 },{ 0x18, 12 },{ 0x13, 12 },{ 0x10 , 12 },
-{ 0x1a, 13},{ 0x19, 13 }, { 0x18, 13 }, { 0x17, 13 },
-{ 0x3, 3 }, { 0x6, 6 }, { 0x25 , 8 }, { 0xc, 10 },
-{ 0x1b, 12 }, { 0x16, 13 }, { 0x15, 13 }, { 0x5, 4},
-{ 0x4, 7}, { 0xb, 10 }, { 0x14, 12 }, { 0x14, 13 },
-{ 0x7, 5 }, { 0x24, 8 }, { 0x1c, 12 }, { 0x13, 13 },
-{ 0x6, 5 }, { 0xf, 10 }, { 0x12, 12}, { 0x7, 6},
-{ 0x9 , 10 }, { 0x12, 13 }, { 0x5, 6 }, { 0x1e, 12 },
-{ 0x4, 6 }, { 0x15, 12 }, { 0x7, 7 }, { 0x11, 12},
-{ 0x5, 7 }, { 0x11, 13 }, { 0x27, 8 }, { 0x10, 13 },
-{ 0x23, 8 }, { 0x22, 8 }, { 0x20, 8 }, { 0xe , 10 },
-{ 0xd, 10 }, { 0x8, 10 },{ 0x1f, 12 }, { 0x1a, 12 },
-{ 0x19, 12 }, { 0x17, 12 }, { 0x16, 12}, { 0x1f, 13},
-{ 0x1e, 13 }, { 0x1d, 13 }, { 0x1c, 13}, { 0x1b, 13},
-{ 0x1, 6 } //escape
-};
-
-static const int8_t h261_tcoeff_level[64] = {
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 1, 2, 3, 4, 5, 6, 7, 1,
- 2, 3, 4, 5, 1, 2, 3, 4,
- 1, 2, 3, 1, 2, 3, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1
-};
-
-static const int8_t h261_tcoeff_run[64] = {
- 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1,
- 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 3, 3, 3, 3, 4,
- 4, 4, 5, 5, 5, 6, 6, 7,
- 7, 8, 8, 9, 9, 10, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26
-};
-
-static RLTable h261_rl_tcoeff = {
- 64,
- 64,
- h261_tcoeff_vlc,
- h261_tcoeff_run,
- h261_tcoeff_level,
-};
-
-#endif /* AVCODEC_H261DATA_H */
+++ /dev/null
-/*
- * H263 internal header
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVCODEC_H263_H
-#define AVCODEC_H263_H
-
-#include <stdint.h>
-#include "libavutil/rational.h"
-#include "get_bits.h"
-#include "mpegvideo.h"
-#include "rl.h"
-
-// The defines below define the number of bits that are read at once for
-// reading vlc values. Changing these may improve speed and data cache needs
-// be aware though that decreasing them may need the number of stages that is
-// passed to get_vlc* to be increased.
-#define INTRA_MCBPC_VLC_BITS 6
-#define INTER_MCBPC_VLC_BITS 7
-#define CBPY_VLC_BITS 6
-#define TEX_VLC_BITS 9
-
-extern const AVRational ff_h263_pixel_aspect[16];
-extern const uint8_t ff_h263_cbpy_tab[16][2];
-
-extern const uint8_t cbpc_b_tab[4][2];
-
-extern const uint8_t mvtab[33][2];
-
-extern const uint8_t ff_h263_intra_MCBPC_code[9];
-extern const uint8_t ff_h263_intra_MCBPC_bits[9];
-
-extern const uint8_t ff_h263_inter_MCBPC_code[28];
-extern const uint8_t ff_h263_inter_MCBPC_bits[28];
-extern const uint8_t h263_mbtype_b_tab[15][2];
-
-extern VLC ff_h263_intra_MCBPC_vlc;
-extern VLC ff_h263_inter_MCBPC_vlc;
-extern VLC ff_h263_cbpy_vlc;
-
-extern RLTable ff_h263_rl_inter;
-
-extern RLTable rl_intra_aic;
-
-extern const uint16_t h263_format[8][2];
-extern const uint8_t modified_quant_tab[2][32];
-extern uint16_t ff_mba_max[6];
-extern uint8_t ff_mba_length[7];
-
-extern uint8_t ff_h263_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
-
-
-int h263_decode_motion(MpegEncContext * s, int pred, int f_code);
-av_const int ff_h263_aspect_to_info(AVRational aspect);
-int ff_h263_decode_init(AVCodecContext *avctx);
-int ff_h263_decode_frame(AVCodecContext *avctx,
- void *data, int *data_size,
- AVPacket *avpkt);
-int ff_h263_decode_end(AVCodecContext *avctx);
-void h263_encode_mb(MpegEncContext *s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-void h263_encode_picture_header(MpegEncContext *s, int picture_number);
-void h263_encode_gob_header(MpegEncContext * s, int mb_line);
-int16_t *h263_pred_motion(MpegEncContext * s, int block, int dir,
- int *px, int *py);
-void h263_encode_init(MpegEncContext *s);
-void h263_decode_init_vlc(MpegEncContext *s);
-int h263_decode_picture_header(MpegEncContext *s);
-int ff_h263_decode_gob_header(MpegEncContext *s);
-void ff_h263_update_motion_val(MpegEncContext * s);
-void ff_h263_loop_filter(MpegEncContext * s);
-int ff_h263_decode_mba(MpegEncContext *s);
-void ff_h263_encode_mba(MpegEncContext *s);
-void ff_init_qscale_tab(MpegEncContext *s);
-int h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr);
-void h263_pred_acdc(MpegEncContext * s, DCTELEM *block, int n);
-
-
-/**
- * Prints picture info if FF_DEBUG_PICT_INFO is set.
- */
-void ff_h263_show_pict_info(MpegEncContext *s);
-
-int ff_intel_h263_decode_picture_header(MpegEncContext *s);
-int ff_h263_decode_mb(MpegEncContext *s,
- DCTELEM block[6][64]);
-
-/**
- * Returns the value of the 3bit "source format" syntax element.
- * that represents some standard picture dimensions or indicates that
- * width&height are explicitly stored later.
- */
-int av_const h263_get_picture_format(int width, int height);
-
-void ff_clean_h263_qscales(MpegEncContext *s);
-int ff_h263_resync(MpegEncContext *s);
-const uint8_t *ff_h263_find_resync_marker(const uint8_t *p, const uint8_t *end);
-int ff_h263_get_gob_height(MpegEncContext *s);
-void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code);
-
-
-static inline int h263_get_motion_length(MpegEncContext * s, int val, int f_code){
- int l, bit_size, code;
-
- if (val == 0) {
- return mvtab[0][1];
- } else {
- bit_size = f_code - 1;
- /* modulo encoding */
- l= INT_BIT - 6 - bit_size;
- val = (val<<l)>>l;
- val--;
- code = (val >> bit_size) + 1;
-
- return mvtab[code][1] + 1 + bit_size;
- }
-}
-
-static inline void ff_h263_encode_motion_vector(MpegEncContext * s, int x, int y, int f_code){
- if(s->flags2 & CODEC_FLAG2_NO_OUTPUT){
- skip_put_bits(&s->pb,
- h263_get_motion_length(s, x, f_code)
- +h263_get_motion_length(s, y, f_code));
- }else{
- ff_h263_encode_motion(s, x, f_code);
- ff_h263_encode_motion(s, y, f_code);
- }
-}
-
-static inline int get_p_cbp(MpegEncContext * s,
- DCTELEM block[6][64],
- int motion_x, int motion_y){
- int cbp, i;
-
- if(s->flags & CODEC_FLAG_CBP_RD){
- int best_cbpy_score= INT_MAX;
- int best_cbpc_score= INT_MAX;
- int cbpc = (-1), cbpy= (-1);
- const int offset= (s->mv_type==MV_TYPE_16X16 ? 0 : 16) + (s->dquant ? 8 : 0);
- const int lambda= s->lambda2 >> (FF_LAMBDA_SHIFT - 6);
-
- for(i=0; i<4; i++){
- int score= ff_h263_inter_MCBPC_bits[i + offset] * lambda;
- if(i&1) score += s->coded_score[5];
- if(i&2) score += s->coded_score[4];
-
- if(score < best_cbpc_score){
- best_cbpc_score= score;
- cbpc= i;
- }
- }
-
- for(i=0; i<16; i++){
- int score= ff_h263_cbpy_tab[i ^ 0xF][1] * lambda;
- if(i&1) score += s->coded_score[3];
- if(i&2) score += s->coded_score[2];
- if(i&4) score += s->coded_score[1];
- if(i&8) score += s->coded_score[0];
-
- if(score < best_cbpy_score){
- best_cbpy_score= score;
- cbpy= i;
- }
- }
- cbp= cbpc + 4*cbpy;
- if ((motion_x | motion_y | s->dquant) == 0 && s->mv_type==MV_TYPE_16X16){
- if(best_cbpy_score + best_cbpc_score + 2*lambda >= 0)
- cbp= 0;
- }
-
- for (i = 0; i < 6; i++) {
- if (s->block_last_index[i] >= 0 && ((cbp >> (5 - i))&1)==0 ){
- s->block_last_index[i]= -1;
- s->dsp.clear_block(s->block[i]);
- }
- }
- }else{
- cbp= 0;
- for (i = 0; i < 6; i++) {
- if (s->block_last_index[i] >= 0)
- cbp |= 1 << (5 - i);
- }
- }
- return cbp;
-}
-
-static inline int get_b_cbp(MpegEncContext * s, DCTELEM block[6][64],
- int motion_x, int motion_y, int mb_type){
- int cbp=0, i;
-
- if(s->flags & CODEC_FLAG_CBP_RD){
- int score=0;
- const int lambda= s->lambda2 >> (FF_LAMBDA_SHIFT - 6);
-
- for(i=0; i<6; i++){
- if(s->coded_score[i] < 0){
- score += s->coded_score[i];
- cbp |= 1 << (5 - i);
- }
- }
-
- if(cbp){
- int zero_score= -6;
- if ((motion_x | motion_y | s->dquant | mb_type) == 0){
- zero_score-= 4; //2*MV + mb_type + cbp bit
- }
-
- zero_score*= lambda;
- if(zero_score <= score){
- cbp=0;
- }
- }
-
- for (i = 0; i < 6; i++) {
- if (s->block_last_index[i] >= 0 && ((cbp >> (5 - i))&1)==0 ){
- s->block_last_index[i]= -1;
- s->dsp.clear_block(s->block[i]);
- }
- }
- }else{
- for (i = 0; i < 6; i++) {
- if (s->block_last_index[i] >= 0)
- cbp |= 1 << (5 - i);
- }
- }
- return cbp;
-}
-
-static inline void memsetw(short *tab, int val, int n)
-{
- int i;
- for(i=0;i<n;i++)
- tab[i] = val;
-}
-#endif
+++ /dev/null
-/*
- * H.263 parser
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_H263_PARSER_H
-#define AVCODEC_H263_PARSER_H
-
-#include "parser.h"
-
-int ff_h263_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
-
-#endif /* AVCODEC_H263_PARSER_H */
+++ /dev/null
-/*
- * copyright (c) 2000,2001 Fabrice Bellard
- * H263+ support
- * copyright (c) 2001 Juan J. Sierralta P
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.263 tables.
- */
-
-#ifndef AVCODEC_H263DATA_H
-#define AVCODEC_H263DATA_H
-
-#include <stdint.h>
-#include "mpegvideo.h"
-
-/* intra MCBPC, mb_type = (intra), then (intraq) */
-const uint8_t ff_h263_intra_MCBPC_code[9] = { 1, 1, 2, 3, 1, 1, 2, 3, 1 };
-const uint8_t ff_h263_intra_MCBPC_bits[9] = { 1, 3, 3, 3, 4, 6, 6, 6, 9 };
-
-/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
-/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
-const uint8_t ff_h263_inter_MCBPC_code[28] = {
- 1, 3, 2, 5,
- 3, 4, 3, 3,
- 3, 7, 6, 5,
- 4, 4, 3, 2,
- 2, 5, 4, 5,
- 1, 0, 0, 0, /* Stuffing */
- 2, 12, 14, 15,
-};
-const uint8_t ff_h263_inter_MCBPC_bits[28] = {
- 1, 4, 4, 6, /* inter */
- 5, 8, 8, 7, /* intra */
- 3, 7, 7, 9, /* interQ */
- 6, 9, 9, 9, /* intraQ */
- 3, 7, 7, 8, /* inter4 */
- 9, 0, 0, 0, /* Stuffing */
- 11, 13, 13, 13,/* inter4Q*/
-};
-
-const uint8_t h263_mbtype_b_tab[15][2] = {
- {1, 1},
- {3, 3},
- {1, 5},
- {4, 4},
- {5, 4},
- {6, 6},
- {2, 4},
- {3, 4},
- {7, 6},
- {4, 6},
- {5, 6},
- {1, 6},
- {1,10},
- {1, 7},
- {1, 8},
-};
-
-const uint8_t cbpc_b_tab[4][2] = {
-{0, 1},
-{2, 2},
-{7, 3},
-{6, 3},
-};
-
-const uint8_t ff_h263_cbpy_tab[16][2] =
-{
- {3,4}, {5,5}, {4,5}, {9,4}, {3,5}, {7,4}, {2,6}, {11,4},
- {2,5}, {3,6}, {5,4}, {10,4}, {4,4}, {8,4}, {6,4}, {3,2}
-};
-
-const uint8_t mvtab[33][2] =
-{
- {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
- {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10},
- {12,10}, {11,10}, {10,10}, {9,10}, {8,10}, {7,10}, {6,10}, {5,10},
- {4,10}, {7,11}, {6,11}, {5,11}, {4,11}, {3,11}, {2,11}, {3,12},
- {2,12}
-};
-
-/* third non intra table */
-const uint16_t inter_vlc[103][2] = {
-{ 0x2, 2 },{ 0xf, 4 },{ 0x15, 6 },{ 0x17, 7 },
-{ 0x1f, 8 },{ 0x25, 9 },{ 0x24, 9 },{ 0x21, 10 },
-{ 0x20, 10 },{ 0x7, 11 },{ 0x6, 11 },{ 0x20, 11 },
-{ 0x6, 3 },{ 0x14, 6 },{ 0x1e, 8 },{ 0xf, 10 },
-{ 0x21, 11 },{ 0x50, 12 },{ 0xe, 4 },{ 0x1d, 8 },
-{ 0xe, 10 },{ 0x51, 12 },{ 0xd, 5 },{ 0x23, 9 },
-{ 0xd, 10 },{ 0xc, 5 },{ 0x22, 9 },{ 0x52, 12 },
-{ 0xb, 5 },{ 0xc, 10 },{ 0x53, 12 },{ 0x13, 6 },
-{ 0xb, 10 },{ 0x54, 12 },{ 0x12, 6 },{ 0xa, 10 },
-{ 0x11, 6 },{ 0x9, 10 },{ 0x10, 6 },{ 0x8, 10 },
-{ 0x16, 7 },{ 0x55, 12 },{ 0x15, 7 },{ 0x14, 7 },
-{ 0x1c, 8 },{ 0x1b, 8 },{ 0x21, 9 },{ 0x20, 9 },
-{ 0x1f, 9 },{ 0x1e, 9 },{ 0x1d, 9 },{ 0x1c, 9 },
-{ 0x1b, 9 },{ 0x1a, 9 },{ 0x22, 11 },{ 0x23, 11 },
-{ 0x56, 12 },{ 0x57, 12 },{ 0x7, 4 },{ 0x19, 9 },
-{ 0x5, 11 },{ 0xf, 6 },{ 0x4, 11 },{ 0xe, 6 },
-{ 0xd, 6 },{ 0xc, 6 },{ 0x13, 7 },{ 0x12, 7 },
-{ 0x11, 7 },{ 0x10, 7 },{ 0x1a, 8 },{ 0x19, 8 },
-{ 0x18, 8 },{ 0x17, 8 },{ 0x16, 8 },{ 0x15, 8 },
-{ 0x14, 8 },{ 0x13, 8 },{ 0x18, 9 },{ 0x17, 9 },
-{ 0x16, 9 },{ 0x15, 9 },{ 0x14, 9 },{ 0x13, 9 },
-{ 0x12, 9 },{ 0x11, 9 },{ 0x7, 10 },{ 0x6, 10 },
-{ 0x5, 10 },{ 0x4, 10 },{ 0x24, 11 },{ 0x25, 11 },
-{ 0x26, 11 },{ 0x27, 11 },{ 0x58, 12 },{ 0x59, 12 },
-{ 0x5a, 12 },{ 0x5b, 12 },{ 0x5c, 12 },{ 0x5d, 12 },
-{ 0x5e, 12 },{ 0x5f, 12 },{ 0x3, 7 },
-};
-
-const int8_t inter_level[102] = {
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 1, 2, 3, 4,
- 5, 6, 1, 2, 3, 4, 1, 2,
- 3, 1, 2, 3, 1, 2, 3, 1,
- 2, 3, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 3, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1,
-};
-
-const int8_t inter_run[102] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 1, 1,
- 1, 1, 2, 2, 2, 2, 3, 3,
- 3, 4, 4, 4, 5, 5, 5, 6,
- 6, 6, 7, 7, 8, 8, 9, 9,
- 10, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 1, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40,
-};
-
-RLTable ff_h263_rl_inter = {
- 102,
- 58,
- inter_vlc,
- inter_run,
- inter_level,
-};
-
-static const uint16_t intra_vlc_aic[103][2] = {
-{ 0x2, 2 }, { 0x6, 3 }, { 0xe, 4 }, { 0xc, 5 },
-{ 0xd, 5 }, { 0x10, 6 }, { 0x11, 6 }, { 0x12, 6 },
-{ 0x16, 7 }, { 0x1b, 8 }, { 0x20, 9 }, { 0x21, 9 },
-{ 0x1a, 9 }, { 0x1b, 9 }, { 0x1c, 9 }, { 0x1d, 9 },
-{ 0x1e, 9 }, { 0x1f, 9 }, { 0x23, 11 }, { 0x22, 11 },
-{ 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 },
-{ 0x53, 12 }, { 0xf, 4 }, { 0x14, 6 }, { 0x14, 7 },
-{ 0x1e, 8 }, { 0xf, 10 }, { 0x21, 11 }, { 0x50, 12 },
-{ 0xb, 5 }, { 0x15, 7 }, { 0xe, 10 }, { 0x9, 10 },
-{ 0x15, 6 }, { 0x1d, 8 }, { 0xd, 10 }, { 0x51, 12 },
-{ 0x13, 6 }, { 0x23, 9 }, { 0x7, 11 }, { 0x17, 7 },
-{ 0x22, 9 }, { 0x52, 12 }, { 0x1c, 8 }, { 0xc, 10 },
-{ 0x1f, 8 }, { 0xb, 10 }, { 0x25, 9 }, { 0xa, 10 },
-{ 0x24, 9 }, { 0x6, 11 }, { 0x21, 10 }, { 0x20, 10 },
-{ 0x8, 10 }, { 0x20, 11 }, { 0x7, 4 }, { 0xc, 6 },
-{ 0x10, 7 }, { 0x13, 8 }, { 0x11, 9 }, { 0x12, 9 },
-{ 0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 },
-{ 0xf, 6 }, { 0x13, 9 }, { 0x5, 10 }, { 0x25, 11 },
-{ 0xe, 6 }, { 0x14, 9 }, { 0x24, 11 }, { 0xd, 6 },
-{ 0x6, 10 }, { 0x5e, 12 }, { 0x11, 7 }, { 0x7, 10 },
-{ 0x13, 7 }, { 0x5d, 12 }, { 0x12, 7 }, { 0x5c, 12 },
-{ 0x14, 8 }, { 0x5b, 12 }, { 0x15, 8 }, { 0x1a, 8 },
-{ 0x19, 8 }, { 0x18, 8 }, { 0x17, 8 }, { 0x16, 8 },
-{ 0x19, 9 }, { 0x15, 9 }, { 0x16, 9 }, { 0x18, 9 },
-{ 0x17, 9 }, { 0x4, 11 }, { 0x5, 11 }, { 0x58, 12 },
-{ 0x59, 12 }, { 0x5a, 12 }, { 0x3, 7 },
-};
-
-static const int8_t intra_run_aic[102] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 3, 3, 3, 3,
- 4, 4, 4, 5, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 11,
-12, 13, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 1, 1,
- 2, 2, 2, 3, 3, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 8, 9,
-10, 11, 12, 13, 14, 15, 16, 17,
-18, 19, 20, 21, 22, 23,
-};
-
-static const int8_t intra_level_aic[102] = {
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16,
-17, 18, 19, 20, 21, 22, 23, 24,
-25, 1, 2, 3, 4, 5, 6, 7,
- 1, 2, 3, 4, 1, 2, 3, 4,
- 1, 2, 3, 1, 2, 3, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 1,
- 1, 1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 1, 2, 3, 4,
- 1, 2, 3, 1, 2, 3, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1,
-};
-
-RLTable rl_intra_aic = {
- 102,
- 58,
- intra_vlc_aic,
- intra_run_aic,
- intra_level_aic,
-};
-
-const uint16_t h263_format[8][2] = {
- { 0, 0 },
- { 128, 96 },
- { 176, 144 },
- { 352, 288 },
- { 704, 576 },
- { 1408, 1152 },
-};
-
-const uint8_t ff_aic_dc_scale_table[32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 0, 2, 4, 6, 8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62
-};
-
-const uint8_t modified_quant_tab[2][32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-{
- 0, 3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9,10,11,12,13,14,15,16,17,18,18,19,20,21,22,23,24,25,26,27,28
-},{
- 0, 2, 3, 4, 5, 6, 7, 8, 9,10,11,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,31,31,26
-}
-};
-
-const uint8_t ff_h263_chroma_qscale_table[32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9,10,10,11,11,12,12,12,13,13,13,14,14,14,14,14,15,15,15,15,15
-};
-
-uint16_t ff_mba_max[6]={
- 47, 98, 395,1583,6335,9215
-};
-
-uint8_t ff_mba_length[7]={
- 6, 7, 9, 11, 13, 14, 14
-};
-
-const uint8_t ff_h263_loop_filter_strength[32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9,10,10,10,11,11,11,12,12,12
-};
-
-const AVRational ff_h263_pixel_aspect[16]={
- {0, 1},
- {1, 1},
- {12, 11},
- {10, 11},
- {16, 11},
- {40, 33},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
- {0, 1},
-};
-
-#endif /* AVCODEC_H263DATA_H */
+++ /dev/null
-/*
- * H.26L/H.264/AVC/JVT/14496-10/... encoder/decoder
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.264 / AVC / MPEG4 part10 codec.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264_H
-#define AVCODEC_H264_H
-
-#include "libavutil/intreadwrite.h"
-#include "dsputil.h"
-#include "cabac.h"
-#include "mpegvideo.h"
-#include "h264dsp.h"
-#include "h264pred.h"
-#include "rectangle.h"
-
-#define interlaced_dct interlaced_dct_is_a_bad_name
-#define mb_intra mb_intra_is_not_initialized_see_mb_type
-
-#define LUMA_DC_BLOCK_INDEX 25
-#define CHROMA_DC_BLOCK_INDEX 26
-
-#define CHROMA_DC_COEFF_TOKEN_VLC_BITS 8
-#define COEFF_TOKEN_VLC_BITS 8
-#define TOTAL_ZEROS_VLC_BITS 9
-#define CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3
-#define RUN_VLC_BITS 3
-#define RUN7_VLC_BITS 6
-
-#define MAX_SPS_COUNT 32
-#define MAX_PPS_COUNT 256
-
-#define MAX_MMCO_COUNT 66
-
-#define MAX_DELAYED_PIC_COUNT 16
-
-/* Compiling in interlaced support reduces the speed
- * of progressive decoding by about 2%. */
-#define ALLOW_INTERLACE
-
-#define ALLOW_NOCHROMA
-
-#define FMO 0
-
-/**
- * The maximum number of slices supported by the decoder.
- * must be a power of 2
- */
-#define MAX_SLICES 16
-
-#ifdef ALLOW_INTERLACE
-#define MB_MBAFF h->mb_mbaff
-#define MB_FIELD h->mb_field_decoding_flag
-#define FRAME_MBAFF h->mb_aff_frame
-#define FIELD_PICTURE (s->picture_structure != PICT_FRAME)
-#else
-#define MB_MBAFF 0
-#define MB_FIELD 0
-#define FRAME_MBAFF 0
-#define FIELD_PICTURE 0
-#undef IS_INTERLACED
-#define IS_INTERLACED(mb_type) 0
-#endif
-#define FIELD_OR_MBAFF_PICTURE (FRAME_MBAFF || FIELD_PICTURE)
-
-#ifdef ALLOW_NOCHROMA
-#define CHROMA h->sps.chroma_format_idc
-#else
-#define CHROMA 1
-#endif
-
-#ifndef CABAC
-#define CABAC h->pps.cabac
-#endif
-
-#define EXTENDED_SAR 255
-
-#define MB_TYPE_REF0 MB_TYPE_ACPRED //dirty but it fits in 16 bit
-#define MB_TYPE_8x8DCT 0x01000000
-#define IS_REF0(a) ((a) & MB_TYPE_REF0)
-#define IS_8x8DCT(a) ((a) & MB_TYPE_8x8DCT)
-
-/**
- * Value of Picture.reference when Picture is not a reference picture, but
- * is held for delayed output.
- */
-#define DELAYED_PIC_REF 4
-
-
-/* NAL unit types */
-enum {
- NAL_SLICE=1,
- NAL_DPA,
- NAL_DPB,
- NAL_DPC,
- NAL_IDR_SLICE,
- NAL_SEI,
- NAL_SPS,
- NAL_PPS,
- NAL_AUD,
- NAL_END_SEQUENCE,
- NAL_END_STREAM,
- NAL_FILLER_DATA,
- NAL_SPS_EXT,
- NAL_AUXILIARY_SLICE=19
-};
-
-/**
- * SEI message types
- */
-typedef enum {
- SEI_BUFFERING_PERIOD = 0, ///< buffering period (H.264, D.1.1)
- SEI_TYPE_PIC_TIMING = 1, ///< picture timing
- SEI_TYPE_USER_DATA_UNREGISTERED = 5, ///< unregistered user data
- SEI_TYPE_RECOVERY_POINT = 6 ///< recovery point (frame # to decoder sync)
-} SEI_Type;
-
-/**
- * pic_struct in picture timing SEI message
- */
-typedef enum {
- SEI_PIC_STRUCT_FRAME = 0, ///< 0: %frame
- SEI_PIC_STRUCT_TOP_FIELD = 1, ///< 1: top field
- SEI_PIC_STRUCT_BOTTOM_FIELD = 2, ///< 2: bottom field
- SEI_PIC_STRUCT_TOP_BOTTOM = 3, ///< 3: top field, bottom field, in that order
- SEI_PIC_STRUCT_BOTTOM_TOP = 4, ///< 4: bottom field, top field, in that order
- SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, ///< 5: top field, bottom field, top field repeated, in that order
- SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, ///< 6: bottom field, top field, bottom field repeated, in that order
- SEI_PIC_STRUCT_FRAME_DOUBLING = 7, ///< 7: %frame doubling
- SEI_PIC_STRUCT_FRAME_TRIPLING = 8 ///< 8: %frame tripling
-} SEI_PicStructType;
-
-/**
- * Sequence parameter set
- */
-typedef struct SPS{
-
- int profile_idc;
- int level_idc;
- int chroma_format_idc;
- int transform_bypass; ///< qpprime_y_zero_transform_bypass_flag
- int log2_max_frame_num; ///< log2_max_frame_num_minus4 + 4
- int poc_type; ///< pic_order_cnt_type
- int log2_max_poc_lsb; ///< log2_max_pic_order_cnt_lsb_minus4
- int delta_pic_order_always_zero_flag;
- int offset_for_non_ref_pic;
- int offset_for_top_to_bottom_field;
- int poc_cycle_length; ///< num_ref_frames_in_pic_order_cnt_cycle
- int ref_frame_count; ///< num_ref_frames
- int gaps_in_frame_num_allowed_flag;
- int mb_width; ///< pic_width_in_mbs_minus1 + 1
- int mb_height; ///< pic_height_in_map_units_minus1 + 1
- int frame_mbs_only_flag;
- int mb_aff; ///<mb_adaptive_frame_field_flag
- int direct_8x8_inference_flag;
- int crop; ///< frame_cropping_flag
- unsigned int crop_left; ///< frame_cropping_rect_left_offset
- unsigned int crop_right; ///< frame_cropping_rect_right_offset
- unsigned int crop_top; ///< frame_cropping_rect_top_offset
- unsigned int crop_bottom; ///< frame_cropping_rect_bottom_offset
- int vui_parameters_present_flag;
- AVRational sar;
- int video_signal_type_present_flag;
- int full_range;
- int colour_description_present_flag;
- enum AVColorPrimaries color_primaries;
- enum AVColorTransferCharacteristic color_trc;
- enum AVColorSpace colorspace;
- int timing_info_present_flag;
- uint32_t num_units_in_tick;
- uint32_t time_scale;
- int fixed_frame_rate_flag;
- short offset_for_ref_frame[256]; //FIXME dyn aloc?
- int bitstream_restriction_flag;
- int num_reorder_frames;
- int scaling_matrix_present;
- uint8_t scaling_matrix4[6][16];
- uint8_t scaling_matrix8[2][64];
- int nal_hrd_parameters_present_flag;
- int vcl_hrd_parameters_present_flag;
- int pic_struct_present_flag;
- int time_offset_length;
- int cpb_cnt; ///< See H.264 E.1.2
- int initial_cpb_removal_delay_length; ///< initial_cpb_removal_delay_length_minus1 +1
- int cpb_removal_delay_length; ///< cpb_removal_delay_length_minus1 + 1
- int dpb_output_delay_length; ///< dpb_output_delay_length_minus1 + 1
- int bit_depth_luma; ///< bit_depth_luma_minus8 + 8
- int bit_depth_chroma; ///< bit_depth_chroma_minus8 + 8
- int residual_color_transform_flag; ///< residual_colour_transform_flag
-}SPS;
-
-/**
- * Picture parameter set
- */
-typedef struct PPS{
- unsigned int sps_id;
- int cabac; ///< entropy_coding_mode_flag
- int pic_order_present; ///< pic_order_present_flag
- int slice_group_count; ///< num_slice_groups_minus1 + 1
- int mb_slice_group_map_type;
- unsigned int ref_count[2]; ///< num_ref_idx_l0/1_active_minus1 + 1
- int weighted_pred; ///< weighted_pred_flag
- int weighted_bipred_idc;
- int init_qp; ///< pic_init_qp_minus26 + 26
- int init_qs; ///< pic_init_qs_minus26 + 26
- int chroma_qp_index_offset[2];
- int deblocking_filter_parameters_present; ///< deblocking_filter_parameters_present_flag
- int constrained_intra_pred; ///< constrained_intra_pred_flag
- int redundant_pic_cnt_present; ///< redundant_pic_cnt_present_flag
- int transform_8x8_mode; ///< transform_8x8_mode_flag
- uint8_t scaling_matrix4[6][16];
- uint8_t scaling_matrix8[2][64];
- uint8_t chroma_qp_table[2][64]; ///< pre-scaled (with chroma_qp_index_offset) version of qp_table
- int chroma_qp_diff;
-}PPS;
-
-/**
- * Memory management control operation opcode.
- */
-typedef enum MMCOOpcode{
- MMCO_END=0,
- MMCO_SHORT2UNUSED,
- MMCO_LONG2UNUSED,
- MMCO_SHORT2LONG,
- MMCO_SET_MAX_LONG,
- MMCO_RESET,
- MMCO_LONG,
-} MMCOOpcode;
-
-/**
- * Memory management control operation.
- */
-typedef struct MMCO{
- MMCOOpcode opcode;
- int short_pic_num; ///< pic_num without wrapping (pic_num & max_pic_num)
- int long_arg; ///< index, pic_num, or num long refs depending on opcode
-} MMCO;
-
-/**
- * H264Context
- */
-typedef struct H264Context{
- MpegEncContext s;
- H264DSPContext h264dsp;
- int chroma_qp[2]; //QPc
-
- int qp_thresh; ///< QP threshold to skip loopfilter
-
- int prev_mb_skipped;
- int next_mb_skipped;
-
- //prediction stuff
- int chroma_pred_mode;
- int intra16x16_pred_mode;
-
- int topleft_mb_xy;
- int top_mb_xy;
- int topright_mb_xy;
- int left_mb_xy[2];
-
- int topleft_type;
- int top_type;
- int topright_type;
- int left_type[2];
-
- const uint8_t * left_block;
- int topleft_partition;
-
- int8_t intra4x4_pred_mode_cache[5*8];
- int8_t (*intra4x4_pred_mode);
- H264PredContext hpc;
- unsigned int topleft_samples_available;
- unsigned int top_samples_available;
- unsigned int topright_samples_available;
- unsigned int left_samples_available;
- uint8_t (*top_borders[2])[16+2*8];
-
- /**
- * non zero coeff count cache.
- * is 64 if not available.
- */
- DECLARE_ALIGNED(8, uint8_t, non_zero_count_cache)[6*8];
-
- /*
- .UU.YYYY
- .UU.YYYY
- .vv.YYYY
- .VV.YYYY
- */
- uint8_t (*non_zero_count)[32];
-
- /**
- * Motion vector cache.
- */
- DECLARE_ALIGNED(16, int16_t, mv_cache)[2][5*8][2];
- DECLARE_ALIGNED(8, int8_t, ref_cache)[2][5*8];
-#define LIST_NOT_USED -1 //FIXME rename?
-#define PART_NOT_AVAILABLE -2
-
- /**
- * is 1 if the specific list MV&references are set to 0,0,-2.
- */
- int mv_cache_clean[2];
-
- /**
- * number of neighbors (top and/or left) that used 8x8 dct
- */
- int neighbor_transform_size;
-
- /**
- * block_offset[ 0..23] for frame macroblocks
- * block_offset[24..47] for field macroblocks
- */
- int block_offset[2*(16+8)];
-
- uint32_t *mb2b_xy; //FIXME are these 4 a good idea?
- uint32_t *mb2br_xy;
- int b_stride; //FIXME use s->b4_stride
-
- int mb_linesize; ///< may be equal to s->linesize or s->linesize*2, for mbaff
- int mb_uvlinesize;
-
- int emu_edge_width;
- int emu_edge_height;
-
- SPS sps; ///< current sps
-
- /**
- * current pps
- */
- PPS pps; //FIXME move to Picture perhaps? (->no) do we need that?
-
- uint32_t dequant4_buffer[6][52][16]; //FIXME should these be moved down?
- uint32_t dequant8_buffer[2][52][64];
- uint32_t (*dequant4_coeff[6])[16];
- uint32_t (*dequant8_coeff[2])[64];
-
- int slice_num;
- uint16_t *slice_table; ///< slice_table_base + 2*mb_stride + 1
- int slice_type;
- int slice_type_nos; ///< S free slice type (SI/SP are remapped to I/P)
- int slice_type_fixed;
-
- //interlacing specific flags
- int mb_aff_frame;
- int mb_field_decoding_flag;
- int mb_mbaff; ///< mb_aff_frame && mb_field_decoding_flag
-
- DECLARE_ALIGNED(8, uint16_t, sub_mb_type)[4];
-
- //Weighted pred stuff
- int use_weight;
- int use_weight_chroma;
- int luma_log2_weight_denom;
- int chroma_log2_weight_denom;
- //The following 2 can be changed to int8_t but that causes 10cpu cycles speedloss
- int luma_weight[48][2][2];
- int chroma_weight[48][2][2][2];
- int implicit_weight[48][48][2];
-
- int direct_spatial_mv_pred;
- int col_parity;
- int col_fieldoff;
- int dist_scale_factor[16];
- int dist_scale_factor_field[2][32];
- int map_col_to_list0[2][16+32];
- int map_col_to_list0_field[2][2][16+32];
-
- /**
- * num_ref_idx_l0/1_active_minus1 + 1
- */
- unsigned int ref_count[2]; ///< counts frames or fields, depending on current mb mode
- unsigned int list_count;
- uint8_t *list_counts; ///< Array of list_count per MB specifying the slice type
- Picture ref_list[2][48]; /**< 0..15: frame refs, 16..47: mbaff field refs.
- Reordered version of default_ref_list
- according to picture reordering in slice header */
- int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1
-
- //data partitioning
- GetBitContext intra_gb;
- GetBitContext inter_gb;
- GetBitContext *intra_gb_ptr;
- GetBitContext *inter_gb_ptr;
-
- DECLARE_ALIGNED(16, DCTELEM, mb)[16*24];
- DCTELEM mb_padding[256]; ///< as mb is addressed by scantable[i] and scantable is uint8_t we can either check that i is not too large or ensure that there is some unused stuff after mb
-
- /**
- * Cabac
- */
- CABACContext cabac;
- uint8_t cabac_state[460];
-
- /* 0x100 -> non null luma_dc, 0x80/0x40 -> non null chroma_dc (cb/cr), 0x?0 -> chroma_cbp(0,1,2), 0x0? luma_cbp */
- uint16_t *cbp_table;
- int cbp;
- int top_cbp;
- int left_cbp;
- /* chroma_pred_mode for i4x4 or i16x16, else 0 */
- uint8_t *chroma_pred_mode_table;
- int last_qscale_diff;
- uint8_t (*mvd_table[2])[2];
- DECLARE_ALIGNED(16, uint8_t, mvd_cache)[2][5*8][2];
- uint8_t *direct_table;
- uint8_t direct_cache[5*8];
-
- uint8_t zigzag_scan[16];
- uint8_t zigzag_scan8x8[64];
- uint8_t zigzag_scan8x8_cavlc[64];
- uint8_t field_scan[16];
- uint8_t field_scan8x8[64];
- uint8_t field_scan8x8_cavlc[64];
- const uint8_t *zigzag_scan_q0;
- const uint8_t *zigzag_scan8x8_q0;
- const uint8_t *zigzag_scan8x8_cavlc_q0;
- const uint8_t *field_scan_q0;
- const uint8_t *field_scan8x8_q0;
- const uint8_t *field_scan8x8_cavlc_q0;
-
- int x264_build;
-
- int mb_xy;
-
- int is_complex;
-
- //deblock
- int deblocking_filter; ///< disable_deblocking_filter_idc with 1<->0
- int slice_alpha_c0_offset;
- int slice_beta_offset;
-
-//=============================================================
- //Things below are not used in the MB or more inner code
-
- int nal_ref_idc;
- int nal_unit_type;
- uint8_t *rbsp_buffer[2];
- unsigned int rbsp_buffer_size[2];
-
- /**
- * Used to parse AVC variant of h264
- */
- int is_avc; ///< this flag is != 0 if codec is avc1
- int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4)
-
- SPS *sps_buffers[MAX_SPS_COUNT];
- PPS *pps_buffers[MAX_PPS_COUNT];
-
- int dequant_coeff_pps; ///< reinit tables when pps changes
-
- uint16_t *slice_table_base;
-
-
- //POC stuff
- int poc_lsb;
- int poc_msb;
- int delta_poc_bottom;
- int delta_poc[2];
- int frame_num;
- int prev_poc_msb; ///< poc_msb of the last reference pic for POC type 0
- int prev_poc_lsb; ///< poc_lsb of the last reference pic for POC type 0
- int frame_num_offset; ///< for POC type 2
- int prev_frame_num_offset; ///< for POC type 2
- int prev_frame_num; ///< frame_num of the last pic for POC type 1/2
-
- /**
- * frame_num for frames or 2*frame_num+1 for field pics.
- */
- int curr_pic_num;
-
- /**
- * max_frame_num or 2*max_frame_num for field pics.
- */
- int max_pic_num;
-
- int redundant_pic_count;
-
- Picture *short_ref[32];
- Picture *long_ref[32];
- Picture default_ref_list[2][32]; ///< base reference list for all slices of a coded picture
- Picture *delayed_pic[MAX_DELAYED_PIC_COUNT+2]; //FIXME size?
- int outputed_poc;
-
- /**
- * memory management control operations buffer.
- */
- MMCO mmco[MAX_MMCO_COUNT];
- int mmco_index;
-
- int long_ref_count; ///< number of actual long term references
- int short_ref_count; ///< number of actual short term references
-
- int cabac_init_idc;
-
- /**
- * @defgroup multithreading Members for slice based multithreading
- * @{
- */
- struct H264Context *thread_context[MAX_THREADS];
-
- /**
- * current slice number, used to initalize slice_num of each thread/context
- */
- int current_slice;
-
- /**
- * Max number of threads / contexts.
- * This is equal to AVCodecContext.thread_count unless
- * multithreaded decoding is impossible, in which case it is
- * reduced to 1.
- */
- int max_contexts;
-
- /**
- * 1 if the single thread fallback warning has already been
- * displayed, 0 otherwise.
- */
- int single_decode_warning;
-
- int last_slice_type;
- /** @} */
-
- /**
- * pic_struct in picture timing SEI message
- */
- SEI_PicStructType sei_pic_struct;
-
- /**
- * Complement sei_pic_struct
- * SEI_PIC_STRUCT_TOP_BOTTOM and SEI_PIC_STRUCT_BOTTOM_TOP indicate interlaced frames.
- * However, soft telecined frames may have these values.
- * This is used in an attempt to flag soft telecine progressive.
- */
- int prev_interlaced_frame;
-
- /**
- * Bit set of clock types for fields/frames in picture timing SEI message.
- * For each found ct_type, appropriate bit is set (e.g., bit 1 for
- * interlaced).
- */
- int sei_ct_type;
-
- /**
- * dpb_output_delay in picture timing SEI message, see H.264 C.2.2
- */
- int sei_dpb_output_delay;
-
- /**
- * cpb_removal_delay in picture timing SEI message, see H.264 C.1.2
- */
- int sei_cpb_removal_delay;
-
- /**
- * recovery_frame_cnt from SEI message
- *
- * Set to -1 if no recovery point SEI message found or to number of frames
- * before playback synchronizes. Frames having recovery point are key
- * frames.
- */
- int sei_recovery_frame_cnt;
-
- int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag
- int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag
-
- // Timestamp stuff
- int sei_buffering_period_present; ///< Buffering period SEI flag
- int initial_cpb_removal_delay[32]; ///< Initial timestamps for CPBs
-
- //SVQ3 specific fields
- int halfpel_flag;
- int thirdpel_flag;
- int unknown_svq3_flag;
- int next_slice_index;
- uint32_t svq3_watermark_key;
-}H264Context;
-
-
-extern const uint8_t ff_h264_chroma_qp[52];
-
-void ff_svq3_luma_dc_dequant_idct_c(DCTELEM *block, int qp);
-
-void ff_svq3_add_idct_c(uint8_t *dst, DCTELEM *block, int stride, int qp, int dc);
-
-/**
- * Decode SEI
- */
-int ff_h264_decode_sei(H264Context *h);
-
-/**
- * Decode SPS
- */
-int ff_h264_decode_seq_parameter_set(H264Context *h);
-
-/**
- * Decode PPS
- */
-int ff_h264_decode_picture_parameter_set(H264Context *h, int bit_length);
-
-/**
- * Decodes a network abstraction layer unit.
- * @param consumed is the number of bytes used as input
- * @param length is the length of the array
- * @param dst_length is the number of decoded bytes FIXME here or a decode rbsp tailing?
- * @return decoded bytes, might be src+1 if no escapes
- */
-const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src, int *dst_length, int *consumed, int length);
-
-/**
- * identifies the exact end of the bitstream
- * @return the length of the trailing, or 0 if damaged
- */
-int ff_h264_decode_rbsp_trailing(H264Context *h, const uint8_t *src);
-
-/**
- * frees any data that may have been allocated in the H264 context like SPS, PPS etc.
- */
-av_cold void ff_h264_free_context(H264Context *h);
-
-/**
- * reconstructs bitstream slice_type.
- */
-int ff_h264_get_slice_type(const H264Context *h);
-
-/**
- * allocates tables.
- * needs width/height
- */
-int ff_h264_alloc_tables(H264Context *h);
-
-/**
- * fills the default_ref_list.
- */
-int ff_h264_fill_default_ref_list(H264Context *h);
-
-int ff_h264_decode_ref_pic_list_reordering(H264Context *h);
-void ff_h264_fill_mbaff_ref_list(H264Context *h);
-void ff_h264_remove_all_refs(H264Context *h);
-
-/**
- * Executes the reference picture marking (memory management control operations).
- */
-int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count);
-
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb);
-
-
-/**
- * checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks.
- */
-int ff_h264_check_intra4x4_pred_mode(H264Context *h);
-
-/**
- * checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks.
- */
-int ff_h264_check_intra_pred_mode(H264Context *h, int mode);
-
-void ff_h264_write_back_intra_pred_mode(H264Context *h);
-void ff_h264_hl_decode_mb(H264Context *h);
-int ff_h264_frame_start(H264Context *h);
-av_cold int ff_h264_decode_init(AVCodecContext *avctx);
-av_cold int ff_h264_decode_end(AVCodecContext *avctx);
-av_cold void ff_h264_decode_init_vlc(void);
-
-/**
- * decodes a macroblock
- * @return 0 if OK, AC_ERROR / DC_ERROR / MV_ERROR if an error is noticed
- */
-int ff_h264_decode_mb_cavlc(H264Context *h);
-
-/**
- * decodes a CABAC coded macroblock
- * @return 0 if OK, AC_ERROR / DC_ERROR / MV_ERROR if an error is noticed
- */
-int ff_h264_decode_mb_cabac(H264Context *h);
-
-void ff_h264_init_cabac_states(H264Context *h);
-
-void ff_h264_direct_dist_scale_factor(H264Context * const h);
-void ff_h264_direct_ref_list_init(H264Context * const h);
-void ff_h264_pred_direct_motion(H264Context * const h, int *mb_type);
-
-void ff_h264_filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize);
-void ff_h264_filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize);
-
-/**
- * Reset SEI values at the beginning of the frame.
- *
- * @param h H.264 context.
- */
-void ff_h264_reset_sei(H264Context *h);
-
-
-/*
-o-o o-o
- / / /
-o-o o-o
- ,---'
-o-o o-o
- / / /
-o-o o-o
-*/
-//This table must be here because scan8[constant] must be known at compiletime
-static const uint8_t scan8[16 + 2*4]={
- 4+1*8, 5+1*8, 4+2*8, 5+2*8,
- 6+1*8, 7+1*8, 6+2*8, 7+2*8,
- 4+3*8, 5+3*8, 4+4*8, 5+4*8,
- 6+3*8, 7+3*8, 6+4*8, 7+4*8,
- 1+1*8, 2+1*8,
- 1+2*8, 2+2*8,
- 1+4*8, 2+4*8,
- 1+5*8, 2+5*8,
-};
-
-static av_always_inline uint32_t pack16to32(int a, int b){
-#if HAVE_BIGENDIAN
- return (b&0xFFFF) + (a<<16);
-#else
- return (a&0xFFFF) + (b<<16);
-#endif
-}
-
-static av_always_inline uint16_t pack8to16(int a, int b){
-#if HAVE_BIGENDIAN
- return (b&0xFF) + (a<<8);
-#else
- return (a&0xFF) + (b<<8);
-#endif
-}
-
-/**
- * gets the chroma qp.
- */
-static inline int get_chroma_qp(H264Context *h, int t, int qscale){
- return h->pps.chroma_qp_table[t][qscale];
-}
-
-static inline void pred_pskip_motion(H264Context * const h, int * const mx, int * const my);
-
-static void fill_decode_neighbors(H264Context *h, int mb_type){
- MpegEncContext * const s = &h->s;
- const int mb_xy= h->mb_xy;
- int topleft_xy, top_xy, topright_xy, left_xy[2];
- static const uint8_t left_block_options[4][16]={
- {0,1,2,3,7,10,8,11,7+0*8, 7+1*8, 7+2*8, 7+3*8, 2+0*8, 2+3*8, 2+1*8, 2+2*8},
- {2,2,3,3,8,11,8,11,7+2*8, 7+2*8, 7+3*8, 7+3*8, 2+1*8, 2+2*8, 2+1*8, 2+2*8},
- {0,0,1,1,7,10,7,10,7+0*8, 7+0*8, 7+1*8, 7+1*8, 2+0*8, 2+3*8, 2+0*8, 2+3*8},
- {0,2,0,2,7,10,7,10,7+0*8, 7+2*8, 7+0*8, 7+2*8, 2+0*8, 2+3*8, 2+0*8, 2+3*8}
- };
-
- h->topleft_partition= -1;
-
- top_xy = mb_xy - (s->mb_stride << MB_FIELD);
-
- /* Wow, what a mess, why didn't they simplify the interlacing & intra
- * stuff, I can't imagine that these complex rules are worth it. */
-
- topleft_xy = top_xy - 1;
- topright_xy= top_xy + 1;
- left_xy[1] = left_xy[0] = mb_xy-1;
- h->left_block = left_block_options[0];
- if(FRAME_MBAFF){
- const int left_mb_field_flag = IS_INTERLACED(s->current_picture.mb_type[mb_xy-1]);
- const int curr_mb_field_flag = IS_INTERLACED(mb_type);
- if(s->mb_y&1){
- if (left_mb_field_flag != curr_mb_field_flag) {
- left_xy[1] = left_xy[0] = mb_xy - s->mb_stride - 1;
- if (curr_mb_field_flag) {
- left_xy[1] += s->mb_stride;
- h->left_block = left_block_options[3];
- } else {
- topleft_xy += s->mb_stride;
- // take top left mv from the middle of the mb, as opposed to all other modes which use the bottom right partition
- h->topleft_partition = 0;
- h->left_block = left_block_options[1];
- }
- }
- }else{
- if(curr_mb_field_flag){
- topleft_xy += s->mb_stride & (((s->current_picture.mb_type[top_xy - 1]>>7)&1)-1);
- topright_xy += s->mb_stride & (((s->current_picture.mb_type[top_xy + 1]>>7)&1)-1);
- top_xy += s->mb_stride & (((s->current_picture.mb_type[top_xy ]>>7)&1)-1);
- }
- if (left_mb_field_flag != curr_mb_field_flag) {
- if (curr_mb_field_flag) {
- left_xy[1] += s->mb_stride;
- h->left_block = left_block_options[3];
- } else {
- h->left_block = left_block_options[2];
- }
- }
- }
- }
-
- h->topleft_mb_xy = topleft_xy;
- h->top_mb_xy = top_xy;
- h->topright_mb_xy= topright_xy;
- h->left_mb_xy[0] = left_xy[0];
- h->left_mb_xy[1] = left_xy[1];
- //FIXME do we need all in the context?
-
- h->topleft_type = s->current_picture.mb_type[topleft_xy] ;
- h->top_type = s->current_picture.mb_type[top_xy] ;
- h->topright_type= s->current_picture.mb_type[topright_xy];
- h->left_type[0] = s->current_picture.mb_type[left_xy[0]] ;
- h->left_type[1] = s->current_picture.mb_type[left_xy[1]] ;
-
- if(FMO){
- if(h->slice_table[topleft_xy ] != h->slice_num) h->topleft_type = 0;
- if(h->slice_table[top_xy ] != h->slice_num) h->top_type = 0;
- if(h->slice_table[left_xy[0] ] != h->slice_num) h->left_type[0] = h->left_type[1] = 0;
- }else{
- if(h->slice_table[topleft_xy ] != h->slice_num){
- h->topleft_type = 0;
- if(h->slice_table[top_xy ] != h->slice_num) h->top_type = 0;
- if(h->slice_table[left_xy[0] ] != h->slice_num) h->left_type[0] = h->left_type[1] = 0;
- }
- }
- if(h->slice_table[topright_xy] != h->slice_num) h->topright_type= 0;
-}
-
-static void fill_decode_caches(H264Context *h, int mb_type){
- MpegEncContext * const s = &h->s;
- int topleft_xy, top_xy, topright_xy, left_xy[2];
- int topleft_type, top_type, topright_type, left_type[2];
- const uint8_t * left_block= h->left_block;
- int i;
-
- topleft_xy = h->topleft_mb_xy ;
- top_xy = h->top_mb_xy ;
- topright_xy = h->topright_mb_xy;
- left_xy[0] = h->left_mb_xy[0] ;
- left_xy[1] = h->left_mb_xy[1] ;
- topleft_type = h->topleft_type ;
- top_type = h->top_type ;
- topright_type= h->topright_type ;
- left_type[0] = h->left_type[0] ;
- left_type[1] = h->left_type[1] ;
-
- if(!IS_SKIP(mb_type)){
- if(IS_INTRA(mb_type)){
- int type_mask= h->pps.constrained_intra_pred ? IS_INTRA(-1) : -1;
- h->topleft_samples_available=
- h->top_samples_available=
- h->left_samples_available= 0xFFFF;
- h->topright_samples_available= 0xEEEA;
-
- if(!(top_type & type_mask)){
- h->topleft_samples_available= 0xB3FF;
- h->top_samples_available= 0x33FF;
- h->topright_samples_available= 0x26EA;
- }
- if(IS_INTERLACED(mb_type) != IS_INTERLACED(left_type[0])){
- if(IS_INTERLACED(mb_type)){
- if(!(left_type[0] & type_mask)){
- h->topleft_samples_available&= 0xDFFF;
- h->left_samples_available&= 0x5FFF;
- }
- if(!(left_type[1] & type_mask)){
- h->topleft_samples_available&= 0xFF5F;
- h->left_samples_available&= 0xFF5F;
- }
- }else{
- int left_typei = s->current_picture.mb_type[left_xy[0] + s->mb_stride];
-
- assert(left_xy[0] == left_xy[1]);
- if(!((left_typei & type_mask) && (left_type[0] & type_mask))){
- h->topleft_samples_available&= 0xDF5F;
- h->left_samples_available&= 0x5F5F;
- }
- }
- }else{
- if(!(left_type[0] & type_mask)){
- h->topleft_samples_available&= 0xDF5F;
- h->left_samples_available&= 0x5F5F;
- }
- }
-
- if(!(topleft_type & type_mask))
- h->topleft_samples_available&= 0x7FFF;
-
- if(!(topright_type & type_mask))
- h->topright_samples_available&= 0xFBFF;
-
- if(IS_INTRA4x4(mb_type)){
- if(IS_INTRA4x4(top_type)){
- AV_COPY32(h->intra4x4_pred_mode_cache+4+8*0, h->intra4x4_pred_mode + h->mb2br_xy[top_xy]);
- }else{
- h->intra4x4_pred_mode_cache[4+8*0]=
- h->intra4x4_pred_mode_cache[5+8*0]=
- h->intra4x4_pred_mode_cache[6+8*0]=
- h->intra4x4_pred_mode_cache[7+8*0]= 2 - 3*!(top_type & type_mask);
- }
- for(i=0; i<2; i++){
- if(IS_INTRA4x4(left_type[i])){
- int8_t *mode= h->intra4x4_pred_mode + h->mb2br_xy[left_xy[i]];
- h->intra4x4_pred_mode_cache[3+8*1 + 2*8*i]= mode[6-left_block[0+2*i]];
- h->intra4x4_pred_mode_cache[3+8*2 + 2*8*i]= mode[6-left_block[1+2*i]];
- }else{
- h->intra4x4_pred_mode_cache[3+8*1 + 2*8*i]=
- h->intra4x4_pred_mode_cache[3+8*2 + 2*8*i]= 2 - 3*!(left_type[i] & type_mask);
- }
- }
- }
- }
-
-
-/*
-0 . T T. T T T T
-1 L . .L . . . .
-2 L . .L . . . .
-3 . T TL . . . .
-4 L . .L . . . .
-5 L . .. . . . .
-*/
-//FIXME constraint_intra_pred & partitioning & nnz (let us hope this is just a typo in the spec)
- if(top_type){
- AV_COPY32(&h->non_zero_count_cache[4+8*0], &h->non_zero_count[top_xy][4+3*8]);
- h->non_zero_count_cache[1+8*0]= h->non_zero_count[top_xy][1+1*8];
- h->non_zero_count_cache[2+8*0]= h->non_zero_count[top_xy][2+1*8];
-
- h->non_zero_count_cache[1+8*3]= h->non_zero_count[top_xy][1+2*8];
- h->non_zero_count_cache[2+8*3]= h->non_zero_count[top_xy][2+2*8];
- }else {
- h->non_zero_count_cache[1+8*0]=
- h->non_zero_count_cache[2+8*0]=
-
- h->non_zero_count_cache[1+8*3]=
- h->non_zero_count_cache[2+8*3]=
- AV_WN32A(&h->non_zero_count_cache[4+8*0], CABAC && !IS_INTRA(mb_type) ? 0 : 0x40404040);
- }
-
- for (i=0; i<2; i++) {
- if(left_type[i]){
- h->non_zero_count_cache[3+8*1 + 2*8*i]= h->non_zero_count[left_xy[i]][left_block[8+0+2*i]];
- h->non_zero_count_cache[3+8*2 + 2*8*i]= h->non_zero_count[left_xy[i]][left_block[8+1+2*i]];
- h->non_zero_count_cache[0+8*1 + 8*i]= h->non_zero_count[left_xy[i]][left_block[8+4+2*i]];
- h->non_zero_count_cache[0+8*4 + 8*i]= h->non_zero_count[left_xy[i]][left_block[8+5+2*i]];
- }else{
- h->non_zero_count_cache[3+8*1 + 2*8*i]=
- h->non_zero_count_cache[3+8*2 + 2*8*i]=
- h->non_zero_count_cache[0+8*1 + 8*i]=
- h->non_zero_count_cache[0+8*4 + 8*i]= CABAC && !IS_INTRA(mb_type) ? 0 : 64;
- }
- }
-
- if( CABAC ) {
- // top_cbp
- if(top_type) {
- h->top_cbp = h->cbp_table[top_xy];
- } else {
- h->top_cbp = IS_INTRA(mb_type) ? 0x1CF : 0x00F;
- }
- // left_cbp
- if (left_type[0]) {
- h->left_cbp = (h->cbp_table[left_xy[0]] & 0x1f0)
- | ((h->cbp_table[left_xy[0]]>>(left_block[0]&(~1)))&2)
- | (((h->cbp_table[left_xy[1]]>>(left_block[2]&(~1)))&2) << 2);
- } else {
- h->left_cbp = IS_INTRA(mb_type) ? 0x1CF : 0x00F;
- }
- }
- }
-
-#if 1
- if(IS_INTER(mb_type) || (IS_DIRECT(mb_type) && h->direct_spatial_mv_pred)){
- int list;
- for(list=0; list<h->list_count; list++){
- if(!USES_LIST(mb_type, list)){
- /*if(!h->mv_cache_clean[list]){
- memset(h->mv_cache [list], 0, 8*5*2*sizeof(int16_t)); //FIXME clean only input? clean at all?
- memset(h->ref_cache[list], PART_NOT_AVAILABLE, 8*5*sizeof(int8_t));
- h->mv_cache_clean[list]= 1;
- }*/
- continue;
- }
- assert(!(IS_DIRECT(mb_type) && !h->direct_spatial_mv_pred));
-
- h->mv_cache_clean[list]= 0;
-
- if(USES_LIST(top_type, list)){
- const int b_xy= h->mb2b_xy[top_xy] + 3*h->b_stride;
- AV_COPY128(h->mv_cache[list][scan8[0] + 0 - 1*8], s->current_picture.motion_val[list][b_xy + 0]);
- h->ref_cache[list][scan8[0] + 0 - 1*8]=
- h->ref_cache[list][scan8[0] + 1 - 1*8]= s->current_picture.ref_index[list][4*top_xy + 2];
- h->ref_cache[list][scan8[0] + 2 - 1*8]=
- h->ref_cache[list][scan8[0] + 3 - 1*8]= s->current_picture.ref_index[list][4*top_xy + 3];
- }else{
- AV_ZERO128(h->mv_cache[list][scan8[0] + 0 - 1*8]);
- AV_WN32A(&h->ref_cache[list][scan8[0] + 0 - 1*8], ((top_type ? LIST_NOT_USED : PART_NOT_AVAILABLE)&0xFF)*0x01010101);
- }
-
- if(mb_type & (MB_TYPE_16x8|MB_TYPE_8x8)){
- for(i=0; i<2; i++){
- int cache_idx = scan8[0] - 1 + i*2*8;
- if(USES_LIST(left_type[i], list)){
- const int b_xy= h->mb2b_xy[left_xy[i]] + 3;
- const int b8_xy= 4*left_xy[i] + 1;
- AV_COPY32(h->mv_cache[list][cache_idx ], s->current_picture.motion_val[list][b_xy + h->b_stride*left_block[0+i*2]]);
- AV_COPY32(h->mv_cache[list][cache_idx+8], s->current_picture.motion_val[list][b_xy + h->b_stride*left_block[1+i*2]]);
- h->ref_cache[list][cache_idx ]= s->current_picture.ref_index[list][b8_xy + (left_block[0+i*2]&~1)];
- h->ref_cache[list][cache_idx+8]= s->current_picture.ref_index[list][b8_xy + (left_block[1+i*2]&~1)];
- }else{
- AV_ZERO32(h->mv_cache [list][cache_idx ]);
- AV_ZERO32(h->mv_cache [list][cache_idx+8]);
- h->ref_cache[list][cache_idx ]=
- h->ref_cache[list][cache_idx+8]= (left_type[i]) ? LIST_NOT_USED : PART_NOT_AVAILABLE;
- }
- }
- }else{
- if(USES_LIST(left_type[0], list)){
- const int b_xy= h->mb2b_xy[left_xy[0]] + 3;
- const int b8_xy= 4*left_xy[0] + 1;
- AV_COPY32(h->mv_cache[list][scan8[0] - 1], s->current_picture.motion_val[list][b_xy + h->b_stride*left_block[0]]);
- h->ref_cache[list][scan8[0] - 1]= s->current_picture.ref_index[list][b8_xy + (left_block[0]&~1)];
- }else{
- AV_ZERO32(h->mv_cache [list][scan8[0] - 1]);
- h->ref_cache[list][scan8[0] - 1]= left_type[0] ? LIST_NOT_USED : PART_NOT_AVAILABLE;
- }
- }
-
- if(USES_LIST(topright_type, list)){
- const int b_xy= h->mb2b_xy[topright_xy] + 3*h->b_stride;
- AV_COPY32(h->mv_cache[list][scan8[0] + 4 - 1*8], s->current_picture.motion_val[list][b_xy]);
- h->ref_cache[list][scan8[0] + 4 - 1*8]= s->current_picture.ref_index[list][4*topright_xy + 2];
- }else{
- AV_ZERO32(h->mv_cache [list][scan8[0] + 4 - 1*8]);
- h->ref_cache[list][scan8[0] + 4 - 1*8]= topright_type ? LIST_NOT_USED : PART_NOT_AVAILABLE;
- }
- if(h->ref_cache[list][scan8[0] + 4 - 1*8] < 0){
- if(USES_LIST(topleft_type, list)){
- const int b_xy = h->mb2b_xy [topleft_xy] + 3 + h->b_stride + (h->topleft_partition & 2*h->b_stride);
- const int b8_xy= 4*topleft_xy + 1 + (h->topleft_partition & 2);
- AV_COPY32(h->mv_cache[list][scan8[0] - 1 - 1*8], s->current_picture.motion_val[list][b_xy]);
- h->ref_cache[list][scan8[0] - 1 - 1*8]= s->current_picture.ref_index[list][b8_xy];
- }else{
- AV_ZERO32(h->mv_cache[list][scan8[0] - 1 - 1*8]);
- h->ref_cache[list][scan8[0] - 1 - 1*8]= topleft_type ? LIST_NOT_USED : PART_NOT_AVAILABLE;
- }
- }
-
- if((mb_type&(MB_TYPE_SKIP|MB_TYPE_DIRECT2)) && !FRAME_MBAFF)
- continue;
-
- if(!(mb_type&(MB_TYPE_SKIP|MB_TYPE_DIRECT2))) {
- h->ref_cache[list][scan8[4 ]] =
- h->ref_cache[list][scan8[12]] = PART_NOT_AVAILABLE;
- AV_ZERO32(h->mv_cache [list][scan8[4 ]]);
- AV_ZERO32(h->mv_cache [list][scan8[12]]);
-
- if( CABAC ) {
- /* XXX beurk, Load mvd */
- if(USES_LIST(top_type, list)){
- const int b_xy= h->mb2br_xy[top_xy];
- AV_COPY64(h->mvd_cache[list][scan8[0] + 0 - 1*8], h->mvd_table[list][b_xy + 0]);
- }else{
- AV_ZERO64(h->mvd_cache[list][scan8[0] + 0 - 1*8]);
- }
- if(USES_LIST(left_type[0], list)){
- const int b_xy= h->mb2br_xy[left_xy[0]] + 6;
- AV_COPY16(h->mvd_cache[list][scan8[0] - 1 + 0*8], h->mvd_table[list][b_xy - left_block[0]]);
- AV_COPY16(h->mvd_cache[list][scan8[0] - 1 + 1*8], h->mvd_table[list][b_xy - left_block[1]]);
- }else{
- AV_ZERO16(h->mvd_cache [list][scan8[0] - 1 + 0*8]);
- AV_ZERO16(h->mvd_cache [list][scan8[0] - 1 + 1*8]);
- }
- if(USES_LIST(left_type[1], list)){
- const int b_xy= h->mb2br_xy[left_xy[1]] + 6;
- AV_COPY16(h->mvd_cache[list][scan8[0] - 1 + 2*8], h->mvd_table[list][b_xy - left_block[2]]);
- AV_COPY16(h->mvd_cache[list][scan8[0] - 1 + 3*8], h->mvd_table[list][b_xy - left_block[3]]);
- }else{
- AV_ZERO16(h->mvd_cache [list][scan8[0] - 1 + 2*8]);
- AV_ZERO16(h->mvd_cache [list][scan8[0] - 1 + 3*8]);
- }
- AV_ZERO16(h->mvd_cache [list][scan8[4 ]]);
- AV_ZERO16(h->mvd_cache [list][scan8[12]]);
- if(h->slice_type_nos == FF_B_TYPE){
- fill_rectangle(&h->direct_cache[scan8[0]], 4, 4, 8, MB_TYPE_16x16>>1, 1);
-
- if(IS_DIRECT(top_type)){
- AV_WN32A(&h->direct_cache[scan8[0] - 1*8], 0x01010101u*(MB_TYPE_DIRECT2>>1));
- }else if(IS_8X8(top_type)){
- int b8_xy = 4*top_xy;
- h->direct_cache[scan8[0] + 0 - 1*8]= h->direct_table[b8_xy + 2];
- h->direct_cache[scan8[0] + 2 - 1*8]= h->direct_table[b8_xy + 3];
- }else{
- AV_WN32A(&h->direct_cache[scan8[0] - 1*8], 0x01010101*(MB_TYPE_16x16>>1));
- }
-
- if(IS_DIRECT(left_type[0]))
- h->direct_cache[scan8[0] - 1 + 0*8]= MB_TYPE_DIRECT2>>1;
- else if(IS_8X8(left_type[0]))
- h->direct_cache[scan8[0] - 1 + 0*8]= h->direct_table[4*left_xy[0] + 1 + (left_block[0]&~1)];
- else
- h->direct_cache[scan8[0] - 1 + 0*8]= MB_TYPE_16x16>>1;
-
- if(IS_DIRECT(left_type[1]))
- h->direct_cache[scan8[0] - 1 + 2*8]= MB_TYPE_DIRECT2>>1;
- else if(IS_8X8(left_type[1]))
- h->direct_cache[scan8[0] - 1 + 2*8]= h->direct_table[4*left_xy[1] + 1 + (left_block[2]&~1)];
- else
- h->direct_cache[scan8[0] - 1 + 2*8]= MB_TYPE_16x16>>1;
- }
- }
- }
- if(FRAME_MBAFF){
-#define MAP_MVS\
- MAP_F2F(scan8[0] - 1 - 1*8, topleft_type)\
- MAP_F2F(scan8[0] + 0 - 1*8, top_type)\
- MAP_F2F(scan8[0] + 1 - 1*8, top_type)\
- MAP_F2F(scan8[0] + 2 - 1*8, top_type)\
- MAP_F2F(scan8[0] + 3 - 1*8, top_type)\
- MAP_F2F(scan8[0] + 4 - 1*8, topright_type)\
- MAP_F2F(scan8[0] - 1 + 0*8, left_type[0])\
- MAP_F2F(scan8[0] - 1 + 1*8, left_type[0])\
- MAP_F2F(scan8[0] - 1 + 2*8, left_type[1])\
- MAP_F2F(scan8[0] - 1 + 3*8, left_type[1])
- if(MB_FIELD){
-#define MAP_F2F(idx, mb_type)\
- if(!IS_INTERLACED(mb_type) && h->ref_cache[list][idx] >= 0){\
- h->ref_cache[list][idx] <<= 1;\
- h->mv_cache[list][idx][1] /= 2;\
- h->mvd_cache[list][idx][1] >>=1;\
- }
- MAP_MVS
-#undef MAP_F2F
- }else{
-#define MAP_F2F(idx, mb_type)\
- if(IS_INTERLACED(mb_type) && h->ref_cache[list][idx] >= 0){\
- h->ref_cache[list][idx] >>= 1;\
- h->mv_cache[list][idx][1] <<= 1;\
- h->mvd_cache[list][idx][1] <<= 1;\
- }
- MAP_MVS
-#undef MAP_F2F
- }
- }
- }
- }
-#endif
-
- h->neighbor_transform_size= !!IS_8x8DCT(top_type) + !!IS_8x8DCT(left_type[0]);
-}
-
-/**
- * gets the predicted intra4x4 prediction mode.
- */
-static inline int pred_intra_mode(H264Context *h, int n){
- const int index8= scan8[n];
- const int left= h->intra4x4_pred_mode_cache[index8 - 1];
- const int top = h->intra4x4_pred_mode_cache[index8 - 8];
- const int min= FFMIN(left, top);
-
- tprintf(h->s.avctx, "mode:%d %d min:%d\n", left ,top, min);
-
- if(min<0) return DC_PRED;
- else return min;
-}
-
-static inline void write_back_non_zero_count(H264Context *h){
- const int mb_xy= h->mb_xy;
-
- AV_COPY64(&h->non_zero_count[mb_xy][ 0], &h->non_zero_count_cache[0+8*1]);
- AV_COPY64(&h->non_zero_count[mb_xy][ 8], &h->non_zero_count_cache[0+8*2]);
- AV_COPY32(&h->non_zero_count[mb_xy][16], &h->non_zero_count_cache[0+8*5]);
- AV_COPY32(&h->non_zero_count[mb_xy][20], &h->non_zero_count_cache[4+8*3]);
- AV_COPY64(&h->non_zero_count[mb_xy][24], &h->non_zero_count_cache[0+8*4]);
-}
-
-static inline void write_back_motion(H264Context *h, int mb_type){
- MpegEncContext * const s = &h->s;
- const int b_xy = 4*s->mb_x + 4*s->mb_y*h->b_stride; //try mb2b(8)_xy
- const int b8_xy= 4*h->mb_xy;
- int list;
-
- if(!USES_LIST(mb_type, 0))
- fill_rectangle(&s->current_picture.ref_index[0][b8_xy], 2, 2, 2, (uint8_t)LIST_NOT_USED, 1);
-
- for(list=0; list<h->list_count; list++){
- int y, b_stride;
- int16_t (*mv_dst)[2];
- int16_t (*mv_src)[2];
-
- if(!USES_LIST(mb_type, list))
- continue;
-
- b_stride = h->b_stride;
- mv_dst = &s->current_picture.motion_val[list][b_xy];
- mv_src = &h->mv_cache[list][scan8[0]];
- for(y=0; y<4; y++){
- AV_COPY128(mv_dst + y*b_stride, mv_src + 8*y);
- }
- if( CABAC ) {
- uint8_t (*mvd_dst)[2] = &h->mvd_table[list][FMO ? 8*h->mb_xy : h->mb2br_xy[h->mb_xy]];
- uint8_t (*mvd_src)[2] = &h->mvd_cache[list][scan8[0]];
- if(IS_SKIP(mb_type))
- AV_ZERO128(mvd_dst);
- else{
- AV_COPY64(mvd_dst, mvd_src + 8*3);
- AV_COPY16(mvd_dst + 3 + 3, mvd_src + 3 + 8*0);
- AV_COPY16(mvd_dst + 3 + 2, mvd_src + 3 + 8*1);
- AV_COPY16(mvd_dst + 3 + 1, mvd_src + 3 + 8*2);
- }
- }
-
- {
- int8_t *ref_index = &s->current_picture.ref_index[list][b8_xy];
- ref_index[0+0*2]= h->ref_cache[list][scan8[0]];
- ref_index[1+0*2]= h->ref_cache[list][scan8[4]];
- ref_index[0+1*2]= h->ref_cache[list][scan8[8]];
- ref_index[1+1*2]= h->ref_cache[list][scan8[12]];
- }
- }
-
- if(h->slice_type_nos == FF_B_TYPE && CABAC){
- if(IS_8X8(mb_type)){
- uint8_t *direct_table = &h->direct_table[4*h->mb_xy];
- direct_table[1] = h->sub_mb_type[1]>>1;
- direct_table[2] = h->sub_mb_type[2]>>1;
- direct_table[3] = h->sub_mb_type[3]>>1;
- }
- }
-}
-
-static inline int get_dct8x8_allowed(H264Context *h){
- if(h->sps.direct_8x8_inference_flag)
- return !(AV_RN64A(h->sub_mb_type) & ((MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8 )*0x0001000100010001ULL));
- else
- return !(AV_RN64A(h->sub_mb_type) & ((MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8|MB_TYPE_DIRECT2)*0x0001000100010001ULL));
-}
-
-/**
- * decodes a P_SKIP or B_SKIP macroblock
- */
-static void decode_mb_skip(H264Context *h){
- MpegEncContext * const s = &h->s;
- const int mb_xy= h->mb_xy;
- int mb_type=0;
-
- memset(h->non_zero_count[mb_xy], 0, 32);
- memset(h->non_zero_count_cache + 8, 0, 8*5); //FIXME ugly, remove pfui
-
- if(MB_FIELD)
- mb_type|= MB_TYPE_INTERLACED;
-
- if( h->slice_type_nos == FF_B_TYPE )
- {
- // just for fill_caches. pred_direct_motion will set the real mb_type
- mb_type|= MB_TYPE_L0L1|MB_TYPE_DIRECT2|MB_TYPE_SKIP;
- if(h->direct_spatial_mv_pred){
- fill_decode_neighbors(h, mb_type);
- fill_decode_caches(h, mb_type); //FIXME check what is needed and what not ...
- }
- ff_h264_pred_direct_motion(h, &mb_type);
- mb_type|= MB_TYPE_SKIP;
- }
- else
- {
- int mx, my;
- mb_type|= MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_SKIP;
-
- fill_decode_neighbors(h, mb_type);
- fill_decode_caches(h, mb_type); //FIXME check what is needed and what not ...
- pred_pskip_motion(h, &mx, &my);
- fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, 0, 1);
- fill_rectangle( h->mv_cache[0][scan8[0]], 4, 4, 8, pack16to32(mx,my), 4);
- }
-
- write_back_motion(h, mb_type);
- s->current_picture.mb_type[mb_xy]= mb_type;
- s->current_picture.qscale_table[mb_xy]= s->qscale;
- h->slice_table[ mb_xy ]= h->slice_num;
- h->prev_mb_skipped= 1;
-}
-
-#include "h264_mvpred.h" //For pred_pskip_motion()
-
-#endif /* AVCODEC_H264_H */
+++ /dev/null
-/*
- * H.26L/H.264/AVC/JVT/14496-10/... motion vector predicion
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.264 / AVC / MPEG4 part10 motion vector predicion.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264_MVPRED_H
-#define AVCODEC_H264_MVPRED_H
-
-#include "internal.h"
-#include "avcodec.h"
-#include "h264.h"
-
-//#undef NDEBUG
-#include <assert.h>
-
-static inline int fetch_diagonal_mv(H264Context *h, const int16_t **C, int i, int list, int part_width){
- const int topright_ref= h->ref_cache[list][ i - 8 + part_width ];
- MpegEncContext *s = &h->s;
-
- /* there is no consistent mapping of mvs to neighboring locations that will
- * make mbaff happy, so we can't move all this logic to fill_caches */
- if(FRAME_MBAFF){
-
-#define SET_DIAG_MV(MV_OP, REF_OP, XY, Y4)\
- const int xy = XY, y4 = Y4;\
- const int mb_type = mb_types[xy+(y4>>2)*s->mb_stride];\
- if(!USES_LIST(mb_type,list))\
- return LIST_NOT_USED;\
- mv = s->current_picture_ptr->motion_val[list][h->mb2b_xy[xy]+3 + y4*h->b_stride];\
- h->mv_cache[list][scan8[0]-2][0] = mv[0];\
- h->mv_cache[list][scan8[0]-2][1] = mv[1] MV_OP;\
- return s->current_picture_ptr->ref_index[list][4*xy+1 + (y4&~1)] REF_OP;
-
- if(topright_ref == PART_NOT_AVAILABLE
- && i >= scan8[0]+8 && (i&7)==4
- && h->ref_cache[list][scan8[0]-1] != PART_NOT_AVAILABLE){
- const uint32_t *mb_types = s->current_picture_ptr->mb_type;
- const int16_t *mv;
- AV_ZERO32(h->mv_cache[list][scan8[0]-2]);
- *C = h->mv_cache[list][scan8[0]-2];
-
- if(!MB_FIELD
- && IS_INTERLACED(h->left_type[0])){
- SET_DIAG_MV(*2, >>1, h->left_mb_xy[0]+s->mb_stride, (s->mb_y&1)*2+(i>>5));
- assert(h->left_mb_xy[0] == h->left_mb_xy[1]);
- }
- if(MB_FIELD
- && !IS_INTERLACED(h->left_type[0])){
- // left shift will turn LIST_NOT_USED into PART_NOT_AVAILABLE, but that's OK.
- SET_DIAG_MV(/2, <<1, h->left_mb_xy[i>=36], ((i>>2))&3);
- }
- }
-#undef SET_DIAG_MV
- }
-
- if(topright_ref != PART_NOT_AVAILABLE){
- *C= h->mv_cache[list][ i - 8 + part_width ];
- return topright_ref;
- }else{
- tprintf(s->avctx, "topright MV not available\n");
-
- *C= h->mv_cache[list][ i - 8 - 1 ];
- return h->ref_cache[list][ i - 8 - 1 ];
- }
-}
-
-/**
- * gets the predicted MV.
- * @param n the block index
- * @param part_width the width of the partition (4, 8,16) -> (1, 2, 4)
- * @param mx the x component of the predicted motion vector
- * @param my the y component of the predicted motion vector
- */
-static inline void pred_motion(H264Context * const h, int n, int part_width, int list, int ref, int * const mx, int * const my){
- const int index8= scan8[n];
- const int top_ref= h->ref_cache[list][ index8 - 8 ];
- const int left_ref= h->ref_cache[list][ index8 - 1 ];
- const int16_t * const A= h->mv_cache[list][ index8 - 1 ];
- const int16_t * const B= h->mv_cache[list][ index8 - 8 ];
- const int16_t * C;
- int diagonal_ref, match_count;
-
- assert(part_width==1 || part_width==2 || part_width==4);
-
-/* mv_cache
- B . . A T T T T
- U . . L . . , .
- U . . L . . . .
- U . . L . . , .
- . . . L . . . .
-*/
-
- diagonal_ref= fetch_diagonal_mv(h, &C, index8, list, part_width);
- match_count= (diagonal_ref==ref) + (top_ref==ref) + (left_ref==ref);
- tprintf(h->s.avctx, "pred_motion match_count=%d\n", match_count);
- if(match_count > 1){ //most common
- *mx= mid_pred(A[0], B[0], C[0]);
- *my= mid_pred(A[1], B[1], C[1]);
- }else if(match_count==1){
- if(left_ref==ref){
- *mx= A[0];
- *my= A[1];
- }else if(top_ref==ref){
- *mx= B[0];
- *my= B[1];
- }else{
- *mx= C[0];
- *my= C[1];
- }
- }else{
- if(top_ref == PART_NOT_AVAILABLE && diagonal_ref == PART_NOT_AVAILABLE && left_ref != PART_NOT_AVAILABLE){
- *mx= A[0];
- *my= A[1];
- }else{
- *mx= mid_pred(A[0], B[0], C[0]);
- *my= mid_pred(A[1], B[1], C[1]);
- }
- }
-
- tprintf(h->s.avctx, "pred_motion (%2d %2d %2d) (%2d %2d %2d) (%2d %2d %2d) -> (%2d %2d %2d) at %2d %2d %d list %d\n", top_ref, B[0], B[1], diagonal_ref, C[0], C[1], left_ref, A[0], A[1], ref, *mx, *my, h->s.mb_x, h->s.mb_y, n, list);
-}
-
-/**
- * gets the directionally predicted 16x8 MV.
- * @param n the block index
- * @param mx the x component of the predicted motion vector
- * @param my the y component of the predicted motion vector
- */
-static inline void pred_16x8_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){
- if(n==0){
- const int top_ref= h->ref_cache[list][ scan8[0] - 8 ];
- const int16_t * const B= h->mv_cache[list][ scan8[0] - 8 ];
-
- tprintf(h->s.avctx, "pred_16x8: (%2d %2d %2d) at %2d %2d %d list %d\n", top_ref, B[0], B[1], h->s.mb_x, h->s.mb_y, n, list);
-
- if(top_ref == ref){
- *mx= B[0];
- *my= B[1];
- return;
- }
- }else{
- const int left_ref= h->ref_cache[list][ scan8[8] - 1 ];
- const int16_t * const A= h->mv_cache[list][ scan8[8] - 1 ];
-
- tprintf(h->s.avctx, "pred_16x8: (%2d %2d %2d) at %2d %2d %d list %d\n", left_ref, A[0], A[1], h->s.mb_x, h->s.mb_y, n, list);
-
- if(left_ref == ref){
- *mx= A[0];
- *my= A[1];
- return;
- }
- }
-
- //RARE
- pred_motion(h, n, 4, list, ref, mx, my);
-}
-
-/**
- * gets the directionally predicted 8x16 MV.
- * @param n the block index
- * @param mx the x component of the predicted motion vector
- * @param my the y component of the predicted motion vector
- */
-static inline void pred_8x16_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){
- if(n==0){
- const int left_ref= h->ref_cache[list][ scan8[0] - 1 ];
- const int16_t * const A= h->mv_cache[list][ scan8[0] - 1 ];
-
- tprintf(h->s.avctx, "pred_8x16: (%2d %2d %2d) at %2d %2d %d list %d\n", left_ref, A[0], A[1], h->s.mb_x, h->s.mb_y, n, list);
-
- if(left_ref == ref){
- *mx= A[0];
- *my= A[1];
- return;
- }
- }else{
- const int16_t * C;
- int diagonal_ref;
-
- diagonal_ref= fetch_diagonal_mv(h, &C, scan8[4], list, 2);
-
- tprintf(h->s.avctx, "pred_8x16: (%2d %2d %2d) at %2d %2d %d list %d\n", diagonal_ref, C[0], C[1], h->s.mb_x, h->s.mb_y, n, list);
-
- if(diagonal_ref == ref){
- *mx= C[0];
- *my= C[1];
- return;
- }
- }
-
- //RARE
- pred_motion(h, n, 2, list, ref, mx, my);
-}
-
-static inline void pred_pskip_motion(H264Context * const h, int * const mx, int * const my){
- const int top_ref = h->ref_cache[0][ scan8[0] - 8 ];
- const int left_ref= h->ref_cache[0][ scan8[0] - 1 ];
-
- tprintf(h->s.avctx, "pred_pskip: (%d) (%d) at %2d %2d\n", top_ref, left_ref, h->s.mb_x, h->s.mb_y);
-
- if(top_ref == PART_NOT_AVAILABLE || left_ref == PART_NOT_AVAILABLE
- || !( top_ref | AV_RN32A(h->mv_cache[0][ scan8[0] - 8 ]))
- || !(left_ref | AV_RN32A(h->mv_cache[0][ scan8[0] - 1 ]))){
-
- *mx = *my = 0;
- return;
- }
-
- pred_motion(h, 0, 4, 0, 0, mx, my);
-
- return;
-}
-
-#endif /* AVCODEC_H264_MVPRED_H */
+++ /dev/null
-/*
- * H.26L/H.264/AVC/JVT/14496-10/... parser
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.264 / AVC / MPEG4 part10 parser.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264_PARSER_H
-#define AVCODEC_H264_PARSER_H
-
-#include "h264.h"
-
-/**
- * finds the end of the current frame in the bitstream.
- * @return the position of the first byte of the next frame, or -1
- */
-int ff_h264_find_frame_end(H264Context *h, const uint8_t *buf, int buf_size);
-
-#endif /* AVCODEC_H264_PARSER_H */
+++ /dev/null
-/*
- * H26L/H264/AVC/JVT/14496-10/... encoder/decoder
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief
- * H264 / AVC / MPEG4 part10 codec data table
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264DATA_H
-#define AVCODEC_H264DATA_H
-
-#include <stdint.h>
-#include "libavutil/rational.h"
-#include "mpegvideo.h"
-#include "h264.h"
-
-
-static const uint8_t golomb_to_pict_type[5]=
-{FF_P_TYPE, FF_B_TYPE, FF_I_TYPE, FF_SP_TYPE, FF_SI_TYPE};
-
-static const uint8_t golomb_to_intra4x4_cbp[48]={
- 47, 31, 15, 0, 23, 27, 29, 30, 7, 11, 13, 14, 39, 43, 45, 46,
- 16, 3, 5, 10, 12, 19, 21, 26, 28, 35, 37, 42, 44, 1, 2, 4,
- 8, 17, 18, 20, 24, 6, 9, 22, 25, 32, 33, 34, 36, 40, 38, 41
-};
-
-static const uint8_t golomb_to_inter_cbp[48]={
- 0, 16, 1, 2, 4, 8, 32, 3, 5, 10, 12, 15, 47, 7, 11, 13,
- 14, 6, 9, 31, 35, 37, 42, 44, 33, 34, 36, 40, 39, 43, 45, 46,
- 17, 18, 20, 24, 19, 21, 26, 28, 23, 27, 29, 30, 22, 25, 38, 41
-};
-
-static const uint8_t zigzag_scan[16]={
- 0+0*4, 1+0*4, 0+1*4, 0+2*4,
- 1+1*4, 2+0*4, 3+0*4, 2+1*4,
- 1+2*4, 0+3*4, 1+3*4, 2+2*4,
- 3+1*4, 3+2*4, 2+3*4, 3+3*4,
-};
-
-static const uint8_t field_scan[16]={
- 0+0*4, 0+1*4, 1+0*4, 0+2*4,
- 0+3*4, 1+1*4, 1+2*4, 1+3*4,
- 2+0*4, 2+1*4, 2+2*4, 2+3*4,
- 3+0*4, 3+1*4, 3+2*4, 3+3*4,
-};
-
-static const uint8_t luma_dc_zigzag_scan[16]={
- 0*16 + 0*64, 1*16 + 0*64, 2*16 + 0*64, 0*16 + 2*64,
- 3*16 + 0*64, 0*16 + 1*64, 1*16 + 1*64, 2*16 + 1*64,
- 1*16 + 2*64, 2*16 + 2*64, 3*16 + 2*64, 0*16 + 3*64,
- 3*16 + 1*64, 1*16 + 3*64, 2*16 + 3*64, 3*16 + 3*64,
-};
-
-static const uint8_t luma_dc_field_scan[16]={
- 0*16 + 0*64, 2*16 + 0*64, 1*16 + 0*64, 0*16 + 2*64,
- 2*16 + 2*64, 3*16 + 0*64, 1*16 + 2*64, 3*16 + 2*64,
- 0*16 + 1*64, 2*16 + 1*64, 0*16 + 3*64, 2*16 + 3*64,
- 1*16 + 1*64, 3*16 + 1*64, 1*16 + 3*64, 3*16 + 3*64,
-};
-
-static const uint8_t chroma_dc_scan[4]={
- (0+0*2)*16, (1+0*2)*16,
- (0+1*2)*16, (1+1*2)*16, //FIXME
-};
-
-// zigzag_scan8x8_cavlc[i] = zigzag_scan8x8[(i/4) + 16*(i%4)]
-static const uint8_t zigzag_scan8x8_cavlc[64]={
- 0+0*8, 1+1*8, 1+2*8, 2+2*8,
- 4+1*8, 0+5*8, 3+3*8, 7+0*8,
- 3+4*8, 1+7*8, 5+3*8, 6+3*8,
- 2+7*8, 6+4*8, 5+6*8, 7+5*8,
- 1+0*8, 2+0*8, 0+3*8, 3+1*8,
- 3+2*8, 0+6*8, 4+2*8, 6+1*8,
- 2+5*8, 2+6*8, 6+2*8, 5+4*8,
- 3+7*8, 7+3*8, 4+7*8, 7+6*8,
- 0+1*8, 3+0*8, 0+4*8, 4+0*8,
- 2+3*8, 1+5*8, 5+1*8, 5+2*8,
- 1+6*8, 3+5*8, 7+1*8, 4+5*8,
- 4+6*8, 7+4*8, 5+7*8, 6+7*8,
- 0+2*8, 2+1*8, 1+3*8, 5+0*8,
- 1+4*8, 2+4*8, 6+0*8, 4+3*8,
- 0+7*8, 4+4*8, 7+2*8, 3+6*8,
- 5+5*8, 6+5*8, 6+6*8, 7+7*8,
-};
-
-static const uint8_t field_scan8x8[64]={
- 0+0*8, 0+1*8, 0+2*8, 1+0*8,
- 1+1*8, 0+3*8, 0+4*8, 1+2*8,
- 2+0*8, 1+3*8, 0+5*8, 0+6*8,
- 0+7*8, 1+4*8, 2+1*8, 3+0*8,
- 2+2*8, 1+5*8, 1+6*8, 1+7*8,
- 2+3*8, 3+1*8, 4+0*8, 3+2*8,
- 2+4*8, 2+5*8, 2+6*8, 2+7*8,
- 3+3*8, 4+1*8, 5+0*8, 4+2*8,
- 3+4*8, 3+5*8, 3+6*8, 3+7*8,
- 4+3*8, 5+1*8, 6+0*8, 5+2*8,
- 4+4*8, 4+5*8, 4+6*8, 4+7*8,
- 5+3*8, 6+1*8, 6+2*8, 5+4*8,
- 5+5*8, 5+6*8, 5+7*8, 6+3*8,
- 7+0*8, 7+1*8, 6+4*8, 6+5*8,
- 6+6*8, 6+7*8, 7+2*8, 7+3*8,
- 7+4*8, 7+5*8, 7+6*8, 7+7*8,
-};
-
-static const uint8_t field_scan8x8_cavlc[64]={
- 0+0*8, 1+1*8, 2+0*8, 0+7*8,
- 2+2*8, 2+3*8, 2+4*8, 3+3*8,
- 3+4*8, 4+3*8, 4+4*8, 5+3*8,
- 5+5*8, 7+0*8, 6+6*8, 7+4*8,
- 0+1*8, 0+3*8, 1+3*8, 1+4*8,
- 1+5*8, 3+1*8, 2+5*8, 4+1*8,
- 3+5*8, 5+1*8, 4+5*8, 6+1*8,
- 5+6*8, 7+1*8, 6+7*8, 7+5*8,
- 0+2*8, 0+4*8, 0+5*8, 2+1*8,
- 1+6*8, 4+0*8, 2+6*8, 5+0*8,
- 3+6*8, 6+0*8, 4+6*8, 6+2*8,
- 5+7*8, 6+4*8, 7+2*8, 7+6*8,
- 1+0*8, 1+2*8, 0+6*8, 3+0*8,
- 1+7*8, 3+2*8, 2+7*8, 4+2*8,
- 3+7*8, 5+2*8, 4+7*8, 5+4*8,
- 6+3*8, 6+5*8, 7+3*8, 7+7*8,
-};
-
-typedef struct IMbInfo{
- uint16_t type;
- uint8_t pred_mode;
- uint8_t cbp;
-} IMbInfo;
-
-static const IMbInfo i_mb_type_info[26]={
-{MB_TYPE_INTRA4x4 , -1, -1},
-{MB_TYPE_INTRA16x16, 2, 0},
-{MB_TYPE_INTRA16x16, 1, 0},
-{MB_TYPE_INTRA16x16, 0, 0},
-{MB_TYPE_INTRA16x16, 3, 0},
-{MB_TYPE_INTRA16x16, 2, 16},
-{MB_TYPE_INTRA16x16, 1, 16},
-{MB_TYPE_INTRA16x16, 0, 16},
-{MB_TYPE_INTRA16x16, 3, 16},
-{MB_TYPE_INTRA16x16, 2, 32},
-{MB_TYPE_INTRA16x16, 1, 32},
-{MB_TYPE_INTRA16x16, 0, 32},
-{MB_TYPE_INTRA16x16, 3, 32},
-{MB_TYPE_INTRA16x16, 2, 15+0},
-{MB_TYPE_INTRA16x16, 1, 15+0},
-{MB_TYPE_INTRA16x16, 0, 15+0},
-{MB_TYPE_INTRA16x16, 3, 15+0},
-{MB_TYPE_INTRA16x16, 2, 15+16},
-{MB_TYPE_INTRA16x16, 1, 15+16},
-{MB_TYPE_INTRA16x16, 0, 15+16},
-{MB_TYPE_INTRA16x16, 3, 15+16},
-{MB_TYPE_INTRA16x16, 2, 15+32},
-{MB_TYPE_INTRA16x16, 1, 15+32},
-{MB_TYPE_INTRA16x16, 0, 15+32},
-{MB_TYPE_INTRA16x16, 3, 15+32},
-{MB_TYPE_INTRA_PCM , -1, -1},
-};
-
-typedef struct PMbInfo{
- uint16_t type;
- uint8_t partition_count;
-} PMbInfo;
-
-static const PMbInfo p_mb_type_info[5]={
-{MB_TYPE_16x16|MB_TYPE_P0L0 , 1},
-{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2},
-{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2},
-{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 4},
-{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_REF0, 4},
-};
-
-static const PMbInfo p_sub_mb_type_info[4]={
-{MB_TYPE_16x16|MB_TYPE_P0L0 , 1},
-{MB_TYPE_16x8 |MB_TYPE_P0L0 , 2},
-{MB_TYPE_8x16 |MB_TYPE_P0L0 , 2},
-{MB_TYPE_8x8 |MB_TYPE_P0L0 , 4},
-};
-
-static const PMbInfo b_mb_type_info[23]={
-{MB_TYPE_DIRECT2|MB_TYPE_L0L1 , 1, },
-{MB_TYPE_16x16|MB_TYPE_P0L0 , 1, },
-{MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, },
-{MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, },
-};
-
-static const PMbInfo b_sub_mb_type_info[13]={
-{MB_TYPE_DIRECT2 , 1, },
-{MB_TYPE_16x16|MB_TYPE_P0L0 , 1, },
-{MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, },
-{MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, },
-{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, },
-{MB_TYPE_8x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 4, },
-{MB_TYPE_8x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 4, },
-{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, },
-};
-
-static const uint8_t dequant4_coeff_init[6][3]={
- {10,13,16},
- {11,14,18},
- {13,16,20},
- {14,18,23},
- {16,20,25},
- {18,23,29},
-};
-
-static const uint8_t dequant8_coeff_init_scan[16] = {
- 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1
-};
-static const uint8_t dequant8_coeff_init[6][6]={
- {20,18,32,19,25,24},
- {22,19,35,21,28,26},
- {26,23,42,24,33,31},
- {28,25,45,26,35,33},
- {32,28,51,30,40,38},
- {36,32,58,34,46,43},
-};
-
-#endif /* AVCODEC_H264DATA_H */
+++ /dev/null
-/*
- * Copyright (c) 2003-2010 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.264 DSP functions.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264DSP_H
-#define AVCODEC_H264DSP_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-//typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y);
-typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset);
-typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset);
-
-/**
- * Context for storing H.264 DSP functions
- */
-typedef struct H264DSPContext{
- /* weighted MC */
- h264_weight_func weight_h264_pixels_tab[10];
- h264_biweight_func biweight_h264_pixels_tab[10];
-
- /* loop filter */
- void (*h264_v_loop_filter_luma)(uint8_t *pix/*align 16*/, int stride, int alpha, int beta, int8_t *tc0);
- void (*h264_h_loop_filter_luma)(uint8_t *pix/*align 4 */, int stride, int alpha, int beta, int8_t *tc0);
- /* v/h_loop_filter_luma_intra: align 16 */
- void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
- void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
- void (*h264_v_loop_filter_chroma)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta, int8_t *tc0);
- void (*h264_h_loop_filter_chroma)(uint8_t *pix/*align 4*/, int stride, int alpha, int beta, int8_t *tc0);
- void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta);
- void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta);
- // h264_loop_filter_strength: simd only. the C version is inlined in h264.c
- void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2],
- int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field);
-
- /* IDCT */
- /* NOTE!!! if you implement any of h264_idct8_add, h264_idct8_add4 then you must implement all of them
- NOTE!!! if you implement any of h264_idct_add, h264_idct_add16, h264_idct_add16intra, h264_idct_add8 then you must implement all of them
- The reason for above, is that no 2 out of one list may use a different permutation.
- */
- void (*h264_idct_add)(uint8_t *dst/*align 4*/, DCTELEM *block/*align 16*/, int stride);
- void (*h264_idct8_add)(uint8_t *dst/*align 8*/, DCTELEM *block/*align 16*/, int stride);
- void (*h264_idct_dc_add)(uint8_t *dst/*align 4*/, DCTELEM *block/*align 16*/, int stride);
- void (*h264_idct8_dc_add)(uint8_t *dst/*align 8*/, DCTELEM *block/*align 16*/, int stride);
- void (*h264_dct)(DCTELEM block[4][4]);
- void (*h264_idct_add16)(uint8_t *dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]);
- void (*h264_idct8_add4)(uint8_t *dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]);
- void (*h264_idct_add8)(uint8_t **dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]);
- void (*h264_idct_add16intra)(uint8_t *dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]);
-}H264DSPContext;
-
-void ff_h264dsp_init(H264DSPContext *c);
-void ff_h264dsp_init_arm(H264DSPContext *c);
-void ff_h264dsp_init_ppc(H264DSPContext *c);
-void ff_h264dsp_init_x86(H264DSPContext *c);
-
-#endif /* AVCODEC_H264DSP_H */
+++ /dev/null
-/*
- * H.26L/H.264/AVC/JVT/14496-10/... encoder/decoder
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * H.264 / AVC / MPEG4 prediction functions.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_H264PRED_H
-#define AVCODEC_H264PRED_H
-
-#include "libavutil/common.h"
-#include "dsputil.h"
-
-/**
- * Prediction types
- */
-//@{
-#define VERT_PRED 0
-#define HOR_PRED 1
-#define DC_PRED 2
-#define DIAG_DOWN_LEFT_PRED 3
-#define DIAG_DOWN_RIGHT_PRED 4
-#define VERT_RIGHT_PRED 5
-#define HOR_DOWN_PRED 6
-#define VERT_LEFT_PRED 7
-#define HOR_UP_PRED 8
-
-#define LEFT_DC_PRED 9
-#define TOP_DC_PRED 10
-#define DC_128_PRED 11
-
-#define DIAG_DOWN_LEFT_PRED_RV40_NODOWN 12
-#define HOR_UP_PRED_RV40_NODOWN 13
-#define VERT_LEFT_PRED_RV40_NODOWN 14
-
-#define DC_PRED8x8 0
-#define HOR_PRED8x8 1
-#define VERT_PRED8x8 2
-#define PLANE_PRED8x8 3
-
-#define LEFT_DC_PRED8x8 4
-#define TOP_DC_PRED8x8 5
-#define DC_128_PRED8x8 6
-
-#define ALZHEIMER_DC_L0T_PRED8x8 7
-#define ALZHEIMER_DC_0LT_PRED8x8 8
-#define ALZHEIMER_DC_L00_PRED8x8 9
-#define ALZHEIMER_DC_0L0_PRED8x8 10
-//@}
-
-/**
- * Context for storing H.264 prediction functions
- */
-typedef struct H264PredContext{
- void (*pred4x4 [9+3+3])(uint8_t *src, uint8_t *topright, int stride);//FIXME move to dsp?
- void (*pred8x8l [9+3])(uint8_t *src, int topleft, int topright, int stride);
- void (*pred8x8 [4+3+4])(uint8_t *src, int stride);
- void (*pred16x16[4+3])(uint8_t *src, int stride);
-
- void (*pred4x4_add [2])(uint8_t *pix/*align 4*/, const DCTELEM *block/*align 16*/, int stride);
- void (*pred8x8l_add [2])(uint8_t *pix/*align 8*/, const DCTELEM *block/*align 16*/, int stride);
- void (*pred8x8_add [3])(uint8_t *pix/*align 8*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride);
- void (*pred16x16_add[3])(uint8_t *pix/*align 16*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride);
-}H264PredContext;
-
-void ff_h264_pred_init(H264PredContext *h, int codec_id);
-void ff_h264_pred_init_arm(H264PredContext *h, int codec_id);
-
-#endif /* AVCODEC_H264PRED_H */
+++ /dev/null
-/**
- * @file
- * huffman tree builder and VLC generator
- * Copyright (C) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_HUFFMAN_H
-#define AVCODEC_HUFFMAN_H
-
-#include "avcodec.h"
-#include "get_bits.h"
-
-typedef struct {
- int16_t sym;
- int16_t n0;
- uint32_t count;
-} Node;
-
-#define FF_HUFFMAN_FLAG_HNODE_FIRST 0x01
-#define FF_HUFFMAN_FLAG_ZERO_COUNT 0x02
-
-typedef int (*HuffCmp)(const void *va, const void *vb);
-int ff_huff_build_tree(AVCodecContext *avctx, VLC *vlc, int nb_codes,
- Node *nodes, HuffCmp cmp, int flags);
-
-#endif /* AVCODEC_HUFFMAN_H */
+++ /dev/null
-/*
- * IFF PBM/ILBM bitmap decoder
- * Copyright (c) 2010 Peter Ross <pross@xvid.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_IFF_H
-#define AVCODEC_IFF_H
-
-#include <stdint.h>
-#include "avcodec.h"
-
-int ff_cmap_read_palette(AVCodecContext *avctx, uint32_t *pal);
-
-#endif /* AVCODEC_IFF_H */
+++ /dev/null
-/*
- * IIR filter
- * Copyright (c) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * IIR filter interface
- */
-
-#ifndef AVCODEC_IIRFILTER_H
-#define AVCODEC_IIRFILTER_H
-
-#include "avcodec.h"
-
-struct FFIIRFilterCoeffs;
-struct FFIIRFilterState;
-
-enum IIRFilterType{
- FF_FILTER_TYPE_BESSEL,
- FF_FILTER_TYPE_BUTTERWORTH,
- FF_FILTER_TYPE_CHEBYSHEV,
- FF_FILTER_TYPE_ELLIPTIC,
-};
-
-enum IIRFilterMode{
- FF_FILTER_MODE_LOWPASS,
- FF_FILTER_MODE_HIGHPASS,
- FF_FILTER_MODE_BANDPASS,
- FF_FILTER_MODE_BANDSTOP,
-};
-
-/**
- * Initialize filter coefficients.
- *
- * @param filt_type filter type (e.g. Butterworth)
- * @param filt_mode filter mode (e.g. lowpass)
- * @param order filter order
- * @param cutoff_ratio cutoff to input frequency ratio
- * @param stopband stopband to input frequency ratio (used by bandpass and bandstop filter modes)
- * @param ripple ripple factor (used only in Chebyshev filters)
- *
- * @return pointer to filter coefficients structure or NULL if filter cannot be created
- */
-struct FFIIRFilterCoeffs* ff_iir_filter_init_coeffs(enum IIRFilterType filt_type,
- enum IIRFilterMode filt_mode,
- int order, float cutoff_ratio,
- float stopband, float ripple);
-
-/**
- * Create new filter state.
- *
- * @param order filter order
- *
- * @return pointer to new filter state or NULL if state creation fails
- */
-struct FFIIRFilterState* ff_iir_filter_init_state(int order);
-
-/**
- * Free filter coefficients.
- *
- * @param coeffs pointer allocated with ff_iir_filter_init_coeffs()
- */
-void ff_iir_filter_free_coeffs(struct FFIIRFilterCoeffs *coeffs);
-
-/**
- * Free filter state.
- *
- * @param state pointer allocated with ff_iir_filter_init_state()
- */
-void ff_iir_filter_free_state(struct FFIIRFilterState *state);
-
-/**
- * Perform lowpass filtering on input samples.
- *
- * @param coeffs pointer to filter coefficients
- * @param state pointer to filter state
- * @param size input length
- * @param src source samples
- * @param sstep source stride
- * @param dst filtered samples (destination may be the same as input)
- * @param dstep destination stride
- */
-void ff_iir_filter(const struct FFIIRFilterCoeffs *coeffs, struct FFIIRFilterState *state,
- int size, const int16_t *src, int sstep, int16_t *dst, int dstep);
-
-#endif /* AVCODEC_IIRFILTER_H */
+++ /dev/null
-/*
- * IMC compatible decoder
- * Copyright (c) 2002-2004 Maxim Poliakovski
- * Copyright (c) 2006 Benjamin Larsson
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_IMCDATA_H
-#define AVCODEC_IMCDATA_H
-
-#include <stdint.h>
-
-static const uint16_t band_tab[33] = {
- 0, 3, 6, 9, 12, 16, 20, 24, 29, 34, 40,
- 46, 53, 60, 68, 76, 84, 93, 102, 111, 121, 131,
- 141, 151, 162, 173, 184, 195, 207, 219, 231, 243, 256,
-};
-
-
-static const int8_t cyclTab[32] = {
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 32,
-};
-
-static const int8_t cyclTab2[32] = {
- -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22,
-23, 24, 25, 26, 27, 28, 29};
-
-static const float imc_weights1[31] = {
- 0.119595, 0.123124, 0.129192, 9.97377e-2, 8.1923e-2, 9.61153e-2, 8.77885e-2, 8.61174e-2,
- 9.00882e-2, 9.91658e-2, 0.112991, 0.131126, 0.152886, 0.177292, 0.221782, 0.244917, 0.267386,
- 0.306816, 0.323046, 0.33729, 0.366773, 0.392557, 0.398076, 0.403302, 0.42451, 0.444777,
- 0.449188, 0.455445, 0.477853, 0.500669, 0.510395};
-
-static const float imc_weights2[31] = {
- 3.23466e-3, 3.49886e-3, 3.98413e-3, 1.98116e-3, 1.16465e-3, 1.79283e-3, 1.40372e-3, 1.33274e-3,
- 1.50523e-3, 1.95064e-3, 2.77472e-3, 4.14725e-3, 6.2776e-3, 9.36401e-3, 1.71397e-2, 2.24052e-2,
- 2.83971e-2, 4.11689e-2, 4.73165e-2, 5.31631e-2, 6.66614e-2, 8.00824e-2, 8.31588e-2, 8.61397e-2,
- 9.89229e-2, 0.112197, 0.115227, 0.119613, 0.136174, 0.15445, 0.162685};
-
-static const float imc_quantizer1[4][8] = {
- { 8.4431201e-1, 4.7358301e-1, 1.448354, 2.7073899e-1, 7.4449003e-1, 1.241991, 1.845484, 0.0},
- { 8.6876702e-1, 4.7659001e-1, 1.478224, 2.5672799e-1, 7.55777e-1, 1.3229851, 2.03438, 0.0},
- { 7.5891501e-1, 6.2272799e-1, 1.271322, 3.47904e-1, 7.5317699e-1, 1.150767, 1.628476, 0.0},
- { 7.65257e-1, 6.44647e-1, 1.263824, 3.4548101e-1, 7.6384902e-1, 1.214466, 1.7638789, 0.0},
-};
-
-static const float imc_quantizer2[2][56] = {
- { 1.39236e-1, 3.50548e-1, 5.9547901e-1, 8.5772401e-1, 1.121545, 1.3882281, 1.695882, 2.1270809,
- 7.2221003e-2, 1.85177e-1, 2.9521701e-1, 4.12568e-1, 5.4068601e-1, 6.7679501e-1, 8.1196898e-1, 9.4765198e-1,
- 1.0779999, 1.203415, 1.337265, 1.481871, 1.639982, 1.814766, 2.0701399, 2.449862,
- 3.7533998e-2, 1.02722e-1, 1.6021401e-1, 2.16043e-1, 2.7231601e-1, 3.3025399e-1, 3.9022601e-1, 4.52849e-1,
- 5.1794899e-1, 5.8529502e-1, 6.53956e-1, 7.2312802e-1, 7.9150802e-1, 8.5891002e-1, 9.28141e-1, 9.9706203e-1,
- 1.062153, 1.12564, 1.189834, 1.256122, 1.324469, 1.3955311, 1.468906, 1.545084,
- 1.6264729, 1.711524, 1.802705, 1.91023, 2.0533991, 2.22333, 2.4830019, 3.253329 },
- { 1.11654e-1, 3.54469e-1, 6.4232099e-1, 9.6128798e-1, 1.295053, 1.61777, 1.989839, 2.51107,
- 5.7721999e-2, 1.69879e-1, 2.97589e-1, 4.3858799e-1, 5.9039903e-1, 7.4934798e-1, 9.1628098e-1, 1.087297,
- 1.262751, 1.4288321, 1.6040879, 1.79067, 2.000668, 2.2394669, 2.649332, 5.2760072,
- 2.9722e-2, 8.7316997e-2, 1.4445201e-1, 2.04247e-1, 2.6879501e-1, 3.3716801e-1, 4.08811e-1, 4.8306999e-1,
- 5.6049401e-1, 6.3955498e-1, 7.2044599e-1, 8.0427998e-1, 8.8933599e-1, 9.7537601e-1, 1.062461, 1.1510431,
- 1.240236, 1.326715, 1.412513, 1.500502, 1.591749, 1.686413, 1.785239, 1.891233,
- 2.0051291, 2.127681, 2.2709141, 2.475826, 2.7219379, 3.101985, 4.686213, 6.2287788},
-};
-
-
-static const float xTab[14] = {7.6, 3.6, 4.4, 3.7, 6.1, 5.1, 2.3, 1.6, 6.2, 1.5, 1.8, 1.2, 0, 0}; //10014048
-
-/* precomputed table for 10^(i/4), i=-15..16 */
-static const float imc_exp_tab[32] = {
- 1.778280e-4, 3.162278e-4, 5.623413e-4, 1.000000e-3,
- 1.778280e-3, 3.162278e-3, 5.623413e-3, 1.000000e-2,
- 1.778280e-2, 3.162278e-2, 5.623413e-2, 1.000000e-1,
- 1.778280e-1, 3.162278e-1, 5.623413e-1, 1.000000e00,
- 1.778280e00, 3.162278e00, 5.623413e00, 1.000000e01,
- 1.778280e01, 3.162278e01, 5.623413e01, 1.000000e02,
- 1.778280e02, 3.162278e02, 5.623413e02, 1.000000e03,
- 1.778280e03, 3.162278e03, 5.623413e03, 1.000000e04
-};
-static const float * const imc_exp_tab2 = imc_exp_tab + 8;
-
-
-static const uint8_t imc_cb_select[4][32] = {
- { 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2 },
- { 0, 2, 0, 3, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
- { 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2 },
- { 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
-};
-
-static const uint8_t imc_huffman_sizes[4] = {
- 17, 17, 18, 18
-};
-
-static const uint8_t imc_huffman_lens[4][4][18] = {
- {
- { 16, 15, 13, 11, 8, 5, 3, 1, 2, 4, 6, 9, 10, 12, 14, 16, 7, 0 },
- { 10, 8, 7, 6, 4, 4, 3, 2, 2, 3, 4, 6, 7, 9, 11, 11, 7, 0 },
- { 15, 15, 14, 11, 8, 6, 4, 2, 1, 4, 5, 7, 9, 10, 12, 13, 4, 0 },
- { 13, 11, 10, 8, 6, 4, 2, 2, 2, 3, 5, 7, 9, 12, 15, 15, 14, 0 },
- },
- {
- { 14, 12, 10, 8, 7, 4, 2, 2, 2, 3, 5, 7, 9, 11, 13, 14, 7, 0 },
- { 14, 13, 11, 8, 6, 4, 3, 2, 2, 3, 5, 7, 9, 10, 12, 14, 3, 0 },
- { 13, 12, 10, 7, 5, 4, 3, 2, 2, 3, 4, 6, 8, 9, 11, 13, 4, 0 },
- { 13, 12, 10, 7, 5, 4, 3, 2, 2, 3, 4, 6, 8, 9, 11, 13, 4, 0 },
- },
- {
- { 16, 14, 12, 10, 8, 5, 3, 1, 2, 4, 7, 9, 11, 13, 15, 17, 6, 17 },
- { 15, 13, 11, 8, 6, 4, 2, 2, 2, 3, 5, 7, 10, 12, 14, 16, 9, 16 },
- { 14, 12, 11, 9, 8, 6, 3, 1, 2, 5, 7, 10, 13, 15, 16, 17, 4, 17 },
- { 16, 14, 12, 9, 7, 5, 2, 2, 2, 3, 4, 6, 8, 11, 13, 15, 10, 16 },
- },
- {
- { 13, 11, 10, 8, 7, 5, 2, 2, 2, 4, 6, 9, 12, 14, 15, 16, 3, 16 },
- { 11, 11, 10, 9, 8, 7, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 5 },
- { 9, 9, 7, 6, 5, 4, 3, 3, 2, 3, 4, 5, 4, 5, 5, 6, 8, 6 },
- { 13, 12, 10, 8, 5, 3, 3, 2, 2, 3, 4, 7, 9, 11, 14, 15, 6, 15 },
- }
-};
-
-static const uint16_t imc_huffman_bits[4][4][18] = {
- {
- { 0xCC32, 0x6618, 0x1987, 0x0660, 0x00CD, 0x0018, 0x0007, 0x0000, 0x0002, 0x000D, 0x0032, 0x0199, 0x0331, 0x0CC2, 0x330D, 0xCC33, 0x0067, 0x0000 },
- { 0x02FE, 0x00BE, 0x005E, 0x002D, 0x000A, 0x0009, 0x0003, 0x0003, 0x0000, 0x0002, 0x0008, 0x002C, 0x005D, 0x017E, 0x05FE, 0x05FF, 0x005C, 0x0000 },
- { 0x5169, 0x5168, 0x28B5, 0x0517, 0x00A3, 0x0029, 0x0008, 0x0003, 0x0000, 0x0009, 0x0015, 0x0050, 0x0144, 0x028A, 0x0A2C, 0x145B, 0x000B, 0x0000 },
- { 0x1231, 0x048D, 0x0247, 0x0090, 0x0025, 0x0008, 0x0001, 0x0003, 0x0000, 0x0005, 0x0013, 0x0049, 0x0122, 0x0919, 0x48C3, 0x48C2, 0x2460, 0x0000 },
- },
- {
- { 0x2D1D, 0x0B46, 0x02D0, 0x00B5, 0x0059, 0x000A, 0x0003, 0x0001, 0x0000, 0x0004, 0x0017, 0x005B, 0x0169, 0x05A2, 0x168F, 0x2D1C, 0x0058, 0x0000 },
- { 0x1800, 0x0C01, 0x0301, 0x0061, 0x0019, 0x0007, 0x0004, 0x0003, 0x0000, 0x0005, 0x000D, 0x0031, 0x00C1, 0x0181, 0x0601, 0x1801, 0x0002, 0x0000 },
- { 0x1556, 0x0AAA, 0x02AB, 0x0054, 0x0014, 0x000B, 0x0002, 0x0003, 0x0000, 0x0003, 0x0008, 0x002B, 0x00AB, 0x0154, 0x0554, 0x1557, 0x0009, 0x0000 },
- { 0x1556, 0x0AAA, 0x02AB, 0x0054, 0x0014, 0x000B, 0x0002, 0x0003, 0x0000, 0x0003, 0x0008, 0x002B, 0x00AB, 0x0154, 0x0554, 0x1557, 0x0009, 0x0000 },
- },
- {
- { 0x2993, 0x0A65, 0x0298, 0x00A7, 0x0028, 0x0004, 0x0000, 0x0001, 0x0001, 0x0003, 0x0015, 0x0052, 0x014D, 0x0533, 0x14C8, 0x5324, 0x000B, 0x5325 },
- { 0x09B8, 0x026F, 0x009A, 0x0012, 0x0005, 0x0000, 0x0001, 0x0002, 0x0003, 0x0001, 0x0003, 0x0008, 0x004C, 0x0136, 0x04DD, 0x1373, 0x0027, 0x1372 },
- { 0x0787, 0x01E0, 0x00F1, 0x003D, 0x001F, 0x0006, 0x0001, 0x0001, 0x0001, 0x0002, 0x000E, 0x0079, 0x03C2, 0x0F0D, 0x1E19, 0x3C30, 0x0000, 0x3C31 },
- { 0x4B06, 0x12C0, 0x04B1, 0x0097, 0x0024, 0x0008, 0x0002, 0x0003, 0x0000, 0x0003, 0x0005, 0x0013, 0x004A, 0x0259, 0x0961, 0x2582, 0x012D, 0x4B07 },
- },
- {
- { 0x0A5A, 0x0297, 0x014A, 0x0053, 0x0028, 0x000B, 0x0003, 0x0000, 0x0002, 0x0004, 0x0015, 0x00A4, 0x052C, 0x14B7, 0x296C, 0x52DB, 0x0003, 0x52DA },
- { 0x0193, 0x0192, 0x00C8, 0x0065, 0x0033, 0x0018, 0x0007, 0x0004, 0x0000, 0x0004, 0x0005, 0x0007, 0x0006, 0x0003, 0x0005, 0x0005, 0x000D, 0x0004 },
- { 0x0012, 0x0013, 0x0005, 0x0003, 0x0000, 0x0003, 0x0005, 0x0004, 0x0003, 0x0003, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, 0x0005, 0x0008, 0x0004 },
- { 0x0D66, 0x06B2, 0x01AD, 0x006A, 0x000C, 0x0005, 0x0004, 0x0000, 0x0003, 0x0002, 0x0007, 0x0034, 0x00D7, 0x0358, 0x1ACF, 0x359C, 0x001B, 0x359D },
- }
-};
-
-#endif /* AVCODEC_IMCDATA_H */
+++ /dev/null
-/*
- * Misc image conversion routines
- * most functionality is exported to the public API, see avcodec.h
- *
- * Copyright (c) 2008 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_IMGCONVERT_H
-#define AVCODEC_IMGCONVERT_H
-
-#include <stdint.h>
-#include "avcodec.h"
-
-int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width);
-
-int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, int height);
-
-int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane);
-
-int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt);
-
-#endif /* AVCODEC_IMGCONVERT_H */
+++ /dev/null
-/*
- * Intel Indeo 2 codec
- * copyright (c) 2005 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_INDEO2DATA_H
-#define AVCODEC_INDEO2DATA_H
-
-#include <stdint.h>
-
-#define IR2_CODES 143
-static const uint16_t ir2_codes[IR2_CODES][2] = {
-#ifdef ALT_BITSTREAM_READER_LE
-{0x0000, 3}, {0x0004, 3}, {0x0006, 3}, {0x0001, 5},
-{0x0009, 5}, {0x0019, 5}, {0x000D, 5}, {0x001D, 5},
-{0x0023, 6}, {0x0013, 6}, {0x0033, 6}, {0x000B, 6},
-{0x002B, 6}, {0x001B, 6}, {0x0007, 8}, {0x0087, 8},
-{0x0027, 8}, {0x00A7, 8}, {0x0067, 8}, {0x00E7, 8},
-{0x0097, 8}, {0x0057, 8}, {0x0037, 8}, {0x00B7, 8},
-{0x00F7, 8}, {0x000F, 9}, {0x008F, 9}, {0x018F, 9},
-{0x014F, 9}, {0x00CF, 9}, {0x002F, 9}, {0x012F, 9},
-{0x01AF, 9}, {0x006F, 9}, {0x00EF, 9}, {0x01EF, 9},
-{0x001F, 10}, {0x021F, 10}, {0x011F, 10}, {0x031F, 10},
-{0x009F, 10}, {0x029F, 10}, {0x019F, 10}, {0x039F, 10},
-{0x005F, 10}, {0x025F, 10}, {0x015F, 10}, {0x035F, 10},
-{0x00DF, 10}, {0x02DF, 10}, {0x01DF, 10}, {0x03DF, 10},
-{0x003F, 13}, {0x103F, 13}, {0x083F, 13}, {0x183F, 13},
-{0x043F, 13}, {0x143F, 13}, {0x0C3F, 13}, {0x1C3F, 13},
-{0x023F, 13}, {0x123F, 13}, {0x0A3F, 13}, {0x1A3F, 13},
-{0x063F, 13}, {0x163F, 13}, {0x0E3F, 13}, {0x1E3F, 13},
-{0x013F, 13}, {0x113F, 13}, {0x093F, 13}, {0x193F, 13},
-{0x053F, 13}, {0x153F, 13}, {0x0D3F, 13}, {0x1D3F, 13},
-{0x033F, 13}, {0x133F, 13}, {0x0B3F, 13}, {0x1B3F, 13},
-{0x073F, 13}, {0x173F, 13}, {0x0F3F, 13}, {0x1F3F, 13},
-{0x00BF, 13}, {0x10BF, 13}, {0x08BF, 13}, {0x18BF, 13},
-{0x04BF, 13}, {0x14BF, 13}, {0x0CBF, 13}, {0x1CBF, 13},
-{0x02BF, 13}, {0x12BF, 13}, {0x0ABF, 13}, {0x1ABF, 13},
-{0x06BF, 13}, {0x16BF, 13}, {0x0EBF, 13}, {0x1EBF, 13},
-{0x01BF, 13}, {0x11BF, 13}, {0x09BF, 13}, {0x19BF, 13},
-{0x05BF, 13}, {0x15BF, 13}, {0x0DBF, 13}, {0x1DBF, 13},
-{0x03BF, 13}, {0x13BF, 13}, {0x0BBF, 13}, {0x1BBF, 13},
-{0x07BF, 13}, {0x17BF, 13}, {0x0FBF, 13}, {0x1FBF, 13},
-{0x007F, 14}, {0x207F, 14}, {0x107F, 14}, {0x307F, 14},
-{0x087F, 14}, {0x287F, 14}, {0x187F, 14}, {0x387F, 14},
-{0x047F, 14}, {0x247F, 14}, {0x147F, 14}, {0x0002, 3},
-{0x0011, 5}, {0x0005, 5}, {0x0015, 5}, {0x0003, 6},
-{0x003B, 6}, {0x0047, 8}, {0x00C7, 8}, {0x0017, 8},
-{0x00D7, 8}, {0x0077, 8}, {0x010F, 9}, {0x004F, 9},
-{0x01CF, 9}, {0x00AF, 9}, {0x016F, 9},
-#else
- {0x0000, 3}, {0x0001, 3}, {0x0003, 3}, {0x0010, 5},
- {0x0012, 5}, {0x0013, 5}, {0x0016, 5}, {0x0017, 5},
- {0x0031, 6}, {0x0032, 6}, {0x0033, 6}, {0x0034, 6},
- {0x0035, 6}, {0x0036, 6}, {0x00E0, 8}, {0x00E1, 8},
- {0x00E4, 8}, {0x00E5, 8}, {0x00E6, 8}, {0x00E7, 8},
- {0x00E9, 8}, {0x00EA, 8}, {0x00EC, 8}, {0x00ED, 8},
- {0x00EF, 8}, {0x01E0, 9}, {0x01E2, 9}, {0x01E3, 9},
- {0x01E5, 9}, {0x01E6, 9}, {0x01E8, 9}, {0x01E9, 9},
- {0x01EB, 9}, {0x01EC, 9}, {0x01EE, 9}, {0x01EF, 9},
- {0x03E0, 10}, {0x03E1, 10}, {0x03E2, 10}, {0x03E3, 10},
- {0x03E4, 10}, {0x03E5, 10}, {0x03E6, 10}, {0x03E7, 10},
- {0x03E8, 10}, {0x03E9, 10}, {0x03EA, 10}, {0x03EB, 10},
- {0x03EC, 10}, {0x03ED, 10}, {0x03EE, 10}, {0x03EF, 10},
- {0x1F80, 13}, {0x1F81, 13}, {0x1F82, 13}, {0x1F83, 13},
- {0x1F84, 13}, {0x1F85, 13}, {0x1F86, 13}, {0x1F87, 13},
- {0x1F88, 13}, {0x1F89, 13}, {0x1F8A, 13}, {0x1F8B, 13},
- {0x1F8C, 13}, {0x1F8D, 13}, {0x1F8E, 13}, {0x1F8F, 13},
- {0x1F90, 13}, {0x1F91, 13}, {0x1F92, 13}, {0x1F93, 13},
- {0x1F94, 13}, {0x1F95, 13}, {0x1F96, 13}, {0x1F97, 13},
- {0x1F98, 13}, {0x1F99, 13}, {0x1F9A, 13}, {0x1F9B, 13},
- {0x1F9C, 13}, {0x1F9D, 13}, {0x1F9E, 13}, {0x1F9F, 13},
- {0x1FA0, 13}, {0x1FA1, 13}, {0x1FA2, 13}, {0x1FA3, 13},
- {0x1FA4, 13}, {0x1FA5, 13}, {0x1FA6, 13}, {0x1FA7, 13},
- {0x1FA8, 13}, {0x1FA9, 13}, {0x1FAA, 13}, {0x1FAB, 13},
- {0x1FAC, 13}, {0x1FAD, 13}, {0x1FAE, 13}, {0x1FAF, 13},
- {0x1FB0, 13}, {0x1FB1, 13}, {0x1FB2, 13}, {0x1FB3, 13},
- {0x1FB4, 13}, {0x1FB5, 13}, {0x1FB6, 13}, {0x1FB7, 13},
- {0x1FB8, 13}, {0x1FB9, 13}, {0x1FBA, 13}, {0x1FBB, 13},
- {0x1FBC, 13}, {0x1FBD, 13}, {0x1FBE, 13}, {0x1FBF, 13},
- {0x3F80, 14}, {0x3F81, 14}, {0x3F82, 14}, {0x3F83, 14},
- {0x3F84, 14}, {0x3F85, 14}, {0x3F86, 14}, {0x3F87, 14},
- {0x3F88, 14}, {0x3F89, 14}, {0x3F8A, 14}, {0x0002, 3},
- {0x0011, 5}, {0x0014, 5}, {0x0015, 5}, {0x0030, 6},
- {0x0037, 6}, {0x00E2, 8}, {0x00E3, 8}, {0x00E8, 8},
- {0x00EB, 8}, {0x00EE, 8}, {0x01E1, 9}, {0x01E4, 9},
- {0x01E7, 9}, {0x01EA, 9}, {0x01ED, 9}
-#endif
-};
-
-static const uint8_t ir2_luma_table[256] = {
- 0x80, 0x80, 0x84, 0x84, 0x7C, 0x7C, 0x7F, 0x85,
- 0x81, 0x7B, 0x85, 0x7F, 0x7B, 0x81, 0x8C, 0x8C,
- 0x74, 0x74, 0x83, 0x8D, 0x7D, 0x73, 0x8D, 0x83,
- 0x73, 0x7D, 0x77, 0x89, 0x89, 0x77, 0x89, 0x77,
- 0x77, 0x89, 0x8C, 0x95, 0x74, 0x6B, 0x95, 0x8C,
- 0x6B, 0x74, 0x7C, 0x90, 0x84, 0x70, 0x90, 0x7C,
- 0x70, 0x84, 0x96, 0x96, 0x6A, 0x6A, 0x82, 0x98,
- 0x7E, 0x68, 0x98, 0x82, 0x68, 0x7E, 0x97, 0xA2,
- 0x69, 0x5E, 0xA2, 0x97, 0x5E, 0x69, 0xA2, 0xA2,
- 0x5E, 0x5E, 0x8B, 0xA3, 0x75, 0x5D, 0xA3, 0x8B,
- 0x5D, 0x75, 0x71, 0x95, 0x8F, 0x6B, 0x95, 0x71,
- 0x6B, 0x8F, 0x78, 0x9D, 0x88, 0x63, 0x9D, 0x78,
- 0x63, 0x88, 0x7F, 0xA7, 0x81, 0x59, 0xA7, 0x7F,
- 0x59, 0x81, 0xA4, 0xB1, 0x5C, 0x4F, 0xB1, 0xA4,
- 0x4F, 0x5C, 0x96, 0xB1, 0x6A, 0x4F, 0xB1, 0x96,
- 0x4F, 0x6A, 0xB2, 0xB2, 0x4E, 0x4E, 0x65, 0x9B,
- 0x9B, 0x65, 0x9B, 0x65, 0x65, 0x9B, 0x89, 0xB4,
- 0x77, 0x4C, 0xB4, 0x89, 0x4C, 0x77, 0x6A, 0xA3,
- 0x96, 0x5D, 0xA3, 0x6A, 0x5D, 0x96, 0x73, 0xAC,
- 0x8D, 0x54, 0xAC, 0x73, 0x54, 0x8D, 0xB4, 0xC3,
- 0x4C, 0x3D, 0xC3, 0xB4, 0x3D, 0x4C, 0xA4, 0xC3,
- 0x5C, 0x3D, 0xC3, 0xA4, 0x3D, 0x5C, 0xC4, 0xC4,
- 0x3C, 0x3C, 0x96, 0xC6, 0x6A, 0x3A, 0xC6, 0x96,
- 0x3A, 0x6A, 0x7C, 0xBA, 0x84, 0x46, 0xBA, 0x7C,
- 0x46, 0x84, 0x5B, 0xAB, 0xA5, 0x55, 0xAB, 0x5B,
- 0x55, 0xA5, 0x63, 0xB4, 0x9D, 0x4C, 0xB4, 0x63,
- 0x4C, 0x9D, 0x86, 0xCA, 0x7A, 0x36, 0xCA, 0x86,
- 0x36, 0x7A, 0xB6, 0xD7, 0x4A, 0x29, 0xD7, 0xB6,
- 0x29, 0x4A, 0xC8, 0xD7, 0x38, 0x29, 0xD7, 0xC8,
- 0x29, 0x38, 0xA4, 0xD8, 0x5C, 0x28, 0xD8, 0xA4,
- 0x28, 0x5C, 0x6C, 0xC1, 0x94, 0x3F, 0xC1, 0x6C,
- 0x3F, 0x94, 0xD9, 0xD9, 0x27, 0x27, 0x80, 0x80
-};
-
-#endif /* AVCODEC_INDEO2DATA_H */
+++ /dev/null
-/*
- * Intel Indeo 3 (IV31, IV32, etc.) video decoder for ffmpeg
- * written, produced, and directed by Alan Smithee
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_INDEO3DATA_H
-#define AVCODEC_INDEO3DATA_H
-
-#include <stdint.h>
-
-static const uint32_t correction[] = {
- 0x00000000, 0x00000202, 0xfffffdfe, 0x000002ff, 0xfffffd01, 0xffffff03, 0x000000fd, 0x00000404,
- 0xfffffbfc, 0x00000501, 0xfffffaff, 0x00000105, 0xfffffefb, 0x000003fc, 0xfffffc04, 0x000005fe,
- 0xfffffa02, 0xfffffe06, 0x000001fa, 0x00000904, 0xfffff6fc, 0x00000409, 0xfffffbf7, 0x00000909,
- 0xfffff6f7, 0x00000a01, 0xfffff5ff, 0x0000010a, 0xfffffef6, 0x000007fb, 0xfffff805, 0xfffffb08,
- 0x000004f8, 0x00000f09, 0xfffff0f7, 0x0000090f, 0xfffff6f1, 0x00000bfd, 0xfffff403, 0xfffffd0c,
- 0x000002f4, 0x00001004, 0xffffeffc, 0x00000410, 0xfffffbf0, 0x00001010, 0xffffeff0, 0x00001200,
- 0xffffee00, 0x00000012, 0xffffffee, 0x00000bf4, 0xfffff40c, 0x00000ff7, 0xfffff009, 0xfffff710,
- 0x000008f0, 0x00001b0b, 0xffffe4f5, 0x00000b1b, 0xfffff4e5, 0x00001c13, 0xffffe3ed, 0x0000131c,
- 0xffffece4, 0x000015fa, 0xffffea06, 0xfffffa16, 0x000005ea, 0x00001d04, 0xffffe2fc, 0x0000041d,
- 0xfffffbe3, 0x00001e1e, 0xffffe1e2, 0x000020fe, 0xffffdf02, 0xfffffe21, 0x000001df, 0x000016ee,
- 0xffffe912, 0xffffee17, 0x000011e9, 0x00001df1, 0xffffe20f, 0xfffff11e, 0x00000ee2, 0x00002e16,
- 0xffffd1ea, 0x0000162e, 0xffffe9d2, 0x00002f0d, 0xffffd0f3, 0x00000d2f, 0xfffff2d1, 0x00003123,
- 0xffffcedd, 0x00002331, 0xffffdccf, 0x000028f5, 0xffffd70b, 0xfffff529, 0x00000ad7, 0x00003304,
- 0xffffccfc, 0x00000433, 0xfffffbcd, 0x00003636, 0xffffc9ca, 0x000021de, 0xffffde22, 0x000029e3,
- 0xffffd61d, 0xffffe32a, 0x00001cd6, 0x00003bfa, 0xffffc406, 0xfffffa3c, 0x000005c4, 0x00004c1b,
- 0xffffb3e5, 0x00001b4c, 0xffffe4b4, 0x00004d2b, 0xffffb2d5, 0x00002b4d, 0xffffd4b3, 0x000036e8,
- 0xffffc918, 0xffffe837, 0x000017c9, 0x00004f0e, 0xffffb0f2, 0x00000e4f, 0xfffff1b1, 0x0000533f,
- 0xffffacc1, 0x00003f53, 0xffffc0ad, 0x000049ec, 0xffffb614, 0xffffec4a, 0x000013b6, 0x00005802,
- 0xffffa7fe, 0x00000258, 0xfffffda8, 0x00005d5d, 0xffffa2a3, 0x00003ccc, 0xffffc334, 0xffffcc3d,
- 0x000033c3, 0x00007834, 0xffff87cc, 0x00003478, 0xffffcb88, 0x00004ad3, 0xffffb52d, 0xffffd34b,
- 0x00002cb5, 0x00007d4b, 0xffff82b5, 0x00004b7d, 0xffffb483, 0x00007a21, 0xffff85df, 0x0000217a,
- 0xffffde86, 0x000066f3, 0xffff990d, 0xfffff367, 0x00000c99, 0x00005fd8, 0xffffa028, 0xffffd860,
- 0x000027a0, 0x00007ede, 0xffff8122, 0xffffde7f, 0x00002181, 0x000058a7, 0xffffa759, 0x000068b2,
- 0xffff974e, 0xffffb269, 0x00004d97, 0x00000c0c, 0xfffff3f4, 0x00001717, 0xffffe8e9, 0x00002a2a,
- 0xffffd5d6, 0x00004949, 0xffffb6b7, 0x00000000, 0x02020000, 0xfdfe0000, 0x02ff0000, 0xfd010000,
- 0xff030000, 0x00fd0000, 0x00000202, 0x02020202, 0xfdfe0202, 0x02ff0202, 0xfd010202, 0xff030202,
- 0x00fd0202, 0xfffffdfe, 0x0201fdfe, 0xfdfdfdfe, 0x02fefdfe, 0xfd00fdfe, 0xff02fdfe, 0x00fcfdfe,
- 0x000002ff, 0x020202ff, 0xfdfe02ff, 0x02ff02ff, 0xfd0102ff, 0xff0302ff, 0x00fd02ff, 0xfffffd01,
- 0x0201fd01, 0xfdfdfd01, 0x02fefd01, 0xfd00fd01, 0xff02fd01, 0x00fcfd01, 0xffffff03, 0x0201ff03,
- 0xfdfdff03, 0x02feff03, 0xfd00ff03, 0xff02ff03, 0x00fcff03, 0x000000fd, 0x020200fd, 0xfdfe00fd,
- 0x02ff00fd, 0xfd0100fd, 0xff0300fd, 0x00fd00fd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000303, 0xfffffcfd, 0x000003ff, 0xfffffc01, 0xffffff04, 0x000000fc, 0x00000707,
- 0xfffff8f9, 0x00000802, 0xfffff7fe, 0x00000208, 0xfffffdf8, 0x000008fe, 0xfffff702, 0xfffffe09,
- 0x000001f7, 0x000005fa, 0xfffffa06, 0x00000d06, 0xfffff2fa, 0x0000060d, 0xfffff9f3, 0x00000d0d,
- 0xfffff2f3, 0x00000e01, 0xfffff1ff, 0x0000010e, 0xfffffef2, 0x00000bf8, 0xfffff408, 0xfffff80c,
- 0x000007f4, 0x0000170e, 0xffffe8f2, 0x00000e17, 0xfffff1e9, 0x000011fb, 0xffffee05, 0xfffffb12,
- 0x000004ee, 0x00001806, 0xffffe7fa, 0x00000618, 0xfffff9e8, 0x00001818, 0xffffe7e8, 0x00001aff,
- 0xffffe501, 0xffffff1b, 0x000000e5, 0x000010ef, 0xffffef11, 0x000016f3, 0xffffe90d, 0xfffff317,
- 0x00000ce9, 0x00002810, 0xffffd7f0, 0x00001028, 0xffffefd8, 0x0000291c, 0xffffd6e4, 0x00001c29,
- 0xffffe3d7, 0x000020f7, 0xffffdf09, 0xfffff721, 0x000008df, 0x00002b06, 0xffffd4fa, 0x0000062b,
- 0xfffff9d5, 0x00002e2e, 0xffffd1d2, 0x000031fc, 0xffffce04, 0xfffffc32, 0x000003ce, 0x000021e5,
- 0xffffde1b, 0xffffe522, 0x00001ade, 0x00002cea, 0xffffd316, 0xffffea2d, 0x000015d3, 0x00004522,
- 0xffffbade, 0x00002245, 0xffffddbb, 0x00004613, 0xffffb9ed, 0x00001346, 0xffffecba, 0x00004935,
- 0xffffb6cb, 0x00003549, 0xffffcab7, 0x00003def, 0xffffc211, 0xffffef3e, 0x000010c2, 0x00004d05,
- 0xffffb2fb, 0x0000054d, 0xfffffab3, 0x00005252, 0xffffadae, 0x000032cd, 0xffffcd33, 0x00003fd5,
- 0xffffc02b, 0xffffd540, 0x00002ac0, 0x000059f6, 0xffffa60a, 0xfffff65a, 0x000009a6, 0x00007229,
- 0xffff8dd7, 0x00002972, 0xffffd68e, 0x00007440, 0xffff8bc0, 0x00004074, 0xffffbf8c, 0x000051db,
- 0xffffae25, 0xffffdb52, 0x000024ae, 0x00007716, 0xffff88ea, 0x00001677, 0xffffe989, 0x00007c5f,
- 0xffff83a1, 0x00005f7c, 0xffffa084, 0x00006ee2, 0xffff911e, 0xffffe26f, 0x00001d91, 0x00005bb2,
- 0xffffa44e, 0xffffb25c, 0x00004da4, 0x000070bc, 0xffff8f44, 0xffffbc71, 0x0000438f, 0x00001212,
- 0xffffedee, 0x00002222, 0xffffddde, 0x00003f3f, 0xffffc0c1, 0x00006d6d, 0xffff9293, 0x00000000,
- 0x03030000, 0xfcfd0000, 0x03ff0000, 0xfc010000, 0xff040000, 0x00fc0000, 0x07070000, 0xf8f90000,
- 0x00000303, 0x03030303, 0xfcfd0303, 0x03ff0303, 0xfc010303, 0xff040303, 0x00fc0303, 0x07070303,
- 0xf8f90303, 0xfffffcfd, 0x0302fcfd, 0xfcfcfcfd, 0x03fefcfd, 0xfc00fcfd, 0xff03fcfd, 0x00fbfcfd,
- 0x0706fcfd, 0xf8f8fcfd, 0x000003ff, 0x030303ff, 0xfcfd03ff, 0x03ff03ff, 0xfc0103ff, 0xff0403ff,
- 0x00fc03ff, 0x070703ff, 0xf8f903ff, 0xfffffc01, 0x0302fc01, 0xfcfcfc01, 0x03fefc01, 0xfc00fc01,
- 0xff03fc01, 0x00fbfc01, 0x0706fc01, 0xf8f8fc01, 0xffffff04, 0x0302ff04, 0xfcfcff04, 0x03feff04,
- 0xfc00ff04, 0xff03ff04, 0x00fbff04, 0x0706ff04, 0xf8f8ff04, 0x000000fc, 0x030300fc, 0xfcfd00fc,
- 0x03ff00fc, 0xfc0100fc, 0xff0400fc, 0x00fc00fc, 0x070700fc, 0xf8f900fc, 0x00000707, 0x03030707,
- 0xfcfd0707, 0x03ff0707, 0xfc010707, 0xff040707, 0x00fc0707, 0x07070707, 0xf8f90707, 0xfffff8f9,
- 0x0302f8f9, 0xfcfcf8f9, 0x03fef8f9, 0xfc00f8f9, 0xff03f8f9, 0x00fbf8f9, 0x0706f8f9, 0xf8f8f8f9,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000404, 0xfffffbfc, 0x000004ff, 0xfffffb01, 0xffffff05, 0x000000fb, 0x00000a03,
- 0xfffff5fd, 0x0000030a, 0xfffffcf6, 0x00000909, 0xfffff6f7, 0x000006f9, 0xfffff907, 0x00000bfd,
- 0xfffff403, 0xfffffd0c, 0x000002f4, 0x00001108, 0xffffeef8, 0x00000811, 0xfffff7ef, 0x00001111,
- 0xffffeeef, 0x00001301, 0xffffecff, 0x00000113, 0xfffffeed, 0x00000ff5, 0xfffff00b, 0xfffff510,
- 0x00000af0, 0x000016fa, 0xffffe906, 0xfffffa17, 0x000005e9, 0x00001f12, 0xffffe0ee, 0x0000121f,
- 0xffffede1, 0x00002008, 0xffffdff8, 0x00000820, 0xfffff7e0, 0x00002121, 0xffffdedf, 0x000023ff,
- 0xffffdc01, 0xffffff24, 0x000000dc, 0x000016e9, 0xffffe917, 0x00001eef, 0xffffe111, 0xffffef1f,
- 0x000010e1, 0x00003615, 0xffffc9eb, 0x00001536, 0xffffeaca, 0x00003725, 0xffffc8db, 0x00002537,
- 0xffffdac9, 0x00002bf4, 0xffffd40c, 0xfffff42c, 0x00000bd4, 0x00003908, 0xffffc6f8, 0x00000839,
- 0xfffff7c7, 0x00003d3d, 0xffffc2c3, 0x000041fb, 0xffffbe05, 0xfffffb42, 0x000004be, 0x00002cdc,
- 0xffffd324, 0xffffdc2d, 0x000023d3, 0x00003be3, 0xffffc41d, 0xffffe33c, 0x00001cc4, 0x00005c2d,
- 0xffffa3d3, 0x00002d5c, 0xffffd2a4, 0x00005d19, 0xffffa2e7, 0x0000195d, 0xffffe6a3, 0x00006147,
- 0xffff9eb9, 0x00004761, 0xffffb89f, 0x000052ea, 0xffffad16, 0xffffea53, 0x000015ad, 0x00006607,
- 0xffff99f9, 0x00000766, 0xfffff89a, 0x00006d6d, 0xffff9293, 0x000043bc, 0xffffbc44, 0x000054c7,
- 0xffffab39, 0xffffc755, 0x000038ab, 0x000077f3, 0xffff880d, 0xfffff378, 0x00000c88, 0x00006dcf,
- 0xffff9231, 0xffffcf6e, 0x00003092, 0x00007a98, 0xffff8568, 0xffff987b, 0x00006785, 0x00001818,
- 0xffffe7e8, 0x00002e2e, 0xffffd1d2, 0x00005454, 0xffffabac, 0x00000000, 0x04040000, 0xfbfc0000,
- 0x04ff0000, 0xfb010000, 0xff050000, 0x00fb0000, 0x0a030000, 0xf5fd0000, 0x030a0000, 0x00000404,
- 0x04040404, 0xfbfc0404, 0x04ff0404, 0xfb010404, 0xff050404, 0x00fb0404, 0x0a030404, 0xf5fd0404,
- 0x030a0404, 0xfffffbfc, 0x0403fbfc, 0xfbfbfbfc, 0x04fefbfc, 0xfb00fbfc, 0xff04fbfc, 0x00fafbfc,
- 0x0a02fbfc, 0xf5fcfbfc, 0x0309fbfc, 0x000004ff, 0x040404ff, 0xfbfc04ff, 0x04ff04ff, 0xfb0104ff,
- 0xff0504ff, 0x00fb04ff, 0x0a0304ff, 0xf5fd04ff, 0x030a04ff, 0xfffffb01, 0x0403fb01, 0xfbfbfb01,
- 0x04fefb01, 0xfb00fb01, 0xff04fb01, 0x00fafb01, 0x0a02fb01, 0xf5fcfb01, 0x0309fb01, 0xffffff05,
- 0x0403ff05, 0xfbfbff05, 0x04feff05, 0xfb00ff05, 0xff04ff05, 0x00faff05, 0x0a02ff05, 0xf5fcff05,
- 0x0309ff05, 0x000000fb, 0x040400fb, 0xfbfc00fb, 0x04ff00fb, 0xfb0100fb, 0xff0500fb, 0x00fb00fb,
- 0x0a0300fb, 0xf5fd00fb, 0x030a00fb, 0x00000a03, 0x04040a03, 0xfbfc0a03, 0x04ff0a03, 0xfb010a03,
- 0xff050a03, 0x00fb0a03, 0x0a030a03, 0xf5fd0a03, 0x030a0a03, 0xfffff5fd, 0x0403f5fd, 0xfbfbf5fd,
- 0x04fef5fd, 0xfb00f5fd, 0xff04f5fd, 0x00faf5fd, 0x0a02f5fd, 0xf5fcf5fd, 0x0309f5fd, 0x0000030a,
- 0x0404030a, 0xfbfc030a, 0x04ff030a, 0xfb01030a, 0xff05030a, 0x00fb030a, 0x0a03030a, 0xf5fd030a,
- 0x030a030a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000505, 0xfffffafb, 0x000006fe, 0xfffff902, 0xfffffe07, 0x000001f9, 0x00000b0b,
- 0xfffff4f5, 0x00000d03, 0xfffff2fd, 0x0000030d, 0xfffffcf3, 0x000008f7, 0xfffff709, 0x00000efc,
- 0xfffff104, 0xfffffc0f, 0x000003f1, 0x0000160b, 0xffffe9f5, 0x00000b16, 0xfffff4ea, 0x00001515,
- 0xffffeaeb, 0x00001802, 0xffffe7fe, 0x00000218, 0xfffffde8, 0x000013f2, 0xffffec0e, 0xfffff214,
- 0x00000dec, 0x00002617, 0xffffd9e9, 0x00001726, 0xffffe8da, 0x00001cf8, 0xffffe308, 0xfffff81d,
- 0x000007e3, 0x0000270b, 0xffffd8f5, 0x00000b27, 0xfffff4d9, 0x00002929, 0xffffd6d7, 0x00002cff,
- 0xffffd301, 0xffffff2d, 0x000000d3, 0x00001ce3, 0xffffe31d, 0x000026ea, 0xffffd916, 0xffffea27,
- 0x000015d9, 0x0000431b, 0xffffbce5, 0x00001b43, 0xffffe4bd, 0x0000452f, 0xffffbad1, 0x00002f45,
- 0xffffd0bb, 0x000037f1, 0xffffc80f, 0xfffff138, 0x00000ec8, 0x0000470b, 0xffffb8f5, 0x00000b47,
- 0xfffff4b9, 0x00004c4c, 0xffffb3b4, 0x000052fa, 0xffffad06, 0xfffffa53, 0x000005ad, 0x000038d3,
- 0xffffc72d, 0xffffd339, 0x00002cc7, 0x00004adc, 0xffffb524, 0xffffdc4b, 0x000023b5, 0x00007338,
- 0xffff8cc8, 0x00003873, 0xffffc78d, 0x0000751f, 0xffff8ae1, 0x00001f75, 0xffffe08b, 0x00007a58,
- 0xffff85a8, 0x0000587a, 0xffffa786, 0x000067e4, 0xffff981c, 0xffffe468, 0x00001b98, 0x000054ab,
- 0xffffab55, 0x000069b8, 0xffff9648, 0xffffb86a, 0x00004796, 0x00001e1e, 0xffffe1e2, 0x00003a3a,
- 0xffffc5c6, 0x00006969, 0xffff9697, 0x00000000, 0x05050000, 0xfafb0000, 0x06fe0000, 0xf9020000,
- 0xfe070000, 0x01f90000, 0x0b0b0000, 0xf4f50000, 0x0d030000, 0xf2fd0000, 0x00000505, 0x05050505,
- 0xfafb0505, 0x06fe0505, 0xf9020505, 0xfe070505, 0x01f90505, 0x0b0b0505, 0xf4f50505, 0x0d030505,
- 0xf2fd0505, 0xfffffafb, 0x0504fafb, 0xfafafafb, 0x06fdfafb, 0xf901fafb, 0xfe06fafb, 0x01f8fafb,
- 0x0b0afafb, 0xf4f4fafb, 0x0d02fafb, 0xf2fcfafb, 0x000006fe, 0x050506fe, 0xfafb06fe, 0x06fe06fe,
- 0xf90206fe, 0xfe0706fe, 0x01f906fe, 0x0b0b06fe, 0xf4f506fe, 0x0d0306fe, 0xf2fd06fe, 0xfffff902,
- 0x0504f902, 0xfafaf902, 0x06fdf902, 0xf901f902, 0xfe06f902, 0x01f8f902, 0x0b0af902, 0xf4f4f902,
- 0x0d02f902, 0xf2fcf902, 0xfffffe07, 0x0504fe07, 0xfafafe07, 0x06fdfe07, 0xf901fe07, 0xfe06fe07,
- 0x01f8fe07, 0x0b0afe07, 0xf4f4fe07, 0x0d02fe07, 0xf2fcfe07, 0x000001f9, 0x050501f9, 0xfafb01f9,
- 0x06fe01f9, 0xf90201f9, 0xfe0701f9, 0x01f901f9, 0x0b0b01f9, 0xf4f501f9, 0x0d0301f9, 0xf2fd01f9,
- 0x00000b0b, 0x05050b0b, 0xfafb0b0b, 0x06fe0b0b, 0xf9020b0b, 0xfe070b0b, 0x01f90b0b, 0x0b0b0b0b,
- 0xf4f50b0b, 0x0d030b0b, 0xf2fd0b0b, 0xfffff4f5, 0x0504f4f5, 0xfafaf4f5, 0x06fdf4f5, 0xf901f4f5,
- 0xfe06f4f5, 0x01f8f4f5, 0x0b0af4f5, 0xf4f4f4f5, 0x0d02f4f5, 0xf2fcf4f5, 0x00000d03, 0x05050d03,
- 0xfafb0d03, 0x06fe0d03, 0xf9020d03, 0xfe070d03, 0x01f90d03, 0x0b0b0d03, 0xf4f50d03, 0x0d030d03,
- 0xf2fd0d03, 0xfffff2fd, 0x0504f2fd, 0xfafaf2fd, 0x06fdf2fd, 0xf901f2fd, 0xfe06f2fd, 0x01f8f2fd,
- 0x0b0af2fd, 0xf4f4f2fd, 0x0d02f2fd, 0xf2fcf2fd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000606, 0xfffff9fa, 0x000007fe, 0xfffff802, 0xfffffe08, 0x000001f8, 0x00000d0d,
- 0xfffff2f3, 0x00000f04, 0xfffff0fc, 0x0000040f, 0xfffffbf1, 0x00000af5, 0xfffff50b, 0x000011fb,
- 0xffffee05, 0xfffffb12, 0x000004ee, 0x00001a0d, 0xffffe5f3, 0x00000d1a, 0xfffff2e6, 0x00001a1a,
- 0xffffe5e6, 0x00001d02, 0xffffe2fe, 0x0000021d, 0xfffffde3, 0x000017f0, 0xffffe810, 0xfffff018,
- 0x00000fe8, 0x00002e1c, 0xffffd1e4, 0x00001c2e, 0xffffe3d2, 0x000022f7, 0xffffdd09, 0xfffff723,
- 0x000008dd, 0x00002f0d, 0xffffd0f3, 0x00000d2f, 0xfffff2d1, 0x00003131, 0xffffcecf, 0x000035ff,
- 0xffffca01, 0xffffff36, 0x000000ca, 0x000022dd, 0xffffdd23, 0x00002ee6, 0xffffd11a, 0xffffe62f,
- 0x000019d1, 0x00005120, 0xffffaee0, 0x00002051, 0xffffdfaf, 0x00005338, 0xffffacc8, 0x00003853,
- 0xffffc7ad, 0x000042ee, 0xffffbd12, 0xffffee43, 0x000011bd, 0x0000560d, 0xffffa9f3, 0x00000d56,
- 0xfffff2aa, 0x00005b5b, 0xffffa4a5, 0x000062f9, 0xffff9d07, 0xfffff963, 0x0000069d, 0x000043ca,
- 0xffffbc36, 0xffffca44, 0x000035bc, 0x000059d4, 0xffffa62c, 0xffffd45a, 0x00002ba6, 0x00007bdf,
- 0xffff8421, 0xffffdf7c, 0x00002084, 0x00006699, 0xffff9967, 0x00007eaa, 0xffff8156, 0xffffaa7f,
- 0x00005581, 0x00002525, 0xffffdadb, 0x00004545, 0xffffbabb, 0x00000000, 0x06060000, 0xf9fa0000,
- 0x07fe0000, 0xf8020000, 0xfe080000, 0x01f80000, 0x0d0d0000, 0xf2f30000, 0x0f040000, 0xf0fc0000,
- 0x040f0000, 0x00000606, 0x06060606, 0xf9fa0606, 0x07fe0606, 0xf8020606, 0xfe080606, 0x01f80606,
- 0x0d0d0606, 0xf2f30606, 0x0f040606, 0xf0fc0606, 0x040f0606, 0xfffff9fa, 0x0605f9fa, 0xf9f9f9fa,
- 0x07fdf9fa, 0xf801f9fa, 0xfe07f9fa, 0x01f7f9fa, 0x0d0cf9fa, 0xf2f2f9fa, 0x0f03f9fa, 0xf0fbf9fa,
- 0x040ef9fa, 0x000007fe, 0x060607fe, 0xf9fa07fe, 0x07fe07fe, 0xf80207fe, 0xfe0807fe, 0x01f807fe,
- 0x0d0d07fe, 0xf2f307fe, 0x0f0407fe, 0xf0fc07fe, 0x040f07fe, 0xfffff802, 0x0605f802, 0xf9f9f802,
- 0x07fdf802, 0xf801f802, 0xfe07f802, 0x01f7f802, 0x0d0cf802, 0xf2f2f802, 0x0f03f802, 0xf0fbf802,
- 0x040ef802, 0xfffffe08, 0x0605fe08, 0xf9f9fe08, 0x07fdfe08, 0xf801fe08, 0xfe07fe08, 0x01f7fe08,
- 0x0d0cfe08, 0xf2f2fe08, 0x0f03fe08, 0xf0fbfe08, 0x040efe08, 0x000001f8, 0x060601f8, 0xf9fa01f8,
- 0x07fe01f8, 0xf80201f8, 0xfe0801f8, 0x01f801f8, 0x0d0d01f8, 0xf2f301f8, 0x0f0401f8, 0xf0fc01f8,
- 0x040f01f8, 0x00000d0d, 0x06060d0d, 0xf9fa0d0d, 0x07fe0d0d, 0xf8020d0d, 0xfe080d0d, 0x01f80d0d,
- 0x0d0d0d0d, 0xf2f30d0d, 0x0f040d0d, 0xf0fc0d0d, 0x040f0d0d, 0xfffff2f3, 0x0605f2f3, 0xf9f9f2f3,
- 0x07fdf2f3, 0xf801f2f3, 0xfe07f2f3, 0x01f7f2f3, 0x0d0cf2f3, 0xf2f2f2f3, 0x0f03f2f3, 0xf0fbf2f3,
- 0x040ef2f3, 0x00000f04, 0x06060f04, 0xf9fa0f04, 0x07fe0f04, 0xf8020f04, 0xfe080f04, 0x01f80f04,
- 0x0d0d0f04, 0xf2f30f04, 0x0f040f04, 0xf0fc0f04, 0x040f0f04, 0xfffff0fc, 0x0605f0fc, 0xf9f9f0fc,
- 0x07fdf0fc, 0xf801f0fc, 0xfe07f0fc, 0x01f7f0fc, 0x0d0cf0fc, 0xf2f2f0fc, 0x0f03f0fc, 0xf0fbf0fc,
- 0x040ef0fc, 0x0000040f, 0x0606040f, 0xf9fa040f, 0x07fe040f, 0xf802040f, 0xfe08040f, 0x01f8040f,
- 0x0d0d040f, 0xf2f3040f, 0x0f04040f, 0xf0fc040f, 0x040f040f, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000707, 0xfffff8f9, 0x000009fd, 0xfffff603, 0xfffffd0a, 0x000002f6, 0x00001010,
- 0xffffeff0, 0x00001205, 0xffffedfb, 0x00000512, 0xfffffaee, 0x00000cf3, 0xfffff30d, 0x000014fa,
- 0xffffeb06, 0xfffffa15, 0x000005eb, 0x00001e0f, 0xffffe1f1, 0x00000f1e, 0xfffff0e2, 0x00001e1e,
- 0xffffe1e2, 0x00002202, 0xffffddfe, 0x00000222, 0xfffffdde, 0x00001bed, 0xffffe413, 0xffffed1c,
- 0x000012e4, 0x00003620, 0xffffc9e0, 0x00002036, 0xffffdfca, 0x000028f5, 0xffffd70b, 0xfffff529,
- 0x00000ad7, 0x0000370f, 0xffffc8f1, 0x00000f37, 0xfffff0c9, 0x00003939, 0xffffc6c7, 0x00003eff,
- 0xffffc101, 0xffffff3f, 0x000000c1, 0x000027d8, 0xffffd828, 0x000036e2, 0xffffc91e, 0xffffe237,
- 0x00001dc9, 0x00005e25, 0xffffa1db, 0x0000255e, 0xffffdaa2, 0x00006041, 0xffff9fbf, 0x00004160,
- 0xffffbea0, 0x00004deb, 0xffffb215, 0xffffeb4e, 0x000014b2, 0x0000640f, 0xffff9bf1, 0x00000f64,
- 0xfffff09c, 0x00006a6a, 0xffff9596, 0x000073f8, 0xffff8c08, 0xfffff874, 0x0000078c, 0x00004ec1,
- 0xffffb13f, 0xffffc14f, 0x00003eb1, 0x000068cd, 0xffff9733, 0xffffcd69, 0x00003297, 0x00007788,
- 0xffff8878, 0x00002b2b, 0xffffd4d5, 0x00005050, 0xffffafb0, 0x00000000, 0x07070000, 0xf8f90000,
- 0x09fd0000, 0xf6030000, 0xfd0a0000, 0x02f60000, 0x10100000, 0xeff00000, 0x12050000, 0xedfb0000,
- 0x05120000, 0x00000707, 0x07070707, 0xf8f90707, 0x09fd0707, 0xf6030707, 0xfd0a0707, 0x02f60707,
- 0x10100707, 0xeff00707, 0x12050707, 0xedfb0707, 0x05120707, 0xfffff8f9, 0x0706f8f9, 0xf8f8f8f9,
- 0x09fcf8f9, 0xf602f8f9, 0xfd09f8f9, 0x02f5f8f9, 0x100ff8f9, 0xefeff8f9, 0x1204f8f9, 0xedfaf8f9,
- 0x0511f8f9, 0x000009fd, 0x070709fd, 0xf8f909fd, 0x09fd09fd, 0xf60309fd, 0xfd0a09fd, 0x02f609fd,
- 0x101009fd, 0xeff009fd, 0x120509fd, 0xedfb09fd, 0x051209fd, 0xfffff603, 0x0706f603, 0xf8f8f603,
- 0x09fcf603, 0xf602f603, 0xfd09f603, 0x02f5f603, 0x100ff603, 0xefeff603, 0x1204f603, 0xedfaf603,
- 0x0511f603, 0xfffffd0a, 0x0706fd0a, 0xf8f8fd0a, 0x09fcfd0a, 0xf602fd0a, 0xfd09fd0a, 0x02f5fd0a,
- 0x100ffd0a, 0xefeffd0a, 0x1204fd0a, 0xedfafd0a, 0x0511fd0a, 0x000002f6, 0x070702f6, 0xf8f902f6,
- 0x09fd02f6, 0xf60302f6, 0xfd0a02f6, 0x02f602f6, 0x101002f6, 0xeff002f6, 0x120502f6, 0xedfb02f6,
- 0x051202f6, 0x00001010, 0x07071010, 0xf8f91010, 0x09fd1010, 0xf6031010, 0xfd0a1010, 0x02f61010,
- 0x10101010, 0xeff01010, 0x12051010, 0xedfb1010, 0x05121010, 0xffffeff0, 0x0706eff0, 0xf8f8eff0,
- 0x09fceff0, 0xf602eff0, 0xfd09eff0, 0x02f5eff0, 0x100feff0, 0xefefeff0, 0x1204eff0, 0xedfaeff0,
- 0x0511eff0, 0x00001205, 0x07071205, 0xf8f91205, 0x09fd1205, 0xf6031205, 0xfd0a1205, 0x02f61205,
- 0x10101205, 0xeff01205, 0x12051205, 0xedfb1205, 0x05121205, 0xffffedfb, 0x0706edfb, 0xf8f8edfb,
- 0x09fcedfb, 0xf602edfb, 0xfd09edfb, 0x02f5edfb, 0x100fedfb, 0xefefedfb, 0x1204edfb, 0xedfaedfb,
- 0x0511edfb, 0x00000512, 0x07070512, 0xf8f90512, 0x09fd0512, 0xf6030512, 0xfd0a0512, 0x02f60512,
- 0x10100512, 0xeff00512, 0x12050512, 0xedfb0512, 0x05120512, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000808, 0xfffff7f8, 0x00000afd, 0xfffff503, 0xfffffd0b, 0x000002f5, 0x00001212,
- 0xffffedee, 0x00001405, 0xffffebfb, 0x00000514, 0xfffffaec, 0x00000ef1, 0xfffff10f, 0x000017f9,
- 0xffffe807, 0xfffff918, 0x000006e8, 0x00002311, 0xffffdcef, 0x00001123, 0xffffeedd, 0x00002222,
- 0xffffddde, 0x00002603, 0xffffd9fd, 0x00000326, 0xfffffcda, 0x00001fea, 0xffffe016, 0xffffea20,
- 0x000015e0, 0x00003d25, 0xffffc2db, 0x0000253d, 0xffffdac3, 0x00002ef3, 0xffffd10d, 0xfffff32f,
- 0x00000cd1, 0x00003f11, 0xffffc0ef, 0x0000113f, 0xffffeec1, 0x00004141, 0xffffbebf, 0x000047ff,
- 0xffffb801, 0xffffff48, 0x000000b8, 0x00002dd2, 0xffffd22e, 0x00003edd, 0xffffc123, 0xffffdd3f,
- 0x000022c1, 0x00006b2b, 0xffff94d5, 0x00002b6b, 0xffffd495, 0x00006e4b, 0xffff91b5, 0x00004b6e,
- 0xffffb492, 0x000058e8, 0xffffa718, 0xffffe859, 0x000017a7, 0x00007211, 0xffff8def, 0x00001172,
- 0xffffee8e, 0x00007979, 0xffff8687, 0x00005ab8, 0xffffa548, 0xffffb85b, 0x000047a5, 0x000077c6,
- 0xffff883a, 0xffffc678, 0x00003988, 0x00003131, 0xffffcecf, 0x00005c5c, 0xffffa3a4, 0x00000000,
- 0x08080000, 0xf7f80000, 0x0afd0000, 0xf5030000, 0xfd0b0000, 0x02f50000, 0x12120000, 0xedee0000,
- 0x14050000, 0xebfb0000, 0x05140000, 0x00000808, 0x08080808, 0xf7f80808, 0x0afd0808, 0xf5030808,
- 0xfd0b0808, 0x02f50808, 0x12120808, 0xedee0808, 0x14050808, 0xebfb0808, 0x05140808, 0xfffff7f8,
- 0x0807f7f8, 0xf7f7f7f8, 0x0afcf7f8, 0xf502f7f8, 0xfd0af7f8, 0x02f4f7f8, 0x1211f7f8, 0xededf7f8,
- 0x1404f7f8, 0xebfaf7f8, 0x0513f7f8, 0x00000afd, 0x08080afd, 0xf7f80afd, 0x0afd0afd, 0xf5030afd,
- 0xfd0b0afd, 0x02f50afd, 0x12120afd, 0xedee0afd, 0x14050afd, 0xebfb0afd, 0x05140afd, 0xfffff503,
- 0x0807f503, 0xf7f7f503, 0x0afcf503, 0xf502f503, 0xfd0af503, 0x02f4f503, 0x1211f503, 0xededf503,
- 0x1404f503, 0xebfaf503, 0x0513f503, 0xfffffd0b, 0x0807fd0b, 0xf7f7fd0b, 0x0afcfd0b, 0xf502fd0b,
- 0xfd0afd0b, 0x02f4fd0b, 0x1211fd0b, 0xededfd0b, 0x1404fd0b, 0xebfafd0b, 0x0513fd0b, 0x000002f5,
- 0x080802f5, 0xf7f802f5, 0x0afd02f5, 0xf50302f5, 0xfd0b02f5, 0x02f502f5, 0x121202f5, 0xedee02f5,
- 0x140502f5, 0xebfb02f5, 0x051402f5, 0x00001212, 0x08081212, 0xf7f81212, 0x0afd1212, 0xf5031212,
- 0xfd0b1212, 0x02f51212, 0x12121212, 0xedee1212, 0x14051212, 0xebfb1212, 0x05141212, 0xffffedee,
- 0x0807edee, 0xf7f7edee, 0x0afcedee, 0xf502edee, 0xfd0aedee, 0x02f4edee, 0x1211edee, 0xedededee,
- 0x1404edee, 0xebfaedee, 0x0513edee, 0x00001405, 0x08081405, 0xf7f81405, 0x0afd1405, 0xf5031405,
- 0xfd0b1405, 0x02f51405, 0x12121405, 0xedee1405, 0x14051405, 0xebfb1405, 0x05141405, 0xffffebfb,
- 0x0807ebfb, 0xf7f7ebfb, 0x0afcebfb, 0xf502ebfb, 0xfd0aebfb, 0x02f4ebfb, 0x1211ebfb, 0xededebfb,
- 0x1404ebfb, 0xebfaebfb, 0x0513ebfb, 0x00000514, 0x08080514, 0xf7f80514, 0x0afd0514, 0xf5030514,
- 0xfd0b0514, 0x02f50514, 0x12120514, 0xedee0514, 0x14050514, 0xebfb0514, 0x05140514, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000909, 0xfffff6f7, 0x00000bfd, 0xfffff403, 0xfffffd0c, 0x000002f4, 0x00001414,
- 0xffffebec, 0x00001706, 0xffffe8fa, 0x00000617, 0xfffff9e9, 0x000010ef, 0xffffef11, 0x00001af9,
- 0xffffe507, 0xfffff91b, 0x000006e5, 0x00002713, 0xffffd8ed, 0x00001327, 0xffffecd9, 0x00002727,
- 0xffffd8d9, 0x00002b03, 0xffffd4fd, 0x0000032b, 0xfffffcd5, 0x000023e8, 0xffffdc18, 0xffffe824,
- 0x000017dc, 0x0000452a, 0xffffbad6, 0x00002a45, 0xffffd5bb, 0x000034f2, 0xffffcb0e, 0xfffff235,
- 0x00000dcb, 0x00004713, 0xffffb8ed, 0x00001347, 0xffffecb9, 0x00004949, 0xffffb6b7, 0x00004ffe,
- 0xffffb002, 0xfffffe50, 0x000001b0, 0x000033cc, 0xffffcc34, 0x000045d9, 0xffffba27, 0xffffd946,
- 0x000026ba, 0x00007930, 0xffff86d0, 0x00003079, 0xffffcf87, 0x00007c54, 0xffff83ac, 0x0000547c,
- 0xffffab84, 0x000063e5, 0xffff9c1b, 0xffffe564, 0x00001a9c, 0x000065af, 0xffff9a51, 0xffffaf66,
- 0x0000509a, 0x00003737, 0xffffc8c9, 0x00006868, 0xffff9798, 0x00000000, 0x09090000, 0xf6f70000,
- 0x0bfd0000, 0xf4030000, 0xfd0c0000, 0x02f40000, 0x14140000, 0xebec0000, 0x17060000, 0xe8fa0000,
- 0x06170000, 0xf9e90000, 0x00000909, 0x09090909, 0xf6f70909, 0x0bfd0909, 0xf4030909, 0xfd0c0909,
- 0x02f40909, 0x14140909, 0xebec0909, 0x17060909, 0xe8fa0909, 0x06170909, 0xf9e90909, 0xfffff6f7,
- 0x0908f6f7, 0xf6f6f6f7, 0x0bfcf6f7, 0xf402f6f7, 0xfd0bf6f7, 0x02f3f6f7, 0x1413f6f7, 0xebebf6f7,
- 0x1705f6f7, 0xe8f9f6f7, 0x0616f6f7, 0xf9e8f6f7, 0x00000bfd, 0x09090bfd, 0xf6f70bfd, 0x0bfd0bfd,
- 0xf4030bfd, 0xfd0c0bfd, 0x02f40bfd, 0x14140bfd, 0xebec0bfd, 0x17060bfd, 0xe8fa0bfd, 0x06170bfd,
- 0xf9e90bfd, 0xfffff403, 0x0908f403, 0xf6f6f403, 0x0bfcf403, 0xf402f403, 0xfd0bf403, 0x02f3f403,
- 0x1413f403, 0xebebf403, 0x1705f403, 0xe8f9f403, 0x0616f403, 0xf9e8f403, 0xfffffd0c, 0x0908fd0c,
- 0xf6f6fd0c, 0x0bfcfd0c, 0xf402fd0c, 0xfd0bfd0c, 0x02f3fd0c, 0x1413fd0c, 0xebebfd0c, 0x1705fd0c,
- 0xe8f9fd0c, 0x0616fd0c, 0xf9e8fd0c, 0x000002f4, 0x090902f4, 0xf6f702f4, 0x0bfd02f4, 0xf40302f4,
- 0xfd0c02f4, 0x02f402f4, 0x141402f4, 0xebec02f4, 0x170602f4, 0xe8fa02f4, 0x061702f4, 0xf9e902f4,
- 0x00001414, 0x09091414, 0xf6f71414, 0x0bfd1414, 0xf4031414, 0xfd0c1414, 0x02f41414, 0x14141414,
- 0xebec1414, 0x17061414, 0xe8fa1414, 0x06171414, 0xf9e91414, 0xffffebec, 0x0908ebec, 0xf6f6ebec,
- 0x0bfcebec, 0xf402ebec, 0xfd0bebec, 0x02f3ebec, 0x1413ebec, 0xebebebec, 0x1705ebec, 0xe8f9ebec,
- 0x0616ebec, 0xf9e8ebec, 0x00001706, 0x09091706, 0xf6f71706, 0x0bfd1706, 0xf4031706, 0xfd0c1706,
- 0x02f41706, 0x14141706, 0xebec1706, 0x17061706, 0xe8fa1706, 0x06171706, 0xf9e91706, 0xffffe8fa,
- 0x0908e8fa, 0xf6f6e8fa, 0x0bfce8fa, 0xf402e8fa, 0xfd0be8fa, 0x02f3e8fa, 0x1413e8fa, 0xebebe8fa,
- 0x1705e8fa, 0xe8f9e8fa, 0x0616e8fa, 0xf9e8e8fa, 0x00000617, 0x09090617, 0xf6f70617, 0x0bfd0617,
- 0xf4030617, 0xfd0c0617, 0x02f40617, 0x14140617, 0xebec0617, 0x17060617, 0xe8fa0617, 0x06170617,
- 0xf9e90617, 0xfffff9e9, 0x0908f9e9, 0xf6f6f9e9, 0x0bfcf9e9, 0xf402f9e9, 0xfd0bf9e9, 0x02f3f9e9,
- 0x1413f9e9, 0xebebf9e9, 0x1705f9e9, 0xe8f9f9e9, 0x0616f9e9, 0xf9e8f9e9, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000200, 0xfffffe00, 0x00000002, 0xfffffffe, 0x00000404,
- 0xfffffbfc, 0x00000400, 0xfffffc00, 0x00000004, 0xfffffffc, 0x000003fc, 0xfffffc04, 0x000005fe,
- 0xfffffa02, 0xfffffe06, 0x000001fa, 0x00000804, 0xfffff7fc, 0x00000408, 0xfffffbf8, 0x00000808,
- 0xfffff7f8, 0x00000a00, 0xfffff600, 0x0000000a, 0xfffffff6, 0x000007fc, 0xfffff804, 0xfffffc08,
- 0x000003f8, 0x00000e08, 0xfffff1f8, 0x0000080e, 0xfffff7f2, 0x00000bfe, 0xfffff402, 0xfffffe0c,
- 0x000001f4, 0x00001004, 0xffffeffc, 0x00000410, 0xfffffbf0, 0x00001010, 0xffffeff0, 0x00001200,
- 0xffffee00, 0x00000012, 0xffffffee, 0x00000bf4, 0xfffff40c, 0x00000ff8, 0xfffff008, 0xfffff810,
- 0x000007f0, 0x00001a0a, 0xffffe5f6, 0x00000a1a, 0xfffff5e6, 0x00001c12, 0xffffe3ee, 0x0000121c,
- 0xffffede4, 0x000015fa, 0xffffea06, 0xfffffa16, 0x000005ea, 0x00001c04, 0xffffe3fc, 0x0000041c,
- 0xfffffbe4, 0x00001e1e, 0xffffe1e2, 0x00001ffe, 0xffffe002, 0xfffffe20, 0x000001e0, 0x000015ee,
- 0xffffea12, 0xffffee16, 0x000011ea, 0x00001df2, 0xffffe20e, 0xfffff21e, 0x00000de2, 0x00002e16,
- 0xffffd1ea, 0x0000162e, 0xffffe9d2, 0x00002e0c, 0xffffd1f4, 0x00000c2e, 0xfffff3d2, 0x00003022,
- 0xffffcfde, 0x00002230, 0xffffddd0, 0x000027f6, 0xffffd80a, 0xfffff628, 0x000009d8, 0x00003204,
- 0xffffcdfc, 0x00000432, 0xfffffbce, 0x00003636, 0xffffc9ca, 0x000021de, 0xffffde22, 0x000029e4,
- 0xffffd61c, 0xffffe42a, 0x00001bd6, 0x00003bfa, 0xffffc406, 0xfffffa3c, 0x000005c4, 0x00004c1a,
- 0xffffb3e6, 0x00001a4c, 0xffffe5b4, 0x00004c2a, 0xffffb3d6, 0x00002a4c, 0xffffd5b4, 0x000035e8,
- 0xffffca18, 0xffffe836, 0x000017ca, 0x00004e0e, 0xffffb1f2, 0x00000e4e, 0xfffff1b2, 0x0000523e,
- 0xffffadc2, 0x00003e52, 0xffffc1ae, 0x000049ec, 0xffffb614, 0xffffec4a, 0x000013b6, 0x00005802,
- 0xffffa7fe, 0x00000258, 0xfffffda8, 0x00005c5c, 0xffffa3a4, 0x00003bcc, 0xffffc434, 0xffffcc3c,
- 0x000033c4, 0x00007634, 0xffff89cc, 0x00003476, 0xffffcb8a, 0x000049d4, 0xffffb62c, 0xffffd44a,
- 0x00002bb6, 0x0000764a, 0xffff89b6, 0x00004a76, 0xffffb58a, 0x00007620, 0xffff89e0, 0x00002076,
- 0xffffdf8a, 0x000065f4, 0xffff9a0c, 0xfffff466, 0x00000b9a, 0x00005fd8, 0xffffa028, 0xffffd860,
- 0x000027a0, 0x000075de, 0xffff8a22, 0xffffde76, 0x0000218a, 0x000057a8, 0xffffa858, 0x000067b2,
- 0xffff984e, 0xffffb268, 0x00004d98, 0x00000c0c, 0xfffff3f4, 0x00001616, 0xffffe9ea, 0x00002a2a,
- 0xffffd5d6, 0x00004848, 0xffffb7b8, 0x00000000, 0x02020000, 0xfdfe0000, 0x02000000, 0xfe000000,
- 0x00020000, 0xfffe0000, 0x00000202, 0x02020202, 0xfdfe0202, 0x02000202, 0xfe000202, 0x00020202,
- 0xfffe0202, 0xfffffdfe, 0x0201fdfe, 0xfdfdfdfe, 0x01fffdfe, 0xfdfffdfe, 0x0001fdfe, 0xfffdfdfe,
- 0x00000200, 0x02020200, 0xfdfe0200, 0x02000200, 0xfe000200, 0x00020200, 0xfffe0200, 0xfffffe00,
- 0x0201fe00, 0xfdfdfe00, 0x01fffe00, 0xfdfffe00, 0x0001fe00, 0xfffdfe00, 0x00000002, 0x02020002,
- 0xfdfe0002, 0x02000002, 0xfe000002, 0x00020002, 0xfffe0002, 0xfffffffe, 0x0201fffe, 0xfdfdfffe,
- 0x01fffffe, 0xfdfffffe, 0x0001fffe, 0xfffdfffe, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000303, 0xfffffcfd, 0x00000300, 0xfffffd00, 0x00000003, 0xfffffffd, 0x00000606,
- 0xfffff9fa, 0x00000903, 0xfffff6fd, 0x00000309, 0xfffffcf7, 0x000008fd, 0xfffff703, 0xfffffd09,
- 0x000002f7, 0x000005fa, 0xfffffa06, 0x00000c06, 0xfffff3fa, 0x0000060c, 0xfffff9f4, 0x00000c0c,
- 0xfffff3f4, 0x00000f00, 0xfffff100, 0x0000000f, 0xfffffff1, 0x00000bf7, 0xfffff409, 0xfffff70c,
- 0x000008f4, 0x0000180f, 0xffffe7f1, 0x00000f18, 0xfffff0e8, 0x000011fa, 0xffffee06, 0xfffffa12,
- 0x000005ee, 0x00001806, 0xffffe7fa, 0x00000618, 0xfffff9e8, 0x00001818, 0xffffe7e8, 0x00001b00,
- 0xffffe500, 0x0000001b, 0xffffffe5, 0x000011ee, 0xffffee12, 0x000017f4, 0xffffe80c, 0xfffff418,
- 0x00000be8, 0x0000270f, 0xffffd8f1, 0x00000f27, 0xfffff0d9, 0x00002a1b, 0xffffd5e5, 0x00001b2a,
- 0xffffe4d6, 0x000020f7, 0xffffdf09, 0xfffff721, 0x000008df, 0x00002a06, 0xffffd5fa, 0x0000062a,
- 0xfffff9d6, 0x00002d2d, 0xffffd2d3, 0x000032fd, 0xffffcd03, 0xfffffd33, 0x000002cd, 0x000020e5,
- 0xffffdf1b, 0xffffe521, 0x00001adf, 0x00002ceb, 0xffffd315, 0xffffeb2d, 0x000014d3, 0x00004521,
- 0xffffbadf, 0x00002145, 0xffffdebb, 0x00004512, 0xffffbaee, 0x00001245, 0xffffedbb, 0x00004836,
- 0xffffb7ca, 0x00003648, 0xffffc9b8, 0x00003eee, 0xffffc112, 0xffffee3f, 0x000011c1, 0x00004e06,
- 0xffffb1fa, 0x0000064e, 0xfffff9b2, 0x00005151, 0xffffaeaf, 0x000032cd, 0xffffcd33, 0x00003ed6,
- 0xffffc12a, 0xffffd63f, 0x000029c1, 0x000059f7, 0xffffa609, 0xfffff75a, 0x000008a6, 0x0000722a,
- 0xffff8dd6, 0x00002a72, 0xffffd58e, 0x0000753f, 0xffff8ac1, 0x00003f75, 0xffffc08b, 0x000050dc,
- 0xffffaf24, 0xffffdc51, 0x000023af, 0x00007815, 0xffff87eb, 0x00001578, 0xffffea88, 0x00007b60,
- 0xffff84a0, 0x0000607b, 0xffff9f85, 0x00006ee2, 0xffff911e, 0xffffe26f, 0x00001d91, 0x00005cb2,
- 0xffffa34e, 0xffffb25d, 0x00004da3, 0x000071bb, 0xffff8e45, 0xffffbb72, 0x0000448e, 0x00001212,
- 0xffffedee, 0x00002121, 0xffffdedf, 0x00003f3f, 0xffffc0c1, 0x00006c6c, 0xffff9394, 0x00000000,
- 0x03030000, 0xfcfd0000, 0x03000000, 0xfd000000, 0x00030000, 0xfffd0000, 0x06060000, 0xf9fa0000,
- 0x00000303, 0x03030303, 0xfcfd0303, 0x03000303, 0xfd000303, 0x00030303, 0xfffd0303, 0x06060303,
- 0xf9fa0303, 0xfffffcfd, 0x0302fcfd, 0xfcfcfcfd, 0x02fffcfd, 0xfcfffcfd, 0x0002fcfd, 0xfffcfcfd,
- 0x0605fcfd, 0xf9f9fcfd, 0x00000300, 0x03030300, 0xfcfd0300, 0x03000300, 0xfd000300, 0x00030300,
- 0xfffd0300, 0x06060300, 0xf9fa0300, 0xfffffd00, 0x0302fd00, 0xfcfcfd00, 0x02fffd00, 0xfcfffd00,
- 0x0002fd00, 0xfffcfd00, 0x0605fd00, 0xf9f9fd00, 0x00000003, 0x03030003, 0xfcfd0003, 0x03000003,
- 0xfd000003, 0x00030003, 0xfffd0003, 0x06060003, 0xf9fa0003, 0xfffffffd, 0x0302fffd, 0xfcfcfffd,
- 0x02fffffd, 0xfcfffffd, 0x0002fffd, 0xfffcfffd, 0x0605fffd, 0xf9f9fffd, 0x00000606, 0x03030606,
- 0xfcfd0606, 0x03000606, 0xfd000606, 0x00030606, 0xfffd0606, 0x06060606, 0xf9fa0606, 0xfffff9fa,
- 0x0302f9fa, 0xfcfcf9fa, 0x02fff9fa, 0xfcfff9fa, 0x0002f9fa, 0xfffcf9fa, 0x0605f9fa, 0xf9f9f9fa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000404, 0xfffffbfc, 0x00000400, 0xfffffc00, 0x00000004, 0xfffffffc, 0x00000804,
- 0xfffff7fc, 0x00000408, 0xfffffbf8, 0x00000808, 0xfffff7f8, 0x000007f8, 0xfffff808, 0x00000bfc,
- 0xfffff404, 0xfffffc0c, 0x000003f4, 0x00001008, 0xffffeff8, 0x00000810, 0xfffff7f0, 0x00001010,
- 0xffffeff0, 0x00001400, 0xffffec00, 0x00000014, 0xffffffec, 0x00000ff4, 0xfffff00c, 0xfffff410,
- 0x00000bf0, 0x000017fc, 0xffffe804, 0xfffffc18, 0x000003e8, 0x00002010, 0xffffdff0, 0x00001020,
- 0xffffefe0, 0x00002008, 0xffffdff8, 0x00000820, 0xfffff7e0, 0x00002020, 0xffffdfe0, 0x00002400,
- 0xffffdc00, 0x00000024, 0xffffffdc, 0x000017e8, 0xffffe818, 0x00001ff0, 0xffffe010, 0xfffff020,
- 0x00000fe0, 0x00003414, 0xffffcbec, 0x00001434, 0xffffebcc, 0x00003824, 0xffffc7dc, 0x00002438,
- 0xffffdbc8, 0x00002bf4, 0xffffd40c, 0xfffff42c, 0x00000bd4, 0x00003808, 0xffffc7f8, 0x00000838,
- 0xfffff7c8, 0x00003c3c, 0xffffc3c4, 0x00003ffc, 0xffffc004, 0xfffffc40, 0x000003c0, 0x00002bdc,
- 0xffffd424, 0xffffdc2c, 0x000023d4, 0x00003be4, 0xffffc41c, 0xffffe43c, 0x00001bc4, 0x00005c2c,
- 0xffffa3d4, 0x00002c5c, 0xffffd3a4, 0x00005c18, 0xffffa3e8, 0x0000185c, 0xffffe7a4, 0x00006048,
- 0xffff9fb8, 0x00004860, 0xffffb7a0, 0x000053ec, 0xffffac14, 0xffffec54, 0x000013ac, 0x00006408,
- 0xffff9bf8, 0x00000864, 0xfffff79c, 0x00006c6c, 0xffff9394, 0x000043bc, 0xffffbc44, 0x000053c8,
- 0xffffac38, 0xffffc854, 0x000037ac, 0x000077f4, 0xffff880c, 0xfffff478, 0x00000b88, 0x00006bd0,
- 0xffff9430, 0xffffd06c, 0x00002f94, 0x00007b98, 0xffff8468, 0xffff987c, 0x00006784, 0x00001818,
- 0xffffe7e8, 0x00002c2c, 0xffffd3d4, 0x00005454, 0xffffabac, 0x00000000, 0x04040000, 0xfbfc0000,
- 0x04000000, 0xfc000000, 0x00040000, 0xfffc0000, 0x08040000, 0xf7fc0000, 0x04080000, 0x00000404,
- 0x04040404, 0xfbfc0404, 0x04000404, 0xfc000404, 0x00040404, 0xfffc0404, 0x08040404, 0xf7fc0404,
- 0x04080404, 0xfffffbfc, 0x0403fbfc, 0xfbfbfbfc, 0x03fffbfc, 0xfbfffbfc, 0x0003fbfc, 0xfffbfbfc,
- 0x0803fbfc, 0xf7fbfbfc, 0x0407fbfc, 0x00000400, 0x04040400, 0xfbfc0400, 0x04000400, 0xfc000400,
- 0x00040400, 0xfffc0400, 0x08040400, 0xf7fc0400, 0x04080400, 0xfffffc00, 0x0403fc00, 0xfbfbfc00,
- 0x03fffc00, 0xfbfffc00, 0x0003fc00, 0xfffbfc00, 0x0803fc00, 0xf7fbfc00, 0x0407fc00, 0x00000004,
- 0x04040004, 0xfbfc0004, 0x04000004, 0xfc000004, 0x00040004, 0xfffc0004, 0x08040004, 0xf7fc0004,
- 0x04080004, 0xfffffffc, 0x0403fffc, 0xfbfbfffc, 0x03fffffc, 0xfbfffffc, 0x0003fffc, 0xfffbfffc,
- 0x0803fffc, 0xf7fbfffc, 0x0407fffc, 0x00000804, 0x04040804, 0xfbfc0804, 0x04000804, 0xfc000804,
- 0x00040804, 0xfffc0804, 0x08040804, 0xf7fc0804, 0x04080804, 0xfffff7fc, 0x0403f7fc, 0xfbfbf7fc,
- 0x03fff7fc, 0xfbfff7fc, 0x0003f7fc, 0xfffbf7fc, 0x0803f7fc, 0xf7fbf7fc, 0x0407f7fc, 0x00000408,
- 0x04040408, 0xfbfc0408, 0x04000408, 0xfc000408, 0x00040408, 0xfffc0408, 0x08040408, 0xf7fc0408,
- 0x04080408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000505, 0xfffffafb, 0x00000500, 0xfffffb00, 0x00000005, 0xfffffffb, 0x00000a0a,
- 0xfffff5f6, 0x00000f05, 0xfffff0fb, 0x0000050f, 0xfffffaf1, 0x000009f6, 0xfffff60a, 0x00000efb,
- 0xfffff105, 0xfffffb0f, 0x000004f1, 0x0000140a, 0xffffebf6, 0x00000a14, 0xfffff5ec, 0x00001414,
- 0xffffebec, 0x00001900, 0xffffe700, 0x00000019, 0xffffffe7, 0x000013f1, 0xffffec0f, 0xfffff114,
- 0x00000eec, 0x00002819, 0xffffd7e7, 0x00001928, 0xffffe6d8, 0x00001df6, 0xffffe20a, 0xfffff61e,
- 0x000009e2, 0x0000280a, 0xffffd7f6, 0x00000a28, 0xfffff5d8, 0x00002828, 0xffffd7d8, 0x00002d00,
- 0xffffd300, 0x0000002d, 0xffffffd3, 0x00001de2, 0xffffe21e, 0x000027ec, 0xffffd814, 0xffffec28,
- 0x000013d8, 0x00004119, 0xffffbee7, 0x00001941, 0xffffe6bf, 0x0000462d, 0xffffb9d3, 0x00002d46,
- 0xffffd2ba, 0x000036f1, 0xffffc90f, 0xfffff137, 0x00000ec9, 0x0000460a, 0xffffb9f6, 0x00000a46,
- 0xfffff5ba, 0x00004b4b, 0xffffb4b5, 0x000054fb, 0xffffab05, 0xfffffb55, 0x000004ab, 0x000036d3,
- 0xffffc92d, 0xffffd337, 0x00002cc9, 0x00004add, 0xffffb523, 0xffffdd4b, 0x000022b5, 0x00007337,
- 0xffff8cc9, 0x00003773, 0xffffc88d, 0x0000731e, 0xffff8ce2, 0x00001e73, 0xffffe18d, 0x0000785a,
- 0xffff87a6, 0x00005a78, 0xffffa588, 0x000068e2, 0xffff971e, 0xffffe269, 0x00001d97, 0x000054ab,
- 0xffffab55, 0x000068ba, 0xffff9746, 0xffffba69, 0x00004597, 0x00001e1e, 0xffffe1e2, 0x00003c3c,
- 0xffffc3c4, 0x00006969, 0xffff9697, 0x00000000, 0x05050000, 0xfafb0000, 0x05000000, 0xfb000000,
- 0x00050000, 0xfffb0000, 0x0a0a0000, 0xf5f60000, 0x0f050000, 0xf0fb0000, 0x00000505, 0x05050505,
- 0xfafb0505, 0x05000505, 0xfb000505, 0x00050505, 0xfffb0505, 0x0a0a0505, 0xf5f60505, 0x0f050505,
- 0xf0fb0505, 0xfffffafb, 0x0504fafb, 0xfafafafb, 0x04fffafb, 0xfafffafb, 0x0004fafb, 0xfffafafb,
- 0x0a09fafb, 0xf5f5fafb, 0x0f04fafb, 0xf0fafafb, 0x00000500, 0x05050500, 0xfafb0500, 0x05000500,
- 0xfb000500, 0x00050500, 0xfffb0500, 0x0a0a0500, 0xf5f60500, 0x0f050500, 0xf0fb0500, 0xfffffb00,
- 0x0504fb00, 0xfafafb00, 0x04fffb00, 0xfafffb00, 0x0004fb00, 0xfffafb00, 0x0a09fb00, 0xf5f5fb00,
- 0x0f04fb00, 0xf0fafb00, 0x00000005, 0x05050005, 0xfafb0005, 0x05000005, 0xfb000005, 0x00050005,
- 0xfffb0005, 0x0a0a0005, 0xf5f60005, 0x0f050005, 0xf0fb0005, 0xfffffffb, 0x0504fffb, 0xfafafffb,
- 0x04fffffb, 0xfafffffb, 0x0004fffb, 0xfffafffb, 0x0a09fffb, 0xf5f5fffb, 0x0f04fffb, 0xf0fafffb,
- 0x00000a0a, 0x05050a0a, 0xfafb0a0a, 0x05000a0a, 0xfb000a0a, 0x00050a0a, 0xfffb0a0a, 0x0a0a0a0a,
- 0xf5f60a0a, 0x0f050a0a, 0xf0fb0a0a, 0xfffff5f6, 0x0504f5f6, 0xfafaf5f6, 0x04fff5f6, 0xfafff5f6,
- 0x0004f5f6, 0xfffaf5f6, 0x0a09f5f6, 0xf5f5f5f6, 0x0f04f5f6, 0xf0faf5f6, 0x00000f05, 0x05050f05,
- 0xfafb0f05, 0x05000f05, 0xfb000f05, 0x00050f05, 0xfffb0f05, 0x0a0a0f05, 0xf5f60f05, 0x0f050f05,
- 0xf0fb0f05, 0xfffff0fb, 0x0504f0fb, 0xfafaf0fb, 0x04fff0fb, 0xfafff0fb, 0x0004f0fb, 0xfffaf0fb,
- 0x0a09f0fb, 0xf5f5f0fb, 0x0f04f0fb, 0xf0faf0fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000606, 0xfffff9fa, 0x00000600, 0xfffffa00, 0x00000006, 0xfffffffa, 0x00000c0c,
- 0xfffff3f4, 0x00000c06, 0xfffff3fa, 0x0000060c, 0xfffff9f4, 0x00000bf4, 0xfffff40c, 0x000011fa,
- 0xffffee06, 0xfffffa12, 0x000005ee, 0x0000180c, 0xffffe7f4, 0x00000c18, 0xfffff3e8, 0x00001818,
- 0xffffe7e8, 0x00001e00, 0xffffe200, 0x0000001e, 0xffffffe2, 0x000017ee, 0xffffe812, 0xffffee18,
- 0x000011e8, 0x0000301e, 0xffffcfe2, 0x00001e30, 0xffffe1d0, 0x000023fa, 0xffffdc06, 0xfffffa24,
- 0x000005dc, 0x0000300c, 0xffffcff4, 0x00000c30, 0xfffff3d0, 0x00003030, 0xffffcfd0, 0x00003600,
- 0xffffca00, 0x00000036, 0xffffffca, 0x000023dc, 0xffffdc24, 0x00002fe8, 0xffffd018, 0xffffe830,
- 0x000017d0, 0x00004e1e, 0xffffb1e2, 0x00001e4e, 0xffffe1b2, 0x00005436, 0xffffabca, 0x00003654,
- 0xffffc9ac, 0x000041ee, 0xffffbe12, 0xffffee42, 0x000011be, 0x0000540c, 0xffffabf4, 0x00000c54,
- 0xfffff3ac, 0x00005a5a, 0xffffa5a6, 0x00005ffa, 0xffffa006, 0xfffffa60, 0x000005a0, 0x000041ca,
- 0xffffbe36, 0xffffca42, 0x000035be, 0x000059d6, 0xffffa62a, 0xffffd65a, 0x000029a6, 0x00007de2,
- 0xffff821e, 0xffffe27e, 0x00001d82, 0x0000659a, 0xffff9a66, 0x00007dac, 0xffff8254, 0xffffac7e,
- 0x00005382, 0x00002424, 0xffffdbdc, 0x00004242, 0xffffbdbe, 0x00000000, 0x06060000, 0xf9fa0000,
- 0x06000000, 0xfa000000, 0x00060000, 0xfffa0000, 0x0c0c0000, 0xf3f40000, 0x0c060000, 0xf3fa0000,
- 0x060c0000, 0x00000606, 0x06060606, 0xf9fa0606, 0x06000606, 0xfa000606, 0x00060606, 0xfffa0606,
- 0x0c0c0606, 0xf3f40606, 0x0c060606, 0xf3fa0606, 0x060c0606, 0xfffff9fa, 0x0605f9fa, 0xf9f9f9fa,
- 0x05fff9fa, 0xf9fff9fa, 0x0005f9fa, 0xfff9f9fa, 0x0c0bf9fa, 0xf3f3f9fa, 0x0c05f9fa, 0xf3f9f9fa,
- 0x060bf9fa, 0x00000600, 0x06060600, 0xf9fa0600, 0x06000600, 0xfa000600, 0x00060600, 0xfffa0600,
- 0x0c0c0600, 0xf3f40600, 0x0c060600, 0xf3fa0600, 0x060c0600, 0xfffffa00, 0x0605fa00, 0xf9f9fa00,
- 0x05fffa00, 0xf9fffa00, 0x0005fa00, 0xfff9fa00, 0x0c0bfa00, 0xf3f3fa00, 0x0c05fa00, 0xf3f9fa00,
- 0x060bfa00, 0x00000006, 0x06060006, 0xf9fa0006, 0x06000006, 0xfa000006, 0x00060006, 0xfffa0006,
- 0x0c0c0006, 0xf3f40006, 0x0c060006, 0xf3fa0006, 0x060c0006, 0xfffffffa, 0x0605fffa, 0xf9f9fffa,
- 0x05fffffa, 0xf9fffffa, 0x0005fffa, 0xfff9fffa, 0x0c0bfffa, 0xf3f3fffa, 0x0c05fffa, 0xf3f9fffa,
- 0x060bfffa, 0x00000c0c, 0x06060c0c, 0xf9fa0c0c, 0x06000c0c, 0xfa000c0c, 0x00060c0c, 0xfffa0c0c,
- 0x0c0c0c0c, 0xf3f40c0c, 0x0c060c0c, 0xf3fa0c0c, 0x060c0c0c, 0xfffff3f4, 0x0605f3f4, 0xf9f9f3f4,
- 0x05fff3f4, 0xf9fff3f4, 0x0005f3f4, 0xfff9f3f4, 0x0c0bf3f4, 0xf3f3f3f4, 0x0c05f3f4, 0xf3f9f3f4,
- 0x060bf3f4, 0x00000c06, 0x06060c06, 0xf9fa0c06, 0x06000c06, 0xfa000c06, 0x00060c06, 0xfffa0c06,
- 0x0c0c0c06, 0xf3f40c06, 0x0c060c06, 0xf3fa0c06, 0x060c0c06, 0xfffff3fa, 0x0605f3fa, 0xf9f9f3fa,
- 0x05fff3fa, 0xf9fff3fa, 0x0005f3fa, 0xfff9f3fa, 0x0c0bf3fa, 0xf3f3f3fa, 0x0c05f3fa, 0xf3f9f3fa,
- 0x060bf3fa, 0x0000060c, 0x0606060c, 0xf9fa060c, 0x0600060c, 0xfa00060c, 0x0006060c, 0xfffa060c,
- 0x0c0c060c, 0xf3f4060c, 0x0c06060c, 0xf3fa060c, 0x060c060c, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000707, 0xfffff8f9, 0x00000700, 0xfffff900, 0x00000007, 0xfffffff9, 0x00000e0e,
- 0xfffff1f2, 0x00001507, 0xffffeaf9, 0x00000715, 0xfffff8eb, 0x00000df2, 0xfffff20e, 0x000014f9,
- 0xffffeb07, 0xfffff915, 0x000006eb, 0x00001c0e, 0xffffe3f2, 0x00000e1c, 0xfffff1e4, 0x00001c1c,
- 0xffffe3e4, 0x00002300, 0xffffdd00, 0x00000023, 0xffffffdd, 0x00001beb, 0xffffe415, 0xffffeb1c,
- 0x000014e4, 0x00003823, 0xffffc7dd, 0x00002338, 0xffffdcc8, 0x000029f2, 0xffffd60e, 0xfffff22a,
- 0x00000dd6, 0x0000380e, 0xffffc7f2, 0x00000e38, 0xfffff1c8, 0x00003838, 0xffffc7c8, 0x00003f00,
- 0xffffc100, 0x0000003f, 0xffffffc1, 0x000029d6, 0xffffd62a, 0x000037e4, 0xffffc81c, 0xffffe438,
- 0x00001bc8, 0x00005b23, 0xffffa4dd, 0x0000235b, 0xffffdca5, 0x0000623f, 0xffff9dc1, 0x00003f62,
- 0xffffc09e, 0x00004ceb, 0xffffb315, 0xffffeb4d, 0x000014b3, 0x0000620e, 0xffff9df2, 0x00000e62,
- 0xfffff19e, 0x00006969, 0xffff9697, 0x000076f9, 0xffff8907, 0xfffff977, 0x00000689, 0x00004cc1,
- 0xffffb33f, 0xffffc14d, 0x00003eb3, 0x000068cf, 0xffff9731, 0xffffcf69, 0x00003097, 0x00007689,
- 0xffff8977, 0x00002a2a, 0xffffd5d6, 0x00004d4d, 0xffffb2b3, 0x00000000, 0x07070000, 0xf8f90000,
- 0x07000000, 0xf9000000, 0x00070000, 0xfff90000, 0x0e0e0000, 0xf1f20000, 0x15070000, 0xeaf90000,
- 0x07150000, 0x00000707, 0x07070707, 0xf8f90707, 0x07000707, 0xf9000707, 0x00070707, 0xfff90707,
- 0x0e0e0707, 0xf1f20707, 0x15070707, 0xeaf90707, 0x07150707, 0xfffff8f9, 0x0706f8f9, 0xf8f8f8f9,
- 0x06fff8f9, 0xf8fff8f9, 0x0006f8f9, 0xfff8f8f9, 0x0e0df8f9, 0xf1f1f8f9, 0x1506f8f9, 0xeaf8f8f9,
- 0x0714f8f9, 0x00000700, 0x07070700, 0xf8f90700, 0x07000700, 0xf9000700, 0x00070700, 0xfff90700,
- 0x0e0e0700, 0xf1f20700, 0x15070700, 0xeaf90700, 0x07150700, 0xfffff900, 0x0706f900, 0xf8f8f900,
- 0x06fff900, 0xf8fff900, 0x0006f900, 0xfff8f900, 0x0e0df900, 0xf1f1f900, 0x1506f900, 0xeaf8f900,
- 0x0714f900, 0x00000007, 0x07070007, 0xf8f90007, 0x07000007, 0xf9000007, 0x00070007, 0xfff90007,
- 0x0e0e0007, 0xf1f20007, 0x15070007, 0xeaf90007, 0x07150007, 0xfffffff9, 0x0706fff9, 0xf8f8fff9,
- 0x06fffff9, 0xf8fffff9, 0x0006fff9, 0xfff8fff9, 0x0e0dfff9, 0xf1f1fff9, 0x1506fff9, 0xeaf8fff9,
- 0x0714fff9, 0x00000e0e, 0x07070e0e, 0xf8f90e0e, 0x07000e0e, 0xf9000e0e, 0x00070e0e, 0xfff90e0e,
- 0x0e0e0e0e, 0xf1f20e0e, 0x15070e0e, 0xeaf90e0e, 0x07150e0e, 0xfffff1f2, 0x0706f1f2, 0xf8f8f1f2,
- 0x06fff1f2, 0xf8fff1f2, 0x0006f1f2, 0xfff8f1f2, 0x0e0df1f2, 0xf1f1f1f2, 0x1506f1f2, 0xeaf8f1f2,
- 0x0714f1f2, 0x00001507, 0x07071507, 0xf8f91507, 0x07001507, 0xf9001507, 0x00071507, 0xfff91507,
- 0x0e0e1507, 0xf1f21507, 0x15071507, 0xeaf91507, 0x07151507, 0xffffeaf9, 0x0706eaf9, 0xf8f8eaf9,
- 0x06ffeaf9, 0xf8ffeaf9, 0x0006eaf9, 0xfff8eaf9, 0x0e0deaf9, 0xf1f1eaf9, 0x1506eaf9, 0xeaf8eaf9,
- 0x0714eaf9, 0x00000715, 0x07070715, 0xf8f90715, 0x07000715, 0xf9000715, 0x00070715, 0xfff90715,
- 0x0e0e0715, 0xf1f20715, 0x15070715, 0xeaf90715, 0x07150715, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000808, 0xfffff7f8, 0x00000800, 0xfffff800, 0x00000008, 0xfffffff8, 0x00001010,
- 0xffffeff0, 0x00001008, 0xffffeff8, 0x00000810, 0xfffff7f0, 0x00000ff0, 0xfffff010, 0x000017f8,
- 0xffffe808, 0xfffff818, 0x000007e8, 0x00002010, 0xffffdff0, 0x00001020, 0xffffefe0, 0x00002020,
- 0xffffdfe0, 0x00002800, 0xffffd800, 0x00000028, 0xffffffd8, 0x00001fe8, 0xffffe018, 0xffffe820,
- 0x000017e0, 0x00004028, 0xffffbfd8, 0x00002840, 0xffffd7c0, 0x00002ff0, 0xffffd010, 0xfffff030,
- 0x00000fd0, 0x00004010, 0xffffbff0, 0x00001040, 0xffffefc0, 0x00004040, 0xffffbfc0, 0x00004800,
- 0xffffb800, 0x00000048, 0xffffffb8, 0x00002fd0, 0xffffd030, 0x00003fe0, 0xffffc020, 0xffffe040,
- 0x00001fc0, 0x00006828, 0xffff97d8, 0x00002868, 0xffffd798, 0x00007048, 0xffff8fb8, 0x00004870,
- 0xffffb790, 0x000057e8, 0xffffa818, 0xffffe858, 0x000017a8, 0x00007010, 0xffff8ff0, 0x00001070,
- 0xffffef90, 0x00007878, 0xffff8788, 0x000057b8, 0xffffa848, 0xffffb858, 0x000047a8, 0x000077c8,
- 0xffff8838, 0xffffc878, 0x00003788, 0x00003030, 0xffffcfd0, 0x00005858, 0xffffa7a8, 0x00000000,
- 0x08080000, 0xf7f80000, 0x08000000, 0xf8000000, 0x00080000, 0xfff80000, 0x10100000, 0xeff00000,
- 0x10080000, 0xeff80000, 0x08100000, 0x00000808, 0x08080808, 0xf7f80808, 0x08000808, 0xf8000808,
- 0x00080808, 0xfff80808, 0x10100808, 0xeff00808, 0x10080808, 0xeff80808, 0x08100808, 0xfffff7f8,
- 0x0807f7f8, 0xf7f7f7f8, 0x07fff7f8, 0xf7fff7f8, 0x0007f7f8, 0xfff7f7f8, 0x100ff7f8, 0xefeff7f8,
- 0x1007f7f8, 0xeff7f7f8, 0x080ff7f8, 0x00000800, 0x08080800, 0xf7f80800, 0x08000800, 0xf8000800,
- 0x00080800, 0xfff80800, 0x10100800, 0xeff00800, 0x10080800, 0xeff80800, 0x08100800, 0xfffff800,
- 0x0807f800, 0xf7f7f800, 0x07fff800, 0xf7fff800, 0x0007f800, 0xfff7f800, 0x100ff800, 0xefeff800,
- 0x1007f800, 0xeff7f800, 0x080ff800, 0x00000008, 0x08080008, 0xf7f80008, 0x08000008, 0xf8000008,
- 0x00080008, 0xfff80008, 0x10100008, 0xeff00008, 0x10080008, 0xeff80008, 0x08100008, 0xfffffff8,
- 0x0807fff8, 0xf7f7fff8, 0x07fffff8, 0xf7fffff8, 0x0007fff8, 0xfff7fff8, 0x100ffff8, 0xefeffff8,
- 0x1007fff8, 0xeff7fff8, 0x080ffff8, 0x00001010, 0x08081010, 0xf7f81010, 0x08001010, 0xf8001010,
- 0x00081010, 0xfff81010, 0x10101010, 0xeff01010, 0x10081010, 0xeff81010, 0x08101010, 0xffffeff0,
- 0x0807eff0, 0xf7f7eff0, 0x07ffeff0, 0xf7ffeff0, 0x0007eff0, 0xfff7eff0, 0x100feff0, 0xefefeff0,
- 0x1007eff0, 0xeff7eff0, 0x080feff0, 0x00001008, 0x08081008, 0xf7f81008, 0x08001008, 0xf8001008,
- 0x00081008, 0xfff81008, 0x10101008, 0xeff01008, 0x10081008, 0xeff81008, 0x08101008, 0xffffeff8,
- 0x0807eff8, 0xf7f7eff8, 0x07ffeff8, 0xf7ffeff8, 0x0007eff8, 0xfff7eff8, 0x100feff8, 0xefefeff8,
- 0x1007eff8, 0xeff7eff8, 0x080feff8, 0x00000810, 0x08080810, 0xf7f80810, 0x08000810, 0xf8000810,
- 0x00080810, 0xfff80810, 0x10100810, 0xeff00810, 0x10080810, 0xeff80810, 0x08100810, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000909, 0xfffff6f7, 0x00000900, 0xfffff700, 0x00000009, 0xfffffff7, 0x00001212,
- 0xffffedee, 0x00001b09, 0xffffe4f7, 0x0000091b, 0xfffff6e5, 0x000011ee, 0xffffee12, 0x00001af7,
- 0xffffe509, 0xfffff71b, 0x000008e5, 0x00002412, 0xffffdbee, 0x00001224, 0xffffeddc, 0x00002424,
- 0xffffdbdc, 0x00002d00, 0xffffd300, 0x0000002d, 0xffffffd3, 0x000023e5, 0xffffdc1b, 0xffffe524,
- 0x00001adc, 0x0000482d, 0xffffb7d3, 0x00002d48, 0xffffd2b8, 0x000035ee, 0xffffca12, 0xffffee36,
- 0x000011ca, 0x00004812, 0xffffb7ee, 0x00001248, 0xffffedb8, 0x00004848, 0xffffb7b8, 0x00005100,
- 0xffffaf00, 0x00000051, 0xffffffaf, 0x000035ca, 0xffffca36, 0x000047dc, 0xffffb824, 0xffffdc48,
- 0x000023b8, 0x0000752d, 0xffff8ad3, 0x00002d75, 0xffffd28b, 0x00007e51, 0xffff81af, 0x0000517e,
- 0xffffae82, 0x000062e5, 0xffff9d1b, 0xffffe563, 0x00001a9d, 0x000062af, 0xffff9d51, 0xffffaf63,
- 0x0000509d, 0x00003636, 0xffffc9ca, 0x00006c6c, 0xffff9394, 0x00000000, 0x09090000, 0xf6f70000,
- 0x09000000, 0xf7000000, 0x00090000, 0xfff70000, 0x12120000, 0xedee0000, 0x1b090000, 0xe4f70000,
- 0x091b0000, 0xf6e50000, 0x00000909, 0x09090909, 0xf6f70909, 0x09000909, 0xf7000909, 0x00090909,
- 0xfff70909, 0x12120909, 0xedee0909, 0x1b090909, 0xe4f70909, 0x091b0909, 0xf6e50909, 0xfffff6f7,
- 0x0908f6f7, 0xf6f6f6f7, 0x08fff6f7, 0xf6fff6f7, 0x0008f6f7, 0xfff6f6f7, 0x1211f6f7, 0xededf6f7,
- 0x1b08f6f7, 0xe4f6f6f7, 0x091af6f7, 0xf6e4f6f7, 0x00000900, 0x09090900, 0xf6f70900, 0x09000900,
- 0xf7000900, 0x00090900, 0xfff70900, 0x12120900, 0xedee0900, 0x1b090900, 0xe4f70900, 0x091b0900,
- 0xf6e50900, 0xfffff700, 0x0908f700, 0xf6f6f700, 0x08fff700, 0xf6fff700, 0x0008f700, 0xfff6f700,
- 0x1211f700, 0xededf700, 0x1b08f700, 0xe4f6f700, 0x091af700, 0xf6e4f700, 0x00000009, 0x09090009,
- 0xf6f70009, 0x09000009, 0xf7000009, 0x00090009, 0xfff70009, 0x12120009, 0xedee0009, 0x1b090009,
- 0xe4f70009, 0x091b0009, 0xf6e50009, 0xfffffff7, 0x0908fff7, 0xf6f6fff7, 0x08fffff7, 0xf6fffff7,
- 0x0008fff7, 0xfff6fff7, 0x1211fff7, 0xededfff7, 0x1b08fff7, 0xe4f6fff7, 0x091afff7, 0xf6e4fff7,
- 0x00001212, 0x09091212, 0xf6f71212, 0x09001212, 0xf7001212, 0x00091212, 0xfff71212, 0x12121212,
- 0xedee1212, 0x1b091212, 0xe4f71212, 0x091b1212, 0xf6e51212, 0xffffedee, 0x0908edee, 0xf6f6edee,
- 0x08ffedee, 0xf6ffedee, 0x0008edee, 0xfff6edee, 0x1211edee, 0xedededee, 0x1b08edee, 0xe4f6edee,
- 0x091aedee, 0xf6e4edee, 0x00001b09, 0x09091b09, 0xf6f71b09, 0x09001b09, 0xf7001b09, 0x00091b09,
- 0xfff71b09, 0x12121b09, 0xedee1b09, 0x1b091b09, 0xe4f71b09, 0x091b1b09, 0xf6e51b09, 0xffffe4f7,
- 0x0908e4f7, 0xf6f6e4f7, 0x08ffe4f7, 0xf6ffe4f7, 0x0008e4f7, 0xfff6e4f7, 0x1211e4f7, 0xedede4f7,
- 0x1b08e4f7, 0xe4f6e4f7, 0x091ae4f7, 0xf6e4e4f7, 0x0000091b, 0x0909091b, 0xf6f7091b, 0x0900091b,
- 0xf700091b, 0x0009091b, 0xfff7091b, 0x1212091b, 0xedee091b, 0x1b09091b, 0xe4f7091b, 0x091b091b,
- 0xf6e5091b, 0xfffff6e5, 0x0908f6e5, 0xf6f6f6e5, 0x08fff6e5, 0xf6fff6e5, 0x0008f6e5, 0xfff6f6e5,
- 0x1211f6e5, 0xededf6e5, 0x1b08f6e5, 0xe4f6f6e5, 0x091af6e5, 0xf6e4f6e5, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000300, 0xfffffd00, 0x00000003, 0xfffffffd, 0x00000606,
- 0xfffff9fa, 0x00000700, 0xfffff900, 0x00000007, 0xfffffff9, 0x000004fb, 0xfffffb05, 0xfffffb05,
- 0x000004fb, 0x00000b06, 0xfffff4fa, 0x0000060b, 0xfffff9f5, 0x00000800, 0xfffff800, 0x00000008,
- 0xfffffff8, 0x00000b0b, 0xfffff4f5, 0x00000c00, 0xfffff400, 0x0000000c, 0xfffffff4, 0x0000110c,
- 0xffffeef4, 0x00000c11, 0xfffff3ef, 0x00001111, 0xffffeeef, 0x00001206, 0xffffedfa, 0x00000612,
- 0xfffff9ee, 0x00000af8, 0xfffff508, 0xfffff80b, 0x000007f5, 0x00000f00, 0xfffff100, 0x0000000f,
- 0xfffffff1, 0x00001400, 0xffffec00, 0x00000014, 0xffffffec, 0x00001912, 0xffffe6ee, 0x00001219,
- 0xffffede7, 0x0000190b, 0xffffe6f5, 0x00000b19, 0xfffff4e7, 0x00001919, 0xffffe6e7, 0x00000df2,
- 0xfffff20e, 0xfffff20e, 0x00000df2, 0x00001a00, 0xffffe600, 0x0000001a, 0xffffffe6, 0x000011f5,
- 0xffffee0b, 0xfffff512, 0x00000aee, 0x000015f9, 0xffffea07, 0xfffff916, 0x000006ea, 0x0000221a,
- 0xffffdde6, 0x00001a22, 0xffffe5de, 0x00002212, 0xffffddee, 0x00001222, 0xffffedde, 0x00002222,
- 0xffffddde, 0x0000230b, 0xffffdcf5, 0x00000b23, 0xfffff4dd, 0x00001d00, 0xffffe300, 0x0000001d,
- 0xffffffe3, 0x000015ed, 0xffffea13, 0xffffed16, 0x000012ea, 0x000019f1, 0xffffe60f, 0xfffff11a,
- 0x00000ee6, 0x00002500, 0xffffdb00, 0x00000025, 0xffffffdb, 0x00002c1b, 0xffffd3e5, 0x00001b2c,
- 0xffffe4d4, 0x00002c24, 0xffffd3dc, 0x0000242c, 0xffffdbd4, 0x00002c12, 0xffffd3ee, 0x0000122c,
- 0xffffedd4, 0x000020f6, 0xffffdf0a, 0xfffff621, 0x000009df, 0x00002d2d, 0xffffd2d3, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000300, 0xfffffd00, 0x00000003, 0xfffffffd, 0x00000606,
- 0xfffff9fa, 0x00000700, 0xfffff900, 0x02020000, 0x02020202, 0x0201fdfe, 0x02020300, 0x0201fd00,
- 0x02020003, 0x0201fffd, 0x02020606, 0x0201f9fa, 0x02020700, 0x0201f900, 0xfdfe0000, 0xfdfe0202,
- 0xfdfdfdfe, 0xfdfe0300, 0xfdfdfd00, 0xfdfe0003, 0xfdfdfffd, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0700,
- 0xfdfdf900, 0x03000000, 0x03000202, 0x02fffdfe, 0x03000300, 0x02fffd00, 0x03000003, 0x02fffffd,
- 0x03000606, 0x02fff9fa, 0x03000700, 0x02fff900, 0xfd000000, 0xfd000202, 0xfcfffdfe, 0xfd000300,
- 0xfcfffd00, 0xfd000003, 0xfcfffffd, 0xfd000606, 0xfcfff9fa, 0xfd000700, 0xfcfff900, 0x00030000,
- 0x00030202, 0x0002fdfe, 0x00030300, 0x0002fd00, 0x00030003, 0x0002fffd, 0x00030606, 0x0002f9fa,
- 0x00030700, 0x0002f900, 0xfffd0000, 0xfffd0202, 0xfffcfdfe, 0xfffd0300, 0xfffcfd00, 0xfffd0003,
- 0xfffcfffd, 0xfffd0606, 0xfffcf9fa, 0xfffd0700, 0xfffcf900, 0x06060000, 0x06060202, 0x0605fdfe,
- 0x06060300, 0x0605fd00, 0x06060003, 0x0605fffd, 0x06060606, 0x0605f9fa, 0x06060700, 0x0605f900,
- 0xf9fa0000, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0300, 0xf9f9fd00, 0xf9fa0003, 0xf9f9fffd, 0xf9fa0606,
- 0xf9f9f9fa, 0xf9fa0700, 0xf9f9f900, 0x07000000, 0x07000202, 0x06fffdfe, 0x07000300, 0x06fffd00,
- 0x07000003, 0x06fffffd, 0x07000606, 0x06fff9fa, 0x07000700, 0x06fff900, 0xf9000000, 0xf9000202,
- 0xf8fffdfe, 0xf9000300, 0xf8fffd00, 0xf9000003, 0xf8fffffd, 0xf9000606, 0xf8fff9fa, 0xf9000700,
- 0xf8fff900, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000200, 0xfffffe00, 0x00000002, 0xfffffffe, 0x00000202, 0xfffffdfe, 0x00000606,
- 0xfffff9fa, 0x00000600, 0xfffffa00, 0x00000006, 0xfffffffa, 0x000003fc, 0xfffffc04, 0xfffffa0a,
- 0x000005f6, 0xfffff400, 0x00000c00, 0xfffff3fa, 0xfffff406, 0x00000bfa, 0x00000c06, 0xfffffff2,
- 0x0000000e, 0x00000c0c, 0xfffff3f4, 0xffffee00, 0x00001200, 0xfffff40e, 0x00000bf2, 0xfffff9ee,
- 0xfffffa12, 0x000005ee, 0x00000612, 0xffffedf6, 0xffffee0a, 0x000011f6, 0x0000120a, 0xffffffea,
- 0x00000016, 0xffffe800, 0x00001800, 0xfffff3ea, 0xfffff416, 0x00000bea, 0x00000c16, 0xffffe7f8,
- 0xffffe808, 0x000017f8, 0x00001808, 0xfffff9e6, 0xfffffa1a, 0x000005e6, 0x0000061a, 0xffffffe4,
- 0x0000001c, 0x00001414, 0xffffebec, 0xffffe5f2, 0x00001a0e, 0xfffff3e2, 0x00000c1e, 0xffffdff6,
- 0x0000200a, 0xffffdfee, 0x00002012, 0xffffe5e6, 0x00001a1a, 0xffffebde, 0x00001422, 0xfffff3da,
- 0x00000c26, 0xffffdfe0, 0x00002020, 0x00002020, 0xffffd7ea, 0xffffddde, 0x00002222, 0x00000000,
- 0x00000200, 0xfffffe00, 0x00000002, 0xfffffffe, 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa,
- 0x00000600, 0xfffffa00, 0x00000006, 0xfffffffa, 0x02000000, 0x02000200, 0x01fffe00, 0x02000002,
- 0x01fffffe, 0x02000202, 0x01fffdfe, 0x02000606, 0x01fff9fa, 0x02000600, 0x01fffa00, 0x02000006,
- 0x01fffffa, 0xfe000000, 0xfe000200, 0xfdfffe00, 0xfe000002, 0xfdfffffe, 0xfe000202, 0xfdfffdfe,
- 0xfe000606, 0xfdfff9fa, 0xfe000600, 0xfdfffa00, 0xfe000006, 0xfdfffffa, 0x00020000, 0x00020200,
- 0x0001fe00, 0x00020002, 0x0001fffe, 0x00020202, 0x0001fdfe, 0x00020606, 0x0001f9fa, 0x00020600,
- 0x0001fa00, 0x00020006, 0x0001fffa, 0xfffe0000, 0xfffe0200, 0xfffdfe00, 0xfffe0002, 0xfffdfffe,
- 0xfffe0202, 0xfffdfdfe, 0xfffe0606, 0xfffdf9fa, 0xfffe0600, 0xfffdfa00, 0xfffe0006, 0xfffdfffa,
- 0x02020000, 0x02020200, 0x0201fe00, 0x02020002, 0x0201fffe, 0x02020202, 0x0201fdfe, 0x02020606,
- 0x0201f9fa, 0x02020600, 0x0201fa00, 0x02020006, 0x0201fffa, 0xfdfe0000, 0xfdfe0200, 0xfdfdfe00,
- 0xfdfe0002, 0xfdfdfffe, 0xfdfe0202, 0xfdfdfdfe, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0600, 0xfdfdfa00,
- 0xfdfe0006, 0xfdfdfffa, 0x06060000, 0x06060200, 0x0605fe00, 0x06060002, 0x0605fffe, 0x06060202,
- 0x0605fdfe, 0x06060606, 0x0605f9fa, 0x06060600, 0x0605fa00, 0x06060006, 0x0605fffa, 0xf9fa0000,
- 0xf9fa0200, 0xf9f9fe00, 0xf9fa0002, 0xf9f9fffe, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0606, 0xf9f9f9fa,
- 0xf9fa0600, 0xf9f9fa00, 0xf9fa0006, 0xf9f9fffa, 0x06000000, 0x06000200, 0x05fffe00, 0x06000002,
- 0x05fffffe, 0x06000202, 0x05fffdfe, 0x06000606, 0x05fff9fa, 0x06000600, 0x05fffa00, 0x06000006,
- 0x05fffffa, 0xfa000000, 0xfa000200, 0xf9fffe00, 0xfa000002, 0xf9fffffe, 0xfa000202, 0xf9fffdfe,
- 0xfa000606, 0xf9fff9fa, 0xfa000600, 0xf9fffa00, 0xfa000006, 0xf9fffffa, 0x00060000, 0x00060200,
- 0x0005fe00, 0x00060002, 0x0005fffe, 0x00060202, 0x0005fdfe, 0x00060606, 0x0005f9fa, 0x00060600,
- 0x0005fa00, 0x00060006, 0x0005fffa, 0xfffa0000, 0xfffa0200, 0xfff9fe00, 0xfffa0002, 0xfff9fffe,
- 0xfffa0202, 0xfff9fdfe, 0xfffa0606, 0xfff9f9fa, 0xfffa0600, 0xfff9fa00, 0xfffa0006, 0xfff9fffa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000200, 0xfffffe00, 0x00000002, 0xfffffffe, 0x00000404, 0xfffffbfc, 0x00000a0a,
- 0xfffff5f6, 0x00000a00, 0xfffff600, 0x0000000a, 0xfffffff6, 0x000005fa, 0xfffffa06, 0xfffff80e,
- 0x000007f2, 0xffffffee, 0x00000012, 0xfffff00a, 0x00000ff6, 0xffffe800, 0x00001800, 0xfffff7e8,
- 0xfffff818, 0x000007e8, 0x00000818, 0x00001212, 0xffffedee, 0xfffff014, 0x00000fec, 0xffffe5f2,
- 0xffffe60e, 0x000019f2, 0x00001a0e, 0xffffffe2, 0x0000001e, 0xffffde00, 0x00002200, 0xfffff7de,
- 0xfffff822, 0x000007de, 0x00000822, 0xffffede2, 0xffffee1e, 0x000011e2, 0x0000121e, 0xffffddf6,
- 0xffffde0a, 0x000021f6, 0x0000220a, 0xffffddec, 0x00002214, 0xffffffd8, 0x00000028, 0x00001e1e,
- 0xffffe1e2, 0xffffedd8, 0x00001228, 0xffffd400, 0x00002c00, 0xffffd3f0, 0x00002c10, 0xffffdbdc,
- 0xffffdbdc, 0x00002424, 0xffffd3e6, 0x00002c1a, 0xffffe5d2, 0x00001a2e, 0xffffedcc, 0x00001234,
- 0xffffc9ec, 0xffffd3d4, 0x00002c2c, 0xffffc9e0, 0xffffd1d2, 0xffffd1d2, 0x00002e2e, 0x00000000,
- 0x00000200, 0xfffffe00, 0x00000002, 0xfffffffe, 0x00000404, 0xfffffbfc, 0x00000a0a, 0xfffff5f6,
- 0x00000a00, 0xfffff600, 0x0000000a, 0xfffffff6, 0x02000000, 0x02000200, 0x01fffe00, 0x02000002,
- 0x01fffffe, 0x02000404, 0x01fffbfc, 0x02000a0a, 0x01fff5f6, 0x02000a00, 0x01fff600, 0x0200000a,
- 0x01fffff6, 0xfe000000, 0xfe000200, 0xfdfffe00, 0xfe000002, 0xfdfffffe, 0xfe000404, 0xfdfffbfc,
- 0xfe000a0a, 0xfdfff5f6, 0xfe000a00, 0xfdfff600, 0xfe00000a, 0xfdfffff6, 0x00020000, 0x00020200,
- 0x0001fe00, 0x00020002, 0x0001fffe, 0x00020404, 0x0001fbfc, 0x00020a0a, 0x0001f5f6, 0x00020a00,
- 0x0001f600, 0x0002000a, 0x0001fff6, 0xfffe0000, 0xfffe0200, 0xfffdfe00, 0xfffe0002, 0xfffdfffe,
- 0xfffe0404, 0xfffdfbfc, 0xfffe0a0a, 0xfffdf5f6, 0xfffe0a00, 0xfffdf600, 0xfffe000a, 0xfffdfff6,
- 0x04040000, 0x04040200, 0x0403fe00, 0x04040002, 0x0403fffe, 0x04040404, 0x0403fbfc, 0x04040a0a,
- 0x0403f5f6, 0x04040a00, 0x0403f600, 0x0404000a, 0x0403fff6, 0xfbfc0000, 0xfbfc0200, 0xfbfbfe00,
- 0xfbfc0002, 0xfbfbfffe, 0xfbfc0404, 0xfbfbfbfc, 0xfbfc0a0a, 0xfbfbf5f6, 0xfbfc0a00, 0xfbfbf600,
- 0xfbfc000a, 0xfbfbfff6, 0x0a0a0000, 0x0a0a0200, 0x0a09fe00, 0x0a0a0002, 0x0a09fffe, 0x0a0a0404,
- 0x0a09fbfc, 0x0a0a0a0a, 0x0a09f5f6, 0x0a0a0a00, 0x0a09f600, 0x0a0a000a, 0x0a09fff6, 0xf5f60000,
- 0xf5f60200, 0xf5f5fe00, 0xf5f60002, 0xf5f5fffe, 0xf5f60404, 0xf5f5fbfc, 0xf5f60a0a, 0xf5f5f5f6,
- 0xf5f60a00, 0xf5f5f600, 0xf5f6000a, 0xf5f5fff6, 0x0a000000, 0x0a000200, 0x09fffe00, 0x0a000002,
- 0x09fffffe, 0x0a000404, 0x09fffbfc, 0x0a000a0a, 0x09fff5f6, 0x0a000a00, 0x09fff600, 0x0a00000a,
- 0x09fffff6, 0xf6000000, 0xf6000200, 0xf5fffe00, 0xf6000002, 0xf5fffffe, 0xf6000404, 0xf5fffbfc,
- 0xf6000a0a, 0xf5fff5f6, 0xf6000a00, 0xf5fff600, 0xf600000a, 0xf5fffff6, 0x000a0000, 0x000a0200,
- 0x0009fe00, 0x000a0002, 0x0009fffe, 0x000a0404, 0x0009fbfc, 0x000a0a0a, 0x0009f5f6, 0x000a0a00,
- 0x0009f600, 0x000a000a, 0x0009fff6, 0xfff60000, 0xfff60200, 0xfff5fe00, 0xfff60002, 0xfff5fffe,
- 0xfff60404, 0xfff5fbfc, 0xfff60a0a, 0xfff5f5f6, 0xfff60a00, 0xfff5f600, 0xfff6000a, 0xfff5fff6,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000400, 0xfffffc00, 0x00000004, 0xfffffffc, 0x00000404, 0xfffffbfc, 0x00000c0c,
- 0xfffff3f4, 0x00000c00, 0xfffff400, 0x0000000c, 0xfffffff4, 0x000007f8, 0xfffff808, 0xfffff008,
- 0x00000ff8, 0xffffe800, 0x00001800, 0xfffff7e8, 0xfffff818, 0x000007e8, 0x00000818, 0xfffff014,
- 0x00000fec, 0xffffffe4, 0x0000001c, 0xffffe7f0, 0xffffe810, 0x000017f0, 0x00001810, 0xffffe000,
- 0x00002000, 0xffffefe4, 0xfffff01c, 0x00000fe4, 0x0000101c, 0xffffdff8, 0xffffe008, 0xfffff7e0,
- 0xfffff820, 0x000007e0, 0x00000820, 0x00001ff8, 0x00002008, 0x00001818, 0xffffe7e8, 0xffffe818,
- 0x000017e8, 0xffffdfec, 0x00002014, 0xffffffd8, 0x00000028, 0xffffefd8, 0x00001028, 0xffffd400,
- 0xffffd400, 0xffffffd4, 0x0000002c, 0x00002c00, 0x00002c00, 0xffffdfe0, 0x00002020, 0xffffd3f0,
- 0x00002c10, 0xffffd3e8, 0xffffe7d4, 0x0000182c, 0x00002c18, 0xffffefd0, 0x00001030, 0xffffdbdc,
- 0xffffdbdc, 0x00002424, 0x00002424, 0xffffcbec, 0x00002828, 0xffffd7d8, 0xffffcbe0, 0x00000000,
- 0x00000400, 0xfffffc00, 0x00000004, 0xfffffffc, 0x00000404, 0xfffffbfc, 0x00000c0c, 0xfffff3f4,
- 0x00000c00, 0xfffff400, 0x0000000c, 0xfffffff4, 0x04000000, 0x04000400, 0x03fffc00, 0x04000004,
- 0x03fffffc, 0x04000404, 0x03fffbfc, 0x04000c0c, 0x03fff3f4, 0x04000c00, 0x03fff400, 0x0400000c,
- 0x03fffff4, 0xfc000000, 0xfc000400, 0xfbfffc00, 0xfc000004, 0xfbfffffc, 0xfc000404, 0xfbfffbfc,
- 0xfc000c0c, 0xfbfff3f4, 0xfc000c00, 0xfbfff400, 0xfc00000c, 0xfbfffff4, 0x00040000, 0x00040400,
- 0x0003fc00, 0x00040004, 0x0003fffc, 0x00040404, 0x0003fbfc, 0x00040c0c, 0x0003f3f4, 0x00040c00,
- 0x0003f400, 0x0004000c, 0x0003fff4, 0xfffc0000, 0xfffc0400, 0xfffbfc00, 0xfffc0004, 0xfffbfffc,
- 0xfffc0404, 0xfffbfbfc, 0xfffc0c0c, 0xfffbf3f4, 0xfffc0c00, 0xfffbf400, 0xfffc000c, 0xfffbfff4,
- 0x04040000, 0x04040400, 0x0403fc00, 0x04040004, 0x0403fffc, 0x04040404, 0x0403fbfc, 0x04040c0c,
- 0x0403f3f4, 0x04040c00, 0x0403f400, 0x0404000c, 0x0403fff4, 0xfbfc0000, 0xfbfc0400, 0xfbfbfc00,
- 0xfbfc0004, 0xfbfbfffc, 0xfbfc0404, 0xfbfbfbfc, 0xfbfc0c0c, 0xfbfbf3f4, 0xfbfc0c00, 0xfbfbf400,
- 0xfbfc000c, 0xfbfbfff4, 0x0c0c0000, 0x0c0c0400, 0x0c0bfc00, 0x0c0c0004, 0x0c0bfffc, 0x0c0c0404,
- 0x0c0bfbfc, 0x0c0c0c0c, 0x0c0bf3f4, 0x0c0c0c00, 0x0c0bf400, 0x0c0c000c, 0x0c0bfff4, 0xf3f40000,
- 0xf3f40400, 0xf3f3fc00, 0xf3f40004, 0xf3f3fffc, 0xf3f40404, 0xf3f3fbfc, 0xf3f40c0c, 0xf3f3f3f4,
- 0xf3f40c00, 0xf3f3f400, 0xf3f4000c, 0xf3f3fff4, 0x0c000000, 0x0c000400, 0x0bfffc00, 0x0c000004,
- 0x0bfffffc, 0x0c000404, 0x0bfffbfc, 0x0c000c0c, 0x0bfff3f4, 0x0c000c00, 0x0bfff400, 0x0c00000c,
- 0x0bfffff4, 0xf4000000, 0xf4000400, 0xf3fffc00, 0xf4000004, 0xf3fffffc, 0xf4000404, 0xf3fffbfc,
- 0xf4000c0c, 0xf3fff3f4, 0xf4000c00, 0xf3fff400, 0xf400000c, 0xf3fffff4, 0x000c0000, 0x000c0400,
- 0x000bfc00, 0x000c0004, 0x000bfffc, 0x000c0404, 0x000bfbfc, 0x000c0c0c, 0x000bf3f4, 0x000c0c00,
- 0x000bf400, 0x000c000c, 0x000bfff4, 0xfff40000, 0xfff40400, 0xfff3fc00, 0xfff40004, 0xfff3fffc,
- 0xfff40404, 0xfff3fbfc, 0xfff40c0c, 0xfff3f3f4, 0xfff40c00, 0xfff3f400, 0xfff4000c, 0xfff3fff4,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414,
- 0xffffebec, 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414, 0xffffebec,
- 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x02020000, 0x02020202, 0x0201fdfe, 0x02020606,
- 0x0201f9fa, 0x02020c0c, 0x0201f3f4, 0x02021414, 0x0201ebec, 0x02022020, 0x0201dfe0, 0x02022e2e,
- 0x0201d1d2, 0xfdfe0000, 0xfdfe0202, 0xfdfdfdfe, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0c0c, 0xfdfdf3f4,
- 0xfdfe1414, 0xfdfdebec, 0xfdfe2020, 0xfdfddfe0, 0xfdfe2e2e, 0xfdfdd1d2, 0x06060000, 0x06060202,
- 0x0605fdfe, 0x06060606, 0x0605f9fa, 0x06060c0c, 0x0605f3f4, 0x06061414, 0x0605ebec, 0x06062020,
- 0x0605dfe0, 0x06062e2e, 0x0605d1d2, 0xf9fa0000, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0606, 0xf9f9f9fa,
- 0xf9fa0c0c, 0xf9f9f3f4, 0xf9fa1414, 0xf9f9ebec, 0xf9fa2020, 0xf9f9dfe0, 0xf9fa2e2e, 0xf9f9d1d2,
- 0x0c0c0000, 0x0c0c0202, 0x0c0bfdfe, 0x0c0c0606, 0x0c0bf9fa, 0x0c0c0c0c, 0x0c0bf3f4, 0x0c0c1414,
- 0x0c0bebec, 0x0c0c2020, 0x0c0bdfe0, 0x0c0c2e2e, 0x0c0bd1d2, 0xf3f40000, 0xf3f40202, 0xf3f3fdfe,
- 0xf3f40606, 0xf3f3f9fa, 0xf3f40c0c, 0xf3f3f3f4, 0xf3f41414, 0xf3f3ebec, 0xf3f42020, 0xf3f3dfe0,
- 0xf3f42e2e, 0xf3f3d1d2, 0x14140000, 0x14140202, 0x1413fdfe, 0x14140606, 0x1413f9fa, 0x14140c0c,
- 0x1413f3f4, 0x14141414, 0x1413ebec, 0x14142020, 0x1413dfe0, 0x14142e2e, 0x1413d1d2, 0xebec0000,
- 0xebec0202, 0xebebfdfe, 0xebec0606, 0xebebf9fa, 0xebec0c0c, 0xebebf3f4, 0xebec1414, 0xebebebec,
- 0xebec2020, 0xebebdfe0, 0xebec2e2e, 0xebebd1d2, 0x20200000, 0x20200202, 0x201ffdfe, 0x20200606,
- 0x201ff9fa, 0x20200c0c, 0x201ff3f4, 0x20201414, 0x201febec, 0x20202020, 0x201fdfe0, 0x20202e2e,
- 0x201fd1d2, 0xdfe00000, 0xdfe00202, 0xdfdffdfe, 0xdfe00606, 0xdfdff9fa, 0xdfe00c0c, 0xdfdff3f4,
- 0xdfe01414, 0xdfdfebec, 0xdfe02020, 0xdfdfdfe0, 0xdfe02e2e, 0xdfdfd1d2, 0x2e2e0000, 0x2e2e0202,
- 0x2e2dfdfe, 0x2e2e0606, 0x2e2df9fa, 0x2e2e0c0c, 0x2e2df3f4, 0x2e2e1414, 0x2e2debec, 0x2e2e2020,
- 0x2e2ddfe0, 0x2e2e2e2e, 0x2e2dd1d2, 0xd1d20000, 0xd1d20202, 0xd1d1fdfe, 0xd1d20606, 0xd1d1f9fa,
- 0xd1d20c0c, 0xd1d1f3f4, 0xd1d21414, 0xd1d1ebec, 0xd1d22020, 0xd1d1dfe0, 0xd1d22e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414,
- 0xffffebec, 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414, 0xffffebec,
- 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x02020000, 0x02020202, 0x0201fdfe, 0x02020606,
- 0x0201f9fa, 0x02020c0c, 0x0201f3f4, 0x02021414, 0x0201ebec, 0x02022020, 0x0201dfe0, 0x02022e2e,
- 0x0201d1d2, 0xfdfe0000, 0xfdfe0202, 0xfdfdfdfe, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0c0c, 0xfdfdf3f4,
- 0xfdfe1414, 0xfdfdebec, 0xfdfe2020, 0xfdfddfe0, 0xfdfe2e2e, 0xfdfdd1d2, 0x06060000, 0x06060202,
- 0x0605fdfe, 0x06060606, 0x0605f9fa, 0x06060c0c, 0x0605f3f4, 0x06061414, 0x0605ebec, 0x06062020,
- 0x0605dfe0, 0x06062e2e, 0x0605d1d2, 0xf9fa0000, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0606, 0xf9f9f9fa,
- 0xf9fa0c0c, 0xf9f9f3f4, 0xf9fa1414, 0xf9f9ebec, 0xf9fa2020, 0xf9f9dfe0, 0xf9fa2e2e, 0xf9f9d1d2,
- 0x0c0c0000, 0x0c0c0202, 0x0c0bfdfe, 0x0c0c0606, 0x0c0bf9fa, 0x0c0c0c0c, 0x0c0bf3f4, 0x0c0c1414,
- 0x0c0bebec, 0x0c0c2020, 0x0c0bdfe0, 0x0c0c2e2e, 0x0c0bd1d2, 0xf3f40000, 0xf3f40202, 0xf3f3fdfe,
- 0xf3f40606, 0xf3f3f9fa, 0xf3f40c0c, 0xf3f3f3f4, 0xf3f41414, 0xf3f3ebec, 0xf3f42020, 0xf3f3dfe0,
- 0xf3f42e2e, 0xf3f3d1d2, 0x14140000, 0x14140202, 0x1413fdfe, 0x14140606, 0x1413f9fa, 0x14140c0c,
- 0x1413f3f4, 0x14141414, 0x1413ebec, 0x14142020, 0x1413dfe0, 0x14142e2e, 0x1413d1d2, 0xebec0000,
- 0xebec0202, 0xebebfdfe, 0xebec0606, 0xebebf9fa, 0xebec0c0c, 0xebebf3f4, 0xebec1414, 0xebebebec,
- 0xebec2020, 0xebebdfe0, 0xebec2e2e, 0xebebd1d2, 0x20200000, 0x20200202, 0x201ffdfe, 0x20200606,
- 0x201ff9fa, 0x20200c0c, 0x201ff3f4, 0x20201414, 0x201febec, 0x20202020, 0x201fdfe0, 0x20202e2e,
- 0x201fd1d2, 0xdfe00000, 0xdfe00202, 0xdfdffdfe, 0xdfe00606, 0xdfdff9fa, 0xdfe00c0c, 0xdfdff3f4,
- 0xdfe01414, 0xdfdfebec, 0xdfe02020, 0xdfdfdfe0, 0xdfe02e2e, 0xdfdfd1d2, 0x2e2e0000, 0x2e2e0202,
- 0x2e2dfdfe, 0x2e2e0606, 0x2e2df9fa, 0x2e2e0c0c, 0x2e2df3f4, 0x2e2e1414, 0x2e2debec, 0x2e2e2020,
- 0x2e2ddfe0, 0x2e2e2e2e, 0x2e2dd1d2, 0xd1d20000, 0xd1d20202, 0xd1d1fdfe, 0xd1d20606, 0xd1d1f9fa,
- 0xd1d20c0c, 0xd1d1f3f4, 0xd1d21414, 0xd1d1ebec, 0xd1d22020, 0xd1d1dfe0, 0xd1d22e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414,
- 0xffffebec, 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414, 0xffffebec,
- 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x02020000, 0x02020202, 0x0201fdfe, 0x02020606,
- 0x0201f9fa, 0x02020c0c, 0x0201f3f4, 0x02021414, 0x0201ebec, 0x02022020, 0x0201dfe0, 0x02022e2e,
- 0x0201d1d2, 0xfdfe0000, 0xfdfe0202, 0xfdfdfdfe, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0c0c, 0xfdfdf3f4,
- 0xfdfe1414, 0xfdfdebec, 0xfdfe2020, 0xfdfddfe0, 0xfdfe2e2e, 0xfdfdd1d2, 0x06060000, 0x06060202,
- 0x0605fdfe, 0x06060606, 0x0605f9fa, 0x06060c0c, 0x0605f3f4, 0x06061414, 0x0605ebec, 0x06062020,
- 0x0605dfe0, 0x06062e2e, 0x0605d1d2, 0xf9fa0000, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0606, 0xf9f9f9fa,
- 0xf9fa0c0c, 0xf9f9f3f4, 0xf9fa1414, 0xf9f9ebec, 0xf9fa2020, 0xf9f9dfe0, 0xf9fa2e2e, 0xf9f9d1d2,
- 0x0c0c0000, 0x0c0c0202, 0x0c0bfdfe, 0x0c0c0606, 0x0c0bf9fa, 0x0c0c0c0c, 0x0c0bf3f4, 0x0c0c1414,
- 0x0c0bebec, 0x0c0c2020, 0x0c0bdfe0, 0x0c0c2e2e, 0x0c0bd1d2, 0xf3f40000, 0xf3f40202, 0xf3f3fdfe,
- 0xf3f40606, 0xf3f3f9fa, 0xf3f40c0c, 0xf3f3f3f4, 0xf3f41414, 0xf3f3ebec, 0xf3f42020, 0xf3f3dfe0,
- 0xf3f42e2e, 0xf3f3d1d2, 0x14140000, 0x14140202, 0x1413fdfe, 0x14140606, 0x1413f9fa, 0x14140c0c,
- 0x1413f3f4, 0x14141414, 0x1413ebec, 0x14142020, 0x1413dfe0, 0x14142e2e, 0x1413d1d2, 0xebec0000,
- 0xebec0202, 0xebebfdfe, 0xebec0606, 0xebebf9fa, 0xebec0c0c, 0xebebf3f4, 0xebec1414, 0xebebebec,
- 0xebec2020, 0xebebdfe0, 0xebec2e2e, 0xebebd1d2, 0x20200000, 0x20200202, 0x201ffdfe, 0x20200606,
- 0x201ff9fa, 0x20200c0c, 0x201ff3f4, 0x20201414, 0x201febec, 0x20202020, 0x201fdfe0, 0x20202e2e,
- 0x201fd1d2, 0xdfe00000, 0xdfe00202, 0xdfdffdfe, 0xdfe00606, 0xdfdff9fa, 0xdfe00c0c, 0xdfdff3f4,
- 0xdfe01414, 0xdfdfebec, 0xdfe02020, 0xdfdfdfe0, 0xdfe02e2e, 0xdfdfd1d2, 0x2e2e0000, 0x2e2e0202,
- 0x2e2dfdfe, 0x2e2e0606, 0x2e2df9fa, 0x2e2e0c0c, 0x2e2df3f4, 0x2e2e1414, 0x2e2debec, 0x2e2e2020,
- 0x2e2ddfe0, 0x2e2e2e2e, 0x2e2dd1d2, 0xd1d20000, 0xd1d20202, 0xd1d1fdfe, 0xd1d20606, 0xd1d1f9fa,
- 0xd1d20c0c, 0xd1d1f3f4, 0xd1d21414, 0xd1d1ebec, 0xd1d22020, 0xd1d1dfe0, 0xd1d22e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414,
- 0xffffebec, 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000202, 0xfffffdfe, 0x00000606, 0xfffff9fa, 0x00000c0c, 0xfffff3f4, 0x00001414, 0xffffebec,
- 0x00002020, 0xffffdfe0, 0x00002e2e, 0xffffd1d2, 0x02020000, 0x02020202, 0x0201fdfe, 0x02020606,
- 0x0201f9fa, 0x02020c0c, 0x0201f3f4, 0x02021414, 0x0201ebec, 0x02022020, 0x0201dfe0, 0x02022e2e,
- 0x0201d1d2, 0xfdfe0000, 0xfdfe0202, 0xfdfdfdfe, 0xfdfe0606, 0xfdfdf9fa, 0xfdfe0c0c, 0xfdfdf3f4,
- 0xfdfe1414, 0xfdfdebec, 0xfdfe2020, 0xfdfddfe0, 0xfdfe2e2e, 0xfdfdd1d2, 0x06060000, 0x06060202,
- 0x0605fdfe, 0x06060606, 0x0605f9fa, 0x06060c0c, 0x0605f3f4, 0x06061414, 0x0605ebec, 0x06062020,
- 0x0605dfe0, 0x06062e2e, 0x0605d1d2, 0xf9fa0000, 0xf9fa0202, 0xf9f9fdfe, 0xf9fa0606, 0xf9f9f9fa,
- 0xf9fa0c0c, 0xf9f9f3f4, 0xf9fa1414, 0xf9f9ebec, 0xf9fa2020, 0xf9f9dfe0, 0xf9fa2e2e, 0xf9f9d1d2,
- 0x0c0c0000, 0x0c0c0202, 0x0c0bfdfe, 0x0c0c0606, 0x0c0bf9fa, 0x0c0c0c0c, 0x0c0bf3f4, 0x0c0c1414,
- 0x0c0bebec, 0x0c0c2020, 0x0c0bdfe0, 0x0c0c2e2e, 0x0c0bd1d2, 0xf3f40000, 0xf3f40202, 0xf3f3fdfe,
- 0xf3f40606, 0xf3f3f9fa, 0xf3f40c0c, 0xf3f3f3f4, 0xf3f41414, 0xf3f3ebec, 0xf3f42020, 0xf3f3dfe0,
- 0xf3f42e2e, 0xf3f3d1d2, 0x14140000, 0x14140202, 0x1413fdfe, 0x14140606, 0x1413f9fa, 0x14140c0c,
- 0x1413f3f4, 0x14141414, 0x1413ebec, 0x14142020, 0x1413dfe0, 0x14142e2e, 0x1413d1d2, 0xebec0000,
- 0xebec0202, 0xebebfdfe, 0xebec0606, 0xebebf9fa, 0xebec0c0c, 0xebebf3f4, 0xebec1414, 0xebebebec,
- 0xebec2020, 0xebebdfe0, 0xebec2e2e, 0xebebd1d2, 0x20200000, 0x20200202, 0x201ffdfe, 0x20200606,
- 0x201ff9fa, 0x20200c0c, 0x201ff3f4, 0x20201414, 0x201febec, 0x20202020, 0x201fdfe0, 0x20202e2e,
- 0x201fd1d2, 0xdfe00000, 0xdfe00202, 0xdfdffdfe, 0xdfe00606, 0xdfdff9fa, 0xdfe00c0c, 0xdfdff3f4,
- 0xdfe01414, 0xdfdfebec, 0xdfe02020, 0xdfdfdfe0, 0xdfe02e2e, 0xdfdfd1d2, 0x2e2e0000, 0x2e2e0202,
- 0x2e2dfdfe, 0x2e2e0606, 0x2e2df9fa, 0x2e2e0c0c, 0x2e2df3f4, 0x2e2e1414, 0x2e2debec, 0x2e2e2020,
- 0x2e2ddfe0, 0x2e2e2e2e, 0x2e2dd1d2, 0xd1d20000, 0xd1d20202, 0xd1d1fdfe, 0xd1d20606, 0xd1d1f9fa,
- 0xd1d20c0c, 0xd1d1f3f4, 0xd1d21414, 0xd1d1ebec, 0xd1d22020, 0xd1d1dfe0, 0xd1d22e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
-};
-
-
-static const uint32_t correctionloworder[] = {
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd, 0x04040404,
- 0xfbfbfbfc, 0x05050101, 0xfafafeff, 0x01010505, 0xfefefafb, 0x0403fbfc, 0xfbfc0404, 0x0605fdfe,
- 0xf9fa0202, 0xfdfe0606, 0x0201f9fa, 0x09090404, 0xf6f6fbfc, 0x04040909, 0xfbfbf6f7, 0x09090909,
- 0xf6f6f6f7, 0x0a0a0101, 0xf5f5feff, 0x01010a0a, 0xfefef5f6, 0x0807fafb, 0xf7f80505, 0xfafb0808,
- 0x0504f7f8, 0x0f0f0909, 0xf0f0f6f7, 0x09090f0f, 0xf6f6f0f1, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c,
- 0x0302f3f4, 0x10100404, 0xefeffbfc, 0x04041010, 0xfbfbeff0, 0x10101010, 0xefefeff0, 0x12120000,
- 0xedee0000, 0x00001212, 0xffffedee, 0x0c0bf3f4, 0xf3f40c0c, 0x100ff6f7, 0xeff00909, 0xf6f71010,
- 0x0908eff0, 0x1b1b0b0b, 0xe4e4f4f5, 0x0b0b1b1b, 0xf4f4e4e5, 0x1c1c1313, 0xe3e3eced, 0x13131c1c,
- 0xecece3e4, 0x1615f9fa, 0xe9ea0606, 0xf9fa1616, 0x0605e9ea, 0x1d1d0404, 0xe2e2fbfc, 0x04041d1d,
- 0xfbfbe2e3, 0x1e1e1e1e, 0xe1e1e1e2, 0x2120fdfe, 0xdedf0202, 0xfdfe2121, 0x0201dedf, 0x1716edee,
- 0xe8e91212, 0xedee1717, 0x1211e8e9, 0x1e1df0f1, 0xe1e20f0f, 0xf0f11e1e, 0x0f0ee1e2, 0x2e2e1616,
- 0xd1d1e9ea, 0x16162e2e, 0xe9e9d1d2, 0x2f2f0d0d, 0xd0d0f2f3, 0x0d0d2f2f, 0xf2f2d0d1, 0x31312323,
- 0xcecedcdd, 0x23233131, 0xdcdccecf, 0x2928f4f5, 0xd6d70b0b, 0xf4f52929, 0x0b0ad6d7, 0x33330404,
- 0xccccfbfc, 0x04043333, 0xfbfbcccd, 0x36363636, 0xc9c9c9ca, 0x2221ddde, 0xddde2222, 0x2a29e2e3,
- 0xd5d61d1d, 0xe2e32a2a, 0x1d1cd5d6, 0x3c3bf9fa, 0xc3c40606, 0xf9fa3c3c, 0x0605c3c4, 0x4c4c1b1b,
- 0xb3b3e4e5, 0x1b1b4c4c, 0xe4e4b3b4, 0x4d4d2b2b, 0xb2b2d4d5, 0x2b2b4d4d, 0xd4d4b2b3, 0x3736e7e8,
- 0xc8c91818, 0xe7e83737, 0x1817c8c9, 0x4f4f0e0e, 0xb0b0f1f2, 0x0e0e4f4f, 0xf1f1b0b1, 0x53533f3f,
- 0xacacc0c1, 0x3f3f5353, 0xc0c0acad, 0x4a49ebec, 0xb5b61414, 0xebec4a4a, 0x1413b5b6, 0x58580202,
- 0xa7a7fdfe, 0x02025858, 0xfdfda7a8, 0x5d5d5d5d, 0xa2a2a2a3, 0x3d3ccbcc, 0xc2c33434, 0xcbcc3d3d,
- 0x3433c2c3, 0x78783434, 0x8787cbcc, 0x34347878, 0xcbcb8788, 0x4b4ad2d3, 0xb4b52d2d, 0xd2d34b4b,
- 0x2d2cb4b5, 0x7d7d4b4b, 0x8282b4b5, 0x4b4b7d7d, 0xb4b48283, 0x7a7a2121, 0x8585dedf, 0x21217a7a,
- 0xdede8586, 0x6766f2f3, 0x98990d0d, 0xf2f36767, 0x0d0c9899, 0x605fd7d8, 0x9fa02828, 0xd7d86060,
- 0x28279fa0, 0x7f7eddde, 0x80812222, 0xddde7f7f, 0x22218081, 0x5958a6a7, 0xa6a75959, 0x6968b1b2,
- 0x96974e4e, 0xb1b26969, 0x4e4d9697, 0x0c0c0c0c, 0xf3f3f3f4, 0x17171717, 0xe8e8e8e9, 0x2a2a2a2a,
- 0xd5d5d5d6, 0x49494949, 0xb6b6b6b7, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0x0302feff, 0x0302feff, 0x0302feff, 0x0302feff, 0x0302feff, 0x0302feff, 0x0302feff, 0xfcfd0101,
- 0xfcfd0101, 0xfcfd0101, 0xfcfd0101, 0xfcfd0101, 0xfcfd0101, 0xfcfd0101, 0xfeff0303, 0xfeff0303,
- 0xfeff0303, 0xfeff0303, 0xfeff0303, 0xfeff0303, 0xfeff0303, 0x0100fcfd, 0x0100fcfd, 0x0100fcfd,
- 0x0100fcfd, 0x0100fcfd, 0x0100fcfd, 0x0100fcfd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707,
- 0xf8f8f8f9, 0x08080202, 0xf7f7fdfe, 0x02020808, 0xfdfdf7f8, 0x0908fdfe, 0xf6f70202, 0xfdfe0909,
- 0x0201f6f7, 0x0605f9fa, 0xf9fa0606, 0x0d0d0606, 0xf2f2f9fa, 0x06060d0d, 0xf9f9f2f3, 0x0d0d0d0d,
- 0xf2f2f2f3, 0x0e0e0101, 0xf1f1feff, 0x01010e0e, 0xfefef1f2, 0x0c0bf7f8, 0xf3f40808, 0xf7f80c0c,
- 0x0807f3f4, 0x17170e0e, 0xe8e8f1f2, 0x0e0e1717, 0xf1f1e8e9, 0x1211fafb, 0xedee0505, 0xfafb1212,
- 0x0504edee, 0x18180606, 0xe7e7f9fa, 0x06061818, 0xf9f9e7e8, 0x18181818, 0xe7e7e7e8, 0x1b1afeff,
- 0xe4e50101, 0xfeff1b1b, 0x0100e4e5, 0x1110eeef, 0xeeef1111, 0x1716f2f3, 0xe8e90d0d, 0xf2f31717,
- 0x0d0ce8e9, 0x28281010, 0xd7d7eff0, 0x10102828, 0xefefd7d8, 0x29291c1c, 0xd6d6e3e4, 0x1c1c2929,
- 0xe3e3d6d7, 0x2120f6f7, 0xdedf0909, 0xf6f72121, 0x0908dedf, 0x2b2b0606, 0xd4d4f9fa, 0x06062b2b,
- 0xf9f9d4d5, 0x2e2e2e2e, 0xd1d1d1d2, 0x3231fbfc, 0xcdce0404, 0xfbfc3232, 0x0403cdce, 0x2221e4e5,
- 0xddde1b1b, 0xe4e52222, 0x1b1addde, 0x2d2ce9ea, 0xd2d31616, 0xe9ea2d2d, 0x1615d2d3, 0x45452222,
- 0xbabaddde, 0x22224545, 0xddddbabb, 0x46461313, 0xb9b9eced, 0x13134646, 0xececb9ba, 0x49493535,
- 0xb6b6cacb, 0x35354949, 0xcacab6b7, 0x3e3deeef, 0xc1c21111, 0xeeef3e3e, 0x1110c1c2, 0x4d4d0505,
- 0xb2b2fafb, 0x05054d4d, 0xfafab2b3, 0x52525252, 0xadadadae, 0x3332cccd, 0xcccd3333, 0x403fd4d5,
- 0xbfc02b2b, 0xd4d54040, 0x2b2abfc0, 0x5a59f5f6, 0xa5a60a0a, 0xf5f65a5a, 0x0a09a5a6, 0x72722929,
- 0x8d8dd6d7, 0x29297272, 0xd6d68d8e, 0x74744040, 0x8b8bbfc0, 0x40407474, 0xbfbf8b8c, 0x5251dadb,
- 0xadae2525, 0xdadb5252, 0x2524adae, 0x77771616, 0x8888e9ea, 0x16167777, 0xe9e98889, 0x7c7c5f5f,
- 0x8383a0a1, 0x5f5f7c7c, 0xa0a08384, 0x6f6ee1e2, 0x90911e1e, 0xe1e26f6f, 0x1e1d9091, 0x5c5bb1b2,
- 0xa3a44e4e, 0xb1b25c5c, 0x4e4da3a4, 0x7170bbbc, 0x8e8f4444, 0xbbbc7171, 0x44438e8f, 0x12121212,
- 0xedededee, 0x22222222, 0xddddddde, 0x3f3f3f3f, 0xc0c0c0c1, 0x6d6d6d6d, 0x92929293, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303,
- 0x03030303, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd,
- 0xfcfcfcfd, 0xfcfcfcfd, 0x0403feff, 0x0403feff, 0x0403feff, 0x0403feff, 0x0403feff, 0x0403feff,
- 0x0403feff, 0x0403feff, 0x0403feff, 0xfbfc0101, 0xfbfc0101, 0xfbfc0101, 0xfbfc0101, 0xfbfc0101,
- 0xfbfc0101, 0xfbfc0101, 0xfbfc0101, 0xfbfc0101, 0xfeff0404, 0xfeff0404, 0xfeff0404, 0xfeff0404,
- 0xfeff0404, 0xfeff0404, 0xfeff0404, 0xfeff0404, 0xfeff0404, 0x0100fbfc, 0x0100fbfc, 0x0100fbfc,
- 0x0100fbfc, 0x0100fbfc, 0x0100fbfc, 0x0100fbfc, 0x0100fbfc, 0x0100fbfc, 0x07070707, 0x07070707,
- 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0xf8f8f8f9,
- 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303,
- 0xf5f5fcfd, 0x03030a0a, 0xfcfcf5f6, 0x09090909, 0xf6f6f6f7, 0x0706f8f9, 0xf8f90707, 0x0c0bfcfd,
- 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x11110808, 0xeeeef7f8, 0x08081111, 0xf7f7eeef, 0x11111111,
- 0xeeeeeeef, 0x13130101, 0xececfeff, 0x01011313, 0xfefeeced, 0x100ff4f5, 0xeff00b0b, 0xf4f51010,
- 0x0b0aeff0, 0x1716f9fa, 0xe8e90606, 0xf9fa1717, 0x0605e8e9, 0x1f1f1212, 0xe0e0edee, 0x12121f1f,
- 0xedede0e1, 0x20200808, 0xdfdff7f8, 0x08082020, 0xf7f7dfe0, 0x21212121, 0xdedededf, 0x2423feff,
- 0xdbdc0101, 0xfeff2424, 0x0100dbdc, 0x1716e8e9, 0xe8e91717, 0x1f1eeeef, 0xe0e11111, 0xeeef1f1f,
- 0x1110e0e1, 0x36361515, 0xc9c9eaeb, 0x15153636, 0xeaeac9ca, 0x37372525, 0xc8c8dadb, 0x25253737,
- 0xdadac8c9, 0x2c2bf3f4, 0xd3d40c0c, 0xf3f42c2c, 0x0c0bd3d4, 0x39390808, 0xc6c6f7f8, 0x08083939,
- 0xf7f7c6c7, 0x3d3d3d3d, 0xc2c2c2c3, 0x4241fafb, 0xbdbe0505, 0xfafb4242, 0x0504bdbe, 0x2d2cdbdc,
- 0xd2d32424, 0xdbdc2d2d, 0x2423d2d3, 0x3c3be2e3, 0xc3c41d1d, 0xe2e33c3c, 0x1d1cc3c4, 0x5c5c2d2d,
- 0xa3a3d2d3, 0x2d2d5c5c, 0xd2d2a3a4, 0x5d5d1919, 0xa2a2e6e7, 0x19195d5d, 0xe6e6a2a3, 0x61614747,
- 0x9e9eb8b9, 0x47476161, 0xb8b89e9f, 0x5352e9ea, 0xacad1616, 0xe9ea5353, 0x1615acad, 0x66660707,
- 0x9999f8f9, 0x07076666, 0xf8f8999a, 0x6d6d6d6d, 0x92929293, 0x4443bbbc, 0xbbbc4444, 0x5554c6c7,
- 0xaaab3939, 0xc6c75555, 0x3938aaab, 0x7877f2f3, 0x87880d0d, 0xf2f37878, 0x0d0c8788, 0x6e6dcecf,
- 0x91923131, 0xcecf6e6e, 0x31309192, 0x7b7a9798, 0x84856868, 0x97987b7b, 0x68678485, 0x18181818,
- 0xe7e7e7e8, 0x2e2e2e2e, 0xd1d1d1d2, 0x54545454, 0xabababac, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04040404,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
- 0x04040404, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0x0504feff, 0x0504feff, 0x0504feff, 0x0504feff, 0x0504feff,
- 0x0504feff, 0x0504feff, 0x0504feff, 0x0504feff, 0x0504feff, 0xfafb0101, 0xfafb0101, 0xfafb0101,
- 0xfafb0101, 0xfafb0101, 0xfafb0101, 0xfafb0101, 0xfafb0101, 0xfafb0101, 0xfafb0101, 0xfeff0505,
- 0xfeff0505, 0xfeff0505, 0xfeff0505, 0xfeff0505, 0xfeff0505, 0xfeff0505, 0xfeff0505, 0xfeff0505,
- 0xfeff0505, 0x0100fafb, 0x0100fafb, 0x0100fafb, 0x0100fafb, 0x0100fafb, 0x0100fafb, 0x0100fafb,
- 0x0100fafb, 0x0100fafb, 0x0100fafb, 0x0a0a0303, 0x0a0a0303, 0x0a0a0303, 0x0a0a0303, 0x0a0a0303,
- 0x0a0a0303, 0x0a0a0303, 0x0a0a0303, 0x0a0a0303, 0x0a0a0303, 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd,
- 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd, 0xf5f5fcfd, 0x03030a0a,
- 0x03030a0a, 0x03030a0a, 0x03030a0a, 0x03030a0a, 0x03030a0a, 0x03030a0a, 0x03030a0a, 0x03030a0a,
- 0x03030a0a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b,
- 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x03030d0d, 0xfcfcf2f3, 0x0908f6f7, 0xf6f70909, 0x0f0efbfc,
- 0xf0f10404, 0xfbfc0f0f, 0x0403f0f1, 0x16160b0b, 0xe9e9f4f5, 0x0b0b1616, 0xf4f4e9ea, 0x15151515,
- 0xeaeaeaeb, 0x18180202, 0xe7e7fdfe, 0x02021818, 0xfdfde7e8, 0x1413f1f2, 0xebec0e0e, 0xf1f21414,
- 0x0e0debec, 0x26261717, 0xd9d9e8e9, 0x17172626, 0xe8e8d9da, 0x1d1cf7f8, 0xe2e30808, 0xf7f81d1d,
- 0x0807e2e3, 0x27270b0b, 0xd8d8f4f5, 0x0b0b2727, 0xf4f4d8d9, 0x29292929, 0xd6d6d6d7, 0x2d2cfeff,
- 0xd2d30101, 0xfeff2d2d, 0x0100d2d3, 0x1d1ce2e3, 0xe2e31d1d, 0x2726e9ea, 0xd8d91616, 0xe9ea2727,
- 0x1615d8d9, 0x43431b1b, 0xbcbce4e5, 0x1b1b4343, 0xe4e4bcbd, 0x45452f2f, 0xbabad0d1, 0x2f2f4545,
- 0xd0d0babb, 0x3837f0f1, 0xc7c80f0f, 0xf0f13838, 0x0f0ec7c8, 0x47470b0b, 0xb8b8f4f5, 0x0b0b4747,
- 0xf4f4b8b9, 0x4c4c4c4c, 0xb3b3b3b4, 0x5352f9fa, 0xacad0606, 0xf9fa5353, 0x0605acad, 0x3938d2d3,
- 0xc6c72d2d, 0xd2d33939, 0x2d2cc6c7, 0x4b4adbdc, 0xb4b52424, 0xdbdc4b4b, 0x2423b4b5, 0x73733838,
- 0x8c8cc7c8, 0x38387373, 0xc7c78c8d, 0x75751f1f, 0x8a8ae0e1, 0x1f1f7575, 0xe0e08a8b, 0x7a7a5858,
- 0x8585a7a8, 0x58587a7a, 0xa7a78586, 0x6867e3e4, 0x97981c1c, 0xe3e46868, 0x1c1b9798, 0x5554aaab,
- 0xaaab5555, 0x6a69b7b8, 0x95964848, 0xb7b86a6a, 0x48479596, 0x1e1e1e1e, 0xe1e1e1e2, 0x3a3a3a3a,
- 0xc5c5c5c6, 0x69696969, 0x96969697, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05050505, 0x05050505,
- 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505,
- 0x05050505, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb,
- 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe,
- 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0x0706fdfe, 0xf8f90202,
- 0xf8f90202, 0xf8f90202, 0xf8f90202, 0xf8f90202, 0xf8f90202, 0xf8f90202, 0xf8f90202, 0xf8f90202,
- 0xf8f90202, 0xf8f90202, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707,
- 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0xfdfe0707, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9,
- 0x0201f8f9, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9, 0x0201f8f9,
- 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b,
- 0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b0b, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5,
- 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0xf4f4f4f5, 0x0d0d0303, 0x0d0d0303,
- 0x0d0d0303, 0x0d0d0303, 0x0d0d0303, 0x0d0d0303, 0x0d0d0303, 0x0d0d0303, 0x0d0d0303, 0x0d0d0303,
- 0x0d0d0303, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd,
- 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0xf2f2fcfd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d,
- 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0xfbfbf0f1, 0x0b0af4f5, 0xf4f50b0b, 0x1211fafb,
- 0xedee0505, 0xfafb1212, 0x0504edee, 0x1a1a0d0d, 0xe5e5f2f3, 0x0d0d1a1a, 0xf2f2e5e6, 0x1a1a1a1a,
- 0xe5e5e5e6, 0x1d1d0202, 0xe2e2fdfe, 0x02021d1d, 0xfdfde2e3, 0x1817eff0, 0xe7e81010, 0xeff01818,
- 0x100fe7e8, 0x2e2e1c1c, 0xd1d1e3e4, 0x1c1c2e2e, 0xe3e3d1d2, 0x2322f6f7, 0xdcdd0909, 0xf6f72323,
- 0x0908dcdd, 0x2f2f0d0d, 0xd0d0f2f3, 0x0d0d2f2f, 0xf2f2d0d1, 0x31313131, 0xcecececf, 0x3635feff,
- 0xc9ca0101, 0xfeff3636, 0x0100c9ca, 0x2322dcdd, 0xdcdd2323, 0x2f2ee5e6, 0xd0d11a1a, 0xe5e62f2f,
- 0x1a19d0d1, 0x51512020, 0xaeaedfe0, 0x20205151, 0xdfdfaeaf, 0x53533838, 0xacacc7c8, 0x38385353,
- 0xc7c7acad, 0x4342edee, 0xbcbd1212, 0xedee4343, 0x1211bcbd, 0x56560d0d, 0xa9a9f2f3, 0x0d0d5656,
- 0xf2f2a9aa, 0x5b5b5b5b, 0xa4a4a4a5, 0x6362f8f9, 0x9c9d0707, 0xf8f96363, 0x07069c9d, 0x4443c9ca,
- 0xbbbc3636, 0xc9ca4444, 0x3635bbbc, 0x5a59d3d4, 0xa5a62c2c, 0xd3d45a5a, 0x2c2ba5a6, 0x7c7bdedf,
- 0x83842121, 0xdedf7c7c, 0x21208384, 0x67669899, 0x98996767, 0x7f7ea9aa, 0x80815656, 0xa9aa7f7f,
- 0x56558081, 0x25252525, 0xdadadadb, 0x45454545, 0xbabababb, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe,
- 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0x0807fdfe, 0xf7f80202, 0xf7f80202, 0xf7f80202,
- 0xf7f80202, 0xf7f80202, 0xf7f80202, 0xf7f80202, 0xf7f80202, 0xf7f80202, 0xf7f80202, 0xf7f80202,
- 0xf7f80202, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808,
- 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0xfdfe0808, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8,
- 0x0201f7f8, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8, 0x0201f7f8,
- 0x0201f7f8, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d,
- 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3,
- 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3, 0xf2f2f2f3,
- 0xf2f2f2f3, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404,
- 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0x0f0f0404, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc,
- 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc, 0xf0f0fbfc,
- 0xf0f0fbfc, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f,
- 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x04040f0f, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010,
- 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0xfafaedee, 0x0d0cf2f3, 0xf2f30d0d, 0x1514f9fa,
- 0xeaeb0606, 0xf9fa1515, 0x0605eaeb, 0x1e1e0f0f, 0xe1e1f0f1, 0x0f0f1e1e, 0xf0f0e1e2, 0x1e1e1e1e,
- 0xe1e1e1e2, 0x22220202, 0xddddfdfe, 0x02022222, 0xfdfdddde, 0x1c1beced, 0xe3e41313, 0xeced1c1c,
- 0x1312e3e4, 0x36362020, 0xc9c9dfe0, 0x20203636, 0xdfdfc9ca, 0x2928f4f5, 0xd6d70b0b, 0xf4f52929,
- 0x0b0ad6d7, 0x37370f0f, 0xc8c8f0f1, 0x0f0f3737, 0xf0f0c8c9, 0x39393939, 0xc6c6c6c7, 0x3f3efeff,
- 0xc0c10101, 0xfeff3f3f, 0x0100c0c1, 0x2827d7d8, 0xd7d82828, 0x3736e1e2, 0xc8c91e1e, 0xe1e23737,
- 0x1e1dc8c9, 0x5e5e2525, 0xa1a1dadb, 0x25255e5e, 0xdadaa1a2, 0x60604141, 0x9f9fbebf, 0x41416060,
- 0xbebe9fa0, 0x4e4deaeb, 0xb1b21515, 0xeaeb4e4e, 0x1514b1b2, 0x64640f0f, 0x9b9bf0f1, 0x0f0f6464,
- 0xf0f09b9c, 0x6a6a6a6a, 0x95959596, 0x7473f7f8, 0x8b8c0808, 0xf7f87474, 0x08078b8c, 0x4f4ec0c1,
- 0xb0b13f3f, 0xc0c14f4f, 0x3f3eb0b1, 0x6968cccd, 0x96973333, 0xcccd6969, 0x33329697, 0x78778788,
- 0x87887878, 0x2b2b2b2b, 0xd4d4d4d5, 0x50505050, 0xafafafb0, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707,
- 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9,
- 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9,
- 0xf8f8f8f9, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd,
- 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0x0a09fcfd, 0xf5f60303, 0xf5f60303, 0xf5f60303,
- 0xf5f60303, 0xf5f60303, 0xf5f60303, 0xf5f60303, 0xf5f60303, 0xf5f60303, 0xf5f60303, 0xf5f60303,
- 0xf5f60303, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a,
- 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0xfcfd0a0a, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6,
- 0x0302f5f6, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6, 0x0302f5f6,
- 0x0302f5f6, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010,
- 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0xefefeff0, 0xefefeff0, 0xefefeff0,
- 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0,
- 0xefefeff0, 0x12120505, 0x12120505, 0x12120505, 0x12120505, 0x12120505, 0x12120505, 0x12120505,
- 0x12120505, 0x12120505, 0x12120505, 0x12120505, 0x12120505, 0xededfafb, 0xededfafb, 0xededfafb,
- 0xededfafb, 0xededfafb, 0xededfafb, 0xededfafb, 0xededfafb, 0xededfafb, 0xededfafb, 0xededfafb,
- 0xededfafb, 0x05051212, 0x05051212, 0x05051212, 0x05051212, 0x05051212, 0x05051212, 0x05051212,
- 0x05051212, 0x05051212, 0x05051212, 0x05051212, 0x05051212, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212,
- 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0xfafaebec, 0x0f0ef0f1, 0xf0f10f0f, 0x1817f8f9,
- 0xe7e80707, 0xf8f91818, 0x0706e7e8, 0x23231111, 0xdcdceeef, 0x11112323, 0xeeeedcdd, 0x22222222,
- 0xddddddde, 0x26260303, 0xd9d9fcfd, 0x03032626, 0xfcfcd9da, 0x201fe9ea, 0xdfe01616, 0xe9ea2020,
- 0x1615dfe0, 0x3d3d2525, 0xc2c2dadb, 0x25253d3d, 0xdadac2c3, 0x2f2ef2f3, 0xd0d10d0d, 0xf2f32f2f,
- 0x0d0cd0d1, 0x3f3f1111, 0xc0c0eeef, 0x11113f3f, 0xeeeec0c1, 0x41414141, 0xbebebebf, 0x4847feff,
- 0xb7b80101, 0xfeff4848, 0x0100b7b8, 0x2e2dd1d2, 0xd1d22e2e, 0x3f3edcdd, 0xc0c12323, 0xdcdd3f3f,
- 0x2322c0c1, 0x6b6b2b2b, 0x9494d4d5, 0x2b2b6b6b, 0xd4d49495, 0x6e6e4b4b, 0x9191b4b5, 0x4b4b6e6e,
- 0xb4b49192, 0x5958e7e8, 0xa6a71818, 0xe7e85959, 0x1817a6a7, 0x72721111, 0x8d8deeef, 0x11117272,
- 0xeeee8d8e, 0x79797979, 0x86868687, 0x5b5ab7b8, 0xa4a54848, 0xb7b85b5b, 0x4847a4a5, 0x7877c5c6,
- 0x87883a3a, 0xc5c67878, 0x3a398788, 0x31313131, 0xcecececf, 0x5c5c5c5c, 0xa3a3a3a4, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808,
- 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0xf7f7f7f8,
- 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8,
- 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd,
- 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0x0b0afcfd, 0xf4f50303,
- 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xf4f50303,
- 0xf4f50303, 0xf4f50303, 0xf4f50303, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b,
- 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0xfcfd0b0b, 0x0302f4f5,
- 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x0302f4f5,
- 0x0302f4f5, 0x0302f4f5, 0x0302f4f5, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212,
- 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0xedededee,
- 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee,
- 0xedededee, 0xedededee, 0xedededee, 0x14140505, 0x14140505, 0x14140505, 0x14140505, 0x14140505,
- 0x14140505, 0x14140505, 0x14140505, 0x14140505, 0x14140505, 0x14140505, 0x14140505, 0xebebfafb,
- 0xebebfafb, 0xebebfafb, 0xebebfafb, 0xebebfafb, 0xebebfafb, 0xebebfafb, 0xebebfafb, 0xebebfafb,
- 0xebebfafb, 0xebebfafb, 0xebebfafb, 0x05051414, 0x05051414, 0x05051414, 0x05051414, 0x05051414,
- 0x05051414, 0x05051414, 0x05051414, 0x05051414, 0x05051414, 0x05051414, 0x05051414, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414,
- 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x1110eeef, 0xeeef1111, 0x1b1af8f9,
- 0xe4e50707, 0xf8f91b1b, 0x0706e4e5, 0x27271313, 0xd8d8eced, 0x13132727, 0xececd8d9, 0x27272727,
- 0xd8d8d8d9, 0x2b2b0303, 0xd4d4fcfd, 0x03032b2b, 0xfcfcd4d5, 0x2423e7e8, 0xdbdc1818, 0xe7e82424,
- 0x1817dbdc, 0x45452a2a, 0xbabad5d6, 0x2a2a4545, 0xd5d5babb, 0x3534f1f2, 0xcacb0e0e, 0xf1f23535,
- 0x0e0dcacb, 0x47471313, 0xb8b8eced, 0x13134747, 0xececb8b9, 0x49494949, 0xb6b6b6b7, 0x504ffdfe,
- 0xafb00202, 0xfdfe5050, 0x0201afb0, 0x3433cbcc, 0xcbcc3434, 0x4645d8d9, 0xb9ba2727, 0xd8d94646,
- 0x2726b9ba, 0x79793030, 0x8686cfd0, 0x30307979, 0xcfcf8687, 0x7c7c5454, 0x8383abac, 0x54547c7c,
- 0xabab8384, 0x6463e4e5, 0x9b9c1b1b, 0xe4e56464, 0x1b1a9b9c, 0x6665aeaf, 0x999a5151, 0xaeaf6666,
- 0x5150999a, 0x37373737, 0xc8c8c8c9, 0x68686868, 0x97979798, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909,
- 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0xf6f6f6f7,
- 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7,
- 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd,
- 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd, 0x0c0bfcfd,
- 0x0c0bfcfd, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303,
- 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xf3f40303, 0xfcfd0c0c, 0xfcfd0c0c,
- 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c,
- 0xfcfd0c0c, 0xfcfd0c0c, 0xfcfd0c0c, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4,
- 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4, 0x0302f3f4,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0x17170606,
- 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0x17170606, 0xe8e8f9fa,
- 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa,
- 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0xe8e8f9fa, 0x06061717, 0x06061717, 0x06061717, 0x06061717,
- 0x06061717, 0x06061717, 0x06061717, 0x06061717, 0x06061717, 0x06061717, 0x06061717, 0x06061717,
- 0x06061717, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9,
- 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0xf9f9e8e9, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404,
- 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x0403fbfc, 0xfbfc0404, 0x0605fdfe,
- 0xf9fa0202, 0xfdfe0606, 0x0201f9fa, 0x08080404, 0xf7f7fbfc, 0x04040808, 0xfbfbf7f8, 0x08080808,
- 0xf7f7f7f8, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x0807fbfc, 0xf7f80404, 0xfbfc0808,
- 0x0403f7f8, 0x0e0e0808, 0xf1f1f7f8, 0x08080e0e, 0xf7f7f1f2, 0x0c0bfdfe, 0xf3f40202, 0xfdfe0c0c,
- 0x0201f3f4, 0x10100404, 0xefeffbfc, 0x04041010, 0xfbfbeff0, 0x10101010, 0xefefeff0, 0x12120000,
- 0xedee0000, 0x00001212, 0xffffedee, 0x0c0bf3f4, 0xf3f40c0c, 0x100ff7f8, 0xeff00808, 0xf7f81010,
- 0x0807eff0, 0x1a1a0a0a, 0xe5e5f5f6, 0x0a0a1a1a, 0xf5f5e5e6, 0x1c1c1212, 0xe3e3edee, 0x12121c1c,
- 0xedede3e4, 0x1615f9fa, 0xe9ea0606, 0xf9fa1616, 0x0605e9ea, 0x1c1c0404, 0xe3e3fbfc, 0x04041c1c,
- 0xfbfbe3e4, 0x1e1e1e1e, 0xe1e1e1e2, 0x201ffdfe, 0xdfe00202, 0xfdfe2020, 0x0201dfe0, 0x1615edee,
- 0xe9ea1212, 0xedee1616, 0x1211e9ea, 0x1e1df1f2, 0xe1e20e0e, 0xf1f21e1e, 0x0e0de1e2, 0x2e2e1616,
- 0xd1d1e9ea, 0x16162e2e, 0xe9e9d1d2, 0x2e2e0c0c, 0xd1d1f3f4, 0x0c0c2e2e, 0xf3f3d1d2, 0x30302222,
- 0xcfcfddde, 0x22223030, 0xddddcfd0, 0x2827f5f6, 0xd7d80a0a, 0xf5f62828, 0x0a09d7d8, 0x32320404,
- 0xcdcdfbfc, 0x04043232, 0xfbfbcdce, 0x36363636, 0xc9c9c9ca, 0x2221ddde, 0xddde2222, 0x2a29e3e4,
- 0xd5d61c1c, 0xe3e42a2a, 0x1c1bd5d6, 0x3c3bf9fa, 0xc3c40606, 0xf9fa3c3c, 0x0605c3c4, 0x4c4c1a1a,
- 0xb3b3e5e6, 0x1a1a4c4c, 0xe5e5b3b4, 0x4c4c2a2a, 0xb3b3d5d6, 0x2a2a4c4c, 0xd5d5b3b4, 0x3635e7e8,
- 0xc9ca1818, 0xe7e83636, 0x1817c9ca, 0x4e4e0e0e, 0xb1b1f1f2, 0x0e0e4e4e, 0xf1f1b1b2, 0x52523e3e,
- 0xadadc1c2, 0x3e3e5252, 0xc1c1adae, 0x4a49ebec, 0xb5b61414, 0xebec4a4a, 0x1413b5b6, 0x58580202,
- 0xa7a7fdfe, 0x02025858, 0xfdfda7a8, 0x5c5c5c5c, 0xa3a3a3a4, 0x3c3bcbcc, 0xc3c43434, 0xcbcc3c3c,
- 0x3433c3c4, 0x76763434, 0x8989cbcc, 0x34347676, 0xcbcb898a, 0x4a49d3d4, 0xb5b62c2c, 0xd3d44a4a,
- 0x2c2bb5b6, 0x76764a4a, 0x8989b5b6, 0x4a4a7676, 0xb5b5898a, 0x76762020, 0x8989dfe0, 0x20207676,
- 0xdfdf898a, 0x6665f3f4, 0x999a0c0c, 0xf3f46666, 0x0c0b999a, 0x605fd7d8, 0x9fa02828, 0xd7d86060,
- 0x28279fa0, 0x7675ddde, 0x898a2222, 0xddde7676, 0x2221898a, 0x5857a7a8, 0xa7a85858, 0x6867b1b2,
- 0x97984e4e, 0xb1b26868, 0x4e4d9798, 0x0c0c0c0c, 0xf3f3f3f4, 0x16161616, 0xe9e9e9ea, 0x2a2a2a2a,
- 0xd5d5d5d6, 0x48484848, 0xb7b7b7b8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0xfdfe0000,
- 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0x00000202, 0x00000202,
- 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe,
- 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606,
- 0xf9f9f9fa, 0x09090303, 0xf6f6fcfd, 0x03030909, 0xfcfcf6f7, 0x0908fcfd, 0xf6f70303, 0xfcfd0909,
- 0x0302f6f7, 0x0605f9fa, 0xf9fa0606, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0xf9f9f3f4, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x0f0f0000, 0xf0f10000, 0x00000f0f, 0xfffff0f1, 0x0c0bf6f7, 0xf3f40909, 0xf6f70c0c,
- 0x0908f3f4, 0x18180f0f, 0xe7e7f0f1, 0x0f0f1818, 0xf0f0e7e8, 0x1211f9fa, 0xedee0606, 0xf9fa1212,
- 0x0605edee, 0x18180606, 0xe7e7f9fa, 0x06061818, 0xf9f9e7e8, 0x18181818, 0xe7e7e7e8, 0x1b1b0000,
- 0xe4e50000, 0x00001b1b, 0xffffe4e5, 0x1211edee, 0xedee1212, 0x1817f3f4, 0xe7e80c0c, 0xf3f41818,
- 0x0c0be7e8, 0x27270f0f, 0xd8d8f0f1, 0x0f0f2727, 0xf0f0d8d9, 0x2a2a1b1b, 0xd5d5e4e5, 0x1b1b2a2a,
- 0xe4e4d5d6, 0x2120f6f7, 0xdedf0909, 0xf6f72121, 0x0908dedf, 0x2a2a0606, 0xd5d5f9fa, 0x06062a2a,
- 0xf9f9d5d6, 0x2d2d2d2d, 0xd2d2d2d3, 0x3332fcfd, 0xcccd0303, 0xfcfd3333, 0x0302cccd, 0x2120e4e5,
- 0xdedf1b1b, 0xe4e52121, 0x1b1adedf, 0x2d2ceaeb, 0xd2d31515, 0xeaeb2d2d, 0x1514d2d3, 0x45452121,
- 0xbabadedf, 0x21214545, 0xdedebabb, 0x45451212, 0xbabaedee, 0x12124545, 0xededbabb, 0x48483636,
- 0xb7b7c9ca, 0x36364848, 0xc9c9b7b8, 0x3f3eedee, 0xc0c11212, 0xedee3f3f, 0x1211c0c1, 0x4e4e0606,
- 0xb1b1f9fa, 0x06064e4e, 0xf9f9b1b2, 0x51515151, 0xaeaeaeaf, 0x3332cccd, 0xcccd3333, 0x3f3ed5d6,
- 0xc0c12a2a, 0xd5d63f3f, 0x2a29c0c1, 0x5a59f6f7, 0xa5a60909, 0xf6f75a5a, 0x0908a5a6, 0x72722a2a,
- 0x8d8dd5d6, 0x2a2a7272, 0xd5d58d8e, 0x75753f3f, 0x8a8ac0c1, 0x3f3f7575, 0xc0c08a8b, 0x5150dbdc,
- 0xaeaf2424, 0xdbdc5151, 0x2423aeaf, 0x78781515, 0x8787eaeb, 0x15157878, 0xeaea8788, 0x7b7b6060,
- 0x84849fa0, 0x60607b7b, 0x9f9f8485, 0x6f6ee1e2, 0x90911e1e, 0xe1e26f6f, 0x1e1d9091, 0x5d5cb1b2,
- 0xa2a34e4e, 0xb1b25d5d, 0x4e4da2a3, 0x7271babb, 0x8d8e4545, 0xbabb7272, 0x45448d8e, 0x12121212,
- 0xedededee, 0x21212121, 0xdedededf, 0x3f3f3f3f, 0xc0c0c0c1, 0x6c6c6c6c, 0x93939394, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303, 0x03030303,
- 0x03030303, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd, 0xfcfcfcfd,
- 0xfcfcfcfd, 0xfcfcfcfd, 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0x03030000,
- 0x03030000, 0x03030000, 0x03030000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000,
- 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0x00000303, 0x00000303, 0x00000303, 0x00000303,
- 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd,
- 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404,
- 0xf7f7fbfc, 0x04040808, 0xfbfbf7f8, 0x08080808, 0xf7f7f7f8, 0x0807f7f8, 0xf7f80808, 0x0c0bfbfc,
- 0xf3f40404, 0xfbfc0c0c, 0x0403f3f4, 0x10100808, 0xefeff7f8, 0x08081010, 0xf7f7eff0, 0x10101010,
- 0xefefeff0, 0x14140000, 0xebec0000, 0x00001414, 0xffffebec, 0x100ff3f4, 0xeff00c0c, 0xf3f41010,
- 0x0c0beff0, 0x1817fbfc, 0xe7e80404, 0xfbfc1818, 0x0403e7e8, 0x20201010, 0xdfdfeff0, 0x10102020,
- 0xefefdfe0, 0x20200808, 0xdfdff7f8, 0x08082020, 0xf7f7dfe0, 0x20202020, 0xdfdfdfe0, 0x24240000,
- 0xdbdc0000, 0x00002424, 0xffffdbdc, 0x1817e7e8, 0xe7e81818, 0x201feff0, 0xdfe01010, 0xeff02020,
- 0x100fdfe0, 0x34341414, 0xcbcbebec, 0x14143434, 0xebebcbcc, 0x38382424, 0xc7c7dbdc, 0x24243838,
- 0xdbdbc7c8, 0x2c2bf3f4, 0xd3d40c0c, 0xf3f42c2c, 0x0c0bd3d4, 0x38380808, 0xc7c7f7f8, 0x08083838,
- 0xf7f7c7c8, 0x3c3c3c3c, 0xc3c3c3c4, 0x403ffbfc, 0xbfc00404, 0xfbfc4040, 0x0403bfc0, 0x2c2bdbdc,
- 0xd3d42424, 0xdbdc2c2c, 0x2423d3d4, 0x3c3be3e4, 0xc3c41c1c, 0xe3e43c3c, 0x1c1bc3c4, 0x5c5c2c2c,
- 0xa3a3d3d4, 0x2c2c5c5c, 0xd3d3a3a4, 0x5c5c1818, 0xa3a3e7e8, 0x18185c5c, 0xe7e7a3a4, 0x60604848,
- 0x9f9fb7b8, 0x48486060, 0xb7b79fa0, 0x5453ebec, 0xabac1414, 0xebec5454, 0x1413abac, 0x64640808,
- 0x9b9bf7f8, 0x08086464, 0xf7f79b9c, 0x6c6c6c6c, 0x93939394, 0x4443bbbc, 0xbbbc4444, 0x5453c7c8,
- 0xabac3838, 0xc7c85454, 0x3837abac, 0x7877f3f4, 0x87880c0c, 0xf3f47878, 0x0c0b8788, 0x6c6bcfd0,
- 0x93943030, 0xcfd06c6c, 0x302f9394, 0x7c7b9798, 0x83846868, 0x97987c7c, 0x68678384, 0x18181818,
- 0xe7e7e7e8, 0x2c2c2c2c, 0xd3d3d3d4, 0x54545454, 0xabababac, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04040404,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
- 0x04040404, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
- 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000,
- 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0x00000404,
- 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404,
- 0x00000404, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc,
- 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0x08080404, 0x08080404, 0x08080404, 0x08080404, 0x08080404,
- 0x08080404, 0x08080404, 0x08080404, 0x08080404, 0x08080404, 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc,
- 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc, 0xf7f7fbfc, 0x04040808,
- 0x04040808, 0x04040808, 0x04040808, 0x04040808, 0x04040808, 0x04040808, 0x04040808, 0x04040808,
- 0x04040808, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a,
- 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x05050f0f, 0xfafaf0f1, 0x0a09f5f6, 0xf5f60a0a, 0x0f0efafb,
- 0xf0f10505, 0xfafb0f0f, 0x0504f0f1, 0x14140a0a, 0xebebf5f6, 0x0a0a1414, 0xf5f5ebec, 0x14141414,
- 0xebebebec, 0x19190000, 0xe6e70000, 0x00001919, 0xffffe6e7, 0x1413f0f1, 0xebec0f0f, 0xf0f11414,
- 0x0f0eebec, 0x28281919, 0xd7d7e6e7, 0x19192828, 0xe6e6d7d8, 0x1e1df5f6, 0xe1e20a0a, 0xf5f61e1e,
- 0x0a09e1e2, 0x28280a0a, 0xd7d7f5f6, 0x0a0a2828, 0xf5f5d7d8, 0x28282828, 0xd7d7d7d8, 0x2d2d0000,
- 0xd2d30000, 0x00002d2d, 0xffffd2d3, 0x1e1de1e2, 0xe1e21e1e, 0x2827ebec, 0xd7d81414, 0xebec2828,
- 0x1413d7d8, 0x41411919, 0xbebee6e7, 0x19194141, 0xe6e6bebf, 0x46462d2d, 0xb9b9d2d3, 0x2d2d4646,
- 0xd2d2b9ba, 0x3736f0f1, 0xc8c90f0f, 0xf0f13737, 0x0f0ec8c9, 0x46460a0a, 0xb9b9f5f6, 0x0a0a4646,
- 0xf5f5b9ba, 0x4b4b4b4b, 0xb4b4b4b5, 0x5554fafb, 0xaaab0505, 0xfafb5555, 0x0504aaab, 0x3736d2d3,
- 0xc8c92d2d, 0xd2d33737, 0x2d2cc8c9, 0x4b4adcdd, 0xb4b52323, 0xdcdd4b4b, 0x2322b4b5, 0x73733737,
- 0x8c8cc8c9, 0x37377373, 0xc8c88c8d, 0x73731e1e, 0x8c8ce1e2, 0x1e1e7373, 0xe1e18c8d, 0x78785a5a,
- 0x8787a5a6, 0x5a5a7878, 0xa5a58788, 0x6968e1e2, 0x96971e1e, 0xe1e26969, 0x1e1d9697, 0x5554aaab,
- 0xaaab5555, 0x6968b9ba, 0x96974646, 0xb9ba6969, 0x46459697, 0x1e1e1e1e, 0xe1e1e1e2, 0x3c3c3c3c,
- 0xc3c3c3c4, 0x69696969, 0x96969697, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05050505, 0x05050505,
- 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505, 0x05050505,
- 0x05050505, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb,
- 0xfafafafb, 0xfafafafb, 0xfafafafb, 0xfafafafb, 0x05050000, 0x05050000, 0x05050000, 0x05050000,
- 0x05050000, 0x05050000, 0x05050000, 0x05050000, 0x05050000, 0x05050000, 0x05050000, 0xfafb0000,
- 0xfafb0000, 0xfafb0000, 0xfafb0000, 0xfafb0000, 0xfafb0000, 0xfafb0000, 0xfafb0000, 0xfafb0000,
- 0xfafb0000, 0xfafb0000, 0x00000505, 0x00000505, 0x00000505, 0x00000505, 0x00000505, 0x00000505,
- 0x00000505, 0x00000505, 0x00000505, 0x00000505, 0x00000505, 0xfffffafb, 0xfffffafb, 0xfffffafb,
- 0xfffffafb, 0xfffffafb, 0xfffffafb, 0xfffffafb, 0xfffffafb, 0xfffffafb, 0xfffffafb, 0xfffffafb,
- 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a,
- 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6,
- 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0x0f0f0505, 0x0f0f0505,
- 0x0f0f0505, 0x0f0f0505, 0x0f0f0505, 0x0f0f0505, 0x0f0f0505, 0x0f0f0505, 0x0f0f0505, 0x0f0f0505,
- 0x0f0f0505, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb,
- 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0xf0f0fafb, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0xf9f9f3f4, 0x0c0bf3f4, 0xf3f40c0c, 0x1211f9fa,
- 0xedee0606, 0xf9fa1212, 0x0605edee, 0x18180c0c, 0xe7e7f3f4, 0x0c0c1818, 0xf3f3e7e8, 0x18181818,
- 0xe7e7e7e8, 0x1e1e0000, 0xe1e20000, 0x00001e1e, 0xffffe1e2, 0x1817edee, 0xe7e81212, 0xedee1818,
- 0x1211e7e8, 0x30301e1e, 0xcfcfe1e2, 0x1e1e3030, 0xe1e1cfd0, 0x2423f9fa, 0xdbdc0606, 0xf9fa2424,
- 0x0605dbdc, 0x30300c0c, 0xcfcff3f4, 0x0c0c3030, 0xf3f3cfd0, 0x30303030, 0xcfcfcfd0, 0x36360000,
- 0xc9ca0000, 0x00003636, 0xffffc9ca, 0x2423dbdc, 0xdbdc2424, 0x302fe7e8, 0xcfd01818, 0xe7e83030,
- 0x1817cfd0, 0x4e4e1e1e, 0xb1b1e1e2, 0x1e1e4e4e, 0xe1e1b1b2, 0x54543636, 0xababc9ca, 0x36365454,
- 0xc9c9abac, 0x4241edee, 0xbdbe1212, 0xedee4242, 0x1211bdbe, 0x54540c0c, 0xababf3f4, 0x0c0c5454,
- 0xf3f3abac, 0x5a5a5a5a, 0xa5a5a5a6, 0x605ff9fa, 0x9fa00606, 0xf9fa6060, 0x06059fa0, 0x4241c9ca,
- 0xbdbe3636, 0xc9ca4242, 0x3635bdbe, 0x5a59d5d6, 0xa5a62a2a, 0xd5d65a5a, 0x2a29a5a6, 0x7e7de1e2,
- 0x81821e1e, 0xe1e27e7e, 0x1e1d8182, 0x6665999a, 0x999a6666, 0x7e7dabac, 0x81825454, 0xabac7e7e,
- 0x54538182, 0x24242424, 0xdbdbdbdc, 0x42424242, 0xbdbdbdbe, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000,
- 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000,
- 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000,
- 0xf9fa0000, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606,
- 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa,
- 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa,
- 0xfffff9fa, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606,
- 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0x0c0c0606, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa,
- 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa, 0xf3f3f9fa,
- 0xf3f3f9fa, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c,
- 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x06060c0c, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e,
- 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0xf8f8eaeb, 0x0e0df1f2, 0xf1f20e0e, 0x1514f8f9,
- 0xeaeb0707, 0xf8f91515, 0x0706eaeb, 0x1c1c0e0e, 0xe3e3f1f2, 0x0e0e1c1c, 0xf1f1e3e4, 0x1c1c1c1c,
- 0xe3e3e3e4, 0x23230000, 0xdcdd0000, 0x00002323, 0xffffdcdd, 0x1c1beaeb, 0xe3e41515, 0xeaeb1c1c,
- 0x1514e3e4, 0x38382323, 0xc7c7dcdd, 0x23233838, 0xdcdcc7c8, 0x2a29f1f2, 0xd5d60e0e, 0xf1f22a2a,
- 0x0e0dd5d6, 0x38380e0e, 0xc7c7f1f2, 0x0e0e3838, 0xf1f1c7c8, 0x38383838, 0xc7c7c7c8, 0x3f3f0000,
- 0xc0c10000, 0x00003f3f, 0xffffc0c1, 0x2a29d5d6, 0xd5d62a2a, 0x3837e3e4, 0xc7c81c1c, 0xe3e43838,
- 0x1c1bc7c8, 0x5b5b2323, 0xa4a4dcdd, 0x23235b5b, 0xdcdca4a5, 0x62623f3f, 0x9d9dc0c1, 0x3f3f6262,
- 0xc0c09d9e, 0x4d4ceaeb, 0xb2b31515, 0xeaeb4d4d, 0x1514b2b3, 0x62620e0e, 0x9d9df1f2, 0x0e0e6262,
- 0xf1f19d9e, 0x69696969, 0x96969697, 0x7776f8f9, 0x88890707, 0xf8f97777, 0x07068889, 0x4d4cc0c1,
- 0xb2b33f3f, 0xc0c14d4d, 0x3f3eb2b3, 0x6968cecf, 0x96973131, 0xcecf6969, 0x31309697, 0x77768889,
- 0x88897777, 0x2a2a2a2a, 0xd5d5d5d6, 0x4d4d4d4d, 0xb2b2b2b3, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707,
- 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0x07070707, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9,
- 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9, 0xf8f8f8f9,
- 0xf8f8f8f9, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000,
- 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0xf8f90000, 0xf8f90000, 0xf8f90000,
- 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000,
- 0xf8f90000, 0x00000707, 0x00000707, 0x00000707, 0x00000707, 0x00000707, 0x00000707, 0x00000707,
- 0x00000707, 0x00000707, 0x00000707, 0x00000707, 0x00000707, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9,
- 0xfffff8f9, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9, 0xfffff8f9,
- 0xfffff8f9, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e,
- 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2,
- 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2, 0xf1f1f1f2,
- 0xf1f1f1f2, 0x15150707, 0x15150707, 0x15150707, 0x15150707, 0x15150707, 0x15150707, 0x15150707,
- 0x15150707, 0x15150707, 0x15150707, 0x15150707, 0x15150707, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9,
- 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9, 0xeaeaf8f9,
- 0xeaeaf8f9, 0x07071515, 0x07071515, 0x07071515, 0x07071515, 0x07071515, 0x07071515, 0x07071515,
- 0x07071515, 0x07071515, 0x07071515, 0x07071515, 0x07071515, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010,
- 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0xf7f7eff0, 0x100feff0, 0xeff01010, 0x1817f7f8,
- 0xe7e80808, 0xf7f81818, 0x0807e7e8, 0x20201010, 0xdfdfeff0, 0x10102020, 0xefefdfe0, 0x20202020,
- 0xdfdfdfe0, 0x28280000, 0xd7d80000, 0x00002828, 0xffffd7d8, 0x201fe7e8, 0xdfe01818, 0xe7e82020,
- 0x1817dfe0, 0x40402828, 0xbfbfd7d8, 0x28284040, 0xd7d7bfc0, 0x302feff0, 0xcfd01010, 0xeff03030,
- 0x100fcfd0, 0x40401010, 0xbfbfeff0, 0x10104040, 0xefefbfc0, 0x40404040, 0xbfbfbfc0, 0x48480000,
- 0xb7b80000, 0x00004848, 0xffffb7b8, 0x302fcfd0, 0xcfd03030, 0x403fdfe0, 0xbfc02020, 0xdfe04040,
- 0x201fbfc0, 0x68682828, 0x9797d7d8, 0x28286868, 0xd7d79798, 0x70704848, 0x8f8fb7b8, 0x48487070,
- 0xb7b78f90, 0x5857e7e8, 0xa7a81818, 0xe7e85858, 0x1817a7a8, 0x70701010, 0x8f8feff0, 0x10107070,
- 0xefef8f90, 0x78787878, 0x87878788, 0x5857b7b8, 0xa7a84848, 0xb7b85858, 0x4847a7a8, 0x7877c7c8,
- 0x87883838, 0xc7c87878, 0x38378788, 0x30303030, 0xcfcfcfd0, 0x58585858, 0xa7a7a7a8, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808,
- 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0xf7f7f7f8,
- 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8,
- 0xf7f7f7f8, 0xf7f7f7f8, 0xf7f7f7f8, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000,
- 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0xf7f80000,
- 0xf7f80000, 0xf7f80000, 0xf7f80000, 0xf7f80000, 0xf7f80000, 0xf7f80000, 0xf7f80000, 0xf7f80000,
- 0xf7f80000, 0xf7f80000, 0xf7f80000, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808,
- 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0xfffff7f8,
- 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0xfffff7f8,
- 0xfffff7f8, 0xfffff7f8, 0xfffff7f8, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010,
- 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0xefefeff0,
- 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0, 0xefefeff0,
- 0xefefeff0, 0xefefeff0, 0xefefeff0, 0x10100808, 0x10100808, 0x10100808, 0x10100808, 0x10100808,
- 0x10100808, 0x10100808, 0x10100808, 0x10100808, 0x10100808, 0x10100808, 0x10100808, 0xefeff7f8,
- 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0xefeff7f8,
- 0xefeff7f8, 0xefeff7f8, 0xefeff7f8, 0x08081010, 0x08081010, 0x08081010, 0x08081010, 0x08081010,
- 0x08081010, 0x08081010, 0x08081010, 0x08081010, 0x08081010, 0x08081010, 0x08081010, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212,
- 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x1211edee, 0xedee1212, 0x1b1af6f7,
- 0xe4e50909, 0xf6f71b1b, 0x0908e4e5, 0x24241212, 0xdbdbedee, 0x12122424, 0xededdbdc, 0x24242424,
- 0xdbdbdbdc, 0x2d2d0000, 0xd2d30000, 0x00002d2d, 0xffffd2d3, 0x2423e4e5, 0xdbdc1b1b, 0xe4e52424,
- 0x1b1adbdc, 0x48482d2d, 0xb7b7d2d3, 0x2d2d4848, 0xd2d2b7b8, 0x3635edee, 0xc9ca1212, 0xedee3636,
- 0x1211c9ca, 0x48481212, 0xb7b7edee, 0x12124848, 0xededb7b8, 0x48484848, 0xb7b7b7b8, 0x51510000,
- 0xaeaf0000, 0x00005151, 0xffffaeaf, 0x3635c9ca, 0xc9ca3636, 0x4847dbdc, 0xb7b82424, 0xdbdc4848,
- 0x2423b7b8, 0x75752d2d, 0x8a8ad2d3, 0x2d2d7575, 0xd2d28a8b, 0x7e7e5151, 0x8181aeaf, 0x51517e7e,
- 0xaeae8182, 0x6362e4e5, 0x9c9d1b1b, 0xe4e56363, 0x1b1a9c9d, 0x6362aeaf, 0x9c9d5151, 0xaeaf6363,
- 0x51509c9d, 0x36363636, 0xc9c9c9ca, 0x6c6c6c6c, 0x93939394, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909,
- 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0x09090909, 0xf6f6f6f7,
- 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7,
- 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0xf6f6f6f7, 0x09090000, 0x09090000, 0x09090000, 0x09090000,
- 0x09090000, 0x09090000, 0x09090000, 0x09090000, 0x09090000, 0x09090000, 0x09090000, 0x09090000,
- 0x09090000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000,
- 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0xf6f70000, 0x00000909, 0x00000909,
- 0x00000909, 0x00000909, 0x00000909, 0x00000909, 0x00000909, 0x00000909, 0x00000909, 0x00000909,
- 0x00000909, 0x00000909, 0x00000909, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7,
- 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7, 0xfffff6f7,
- 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212,
- 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0x12121212, 0xedededee, 0xedededee, 0xedededee,
- 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee, 0xedededee,
- 0xedededee, 0xedededee, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909,
- 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0x1b1b0909, 0xe4e4f6f7,
- 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7,
- 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0xe4e4f6f7, 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b,
- 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b, 0x09091b1b,
- 0x09091b1b, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5,
- 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0xf6f6e4e5, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606,
- 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0504fafb, 0xfafb0505, 0xfafb0505,
- 0x0504fafb, 0x0b0b0606, 0xf4f4f9fa, 0x06060b0b, 0xf9f9f4f5, 0x08080000, 0xf7f80000, 0x00000808,
- 0xfffff7f8, 0x0b0b0b0b, 0xf4f4f4f5, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x11110c0c,
- 0xeeeef3f4, 0x0c0c1111, 0xf3f3eeef, 0x11111111, 0xeeeeeeef, 0x12120606, 0xededf9fa, 0x06061212,
- 0xf9f9edee, 0x0b0af7f8, 0xf4f50808, 0xf7f80b0b, 0x0807f4f5, 0x0f0f0000, 0xf0f10000, 0x00000f0f,
- 0xfffff0f1, 0x14140000, 0xebec0000, 0x00001414, 0xffffebec, 0x19191212, 0xe6e6edee, 0x12121919,
- 0xedede6e7, 0x19190b0b, 0xe6e6f4f5, 0x0b0b1919, 0xf4f4e6e7, 0x19191919, 0xe6e6e6e7, 0x0e0df1f2,
- 0xf1f20e0e, 0xf1f20e0e, 0x0e0df1f2, 0x1a1a0000, 0xe5e60000, 0x00001a1a, 0xffffe5e6, 0x1211f4f5,
- 0xedee0b0b, 0xf4f51212, 0x0b0aedee, 0x1615f8f9, 0xe9ea0707, 0xf8f91616, 0x0706e9ea, 0x22221a1a,
- 0xdddde5e6, 0x1a1a2222, 0xe5e5ddde, 0x22221212, 0xddddedee, 0x12122222, 0xededddde, 0x22222222,
- 0xddddddde, 0x23230b0b, 0xdcdcf4f5, 0x0b0b2323, 0xf4f4dcdd, 0x1d1d0000, 0xe2e30000, 0x00001d1d,
- 0xffffe2e3, 0x1615eced, 0xe9ea1313, 0xeced1616, 0x1312e9ea, 0x1a19f0f1, 0xe5e60f0f, 0xf0f11a1a,
- 0x0f0ee5e6, 0x25250000, 0xdadb0000, 0x00002525, 0xffffdadb, 0x2c2c1b1b, 0xd3d3e4e5, 0x1b1b2c2c,
- 0xe4e4d3d4, 0x2c2c2424, 0xd3d3dbdc, 0x24242c2c, 0xdbdbd3d4, 0x2c2c1212, 0xd3d3edee, 0x12122c2c,
- 0xededd3d4, 0x2120f5f6, 0xdedf0a0a, 0xf5f62121, 0x0a09dedf, 0x2d2d2d2d, 0xd2d2d2d3, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606,
- 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000,
- 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000,
- 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd,
- 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000,
- 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa,
- 0x07070000, 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303,
- 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606,
- 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x03030000, 0xfcfd0000,
- 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000, 0xf8f90000, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x07070000,
- 0xf8f90000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0403fbfc, 0xfbfc0404, 0xf9fa0a0a,
- 0x0605f5f6, 0xf3f40000, 0x0c0c0000, 0xf3f3f9fa, 0xf3f40606, 0x0c0bf9fa, 0x0c0c0606, 0xfffff1f2,
- 0x00000e0e, 0x0c0c0c0c, 0xf3f3f3f4, 0xedee0000, 0x12120000, 0xf3f40e0e, 0x0c0bf1f2, 0xf9f9edee,
- 0xf9fa1212, 0x0605edee, 0x06061212, 0xededf5f6, 0xedee0a0a, 0x1211f5f6, 0x12120a0a, 0xffffe9ea,
- 0x00001616, 0xe7e80000, 0x18180000, 0xf3f3e9ea, 0xf3f41616, 0x0c0be9ea, 0x0c0c1616, 0xe7e7f7f8,
- 0xe7e80808, 0x1817f7f8, 0x18180808, 0xf9f9e5e6, 0xf9fa1a1a, 0x0605e5e6, 0x06061a1a, 0xffffe3e4,
- 0x00001c1c, 0x14141414, 0xebebebec, 0xe5e5f1f2, 0x1a1a0e0e, 0xf3f3e1e2, 0x0c0c1e1e, 0xdfdff5f6,
- 0x20200a0a, 0xdfdfedee, 0x20201212, 0xe5e5e5e6, 0x1a1a1a1a, 0xebebddde, 0x14142222, 0xf3f3d9da,
- 0x0c0c2626, 0xdfdfdfe0, 0x20202020, 0x20202020, 0xd7d7e9ea, 0xddddddde, 0x22222222, 0x00000000,
- 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202,
- 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606,
- 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000,
- 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000,
- 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000,
- 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000,
- 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000,
- 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202,
- 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606,
- 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000,
- 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000,
- 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a,
- 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x0605f9fa, 0xf9fa0606, 0xf7f80e0e,
- 0x0807f1f2, 0xffffedee, 0x00001212, 0xeff00a0a, 0x100ff5f6, 0xe7e80000, 0x18180000, 0xf7f7e7e8,
- 0xf7f81818, 0x0807e7e8, 0x08081818, 0x12121212, 0xedededee, 0xeff01414, 0x100febec, 0xe5e5f1f2,
- 0xe5e60e0e, 0x1a19f1f2, 0x1a1a0e0e, 0xffffe1e2, 0x00001e1e, 0xddde0000, 0x22220000, 0xf7f7ddde,
- 0xf7f82222, 0x0807ddde, 0x08082222, 0xedede1e2, 0xedee1e1e, 0x1211e1e2, 0x12121e1e, 0xddddf5f6,
- 0xddde0a0a, 0x2221f5f6, 0x22220a0a, 0xddddebec, 0x22221414, 0xffffd7d8, 0x00002828, 0x1e1e1e1e,
- 0xe1e1e1e2, 0xededd7d8, 0x12122828, 0xd3d40000, 0x2c2c0000, 0xd3d3eff0, 0x2c2c1010, 0xdbdbdbdc,
- 0xdbdbdbdc, 0x24242424, 0xd3d3e5e6, 0x2c2c1a1a, 0xe5e5d1d2, 0x1a1a2e2e, 0xededcbcc, 0x12123434,
- 0xc9c9ebec, 0xd3d3d3d4, 0x2c2c2c2c, 0xc9c9dfe0, 0xd1d1d1d2, 0xd1d1d1d2, 0x2e2e2e2e, 0x00000000,
- 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6,
- 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202,
- 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a,
- 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc,
- 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000,
- 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000,
- 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe,
- 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6,
- 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a,
- 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000,
- 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000,
- 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404,
- 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000,
- 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6,
- 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202,
- 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a,
- 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc,
- 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000,
- 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000,
- 0xf5f60000, 0x00000a0a, 0xfffff5f6, 0x00000000, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe,
- 0x04040404, 0xfbfbfbfc, 0x0a0a0a0a, 0xf5f5f5f6, 0x0a0a0000, 0xf5f60000, 0x00000a0a, 0xfffff5f6,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x0807f7f8, 0xf7f80808, 0xeff00808,
- 0x100ff7f8, 0xe7e80000, 0x18180000, 0xf7f7e7e8, 0xf7f81818, 0x0807e7e8, 0x08081818, 0xeff01414,
- 0x100febec, 0xffffe3e4, 0x00001c1c, 0xe7e7eff0, 0xe7e81010, 0x1817eff0, 0x18181010, 0xdfe00000,
- 0x20200000, 0xefefe3e4, 0xeff01c1c, 0x100fe3e4, 0x10101c1c, 0xdfdff7f8, 0xdfe00808, 0xf7f7dfe0,
- 0xf7f82020, 0x0807dfe0, 0x08082020, 0x201ff7f8, 0x20200808, 0x18181818, 0xe7e7e7e8, 0xe7e81818,
- 0x1817e7e8, 0xdfdfebec, 0x20201414, 0xffffd7d8, 0x00002828, 0xefefd7d8, 0x10102828, 0xd3d40000,
- 0xd3d40000, 0xffffd3d4, 0x00002c2c, 0x2c2c0000, 0x2c2c0000, 0xdfdfdfe0, 0x20202020, 0xd3d3eff0,
- 0x2c2c1010, 0xd3d3e7e8, 0xe7e7d3d4, 0x18182c2c, 0x2c2c1818, 0xefefcfd0, 0x10103030, 0xdbdbdbdc,
- 0xdbdbdbdc, 0x24242424, 0x24242424, 0xcbcbebec, 0x28282828, 0xd7d7d7d8, 0xcbcbdfe0, 0x00000000,
- 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404,
- 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c,
- 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000,
- 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000,
- 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc,
- 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4,
- 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000,
- 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000,
- 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404,
- 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000,
- 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404,
- 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c,
- 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000,
- 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000,
- 0xf3f40000, 0x00000c0c, 0xfffff3f4, 0x00000000, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc,
- 0x04040404, 0xfbfbfbfc, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0000, 0xf3f40000, 0x00000c0c, 0xfffff3f4,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0,
- 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0,
- 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0,
- 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414,
- 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0,
- 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c,
- 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec,
- 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606,
- 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e,
- 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4,
- 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020,
- 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x06060606, 0xf9f9f9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x14141414, 0xebebebec, 0x20202020, 0xdfdfdfe0, 0x2e2e2e2e, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
-};
-
-
-static const uint32_t correctionhighorder[] = {
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101,
- 0xfeff0303, 0x0100fcfd, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303,
- 0x0100fcfd, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x0302feff, 0xfcfd0101, 0xfeff0303, 0x0100fcfd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9,
- 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707,
- 0xf8f8f8f9, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc,
- 0x07070707, 0xf8f8f8f9, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404,
- 0x0100fbfc, 0x07070707, 0xf8f8f8f9, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101,
- 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x0403feff,
- 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9, 0x00000000, 0x03030303, 0xfcfcfcfd,
- 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9, 0x00000000, 0x03030303,
- 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9, 0x00000000,
- 0x03030303, 0xfcfcfcfd, 0x0403feff, 0xfbfc0101, 0xfeff0404, 0x0100fbfc, 0x07070707, 0xf8f8f8f9,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd,
- 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb,
- 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101,
- 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd,
- 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb,
- 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101,
- 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd, 0x03030a0a, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x0504feff, 0xfafb0101, 0xfeff0505, 0x0100fafb, 0x0a0a0303, 0xf5f5fcfd,
- 0x03030a0a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202,
- 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505,
- 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303,
- 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9,
- 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe,
- 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000,
- 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5,
- 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707,
- 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb,
- 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd,
- 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b,
- 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202,
- 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x05050505,
- 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9, 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303,
- 0xf2f2fcfd, 0x00000000, 0x05050505, 0xfafafafb, 0x0706fdfe, 0xf8f90202, 0xfdfe0707, 0x0201f8f9,
- 0x0b0b0b0b, 0xf4f4f4f5, 0x0d0d0303, 0xf2f2fcfd, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8, 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc,
- 0x04040f0f, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x0807fdfe, 0xf7f80202, 0xfdfe0808, 0x0201f7f8,
- 0x0d0d0d0d, 0xf2f2f2f3, 0x0f0f0404, 0xf0f0fbfc, 0x04040f0f, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6, 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb,
- 0x05051212, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x0a09fcfd, 0xf5f60303, 0xfcfd0a0a, 0x0302f5f6,
- 0x10101010, 0xefefeff0, 0x12120505, 0xededfafb, 0x05051212, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303, 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee,
- 0x14140505, 0xebebfafb, 0x05051414, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x0b0afcfd, 0xf4f50303,
- 0xfcfd0b0b, 0x0302f4f5, 0x12121212, 0xedededee, 0x14140505, 0xebebfafb, 0x05051414, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x09090909, 0xf6f6f6f7,
- 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa,
- 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c,
- 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000,
- 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec,
- 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd,
- 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717,
- 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4,
- 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909,
- 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606,
- 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303,
- 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9,
- 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414,
- 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7,
- 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa,
- 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c,
- 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000,
- 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec,
- 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd,
- 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4, 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717,
- 0xf9f9e8e9, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x0c0bfcfd, 0xf3f40303, 0xfcfd0c0c, 0x0302f3f4,
- 0x14141414, 0xebebebec, 0x17170606, 0xe8e8f9fa, 0x06061717, 0xf9f9e8e9, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000,
- 0x00000202, 0xfffffdfe, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202,
- 0xfffffdfe, 0x00000000, 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe,
- 0x00000000, 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x00000000,
- 0x02020202, 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x00000000, 0x02020202,
- 0xfdfdfdfe, 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x00000000, 0x02020202, 0xfdfdfdfe,
- 0x02020000, 0xfdfe0000, 0x00000202, 0xfffffdfe, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa,
- 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606,
- 0xf9f9f9fa, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd,
- 0x06060606, 0xf9f9f9fa, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303,
- 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000,
- 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x00000000, 0x03030303, 0xfcfcfcfd, 0x03030000,
- 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x00000000, 0x03030303, 0xfcfcfcfd,
- 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x00000000, 0x03030303,
- 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa, 0x00000000,
- 0x03030303, 0xfcfcfcfd, 0x03030000, 0xfcfd0000, 0x00000303, 0xfffffcfd, 0x06060606, 0xf9f9f9fa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc,
- 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc,
- 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000,
- 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc,
- 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc,
- 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000,
- 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000, 0x04040404, 0xfbfbfbfc,
- 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc, 0x04040808, 0x00000000,
- 0x04040404, 0xfbfbfbfc, 0x04040000, 0xfbfc0000, 0x00000404, 0xfffffbfc, 0x08080404, 0xf7f7fbfc,
- 0x04040808, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000,
- 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505,
- 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505,
- 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb,
- 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000,
- 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000,
- 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6,
- 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505,
- 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb,
- 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb,
- 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a,
- 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000,
- 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x05050505,
- 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb, 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505,
- 0xf0f0fafb, 0x00000000, 0x05050505, 0xfafafafb, 0x05050000, 0xfafb0000, 0x00000505, 0xfffffafb,
- 0x0a0a0a0a, 0xf5f5f5f6, 0x0f0f0505, 0xf0f0fafb, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa,
- 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa, 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa,
- 0x06060c0c, 0x00000000, 0x06060606, 0xf9f9f9fa, 0x06060000, 0xf9fa0000, 0x00000606, 0xfffff9fa,
- 0x0c0c0c0c, 0xf3f3f3f4, 0x0c0c0606, 0xf3f3f9fa, 0x06060c0c, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9,
- 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9, 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9,
- 0x07071515, 0x00000000, 0x07070707, 0xf8f8f8f9, 0x07070000, 0xf8f90000, 0x00000707, 0xfffff8f9,
- 0x0e0e0e0e, 0xf1f1f1f2, 0x15150707, 0xeaeaf8f9, 0x07071515, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000, 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0,
- 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000, 0x08080808, 0xf7f7f7f8, 0x08080000, 0xf7f80000,
- 0x00000808, 0xfffff7f8, 0x10101010, 0xefefeff0, 0x10100808, 0xefeff7f8, 0x08081010, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000, 0x09090909, 0xf6f6f6f7,
- 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7,
- 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909,
- 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000,
- 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee,
- 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000,
- 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b,
- 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7,
- 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909,
- 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909,
- 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000,
- 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5,
- 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212,
- 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7,
- 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7,
- 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909,
- 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000,
- 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee,
- 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000,
- 0xf6f70000, 0x00000909, 0xfffff6f7, 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b,
- 0xf6f6e4e5, 0x00000000, 0x09090909, 0xf6f6f6f7, 0x09090000, 0xf6f70000, 0x00000909, 0xfffff6f7,
- 0x12121212, 0xedededee, 0x1b1b0909, 0xe4e4f6f7, 0x09091b1b, 0xf6f6e4e5, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0x03030000,
- 0x03030000, 0x03030000, 0x03030000, 0x03030000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000,
- 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0xfcfd0000, 0x00000303,
- 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0x00000303, 0x00000303,
- 0x00000303, 0x00000303, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd,
- 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0xfffffcfd, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000,
- 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0x07070000, 0xf8f90000, 0xf8f90000,
- 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000, 0xf8f90000,
- 0xf8f90000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
- 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
- 0x02020000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000,
- 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0x00000202, 0x00000202,
- 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202,
- 0x00000202, 0x00000202, 0x00000202, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe,
- 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0x06060000, 0x06060000, 0x06060000, 0x06060000,
- 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000, 0x06060000,
- 0x06060000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000,
- 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0xf9fa0000, 0x00000606, 0x00000606,
- 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606, 0x00000606,
- 0x00000606, 0x00000606, 0x00000606, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa,
- 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa, 0xfffff9fa,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
- 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
- 0x02020000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000,
- 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0xfdfe0000, 0x00000202, 0x00000202,
- 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202,
- 0x00000202, 0x00000202, 0x00000202, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe,
- 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe, 0xfffffdfe,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a,
- 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0a0a, 0xf5f5f5f6,
- 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6,
- 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0xf5f5f5f6, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000,
- 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000, 0x0a0a0000,
- 0x0a0a0000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000,
- 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0xf5f60000, 0x00000a0a, 0x00000a0a,
- 0x00000a0a, 0x00000a0a, 0x00000a0a, 0x00000a0a, 0x00000a0a, 0x00000a0a, 0x00000a0a, 0x00000a0a,
- 0x00000a0a, 0x00000a0a, 0x00000a0a, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6,
- 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6, 0xfffff5f6,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
- 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
- 0x04040000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000,
- 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0xfbfc0000, 0x00000404, 0x00000404,
- 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404,
- 0x00000404, 0x00000404, 0x00000404, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc,
- 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc, 0xfffffbfc,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
- 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc, 0xfbfbfbfc,
- 0xfbfbfbfc, 0xfbfbfbfc, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000,
- 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000, 0x0c0c0000,
- 0x0c0c0000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000,
- 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0xf3f40000, 0x00000c0c, 0x00000c0c,
- 0x00000c0c, 0x00000c0c, 0x00000c0c, 0x00000c0c, 0x00000c0c, 0x00000c0c, 0x00000c0c, 0x00000c0c,
- 0x00000c0c, 0x00000c0c, 0x00000c0c, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4,
- 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4, 0xfffff3f4,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0,
- 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0,
- 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0,
- 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef,
- 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
- 0x02020202, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe,
- 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0xfdfdfdfe, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606, 0x06060606,
- 0x06060606, 0x06060606, 0x06060606, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa, 0xf9f9f9fa,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c,
- 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4, 0xf3f3f3f4,
- 0xf3f3f3f4, 0xf3f3f3f4, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414,
- 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0x14141414, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec,
- 0xebebebec, 0xebebebec, 0xebebebec, 0xebebebec, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
- 0x20202020, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0,
- 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0xdfdfdfe0, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e,
- 0x2e2e2e2e, 0x2e2e2e2e, 0x2e2e2e2e, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2, 0xd1d1d1d2,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
-};
-
-#endif /* AVCODEC_INDEO3DATA_H */
+++ /dev/null
-/*
- * Indeo Video Interactive 5 compatible decoder
- * Copyright (c) 2009 Maxim Poliakovski
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * This file contains data needed for the Indeo5 decoder.
- */
-
-#ifndef AVCODEC_INDEO5DATA_H
-#define AVCODEC_INDEO5DATA_H
-
-#include <stdint.h>
-
-/**
- * standard picture dimensions (width, height divided by 4)
- */
-static const uint8_t ivi5_common_pic_sizes[30] = {
- 160, 120, 80, 60, 40, 30, 176, 120, 88, 60, 88, 72, 44, 36, 60, 45, 160, 60,
- 176, 60, 20, 15, 22, 18, 0, 0, 0, 0, 0, 0
-};
-
-/**
- * Indeo5 8x8 scan (zigzag) patterns
- */
-static const uint8_t ivi5_scans8x8[2][64] = {
- {0, 8, 16, 24, 32, 40, 48, 56, 1, 9, 17, 25, 33, 41, 49, 57,
- 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59,
- 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61,
- 6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63
- },
- {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
- }
-};
-
-/**
- * Indeo5 4x4 scan (zigzag) pattern
- */
-static const uint8_t ivi5_scan4x4[16] = {
- 0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
-};
-
-
-/**
- * Indeo5 dequantization matrixes consist of two tables: base table
- * and scale table. The base table defines the dequantization matrix
- * itself and the scale table tells how this matrix should be scaled
- * for a particular quant level (0...24).
- *
- * ivi5_base_quant_bbb_ttt - base tables for block size 'bbb' of type 'ttt'
- * ivi5_scale_quant_bbb_ttt - scale tables for block size 'bbb' of type 'ttt'
- */
-static const uint8_t ivi5_base_quant_8x8_inter[5][64] = {
- {0x13, 0x1d, 0x1f, 0x23, 0x25, 0x27, 0x29, 0x2d, 0x1d, 0x1f, 0x21, 0x23, 0x25, 0x27, 0x2b, 0x2f,
- 0x1f, 0x21, 0x23, 0x24, 0x26, 0x29, 0x2d, 0x31, 0x23, 0x23, 0x24, 0x25, 0x27, 0x2b, 0x2f, 0x33,
- 0x25, 0x25, 0x26, 0x27, 0x29, 0x2d, 0x31, 0x35, 0x27, 0x27, 0x29, 0x2b, 0x2d, 0x2f, 0x33, 0x37,
- 0x29, 0x2b, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x39, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b
- },
- {0x13, 0x1d, 0x1f, 0x23, 0x25, 0x27, 0x29, 0x2d, 0x1d, 0x1f, 0x21, 0x23, 0x25, 0x27, 0x2b, 0x2f,
- 0x1f, 0x21, 0x23, 0x24, 0x26, 0x29, 0x2d, 0x31, 0x23, 0x23, 0x24, 0x25, 0x27, 0x2b, 0x2f, 0x33,
- 0x25, 0x25, 0x26, 0x27, 0x29, 0x2d, 0x31, 0x35, 0x27, 0x27, 0x29, 0x2b, 0x2d, 0x2f, 0x33, 0x37,
- 0x29, 0x2b, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x39, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b
- },
- {0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61
- },
- {0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
- 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a,
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
- 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61
- },
- {0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f
- }
-};
-
-static const uint8_t ivi5_base_quant_8x8_intra[5][64] = {
- {0x0d, 0x17, 0x1b, 0x21, 0x23, 0x25, 0x27, 0x2d, 0x17, 0x19, 0x1f, 0x21, 0x23, 0x27, 0x2b, 0x35,
- 0x1b, 0x1f, 0x1f, 0x22, 0x25, 0x2a, 0x33, 0x39, 0x21, 0x21, 0x22, 0x25, 0x29, 0x31, 0x36, 0x3d,
- 0x23, 0x23, 0x25, 0x29, 0x2f, 0x33, 0x39, 0x47, 0x25, 0x27, 0x2a, 0x31, 0x33, 0x37, 0x43, 0x53,
- 0x27, 0x2b, 0x33, 0x36, 0x39, 0x43, 0x4d, 0x65, 0x2d, 0x35, 0x39, 0x3d, 0x47, 0x53, 0x65, 0x7f
- },
- {0x13, 0x1d, 0x1f, 0x23, 0x25, 0x27, 0x29, 0x2d, 0x1d, 0x1f, 0x21, 0x23, 0x25, 0x27, 0x2b, 0x2f,
- 0x1f, 0x21, 0x23, 0x24, 0x26, 0x29, 0x2d, 0x31, 0x23, 0x23, 0x24, 0x25, 0x27, 0x2b, 0x2f, 0x33,
- 0x25, 0x25, 0x26, 0x27, 0x29, 0x2d, 0x31, 0x35, 0x27, 0x27, 0x29, 0x2b, 0x2d, 0x2f, 0x33, 0x37,
- 0x29, 0x2b, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x39, 0x2d, 0x2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b
- },
- {0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61,
- 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61, 0x27, 0x55, 0x79, 0x6a, 0x6f, 0x61, 0x6b, 0x61
- },
- {0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
- 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a,
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
- 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61
- },
- {0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
- 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f
- }
-};
-
-static const uint8_t ivi5_base_quant_4x4_inter[16] = {
- 0x0f, 0x1f, 0x25, 0x29, 0x1f, 0x25, 0x29, 0x2b, 0x25, 0x29, 0x2b, 0x2f, 0x29, 0x2b, 0x2f, 0x33
-};
-
-static const uint8_t ivi5_base_quant_4x4_intra[16] = {
- 0x0f, 0x1f, 0x25, 0x29, 0x1f, 0x25, 0x29, 0x2f, 0x25, 0x29, 0x2f, 0x3d, 0x29, 0x2f, 0x3d, 0x49
-};
-
-
-static const uint8_t ivi5_scale_quant_8x8_inter[5][24] = {
- {0x0b, 0x11, 0x13, 0x14, 0x15, 0x16, 0x18, 0x1a, 0x1b, 0x1d, 0x20, 0x22,
- 0x23, 0x25, 0x28, 0x2a, 0x2e, 0x32, 0x35, 0x39, 0x3d, 0x41, 0x44, 0x4a,
- },
- {0x07, 0x14, 0x16, 0x18, 0x1b, 0x1e, 0x22, 0x25, 0x29, 0x2d, 0x31, 0x35,
- 0x3a, 0x3f, 0x44, 0x4a, 0x50, 0x56, 0x5c, 0x63, 0x6a, 0x71, 0x78, 0x7e,
- },
- {0x15, 0x25, 0x28, 0x2d, 0x30, 0x34, 0x3a, 0x3d, 0x42, 0x48, 0x4c, 0x51,
- 0x56, 0x5b, 0x60, 0x65, 0x6b, 0x70, 0x76, 0x7c, 0x82, 0x88, 0x8f, 0x97,
- },
- {0x13, 0x1f, 0x20, 0x22, 0x25, 0x28, 0x2b, 0x2d, 0x30, 0x33, 0x36, 0x39,
- 0x3c, 0x3f, 0x42, 0x45, 0x48, 0x4b, 0x4e, 0x52, 0x56, 0x5a, 0x5e, 0x62,
- },
- {0x3c, 0x52, 0x58, 0x5d, 0x63, 0x68, 0x68, 0x6d, 0x73, 0x78, 0x7c, 0x80,
- 0x84, 0x89, 0x8e, 0x93, 0x98, 0x9d, 0xa3, 0xa9, 0xad, 0xb1, 0xb5, 0xba,
- },
-};
-
-static const uint8_t ivi5_scale_quant_8x8_intra[5][24] = {
- {0x0b, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x17, 0x18, 0x1a, 0x1c, 0x1e, 0x20,
- 0x22, 0x24, 0x27, 0x28, 0x2a, 0x2d, 0x2f, 0x31, 0x34, 0x37, 0x39, 0x3c,
- },
- {0x01, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1b, 0x1e, 0x22, 0x25, 0x28, 0x2c,
- 0x30, 0x34, 0x38, 0x3d, 0x42, 0x47, 0x4c, 0x52, 0x58, 0x5e, 0x65, 0x6c,
- },
- {0x13, 0x22, 0x27, 0x2a, 0x2d, 0x33, 0x36, 0x3c, 0x41, 0x45, 0x49, 0x4e,
- 0x53, 0x58, 0x5d, 0x63, 0x69, 0x6f, 0x75, 0x7c, 0x82, 0x88, 0x8e, 0x95,
- },
- {0x13, 0x1f, 0x21, 0x24, 0x27, 0x29, 0x2d, 0x2f, 0x34, 0x37, 0x3a, 0x3d,
- 0x40, 0x44, 0x48, 0x4c, 0x4f, 0x52, 0x56, 0x5a, 0x5e, 0x62, 0x66, 0x6b,
- },
- {0x31, 0x42, 0x47, 0x47, 0x4d, 0x52, 0x58, 0x58, 0x5d, 0x63, 0x67, 0x6b,
- 0x6f, 0x73, 0x78, 0x7c, 0x80, 0x84, 0x89, 0x8e, 0x93, 0x98, 0x9d, 0xa4,
- }
-};
-
-static const uint8_t ivi5_scale_quant_4x4_inter[24] = {
- 0x0b, 0x0d, 0x0d, 0x0e, 0x11, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
-};
-
-static const uint8_t ivi5_scale_quant_4x4_intra[24] = {
- 0x01, 0x0b, 0x0b, 0x0d, 0x0d, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x13, 0x14,
- 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20
-};
-
-
-#endif /* AVCODEC_INDEO5DATA_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * common internal api header.
- */
-
-#ifndef AVCODEC_INTERNAL_H
-#define AVCODEC_INTERNAL_H
-
-#include <stdint.h>
-#include "avcodec.h"
-
-/**
- * Determines whether pix_fmt is a hardware accelerated format.
- */
-int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt);
-
-/**
- * Returns the hardware accelerated codec for codec codec_id and
- * pixel format pix_fmt.
- *
- * @param codec_id the codec to match
- * @param pix_fmt the pixel format to match
- * @return the hardware accelerated codec, or NULL if none was found.
- */
-AVHWAccel *ff_find_hwaccel(enum CodecID codec_id, enum PixelFormat pix_fmt);
-
-/**
- * Return the index into tab at which {a,b} match elements {[0],[1]} of tab.
- * If there is no such matching pair then size is returned.
- */
-int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b);
-
-#endif /* AVCODEC_INTERNAL_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_INTRAX8_H
-#define AVCODEC_INTRAX8_H
-
-#include "get_bits.h"
-#include "mpegvideo.h"
-
-typedef struct{
- VLC * j_ac_vlc[4];//they point to the static j_mb_vlc
- VLC * j_orient_vlc;
- VLC * j_dc_vlc[3];
-
- int use_quant_matrix;
-//set by ff_intrax8_common_init
- uint8_t * prediction_table;//2*(mb_w*2)
- ScanTable scantable[3];
-//set by the caller codec
- MpegEncContext * s;
- int quant;
- int dquant;
- int qsum;
-//calculated per frame
- int quant_dc_chroma;
- int divide_quant_dc_luma;
- int divide_quant_dc_chroma;
-//changed per block
- int edges;
- int flat_dc;
- int predicted_dc;
- int raw_orient;
- int chroma_orient;
- int orient;
- int est_run;
-} IntraX8Context;
-
-void ff_intrax8_common_init(IntraX8Context * w, MpegEncContext * const s);
-void ff_intrax8_common_end(IntraX8Context * w);
-int ff_intrax8_decode_picture(IntraX8Context * w, int quant, int halfpq);
-
-#endif /* AVCODEC_INTRAX8_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_INTRAX8HUF_H
-#define AVCODEC_INTRAX8HUF_H
-
-#include <inttypes.h>
-
-
-static const uint16_t x8_orient_lowquant_table[4][12][2]={
- {//0
- {0x0000, 1}, {0x0004, 3}, {0x0005, 3}, {0x000C, 4},
- {0x000D, 4}, {0x0038, 6}, {0x001D, 5}, {0x0039, 6},
- {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6},
- },{//1
- {0x0000, 5}, {0x0001, 5}, {0x0002, 5}, {0x0001, 2},
- {0x0002, 2}, {0x0002, 4}, {0x0003, 5}, {0x0006, 3},
- {0x0003, 4}, {0x000E, 4}, {0x001E, 5}, {0x001F, 5},
- },{//2
- {0x0000, 2}, {0x0001, 2}, {0x0004, 3}, {0x0005, 3},
- {0x0006, 3}, {0x0038, 6}, {0x0039, 6}, {0x001D, 5},
- {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6},
- },{//3
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0001, 2},
- {0x0002, 2}, {0x0018, 5}, {0x0019, 5}, {0x000D, 4},
- {0x001C, 5}, {0x001D, 5}, {0x001E, 5}, {0x001F, 5},
- }
-};
-
-static const uint16_t x8_orient_highquant_table[2][12][2]={
- {//0
- {0x0000, 2}, {0x0001, 2}, {0x0004, 3}, {0x0005, 3},
- {0x0006, 3}, {0x0038, 6}, {0x001D, 5}, {0x0039, 6},
- {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6},
- },{//1
- {0x0000, 1}, {0x0002, 2}, {0x0006, 3}, {0x001C, 5},
- {0x001D, 5}, {0x0078, 7}, {0x003D, 6}, {0x0079, 7},
- {0x007C, 7}, {0x007D, 7}, {0x007E, 7}, {0x007F, 7},
- }
-};
-#define MAX_OR_VLC_BITS 7
-
-
-static const uint16_t x8_dc_lowquant_table[8][34][2]={
- {//0
- {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0004, 5},
- {0x0005, 5}, {0x0006, 5}, {0x000E, 6}, {0x000F, 6},
- {0x0040, 8}, {0x0041, 8}, {0x0840, 13}, {0x0841, 13},
- {0x0842, 13}, {0x0843, 13}, {0x0844, 13}, {0x0845, 13},
- {0x0846, 13}, {0x0002, 2}, {0x0003, 2}, {0x0003, 3},
- {0x0005, 4}, {0x0009, 5}, {0x0011, 6}, {0x0043, 8},
- {0x0085, 9}, {0x0847, 13}, {0x0848, 13}, {0x0849, 13},
- {0x084A, 13}, {0x084B, 13}, {0x084C, 13}, {0x084D, 13},
- {0x084E, 13}, {0x084F, 13},
- },{//1
- {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4},
- {0x0006, 4}, {0x0004, 3}, {0x0007, 4}, {0x0005, 3},
- {0x000C, 4}, {0x000D, 4}, {0x001C, 5}, {0x003A, 6},
- {0x01D8, 9}, {0x01D9, 9}, {0x1DA0, 13}, {0x1DA1, 13},
- {0x1DA2, 13}, {0x003C, 6}, {0x003D, 6}, {0x003E, 6},
- {0x0077, 7}, {0x01DB, 9}, {0x007E, 7}, {0x00FE, 8},
- {0x01FE, 9}, {0x1DA3, 13}, {0x1DA4, 13}, {0x1DA5, 13},
- {0x0ED3, 12}, {0x0ED4, 12}, {0x01FF, 9}, {0x0ED5, 12},
- {0x0ED6, 12}, {0x0ED7, 12},
- },{//2
- {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4},
- {0x0006, 4}, {0x0007, 4}, {0x0008, 4}, {0x0009, 4},
- {0x0028, 6}, {0x0029, 6}, {0x0054, 7}, {0x0055, 7},
- {0x0AC0, 12}, {0x0AC1, 12}, {0x0AC2, 12}, {0x0AC3, 12},
- {0x0AC4, 12}, {0x000B, 4}, {0x0006, 3}, {0x000E, 4},
- {0x001E, 5}, {0x003E, 6}, {0x003F, 6}, {0x0057, 7},
- {0x00AD, 8}, {0x0AC5, 12}, {0x0AC6, 12}, {0x0AC7, 12},
- {0x0AC8, 12}, {0x0AC9, 12}, {0x0ACA, 12}, {0x0ACB, 12},
- {0x0566, 11}, {0x0567, 11},
- },{//3
- {0x0000, 4}, {0x0001, 2}, {0x0001, 3}, {0x0004, 3},
- {0x0005, 3}, {0x0006, 3}, {0x0001, 4}, {0x000E, 4},
- {0x003C, 6}, {0x003D, 6}, {0x007C, 7}, {0x00FA, 8},
- {0x3EC0, 14}, {0x3EC1, 14}, {0x3EC2, 14}, {0x3EC3, 14},
- {0x1F62, 13}, {0x01F7, 9}, {0x007E, 7}, {0x00FE, 8},
- {0x00FF, 8}, {0x1F63, 13}, {0x1F64, 13}, {0x1F65, 13},
- {0x1F66, 13}, {0x1F67, 13}, {0x1F68, 13}, {0x1F69, 13},
- {0x1F6A, 13}, {0x1F6B, 13}, {0x1F6C, 13}, {0x1F6D, 13},
- {0x1F6E, 13}, {0x1F6F, 13},
- },{//4
- {0x0000, 7}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7},
- {0x0004, 7}, {0x0005, 7}, {0x0006, 7}, {0x0007, 7},
- {0x0008, 7}, {0x0009, 7}, {0x000A, 7}, {0x000B, 7},
- {0x000C, 7}, {0x000D, 7}, {0x000E, 7}, {0x000F, 7},
- {0x0010, 7}, {0x0001, 1}, {0x0001, 2}, {0x0011, 7},
- {0x0012, 7}, {0x0013, 7}, {0x0014, 7}, {0x0015, 7},
- {0x0016, 7}, {0x0017, 7}, {0x0018, 7}, {0x0019, 7},
- {0x001A, 7}, {0x001B, 7}, {0x001C, 7}, {0x001D, 7},
- {0x001E, 7}, {0x001F, 7},
- },{//5
- {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0008, 6},
- {0x0009, 6}, {0x000A, 6}, {0x0016, 7}, {0x000C, 6},
- {0x0017, 7}, {0x000D, 6}, {0x0038, 8}, {0x001D, 7},
- {0x0039, 8}, {0x0780, 13}, {0x0781, 13}, {0x0782, 13},
- {0x0783, 13}, {0x0002, 3}, {0x0001, 1}, {0x0003, 3},
- {0x001F, 7}, {0x003D, 8}, {0x0079, 9}, {0x0784, 13},
- {0x0785, 13}, {0x0786, 13}, {0x0787, 13}, {0x0788, 13},
- {0x0789, 13}, {0x078A, 13}, {0x078B, 13}, {0x078C, 13},
- {0x078D, 13}, {0x03C7, 12},
- },{//6
- {0x0000, 4}, {0x0001, 2}, {0x0001, 3}, {0x0004, 3},
- {0x0001, 4}, {0x000A, 4}, {0x0016, 5}, {0x002E, 6},
- {0x005E, 7}, {0x005F, 7}, {0x00C0, 8}, {0x3040, 14},
- {0x3041, 14}, {0x0305, 10}, {0x0183, 9}, {0x3042, 14},
- {0x3043, 14}, {0x000D, 4}, {0x0007, 3}, {0x0019, 5},
- {0x0031, 6}, {0x00C2, 8}, {0x00C3, 8}, {0x3044, 14},
- {0x3045, 14}, {0x3046, 14}, {0x3047, 14}, {0x3048, 14},
- {0x3049, 14}, {0x304A, 14}, {0x304B, 14}, {0x304C, 14},
- {0x304D, 14}, {0x1827, 13},
- },{//7
- {0x0000, 6}, {0x0001, 6}, {0x0002, 6}, {0x0006, 7},
- {0x0007, 7}, {0x0004, 6}, {0x0005, 6}, {0x0006, 6},
- {0x000E, 7}, {0x001E, 8}, {0x001F, 8}, {0x0040, 9},
- {0x0082, 10}, {0x0830, 14}, {0x0831, 14}, {0x0832, 14},
- {0x0833, 14}, {0x0001, 1}, {0x0001, 2}, {0x0003, 4},
- {0x0005, 5}, {0x0009, 6}, {0x0011, 7}, {0x0021, 8},
- {0x0834, 14}, {0x0835, 14}, {0x0836, 14}, {0x0837, 14},
- {0x0838, 14}, {0x0839, 14}, {0x083A, 14}, {0x083B, 14},
- {0x041E, 13}, {0x041F, 13},
- }
-};
-
-static const uint16_t x8_dc_highquant_table[8][34][2]={
- {//0
- {0x0000, 5}, {0x0001, 4}, {0x0002, 4}, {0x0001, 5},
- {0x0006, 5}, {0x0004, 4}, {0x0007, 5}, {0x000A, 5},
- {0x002C, 7}, {0x002D, 7}, {0x05C0, 12}, {0x05C1, 12},
- {0x05C2, 12}, {0x05C3, 12}, {0x05C4, 12}, {0x05C5, 12},
- {0x05C6, 12}, {0x0003, 3}, {0x0002, 2}, {0x0006, 3},
- {0x000E, 4}, {0x001E, 5}, {0x001F, 5}, {0x002F, 7},
- {0x005D, 8}, {0x05C7, 12}, {0x05C8, 12}, {0x05C9, 12},
- {0x05CA, 12}, {0x05CB, 12}, {0x05CC, 12}, {0x05CD, 12},
- {0x05CE, 12}, {0x05CF, 12},
- },{//1
- {0x0000, 3}, {0x0001, 3}, {0x0002, 3}, {0x0006, 4},
- {0x0007, 4}, {0x0004, 3}, {0x000A, 4}, {0x000B, 4},
- {0x0030, 6}, {0x0062, 7}, {0x0063, 7}, {0x0640, 11},
- {0x0641, 11}, {0x0642, 11}, {0x0643, 11}, {0x0644, 11},
- {0x0645, 11}, {0x0033, 6}, {0x000D, 4}, {0x001C, 5},
- {0x001D, 5}, {0x003C, 6}, {0x001F, 5}, {0x0065, 7},
- {0x007A, 7}, {0x0646, 11}, {0x007B, 7}, {0x0647, 11},
- {0x0648, 11}, {0x0649, 11}, {0x064A, 11}, {0x064B, 11},
- {0x0326, 10}, {0x0327, 10},
- },{//2
- {0x0000, 7}, {0x0001, 7}, {0x0001, 6}, {0x0004, 7},
- {0x0003, 6}, {0x0005, 7}, {0x0010, 8}, {0x0011, 8},
- {0x0240, 13}, {0x0241, 13}, {0x0242, 13}, {0x0243, 13},
- {0x0244, 13}, {0x0245, 13}, {0x0246, 13}, {0x0247, 13},
- {0x0124, 12}, {0x0001, 1}, {0x0001, 2}, {0x0001, 3},
- {0x0003, 5}, {0x0005, 6}, {0x0013, 8}, {0x0125, 12},
- {0x0126, 12}, {0x0127, 12}, {0x0128, 12}, {0x0129, 12},
- {0x012A, 12}, {0x012B, 12}, {0x012C, 12}, {0x012D, 12},
- {0x012E, 12}, {0x012F, 12},
- },{//3
- {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4},
- {0x0006, 4}, {0x0004, 3}, {0x0005, 3}, {0x0006, 3},
- {0x000E, 5}, {0x000F, 5}, {0x0070, 7}, {0x0710, 11},
- {0x0711, 11}, {0x0712, 11}, {0x0713, 11}, {0x0714, 11},
- {0x0715, 11}, {0x001D, 5}, {0x0072, 7}, {0x003C, 6},
- {0x003D, 6}, {0x0073, 7}, {0x007C, 7}, {0x007D, 7},
- {0x007E, 7}, {0x0716, 11}, {0x0717, 11}, {0x0718, 11},
- {0x007F, 7}, {0x0719, 11}, {0x071A, 11}, {0x071B, 11},
- {0x038E, 10}, {0x038F, 10},
- },{//4
- {0x0000, 8}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7},
- {0x0002, 9}, {0x0008, 8}, {0x0003, 9}, {0x0240, 14},
- {0x0241, 14}, {0x0242, 14}, {0x0243, 14}, {0x0244, 14},
- {0x0245, 14}, {0x0246, 14}, {0x0247, 14}, {0x0124, 13},
- {0x0125, 13}, {0x0001, 2}, {0x0001, 1}, {0x0001, 3},
- {0x0001, 4}, {0x0003, 6}, {0x0005, 7}, {0x0013, 9},
- {0x0126, 13}, {0x0127, 13}, {0x0128, 13}, {0x0129, 13},
- {0x012A, 13}, {0x012B, 13}, {0x012C, 13}, {0x012D, 13},
- {0x012E, 13}, {0x012F, 13},
- },{//5
- {0x0000, 7}, {0x0001, 7}, {0x0001, 6}, {0x0002, 6},
- {0x0003, 6}, {0x0004, 6}, {0x0005, 6}, {0x0006, 6},
- {0x0007, 6}, {0x0008, 6}, {0x0009, 6}, {0x000A, 6},
- {0x000B, 6}, {0x000C, 6}, {0x000D, 6}, {0x000E, 6},
- {0x000F, 6}, {0x0010, 6}, {0x0011, 6}, {0x0012, 6},
- {0x0013, 6}, {0x0014, 6}, {0x0015, 6}, {0x0016, 6},
- {0x0017, 6}, {0x0018, 6}, {0x0019, 6}, {0x0001, 1},
- {0x001A, 6}, {0x001B, 6}, {0x001C, 6}, {0x001D, 6},
- {0x001E, 6}, {0x001F, 6},
- },{//6
- {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0004, 5},
- {0x000A, 6}, {0x0006, 5}, {0x000B, 6}, {0x000E, 6},
- {0x003C, 8}, {0x003D, 8}, {0x07C0, 13}, {0x07C1, 13},
- {0x07C2, 13}, {0x07C3, 13}, {0x07C4, 13}, {0x07C5, 13},
- {0x07C6, 13}, {0x0001, 2}, {0x0002, 2}, {0x0006, 3},
- {0x000E, 4}, {0x001E, 5}, {0x001F, 5}, {0x003F, 8},
- {0x007D, 9}, {0x07C7, 13}, {0x07C8, 13}, {0x07C9, 13},
- {0x07CA, 13}, {0x07CB, 13}, {0x07CC, 13}, {0x07CD, 13},
- {0x07CE, 13}, {0x07CF, 13},
- },{//7
- {0x0000, 7}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7},
- {0x0004, 7}, {0x0005, 7}, {0x0006, 7}, {0x0007, 7},
- {0x0008, 7}, {0x0009, 7}, {0x000A, 7}, {0x000B, 7},
- {0x000C, 7}, {0x000D, 7}, {0x000E, 7}, {0x000F, 7},
- {0x0010, 7}, {0x0001, 1}, {0x0001, 2}, {0x0011, 7},
- {0x0012, 7}, {0x0013, 7}, {0x0014, 7}, {0x0015, 7},
- {0x0016, 7}, {0x0017, 7}, {0x0018, 7}, {0x0019, 7},
- {0x001A, 7}, {0x001B, 7}, {0x001C, 7}, {0x001D, 7},
- {0x001E, 7}, {0x001F, 7},
- }
-};
-#define MAX_DC_VLC_BITS 14
-
-
-static const uint16_t x8_ac0_lowquant_table[8][77][2]={
- {//0
- {0x0000, 2}, {0x0002, 3}, {0x0006, 4}, {0x000E, 5},
- {0x001E, 6}, {0x003E, 7}, {0x003F, 7}, {0x0040, 7},
- {0x0104, 9}, {0x0083, 8}, {0x0084, 8}, {0x0085, 8},
- {0x020A, 10}, {0x020B, 10}, {0x0218, 10}, {0x0219, 10},
- {0x0009, 4}, {0x0044, 7}, {0x010D, 9}, {0x021C, 10},
- {0x0023, 6}, {0x0045, 7}, {0x0050, 7}, {0x000B, 4},
- {0x000C, 4}, {0x0015, 5}, {0x001A, 5}, {0x001B, 5},
- {0x0029, 6}, {0x0038, 6}, {0x0039, 6}, {0x003A, 6},
- {0x0051, 7}, {0x0076, 7}, {0x0077, 7}, {0x0078, 7},
- {0x0079, 7}, {0x007A, 7}, {0x007B, 7}, {0x00F8, 8},
- {0x010F, 9}, {0x021D, 10}, {0x3E40, 14}, {0x3E41, 14},
- {0x3E42, 14}, {0x3E43, 14}, {0x03E5, 10}, {0x3E44, 14},
- {0x01F3, 9}, {0x3E45, 14}, {0x3E46, 14}, {0x3E47, 14},
- {0x00FA, 8}, {0x3E48, 14}, {0x3E49, 14}, {0x3E4A, 14},
- {0x3E4B, 14}, {0x03EC, 10}, {0x3E4C, 14}, {0x007E, 7},
- {0x00FE, 8}, {0x00FF, 8}, {0x01F7, 9}, {0x3E4D, 14},
- {0x3E4E, 14}, {0x3E4F, 14}, {0x3ED0, 14}, {0x3ED1, 14},
- {0x3ED2, 14}, {0x3ED3, 14}, {0x3ED4, 14}, {0x3ED5, 14},
- {0x1F6B, 13}, {0x1F6C, 13}, {0x1F6D, 13}, {0x1F6E, 13},
- {0x1F6F, 13},
- },{//1
- {0x0000, 3}, {0x0004, 5}, {0x0014, 7}, {0x000B, 6},
- {0x000C, 6}, {0x002A, 8}, {0x002B, 8}, {0x0034, 8},
- {0x0D40, 14}, {0x0D41, 14}, {0x001B, 7}, {0x0D42, 14},
- {0x0D43, 14}, {0x0D44, 14}, {0x0D45, 14}, {0x0D46, 14},
- {0x000E, 6}, {0x003C, 8}, {0x0D47, 14}, {0x003D, 8},
- {0x0D48, 14}, {0x0D49, 14}, {0x0D4A, 14}, {0x0001, 2},
- {0x0004, 3}, {0x0014, 5}, {0x000B, 4}, {0x000C, 4},
- {0x000D, 4}, {0x002A, 6}, {0x001F, 7}, {0x0056, 7},
- {0x0057, 7}, {0x0070, 7}, {0x00E2, 8}, {0x0072, 7},
- {0x003A, 6}, {0x003B, 6}, {0x003C, 6}, {0x003D, 6},
- {0x00E3, 8}, {0x0D4B, 14}, {0x00E6, 8}, {0x00E7, 8},
- {0x00F8, 8}, {0x0D4C, 14}, {0x0D4D, 14}, {0x0D4E, 14},
- {0x00F9, 8}, {0x0D4F, 14}, {0x0D50, 14}, {0x0D51, 14},
- {0x06A9, 13}, {0x06AA, 13}, {0x06AB, 13}, {0x06AC, 13},
- {0x06AD, 13}, {0x06AE, 13}, {0x06AF, 13}, {0x003F, 6},
- {0x06B0, 13}, {0x06B1, 13}, {0x06B2, 13}, {0x06B3, 13},
- {0x06B4, 13}, {0x007D, 7}, {0x06B5, 13}, {0x06B6, 13},
- {0x06B7, 13}, {0x06B8, 13}, {0x06B9, 13}, {0x06BA, 13},
- {0x06BB, 13}, {0x06BC, 13}, {0x06BD, 13}, {0x06BE, 13},
- {0x06BF, 13},
- },{//2
- {0x0000, 2}, {0x0002, 3}, {0x0003, 3}, {0x0008, 4},
- {0x0012, 5}, {0x0013, 5}, {0x0028, 6}, {0x0029, 6},
- {0x0054, 7}, {0x0055, 7}, {0x0056, 7}, {0x00AE, 8},
- {0x00AF, 8}, {0x00B0, 8}, {0x0162, 9}, {0x02C6, 10},
- {0x000C, 4}, {0x002D, 6}, {0x00B2, 8}, {0x0166, 9},
- {0x002E, 6}, {0x0167, 9}, {0x00BC, 8}, {0x001A, 5},
- {0x0036, 6}, {0x0037, 6}, {0x0038, 6}, {0x005F, 7},
- {0x0072, 7}, {0x0073, 7}, {0x0074, 7}, {0x0075, 7},
- {0x0076, 7}, {0x0077, 7}, {0x0078, 7}, {0x0079, 7},
- {0x007A, 7}, {0x007B, 7}, {0x00BD, 8}, {0xB1C0, 16},
- {0xB1C1, 16}, {0x58E1, 15}, {0x0B1D, 12}, {0x58E2, 15},
- {0x58E3, 15}, {0x58E4, 15}, {0x00F8, 8}, {0x03E4, 10},
- {0x01F3, 9}, {0x0B1E, 12}, {0x58E5, 15}, {0x58E6, 15},
- {0x00FA, 8}, {0x58E7, 15}, {0x58F8, 15}, {0x58F9, 15},
- {0x58FA, 15}, {0x01F6, 9}, {0x58FB, 15}, {0x007E, 7},
- {0x00FE, 8}, {0x00FF, 8}, {0x07CA, 11}, {0x0F96, 12},
- {0x58FC, 15}, {0x58FD, 15}, {0x58FE, 15}, {0x58FF, 15},
- {0x7CB8, 15}, {0x7CB9, 15}, {0x7CBA, 15}, {0x7CBB, 15},
- {0x7CBC, 15}, {0x01F7, 9}, {0x7CBD, 15}, {0x7CBE, 15},
- {0x7CBF, 15},
- },{//3
- {0x0000, 2}, {0x0002, 3}, {0x0006, 4}, {0x000E, 5},
- {0x000F, 5}, {0x0020, 6}, {0x0021, 6}, {0x0044, 7},
- {0x0045, 7}, {0x008C, 8}, {0x008D, 8}, {0x011C, 9},
- {0x011D, 9}, {0x011E, 9}, {0x023E, 10}, {0x023F, 10},
- {0x0005, 3}, {0x0012, 5}, {0x004C, 7}, {0x004D, 7},
- {0x000C, 4}, {0x004E, 7}, {0x001A, 5}, {0x0036, 6},
- {0x004F, 7}, {0x006E, 7}, {0x006F, 7}, {0x00E0, 8},
- {0x00E1, 8}, {0x00E2, 8}, {0x00E3, 8}, {0x00E4, 8},
- {0x00E5, 8}, {0x01CC, 9}, {0x00E7, 8}, {0x00E8, 8},
- {0x00E9, 8}, {0x01CD, 9}, {0x0750, 11}, {0x03A9, 10},
- {0x0751, 11}, {0x7540, 15}, {0x03AB, 10}, {0x7541, 15},
- {0x7542, 15}, {0x7543, 15}, {0x01D6, 9}, {0x0755, 11},
- {0x0076, 7}, {0x0EA9, 12}, {0x7544, 15}, {0x7545, 15},
- {0x001E, 5}, {0x0077, 7}, {0x00F8, 8}, {0x03AE, 10},
- {0x075E, 11}, {0x007D, 7}, {0x03E4, 10}, {0x00FC, 8},
- {0x00FD, 8}, {0x03E5, 10}, {0x03E6, 10}, {0x0EBE, 12},
- {0x7546, 15}, {0x07CE, 11}, {0x7547, 15}, {0x75F8, 15},
- {0x75F9, 15}, {0x75FA, 15}, {0x75FB, 15}, {0x75FC, 15},
- {0x75FD, 15}, {0x007F, 7}, {0x3AFF, 14}, {0x0F9E, 12},
- {0x0F9F, 12},
- },{//4
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0012, 6}, {0x0013, 6}, {0x0014, 6}, {0x002A, 7},
- {0x0016, 6}, {0x002B, 7}, {0x005C, 8}, {0x005D, 8},
- {0x005E, 8}, {0x00BE, 9}, {0x00BF, 9}, {0x0060, 8},
- {0x0007, 4}, {0x000D, 5}, {0x0019, 6}, {0x0020, 6},
- {0x0009, 4}, {0x0021, 6}, {0x0011, 5}, {0x0014, 5},
- {0x002A, 6}, {0x002B, 6}, {0x002C, 6}, {0x002D, 6},
- {0x002E, 6}, {0x002F, 6}, {0x0030, 6}, {0x0031, 7},
- {0x0062, 7}, {0x0063, 7}, {0x0064, 7}, {0x0065, 7},
- {0x0066, 7}, {0x0061, 8}, {0x0670, 11}, {0x0068, 7},
- {0x0069, 7}, {0x00CF, 8}, {0x019D, 9}, {0x01A8, 9},
- {0x01A9, 9}, {0x0339, 10}, {0x01AA, 9}, {0x0356, 10},
- {0x0036, 6}, {0x00D6, 8}, {0x6710, 15}, {0x6711, 15},
- {0x000E, 4}, {0x006E, 7}, {0x01AE, 9}, {0x6712, 15},
- {0x6713, 15}, {0x003C, 6}, {0x0357, 10}, {0x006F, 7},
- {0x00F4, 8}, {0x00F5, 8}, {0x035E, 10}, {0x01EC, 9},
- {0x6714, 15}, {0x01ED, 9}, {0x035F, 10}, {0x03DC, 10},
- {0x03DD, 10}, {0x6715, 15}, {0x338B, 14}, {0x338C, 14},
- {0x338D, 14}, {0x001F, 5}, {0x01EF, 9}, {0x338E, 14},
- {0x338F, 14},
- },{//5
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x000B, 5},
- {0x0018, 6}, {0x0019, 6}, {0x0034, 7}, {0x006A, 8},
- {0x006B, 8}, {0x006C, 8}, {0x00DA, 9}, {0x036C, 11},
- {0x006E, 8}, {0x01B7, 10}, {0x036D, 11}, {0x3780, 15},
- {0x0004, 3}, {0x000E, 5}, {0x001E, 6}, {0x003E, 7},
- {0x000A, 4}, {0x002C, 6}, {0x0017, 5}, {0x002D, 6},
- {0x003F, 7}, {0x00C0, 8}, {0x0061, 7}, {0x00C1, 8},
- {0x0062, 7}, {0x00C6, 8}, {0x0064, 7}, {0x00C7, 8},
- {0x00CA, 8}, {0x00DF, 9}, {0x0196, 9}, {0x0197, 9},
- {0x0198, 9}, {0x0199, 9}, {0x0379, 11}, {0x019A, 9},
- {0x01BD, 10}, {0x066C, 11}, {0x3781, 15}, {0x0337, 10},
- {0x066D, 11}, {0x0670, 11}, {0x0339, 10}, {0x0671, 11},
- {0x0034, 6}, {0x00CF, 8}, {0x3782, 15}, {0x3783, 15},
- {0x000E, 4}, {0x001B, 5}, {0x006A, 7}, {0x006B, 7},
- {0x019D, 9}, {0x003C, 6}, {0x00F4, 8}, {0x00F5, 8},
- {0x03D8, 10}, {0x07B2, 11}, {0x3784, 15}, {0x03DA, 10},
- {0x3785, 15}, {0x03DB, 10}, {0x03DC, 10}, {0x3786, 15},
- {0x3787, 15}, {0x1BC4, 14}, {0x1BC5, 14}, {0x1BC6, 14},
- {0x1BC7, 14}, {0x001F, 5}, {0x03DD, 10}, {0x07B3, 11},
- {0x01EF, 9},
- },{//6
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x0016, 6},
- {0x0017, 6}, {0x0060, 8}, {0x00C2, 9}, {0x0186, 10},
- {0x0187, 10}, {0x00C4, 9}, {0x3140, 15}, {0x3141, 15},
- {0x018B, 10}, {0x3142, 15}, {0x018C, 10}, {0x3143, 15},
- {0x0007, 4}, {0x000D, 5}, {0x0064, 8}, {0x0065, 8},
- {0x0010, 5}, {0x00C7, 9}, {0x0066, 8}, {0x0005, 3},
- {0x0006, 3}, {0x0009, 4}, {0x0011, 5}, {0x0038, 6},
- {0x0039, 6}, {0x0074, 7}, {0x0075, 7}, {0x0076, 7},
- {0x0067, 8}, {0x00EE, 8}, {0x01DE, 9}, {0x00F0, 8},
- {0x018D, 10}, {0x3144, 15}, {0x01DF, 9}, {0x003D, 6},
- {0x003E, 6}, {0x01E2, 9}, {0x03C6, 10}, {0x00F2, 8},
- {0x00F3, 8}, {0x03C7, 10}, {0x3145, 15}, {0x3146, 15},
- {0x01F8, 9}, {0x3147, 15}, {0x3148, 15}, {0x3149, 15},
- {0x00FD, 8}, {0x314A, 15}, {0x314B, 15}, {0x314C, 15},
- {0x314D, 15}, {0x01F9, 9}, {0x314E, 15}, {0x01FC, 9},
- {0x314F, 15}, {0x3150, 15}, {0x3151, 15}, {0x3152, 15},
- {0x3153, 15}, {0x03FA, 10}, {0x03FB, 10}, {0x3154, 15},
- {0x3155, 15}, {0x3156, 15}, {0x3157, 15}, {0x3158, 15},
- {0x3159, 15}, {0x00FF, 8}, {0x18AD, 14}, {0x18AE, 14},
- {0x18AF, 14},
- },{//7
- {0x0000, 4}, {0x0080, 11}, {0x0081, 11}, {0x0082, 11},
- {0x0083, 11}, {0x0084, 11}, {0x0085, 11}, {0x0086, 11},
- {0x0087, 11}, {0x0088, 11}, {0x0089, 11}, {0x008A, 11},
- {0x008B, 11}, {0x008C, 11}, {0x008D, 11}, {0x008E, 11},
- {0x008F, 11}, {0x0048, 10}, {0x0049, 10}, {0x004A, 10},
- {0x004B, 10}, {0x004C, 10}, {0x004D, 10}, {0x0001, 1},
- {0x0001, 2}, {0x004E, 10}, {0x0002, 4}, {0x0003, 4},
- {0x004F, 10}, {0x0050, 10}, {0x0051, 10}, {0x0052, 10},
- {0x0053, 10}, {0x0054, 10}, {0x0055, 10}, {0x0056, 10},
- {0x0057, 10}, {0x0058, 10}, {0x0059, 10}, {0x005A, 10},
- {0x005B, 10}, {0x005C, 10}, {0x005D, 10}, {0x005E, 10},
- {0x005F, 10}, {0x0060, 10}, {0x0061, 10}, {0x0062, 10},
- {0x0063, 10}, {0x0064, 10}, {0x0065, 10}, {0x0066, 10},
- {0x0067, 10}, {0x0068, 10}, {0x0069, 10}, {0x006A, 10},
- {0x006B, 10}, {0x006C, 10}, {0x006D, 10}, {0x006E, 10},
- {0x006F, 10}, {0x0070, 10}, {0x0071, 10}, {0x0072, 10},
- {0x0073, 10}, {0x0074, 10}, {0x0075, 10}, {0x0076, 10},
- {0x0077, 10}, {0x0078, 10}, {0x0079, 10}, {0x007A, 10},
- {0x007B, 10}, {0x007C, 10}, {0x007D, 10}, {0x007E, 10},
- {0x007F, 10},
- }
-};
-
-static const uint16_t x8_ac0_highquant_table[8][77][2]={
- {//0
- {0x0000, 3}, {0x0002, 4}, {0x000C, 6}, {0x000D, 6},
- {0x001C, 7}, {0x000F, 6}, {0x1D00, 15}, {0x003B, 8},
- {0x1D01, 15}, {0x0075, 9}, {0x1D02, 15}, {0x0080, 9},
- {0x1D03, 15}, {0x1D04, 15}, {0x1D05, 15}, {0x0E83, 14},
- {0x0009, 5}, {0x0011, 6}, {0x0081, 9}, {0x0082, 9},
- {0x0021, 7}, {0x0028, 7}, {0x0083, 9}, {0x0002, 2},
- {0x0003, 3}, {0x000C, 4}, {0x000D, 4}, {0x000B, 5},
- {0x0015, 6}, {0x0052, 8}, {0x0070, 7}, {0x0039, 6},
- {0x0071, 7}, {0x0053, 8}, {0x0E84, 14}, {0x0074, 7},
- {0x0075, 7}, {0x0076, 7}, {0x01DC, 9}, {0x001E, 5},
- {0x003E, 6}, {0x01DD, 9}, {0x00EF, 8}, {0x01F8, 9},
- {0x01F9, 9}, {0x0E85, 14}, {0x0E86, 14}, {0x0E87, 14},
- {0x00FD, 8}, {0x0E88, 14}, {0x0E89, 14}, {0x0E8A, 14},
- {0x0E8B, 14}, {0x0E8C, 14}, {0x0E8D, 14}, {0x0E8E, 14},
- {0x0E8F, 14}, {0x0E90, 14}, {0x0E91, 14}, {0x01FC, 9},
- {0x0E92, 14}, {0x0E93, 14}, {0x0E94, 14}, {0x0E95, 14},
- {0x0E96, 14}, {0x0E97, 14}, {0x01FD, 9}, {0x0E98, 14},
- {0x01FE, 9}, {0x0E99, 14}, {0x0E9A, 14}, {0x0E9B, 14},
- {0x0E9C, 14}, {0x01FF, 9}, {0x0E9D, 14}, {0x0E9E, 14},
- {0x0E9F, 14},
- },{//1
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0012, 6}, {0x0013, 6}, {0x0014, 6}, {0x0015, 6},
- {0x002C, 7}, {0x005A, 8}, {0x005B, 8}, {0x005C, 8},
- {0x005D, 8}, {0x1780, 14}, {0x0179, 10}, {0x017A, 10},
- {0x0006, 4}, {0x000E, 5}, {0x001E, 6}, {0x003E, 7},
- {0x0010, 5}, {0x0022, 6}, {0x0012, 5}, {0x000A, 4},
- {0x0013, 5}, {0x0016, 5}, {0x0023, 6}, {0x002E, 6},
- {0x002F, 6}, {0x0030, 6}, {0x0031, 6}, {0x003F, 7},
- {0x005F, 8}, {0x00C8, 8}, {0x0065, 7}, {0x0066, 7},
- {0x0067, 7}, {0x0068, 7}, {0x00C9, 8}, {0x0069, 7},
- {0x006A, 7}, {0x00D6, 8}, {0x00D7, 8}, {0x00D8, 8},
- {0x1781, 14}, {0x017B, 10}, {0x01B2, 9}, {0x1782, 14},
- {0x001C, 5}, {0x01B3, 9}, {0x1783, 14}, {0x1784, 14},
- {0x001D, 5}, {0x00DA, 8}, {0x1785, 14}, {0x1786, 14},
- {0x1787, 14}, {0x0037, 6}, {0x00DB, 8}, {0x0078, 7},
- {0x00F2, 8}, {0x01E6, 9}, {0x00F4, 8}, {0x1788, 14},
- {0x1789, 14}, {0x00F5, 8}, {0x01E7, 9}, {0x178A, 14},
- {0x178B, 14}, {0x178C, 14}, {0x178D, 14}, {0x01EC, 9},
- {0x178E, 14}, {0x001F, 5}, {0x00F7, 8}, {0x01ED, 9},
- {0x178F, 14},
- },{//2
- {0x0000, 4}, {0x0002, 5}, {0x0180, 12}, {0x0181, 12},
- {0x0182, 12}, {0x0183, 12}, {0x0184, 12}, {0x0185, 12},
- {0x0186, 12}, {0x0187, 12}, {0x0188, 12}, {0x0189, 12},
- {0x00C5, 11}, {0x00C6, 11}, {0x00C7, 11}, {0x00C8, 11},
- {0x00C9, 11}, {0x00CA, 11}, {0x00CB, 11}, {0x00CC, 11},
- {0x00CD, 11}, {0x00CE, 11}, {0x00CF, 11}, {0x0001, 1},
- {0x0001, 2}, {0x0004, 5}, {0x0005, 5}, {0x0006, 5},
- {0x00D0, 11}, {0x00D1, 11}, {0x00D2, 11}, {0x00D3, 11},
- {0x00D4, 11}, {0x00D5, 11}, {0x00D6, 11}, {0x00D7, 11},
- {0x00D8, 11}, {0x00D9, 11}, {0x00DA, 11}, {0x0007, 5},
- {0x00DB, 11}, {0x00DC, 11}, {0x00DD, 11}, {0x00DE, 11},
- {0x00DF, 11}, {0x00E0, 11}, {0x00E1, 11}, {0x00E2, 11},
- {0x00E3, 11}, {0x00E4, 11}, {0x00E5, 11}, {0x00E6, 11},
- {0x00E7, 11}, {0x00E8, 11}, {0x00E9, 11}, {0x00EA, 11},
- {0x00EB, 11}, {0x00EC, 11}, {0x00ED, 11}, {0x00EE, 11},
- {0x00EF, 11}, {0x00F0, 11}, {0x00F1, 11}, {0x00F2, 11},
- {0x00F3, 11}, {0x00F4, 11}, {0x00F5, 11}, {0x00F6, 11},
- {0x00F7, 11}, {0x00F8, 11}, {0x00F9, 11}, {0x00FA, 11},
- {0x00FB, 11}, {0x00FC, 11}, {0x00FD, 11}, {0x00FE, 11},
- {0x00FF, 11},
- },{//3
- {0x0000, 8}, {0x0001, 8}, {0x0002, 8}, {0x0003, 8},
- {0x0004, 8}, {0x0005, 8}, {0x0006, 8}, {0x0007, 8},
- {0x0008, 8}, {0x0009, 8}, {0x000A, 8}, {0x000B, 8},
- {0x000C, 8}, {0x000D, 8}, {0x000E, 8}, {0x000F, 8},
- {0x0010, 8}, {0x0011, 8}, {0x0012, 8}, {0x0013, 8},
- {0x0014, 8}, {0x0015, 8}, {0x0016, 8}, {0x0001, 1},
- {0x0017, 8}, {0x000C, 7}, {0x000D, 7}, {0x000E, 7},
- {0x000F, 7}, {0x0010, 7}, {0x0011, 7}, {0x0012, 7},
- {0x0013, 7}, {0x0014, 7}, {0x0015, 7}, {0x0016, 7},
- {0x0017, 7}, {0x0018, 7}, {0x0019, 7}, {0x001A, 7},
- {0x001B, 7}, {0x001C, 7}, {0x001D, 7}, {0x001E, 7},
- {0x001F, 7}, {0x0020, 7}, {0x0021, 7}, {0x0022, 7},
- {0x0023, 7}, {0x0024, 7}, {0x0025, 7}, {0x0026, 7},
- {0x0027, 7}, {0x0028, 7}, {0x0029, 7}, {0x002A, 7},
- {0x002B, 7}, {0x002C, 7}, {0x002D, 7}, {0x002E, 7},
- {0x002F, 7}, {0x0030, 7}, {0x0031, 7}, {0x0032, 7},
- {0x0033, 7}, {0x0034, 7}, {0x0035, 7}, {0x0036, 7},
- {0x0037, 7}, {0x0038, 7}, {0x0039, 7}, {0x003A, 7},
- {0x003B, 7}, {0x003C, 7}, {0x003D, 7}, {0x003E, 7},
- {0x003F, 7},
- },{//4
- {0x0000, 9}, {0x0001, 9}, {0x0002, 9}, {0x0003, 9},
- {0x0004, 9}, {0x0005, 9}, {0x0006, 9}, {0x0007, 9},
- {0x0008, 9}, {0x0009, 9}, {0x000A, 9}, {0x000B, 9},
- {0x000C, 9}, {0x000D, 9}, {0x000E, 9}, {0x000F, 9},
- {0x0010, 9}, {0x0011, 9}, {0x0012, 9}, {0x0013, 9},
- {0x0014, 9}, {0x0015, 9}, {0x000B, 8}, {0x0001, 2},
- {0x0001, 1}, {0x000C, 8}, {0x000D, 8}, {0x000E, 8},
- {0x000F, 8}, {0x0010, 8}, {0x0011, 8}, {0x0012, 8},
- {0x0013, 8}, {0x0014, 8}, {0x0015, 8}, {0x0016, 8},
- {0x0017, 8}, {0x0018, 8}, {0x0019, 8}, {0x001A, 8},
- {0x001B, 8}, {0x001C, 8}, {0x001D, 8}, {0x001E, 8},
- {0x001F, 8}, {0x0020, 8}, {0x0021, 8}, {0x0022, 8},
- {0x0023, 8}, {0x0024, 8}, {0x0025, 8}, {0x0026, 8},
- {0x0027, 8}, {0x0028, 8}, {0x0029, 8}, {0x002A, 8},
- {0x002B, 8}, {0x002C, 8}, {0x002D, 8}, {0x002E, 8},
- {0x002F, 8}, {0x0030, 8}, {0x0031, 8}, {0x0032, 8},
- {0x0033, 8}, {0x0034, 8}, {0x0035, 8}, {0x0036, 8},
- {0x0037, 8}, {0x0038, 8}, {0x0039, 8}, {0x003A, 8},
- {0x003B, 8}, {0x003C, 8}, {0x003D, 8}, {0x003E, 8},
- {0x003F, 8},
- },{//5
- {0x0000, 10}, {0x0001, 10}, {0x0002, 10}, {0x0003, 10},
- {0x0004, 10}, {0x0005, 10}, {0x0006, 10}, {0x0007, 10},
- {0x0008, 10}, {0x0009, 10}, {0x000A, 10}, {0x000B, 10},
- {0x000C, 10}, {0x000D, 10}, {0x000E, 10}, {0x000F, 10},
- {0x0010, 10}, {0x0011, 10}, {0x0012, 10}, {0x0013, 10},
- {0x000A, 9}, {0x000B, 9}, {0x000C, 9}, {0x0001, 1},
- {0x0001, 3}, {0x000D, 9}, {0x000E, 9}, {0x0001, 2},
- {0x000F, 9}, {0x0010, 9}, {0x0011, 9}, {0x0012, 9},
- {0x0013, 9}, {0x0014, 9}, {0x0015, 9}, {0x0016, 9},
- {0x0017, 9}, {0x0018, 9}, {0x0019, 9}, {0x001A, 9},
- {0x001B, 9}, {0x001C, 9}, {0x001D, 9}, {0x001E, 9},
- {0x001F, 9}, {0x0020, 9}, {0x0021, 9}, {0x0022, 9},
- {0x0023, 9}, {0x0024, 9}, {0x0025, 9}, {0x0026, 9},
- {0x0027, 9}, {0x0028, 9}, {0x0029, 9}, {0x002A, 9},
- {0x002B, 9}, {0x002C, 9}, {0x002D, 9}, {0x002E, 9},
- {0x002F, 9}, {0x0030, 9}, {0x0031, 9}, {0x0032, 9},
- {0x0033, 9}, {0x0034, 9}, {0x0035, 9}, {0x0036, 9},
- {0x0037, 9}, {0x0038, 9}, {0x0039, 9}, {0x003A, 9},
- {0x003B, 9}, {0x003C, 9}, {0x003D, 9}, {0x003E, 9},
- {0x003F, 9},
- },{//6
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x000B, 5},
- {0x0018, 6}, {0x0019, 6}, {0x0034, 7}, {0x006A, 8},
- {0x006B, 8}, {0x006C, 8}, {0x00DA, 9}, {0x00DB, 9},
- {0x01B8, 10}, {0x00DD, 9}, {0x01B9, 10}, {0x3780, 15},
- {0x0004, 3}, {0x000E, 5}, {0x001E, 6}, {0x001F, 6},
- {0x000A, 4}, {0x0058, 7}, {0x0017, 5}, {0x0018, 5},
- {0x0059, 7}, {0x005A, 7}, {0x005B, 7}, {0x00C8, 8},
- {0x0065, 7}, {0x0066, 7}, {0x00C9, 8}, {0x00CE, 8},
- {0x00CF, 8}, {0x00D0, 8}, {0x00D1, 8}, {0x00D2, 8},
- {0x00D3, 8}, {0x00DF, 9}, {0x00D4, 8}, {0x00D5, 8},
- {0x00D6, 8}, {0x01AE, 9}, {0x3781, 15}, {0x01BD, 10},
- {0x035E, 10}, {0x035F, 10}, {0x3782, 15}, {0x0360, 10},
- {0x0037, 6}, {0x01B1, 9}, {0x3783, 15}, {0x3784, 15},
- {0x000E, 4}, {0x003C, 6}, {0x0361, 10}, {0x3785, 15},
- {0x1BC3, 14}, {0x003D, 6}, {0x00D9, 8}, {0x1BC4, 14},
- {0x0368, 10}, {0x1BC5, 14}, {0x1BC6, 14}, {0x1BC7, 14},
- {0x1BC8, 14}, {0x00DB, 8}, {0x0369, 10}, {0x036A, 10},
- {0x1BC9, 14}, {0x1BCA, 14}, {0x1BCB, 14}, {0x1BCC, 14},
- {0x1BCD, 14}, {0x001F, 5}, {0x036B, 10}, {0x1BCE, 14},
- {0x1BCF, 14},
- },{//7
- {0x0000, 3}, {0x0002, 4}, {0x0006, 5}, {0x0007, 5},
- {0x0010, 6}, {0x0044, 8}, {0x0023, 7}, {0x0012, 6},
- {0x0026, 7}, {0x08A0, 13}, {0x004E, 8}, {0x004F, 8},
- {0x08A1, 13}, {0x08A2, 13}, {0x08A3, 13}, {0x0050, 8},
- {0x0006, 4}, {0x000B, 5}, {0x0029, 7}, {0x0015, 6},
- {0x001C, 6}, {0x003A, 7}, {0x001E, 6}, {0x0004, 3},
- {0x0014, 5}, {0x0015, 5}, {0x000B, 4}, {0x001F, 6},
- {0x0030, 6}, {0x0031, 6}, {0x0019, 5}, {0x0051, 8},
- {0x0034, 6}, {0x0035, 6}, {0x0036, 6}, {0x0037, 6},
- {0x0076, 8}, {0x0077, 8}, {0x0070, 7}, {0x001D, 5},
- {0x0071, 7}, {0x0072, 7}, {0x08A4, 13}, {0x0073, 7},
- {0x00F0, 8}, {0x08A5, 13}, {0x08A6, 13}, {0x08A7, 13},
- {0x0079, 7}, {0x007A, 7}, {0x08A8, 13}, {0x08A9, 13},
- {0x00F1, 8}, {0x08AA, 13}, {0x08AB, 13}, {0x08AC, 13},
- {0x08AD, 13}, {0x00F6, 8}, {0x08AE, 13}, {0x007C, 7},
- {0x00F7, 8}, {0x08AF, 13}, {0x08B0, 13}, {0x08B1, 13},
- {0x08B2, 13}, {0x00FA, 8}, {0x08B3, 13}, {0x08B4, 13},
- {0x08B5, 13}, {0x08B6, 13}, {0x08B7, 13}, {0x00FB, 8},
- {0x045C, 12}, {0x003F, 6}, {0x045D, 12}, {0x045E, 12},
- {0x045F, 12},
- }
-};
-
-static const uint16_t x8_ac1_lowquant_table[8][77][2]={
- {//0
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0012, 6}, {0x0026, 7}, {0x0014, 6}, {0x004E, 8},
- {0x004F, 8}, {0x00A8, 9}, {0x0152, 10}, {0x00AA, 9},
- {0x00AB, 9}, {0x00AC, 9}, {0x2A60, 15}, {0x02A7, 11},
- {0x0006, 4}, {0x000B, 5}, {0x001C, 6}, {0x003A, 7},
- {0x000F, 5}, {0x003B, 7}, {0x0010, 5}, {0x0005, 3},
- {0x0009, 4}, {0x0011, 5}, {0x0018, 5}, {0x0019, 5},
- {0x001A, 5}, {0x0036, 6}, {0x0037, 6}, {0x0070, 7},
- {0x0057, 8}, {0x00E2, 8}, {0x00E3, 8}, {0x00E4, 8},
- {0x00E5, 8}, {0x00AD, 9}, {0x0398, 10}, {0x003A, 6},
- {0x0076, 7}, {0x00E7, 8}, {0x00EE, 8}, {0x00EF, 8},
- {0x0732, 11}, {0x039A, 10}, {0x0733, 11}, {0x2A61, 15},
- {0x0078, 7}, {0x1531, 14}, {0x1532, 14}, {0x1533, 14},
- {0x003D, 6}, {0x039B, 10}, {0x1534, 14}, {0x1535, 14},
- {0x1536, 14}, {0x0079, 7}, {0x1537, 14}, {0x00F8, 8},
- {0x01F2, 9}, {0x07CC, 11}, {0x03E7, 10}, {0x07CD, 11},
- {0x3E80, 14}, {0x00FB, 8}, {0x03E9, 10}, {0x3E81, 14},
- {0x3E82, 14}, {0x3E83, 14}, {0x3E84, 14}, {0x3E85, 14},
- {0x3E86, 14}, {0x003F, 6}, {0x01F5, 9}, {0x07D1, 11},
- {0x3E87, 14},
- },{//1
- {0x0000, 2}, {0x0002, 3}, {0x0006, 4}, {0x000E, 5},
- {0x001E, 6}, {0x001F, 6}, {0x0040, 7}, {0x0082, 8},
- {0x0083, 8}, {0x0084, 8}, {0x010A, 9}, {0x010B, 9},
- {0x0430, 11}, {0x0431, 11}, {0x0432, 11}, {0x0433, 11},
- {0x0005, 3}, {0x0011, 5}, {0x0024, 6}, {0x004A, 7},
- {0x000C, 4}, {0x0026, 6}, {0x000D, 4}, {0x0087, 8},
- {0x010D, 9}, {0x0258, 10}, {0x012D, 9}, {0x0259, 10},
- {0x025C, 10}, {0x0974, 12}, {0x025E, 10}, {0x025F, 10},
- {0x0270, 10}, {0x0271, 10}, {0x04BB, 11}, {0x0975, 12},
- {0x0272, 10}, {0x09CC, 12}, {0x09CD, 12}, {0x4E70, 15},
- {0x4E71, 15}, {0x4E72, 15}, {0x4E73, 15}, {0x273A, 14},
- {0x273B, 14}, {0x273C, 14}, {0x04E8, 11}, {0x04E9, 11},
- {0x009E, 8}, {0x0275, 10}, {0x09D8, 12}, {0x273D, 14},
- {0x000E, 4}, {0x003C, 6}, {0x007A, 7}, {0x009F, 8},
- {0x0277, 10}, {0x003E, 6}, {0x00F6, 8}, {0x04ED, 11},
- {0x03DC, 10}, {0x273E, 14}, {0x07BA, 11}, {0x09D9, 12},
- {0x273F, 14}, {0x3DD8, 14}, {0x3DD9, 14}, {0x3DDA, 14},
- {0x3DDB, 14}, {0x3DDC, 14}, {0x3DDD, 14}, {0x3DDE, 14},
- {0x3DDF, 14}, {0x003F, 6}, {0x07BC, 11}, {0x07BD, 11},
- {0x03DF, 10},
- },{//2
- {0x0000, 3}, {0x0002, 4}, {0x0006, 5}, {0x000E, 6},
- {0x001E, 7}, {0x003E, 8}, {0x003F, 8}, {0x0040, 8},
- {0x0104, 10}, {0x0083, 9}, {0x0105, 10}, {0x0108, 10},
- {0x4240, 16}, {0x010A, 10}, {0x010B, 10}, {0x4241, 16},
- {0x0003, 3}, {0x0009, 5}, {0x0011, 6}, {0x0043, 8},
- {0x0004, 3}, {0x000A, 5}, {0x000A, 4}, {0x002C, 7},
- {0x00B4, 9}, {0x00B5, 9}, {0x00B6, 9}, {0x00B7, 9},
- {0x00B8, 9}, {0x0172, 10}, {0x0173, 10}, {0x0174, 10},
- {0x0175, 10}, {0x0176, 10}, {0x0177, 10}, {0x00BC, 9},
- {0x017A, 10}, {0x0213, 11}, {0x4242, 16}, {0x017B, 10},
- {0x02F8, 11}, {0x017D, 10}, {0x02F9, 11}, {0x017E, 10},
- {0x4243, 16}, {0x02FE, 11}, {0x2122, 15}, {0x2123, 15},
- {0x0058, 7}, {0x0164, 9}, {0x2124, 15}, {0x2125, 15},
- {0x0006, 3}, {0x000E, 4}, {0x002D, 6}, {0x002E, 6},
- {0x00B3, 8}, {0x001E, 5}, {0x005E, 7}, {0x2126, 15},
- {0x2127, 15}, {0x2128, 15}, {0x2129, 15}, {0x02FF, 11},
- {0x212A, 15}, {0x0594, 11}, {0x0595, 11}, {0x0596, 11},
- {0x212B, 15}, {0x212C, 15}, {0x212D, 15}, {0x212E, 15},
- {0x212F, 15}, {0x001F, 5}, {0x0597, 11}, {0x00BE, 8},
- {0x00BF, 8},
- },{//3
- {0x0000, 2}, {0x0002, 3}, {0x0006, 4}, {0x0007, 4},
- {0x0010, 5}, {0x0011, 5}, {0x0024, 6}, {0x0025, 6},
- {0x0026, 6}, {0x0027, 6}, {0x0050, 7}, {0x0051, 7},
- {0x00A4, 8}, {0x00A5, 8}, {0x00A6, 8}, {0x014E, 9},
- {0x000B, 4}, {0x002A, 6}, {0x0056, 7}, {0x014F, 9},
- {0x0030, 6}, {0x00AE, 8}, {0x0062, 7}, {0x0032, 6},
- {0x0033, 6}, {0x0034, 6}, {0x0035, 6}, {0x0036, 6},
- {0x0063, 7}, {0x006E, 7}, {0x006F, 7}, {0x0070, 7},
- {0x0071, 7}, {0x0072, 7}, {0x0073, 7}, {0x0074, 7},
- {0x00AF, 8}, {0x00EA, 8}, {0x01D6, 9}, {0x075C, 11},
- {0x03AF, 10}, {0x75D0, 15}, {0x75D1, 15}, {0x75D2, 15},
- {0x75D3, 15}, {0x75D4, 15}, {0x0076, 7}, {0x00EE, 8},
- {0x00EF, 8}, {0x0EBB, 12}, {0x01E0, 9}, {0x75D5, 15},
- {0x0079, 7}, {0x01E1, 9}, {0x75D6, 15}, {0x75D7, 15},
- {0x7880, 15}, {0x00F4, 8}, {0x0789, 11}, {0x003E, 6},
- {0x007B, 7}, {0x00F5, 8}, {0x00FC, 8}, {0x007F, 7},
- {0x01E3, 9}, {0x078A, 11}, {0x078B, 11}, {0x7881, 15},
- {0x7882, 15}, {0x7883, 15}, {0x3C42, 14}, {0x3C43, 14},
- {0x3C44, 14}, {0x00FD, 8}, {0x3C45, 14}, {0x3C46, 14},
- {0x3C47, 14},
- },{//4
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x0016, 6},
- {0x0017, 6}, {0x0030, 7}, {0x0031, 7}, {0x0064, 8},
- {0x0065, 8}, {0x0066, 8}, {0x00CE, 9}, {0x00CF, 9},
- {0x01A0, 10}, {0x01A1, 10}, {0x1A20, 14}, {0x0689, 12},
- {0x0004, 3}, {0x000E, 5}, {0x001B, 6}, {0x0035, 7},
- {0x000A, 4}, {0x001E, 6}, {0x0016, 5}, {0x0017, 5},
- {0x001F, 6}, {0x0030, 6}, {0x0031, 6}, {0x0064, 7},
- {0x0065, 7}, {0x0069, 8}, {0x0066, 7}, {0x00CE, 8},
- {0x00CF, 8}, {0x00D0, 8}, {0x00D1, 8}, {0x00D2, 8},
- {0x01A6, 9}, {0x01A3, 10}, {0x034E, 10}, {0x006A, 7},
- {0x00D6, 8}, {0x01AE, 9}, {0x01AF, 9}, {0x034F, 10},
- {0x0345, 11}, {0x01B0, 9}, {0x01B1, 9}, {0x0364, 10},
- {0x006D, 7}, {0x00DC, 8}, {0x0D94, 12}, {0x0D95, 12},
- {0x000E, 4}, {0x003C, 6}, {0x00DD, 8}, {0x00DE, 8},
- {0x01B3, 9}, {0x003D, 6}, {0x00DF, 8}, {0x01F0, 9},
- {0x03E2, 10}, {0x03E3, 10}, {0x06CB, 11}, {0x03E4, 10},
- {0x07CA, 11}, {0x01F3, 9}, {0x01F4, 9}, {0x07CB, 11},
- {0x07D4, 11}, {0x1A21, 14}, {0x1A22, 14}, {0x07D5, 11},
- {0x1A23, 14}, {0x003F, 6}, {0x01F6, 9}, {0x01F7, 9},
- {0x03EB, 10},
- },{//5
- {0x0000, 2}, {0x0002, 3}, {0x0006, 4}, {0x000E, 5},
- {0x000F, 5}, {0x0020, 6}, {0x0021, 6}, {0x0044, 7},
- {0x0045, 7}, {0x0046, 7}, {0x008E, 8}, {0x008F, 8},
- {0x0090, 8}, {0x0122, 9}, {0x0246, 10}, {0x0124, 9},
- {0x0005, 3}, {0x0013, 5}, {0x004A, 7}, {0x0093, 8},
- {0x0018, 5}, {0x004B, 7}, {0x0032, 6}, {0x001A, 5},
- {0x0033, 6}, {0x006C, 7}, {0x006D, 7}, {0x006E, 7},
- {0x00DE, 8}, {0x00DF, 8}, {0x0070, 7}, {0x00E2, 8},
- {0x00E3, 8}, {0x00E4, 8}, {0x00E5, 8}, {0x00E6, 8},
- {0x00E7, 8}, {0x0125, 9}, {0x01D0, 9}, {0x048E, 11},
- {0x091E, 12}, {0x091F, 12}, {0x7440, 15}, {0x1D11, 13},
- {0x7441, 15}, {0x7442, 15}, {0x00E9, 8}, {0x01D4, 9},
- {0x00EB, 8}, {0x03A3, 10}, {0x01D5, 9}, {0x1D12, 13},
- {0x001E, 5}, {0x0076, 7}, {0x01DC, 9}, {0x01DD, 9},
- {0x7443, 15}, {0x007C, 7}, {0x0745, 11}, {0x00EF, 8},
- {0x00FA, 8}, {0x00FB, 8}, {0x01F8, 9}, {0x00FD, 8},
- {0x07E4, 11}, {0x0FCA, 12}, {0x1D13, 13}, {0x7E58, 15},
- {0x7E59, 15}, {0x7E5A, 15}, {0x7E5B, 15}, {0x7E5C, 15},
- {0x7E5D, 15}, {0x007F, 7}, {0x3F2F, 14}, {0x07E6, 11},
- {0x07E7, 11},
- },{//6
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0009, 5}, {0x0014, 6}, {0x0015, 6}, {0x002C, 7},
- {0x005A, 8}, {0x005B, 8}, {0x005C, 8}, {0x00BA, 9},
- {0x00BB, 9}, {0x00BC, 9}, {0x02F4, 11}, {0x05EA, 12},
- {0x0003, 3}, {0x0010, 5}, {0x0022, 6}, {0x0046, 7},
- {0x0009, 4}, {0x0028, 6}, {0x0015, 5}, {0x000B, 4},
- {0x0018, 5}, {0x0029, 6}, {0x0032, 6}, {0x0047, 7},
- {0x0066, 7}, {0x0067, 7}, {0x0068, 7}, {0x0069, 7},
- {0x006A, 7}, {0x005F, 8}, {0x00D6, 8}, {0x00D7, 8},
- {0x01B0, 9}, {0x00D9, 8}, {0x017B, 10}, {0x006D, 7},
- {0x00DC, 8}, {0x01B1, 9}, {0x06E8, 11}, {0x01BB, 9},
- {0x0375, 10}, {0x05EB, 12}, {0x01BC, 9}, {0x6E90, 15},
- {0x0038, 6}, {0x0072, 7}, {0x6E91, 15}, {0x6E92, 15},
- {0x001D, 5}, {0x0073, 7}, {0x01BD, 9}, {0x06F8, 11},
- {0x6E93, 15}, {0x003C, 6}, {0x01BF, 9}, {0x00F4, 8},
- {0x01EA, 9}, {0x037D, 10}, {0x03D6, 10}, {0x06F9, 11},
- {0x6E94, 15}, {0x00F6, 8}, {0x01EE, 9}, {0x6E95, 15},
- {0x6E96, 15}, {0x6E97, 15}, {0x374C, 14}, {0x374D, 14},
- {0x374E, 14}, {0x001F, 5}, {0x03D7, 10}, {0x01EF, 9},
- {0x374F, 14},
- },{//7
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x0016, 6},
- {0x002E, 7}, {0x002F, 7}, {0x0060, 8}, {0x0061, 8},
- {0x00C4, 9}, {0x00C5, 9}, {0x00C6, 9}, {0x018E, 10},
- {0x31E0, 15}, {0x31E1, 15}, {0x31E2, 15}, {0x31E3, 15},
- {0x0004, 3}, {0x000D, 5}, {0x0019, 6}, {0x0038, 7},
- {0x000A, 4}, {0x001D, 6}, {0x000B, 4}, {0x0072, 8},
- {0x0073, 8}, {0x00F0, 9}, {0x01E2, 10}, {0x00F2, 9},
- {0x01E3, 10}, {0x00F3, 9}, {0x01E8, 10}, {0x01E9, 10},
- {0x31E4, 15}, {0x01EA, 10}, {0x031F, 11}, {0x03D6, 11},
- {0x31E5, 15}, {0x01EC, 10}, {0x31E6, 15}, {0x00F7, 9},
- {0x03D7, 11}, {0x31E7, 15}, {0x31E8, 15}, {0x03DA, 11},
- {0x03DB, 11}, {0x31E9, 15}, {0x03E0, 11}, {0x31EA, 15},
- {0x003F, 7}, {0x01F1, 10}, {0x31EB, 15}, {0x31EC, 15},
- {0x0006, 3}, {0x001C, 5}, {0x0074, 7}, {0x0075, 7},
- {0x00F9, 9}, {0x001E, 5}, {0x0076, 7}, {0x00FA, 9},
- {0x03E1, 11}, {0x31ED, 15}, {0x18F7, 14}, {0x1F60, 14},
- {0x1F61, 14}, {0x01DC, 9}, {0x01DD, 9}, {0x1F62, 14},
- {0x1F63, 14}, {0x1F64, 14}, {0x1F65, 14}, {0x1F66, 14},
- {0x1F67, 14}, {0x001F, 5}, {0x03ED, 11}, {0x00EF, 8},
- {0x01F7, 10},
- }
-};
-
-static const uint16_t x8_ac1_highquant_table[8][77][2]={
- {//0
- {0x0000, 3}, {0x0002, 4}, {0x0006, 5}, {0x0007, 5},
- {0x0008, 5}, {0x0009, 5}, {0x0014, 6}, {0x002A, 7},
- {0x0016, 6}, {0x002B, 7}, {0x005C, 8}, {0x002F, 7},
- {0x0030, 7}, {0x005D, 8}, {0x0062, 8}, {0x00C6, 9},
- {0x0007, 4}, {0x0019, 6}, {0x001A, 6}, {0x0036, 7},
- {0x0010, 5}, {0x006E, 8}, {0x0022, 6}, {0x0009, 4},
- {0x000A, 4}, {0x0016, 5}, {0x0023, 6}, {0x002E, 6},
- {0x002F, 6}, {0x0030, 6}, {0x0062, 7}, {0x0063, 7},
- {0x0064, 7}, {0x0065, 7}, {0x0066, 7}, {0x0067, 7},
- {0x0068, 7}, {0x0069, 7}, {0x006A, 7}, {0x006B, 7},
- {0x006C, 7}, {0x00C7, 9}, {0x00DE, 9}, {0x00DF, 9},
- {0x06D0, 11}, {0x01B5, 9}, {0x0037, 6}, {0x00DB, 8},
- {0x001C, 5}, {0x0074, 7}, {0x01D4, 9}, {0x01D5, 9},
- {0x0076, 7}, {0x0369, 10}, {0x3688, 14}, {0x3689, 14},
- {0x368A, 14}, {0x0077, 7}, {0x03AC, 10}, {0x0078, 7},
- {0x00F2, 8}, {0x01D7, 9}, {0x00F3, 8}, {0x007A, 7},
- {0x368B, 14}, {0x007B, 7}, {0x007C, 7}, {0x03AD, 10},
- {0x03E8, 10}, {0x368C, 14}, {0x368D, 14}, {0x03E9, 10},
- {0x368E, 14}, {0x003F, 6}, {0x01F5, 9}, {0x00FB, 8},
- {0x368F, 14},
- },{//1
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x000B, 5},
- {0x0018, 6}, {0x0032, 7}, {0x0033, 7}, {0x0034, 7},
- {0x006A, 8}, {0x00D6, 9}, {0x00D7, 9}, {0x00D8, 9},
- {0x00D9, 9}, {0x3680, 15}, {0x01B5, 10}, {0x0369, 11},
- {0x0004, 3}, {0x000E, 5}, {0x001E, 6}, {0x0037, 7},
- {0x000A, 4}, {0x0016, 5}, {0x000C, 4}, {0x001F, 6},
- {0x005C, 7}, {0x005D, 7}, {0x00BC, 8}, {0x00BD, 8},
- {0x005F, 7}, {0x00D0, 8}, {0x00DB, 9}, {0x00D1, 8},
- {0x01A4, 9}, {0x01A5, 9}, {0x01A6, 9}, {0x01A7, 9},
- {0x0350, 10}, {0x06A2, 11}, {0x06A3, 11}, {0x01A9, 9},
- {0x01AA, 9}, {0x06AC, 11}, {0x3681, 15}, {0x0357, 10},
- {0x3682, 15}, {0x3683, 15}, {0x3684, 15}, {0x3685, 15},
- {0x0036, 6}, {0x00D6, 8}, {0x3686, 15}, {0x3687, 15},
- {0x000E, 4}, {0x006E, 7}, {0x00D7, 8}, {0x06AD, 11},
- {0x3688, 15}, {0x001E, 5}, {0x00DE, 8}, {0x06F8, 11},
- {0x037D, 10}, {0x3689, 15}, {0x368A, 15}, {0x368B, 15},
- {0x368C, 15}, {0x01BF, 9}, {0x368D, 15}, {0x1B47, 14},
- {0x37C8, 14}, {0x37C9, 14}, {0x37CA, 14}, {0x37CB, 14},
- {0x37CC, 14}, {0x001F, 5}, {0x37CD, 14}, {0x37CE, 14},
- {0x37CF, 14},
- },{//2
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0012, 6}, {0x0026, 7}, {0x0014, 6}, {0x0027, 7},
- {0x00A8, 9}, {0x00A9, 9}, {0x0055, 8}, {0x2B00, 15},
- {0x00AD, 9}, {0x2B01, 15}, {0x2B02, 15}, {0x2B03, 15},
- {0x0003, 3}, {0x000B, 5}, {0x0040, 7}, {0x0041, 7},
- {0x0009, 4}, {0x0021, 6}, {0x0011, 5}, {0x000A, 4},
- {0x000B, 4}, {0x0018, 5}, {0x0032, 6}, {0x0033, 6},
- {0x0034, 6}, {0x0035, 6}, {0x006C, 7}, {0x0057, 8},
- {0x006D, 7}, {0x00DC, 8}, {0x0159, 10}, {0x00DD, 8},
- {0x01BC, 9}, {0x037A, 10}, {0x037B, 10}, {0x0038, 6},
- {0x0072, 7}, {0x01BE, 9}, {0x01BF, 9}, {0x00E6, 8},
- {0x039C, 10}, {0x01CF, 9}, {0x2B04, 15}, {0x2B05, 15},
- {0x0074, 7}, {0x01D4, 9}, {0x2B06, 15}, {0x2B07, 15},
- {0x001E, 5}, {0x00EB, 8}, {0x1584, 14}, {0x1585, 14},
- {0x1586, 14}, {0x003B, 6}, {0x01D5, 9}, {0x01F0, 9},
- {0x039D, 10}, {0x03E2, 10}, {0x1587, 14}, {0x1588, 14},
- {0x1589, 14}, {0x00F9, 8}, {0x158A, 14}, {0x158B, 14},
- {0x03E3, 10}, {0x158C, 14}, {0x158D, 14}, {0x01F4, 9},
- {0x158E, 14}, {0x003F, 6}, {0x00FB, 8}, {0x01F5, 9},
- {0x158F, 14},
- },{//3
- {0x0000, 3}, {0x0002, 4}, {0x0006, 5}, {0x0007, 5},
- {0x0010, 6}, {0x0011, 6}, {0x0024, 7}, {0x0025, 7},
- {0x0013, 6}, {0x0014, 6}, {0x002A, 7}, {0x002B, 7},
- {0x00B0, 9}, {0x00B1, 9}, {0x002D, 7}, {0x0059, 8},
- {0x000C, 5}, {0x0017, 6}, {0x00D0, 9}, {0x0035, 7},
- {0x001B, 6}, {0x0038, 7}, {0x0039, 7}, {0x0004, 3},
- {0x0005, 3}, {0x000F, 5}, {0x0018, 5}, {0x001D, 6},
- {0x0032, 6}, {0x0033, 6}, {0x0068, 7}, {0x0069, 7},
- {0x0069, 8}, {0x00D4, 8}, {0x00D5, 8}, {0x00D6, 8},
- {0x006C, 7}, {0x0037, 6}, {0x006D, 7}, {0x0070, 7},
- {0x0039, 6}, {0x00D7, 8}, {0x00D1, 9}, {0x3880, 14},
- {0x3881, 14}, {0x3882, 14}, {0x0074, 7}, {0x01C5, 9},
- {0x0075, 7}, {0x00E3, 8}, {0x3883, 14}, {0x3884, 14},
- {0x00EC, 8}, {0x3885, 14}, {0x1C43, 13}, {0x1C44, 13},
- {0x1C45, 13}, {0x00ED, 8}, {0x1C46, 13}, {0x003C, 6},
- {0x0077, 7}, {0x01E8, 9}, {0x003E, 6}, {0x007B, 7},
- {0x1C47, 13}, {0x007E, 7}, {0x007F, 7}, {0x1C48, 13},
- {0x1C49, 13}, {0x1C4A, 13}, {0x1C4B, 13}, {0x1C4C, 13},
- {0x1C4D, 13}, {0x00F5, 8}, {0x1C4E, 13}, {0x01E9, 9},
- {0x1C4F, 13},
- },{//4
- {0x0000, 2}, {0x0004, 4}, {0x000A, 5}, {0x000B, 5},
- {0x0018, 6}, {0x0019, 6}, {0x0034, 7}, {0x0035, 7},
- {0x0036, 7}, {0x006E, 8}, {0x00DE, 9}, {0x00DF, 9},
- {0x01C0, 10}, {0x01C1, 10}, {0x01C2, 10}, {0x3860, 15},
- {0x0004, 3}, {0x000F, 5}, {0x001D, 6}, {0x0039, 7},
- {0x000A, 4}, {0x002C, 6}, {0x002D, 6}, {0x000C, 4},
- {0x0017, 5}, {0x0034, 6}, {0x0035, 6}, {0x0036, 6},
- {0x006E, 7}, {0x006F, 7}, {0x0070, 7}, {0x0071, 7},
- {0x0071, 8}, {0x00E4, 8}, {0x00E5, 8}, {0x00E6, 8},
- {0x00E7, 8}, {0x00E8, 8}, {0x03A4, 10}, {0x0075, 7},
- {0x00EC, 8}, {0x01D3, 9}, {0x01DA, 9}, {0x03A5, 10},
- {0x03B6, 10}, {0x070D, 12}, {0x03B7, 10}, {0x070E, 12},
- {0x003C, 6}, {0x00EE, 8}, {0x3861, 15}, {0x3862, 15},
- {0x003D, 6}, {0x01DE, 9}, {0x3863, 15}, {0x3864, 15},
- {0x3865, 15}, {0x007C, 7}, {0x070F, 12}, {0x03BE, 10},
- {0x03BF, 10}, {0x3866, 15}, {0x0FA0, 12}, {0x07D1, 11},
- {0x3867, 15}, {0x00FB, 8}, {0x01F5, 9}, {0x7D08, 15},
- {0x0FA4, 12}, {0x7D09, 15}, {0x7D0A, 15}, {0x7D0B, 15},
- {0x3E86, 14}, {0x003F, 6}, {0x0FA5, 12}, {0x07D3, 11},
- {0x3E87, 14},
- },{//5
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0009, 5}, {0x0014, 6}, {0x002A, 7}, {0x0056, 8},
- {0x02B8, 11}, {0x00AF, 9}, {0x02B9, 11}, {0x015D, 10},
- {0x02C0, 11}, {0x2C10, 15}, {0x2C11, 15}, {0x2C12, 15},
- {0x0006, 4}, {0x000E, 5}, {0x0017, 6}, {0x002D, 7},
- {0x000F, 5}, {0x0040, 7}, {0x0021, 6}, {0x0005, 3},
- {0x0009, 4}, {0x0011, 5}, {0x0018, 5}, {0x0019, 5},
- {0x001A, 5}, {0x0036, 6}, {0x0037, 6}, {0x0041, 7},
- {0x0059, 8}, {0x00E0, 8}, {0x00E1, 8}, {0x0071, 7},
- {0x00E4, 8}, {0x00B1, 9}, {0x02C2, 11}, {0x001D, 5},
- {0x0073, 7}, {0x00E5, 8}, {0x00F0, 8}, {0x0079, 7},
- {0x03C4, 10}, {0x01E3, 9}, {0x01E8, 9}, {0x2C13, 15},
- {0x007B, 7}, {0x2C14, 15}, {0x2C15, 15}, {0x2C16, 15},
- {0x007C, 7}, {0x02C3, 11}, {0x2C17, 15}, {0x160C, 14},
- {0x160D, 14}, {0x007D, 7}, {0x160E, 14}, {0x01E9, 9},
- {0x03C5, 10}, {0x03D4, 10}, {0x01EB, 9}, {0x160F, 14},
- {0x3D50, 14}, {0x00FC, 8}, {0x07AB, 11}, {0x3D51, 14},
- {0x3D52, 14}, {0x3D53, 14}, {0x3D54, 14}, {0x01FA, 9},
- {0x3D55, 14}, {0x007F, 7}, {0x01FB, 9}, {0x3D56, 14},
- {0x3D57, 14},
- },{//6
- {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0008, 5},
- {0x0009, 5}, {0x000A, 5}, {0x000B, 5}, {0x0018, 6},
- {0x0032, 7}, {0x000D, 5}, {0x0033, 7}, {0x0E00, 13},
- {0x0039, 7}, {0x0E01, 13}, {0x003A, 7}, {0x0E02, 13},
- {0x0008, 4}, {0x001E, 6}, {0x003B, 7}, {0x003E, 7},
- {0x0012, 5}, {0x003F, 7}, {0x0013, 5}, {0x0028, 6},
- {0x0029, 6}, {0x0054, 7}, {0x002B, 6}, {0x0055, 7},
- {0x0058, 7}, {0x0E03, 13}, {0x0059, 7}, {0x005A, 7},
- {0x0E04, 13}, {0x0E05, 13}, {0x0703, 12}, {0x005B, 7},
- {0x005C, 7}, {0x0704, 12}, {0x0705, 12}, {0x005D, 7},
- {0x0706, 12}, {0x0707, 12}, {0x0708, 12}, {0x0709, 12},
- {0x070A, 12}, {0x070B, 12}, {0x0018, 5}, {0x002F, 6},
- {0x000D, 4}, {0x0019, 5}, {0x070C, 12}, {0x0070, 7},
- {0x001D, 5}, {0x070D, 12}, {0x070E, 12}, {0x070F, 12},
- {0x0710, 12}, {0x0039, 6}, {0x0711, 12}, {0x003C, 6},
- {0x0712, 12}, {0x0713, 12}, {0x0714, 12}, {0x0715, 12},
- {0x0716, 12}, {0x003D, 6}, {0x0717, 12}, {0x0718, 12},
- {0x0719, 12}, {0x071A, 12}, {0x071B, 12}, {0x071C, 12},
- {0x071D, 12}, {0x001F, 5}, {0x071E, 12}, {0x0071, 7},
- {0x071F, 12},
- },{//7
- {0x0000, 3}, {0x0002, 4}, {0x0006, 5}, {0x000E, 6},
- {0x000F, 6}, {0x0040, 8}, {0x0041, 8}, {0x0042, 8},
- {0x0218, 11}, {0x2190, 15}, {0x2191, 15}, {0x2192, 15},
- {0x2193, 15}, {0x2194, 15}, {0x2195, 15}, {0x2196, 15},
- {0x0005, 4}, {0x0011, 6}, {0x0024, 7}, {0x0087, 9},
- {0x000C, 5}, {0x004A, 8}, {0x004B, 8}, {0x0002, 2},
- {0x0006, 3}, {0x000D, 5}, {0x000E, 5}, {0x000F, 5},
- {0x0013, 6}, {0x0038, 6}, {0x00E4, 8}, {0x00E5, 8},
- {0x01CC, 9}, {0x00E7, 8}, {0x0074, 7}, {0x00EA, 8},
- {0x01CD, 9}, {0x021A, 11}, {0x2197, 15}, {0x001E, 5},
- {0x0076, 7}, {0x00EB, 8}, {0x01DC, 9}, {0x00EF, 8},
- {0x01DD, 9}, {0x01F0, 9}, {0x2198, 15}, {0x2199, 15},
- {0x00F9, 8}, {0x03E2, 10}, {0x219A, 15}, {0x219B, 15},
- {0x00FA, 8}, {0x219C, 15}, {0x219D, 15}, {0x219E, 15},
- {0x219F, 15}, {0x01F6, 9}, {0x21B0, 15}, {0x00FC, 8},
- {0x01F7, 9}, {0x21B1, 15}, {0x21B2, 15}, {0x21B3, 15},
- {0x21B4, 15}, {0x01FA, 9}, {0x21B5, 15}, {0x21B6, 15},
- {0x21B7, 15}, {0x21B8, 15}, {0x21B9, 15}, {0x03E3, 10},
- {0x10DD, 14}, {0x007F, 7}, {0x01FB, 9}, {0x10DE, 14},
- {0x10DF, 14},
- }
-};
-#define MAX_AC_VLC_BITS 16
-
-#endif /* AVCODEC_INTRAX8HUF_H */
+++ /dev/null
-/*
- * common functions for Indeo Video Interactive codecs (Indeo4 and Indeo5)
- *
- * Copyright (c) 2009 Maxim Poliakovski
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * This file contains structures and macros shared by both Indeo4 and
- * Indeo5 decoders.
- */
-
-#ifndef AVCODEC_IVI_COMMON_H
-#define AVCODEC_IVI_COMMON_H
-
-#include "avcodec.h"
-#include "get_bits.h"
-#include <stdint.h>
-
-#define IVI_DEBUG 0
-
-#define IVI_VLC_BITS 13 ///< max number of bits of the ivi's huffman codes
-
-/**
- * huffman codebook descriptor
- */
-typedef struct {
- int32_t num_rows;
- uint8_t xbits[16];
-} IVIHuffDesc;
-
-/**
- * macroblock/block huffman table descriptor
- */
-typedef struct {
- int32_t tab_sel; /// index of one of the predefined tables
- /// or "7" for custom one
- VLC *tab; /// pointer to the table associated with tab_sel
-
- //! the following are used only when tab_sel == 7
- IVIHuffDesc cust_desc; /// custom Huffman codebook descriptor
- VLC cust_tab; /// vlc table for custom codebook
-} IVIHuffTab;
-
-enum {
- IVI_MB_HUFF = 0, /// Huffman table is used for coding macroblocks
- IVI_BLK_HUFF = 1 /// Huffman table is used for coding blocks
-};
-
-extern VLC ff_ivi_mb_vlc_tabs [8]; ///< static macroblock Huffman tables
-extern VLC ff_ivi_blk_vlc_tabs[8]; ///< static block Huffman tables
-
-
-/**
- * run-value (RLE) table descriptor
- */
-typedef struct {
- uint8_t eob_sym; ///< end of block symbol
- uint8_t esc_sym; ///< escape symbol
- uint8_t runtab[256];
- int8_t valtab[256];
-} RVMapDesc;
-
-extern const RVMapDesc ff_ivi_rvmap_tabs[9];
-
-
-/**
- * information for Indeo macroblock (16x16, 8x8 or 4x4)
- */
-typedef struct {
- int16_t xpos;
- int16_t ypos;
- uint32_t buf_offs; ///< address in the output buffer for this mb
- uint8_t type; ///< macroblock type: 0 - INTRA, 1 - INTER
- uint8_t cbp; ///< coded block pattern
- int8_t q_delta; ///< quant delta
- int8_t mv_x; ///< motion vector (x component)
- int8_t mv_y; ///< motion vector (y component)
-} IVIMbInfo;
-
-
-/**
- * information for Indeo tile
- */
-typedef struct {
- int xpos;
- int ypos;
- int width;
- int height;
- int is_empty; ///< = 1 if this tile doesn't contain any data
- int data_size; ///< size of the data in bytes
- int num_MBs; ///< number of macroblocks in this tile
- IVIMbInfo *mbs; ///< array of macroblock descriptors
- IVIMbInfo *ref_mbs; ///< ptr to the macroblock descriptors of the reference tile
-} IVITile;
-
-
-/**
- * information for Indeo wavelet band
- */
-typedef struct {
- int plane; ///< plane number this band belongs to
- int band_num; ///< band number
- int width;
- int height;
- const uint8_t *data_ptr; ///< ptr to the first byte of the band data
- int data_size; ///< size of the band data
- int16_t *buf; ///< pointer to the output buffer for this band
- int16_t *ref_buf; ///< pointer to the reference frame buffer (for motion compensation)
- int16_t *bufs[3]; ///< array of pointers to the band buffers
- int pitch; ///< pitch associated with the buffers above
- int is_empty; ///< = 1 if this band doesn't contain any data
- int mb_size; ///< macroblock size
- int blk_size; ///< block size
- int is_halfpel; ///< precision of the motion compensation: 0 - fullpel, 1 - halfpel
- int inherit_mv; ///< tells if motion vector is inherited from reference macroblock
- int inherit_qdelta; ///< tells if quantiser delta is inherited from reference macroblock
- int qdelta_present; ///< tells if Qdelta signal is present in the bitstream (Indeo5 only)
- int quant_mat; ///< dequant matrix index
- int glob_quant; ///< quant base for this band
- const uint8_t *scan; ///< ptr to the scan pattern
-
- IVIHuffTab blk_vlc; ///< vlc table for decoding block data
-
- uint16_t *dequant_intra; ///< ptr to dequant tables for intra blocks
- uint16_t *dequant_inter; ///< ptr dequant tables for inter blocks
- int num_corr; ///< number of correction entries
- uint8_t corr[61*2]; ///< rvmap correction pairs
- int rvmap_sel; ///< rvmap table selector
- RVMapDesc *rv_map; ///< ptr to the RLE table for this band
- int num_tiles; ///< number of tiles in this band
- IVITile *tiles; ///< array of tile descriptors
- void (*inv_transform)(const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags); ///< inverse transform function pointer
- void (*dc_transform) (const int32_t *in, int16_t *out, uint32_t pitch, int blk_size); ///< dc transform function pointer, it may be NULL
- int is_2d_trans; ///< 1 indicates that the two-dimensional inverse transform is used
- int32_t checksum; ///< for debug purposes
- int checksum_present;
- int bufsize; ///< band buffer size in bytes
- const uint8_t *intra_base; ///< quantization matrix for intra blocks
- const uint8_t *inter_base; ///< quantization matrix for inter blocks
- const uint8_t *intra_scale; ///< quantization coefficient for intra blocks
- const uint8_t *inter_scale; ///< quantization coefficient for inter blocks
-} IVIBandDesc;
-
-
-/**
- * color plane (luma or chroma) information
- */
-typedef struct {
- uint16_t width;
- uint16_t height;
- uint8_t num_bands; ///< number of bands this plane subdivided into
- IVIBandDesc *bands; ///< array of band descriptors
-} IVIPlaneDesc;
-
-
-typedef struct {
- uint16_t pic_width;
- uint16_t pic_height;
- uint16_t chroma_width;
- uint16_t chroma_height;
- uint16_t tile_width;
- uint16_t tile_height;
- uint8_t luma_bands;
- uint8_t chroma_bands;
-} IVIPicConfig;
-
-/** compares some properties of two pictures */
-static inline int ivi_pic_config_cmp(IVIPicConfig *str1, IVIPicConfig *str2)
-{
- return (str1->pic_width != str2->pic_width || str1->pic_height != str2->pic_height ||
- str1->chroma_width != str2->chroma_width || str1->chroma_height != str2->chroma_height ||
- str1->tile_width != str2->tile_width || str1->tile_height != str2->tile_height ||
- str1->luma_bands != str2->luma_bands || str1->chroma_bands != str2->chroma_bands);
-}
-
-/** calculate number of tiles in a stride */
-#define IVI_NUM_TILES(stride, tile_size) (((stride) + (tile_size) - 1) / (tile_size))
-
-/** calculate number of macroblocks in a tile */
-#define IVI_MBs_PER_TILE(tile_width, tile_height, mb_size) \
- ((((tile_width) + (mb_size) - 1) / (mb_size)) * (((tile_height) + (mb_size) - 1) / (mb_size)))
-
-/** convert unsigned values into signed ones (the sign is in the LSB) */
-#define IVI_TOSIGNED(val) (-(((val) >> 1) ^ -((val) & 1)))
-
-/** scales motion vector */
-static inline int ivi_scale_mv(int mv, int mv_scale)
-{
- return (mv + (mv > 0) + (mv_scale - 1)) >> mv_scale;
-}
-
-/**
- * Generates a huffman codebook from the given descriptor
- * and converts it into the FFmpeg VLC table.
- *
- * @param cb [in] pointer to codebook descriptor
- * @param vlc [out] where to place the generated VLC table
- * @param flag [in] flag: 1 - for static or 0 for dynamic tables
- * @return result code: 0 - OK, -1 = error (invalid codebook descriptor)
- */
-int ff_ivi_create_huff_from_desc(const IVIHuffDesc *cb, VLC *vlc, int flag);
-
-/**
- * Initializes static codes used for macroblock and block decoding.
- */
-void ff_ivi_init_static_vlc(void);
-
-/**
- * Decodes a huffman codebook descriptor from the bitstream
- * and selects specified huffman table.
- *
- * @param gb [in,out] the GetBit context
- * @param desc_coded [in] flag signalling if table descriptor was coded
- * @param which_tab [in] codebook purpose (IVI_MB_HUFF or IVI_BLK_HUFF)
- * @param huff_tab [out] pointer to the descriptor of the selected table
- * @param avctx [in] AVCodecContext pointer
- * @return zero on success, negative value otherwise
- */
-int ff_ivi_dec_huff_desc(GetBitContext *gb, int desc_coded, int which_tab,
- IVIHuffTab *huff_tab, AVCodecContext *avctx);
-
-/**
- * Compares two huffman codebook descriptors.
- *
- * @param desc1 [in] ptr to the 1st descriptor to compare
- * @param desc2 [in] ptr to the 2nd descriptor to compare
- * @return comparison result: 0 - equal, 1 - not equal
- */
-int ff_ivi_huff_desc_cmp(const IVIHuffDesc *desc1, const IVIHuffDesc *desc2);
-
-/**
- * Copies huffman codebook descriptors.
- *
- * @param dst [out] ptr to the destination descriptor
- * @param src [in] ptr to the source descriptor
- */
-void ff_ivi_huff_desc_copy(IVIHuffDesc *dst, const IVIHuffDesc *src);
-
-/**
- * Initializes planes (prepares descriptors, allocates buffers etc).
- *
- * @param planes [in,out] pointer to the array of the plane descriptors
- * @param cfg [in] pointer to the ivi_pic_config structure describing picture layout
- * @return result code: 0 - OK
- */
-int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg);
-
-/**
- * Frees planes, bands and macroblocks buffers.
- *
- * @param planes [in] pointer to the array of the plane descriptors
- */
-void ff_ivi_free_buffers(IVIPlaneDesc *planes);
-
-/**
- * Initializes tile and macroblock descriptors.
- *
- * @param planes [in,out] pointer to the array of the plane descriptors
- * @param tile_width [in] tile width
- * @param tile_height [in] tile height
- * @return result code: 0 - OK
- */
-int ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height);
-
-/**
- * Decodes size of the tile data.
- * The size is stored as a variable-length field having the following format:
- * if (tile_data_size < 255) than this field is only one byte long
- * if (tile_data_size >= 255) than this field four is byte long: 0xFF X1 X2 X3
- * where X1-X3 is size of the tile data
- *
- * @param gb [in,out] the GetBit context
- * @return size of the tile data in bytes
- */
-int ff_ivi_dec_tile_data_size(GetBitContext *gb);
-
-/**
- * Decodes block data:
- * extracts huffman-coded transform coefficients from the bitstream,
- * dequantizes them, applies inverse transform and motion compensation
- * in order to reconstruct the picture.
- *
- * @param gb [in,out] the GetBit context
- * @param band [in] pointer to the band descriptor
- * @param tile [in] pointer to the tile descriptor
- * @return result code: 0 - OK, -1 = error (corrupted blocks data)
- */
-int ff_ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile);
-
-/**
- * Handles empty tiles by performing data copying and motion
- * compensation respectively.
- *
- * @param avctx [in] ptr to the AVCodecContext
- * @param band [in] pointer to the band descriptor
- * @param tile [in] pointer to the tile descriptor
- * @param mv_scale [in] scaling factor for motion vectors
- */
-void ff_ivi_process_empty_tile(AVCodecContext *avctx, IVIBandDesc *band,
- IVITile *tile, int32_t mv_scale);
-
-/**
- * Converts and outputs the current plane.
- * This conversion is done by adding back the bias value of 128
- * (subtracted in the encoder) and clipping the result.
- *
- * @param plane [in] pointer to the descriptor of the plane being processed
- * @param dst [out] pointer to the buffer receiving converted pixels
- * @param dst_pitch [in] pitch for moving to the next y line
- */
-void ff_ivi_output_plane(IVIPlaneDesc *plane, uint8_t *dst, int dst_pitch);
-
-#if IVI_DEBUG
-/**
- * Calculates band checksum from band data.
- */
-uint16_t ivi_calc_band_checksum (IVIBandDesc *band);
-
-/**
- * Verifies that band data lies in range.
- */
-int ivi_check_band (IVIBandDesc *band, const uint8_t *ref, int pitch);
-#endif
-
-#endif /* AVCODEC_IVI_COMMON_H */
+++ /dev/null
-/*
- * DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5)
- *
- * Copyright (c) 2009 Maxim Poliakovski
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * DSP functions (inverse transforms, motion compensations, wavelet recompostion)
- * for Indeo Video Interactive codecs.
- */
-
-#ifndef AVCODEC_IVI_DSP_H
-#define AVCODEC_IVI_DSP_H
-
-#include "avcodec.h"
-#include "ivi_common.h"
-
-/**
- * 5/3 wavelet recomposition filter for Indeo5
- *
- * @param plane [in] pointer to the descriptor of the plane being processed
- * @param dst [out] pointer to the destination buffer
- * @param dst_pitch [in] pitch of the destination buffer
- * @param num_bands [in] number of wavelet bands to be processed
- */
-void ff_ivi_recompose53(const IVIPlaneDesc *plane, uint8_t *dst,
- const int dst_pitch, const int num_bands);
-
-/**
- * two-dimensional inverse slant 8x8 transform
- *
- * @param in [in] pointer to the vector of transform coefficients
- * @param out [out] pointer to the output buffer (frame)
- * @param pitch [in] pitch to move to the next y line
- * @param flags [in] pointer to the array of column flags:
- * != 0 - non_empty column, 0 - empty one
- * (this array must be filled by caller)
- */
-void ff_ivi_inverse_slant_8x8(const int32_t *in, int16_t *out, uint32_t pitch,
- const uint8_t *flags);
-
-/**
- * two-dimensional inverse slant 4x4 transform
- *
- * @param in [in] pointer to the vector of transform coefficients
- * @param out [out] pointer to the output buffer (frame)
- * @param pitch [in] pitch to move to the next y line
- * @param flags [in] pointer to the array of column flags:
- * != 0 - non_empty column, 0 - empty one
- * (this array must be filled by caller)
- */
-void ff_ivi_inverse_slant_4x4(const int32_t *in, int16_t *out, uint32_t pitch,
- const uint8_t *flags);
-
-/**
- * DC-only two-dimensional inverse slant transform.
- * Performing the inverse slant transform in this case is equivalent to
- * spreading (DC_coeff + 1)/2 over the whole block.
- * It works much faster than performing the slant transform on a vector of zeroes.
- *
- * @param in [in] pointer to the dc coefficient
- * @param out [out] pointer to the output buffer (frame)
- * @param pitch [in] pitch to move to the next y line
- * @param blk_size [in] transform block size
- */
-void ff_ivi_dc_slant_2d(const int32_t *in, int16_t *out, uint32_t pitch, int blk_size);
-
-/**
- * inverse 1D row slant transform
- *
- * @param in [in] pointer to the vector of transform coefficients
- * @param out [out] pointer to the output buffer (frame)
- * @param pitch [in] pitch to move to the next y line
- * @param flags [in] pointer to the array of column flags (unused here)
- */
-void ff_ivi_row_slant8(const int32_t *in, int16_t *out, uint32_t pitch,
- const uint8_t *flags);
-
-/**
- * inverse 1D column slant transform
- *
- * @param in [in] pointer to the vector of transform coefficients
- * @param out [out] pointer to the output buffer (frame)
- * @param pitch [in] pitch to move to the next y line
- * @param flags [in] pointer to the array of column flags:
- * != 0 - non_empty column, 0 - empty one
- * (this array must be filled by caller)
- */
-void ff_ivi_col_slant8(const int32_t *in, int16_t *out, uint32_t pitch,
- const uint8_t *flags);
-
-/**
- * DC-only inverse row slant transform
- */
-void ff_ivi_dc_row_slant(const int32_t *in, int16_t *out, uint32_t pitch, int blk_size);
-
-/**
- * DC-only inverse column slant transform
- */
-void ff_ivi_dc_col_slant(const int32_t *in, int16_t *out, uint32_t pitch, int blk_size);
-
-/**
- * Copies the pixels into the frame buffer.
- */
-void ff_ivi_put_pixels_8x8(const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags);
-
-/**
- * Copies the DC coefficient into the first pixel of the block and
- * zeroes all others.
- */
-void ff_ivi_put_dc_pixel_8x8(const int32_t *in, int16_t *out, uint32_t pitch, int blk_size);
-
-/**
- * 8x8 block motion compensation with adding delta
- *
- * @param buf [in,out] pointer to the block in the current frame buffer containing delta
- * @param ref_buf [in] pointer to the corresponding block in the reference frame
- * @param pitch [in] pitch for moving to the next y line
- * @param mc_type [in] interpolation type
- */
-void ff_ivi_mc_8x8_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type);
-
-/**
- * 4x4 block motion compensation with adding delta
- *
- * @param buf [in,out] pointer to the block in the current frame buffer containing delta
- * @param ref_buf [in] pointer to the corresponding block in the reference frame
- * @param pitch [in] pitch for moving to the next y line
- * @param mc_type [in] interpolation type
- */
-void ff_ivi_mc_4x4_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type);
-
-/**
- * motion compensation without adding delta
- *
- * @param buf [in,out] pointer to the block in the current frame receiving the result
- * @param ref_buf [in] pointer to the corresponding block in the reference frame
- * @param pitch [in] pitch for moving to the next y line
- * @param mc_type [in] interpolation type
- */
-void ff_ivi_mc_8x8_no_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type);
-
-/**
- * 4x4 block motion compensation without adding delta
- *
- * @param buf [in,out] pointer to the block in the current frame receiving the result
- * @param ref_buf [in] pointer to the corresponding block in the reference frame
- * @param pitch [in] pitch for moving to the next y line
- * @param mc_type [in] interpolation type
- */
-void ff_ivi_mc_4x4_no_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type);
-
-#endif /* AVCODEC_IVI_DSP_H */
+++ /dev/null
-/*
- * JPEG-LS common code
- * Copyright (c) 2003 Michael Niedermayer
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * JPEG-LS common code.
- */
-
-#ifndef AVCODEC_JPEGLS_H
-#define AVCODEC_JPEGLS_H
-
-#include "avcodec.h"
-
-typedef struct JpeglsContext{
- AVCodecContext *avctx;
- AVFrame picture;
-}JpeglsContext;
-
-typedef struct JLSState{
- int T1, T2, T3;
- int A[367], B[367], C[365], N[367];
- int limit, reset, bpp, qbpp, maxval, range;
- int near, twonear;
- int run_index[3];
-}JLSState;
-
-extern const uint8_t ff_log2_run[32];
-
-/**
- * Calculate initial JPEG-LS parameters
- */
-void ff_jpegls_init_state(JLSState *state);
-
-/**
- * Calculate quantized gradient value, used for context determination
- */
-static inline int ff_jpegls_quantize(JLSState *s, int v){ //FIXME optimize
- if(v==0) return 0;
- if(v < 0){
- if(v <= -s->T3) return -4;
- if(v <= -s->T2) return -3;
- if(v <= -s->T1) return -2;
- if(v < -s->near) return -1;
- return 0;
- }else{
- if(v <= s->near) return 0;
- if(v < s->T1) return 1;
- if(v < s->T2) return 2;
- if(v < s->T3) return 3;
- return 4;
- }
-}
-
-/**
- * Calculate JPEG-LS codec values
- */
-void ff_jpegls_reset_coding_parameters(JLSState *s, int reset_all);
-
-
-static inline void ff_jpegls_downscale_state(JLSState *state, int Q){
- if(state->N[Q] == state->reset){
- state->A[Q] >>=1;
- state->B[Q] >>=1;
- state->N[Q] >>=1;
- }
- state->N[Q]++;
-}
-
-static inline int ff_jpegls_update_state_regular(JLSState *state, int Q, int err){
- state->A[Q] += FFABS(err);
- err *= state->twonear;
- state->B[Q] += err;
-
- ff_jpegls_downscale_state(state, Q);
-
- if(state->B[Q] <= -state->N[Q]) {
- state->B[Q]= FFMAX(state->B[Q] + state->N[Q], 1-state->N[Q]);
- if(state->C[Q] > -128)
- state->C[Q]--;
- }else if(state->B[Q] > 0){
- state->B[Q]= FFMIN(state->B[Q] - state->N[Q], 0);
- if(state->C[Q] < 127)
- state->C[Q]++;
- }
-
- return err;
-}
-
-#define R(a, i ) (bits == 8 ? ((uint8_t*)(a))[i] : ((uint16_t*)(a))[i] )
-#define W(a, i, v) (bits == 8 ? (((uint8_t*)(a))[i]=v) : (((uint16_t*)(a))[i]=v))
-
-#endif /* AVCODEC_JPEGLS_H */
+++ /dev/null
-/*
- * JPEG-LS decoder
- * Copyright (c) 2003 Michael Niedermayer
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * JPEG-LS decoder.
- */
-
-#ifndef AVCODEC_JPEGLSDEC_H
-#define AVCODEC_JPEGLSDEC_H
-
-#include "mjpeg.h"
-#include "mjpegdec.h"
-
-/**
- * Decode LSE block with initialization parameters
- */
-int ff_jpegls_decode_lse(MJpegDecodeContext *s);
-
-int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transform, int ilv);
-
-#endif /* AVCODEC_JPEGLSDEC_H */
+++ /dev/null
-/*
- * LCL (LossLess Codec Library) Codec
- * Copyright (c) 2002-2004 Roberto Togni
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_LCL_H
-#define AVCODEC_LCL_H
-
-#define BMPTYPE_YUV 1
-#define BMPTYPE_RGB 2
-
-#define IMGTYPE_YUV111 0
-#define IMGTYPE_YUV422 1
-#define IMGTYPE_RGB24 2
-#define IMGTYPE_YUV411 3
-#define IMGTYPE_YUV211 4
-#define IMGTYPE_YUV420 5
-
-#define COMP_MSZH 0
-#define COMP_MSZH_NOCOMP 1
-#define COMP_ZLIB_HISPEED 1
-#define COMP_ZLIB_HICOMP 9
-#define COMP_ZLIB_NORMAL -1
-
-#define FLAG_MULTITHREAD 1
-#define FLAG_NULLFRAME 2
-#define FLAG_PNGFILTER 4
-#define FLAGMASK_UNUSED 0xf8
-
-#define CODEC_MSZH 1
-#define CODEC_ZLIB 3
-
-#endif /* AVCODEC_LCL_H */
+++ /dev/null
-/*
- * Copyright (c) 2008 BBC, Anuradha Suraparaju <asuraparaju at gmail dot com >
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
-* @file
-* data structures common to libdiracenc.c and libdiracdec.c
-*/
-
-#ifndef AVCODEC_LIBDIRAC_H
-#define AVCODEC_LIBDIRAC_H
-
-#include "avcodec.h"
-#include <libdirac_common/dirac_types.h>
-
-/**
-* Table providing a Dirac chroma format to FFmpeg pixel format mapping.
-*/
-static const struct {
- enum PixelFormat ff_pix_fmt;
- dirac_chroma_t dirac_pix_fmt;
-} ffmpeg_dirac_pixel_format_map[] = {
- { PIX_FMT_YUV420P, format420 },
- { PIX_FMT_YUV422P, format422 },
- { PIX_FMT_YUV444P, format444 },
-};
-
-#endif /* AVCODEC_LIBDIRAC_H */
+++ /dev/null
-/*
- * Copyright (c) 2008 BBC, Anuradha Suraparaju <asuraparaju at gmail dot com >
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
-* @file
-* data structures common to libdirac and libschroedinger
-*/
-
-#ifndef AVCODEC_LIBDIRAC_LIBSCHRO_H
-#define AVCODEC_LIBDIRAC_LIBSCHRO_H
-
-#include "avcodec.h"
-
-typedef struct {
- uint16_t width;
- uint16_t height;
- uint16_t frame_rate_num;
- uint16_t frame_rate_denom;
-} FfmpegDiracSchroVideoFormatInfo;
-
-/**
-* Returns the index into the Dirac Schro common video format info table
-*/
-unsigned int ff_dirac_schro_get_video_format_idx(AVCodecContext *avccontext);
-
-/**
-* contains a single encoded frame returned from Dirac or Schroedinger
-*/
-typedef struct FfmpegDiracSchroEncodedFrame {
- /** encoded frame data */
- uint8_t *p_encbuf;
-
- /** encoded frame size */
- uint32_t size;
-
- /** encoded frame number. Will be used as pts */
- uint32_t frame_num;
-
- /** key frame flag. 1 : is key frame , 0 : in not key frame */
- uint16_t key_frame;
-} FfmpegDiracSchroEncodedFrame;
-
-/**
-* queue element
-*/
-typedef struct FfmpegDiracSchroQueueElement {
- /** Data to be stored in queue*/
- void *data;
- /** Pointer to next element queue */
- struct FfmpegDiracSchroQueueElement *next;
-} FfmpegDiracSchroQueueElement;
-
-
-/**
-* A simple queue implementation used in libdirac and libschroedinger
-*/
-typedef struct FfmpegDiracSchroQueue {
- /** Pointer to head of queue */
- FfmpegDiracSchroQueueElement *p_head;
- /** Pointer to tail of queue */
- FfmpegDiracSchroQueueElement *p_tail;
- /** Queue size*/
- int size;
-} FfmpegDiracSchroQueue;
-
-/**
-* Initialise the queue
-*/
-void ff_dirac_schro_queue_init(FfmpegDiracSchroQueue *queue);
-
-/**
-* Add an element to the end of the queue
-*/
-int ff_dirac_schro_queue_push_back(FfmpegDiracSchroQueue *queue, void *p_data);
-
-/**
-* Return the first element in the queue
-*/
-void *ff_dirac_schro_queue_pop(FfmpegDiracSchroQueue *queue);
-
-/**
-* Free the queue resources. free_func is a function supplied by the caller to
-* free any resources allocated by the caller. The data field of the queue
-* element is passed to it.
-*/
-void ff_dirac_schro_queue_free(FfmpegDiracSchroQueue *queue,
- void (*free_func)(void *));
-#endif /* AVCODEC_LIBDIRAC_LIBSCHRO_H */
+++ /dev/null
-/*
- * Copyright (c) 2008 BBC, Anuradha Suraparaju <asuraparaju at gmail dot com >
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
-* @file
-* data structures common to libschroedingerdec.c and libschroedingerenc.c
-*/
-
-#ifndef AVCODEC_LIBSCHROEDINGER_H
-#define AVCODEC_LIBSCHROEDINGER_H
-
-#include <schroedinger/schrobitstream.h>
-#include <schroedinger/schroframe.h>
-#include "avcodec.h"
-
-static const struct {
- enum PixelFormat ff_pix_fmt;
- SchroChromaFormat schro_pix_fmt;
- SchroFrameFormat schro_frame_fmt;
-} ffmpeg_schro_pixel_format_map[] = {
- { PIX_FMT_YUV420P, SCHRO_CHROMA_420, SCHRO_FRAME_FORMAT_U8_420 },
- { PIX_FMT_YUV422P, SCHRO_CHROMA_422, SCHRO_FRAME_FORMAT_U8_422 },
- { PIX_FMT_YUV444P, SCHRO_CHROMA_444, SCHRO_FRAME_FORMAT_U8_444 },
-};
-
-/**
-* Returns the video format preset matching the input video dimensions and
-* time base.
-*/
-SchroVideoFormatEnum ff_get_schro_video_format_preset (AVCodecContext *avccontext);
-
-/**
-* Sets the Schroedinger frame format corresponding to the Schro chroma format
-* passed. Returns 0 on success, -1 on failure.
-*/
-int ff_get_schro_frame_format(SchroChromaFormat schro_chroma_fmt,
- SchroFrameFormat *schro_frame_fmt);
-
-/**
-* Create a Schro frame based on the dimensions and frame format
-* passed. Returns a pointer to a frame on success, NULL on failure.
-*/
-SchroFrame *ff_create_schro_frame(AVCodecContext *avccontext,
- SchroFrameFormat schro_frame_fmt);
-
-#endif /* AVCODEC_LIBSCHROEDINGER_H */
+++ /dev/null
-/*
- * copyright (C) 2006 Corey Hickey
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_LIBXVID_INTERNAL_H
-#define AVCODEC_LIBXVID_INTERNAL_H
-
-/**
- * @file
- * common functions for use with the Xvid wrappers
- */
-
-
-int av_tempfile(char *prefix, char **filename);
-
-#endif /* AVCODEC_LIBXVID_INTERNAL_H */
+++ /dev/null
-/**
- * LPC utility code
- * Copyright (c) 2006 Justin Ruggles <justin.ruggles@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_LPC_H
-#define AVCODEC_LPC_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-#define ORDER_METHOD_EST 0
-#define ORDER_METHOD_2LEVEL 1
-#define ORDER_METHOD_4LEVEL 2
-#define ORDER_METHOD_8LEVEL 3
-#define ORDER_METHOD_SEARCH 4
-#define ORDER_METHOD_LOG 5
-
-#define MIN_LPC_ORDER 1
-#define MAX_LPC_ORDER 32
-
-
-/**
- * Calculate LPC coefficients for multiple orders
- */
-int ff_lpc_calc_coefs(DSPContext *s,
- const int32_t *samples, int blocksize, int min_order,
- int max_order, int precision,
- int32_t coefs[][MAX_LPC_ORDER], int *shift, int use_lpc,
- int omethod, int max_shift, int zero_shift);
-
-void ff_lpc_compute_autocorr(const int32_t *data, int len, int lag,
- double *autoc);
-
-#ifdef LPC_USE_DOUBLE
-#define LPC_TYPE double
-#else
-#define LPC_TYPE float
-#endif
-
-/**
- * Levinson-Durbin recursion.
- * Produces LPC coefficients from autocorrelation data.
- */
-static inline int compute_lpc_coefs(const LPC_TYPE *autoc, int max_order,
- LPC_TYPE *lpc, int lpc_stride, int fail,
- int normalize)
-{
- int i, j;
- LPC_TYPE err;
- LPC_TYPE *lpc_last = lpc;
-
- if (normalize)
- err = *autoc++;
-
- if (fail && (autoc[max_order - 1] == 0 || err <= 0))
- return -1;
-
- for(i=0; i<max_order; i++) {
- LPC_TYPE r = -autoc[i];
-
- if (normalize) {
- for(j=0; j<i; j++)
- r -= lpc_last[j] * autoc[i-j-1];
-
- r /= err;
- err *= 1.0 - (r * r);
- }
-
- lpc[i] = r;
-
- for(j=0; j < (i+1)>>1; j++) {
- LPC_TYPE f = lpc_last[ j];
- LPC_TYPE b = lpc_last[i-1-j];
- lpc[ j] = f + r * b;
- lpc[i-1-j] = b + r * f;
- }
-
- if (fail && err < 0)
- return -1;
-
- lpc_last = lpc;
- lpc += lpc_stride;
- }
-
- return 0;
-}
-
-#endif /* AVCODEC_LPC_H */
+++ /dev/null
-/*
- * LSP computing for ACELP-based codecs
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_LSP_H
-#define AVCODEC_LSP_H
-
-#include <stdint.h>
-
-/**
- (I.F) means fixed-point value with F fractional and I integer bits
-*/
-
-/**
- * \brief ensure a minimum distance between LSFs
- * \param lsfq [in/out] LSF to check and adjust
- * \param lsfq_min_distance minimum distance between LSFs
- * \param lsfq_min minimum allowed LSF value
- * \param lsfq_max maximum allowed LSF value
- * \param lp_order LP filter order
- */
-void ff_acelp_reorder_lsf(int16_t* lsfq, int lsfq_min_distance, int lsfq_min, int lsfq_max, int lp_order);
-
-/**
- * Adjust the quantized LSFs so they are increasing and not too close.
- *
- * This step is not mentioned in the AMR spec but is in the reference C decoder.
- * Omitting this step creates audible distortion on the sinusoidal sweep
- * test vectors in 3GPP TS 26.074.
- *
- * @param[in,out] lsf LSFs in Hertz
- * @param min_spacing minimum distance between two consecutive lsf values
- * @param size size of the lsf vector
- */
-void ff_set_min_dist_lsf(float *lsf, double min_spacing, int order);
-
-/**
- * \brief Convert LSF to LSP
- * \param lsp [out] LSP coefficients (-0x8000 <= (0.15) < 0x8000)
- * \param lsf normalized LSF coefficients (0 <= (2.13) < 0x2000 * PI)
- * \param lp_order LP filter order
- *
- * \remark It is safe to pass the same array into the lsf and lsp parameters.
- */
-void ff_acelp_lsf2lsp(int16_t *lsp, const int16_t *lsf, int lp_order);
-
-/**
- * \brief LSP to LP conversion (3.2.6 of G.729)
- * \param lp [out] decoded LP coefficients (-0x8000 <= (3.12) < 0x8000)
- * \param lsp LSP coefficients (-0x8000 <= (0.15) < 0x8000)
- * \param lp_half_order LP filter order, divided by 2
- */
-void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp, int lp_half_order);
-
-/**
- * \brief Interpolate LSP for the first subframe and convert LSP -> LP for both subframes (3.2.5 and 3.2.6 of G.729)
- * \param lp_1st [out] decoded LP coefficients for first subframe (-0x8000 <= (3.12) < 0x8000)
- * \param lp_2nd [out] decoded LP coefficients for second subframe (-0x8000 <= (3.12) < 0x8000)
- * \param lsp_2nd LSP coefficients of the second subframe (-0x8000 <= (0.15) < 0x8000)
- * \param lsp_prev LSP coefficients from the second subframe of the previous frame (-0x8000 <= (0.15) < 0x8000)
- * \param lp_order LP filter order
- */
-void ff_acelp_lp_decode(int16_t* lp_1st, int16_t* lp_2nd, const int16_t* lsp_2nd, const int16_t* lsp_prev, int lp_order);
-
-
-#define MAX_LP_HALF_ORDER 8
-
-/**
- * Reconstructs LPC coefficients from the line spectral pair frequencies.
- *
- * @param lsp line spectral pairs in cosine domain
- * @param lpc linear predictive coding coefficients
- * @param lp_half_order half the number of the amount of LPCs to be
- * reconstructed, need to be smaller or equal to MAX_LP_HALF_ORDER
- *
- * @note buffers should have a minimux size of 2*lp_half_order elements.
- *
- * TIA/EIA/IS-733 2.4.3.3.5
- */
-void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order);
-
-/**
- * Sort values in ascending order.
- *
- * @note O(n) if data already sorted, O(n^2) - otherwise
- */
-void ff_sort_nearly_sorted_floats(float *vals, int len);
-
-/**
- * Computes the Pa / (1 + z(-1)) or Qa / (1 - z(-1)) coefficients
- * needed for LSP to LPC conversion.
- * We only need to calculate the 6 first elements of the polynomial.
- *
- * @param lsp line spectral pairs in cosine domain
- * @param f [out] polynomial input/output as a vector
- *
- * TIA/EIA/IS-733 2.4.3.3.5-1/2
- */
-void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order);
-
-#endif /* AVCODEC_LSP_H */
+++ /dev/null
-/*
- * LZW decoder
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief LZW decoding routines
- * @author Fabrice Bellard
- * Modified for use in TIFF by Konstantin Shishkov
- */
-
-#ifndef AVCODEC_LZW_H
-#define AVCODEC_LZW_H
-
-#include <stdint.h>
-
-struct PutBitContext;
-
-enum FF_LZW_MODES{
- FF_LZW_GIF,
- FF_LZW_TIFF
-};
-
-/* clients should not know what LZWState is */
-typedef void LZWState;
-
-/* first two functions de/allocate memory for LZWState */
-void ff_lzw_decode_open(LZWState **p);
-void ff_lzw_decode_close(LZWState **p);
-int ff_lzw_decode_init(LZWState *s, int csize, const uint8_t *buf, int buf_size, int mode);
-int ff_lzw_decode(LZWState *s, uint8_t *buf, int len);
-const uint8_t* ff_lzw_cur_ptr(LZWState *lzw);
-void ff_lzw_decode_tail(LZWState *lzw);
-
-/** LZW encode state */
-struct LZWEncodeState;
-extern const int ff_lzw_encode_state_size;
-
-void ff_lzw_encode_init(struct LZWEncodeState *s, uint8_t *outbuf, int outsize,
- int maxbits, enum FF_LZW_MODES mode,
- void (*lzw_put_bits)(struct PutBitContext *, int, unsigned int));
-int ff_lzw_encode(struct LZWEncodeState * s, const uint8_t * inbuf, int insize);
-int ff_lzw_encode_flush(struct LZWEncodeState *s,
- void (*lzw_flush_put_bits)(struct PutBitContext *));
-
-#endif /* AVCODEC_LZW_H */
+++ /dev/null
-/*
- * simple math operations
- * Copyright (c) 2001, 2002 Fabrice Bellard
- * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> et al
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVCODEC_MATHOPS_H
-#define AVCODEC_MATHOPS_H
-
-#include "libavutil/common.h"
-
-#if ARCH_ARM
-# include "arm/mathops.h"
-#elif ARCH_AVR32
-# include "avr32/mathops.h"
-#elif ARCH_BFIN
-# include "bfin/mathops.h"
-#elif ARCH_MIPS
-# include "mips/mathops.h"
-#elif ARCH_PPC
-# include "ppc/mathops.h"
-#elif ARCH_X86
-# include "x86/mathops.h"
-#endif
-
-/* generic implementation */
-
-#ifndef MULL
-# define MULL(a,b,s) (((int64_t)(a) * (int64_t)(b)) >> (s))
-#endif
-
-#ifndef MULH
-//gcc 3.4 creates an incredibly bloated mess out of this
-//# define MULH(a,b) (((int64_t)(a) * (int64_t)(b))>>32)
-
-static av_always_inline int MULH(int a, int b){
- return ((int64_t)(a) * (int64_t)(b))>>32;
-}
-#endif
-
-#ifndef UMULH
-static av_always_inline unsigned UMULH(unsigned a, unsigned b){
- return ((uint64_t)(a) * (uint64_t)(b))>>32;
-}
-#endif
-
-#ifndef MUL64
-# define MUL64(a,b) ((int64_t)(a) * (int64_t)(b))
-#endif
-
-#ifndef MAC64
-# define MAC64(d, a, b) ((d) += MUL64(a, b))
-#endif
-
-#ifndef MLS64
-# define MLS64(d, a, b) ((d) -= MUL64(a, b))
-#endif
-
-/* signed 16x16 -> 32 multiply add accumulate */
-#ifndef MAC16
-# define MAC16(rt, ra, rb) rt += (ra) * (rb)
-#endif
-
-/* signed 16x16 -> 32 multiply */
-#ifndef MUL16
-# define MUL16(ra, rb) ((ra) * (rb))
-#endif
-
-#ifndef MLS16
-# define MLS16(rt, ra, rb) ((rt) -= (ra) * (rb))
-#endif
-
-/* median of 3 */
-#ifndef mid_pred
-#define mid_pred mid_pred
-static inline av_const int mid_pred(int a, int b, int c)
-{
-#if 0
- int t= (a-b)&((a-b)>>31);
- a-=t;
- b+=t;
- b-= (b-c)&((b-c)>>31);
- b+= (a-b)&((a-b)>>31);
-
- return b;
-#else
- if(a>b){
- if(c>b){
- if(c>a) b=a;
- else b=c;
- }
- }else{
- if(b>c){
- if(c>a) b=c;
- else b=a;
- }
- }
- return b;
-#endif
-}
-#endif
-
-#ifndef sign_extend
-static inline av_const int sign_extend(int val, unsigned bits)
-{
- return (val << (INT_BIT - bits)) >> (INT_BIT - bits);
-}
-#endif
-
-#ifndef zero_extend
-static inline av_const unsigned zero_extend(unsigned val, unsigned bits)
-{
- return (val << (INT_BIT - bits)) >> (INT_BIT - bits);
-}
-#endif
-
-#ifndef COPY3_IF_LT
-#define COPY3_IF_LT(x, y, a, b, c, d)\
-if ((y) < (x)) {\
- (x) = (y);\
- (a) = (b);\
- (c) = (d);\
-}
-#endif
-
-#ifndef NEG_SSR32
-# define NEG_SSR32(a,s) ((( int32_t)(a))>>(32-(s)))
-#endif
-
-#ifndef NEG_USR32
-# define NEG_USR32(a,s) (((uint32_t)(a))>>(32-(s)))
-#endif
-
-#endif /* AVCODEC_MATHOPS_H */
-
+++ /dev/null
-/*
- * Header file for hardcoded MDCT tables
- *
- * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <assert.h>
-// do not use libavutil/mathematics.h since this is compiled both
-// for the host and the target and config.h is only valid for the target
-#include <math.h>
-#include "../libavutil/attributes.h"
-
-#if !CONFIG_HARDCODED_TABLES
-SINETABLE( 32);
-SINETABLE( 64);
-SINETABLE( 128);
-SINETABLE( 256);
-SINETABLE( 512);
-SINETABLE(1024);
-SINETABLE(2048);
-SINETABLE(4096);
-#else
-#include "libavcodec/mdct_tables.h"
-#endif
-
-SINETABLE_CONST float * const ff_sine_windows[] = {
- NULL, NULL, NULL, NULL, NULL, // unused
- ff_sine_32 , ff_sine_64 ,
- ff_sine_128, ff_sine_256, ff_sine_512, ff_sine_1024, ff_sine_2048, ff_sine_4096
-};
-
-// Generate a sine window.
-av_cold void ff_sine_window_init(float *window, int n) {
- int i;
- for(i = 0; i < n; i++)
- window[i] = sinf((i + 0.5) * (M_PI / (2.0 * n)));
-}
-
-av_cold void ff_init_ff_sine_windows(int index) {
- assert(index >= 0 && index < FF_ARRAY_ELEMS(ff_sine_windows));
-#if !CONFIG_HARDCODED_TABLES
- ff_sine_window_init(ff_sine_windows[index], 1 << index);
-#endif
-}
+++ /dev/null
-/*
- * MJPEG encoder and decoder
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2003 Alex Beregszaszi
- * Copyright (c) 2003-2004 Michael Niedermayer
- *
- * Support for external huffman table, various fixes (AVID workaround),
- * aspecting, new decode_frame mechanism and apple mjpeg-b support
- * by Alex Beregszaszi
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MJPEG encoder and decoder.
- */
-
-#ifndef AVCODEC_MJPEG_H
-#define AVCODEC_MJPEG_H
-
-#include "avcodec.h"
-#include "put_bits.h"
-
-
-/* JPEG marker codes */
-typedef enum {
- /* start of frame */
- SOF0 = 0xc0, /* baseline */
- SOF1 = 0xc1, /* extended sequential, huffman */
- SOF2 = 0xc2, /* progressive, huffman */
- SOF3 = 0xc3, /* lossless, huffman */
-
- SOF5 = 0xc5, /* differential sequential, huffman */
- SOF6 = 0xc6, /* differential progressive, huffman */
- SOF7 = 0xc7, /* differential lossless, huffman */
- JPG = 0xc8, /* reserved for JPEG extension */
- SOF9 = 0xc9, /* extended sequential, arithmetic */
- SOF10 = 0xca, /* progressive, arithmetic */
- SOF11 = 0xcb, /* lossless, arithmetic */
-
- SOF13 = 0xcd, /* differential sequential, arithmetic */
- SOF14 = 0xce, /* differential progressive, arithmetic */
- SOF15 = 0xcf, /* differential lossless, arithmetic */
-
- DHT = 0xc4, /* define huffman tables */
-
- DAC = 0xcc, /* define arithmetic-coding conditioning */
-
- /* restart with modulo 8 count "m" */
- RST0 = 0xd0,
- RST1 = 0xd1,
- RST2 = 0xd2,
- RST3 = 0xd3,
- RST4 = 0xd4,
- RST5 = 0xd5,
- RST6 = 0xd6,
- RST7 = 0xd7,
-
- SOI = 0xd8, /* start of image */
- EOI = 0xd9, /* end of image */
- SOS = 0xda, /* start of scan */
- DQT = 0xdb, /* define quantization tables */
- DNL = 0xdc, /* define number of lines */
- DRI = 0xdd, /* define restart interval */
- DHP = 0xde, /* define hierarchical progression */
- EXP = 0xdf, /* expand reference components */
-
- APP0 = 0xe0,
- APP1 = 0xe1,
- APP2 = 0xe2,
- APP3 = 0xe3,
- APP4 = 0xe4,
- APP5 = 0xe5,
- APP6 = 0xe6,
- APP7 = 0xe7,
- APP8 = 0xe8,
- APP9 = 0xe9,
- APP10 = 0xea,
- APP11 = 0xeb,
- APP12 = 0xec,
- APP13 = 0xed,
- APP14 = 0xee,
- APP15 = 0xef,
-
- JPG0 = 0xf0,
- JPG1 = 0xf1,
- JPG2 = 0xf2,
- JPG3 = 0xf3,
- JPG4 = 0xf4,
- JPG5 = 0xf5,
- JPG6 = 0xf6,
- SOF48 = 0xf7, ///< JPEG-LS
- LSE = 0xf8, ///< JPEG-LS extension parameters
- JPG9 = 0xf9,
- JPG10 = 0xfa,
- JPG11 = 0xfb,
- JPG12 = 0xfc,
- JPG13 = 0xfd,
-
- COM = 0xfe, /* comment */
-
- TEM = 0x01, /* temporary private use for arithmetic coding */
-
- /* 0x02 -> 0xbf reserved */
-} JPEG_MARKER;
-
-static inline void put_marker(PutBitContext *p, int code)
-{
- put_bits(p, 8, 0xff);
- put_bits(p, 8, code);
-}
-
-#define PREDICT(ret, topleft, top, left, predictor)\
- switch(predictor){\
- case 1: ret= left; break;\
- case 2: ret= top; break;\
- case 3: ret= topleft; break;\
- case 4: ret= left + top - topleft; break;\
- case 5: ret= left + ((top - topleft)>>1); break;\
- case 6: ret= top + ((left - topleft)>>1); break;\
- default:\
- case 7: ret= (left + top)>>1; break;\
- }
-
-extern const uint8_t ff_mjpeg_bits_dc_luminance[];
-extern const uint8_t ff_mjpeg_val_dc[];
-
-extern const uint8_t ff_mjpeg_bits_dc_chrominance[];
-
-extern const uint8_t ff_mjpeg_bits_ac_luminance[];
-extern const uint8_t ff_mjpeg_val_ac_luminance[];
-
-extern const uint8_t ff_mjpeg_bits_ac_chrominance[];
-extern const uint8_t ff_mjpeg_val_ac_chrominance[];
-
-void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
- const uint8_t *bits_table,
- const uint8_t *val_table);
-
-#endif /* AVCODEC_MJPEG_H */
+++ /dev/null
-/*
- * MJPEG decoder
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2003 Alex Beregszaszi
- * Copyright (c) 2003-2004 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MJPEG decoder.
- */
-
-#ifndef AVCODEC_MJPEGDEC_H
-#define AVCODEC_MJPEGDEC_H
-
-#include "avcodec.h"
-#include "get_bits.h"
-#include "dsputil.h"
-
-#define MAX_COMPONENTS 4
-
-typedef struct MJpegDecodeContext {
- AVCodecContext *avctx;
- GetBitContext gb;
-
- int start_code; /* current start code */
- int buffer_size;
- uint8_t *buffer;
-
- int16_t quant_matrixes[4][64];
- VLC vlcs[2][4];
- int qscale[4]; ///< quantizer scale calculated from quant_matrixes
-
- int org_height; /* size given at codec init */
- int first_picture; /* true if decoding first picture */
- int interlaced; /* true if interlaced */
- int bottom_field; /* true if bottom field */
- int lossless;
- int ls;
- int progressive;
- int rgb;
- int rct; /* standard rct */
- int pegasus_rct; /* pegasus reversible colorspace transform */
- int bits; /* bits per component */
-
- int maxval;
- int near; ///< near lossless bound (si 0 for lossless)
- int t1,t2,t3;
- int reset; ///< context halfing intervall ?rename
-
- int width, height;
- int mb_width, mb_height;
- int nb_components;
- int block_stride[MAX_COMPONENTS];
- int component_id[MAX_COMPONENTS];
- int h_count[MAX_COMPONENTS]; /* horizontal and vertical count for each component */
- int v_count[MAX_COMPONENTS];
- int comp_index[MAX_COMPONENTS];
- int dc_index[MAX_COMPONENTS];
- int ac_index[MAX_COMPONENTS];
- int nb_blocks[MAX_COMPONENTS];
- int h_scount[MAX_COMPONENTS];
- int v_scount[MAX_COMPONENTS];
- int h_max, v_max; /* maximum h and v counts */
- int quant_index[4]; /* quant table index for each component */
- int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */
- AVFrame picture; /* picture structure */
- int got_picture; ///< we found a SOF and picture is valid, too.
- int linesize[MAX_COMPONENTS]; ///< linesize << interlaced
- int8_t *qscale_table;
- DECLARE_ALIGNED(16, DCTELEM, block)[64];
- DCTELEM (*blocks[MAX_COMPONENTS])[64]; ///< intermediate sums (progressive mode)
- uint8_t *last_nnz[MAX_COMPONENTS];
- uint64_t coefs_finished[MAX_COMPONENTS]; ///< bitmask of which coefs have been completely decoded (progressive mode)
- ScanTable scantable;
- DSPContext dsp;
-
- int restart_interval;
- int restart_count;
-
- int buggy_avid;
- int cs_itu601;
- int interlace_polarity;
-
- int mjpb_skiptosod;
-
- int cur_scan; /* current scan, used by JPEG-LS */
- int flipped; /* true if picture is flipped */
-
- uint16_t (*ljpeg_buffer)[4];
- unsigned int ljpeg_buffer_size;
-} MJpegDecodeContext;
-
-int ff_mjpeg_decode_init(AVCodecContext *avctx);
-int ff_mjpeg_decode_end(AVCodecContext *avctx);
-int ff_mjpeg_decode_frame(AVCodecContext *avctx,
- void *data, int *data_size,
- AVPacket *avpkt);
-int ff_mjpeg_decode_dqt(MJpegDecodeContext *s);
-int ff_mjpeg_decode_dht(MJpegDecodeContext *s);
-int ff_mjpeg_decode_sof(MJpegDecodeContext *s);
-int ff_mjpeg_decode_sos(MJpegDecodeContext *s);
-
-#endif /* AVCODEC_MJPEGDEC_H */
+++ /dev/null
-/*
- * MJPEG encoder
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2003 Alex Beregszaszi
- * Copyright (c) 2003-2004 Michael Niedermayer
- *
- * Support for external huffman table, various fixes (AVID workaround),
- * aspecting, new decode_frame mechanism and apple mjpeg-b support
- * by Alex Beregszaszi
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MJPEG encoder.
- */
-
-#ifndef AVCODEC_MJPEGENC_H
-#define AVCODEC_MJPEGENC_H
-
-#include "dsputil.h"
-#include "mpegvideo.h"
-
-typedef struct MJpegContext {
- uint8_t huff_size_dc_luminance[12]; //FIXME use array [3] instead of lumi / chrom, for easier addressing
- uint16_t huff_code_dc_luminance[12];
- uint8_t huff_size_dc_chrominance[12];
- uint16_t huff_code_dc_chrominance[12];
-
- uint8_t huff_size_ac_luminance[256];
- uint16_t huff_code_ac_luminance[256];
- uint8_t huff_size_ac_chrominance[256];
- uint16_t huff_code_ac_chrominance[256];
-} MJpegContext;
-
-int ff_mjpeg_encode_init(MpegEncContext *s);
-void ff_mjpeg_encode_close(MpegEncContext *s);
-void ff_mjpeg_encode_picture_header(MpegEncContext *s);
-void ff_mjpeg_encode_picture_trailer(MpegEncContext *s);
-void ff_mjpeg_encode_stuffing(PutBitContext *pbc);
-void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
- uint8_t *huff_size, uint16_t *huff_code);
-void ff_mjpeg_encode_mb(MpegEncContext *s, DCTELEM block[6][64]);
-
-#endif /* AVCODEC_MJPEGENC_H */
+++ /dev/null
-/*
- * MLP codec common header file
- * Copyright (c) 2007-2008 Ian Caulfield
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MLP_H
-#define AVCODEC_MLP_H
-
-#include <stdint.h>
-
-#include "avcodec.h"
-
-/** Last possible matrix channel for each codec */
-#define MAX_MATRIX_CHANNEL_MLP 5
-#define MAX_MATRIX_CHANNEL_TRUEHD 7
-/** Maximum number of channels in a valid stream.
- * MLP : 5.1 + 2 noise channels -> 8 channels
- * TrueHD: 7.1 -> 8 channels
- */
-#define MAX_CHANNELS 8
-
-/** Maximum number of matrices used in decoding; most streams have one matrix
- * per output channel, but some rematrix a channel (usually 0) more than once.
- */
-#define MAX_MATRICES_MLP 6
-#define MAX_MATRICES_TRUEHD 8
-#define MAX_MATRICES 8
-
-/** Maximum number of substreams that can be decoded.
- * MLP's limit is 2. TrueHD supports at least up to 3.
- */
-#define MAX_SUBSTREAMS 3
-
-/** which multiple of 48000 the maximum sample rate is */
-#define MAX_RATEFACTOR 4
-/** maximum sample frequency seen in files */
-#define MAX_SAMPLERATE (MAX_RATEFACTOR * 48000)
-
-/** maximum number of audio samples within one access unit */
-#define MAX_BLOCKSIZE (40 * MAX_RATEFACTOR)
-/** next power of two greater than MAX_BLOCKSIZE */
-#define MAX_BLOCKSIZE_POW2 (64 * MAX_RATEFACTOR)
-
-/** number of allowed filters */
-#define NUM_FILTERS 2
-
-/** The maximum number of taps in IIR and FIR filters. */
-#define MAX_FIR_ORDER 8
-#define MAX_IIR_ORDER 4
-
-/** Code that signals end of a stream. */
-#define END_OF_STREAM 0xd234d234
-
-#define FIR 0
-#define IIR 1
-
-/** filter data */
-typedef struct {
- uint8_t order; ///< number of taps in filter
- uint8_t shift; ///< Right shift to apply to output of filter.
-
- int32_t state[MAX_FIR_ORDER];
-} FilterParams;
-
-/** sample data coding information */
-typedef struct {
- FilterParams filter_params[NUM_FILTERS];
- int32_t coeff[NUM_FILTERS][MAX_FIR_ORDER];
-
- int16_t huff_offset; ///< Offset to apply to residual values.
- int32_t sign_huff_offset; ///< sign/rounding-corrected version of huff_offset
- uint8_t codebook; ///< Which VLC codebook to use to read residuals.
- uint8_t huff_lsbs; ///< Size of residual suffix not encoded using VLC.
-} ChannelParams;
-
-/** Tables defining the Huffman codes.
- * There are three entropy coding methods used in MLP (four if you count
- * "none" as a method). These use the same sequences for codes starting with
- * 00 or 01, but have different codes starting with 1.
- */
-extern const uint8_t ff_mlp_huffman_tables[3][18][2];
-
-/** MLP uses checksums that seem to be based on the standard CRC algorithm, but
- * are not (in implementation terms, the table lookup and XOR are reversed).
- * We can implement this behavior using a standard av_crc on all but the
- * last element, then XOR that with the last element.
- */
-uint8_t ff_mlp_checksum8 (const uint8_t *buf, unsigned int buf_size);
-uint16_t ff_mlp_checksum16(const uint8_t *buf, unsigned int buf_size);
-
-/** Calculate an 8-bit checksum over a restart header -- a non-multiple-of-8
- * number of bits, starting two bits into the first byte of buf.
- */
-uint8_t ff_mlp_restart_checksum(const uint8_t *buf, unsigned int bit_size);
-
-/** XOR together all the bytes of a buffer.
- * Does this belong in dspcontext?
- */
-uint8_t ff_mlp_calculate_parity(const uint8_t *buf, unsigned int buf_size);
-
-void ff_mlp_init_crc(void);
-
-/** XOR four bytes into one. */
-static inline uint8_t xor_32_to_8(uint32_t value)
-{
- value ^= value >> 16;
- value ^= value >> 8;
- return value;
-}
-
-#endif /* AVCODEC_MLP_H */
+++ /dev/null
-/*
- * MLP parser prototypes
- * Copyright (c) 2007 Ian Caulfield
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MLP parser prototypes
- */
-
-#ifndef AVCODEC_MLP_PARSER_H
-#define AVCODEC_MLP_PARSER_H
-
-#include "get_bits.h"
-
-typedef struct MLPHeaderInfo
-{
- int stream_type; ///< 0xBB for MLP, 0xBA for TrueHD
-
- int group1_bits; ///< The bit depth of the first substream
- int group2_bits; ///< Bit depth of the second substream (MLP only)
-
- int group1_samplerate; ///< Sample rate of first substream
- int group2_samplerate; ///< Sample rate of second substream (MLP only)
-
- int channels_mlp; ///< Channel arrangement for MLP streams
- int channels_thd_stream1; ///< Channel arrangement for substream 1 of TrueHD streams (5.1)
- int channels_thd_stream2; ///< Channel arrangement for substream 2 of TrueHD streams (7.1)
-
- int access_unit_size; ///< Number of samples per coded frame
- int access_unit_size_pow2; ///< Next power of two above number of samples per frame
-
- int is_vbr; ///< Stream is VBR instead of CBR
- int peak_bitrate; ///< Peak bitrate for VBR, actual bitrate (==peak) for CBR
-
- int num_substreams; ///< Number of substreams within stream
-} MLPHeaderInfo;
-
-
-int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb);
-
-#endif /* AVCODEC_MLP_PARSER_H */
-
+++ /dev/null
-/*
- * Header file for hardcoded motionpixels RGB to YUV table
- *
- * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef MOTIONPIXELS_TABLEGEN_H
-#define MOTIONPIXELS_TABLEGEN_H
-
-#include <stdint.h>
-
-typedef struct YuvPixel {
- int8_t y, v, u;
-} YuvPixel;
-
-static int mp_yuv_to_rgb(int y, int v, int u, int clip_rgb) {
- static const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
- int r, g, b;
-
- r = (1000 * y + 701 * v) / 1000;
- g = (1000 * y - 357 * v - 172 * u) / 1000;
- b = (1000 * y + 886 * u) / 1000;
- if (clip_rgb)
- return ((cm[r * 8] & 0xF8) << 7) | ((cm[g * 8] & 0xF8) << 2) | (cm[b * 8] >> 3);
- if ((unsigned)r < 32 && (unsigned)g < 32 && (unsigned)b < 32)
- return (r << 10) | (g << 5) | b;
- return 1 << 15;
-}
-
-#if CONFIG_HARDCODED_TABLES
-#define motionpixels_tableinit()
-#include "libavcodec/motionpixels_tables.h"
-#else
-static YuvPixel mp_rgb_yuv_table[1 << 15];
-
-static void mp_set_zero_yuv(YuvPixel *p)
-{
- int i, j;
-
- for (i = 0; i < 31; ++i) {
- for (j = 31; j > i; --j)
- if (!(p[j].u | p[j].v | p[j].y))
- p[j] = p[j - 1];
- for (j = 0; j < 31 - i; ++j)
- if (!(p[j].u | p[j].v | p[j].y))
- p[j] = p[j + 1];
- }
-}
-
-static void mp_build_rgb_yuv_table(YuvPixel *p)
-{
- int y, v, u, i;
-
- for (y = 0; y <= 31; ++y)
- for (v = -31; v <= 31; ++v)
- for (u = -31; u <= 31; ++u) {
- i = mp_yuv_to_rgb(y, v, u, 0);
- if (i < (1 << 15) && !(p[i].u | p[i].v | p[i].y)) {
- p[i].y = y;
- p[i].v = v;
- p[i].u = u;
- }
- }
- for (i = 0; i < 1024; ++i)
- mp_set_zero_yuv(p + i * 32);
-}
-
-static void motionpixels_tableinit(void)
-{
- if (!mp_rgb_yuv_table[0].u)
- mp_build_rgb_yuv_table(mp_rgb_yuv_table);
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* MOTIONPIXELS_TABLEGEN_H */
+++ /dev/null
-/*
- * Musepack decoder
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Musepack decoder
- * MPEG Audio Layer 1/2 -like codec with frames of 1152 samples
- * divided into 32 subbands.
- */
-
-#ifndef AVCODEC_MPC_H
-#define AVCODEC_MPC_H
-
-#include "libavutil/lfg.h"
-#include "avcodec.h"
-#include "get_bits.h"
-#include "dsputil.h"
-#include "mpegaudio.h"
-
-#include "mpcdata.h"
-
-#define BANDS 32
-#define SAMPLES_PER_BAND 36
-#define MPC_FRAME_SIZE (BANDS * SAMPLES_PER_BAND)
-
-/** Subband structure - hold all variables for each subband */
-typedef struct {
- int msf; ///< mid-stereo flag
- int res[2];
- int scfi[2];
- int scf_idx[2][3];
- int Q[2];
-}Band;
-
-typedef struct {
- DSPContext dsp;
- GetBitContext gb;
- int IS, MSS, gapless;
- int lastframelen;
- int maxbands, last_max_band;
- int last_bits_used;
- int oldDSCF[2][BANDS];
- Band bands[BANDS];
- int Q[2][MPC_FRAME_SIZE];
- int cur_frame, frames;
- uint8_t *bits;
- int buf_size;
- AVLFG rnd;
- int frames_to_skip;
- /* for synthesis */
- DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512*2];
- int synth_buf_offset[MPA_MAX_CHANNELS];
- DECLARE_ALIGNED(16, int32_t, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
-} MPCContext;
-
-void ff_mpc_init(void);
-void ff_mpc_dequantize_and_synth(MPCContext *c, int maxband, void *dst);
-
-#endif /* AVCODEC_MPC_H */
+++ /dev/null
-/*
- * Musepack decoder
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPC7DATA_H
-#define AVCODEC_MPC7DATA_H
-
-#include <stdint.h>
-
-static const int8_t mpc7_idx30[] = { -1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1};
-static const int8_t mpc7_idx31[] = { -1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1};
-static const int8_t mpc7_idx32[] = { -1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
-static const int8_t mpc7_idx50[] = { -2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2};
-static const int8_t mpc7_idx51[] = { -2,-2,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2};
-
-#define MPC7_SCFI_SIZE 4
-#define MPC7_SCFI_BITS 3
-static const uint8_t mpc7_scfi[MPC7_SCFI_SIZE * 2] = {
- 0x2, 3, 0x1, 1, 0x3, 3, 0x0, 2
-};
-
-#define MPC7_DSCF_SIZE 16
-#define MPC7_DSCF_BITS 6
-static const uint8_t mpc7_dscf[MPC7_DSCF_SIZE * 2] = {
- 0x20, 6, 0x04, 5, 0x11, 5, 0x1E, 5, 0x0D, 4, 0x00, 3, 0x03, 3, 0x09, 4,
- 0x05, 3, 0x02, 3, 0x0E, 4, 0x03, 4, 0x1F, 5, 0x05, 5, 0x21, 6, 0x0C, 4
-};
-
-#define MPC7_HDR_SIZE 10
-#define MPC7_HDR_BITS 9
-static const uint8_t mpc7_hdr[MPC7_HDR_SIZE * 2] = {
- 0x5C, 8, 0x2F, 7, 0x0A, 5, 0x04, 4, 0x00, 2,
- 0x01, 1, 0x03, 3, 0x16, 6, 0xBB, 9, 0xBA, 9
-};
-
-#define MPC7_QUANT_VLC_TABLES 7
-static const uint8_t mpc7_quant_vlc_sizes[MPC7_QUANT_VLC_TABLES * 2] = {
- 27, 25, 7, 9, 15, 31, 63
-};
-
-static const uint8_t mpc7_quant_vlc_off[MPC7_QUANT_VLC_TABLES] = {
- 0, 0, 3, 4, 7, 15, 31
-};
-
-static const uint16_t mpc7_quant_vlc[MPC7_QUANT_VLC_TABLES][2][64 * 2] = {
-{
- {
- 0x0036, 6, 0x0009, 5, 0x0020, 6, 0x0005, 5, 0x000A, 4, 0x0007, 5,
- 0x0034, 6, 0x0000, 5, 0x0023, 6, 0x000A, 5, 0x0006, 4, 0x0004, 5,
- 0x000B, 4, 0x0007, 3, 0x000C, 4, 0x0003, 5, 0x0007, 4, 0x000B, 5,
- 0x0022, 6, 0x0001, 5, 0x0035, 6, 0x0006, 5, 0x0009, 4, 0x0002, 5,
- 0x0021, 6, 0x0008, 5, 0x0037, 6
- },
- {
- 0x0067, 8, 0x003E, 7, 0x00E1, 9, 0x0037, 7, 0x0003, 4, 0x0034, 7,
- 0x0065, 8, 0x003C, 7, 0x00E3, 9, 0x0018, 6, 0x0000, 4, 0x003D, 7,
- 0x0004, 4, 0x0001, 1, 0x0005, 4, 0x003F, 7, 0x0001, 4, 0x003B, 7,
- 0x00E2, 9, 0x0039, 7, 0x0064, 8, 0x0035, 7, 0x0002, 4, 0x0036, 7,
- 0x00E0, 9, 0x003A, 7, 0x0066, 8
- }
-},
-{
- {
- 0x0059, 7, 0x002F, 6, 0x000F, 5, 0x0000, 5, 0x005B, 7, 0x0004, 5,
- 0x0006, 4, 0x000D, 4, 0x0004, 4, 0x0005, 5, 0x0014, 5, 0x000C, 4,
- 0x0004, 3, 0x000F, 4, 0x000E, 5, 0x0003, 5, 0x0003, 4, 0x000E, 4,
- 0x0005, 4, 0x0001, 5, 0x005A, 7, 0x0002, 5, 0x0015, 5, 0x002E, 6,
- 0x0058, 7
- },
- {
- 0x0399, 10, 0x0071, 7, 0x0033, 6, 0x00E7, 8, 0x039A, 10, 0x0068, 7,
- 0x001E, 5, 0x0000, 3, 0x001D, 5, 0x0069, 7, 0x0032, 6, 0x0001, 3,
- 0x0002, 2, 0x0003, 3, 0x0031, 6, 0x006B, 7, 0x001B, 5, 0x0002, 3,
- 0x001F, 5, 0x0070, 7, 0x0398, 10, 0x006A, 7, 0x0030, 6, 0x0072, 7,
- 0x039B, 10
- }
-},
-{
- {
- 0x000C, 4, 0x0004, 3, 0x0000, 2, 0x0001, 2, 0x0007, 3, 0x0005, 3, 0x000D, 4
- },
- {
- 0x0004, 5, 0x0003, 4, 0x0002, 2, 0x0003, 2, 0x0001, 2, 0x0000, 3, 0x0005, 5
- }
-},
-{
- {
- 0x0005, 4, 0x0000, 3, 0x0004, 3, 0x0006, 3, 0x0007, 3, 0x0005, 3, 0x0003, 3, 0x0001, 3, 0x0004, 4
- },
- {
- 0x0009, 5, 0x000C, 4, 0x0003, 3, 0x0000, 2, 0x0002, 2, 0x0007, 3, 0x000D, 4, 0x0005, 4, 0x0008, 5
- }
-},
-{
- {
- 0x0039, 6, 0x0017, 5, 0x0008, 4, 0x000A, 4, 0x000D, 4, 0x0000, 3,
- 0x0002, 3, 0x0003, 3, 0x0001, 3, 0x000F, 4, 0x000C, 4, 0x0009, 4,
- 0x001D, 5, 0x0016, 5, 0x0038, 6,
- },
- {
- 0x00E5, 8, 0x0038, 6, 0x0007, 5, 0x0002, 4, 0x0000, 3, 0x0003, 3,
- 0x0005, 3, 0x0006, 3, 0x0004, 3, 0x0002, 3, 0x000F, 4, 0x001D, 5,
- 0x0006, 5, 0x0073, 7, 0x00E4, 8,
- },
-},
-{
- {
- 0x0041, 7, 0x0006, 6, 0x002C, 6, 0x002D, 6, 0x003B, 6, 0x000D, 5,
- 0x0011, 5, 0x0013, 5, 0x0017, 5, 0x0015, 5, 0x001A, 5, 0x001E, 5,
- 0x0000, 4, 0x0002, 4, 0x0005, 4, 0x0007, 4, 0x0003, 4, 0x0004, 4,
- 0x001F, 5, 0x001C, 5, 0x0019, 5, 0x001B, 5, 0x0018, 5, 0x0014, 5,
- 0x0012, 5, 0x000C, 5, 0x0002, 5, 0x003A, 6, 0x0021, 6, 0x0007, 6,
- 0x0040, 7
- },
- {
- 0x1948, 13, 0x194A, 13, 0x0328, 10, 0x0195, 9, 0x00CB, 8, 0x0066, 7,
- 0x0031, 6, 0x0009, 5, 0x000F, 5, 0x001F, 5, 0x0002, 4, 0x0006, 4,
- 0x0008, 4, 0x000B, 4, 0x000D, 4, 0x0000, 3, 0x000E, 4, 0x000A, 4,
- 0x0009, 4, 0x0005, 4, 0x0003, 4, 0x001E, 5, 0x000E, 5, 0x0008, 5,
- 0x0030, 6, 0x0067, 7, 0x00C9, 8, 0x00C8, 8, 0x0653, 11, 0x1949, 13,
- 0x194B, 13
- }
-},
-{
- {
- 0x0067, 8, 0x0099, 8, 0x00B5, 8, 0x00E9, 8, 0x0040, 7, 0x0041, 7,
- 0x004D, 7, 0x0051, 7, 0x005B, 7, 0x0071, 7, 0x0070, 7, 0x0018, 6,
- 0x001D, 6, 0x0023, 6, 0x0025, 6, 0x0029, 6, 0x002C, 6, 0x002E, 6,
- 0x0033, 6, 0x0031, 6, 0x0036, 6, 0x0037, 6, 0x0039, 6, 0x003C, 6,
- 0x0000, 5, 0x0002, 5, 0x000A, 5, 0x0005, 5, 0x0009, 5, 0x0006, 5,
- 0x000D, 5, 0x0007, 5, 0x000B, 5, 0x000F, 5, 0x0008, 5, 0x0004, 5,
- 0x0003, 5, 0x0001, 5, 0x003F, 6, 0x003E, 6, 0x003D, 6, 0x0035, 6,
- 0x003B, 6, 0x0034, 6, 0x0030, 6, 0x002F, 6, 0x002B, 6, 0x002A, 6,
- 0x0027, 6, 0x0024, 6, 0x0021, 6, 0x001C, 6, 0x0075, 7, 0x0065, 7,
- 0x0064, 7, 0x0050, 7, 0x0045, 7, 0x0044, 7, 0x0032, 7, 0x00E8, 8,
- 0x00B4, 8, 0x0098, 8, 0x0066, 8
- },
- {
- 0x37A4, 14, 0x37AD, 14, 0x37A6, 14, 0x37AE, 14, 0x0DEA, 12, 0x02F0, 10,
- 0x02F1, 10, 0x00A0, 9, 0x00A2, 9, 0x01BC, 9, 0x007A, 8, 0x00DF, 8,
- 0x003C, 7, 0x0049, 7, 0x006E, 7, 0x000E, 6, 0x0018, 6, 0x0019, 6,
- 0x0022, 6, 0x0025, 6, 0x0036, 6, 0x0003, 5, 0x0009, 5, 0x000B, 5,
- 0x0010, 5, 0x0013, 5, 0x0015, 5, 0x0018, 5, 0x001A, 5, 0x001D, 5,
- 0x001F, 5, 0x0002, 4, 0x0000, 4, 0x001E, 5, 0x001C, 5, 0x0019, 5,
- 0x0016, 5, 0x0014, 5, 0x000E, 5, 0x000D, 5, 0x0008, 5, 0x0006, 5,
- 0x0002, 5, 0x002E, 6, 0x0023, 6, 0x001F, 6, 0x0015, 6, 0x000F, 6,
- 0x005F, 7, 0x0048, 7, 0x0029, 7, 0x00BD, 8, 0x007B, 8, 0x0179, 9,
- 0x00A1, 9, 0x037B, 10, 0x0147, 10, 0x0146, 10, 0x0DE8, 12, 0x37AF, 14,
- 0x37A7, 14, 0x37AC, 14, 0x37A5, 14
- }
-}
-};
-
-#endif /* AVCODEC_MPC7DATA_H */
+++ /dev/null
-/*
- * Musepack SV8 decoder
- * Copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPC8DATA_H
-#define AVCODEC_MPC8DATA_H
-
-#include <stdint.h>
-
-static const int8_t mpc8_idx50[125] = {
- -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2,
- -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2,
- -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2,
- -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2,
- -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2
-};
-static const int8_t mpc8_idx51[125] = {
- -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
-};
-static const int8_t mpc8_idx52[125] = {
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-};
-
-static const unsigned int mpc8_thres[] = {0, 0, 3, 0, 0, 1, 3, 4, 8};
-static const int8_t mpc8_huffq2[5*5*5] = {
- 6, 5, 4, 5, 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6, 5, 4, 5,
- 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3,
- 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 2, 3, 4, 3,
- 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 3, 4, 5,
- 4, 3, 4, 5, 6, 5, 4, 5, 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5,
- 6, 5, 4, 5, 6
-};
-
-
-static const uint32_t mpc8_cnk[16][32] =
-{
- {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
- {0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465},
- {0, 0, 0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140, 1330, 1540, 1771, 2024, 2300, 2600, 2925, 3276, 3654, 4060, 4495},
- {0, 0, 0, 0, 1, 5, 15, 35, 70, 126, 210, 330, 495, 715, 1001, 1365, 1820, 2380, 3060, 3876, 4845, 5985, 7315, 8855, 10626, 12650, 14950, 17550, 20475, 23751, 27405, 31465},
- {0, 0, 0, 0, 0, 1, 6, 21, 56, 126, 252, 462, 792, 1287, 2002, 3003, 4368, 6188, 8568, 11628, 15504, 20349, 26334, 33649, 42504, 53130, 65780, 80730, 98280, 118755, 142506, 169911},
- {0, 0, 0, 0, 0, 0, 1, 7, 28, 84, 210, 462, 924, 1716, 3003, 5005, 8008, 12376, 18564, 27132, 38760, 54264, 74613, 100947, 134596, 177100, 230230, 296010, 376740, 475020, 593775, 736281},
- {0, 0, 0, 0, 0, 0, 0, 1, 8, 36, 120, 330, 792, 1716, 3432, 6435, 11440, 19448, 31824, 50388, 77520, 116280, 170544, 245157, 346104, 480700, 657800, 888030, 1184040, 1560780, 2035800, 2629575},
- {0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 45, 165, 495, 1287, 3003, 6435, 12870, 24310, 43758, 75582, 125970, 203490, 319770, 490314, 735471, 1081575, 1562275, 2220075, 3108105, 4292145, 5852925, 7888725},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 55, 220, 715, 2002, 5005, 11440, 24310, 48620, 92378, 167960, 293930, 497420, 817190, 1307504, 2042975, 3124550, 4686825, 6906900, 10015005, 14307150, 20160075},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 66, 286, 1001, 3003, 8008, 19448, 43758, 92378, 184756, 352716, 646646, 1144066, 1961256, 3268760, 5311735, 8436285, 13123110, 20030010, 30045015, 44352165},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 78, 364, 1365, 4368, 12376, 31824, 75582, 167960, 352716, 705432, 1352078, 2496144, 4457400, 7726160, 13037895, 21474180, 34597290, 54627300, 84672315},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 91, 455, 1820, 6188, 18564, 50388, 125970, 293930, 646646, 1352078, 2704156, 5200300, 9657700, 17383860, 30421755, 51895935, 86493225, 141120525},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 105, 560, 2380, 8568, 27132, 77520, 203490, 497420, 1144066, 2496144, 5200300, 10400600, 20058300, 37442160, 67863915, 119759850, 206253075},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 120, 680, 3060, 11628, 38760, 116280, 319770, 817190, 1961256, 4457400, 9657700, 20058300, 40116600, 77558760, 145422675, 265182525},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 136, 816, 3876, 15504, 54264, 170544, 490314, 1307504, 3268760, 7726160, 17383860, 37442160, 77558760, 155117520, 300540195},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 153, 969, 4845, 20349, 74613, 245157, 735471, 2042975, 5311735, 13037895, 30421755, 67863915, 145422675, 300540195}
-};
-
-static const uint8_t mpc8_cnk_len[16][33] =
-{
- {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6},
- {0, 0, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0},
- {0, 0, 0, 2, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 0},
- {0, 0, 0, 0, 3, 4, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 0},
- {0, 0, 0, 0, 0, 3, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 0},
- {0, 0, 0, 0, 0, 0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 0},
- {0, 0, 0, 0, 0, 0, 0, 3, 6, 7, 9, 10, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 22, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 23, 24, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 21, 22, 23, 23, 24, 24, 25, 25, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 24, 25, 25, 26, 26, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 26, 26, 27, 27, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 11, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 25, 26, 27, 28, 28, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 10, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 27, 28, 29, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 10, 12, 14, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 28, 29, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 10, 12, 14, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 10, 13, 15, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 0}
-
-};
-
-static const uint32_t mpc8_cnk_lost[16][33] =
-{
- {0, 0, 1, 0, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 31},
- {0, 0, 1, 2, 6, 1, 11, 4, 28, 19, 9, 62, 50, 37, 23, 8, 120, 103, 85, 66, 46, 25, 3, 236, 212, 187, 161, 134, 106, 77, 47, 16, 0},
- {0, 0, 0, 0, 6, 12, 29, 8, 44, 8, 91, 36, 226, 148, 57, 464, 344, 208, 55, 908, 718, 508, 277, 24, 1796, 1496, 1171, 820, 442, 36, 3697, 3232, 0},
- {0, 0, 0, 0, 3, 1, 29, 58, 2, 46, 182, 17, 309, 23, 683, 228, 1716, 1036, 220, 3347, 2207, 877, 7529, 5758, 3734, 1434, 15218, 12293, 9017, 5363, 1303, 29576, 0},
- {0, 0, 0, 0, 0, 2, 11, 8, 2, 4, 50, 232, 761, 46, 1093, 3824, 2004, 7816, 4756, 880, 12419, 6434, 31887, 23032, 12406, 65292, 50342, 32792, 12317, 119638, 92233, 60768, 0},
- {0, 0, 0, 0, 0, 0, 1, 4, 44, 46, 50, 100, 332, 1093, 3187, 184, 4008, 14204, 5636, 26776, 11272, 56459, 30125, 127548, 85044, 31914, 228278, 147548, 49268, 454801, 312295, 142384, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 28, 8, 182, 232, 332, 664, 1757, 4944, 13320, 944, 15148, 53552, 14792, 91600, 16987, 178184, 43588, 390776, 160546, 913112, 536372, 61352, 1564729, 828448, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 7, 19, 91, 17, 761, 1093, 1757, 3514, 8458, 21778, 55490, 5102, 58654, 204518, 33974, 313105, 1015577, 534877, 1974229, 1086199, 4096463, 2535683, 499883, 6258916, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9, 36, 309, 46, 3187, 4944, 8458, 16916, 38694, 94184, 230358, 26868, 231386, 789648, 54177, 1069754, 3701783, 1481708, 6762211, 2470066, 13394357, 5505632, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 62, 226, 23, 1093, 184, 13320, 21778, 38694, 77388, 171572, 401930, 953086, 135896, 925544, 3076873, 8340931, 3654106, 13524422, 3509417, 22756699, 2596624, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 50, 148, 683, 3824, 4008, 944, 55490, 94184, 171572, 343144, 745074, 1698160, 3931208, 662448, 3739321, 12080252, 32511574, 12481564, 49545413, 5193248, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 57, 228, 2004, 14204, 15148, 5102, 230358, 401930, 745074, 1490148, 3188308, 7119516, 16170572, 3132677, 15212929, 47724503, 127314931, 42642616, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23, 464, 1716, 7816, 5636, 53552, 58654, 26868, 953086, 1698160, 3188308, 6376616, 13496132, 29666704, 66353813, 14457878, 62182381, 189497312, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 344, 1036, 4756, 26776, 14792, 204518, 231386, 135896, 3931208, 7119516, 13496132, 26992264, 56658968, 123012781, 3252931, 65435312, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 208, 220, 880, 11272, 91600, 33974, 789648, 925544, 662448, 16170572, 29666704, 56658968, 113317936, 236330717, 508019104, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 103, 55, 3347, 12419, 56459, 16987, 313105, 54177, 3076873, 3739321, 3132677, 66353813, 123012781, 236330717, 0}
-};
-
-#endif /* AVCODEC_MPC8DATA_H */
+++ /dev/null
-/*
- * Musepack SV8 decoder
- * Copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPC8HUFF_H
-#define AVCODEC_MPC8HUFF_H
-
-#include <stdint.h>
-
-#define MPC8_BANDS_SIZE 33
-#define MPC8_BANDS_BITS 9
-
-static const uint8_t mpc8_bands_codes[MPC8_BANDS_SIZE] = {
- 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04,
- 0x05, 0x06, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05,
- 0x06, 0x07, 0x08, 0x01, 0x09, 0x0A, 0x0B, 0x07,
- 0x08, 0x09, 0x06, 0x07, 0x05, 0x05, 0x03, 0x03,
- 0x01,
-};
-static const int8_t mpc8_bands_bits[MPC8_BANDS_SIZE] = {
- 1, 3, 5, 6, 7, 8, 8, 9,
- 10, 11, 12, 12, 12, 13, 12, 12,
- 12, 12, 12, 13, 12, 12, 12, 11,
- 11, 11, 10, 10, 9, 8, 6, 5,
- 2,
-};
-
-#define MPC8_SCFI0_SIZE 4
-#define MPC8_SCFI0_BITS 3
-
-static const uint8_t mpc8_scfi0_codes[MPC8_SCFI0_SIZE] = {
- 0x00, 0x01, 0x01, 0x01,
-};
-static const int8_t mpc8_scfi0_bits[MPC8_SCFI0_SIZE] = {
- 3, 3, 1, 2,
-};
-
-#define MPC8_SCFI1_SIZE 16
-#define MPC8_SCFI1_BITS 7
-
-static const uint8_t mpc8_scfi1_codes[MPC8_SCFI1_SIZE] = {
- 0x01, 0x00, 0x02, 0x03, 0x01, 0x03, 0x04, 0x05,
- 0x04, 0x06, 0x02, 0x02, 0x05, 0x07, 0x03, 0x03,
-
-};
-static const int8_t mpc8_scfi1_bits[MPC8_SCFI1_SIZE] = {
- 6, 7, 6, 6, 7, 5, 5, 5,
- 6, 5, 2, 3, 6, 5, 3, 2,
-
-};
-
-#define MPC8_DSCF0_SIZE 64
-#define MPC8_DSCF0_BITS 9
-
-static const uint8_t mpc8_dscf0_codes[MPC8_DSCF0_SIZE] = {
- 0x03, 0x04, 0x05, 0x04, 0x05, 0x06, 0x05, 0x06,
- 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x0A, 0x07,
- 0x08, 0x09, 0x0A, 0x07, 0x08, 0x09, 0x0A, 0x06,
- 0x07, 0x05, 0x04, 0x05, 0x06, 0x06, 0x07, 0x0A,
- 0x08, 0x05, 0x06, 0x07, 0x09, 0x07, 0x08, 0x09,
- 0x0B, 0x0B, 0x0C, 0x0D, 0x0B, 0x0C, 0x0D, 0x0B,
- 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x06, 0x07, 0x03,
- 0x04, 0x05, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-};
-static const int8_t mpc8_dscf0_bits[MPC8_DSCF0_SIZE] = {
- 12, 12, 12, 11, 11, 11, 10, 10,
- 10, 10, 10, 9, 9, 9, 9, 8,
- 8, 8, 8, 7, 7, 7, 7, 6,
- 6, 5, 4, 4, 5, 4, 4, 10,
- 4, 3, 3, 3, 4, 5, 6, 6,
- 7, 8, 8, 8, 9, 9, 9, 10,
- 10, 10, 11, 11, 11, 12, 12, 13,
- 13, 13, 14, 14, 14, 14, 14, 14,
-
-};
-
-#define MPC8_DSCF1_SIZE 65
-#define MPC8_DSCF1_BITS 9
-
-static const uint8_t mpc8_dscf1_codes[MPC8_DSCF1_SIZE] = {
- 0x00, 0x03, 0x04, 0x04, 0x05, 0x06, 0x05, 0x06,
- 0x07, 0x08, 0x07, 0x08, 0x09, 0x0A, 0x07, 0x08,
- 0x09, 0x0A, 0x07, 0x08, 0x09, 0x06, 0x07, 0x05,
- 0x06, 0x04, 0x03, 0x03, 0x04, 0x03, 0x04, 0x05,
- 0x06, 0x07, 0x05, 0x04, 0x05, 0x05, 0x07, 0x08,
- 0x09, 0x0A, 0x0B, 0x0B, 0x0C, 0x0D, 0x0B, 0x0C,
- 0x0D, 0x09, 0x0A, 0x0B, 0x0C, 0x07, 0x08, 0x09,
- 0x05, 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05,
- 0x0D,
-};
-static const int8_t mpc8_dscf1_bits[MPC8_DSCF1_SIZE] = {
- 15, 14, 14, 13, 13, 13, 12, 12,
- 12, 12, 11, 11, 11, 11, 10, 10,
- 10, 10, 9, 9, 9, 8, 8, 7,
- 7, 6, 5, 4, 4, 3, 3, 3,
- 3, 3, 4, 5, 5, 6, 7, 8,
- 8, 9, 9, 10, 10, 10, 11, 11,
- 11, 12, 12, 12, 12, 13, 13, 13,
- 14, 14, 14, 15, 15, 15, 15, 15,
- 12,
-};
-
-#define MPC8_RES_SIZE 17
-#define MPC8_RES_BITS 9
-
-static const uint8_t mpc8_res_codes[2][MPC8_RES_SIZE] = {
- {
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
- 0x01,
- },
- {
- 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x00, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x01,
- 0x03,
- }
-};
-static const int8_t mpc8_res_bits[2][MPC8_RES_SIZE] = {
- {
- 1, 2, 4, 5, 6, 7, 9, 10,
- 11, 12, 13, 14, 15, 16, 16, 8,
- 3,
- },
- {
- 2, 2, 3, 5, 7, 8, 10, 12,
- 14, 14, 14, 14, 11, 9, 6, 4,
- 2,
- }
-};
-
-#define MPC8_Q1_SIZE 19
-#define MPC8_Q1_BITS 9
-
-static const uint8_t mpc8_q1_codes[MPC8_Q1_SIZE] = {
- 0x01, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x00, 0x01,
-};
-static const int8_t mpc8_q1_bits[MPC8_Q1_SIZE] = {
- 6, 4, 4, 3, 3, 3, 3, 3,
- 4, 4, 4, 5, 7, 8, 9, 10,
- 11, 12, 12,
-};
-
-#define MPC8_Q9UP_SIZE 256
-#define MPC8_Q9UP_BITS 9
-
-static const uint8_t mpc8_q9up_codes[MPC8_Q9UP_SIZE] = {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x26, 0x27, 0x13, 0x14, 0x15,
- 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
- 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
- 0x28, 0x26, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
- 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
- 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E,
- 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
- 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
- 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E,
- 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x67, 0x68, 0x69, 0x6A, 0x56, 0x57, 0x58, 0x59,
- 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61,
- 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x3E,
- 0x3F, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
- 0x78, 0x79, 0x7A, 0x6B, 0x7B, 0x6C, 0x6D, 0x6E,
- 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
- 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
- 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86,
- 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E,
- 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E,
- 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
- 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x27, 0x28, 0x29,
- 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31,
- 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
- 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41,
- 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
- 0x4A, 0x4B, 0x06, 0x07, 0x08, 0x09, 0x00, 0x01,
-};
-static const int8_t mpc8_q9up_bits[MPC8_Q9UP_SIZE] = {
- 10, 10, 10, 10, 10, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 8, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 6,
- 6, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 8, 7, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 10, 10, 10, 10, 11, 11,
-};
-
-#define MPC8_Q2_SIZE 125
-#define MPC8_Q2_BITS 9
-
-static const uint8_t mpc8_q2_codes[2][MPC8_Q2_SIZE] = {
-{
- 0x02, 0x03, 0x0F, 0x04, 0x00, 0x05, 0x0C, 0x12,
- 0x0D, 0x06, 0x07, 0x13, 0x15, 0x14, 0x08, 0x09,
- 0x0E, 0x15, 0x0F, 0x0A, 0x03, 0x0B, 0x10, 0x0C,
- 0x01, 0x0D, 0x10, 0x16, 0x11, 0x0E, 0x12, 0x0F,
- 0x10, 0x16, 0x13, 0x17, 0x11, 0x08, 0x12, 0x18,
- 0x14, 0x13, 0x14, 0x17, 0x15, 0x0F, 0x16, 0x19,
- 0x17, 0x10, 0x11, 0x1A, 0x18, 0x1B, 0x12, 0x1C,
- 0x15, 0x09, 0x16, 0x1D, 0x19, 0x0A, 0x07, 0x0B,
- 0x1A, 0x1E, 0x17, 0x0C, 0x18, 0x1F, 0x13, 0x20,
- 0x1B, 0x21, 0x14, 0x11, 0x18, 0x22, 0x19, 0x12,
- 0x1A, 0x19, 0x1A, 0x1B, 0x1B, 0x23, 0x1C, 0x0D,
- 0x1D, 0x24, 0x1C, 0x1C, 0x1E, 0x1F, 0x1D, 0x13,
- 0x1E, 0x25, 0x1F, 0x14, 0x02, 0x15, 0x15, 0x16,
- 0x04, 0x17, 0x20, 0x26, 0x21, 0x18, 0x16, 0x27,
- 0x1D, 0x28, 0x19, 0x1A, 0x22, 0x29, 0x23, 0x1B,
- 0x03, 0x1C, 0x17, 0x1D, 0x05,
-},
-{
- 0x02, 0x03, 0x0F, 0x04, 0x00, 0x05, 0x0C, 0x0D,
- 0x0E, 0x06, 0x07, 0x0F, 0x1E, 0x10, 0x10, 0x08,
- 0x11, 0x12, 0x13, 0x09, 0x03, 0x0A, 0x11, 0x0B,
- 0x01, 0x0C, 0x14, 0x15, 0x16, 0x0D, 0x17, 0x12,
- 0x0E, 0x13, 0x18, 0x19, 0x14, 0x0F, 0x10, 0x1A,
- 0x1B, 0x15, 0x11, 0x16, 0x1C, 0x0E, 0x1D, 0x1E,
- 0x1F, 0x0F, 0x12, 0x20, 0x1F, 0x21, 0x13, 0x22,
- 0x12, 0x13, 0x14, 0x23, 0x20, 0x15, 0x0F, 0x16,
- 0x21, 0x24, 0x17, 0x18, 0x19, 0x25, 0x14, 0x26,
- 0x22, 0x27, 0x15, 0x10, 0x28, 0x29, 0x2A, 0x11,
- 0x2B, 0x17, 0x1A, 0x18, 0x2C, 0x2D, 0x1B, 0x1C,
- 0x19, 0x2E, 0x2F, 0x1A, 0x1D, 0x1B, 0x30, 0x12,
- 0x31, 0x32, 0x33, 0x13, 0x02, 0x14, 0x15, 0x16,
- 0x04, 0x17, 0x34, 0x35, 0x36, 0x18, 0x16, 0x37,
- 0x23, 0x38, 0x19, 0x1A, 0x39, 0x3A, 0x3B, 0x1B,
- 0x03, 0x1C, 0x17, 0x1D, 0x05,
-}
-};
-static const int8_t mpc8_q2_bits[2][MPC8_Q2_SIZE] = {
-{
- 12, 11, 10, 11, 13, 11, 9, 8,
- 9, 11, 11, 8, 7, 8, 11, 11,
- 9, 8, 9, 11, 12, 11, 10, 11,
- 13, 11, 9, 8, 9, 11, 9, 6,
- 6, 7, 9, 8, 6, 4, 6, 8,
- 9, 6, 6, 7, 9, 11, 9, 8,
- 9, 11, 10, 8, 7, 8, 10, 8,
- 6, 4, 6, 8, 7, 4, 3, 4,
- 7, 8, 6, 4, 6, 8, 10, 8,
- 7, 8, 10, 11, 9, 8, 9, 11,
- 9, 6, 6, 6, 9, 8, 6, 4,
- 6, 8, 9, 7, 6, 6, 9, 11,
- 9, 8, 9, 11, 13, 11, 10, 11,
- 12, 11, 9, 8, 9, 11, 10, 8,
- 7, 8, 11, 11, 9, 8, 9, 11,
- 13, 11, 10, 11, 12,
-},
-{
- 11, 10, 9, 10, 12, 10, 8, 8,
- 8, 10, 10, 8, 7, 8, 9, 10,
- 8, 8, 8, 10, 11, 10, 9, 10,
- 12, 10, 8, 8, 8, 10, 8, 6,
- 5, 6, 8, 8, 6, 5, 5, 8,
- 8, 6, 5, 6, 8, 10, 8, 8,
- 8, 10, 9, 8, 7, 8, 9, 8,
- 5, 5, 5, 8, 7, 5, 4, 5,
- 7, 8, 5, 5, 5, 8, 9, 8,
- 7, 8, 9, 10, 8, 8, 8, 10,
- 8, 6, 5, 6, 8, 8, 5, 5,
- 6, 8, 8, 6, 5, 6, 8, 10,
- 8, 8, 8, 10, 12, 10, 10, 10,
- 11, 10, 8, 8, 8, 10, 9, 8,
- 7, 8, 10, 10, 8, 8, 8, 10,
- 12, 10, 9, 10, 11,
-}
-};
-
-#define MPC8_Q3_SIZE 49
-#define MPC8_Q3_BITS 9
-#define MPC8_Q3_OFFSET -48
-
-static const uint8_t mpc8_q3_codes[MPC8_Q3_SIZE] = {
- 0x07, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x0F,
- 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x13, 0x12, 0x11,
- 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09,
- 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A,
- 0x09, 0x08, 0x07, 0x06, 0x05, 0x09, 0x08, 0x07,
- 0x06, 0x05, 0x04, 0x03, 0x02, 0x03, 0x02, 0x01,
- 0x00,
-};
-static const int8_t mpc8_q3_bits[MPC8_Q3_SIZE] = {
- 3, 4, 4, 4, 4, 4, 4, 5,
- 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9,
-};
-static const int8_t mpc8_q3_syms[MPC8_Q3_SIZE] = {
- 48, 65, 64, 49, 63, 32, 47, 80,
- 79, 50, 62, 33, 16, 82, 81, 95,
- 94, 66, 78, 34, 46, 17, 31, 30,
- 97, 96, 111, 67, 77, 51, 61, 35,
- 45, 18, 1, 0, 15, 98, 110, 83,
- 93, 19, 29, 2, 14, 99, 109, 3,
- 13,
-};
-
-#define MPC8_Q4_SIZE 81
-#define MPC8_Q4_BITS 9
-#define MPC8_Q4_OFFSET -64
-
-static const uint8_t mpc8_q4_codes[MPC8_Q4_SIZE] = {
- 0x0F, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17,
- 0x16, 0x15, 0x14, 0x13, 0x12, 0x23, 0x22, 0x21,
- 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
- 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
- 0x10, 0x0F, 0x0E, 0x0D, 0x19, 0x18, 0x17, 0x16,
- 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E,
- 0x0D, 0x0C, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12,
- 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A,
- 0x09, 0x08, 0x07, 0x06, 0x05, 0x09, 0x08, 0x07,
- 0x06, 0x05, 0x04, 0x03, 0x02, 0x03, 0x02, 0x01,
- 0x00,
-};
-static const int8_t mpc8_q4_bits[MPC8_Q4_SIZE] = {
- 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 10, 10, 10,
- 10,
-};
-static const int8_t mpc8_q4_syms[MPC8_Q4_SIZE] = {
- 64, 96, 81, 80, 95, 66, 65, 79,
- 78, 49, 48, 63, 32, 113, 112, 98,
- 97, 111, 110, 83, 82, 94, 93, 67,
- 77, 51, 50, 62, 61, 34, 33, 47,
- 46, 17, 16, 31, 128, 114, 127, 126,
- 99, 109, 68, 76, 35, 45, 18, 30,
- 0, 15, 130, 129, 143, 142, 115, 125,
- 100, 108, 84, 92, 52, 60, 36, 44,
- 19, 29, 2, 1, 14, 131, 141, 116,
- 124, 20, 28, 3, 13, 132, 140, 4,
- 12,
-};
-
-#define MPC8_Q5_SIZE 15
-#define MPC8_Q5_BITS 7
-#define MPC8_Q5_OFFSET -7
-
-static const uint8_t mpc8_q5_codes[2][MPC8_Q5_SIZE] = {
-{
- 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x04, 0x05, 0x03, 0x03, 0x03, 0x02, 0x03,
-},
-{
- 0x00, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x05,
- 0x06, 0x07, 0x04, 0x05, 0x03, 0x02, 0x03,
-}
-};
-static const int8_t mpc8_q5_bits[2][MPC8_Q5_SIZE] = {
-{
- 7, 7, 6, 5, 4, 3, 3, 2,
- 3, 3, 4, 5, 6, 7, 7,
-},
-{
- 6, 6, 5, 4, 4, 3, 3, 3,
- 3, 3, 4, 4, 5, 6, 6,
-}
-};
-
-#define MPC8_Q6_SIZE 31
-#define MPC8_Q6_BITS 9
-#define MPC8_Q6_OFFSET -15
-
-static const uint8_t mpc8_q6_codes[2][MPC8_Q6_SIZE] = {
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x04, 0x03,
- 0x04, 0x05, 0x05, 0x06, 0x04, 0x05, 0x04, 0x03,
- 0x05, 0x06, 0x07, 0x07, 0x06, 0x07, 0x08, 0x09,
- 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07,
-},
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x04, 0x05, 0x04,
- 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
- 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x07, 0x08, 0x09,
- 0x06, 0x07, 0x05, 0x06, 0x07, 0x02, 0x03,
-}
-};
-static const int8_t mpc8_q6_bits[2][MPC8_Q6_SIZE] = {
-{
- 9, 9, 9, 9, 8, 8, 7, 6,
- 6, 6, 5, 5, 4, 4, 3, 2,
- 3, 4, 4, 5, 6, 6, 6, 6,
- 7, 8, 8, 9, 9, 9, 9,
-},
-{
- 8, 8, 7, 7, 7, 6, 6, 5,
- 5, 5, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 5, 5, 5,
- 6, 6, 7, 7, 7, 8, 8,
-}
-};
-
-#define MPC8_Q7_SIZE 63
-#define MPC8_Q7_BITS 9
-#define MPC8_Q7_OFFSET -31
-
-static const uint8_t mpc8_q7_codes[2][MPC8_Q7_SIZE] = {
-{
- 0x00, 0x01, 0x02, 0x08, 0x09, 0x03, 0x04, 0x05,
- 0x06, 0x07, 0x0A, 0x0B, 0x0C, 0x0D, 0x0A, 0x0B,
- 0x0C, 0x0D, 0x0E, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
- 0x0A, 0x0B, 0x0C, 0x08, 0x09, 0x06, 0x04, 0x03,
- 0x05, 0x07, 0x0A, 0x0B, 0x0D, 0x0E, 0x0F, 0x0F,
- 0x10, 0x11, 0x12, 0x0F, 0x13, 0x10, 0x11, 0x12,
- 0x13, 0x0E, 0x0F, 0x10, 0x11, 0x08, 0x09, 0x0A,
- 0x0B, 0x0C, 0x12, 0x13, 0x0D, 0x0E, 0x0F,
-},
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x09, 0x0A,
- 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x0C, 0x0D,
- 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
- 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
- 0x1E, 0x1F, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
- 0x17, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x09, 0x0A,
- 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x02, 0x03,
-}
-};
-static const int8_t mpc8_q7_bits[2][MPC8_Q7_SIZE] = {
-{
- 10, 10, 10, 9, 9, 10, 10, 10,
- 10, 10, 9, 9, 9, 9, 8, 8,
- 8, 8, 8, 7, 7, 7, 7, 7,
- 6, 6, 6, 5, 5, 4, 3, 2,
- 3, 4, 5, 5, 6, 6, 6, 7,
- 7, 7, 7, 8, 7, 8, 8, 8,
- 8, 9, 9, 9, 9, 10, 10, 10,
- 10, 10, 9, 9, 10, 10, 10,
-},
-{
- 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 7, 7, 7, 7, 7, 6, 6,
- 6, 6, 6, 6, 6, 6, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 6, 6, 6, 6, 6, 6,
- 6, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 8, 9, 9,
-}
-};
-
-#define MPC8_Q8_SIZE 127
-#define MPC8_Q8_BITS 9
-#define MPC8_Q8_OFFSET -63
-
-static const uint8_t mpc8_q8_codes[2][MPC8_Q8_SIZE] = {
-{
- 0x03, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x1A,
- 0x0F, 0x1B, 0x10, 0x00, 0x01, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x11, 0x0C, 0x12, 0x13,
- 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1C, 0x1A,
- 0x1B, 0x1C, 0x1D, 0x1E, 0x1D, 0x1E, 0x1F, 0x20,
- 0x21, 0x22, 0x23, 0x24, 0x19, 0x25, 0x1A, 0x1B,
- 0x1C, 0x1D, 0x1E, 0x1F, 0x14, 0x15, 0x16, 0x17,
- 0x0E, 0x0F, 0x10, 0x11, 0x0B, 0x07, 0x04, 0x03,
- 0x05, 0x0C, 0x0D, 0x12, 0x13, 0x14, 0x15, 0x18,
- 0x19, 0x1A, 0x1B, 0x20, 0x21, 0x22, 0x23, 0x24,
- 0x25, 0x26, 0x27, 0x26, 0x27, 0x28, 0x29, 0x2A,
- 0x2B, 0x2C, 0x2D, 0x2E, 0x1F, 0x20, 0x2F, 0x21,
- 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
- 0x0D, 0x0E, 0x2A, 0x0F, 0x10, 0x11, 0x12, 0x02,
- 0x13, 0x03, 0x04, 0x05, 0x2B, 0x2C, 0x30, 0x31,
- 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33,
-},
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x15, 0x16,
- 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E,
- 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
- 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
- 0x2F, 0x30, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B,
- 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33,
- 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
- 0x3C, 0x3D, 0x3E, 0x31, 0x3F, 0x32, 0x33, 0x34,
- 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C,
- 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44,
- 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x16,
- 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E,
- 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
- 0x27, 0x28, 0x29, 0x04, 0x05, 0x06, 0x07,
-}
-};
-static const int8_t mpc8_q8_bits[2][MPC8_Q8_SIZE] = {
-{
- 11, 11, 10, 10, 10, 10, 10, 9,
- 10, 9, 10, 12, 12, 11, 11, 11,
- 11, 11, 11, 11, 10, 11, 10, 10,
- 10, 10, 10, 10, 10, 10, 9, 10,
- 10, 10, 10, 10, 9, 9, 9, 9,
- 9, 9, 9, 9, 8, 9, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 7,
- 6, 6, 6, 6, 5, 4, 3, 2,
- 3, 5, 5, 6, 6, 6, 6, 7,
- 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 8, 8, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 10, 10, 9, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 11, 11, 10, 11, 11, 11, 11, 12,
- 11, 12, 12, 12, 10, 10, 9, 9,
- 10, 10, 10, 10, 10, 10, 10,
-},
-{
- 9, 9, 9, 9, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 7, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 9, 9, 9, 9,
-}
-};
-
-#endif /* AVCODEC_MPC8HUFF_H */
+++ /dev/null
-/*
- * Musepack decoder
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPCDATA_H
-#define AVCODEC_MPCDATA_H
-
-#include <stdint.h>
-
-static const float mpc_CC[18] = {
- 65536.0000, 21845.3333, 13107.2000, 9362.2857, 7281.7778, 4369.0667, 2114.0645,
- 1040.2539, 516.0315, 257.0039, 128.2505, 64.0626, 32.0156, 16.0039, 8.0010,
- 4.0002, 2.0001, 1.0000
-};
-
-static const float mpc_SCF[128] = {
- 307.330047607421875000, 255.999984741210937500, 213.243041992187500000, 177.627334594726562500,
- 147.960128784179687500, 123.247924804687500000, 102.663139343261718750, 85.516410827636718750,
- 71.233520507812500000, 59.336143493652343750, 49.425861358642578125, 41.170787811279296875,
- 34.294471740722656250, 28.566631317138671875, 23.795452117919921875, 19.821151733398437500,
- 16.510635375976562500, 13.753040313720703125, 11.456016540527343750, 9.542640686035156250,
- 7.948835372924804688, 6.621226310729980469, 5.515353679656982422, 4.594182968139648438,
- 3.826865673065185547, 3.187705039978027344, 2.655296564102172852, 2.211810588836669922,
- 1.842395424842834473, 1.534679770469665527, 1.278358578681945801, 1.064847946166992188,
- 0.886997759342193604, 0.738851964473724365, 0.615449428558349609, 0.512657463550567627,
- 0.427033752202987671, 0.355710864067077637, 0.296300262212753296, 0.246812388300895691,
- 0.205589950084686279, 0.171252459287643433, 0.142649993300437927, 0.118824683129787445,
- 0.098978661000728607, 0.082447312772274017, 0.068677015602588654, 0.057206626981496811,
- 0.047652013599872589, 0.039693206548690796, 0.033063672482967377, 0.027541399002075195,
- 0.022941453382372856, 0.019109787419438362, 0.015918083488941193, 0.013259455561637878,
- 0.011044870130717754, 0.009200163185596466, 0.007663558237254620, 0.006383595988154411,
- 0.005317411851137877, 0.004429301247000694, 0.003689522389322519, 0.003073300700634718,
- 0.002560000168159604, 0.002132430672645569, 0.001776273478753865, 0.001479601487517357,
- 0.001232479466125369, 0.001026631565764546, 0.000855164253152907, 0.000712335284333676,
- 0.000593361502978951, 0.000494258652906865, 0.000411707907915115, 0.000342944724252447,
- 0.000285666319541633, 0.000237954518524930, 0.000198211506358348, 0.000165106350323185,
- 0.000137530398205854, 0.000114560163638089, 0.000095426403277088, 0.000079488345363643,
- 0.000066212254751008, 0.000055153526773211, 0.000045941822463647, 0.000038268648495432,
- 0.000031877043511486, 0.000026552961571724, 0.000022118103515822, 0.000018423952496960,
- 0.000015346795407822, 0.000012783583770215, 0.000010648477655195, 0.000008869976227288,
- 0.000007388518497464, 0.000006154492893984, 0.000005126573796588, 0.000004270336830814,
- 0.000003557107902452, 0.000002963002089018, 0.000002468123511790, 0.000002055899130937,
- 0.000001712524181130, 0.000001426499579793, 0.000001188246528727, 0.000000989786371974,
- 0.000000824472920158, 0.000000686770022185, 0.000000572066142013, 0.000000476520028769,
- 0.000000396931966407, 0.000000330636652279, 0.000000275413924555, 0.000000229414467867,
- 0.000000191097811353, 0.000000159180785886, 0.000000132594522029, 0.000000110448674207,
- 0.000000092001613439, 0.000000076635565449, 0.000000063835940978, 0.000000053174105119,
- 0.000000044293003043, 0.000000036895215771, 0.000000030733001921, 0.000000025599996789
-};
-
-#endif /* AVCODEC_MPCDATA_H */
+++ /dev/null
-/*
- * MPEG1/2 common code
- * Copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPEG12_H
-#define AVCODEC_MPEG12_H
-
-#include "mpegvideo.h"
-
-#define DC_VLC_BITS 9
-#define TEX_VLC_BITS 9
-
-static VLC dc_lum_vlc;
-static VLC dc_chroma_vlc;
-
-extern uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
-
-void ff_mpeg12_common_init(MpegEncContext *s);
-void ff_mpeg12_init_vlcs(void);
-
-static inline int decode_dc(GetBitContext *gb, int component)
-{
- int code, diff;
-
- if (component == 0) {
- code = get_vlc2(gb, dc_lum_vlc.table, DC_VLC_BITS, 2);
- } else {
- code = get_vlc2(gb, dc_chroma_vlc.table, DC_VLC_BITS, 2);
- }
- if (code < 0){
- av_log(NULL, AV_LOG_ERROR, "invalid dc code at\n");
- return 0xffff;
- }
- if (code == 0) {
- diff = 0;
- } else {
- diff = get_xbits(gb, code);
- }
- return diff;
-}
-
-extern int ff_mpeg1_decode_block_intra(MpegEncContext *s, DCTELEM *block, int n);
-
-#endif /* AVCODEC_MPEG12_H */
+++ /dev/null
-/*
- * MPEG1/2 tables
- * copyright (c) 2000,2001 Fabrice Bellard
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MPEG1/2 tables.
- */
-
-#ifndef AVCODEC_MPEG12DATA_H
-#define AVCODEC_MPEG12DATA_H
-
-#include <stdint.h>
-#include "libavutil/rational.h"
-#include "rl.h"
-
-extern const uint16_t ff_mpeg1_default_intra_matrix[64];
-extern const uint16_t ff_mpeg1_default_non_intra_matrix[64];
-
-extern const uint16_t ff_mpeg12_vlc_dc_lum_code[12];
-extern const unsigned char ff_mpeg12_vlc_dc_lum_bits[12];
-extern const uint16_t ff_mpeg12_vlc_dc_chroma_code[12];
-extern const unsigned char ff_mpeg12_vlc_dc_chroma_bits[12];
-
-extern RLTable ff_rl_mpeg1;
-extern RLTable ff_rl_mpeg2;
-
-extern const uint8_t ff_mpeg12_mbAddrIncrTable[36][2];
-extern const uint8_t ff_mpeg12_mbPatTable[64][2];
-
-extern const uint8_t ff_mpeg12_mbMotionVectorTable[17][2];
-
-extern const AVRational ff_frame_rate_tab[];
-
-extern const float ff_mpeg1_aspect[16];
-extern const AVRational ff_mpeg2_aspect[16];
-
-#endif /* AVCODEC_MPEG12DATA_H */
+++ /dev/null
-/*
- * MPEG1/2 decoder tables
- * copyright (c) 2000,2001 Fabrice Bellard
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MPEG1/2 decoder tables.
- */
-
-#ifndef AVCODEC_MPEG12DECDATA_H
-#define AVCODEC_MPEG12DECDATA_H
-
-#include <stdint.h>
-#include "mpegvideo.h"
-
-
-#define MB_TYPE_ZERO_MV 0x20000000
-#define IS_ZERO_MV(a) ((a)&MB_TYPE_ZERO_MV)
-
-static const uint8_t table_mb_ptype[7][2] = {
- { 3, 5 }, // 0x01 MB_INTRA
- { 1, 2 }, // 0x02 MB_PAT
- { 1, 3 }, // 0x08 MB_FOR
- { 1, 1 }, // 0x0A MB_FOR|MB_PAT
- { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
- { 1, 5 }, // 0x12 MB_QUANT|MB_PAT
- { 2, 5 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
-};
-
-static const uint32_t ptype2mb_type[7] = {
- MB_TYPE_INTRA,
- MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
- MB_TYPE_L0,
- MB_TYPE_L0 | MB_TYPE_CBP,
- MB_TYPE_QUANT | MB_TYPE_INTRA,
- MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
- MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
-};
-
-static const uint8_t table_mb_btype[11][2] = {
- { 3, 5 }, // 0x01 MB_INTRA
- { 2, 3 }, // 0x04 MB_BACK
- { 3, 3 }, // 0x06 MB_BACK|MB_PAT
- { 2, 4 }, // 0x08 MB_FOR
- { 3, 4 }, // 0x0A MB_FOR|MB_PAT
- { 2, 2 }, // 0x0C MB_FOR|MB_BACK
- { 3, 2 }, // 0x0E MB_FOR|MB_BACK|MB_PAT
- { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
- { 2, 6 }, // 0x16 MB_QUANT|MB_BACK|MB_PAT
- { 3, 6 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
- { 2, 5 }, // 0x1E MB_QUANT|MB_FOR|MB_BACK|MB_PAT
-};
-
-static const uint32_t btype2mb_type[11] = {
- MB_TYPE_INTRA,
- MB_TYPE_L1,
- MB_TYPE_L1 | MB_TYPE_CBP,
- MB_TYPE_L0,
- MB_TYPE_L0 | MB_TYPE_CBP,
- MB_TYPE_L0L1,
- MB_TYPE_L0L1 | MB_TYPE_CBP,
- MB_TYPE_QUANT | MB_TYPE_INTRA,
- MB_TYPE_QUANT | MB_TYPE_L1 | MB_TYPE_CBP,
- MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
- MB_TYPE_QUANT | MB_TYPE_L0L1 | MB_TYPE_CBP,
-};
-
-static const uint8_t non_linear_qscale[32] = {
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8,10,12,14,16,18,20,22,
- 24,28,32,36,40,44,48,52,
- 56,64,72,80,88,96,104,112,
-};
-
-#endif /* AVCODEC_MPEG12DECDATA_H */
+++ /dev/null
-/*
- * MPEG-4 Audio common header
- * Copyright (c) 2008 Baptiste Coudurier <baptiste.coudurier@free.fr>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPEG4AUDIO_H
-#define AVCODEC_MPEG4AUDIO_H
-
-#include <stdint.h>
-#include "get_bits.h"
-#include "put_bits.h"
-
-typedef struct {
- int object_type;
- int sampling_index;
- int sample_rate;
- int chan_config;
- int sbr; //< -1 implicit, 1 presence
- int ext_object_type;
- int ext_sampling_index;
- int ext_sample_rate;
- int ext_chan_config;
- int channels;
- int ps; //< -1 implicit, 1 presence
-} MPEG4AudioConfig;
-
-extern const int ff_mpeg4audio_sample_rates[16];
-extern const uint8_t ff_mpeg4audio_channels[8];
-/**
- * Parse MPEG-4 systems extradata to retrieve audio configuration.
- * @param[in] c MPEG4AudioConfig structure to fill.
- * @param[in] buf Extradata from container.
- * @param[in] buf_size Extradata size.
- * @return On error -1 is returned, on success AudioSpecificConfig bit index in extradata.
- */
-int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_size);
-
-enum AudioObjectType {
- AOT_NULL,
- // Support? Name
- AOT_AAC_MAIN, ///< Y Main
- AOT_AAC_LC, ///< Y Low Complexity
- AOT_AAC_SSR, ///< N (code in SoC repo) Scalable Sample Rate
- AOT_AAC_LTP, ///< N (code in SoC repo) Long Term Prediction
- AOT_SBR, ///< Y Spectral Band Replication
- AOT_AAC_SCALABLE, ///< N Scalable
- AOT_TWINVQ, ///< N Twin Vector Quantizer
- AOT_CELP, ///< N Code Excited Linear Prediction
- AOT_HVXC, ///< N Harmonic Vector eXcitation Coding
- AOT_TTSI = 12, ///< N Text-To-Speech Interface
- AOT_MAINSYNTH, ///< N Main Synthesis
- AOT_WAVESYNTH, ///< N Wavetable Synthesis
- AOT_MIDI, ///< N General MIDI
- AOT_SAFX, ///< N Algorithmic Synthesis and Audio Effects
- AOT_ER_AAC_LC, ///< N Error Resilient Low Complexity
- AOT_ER_AAC_LTP = 19, ///< N Error Resilient Long Term Prediction
- AOT_ER_AAC_SCALABLE, ///< N Error Resilient Scalable
- AOT_ER_TWINVQ, ///< N Error Resilient Twin Vector Quantizer
- AOT_ER_BSAC, ///< N Error Resilient Bit-Sliced Arithmetic Coding
- AOT_ER_AAC_LD, ///< N Error Resilient Low Delay
- AOT_ER_CELP, ///< N Error Resilient Code Excited Linear Prediction
- AOT_ER_HVXC, ///< N Error Resilient Harmonic Vector eXcitation Coding
- AOT_ER_HILN, ///< N Error Resilient Harmonic and Individual Lines plus Noise
- AOT_ER_PARAM, ///< N Error Resilient Parametric
- AOT_SSC, ///< N SinuSoidal Coding
- AOT_PS, ///< N Parametric Stereo
- AOT_SURROUND, ///< N MPEG Surround
- AOT_ESCAPE, ///< Y Escape Value
- AOT_L1, ///< Y Layer 1
- AOT_L2, ///< Y Layer 2
- AOT_L3, ///< Y Layer 3
- AOT_DST, ///< N Direct Stream Transfer
- AOT_ALS, ///< Y Audio LosslesS
- AOT_SLS, ///< N Scalable LosslesS
- AOT_SLS_NON_CORE, ///< N Scalable LosslesS (non core)
- AOT_ER_AAC_ELD, ///< N Error Resilient Enhanced Low Delay
- AOT_SMR_SIMPLE, ///< N Symbolic Music Representation Simple
- AOT_SMR_MAIN, ///< N Symbolic Music Representation Main
- AOT_USAC_NOSBR, ///< N Unified Speech and Audio Coding (no SBR)
- AOT_SAOC, ///< N Spatial Audio Object Coding
- AOT_LD_SURROUND, ///< N Low Delay MPEG Surround
- AOT_USAC, ///< N Unified Speech and Audio Coding
-};
-
-#define MAX_PCE_SIZE 304 ///<Maximum size of a PCE including the 3-bit ID_PCE
- ///<marker and the comment
-
-int ff_copy_pce_data(PutBitContext *pb, GetBitContext *gb);
-
-#endif /* AVCODEC_MPEG4AUDIO_H */
+++ /dev/null
-/*
- * copyright (c) 2000,2001 Fabrice Bellard
- * H263+ support
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpeg4 tables.
- */
-
-#ifndef AVCODEC_MPEG4DATA_H
-#define AVCODEC_MPEG4DATA_H
-
-#include <stdint.h>
-#include "mpegvideo.h"
-
-/* dc encoding for mpeg4 */
-const uint8_t ff_mpeg4_DCtab_lum[13][2] =
-{
- {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
- {1,8}, {1,9}, {1,10}, {1,11},
-};
-
-const uint8_t ff_mpeg4_DCtab_chrom[13][2] =
-{
- {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
- {1,9}, {1,10}, {1,11}, {1,12},
-};
-
-const uint16_t ff_mpeg4_intra_vlc[103][2] = {
-{ 0x2, 2 },
-{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
-{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
-{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
-{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
-{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
-{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
-{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
-{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
-{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
-{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
-{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
-{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
-{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
-{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
-{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
-{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
-{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
-{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
-{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
-{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
-{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
-{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
-{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
-{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
-{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
-{ 0x5f, 12 },{ 0x3, 7 },
-};
-
-const int8_t ff_mpeg4_intra_level[102] = {
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 1, 2, 3,
- 4, 5, 1, 2, 3, 4, 1, 2,
- 3, 1, 2, 3, 1, 2, 3, 1,
- 2, 3, 1, 2, 1, 2, 1, 1,
- 1, 1, 1, 1, 2, 3, 4, 5,
- 6, 7, 8, 1, 2, 3, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1,
-};
-
-const int8_t ff_mpeg4_intra_run[102] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 3, 3, 3, 3, 4, 4,
- 4, 5, 5, 5, 6, 6, 6, 7,
- 7, 7, 8, 8, 9, 9, 10, 11,
- 12, 13, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 2, 2,
- 3, 3, 4, 4, 5, 5, 6, 6,
- 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20,
-};
-
-RLTable ff_mpeg4_rl_intra = {
- 102,
- 67,
- ff_mpeg4_intra_vlc,
- ff_mpeg4_intra_run,
- ff_mpeg4_intra_level,
-};
-
-/* Note this is identical to the intra rvlc except that it is reordered. */
-const uint16_t inter_rvlc[170][2]={
-{0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
-{0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
-{0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
-{0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
-{0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
-{0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
-{0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
-{0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
-{0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
-{0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
-{0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
-{0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
-{0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
-{0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
-{0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
-{0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
-{0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
-{0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
-{0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
-{0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
-{0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
-{0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
-{0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
-{0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
-{0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
-{0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
-{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
-{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
-{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
-{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
-{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
-{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
-{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
-{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
-{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
-{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
-{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
-{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
-{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
-{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
-{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
-{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
-{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
-};
-
-static const int8_t inter_rvlc_run[169]={
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 2, 3, 3, 3, 3,
- 3, 3, 3, 4, 4, 4, 4, 4,
- 5, 5, 5, 5, 6, 6, 6, 6,
- 7, 7, 7, 7, 8, 8, 8, 9,
- 9, 9, 10, 10, 11, 11, 12, 12,
-13, 13, 14, 14, 15, 15, 16, 16,
-17, 17, 18, 19, 20, 21, 22, 23,
-24, 25, 26, 27, 28, 29, 30, 31,
-32, 33, 34, 35, 36, 37, 38,
- 0, 0, 0, 0, 0, 1, 1, 1,
- 1, 1, 2, 2, 2, 3, 3, 4,
- 4, 5, 5, 6, 6, 7, 7, 8,
- 8, 9, 9, 10, 10, 11, 11, 12,
-12, 13, 13, 14, 15, 16, 17, 18,
-19, 20, 21, 22, 23, 24, 25, 26,
-27, 28, 29, 30, 31, 32, 33, 34,
-35, 36, 37, 38, 39, 40, 41, 42,
-43, 44,
-};
-
-static const int8_t inter_rvlc_level[169]={
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16,
-17, 18, 19, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 1, 2, 3,
- 4, 5, 6, 7, 1, 2, 3, 4,
- 5, 6, 7, 1, 2, 3, 4, 5,
- 1, 2, 3, 4, 1, 2, 3, 4,
- 1, 2, 3, 4, 1, 2, 3, 1,
- 2, 3, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 3, 4, 5, 1, 2, 3,
- 4, 5, 1, 2, 3, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1,
-};
-
-RLTable rvlc_rl_inter = {
- 169,
- 103,
- inter_rvlc,
- inter_rvlc_run,
- inter_rvlc_level,
-};
-
-const uint16_t intra_rvlc[170][2]={
-{0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
-{0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
-{0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
-{0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
-{0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
-{0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
-{0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
-{0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
-{0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
-{0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
-{0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
-{0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
-{0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
-{0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
-{0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
-{0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
-{0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
-{0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
-{0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
-{0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
-{0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
-{0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
-{0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
-{0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
-{0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
-{0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
-{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
-{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
-{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
-{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
-{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
-{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
-{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
-{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
-{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
-{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
-{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
-{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
-{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
-{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
-{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
-{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
-{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
-};
-
-static const int8_t intra_rvlc_run[169]={
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 4, 4, 4, 4,
- 4, 4, 5, 5, 5, 5, 5, 5,
- 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 8, 8, 8, 8, 9, 9,
- 9, 9, 10, 10, 11, 11, 12, 12,
-13, 14, 15, 16, 17, 18, 19,
- 0, 0, 0, 0, 0, 1, 1, 1,
- 1, 1, 2, 2, 2, 3, 3, 4,
- 4, 5, 5, 6, 6, 7, 7, 8,
- 8, 9, 9, 10, 10, 11, 11, 12,
-12, 13, 13, 14, 15, 16, 17, 18,
-19, 20, 21, 22, 23, 24, 25, 26,
-27, 28, 29, 30, 31, 32, 33, 34,
-35, 36, 37, 38, 39, 40, 41, 42,
-43, 44,
-};
-
-static const int8_t intra_rvlc_level[169]={
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16,
-17, 18, 19, 20, 21, 22, 23, 24,
-25, 26, 27, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13,
- 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 1, 2, 3, 4,
- 5, 6, 1, 2, 3, 4, 5, 6,
- 1, 2, 3, 4, 5, 1, 2, 3,
- 4, 5, 1, 2, 3, 4, 1, 2,
- 3, 4, 1, 2, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 3, 4, 5, 1, 2, 3,
- 4, 5, 1, 2, 3, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1,
-};
-
-RLTable rvlc_rl_intra = {
- 169,
- 103,
- intra_rvlc,
- intra_rvlc_run,
- intra_rvlc_level,
-};
-
-const uint16_t sprite_trajectory_tab[15][2] = {
- {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
- {0x0E, 4}, {0x1E, 5}, {0x3E, 6}, {0x7E, 7}, {0xFE, 8},
- {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
-};
-
-const uint8_t mb_type_b_tab[4][2] = {
- {1, 1}, {1, 2}, {1, 3}, {1, 4},
-};
-
-/* these matrixes will be permuted for the idct */
-const int16_t ff_mpeg4_default_intra_matrix[64] = {
- 8, 17, 18, 19, 21, 23, 25, 27,
- 17, 18, 19, 21, 23, 25, 27, 28,
- 20, 21, 22, 23, 24, 26, 28, 30,
- 21, 22, 23, 24, 26, 28, 30, 32,
- 22, 23, 24, 26, 28, 30, 32, 35,
- 23, 24, 26, 28, 30, 32, 35, 38,
- 25, 26, 28, 30, 32, 35, 38, 41,
- 27, 28, 30, 32, 35, 38, 41, 45,
-};
-
-const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
- 16, 17, 18, 19, 20, 21, 22, 23,
- 17, 18, 19, 20, 21, 22, 23, 24,
- 18, 19, 20, 21, 22, 23, 24, 25,
- 19, 20, 21, 22, 23, 24, 26, 27,
- 20, 21, 22, 23, 25, 26, 27, 28,
- 21, 22, 23, 24, 26, 27, 28, 30,
- 22, 23, 24, 26, 27, 28, 30, 31,
- 23, 24, 25, 27, 28, 30, 31, 33,
-};
-
-const uint8_t ff_mpeg4_y_dc_scale_table[32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
-};
-const uint8_t ff_mpeg4_c_dc_scale_table[32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25
-};
-
-const uint16_t ff_mpeg4_resync_prefix[8]={
- 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
-};
-
-const uint8_t mpeg4_dc_threshold[8]={
- 99, 13, 15, 17, 19, 21, 23, 0
-};
-
-#endif /* AVCODEC_MPEG4DATA_H */
+++ /dev/null
-/*
- * MPEG4 encoder/decoder internal header.
- * Copyright (c) 2000,2001 Fabrice Bellard
- * Copyright (c) 2002-2010 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPEG4VIDEO_H
-#define AVCODEC_MPEG4VIDEO_H
-
-#include <stdint.h>
-#include "get_bits.h"
-#include "mpegvideo.h"
-#include "rl.h"
-
-// shapes
-#define RECT_SHAPE 0
-#define BIN_SHAPE 1
-#define BIN_ONLY_SHAPE 2
-#define GRAY_SHAPE 3
-
-#define SIMPLE_VO_TYPE 1
-#define CORE_VO_TYPE 3
-#define MAIN_VO_TYPE 4
-#define NBIT_VO_TYPE 5
-#define ARTS_VO_TYPE 10
-#define ACE_VO_TYPE 12
-#define ADV_SIMPLE_VO_TYPE 17
-
-// aspect_ratio_info
-#define EXTENDED_PAR 15
-
-//vol_sprite_usage / sprite_enable
-#define STATIC_SPRITE 1
-#define GMC_SPRITE 2
-
-#define MOTION_MARKER 0x1F001
-#define DC_MARKER 0x6B001
-
-#define VOS_STARTCODE 0x1B0
-#define USER_DATA_STARTCODE 0x1B2
-#define GOP_STARTCODE 0x1B3
-#define VISUAL_OBJ_STARTCODE 0x1B5
-#define VOP_STARTCODE 0x1B6
-
-/* dc encoding for mpeg4 */
-extern const uint8_t ff_mpeg4_DCtab_lum[13][2];
-extern const uint8_t ff_mpeg4_DCtab_chrom[13][2];
-
-extern const uint16_t ff_mpeg4_intra_vlc[103][2];
-extern RLTable ff_mpeg4_rl_intra;
-
-/* Note this is identical to the intra rvlc except that it is reordered. */
-extern const uint16_t inter_rvlc[170][2];
-extern RLTable rvlc_rl_inter;
-
-extern const uint16_t intra_rvlc[170][2];
-extern RLTable rvlc_rl_intra;
-
-extern const uint16_t sprite_trajectory_tab[15][2];
-extern const uint8_t mb_type_b_tab[4][2];
-
-/* these matrixes will be permuted for the idct */
-extern const int16_t ff_mpeg4_default_intra_matrix[64];
-extern const int16_t ff_mpeg4_default_non_intra_matrix[64];
-
-extern const uint8_t ff_mpeg4_y_dc_scale_table[32];
-extern const uint8_t ff_mpeg4_c_dc_scale_table[32];
-extern const uint16_t ff_mpeg4_resync_prefix[8];
-
-extern const uint8_t mpeg4_dc_threshold[8];
-
-void mpeg4_encode_mb(MpegEncContext *s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-void mpeg4_pred_ac(MpegEncContext * s, DCTELEM *block, int n,
- int dir);
-void ff_set_mpeg4_time(MpegEncContext * s);
-void mpeg4_encode_picture_header(MpegEncContext *s, int picture_number);
-
-int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb);
-void ff_mpeg4_encode_video_packet_header(MpegEncContext *s);
-void ff_mpeg4_clean_buffers(MpegEncContext *s);
-void ff_mpeg4_stuffing(PutBitContext * pbc);
-void ff_mpeg4_init_partitions(MpegEncContext *s);
-void ff_mpeg4_merge_partitions(MpegEncContext *s);
-void ff_clean_mpeg4_qscales(MpegEncContext *s);
-int ff_mpeg4_decode_partitions(MpegEncContext *s);
-int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);
-int mpeg4_decode_video_packet_header(MpegEncContext *s);
-void ff_mpeg4_init_direct_mv(MpegEncContext *s);
-
-/**
- *
- * @return the mb_type
- */
-int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);
-
-extern uint8_t ff_mpeg4_static_rl_table_store[3][2][2*MAX_RUN + MAX_LEVEL + 3];
-
-
-#if 0 //3IV1 is quite rare and it slows things down a tiny bit
-#define IS_3IV1 s->codec_tag == AV_RL32("3IV1")
-#else
-#define IS_3IV1 0
-#endif
-
-
-/**
- * predicts the dc.
- * encoding quantized level -> quantized diff
- * decoding quantized diff -> quantized level
- * @param n block index (0-3 are luma, 4-5 are chroma)
- * @param dir_ptr pointer to an integer where the prediction direction will be stored
- */
-static inline int ff_mpeg4_pred_dc(MpegEncContext * s, int n, int level, int *dir_ptr, int encoding)
-{
- int a, b, c, wrap, pred, scale, ret;
- int16_t *dc_val;
-
- /* find prediction */
- if (n < 4) {
- scale = s->y_dc_scale;
- } else {
- scale = s->c_dc_scale;
- }
- if(IS_3IV1)
- scale= 8;
-
- wrap= s->block_wrap[n];
- dc_val = s->dc_val[0] + s->block_index[n];
-
- /* B C
- * A X
- */
- a = dc_val[ - 1];
- b = dc_val[ - 1 - wrap];
- c = dc_val[ - wrap];
-
- /* outside slice handling (we can't do that by memset as we need the dc for error resilience) */
- if(s->first_slice_line && n!=3){
- if(n!=2) b=c= 1024;
- if(n!=1 && s->mb_x == s->resync_mb_x) b=a= 1024;
- }
- if(s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y+1){
- if(n==0 || n==4 || n==5)
- b=1024;
- }
-
- if (abs(a - b) < abs(b - c)) {
- pred = c;
- *dir_ptr = 1; /* top */
- } else {
- pred = a;
- *dir_ptr = 0; /* left */
- }
- /* we assume pred is positive */
- pred = FASTDIV((pred + (scale >> 1)), scale);
-
- if(encoding){
- ret = level - pred;
- }else{
- level += pred;
- ret= level;
- if(s->error_recognition>=3){
- if(level<0){
- av_log(s->avctx, AV_LOG_ERROR, "dc<0 at %dx%d\n", s->mb_x, s->mb_y);
- return -1;
- }
- if(level*scale > 2048 + scale){
- av_log(s->avctx, AV_LOG_ERROR, "dc overflow at %dx%d\n", s->mb_x, s->mb_y);
- return -1;
- }
- }
- }
- level *=scale;
- if(level&(~2047)){
- if(level<0)
- level=0;
- else if(!(s->workaround_bugs&FF_BUG_DC_CLIP))
- level=2047;
- }
- dc_val[0]= level;
-
- return ret;
-}
-#endif
+++ /dev/null
-/*
- * MPEG4 video parser prototypes
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2003 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MPEG4VIDEO_PARSER_H
-#define AVCODEC_MPEG4VIDEO_PARSER_H
-
-#include "parser.h"
-
-/**
- * finds the end of the current frame in the bitstream.
- * @return the position of the first byte of the next frame, or -1
- */
-int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
-
-#endif /* AVCODEC_MPEG4VIDEO_PARSER_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpeg audio declarations for both encoder and decoder.
- */
-
-#ifndef AVCODEC_MPEGAUDIO_H
-#define AVCODEC_MPEGAUDIO_H
-
-#include "avcodec.h"
-#include "get_bits.h"
-#include "dsputil.h"
-
-#define CONFIG_AUDIO_NONSHORT 0
-
-/* max frame size, in samples */
-#define MPA_FRAME_SIZE 1152
-
-/* max compressed frame size */
-#define MPA_MAX_CODED_FRAME_SIZE 1792
-
-#define MPA_MAX_CHANNELS 2
-
-#define SBLIMIT 32 /* number of subbands */
-
-#define MPA_STEREO 0
-#define MPA_JSTEREO 1
-#define MPA_DUAL 2
-#define MPA_MONO 3
-
-/* header + layer + bitrate + freq + lsf/mpeg25 */
-#define SAME_HEADER_MASK \
- (0xffe00000 | (3 << 17) | (0xf << 12) | (3 << 10) | (3 << 19))
-
-#define MP3_MASK 0xFFFE0CCF
-
-#if CONFIG_MPEGAUDIO_HP
-#define FRAC_BITS 23 /* fractional bits for sb_samples and dct */
-#define WFRAC_BITS 16 /* fractional bits for window */
-#else
-#define FRAC_BITS 15 /* fractional bits for sb_samples and dct */
-#define WFRAC_BITS 14 /* fractional bits for window */
-#endif
-
-#define FRAC_ONE (1 << FRAC_BITS)
-
-#define FIX(a) ((int)((a) * FRAC_ONE))
-
-#if CONFIG_MPEGAUDIO_HP && CONFIG_AUDIO_NONSHORT
-typedef int32_t OUT_INT;
-#define OUT_MAX INT32_MAX
-#define OUT_MIN INT32_MIN
-#define OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 31)
-#define OUT_FMT SAMPLE_FMT_S32
-#else
-typedef int16_t OUT_INT;
-#define OUT_MAX INT16_MAX
-#define OUT_MIN INT16_MIN
-#define OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 15)
-#define OUT_FMT SAMPLE_FMT_S16
-#endif
-
-#if FRAC_BITS <= 15
-typedef int16_t MPA_INT;
-#else
-typedef int32_t MPA_INT;
-#endif
-
-#define BACKSTEP_SIZE 512
-#define EXTRABYTES 24
-
-/* layer 3 "granule" */
-typedef struct GranuleDef {
- uint8_t scfsi;
- int part2_3_length;
- int big_values;
- int global_gain;
- int scalefac_compress;
- uint8_t block_type;
- uint8_t switch_point;
- int table_select[3];
- int subblock_gain[3];
- uint8_t scalefac_scale;
- uint8_t count1table_select;
- int region_size[3]; /* number of huffman codes in each region */
- int preflag;
- int short_start, long_end; /* long/short band indexes */
- uint8_t scale_factors[40];
- int32_t sb_hybrid[SBLIMIT * 18]; /* 576 samples */
-} GranuleDef;
-
-#define MPA_DECODE_HEADER \
- int frame_size; \
- int error_protection; \
- int layer; \
- int sample_rate; \
- int sample_rate_index; /* between 0 and 8 */ \
- int bit_rate; \
- int nb_channels; \
- int mode; \
- int mode_ext; \
- int lsf;
-
-typedef struct MPADecodeHeader {
- MPA_DECODE_HEADER
-} MPADecodeHeader;
-
-typedef struct MPADecodeContext {
- MPA_DECODE_HEADER
- uint8_t last_buf[2*BACKSTEP_SIZE + EXTRABYTES];
- int last_buf_size;
- /* next header (used in free format parsing) */
- uint32_t free_format_next_header;
- GetBitContext gb;
- GetBitContext in_gb;
- DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512 * 2];
- int synth_buf_offset[MPA_MAX_CHANNELS];
- DECLARE_ALIGNED(16, int32_t, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
- int32_t mdct_buf[MPA_MAX_CHANNELS][SBLIMIT * 18]; /* previous samples, for layer 3 MDCT */
- GranuleDef granules[2][2]; /* Used in Layer 3 */
-#ifdef DEBUG
- int frame_count;
-#endif
- void (*compute_antialias)(struct MPADecodeContext *s, struct GranuleDef *g);
- int adu_mode; ///< 0 for standard mp3, 1 for adu formatted mp3
- int dither_state;
- int error_recognition;
- AVCodecContext* avctx;
-} MPADecodeContext;
-
-/* layer 3 huffman tables */
-typedef struct HuffTable {
- int xsize;
- const uint8_t *bits;
- const uint16_t *codes;
-} HuffTable;
-
-int ff_mpa_l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
-int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
-extern MPA_INT ff_mpa_synth_window[];
-void ff_mpa_synth_init(MPA_INT *window);
-void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset,
- MPA_INT *window, int *dither_state,
- OUT_INT *samples, int incr,
- int32_t sb_samples[SBLIMIT]);
-
-/* fast header check for resync */
-static inline int ff_mpa_check_header(uint32_t header){
- /* header */
- if ((header & 0xffe00000) != 0xffe00000)
- return -1;
- /* layer check */
- if ((header & (3<<17)) == 0)
- return -1;
- /* bit rate */
- if ((header & (0xf<<12)) == 0xf<<12)
- return -1;
- /* frequency */
- if ((header & (3<<10)) == 3<<10)
- return -1;
- return 0;
-}
-
-#endif /* AVCODEC_MPEGAUDIO_H */
+++ /dev/null
-/*
- * Copyright (c) 2007 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/* layer 3 "granule" */
-typedef struct GranuleDef {
- uint8_t scfsi;
- int part2_3_length;
- int big_values;
- int global_gain;
- int scalefac_compress;
- uint8_t block_type;
- uint8_t switch_point;
- int table_select[3];
- int subblock_gain[3];
- uint8_t scalefac_scale;
- uint8_t count1table_select;
- int region_size[3]; /* number of huffman codes in each region */
- int preflag;
- int short_start, long_end; /* long/short band indexes */
- uint8_t scale_factors[40];
- int32_t sb_hybrid[SBLIMIT * 18]; /* 576 samples */
-} GranuleDef;
-
-void ff_mp3_init(void);
-
-/**
- * Compute huffman coded region sizes.
- */
-void ff_init_short_region(MPADecodeContext *s, GranuleDef *g);
-
-/**
- * Compute huffman coded region sizes.
- */
-void ff_init_long_region(MPADecodeContext *s, GranuleDef *g, int ra1, int ra2);
-
-void ff_compute_band_indexes(MPADecodeContext *s, GranuleDef *g);
+++ /dev/null
-/*
- * Header file for hardcoded mpegaudiodec tables
- *
- * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef MPEGAUDIO_TABLEGEN_H
-#define MPEGAUDIO_TABLEGEN_H
-
-#include <stdint.h>
-// do not use libavutil/mathematics.h since this is compiled both
-// for the host and the target and config.h is only valid for the target
-#include <math.h>
-
-#define TABLE_4_3_SIZE (8191 + 16)*4
-#if CONFIG_HARDCODED_TABLES
-#define mpegaudio_tableinit()
-#include "libavcodec/mpegaudio_tables.h"
-#else
-static int8_t table_4_3_exp[TABLE_4_3_SIZE];
-static uint32_t table_4_3_value[TABLE_4_3_SIZE];
-static uint32_t exp_table[512];
-static uint32_t expval_table[512][16];
-
-static void mpegaudio_tableinit(void)
-{
- int i, value, exponent;
- for (i = 1; i < TABLE_4_3_SIZE; i++) {
- double value = i / 4;
- double f, fm;
- int e, m;
- f = value * cbrtf(value) * pow(2, (i & 3) * 0.25);
- fm = frexp(f, &e);
- m = (uint32_t)(fm * (1LL << 31) + 0.5);
- e += FRAC_BITS - 31 + 5 - 100;
-
- /* normalized to FRAC_BITS */
- table_4_3_value[i] = m;
- table_4_3_exp[i] = -e;
- }
- for (exponent = 0; exponent < 512; exponent++) {
- for (value = 0; value < 16; value++) {
- double f = (double)value * cbrtf(value) * pow(2, (exponent - 400) * 0.25 + FRAC_BITS + 5);
- expval_table[exponent][value] = llrint(f);
- }
- exp_table[exponent] = expval_table[exponent][1];
- }
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* MPEGAUDIO_TABLEGEN_H */
+++ /dev/null
-/*
- * MPEG Audio common tables
- * copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpeg audio layer common tables.
- */
-
-#ifndef AVCODEC_MPEGAUDIODATA_H
-#define AVCODEC_MPEGAUDIODATA_H
-
-#include "libavutil/common.h"
-
-#define MODE_EXT_MS_STEREO 2
-#define MODE_EXT_I_STEREO 1
-
-extern const uint16_t ff_mpa_bitrate_tab[2][3][15];
-extern const uint16_t ff_mpa_freq_tab[3];
-extern const int32_t ff_mpa_enwindow[257];
-extern const int ff_mpa_sblimit_table[5];
-extern const int ff_mpa_quant_steps[17];
-extern const int ff_mpa_quant_bits[17];
-extern const unsigned char * const ff_mpa_alloc_tables[5];
-
-#endif /* AVCODEC_MPEGAUDIODATA_H */
+++ /dev/null
-/*
- * MPEG Audio header decoder
- * Copyright (c) 2001, 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MPEG Audio header decoder.
- */
-
-#ifndef AVCODEC_MPEGAUDIODECHEADER_H
-#define AVCODEC_MPEGAUDIODECHEADER_H
-
-#include "libavutil/common.h"
-#include "mpegaudio.h"
-
-
-/* header decoding. MUST check the header before because no
- consistency check is done there. Return 1 if free format found and
- that the frame size must be computed externally */
-int ff_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header);
-
-#endif /* AVCODEC_MPEGAUDIODECHEADER_H */
+++ /dev/null
-/*
- * MPEG Audio decoder
- * copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpeg audio layer decoder tables.
- */
-
-#ifndef AVCODEC_MPEGAUDIODECTAB_H
-#define AVCODEC_MPEGAUDIODECTAB_H
-
-#include <stdint.h>
-#include "mpegaudio.h"
-
-/*******************************************************/
-/* layer 3 tables */
-
-/* layer3 scale factor size */
-static const uint8_t slen_table[2][16] = {
- { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
- { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 },
-};
-
-/* number of lsf scale factors for a given size */
-static const uint8_t lsf_nsf_table[6][3][4] = {
- { { 6, 5, 5, 5 }, { 9, 9, 9, 9 }, { 6, 9, 9, 9 } },
- { { 6, 5, 7, 3 }, { 9, 9, 12, 6 }, { 6, 9, 12, 6 } },
- { { 11, 10, 0, 0 }, { 18, 18, 0, 0 }, { 15, 18, 0, 0 } },
- { { 7, 7, 7, 0 }, { 12, 12, 12, 0 }, { 6, 15, 12, 0 } },
- { { 6, 6, 6, 3 }, { 12, 9, 9, 6 }, { 6, 12, 9, 6 } },
- { { 8, 8, 5, 0 }, { 15, 12, 9, 0 }, { 6, 18, 9, 0 } },
-};
-
-/* mpegaudio layer 3 huffman tables */
-
-static const uint16_t mpa_huffcodes_1[4] = {
- 0x0001, 0x0001, 0x0001, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_1[4] = {
- 1, 3, 2, 3,
-};
-
-static const uint16_t mpa_huffcodes_2[9] = {
- 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
- 0x0000,
-};
-
-static const uint8_t mpa_huffbits_2[9] = {
- 1, 3, 6, 3, 3, 5, 5, 5,
- 6,
-};
-
-static const uint16_t mpa_huffcodes_3[9] = {
- 0x0003, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003, 0x0002,
- 0x0000,
-};
-
-static const uint8_t mpa_huffbits_3[9] = {
- 2, 2, 6, 3, 2, 5, 5, 5,
- 6,
-};
-
-static const uint16_t mpa_huffcodes_5[16] = {
- 0x0001, 0x0002, 0x0006, 0x0005, 0x0003, 0x0001, 0x0004, 0x0004,
- 0x0007, 0x0005, 0x0007, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_5[16] = {
- 1, 3, 6, 7, 3, 3, 6, 7,
- 6, 6, 7, 8, 7, 6, 7, 8,
-};
-
-static const uint16_t mpa_huffcodes_6[16] = {
- 0x0007, 0x0003, 0x0005, 0x0001, 0x0006, 0x0002, 0x0003, 0x0002,
- 0x0005, 0x0004, 0x0004, 0x0001, 0x0003, 0x0003, 0x0002, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_6[16] = {
- 3, 3, 5, 7, 3, 2, 4, 5,
- 4, 4, 5, 6, 6, 5, 6, 7,
-};
-
-static const uint16_t mpa_huffcodes_7[36] = {
- 0x0001, 0x0002, 0x000a, 0x0013, 0x0010, 0x000a, 0x0003, 0x0003,
- 0x0007, 0x000a, 0x0005, 0x0003, 0x000b, 0x0004, 0x000d, 0x0011,
- 0x0008, 0x0004, 0x000c, 0x000b, 0x0012, 0x000f, 0x000b, 0x0002,
- 0x0007, 0x0006, 0x0009, 0x000e, 0x0003, 0x0001, 0x0006, 0x0004,
- 0x0005, 0x0003, 0x0002, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_7[36] = {
- 1, 3, 6, 8, 8, 9, 3, 4,
- 6, 7, 7, 8, 6, 5, 7, 8,
- 8, 9, 7, 7, 8, 9, 9, 9,
- 7, 7, 8, 9, 9, 10, 8, 8,
- 9, 10, 10, 10,
-};
-
-static const uint16_t mpa_huffcodes_8[36] = {
- 0x0003, 0x0004, 0x0006, 0x0012, 0x000c, 0x0005, 0x0005, 0x0001,
- 0x0002, 0x0010, 0x0009, 0x0003, 0x0007, 0x0003, 0x0005, 0x000e,
- 0x0007, 0x0003, 0x0013, 0x0011, 0x000f, 0x000d, 0x000a, 0x0004,
- 0x000d, 0x0005, 0x0008, 0x000b, 0x0005, 0x0001, 0x000c, 0x0004,
- 0x0004, 0x0001, 0x0001, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_8[36] = {
- 2, 3, 6, 8, 8, 9, 3, 2,
- 4, 8, 8, 8, 6, 4, 6, 8,
- 8, 9, 8, 8, 8, 9, 9, 10,
- 8, 7, 8, 9, 10, 10, 9, 8,
- 9, 9, 11, 11,
-};
-
-static const uint16_t mpa_huffcodes_9[36] = {
- 0x0007, 0x0005, 0x0009, 0x000e, 0x000f, 0x0007, 0x0006, 0x0004,
- 0x0005, 0x0005, 0x0006, 0x0007, 0x0007, 0x0006, 0x0008, 0x0008,
- 0x0008, 0x0005, 0x000f, 0x0006, 0x0009, 0x000a, 0x0005, 0x0001,
- 0x000b, 0x0007, 0x0009, 0x0006, 0x0004, 0x0001, 0x000e, 0x0004,
- 0x0006, 0x0002, 0x0006, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_9[36] = {
- 3, 3, 5, 6, 8, 9, 3, 3,
- 4, 5, 6, 8, 4, 4, 5, 6,
- 7, 8, 6, 5, 6, 7, 7, 8,
- 7, 6, 7, 7, 8, 9, 8, 7,
- 8, 8, 9, 9,
-};
-
-static const uint16_t mpa_huffcodes_10[64] = {
- 0x0001, 0x0002, 0x000a, 0x0017, 0x0023, 0x001e, 0x000c, 0x0011,
- 0x0003, 0x0003, 0x0008, 0x000c, 0x0012, 0x0015, 0x000c, 0x0007,
- 0x000b, 0x0009, 0x000f, 0x0015, 0x0020, 0x0028, 0x0013, 0x0006,
- 0x000e, 0x000d, 0x0016, 0x0022, 0x002e, 0x0017, 0x0012, 0x0007,
- 0x0014, 0x0013, 0x0021, 0x002f, 0x001b, 0x0016, 0x0009, 0x0003,
- 0x001f, 0x0016, 0x0029, 0x001a, 0x0015, 0x0014, 0x0005, 0x0003,
- 0x000e, 0x000d, 0x000a, 0x000b, 0x0010, 0x0006, 0x0005, 0x0001,
- 0x0009, 0x0008, 0x0007, 0x0008, 0x0004, 0x0004, 0x0002, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_10[64] = {
- 1, 3, 6, 8, 9, 9, 9, 10,
- 3, 4, 6, 7, 8, 9, 8, 8,
- 6, 6, 7, 8, 9, 10, 9, 9,
- 7, 7, 8, 9, 10, 10, 9, 10,
- 8, 8, 9, 10, 10, 10, 10, 10,
- 9, 9, 10, 10, 11, 11, 10, 11,
- 8, 8, 9, 10, 10, 10, 11, 11,
- 9, 8, 9, 10, 10, 11, 11, 11,
-};
-
-static const uint16_t mpa_huffcodes_11[64] = {
- 0x0003, 0x0004, 0x000a, 0x0018, 0x0022, 0x0021, 0x0015, 0x000f,
- 0x0005, 0x0003, 0x0004, 0x000a, 0x0020, 0x0011, 0x000b, 0x000a,
- 0x000b, 0x0007, 0x000d, 0x0012, 0x001e, 0x001f, 0x0014, 0x0005,
- 0x0019, 0x000b, 0x0013, 0x003b, 0x001b, 0x0012, 0x000c, 0x0005,
- 0x0023, 0x0021, 0x001f, 0x003a, 0x001e, 0x0010, 0x0007, 0x0005,
- 0x001c, 0x001a, 0x0020, 0x0013, 0x0011, 0x000f, 0x0008, 0x000e,
- 0x000e, 0x000c, 0x0009, 0x000d, 0x000e, 0x0009, 0x0004, 0x0001,
- 0x000b, 0x0004, 0x0006, 0x0006, 0x0006, 0x0003, 0x0002, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_11[64] = {
- 2, 3, 5, 7, 8, 9, 8, 9,
- 3, 3, 4, 6, 8, 8, 7, 8,
- 5, 5, 6, 7, 8, 9, 8, 8,
- 7, 6, 7, 9, 8, 10, 8, 9,
- 8, 8, 8, 9, 9, 10, 9, 10,
- 8, 8, 9, 10, 10, 11, 10, 11,
- 8, 7, 7, 8, 9, 10, 10, 10,
- 8, 7, 8, 9, 10, 10, 10, 10,
-};
-
-static const uint16_t mpa_huffcodes_12[64] = {
- 0x0009, 0x0006, 0x0010, 0x0021, 0x0029, 0x0027, 0x0026, 0x001a,
- 0x0007, 0x0005, 0x0006, 0x0009, 0x0017, 0x0010, 0x001a, 0x000b,
- 0x0011, 0x0007, 0x000b, 0x000e, 0x0015, 0x001e, 0x000a, 0x0007,
- 0x0011, 0x000a, 0x000f, 0x000c, 0x0012, 0x001c, 0x000e, 0x0005,
- 0x0020, 0x000d, 0x0016, 0x0013, 0x0012, 0x0010, 0x0009, 0x0005,
- 0x0028, 0x0011, 0x001f, 0x001d, 0x0011, 0x000d, 0x0004, 0x0002,
- 0x001b, 0x000c, 0x000b, 0x000f, 0x000a, 0x0007, 0x0004, 0x0001,
- 0x001b, 0x000c, 0x0008, 0x000c, 0x0006, 0x0003, 0x0001, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_12[64] = {
- 4, 3, 5, 7, 8, 9, 9, 9,
- 3, 3, 4, 5, 7, 7, 8, 8,
- 5, 4, 5, 6, 7, 8, 7, 8,
- 6, 5, 6, 6, 7, 8, 8, 8,
- 7, 6, 7, 7, 8, 8, 8, 9,
- 8, 7, 8, 8, 8, 9, 8, 9,
- 8, 7, 7, 8, 8, 9, 9, 10,
- 9, 8, 8, 9, 9, 9, 9, 10,
-};
-
-static const uint16_t mpa_huffcodes_13[256] = {
- 0x0001, 0x0005, 0x000e, 0x0015, 0x0022, 0x0033, 0x002e, 0x0047,
- 0x002a, 0x0034, 0x0044, 0x0034, 0x0043, 0x002c, 0x002b, 0x0013,
- 0x0003, 0x0004, 0x000c, 0x0013, 0x001f, 0x001a, 0x002c, 0x0021,
- 0x001f, 0x0018, 0x0020, 0x0018, 0x001f, 0x0023, 0x0016, 0x000e,
- 0x000f, 0x000d, 0x0017, 0x0024, 0x003b, 0x0031, 0x004d, 0x0041,
- 0x001d, 0x0028, 0x001e, 0x0028, 0x001b, 0x0021, 0x002a, 0x0010,
- 0x0016, 0x0014, 0x0025, 0x003d, 0x0038, 0x004f, 0x0049, 0x0040,
- 0x002b, 0x004c, 0x0038, 0x0025, 0x001a, 0x001f, 0x0019, 0x000e,
- 0x0023, 0x0010, 0x003c, 0x0039, 0x0061, 0x004b, 0x0072, 0x005b,
- 0x0036, 0x0049, 0x0037, 0x0029, 0x0030, 0x0035, 0x0017, 0x0018,
- 0x003a, 0x001b, 0x0032, 0x0060, 0x004c, 0x0046, 0x005d, 0x0054,
- 0x004d, 0x003a, 0x004f, 0x001d, 0x004a, 0x0031, 0x0029, 0x0011,
- 0x002f, 0x002d, 0x004e, 0x004a, 0x0073, 0x005e, 0x005a, 0x004f,
- 0x0045, 0x0053, 0x0047, 0x0032, 0x003b, 0x0026, 0x0024, 0x000f,
- 0x0048, 0x0022, 0x0038, 0x005f, 0x005c, 0x0055, 0x005b, 0x005a,
- 0x0056, 0x0049, 0x004d, 0x0041, 0x0033, 0x002c, 0x002b, 0x002a,
- 0x002b, 0x0014, 0x001e, 0x002c, 0x0037, 0x004e, 0x0048, 0x0057,
- 0x004e, 0x003d, 0x002e, 0x0036, 0x0025, 0x001e, 0x0014, 0x0010,
- 0x0035, 0x0019, 0x0029, 0x0025, 0x002c, 0x003b, 0x0036, 0x0051,
- 0x0042, 0x004c, 0x0039, 0x0036, 0x0025, 0x0012, 0x0027, 0x000b,
- 0x0023, 0x0021, 0x001f, 0x0039, 0x002a, 0x0052, 0x0048, 0x0050,
- 0x002f, 0x003a, 0x0037, 0x0015, 0x0016, 0x001a, 0x0026, 0x0016,
- 0x0035, 0x0019, 0x0017, 0x0026, 0x0046, 0x003c, 0x0033, 0x0024,
- 0x0037, 0x001a, 0x0022, 0x0017, 0x001b, 0x000e, 0x0009, 0x0007,
- 0x0022, 0x0020, 0x001c, 0x0027, 0x0031, 0x004b, 0x001e, 0x0034,
- 0x0030, 0x0028, 0x0034, 0x001c, 0x0012, 0x0011, 0x0009, 0x0005,
- 0x002d, 0x0015, 0x0022, 0x0040, 0x0038, 0x0032, 0x0031, 0x002d,
- 0x001f, 0x0013, 0x000c, 0x000f, 0x000a, 0x0007, 0x0006, 0x0003,
- 0x0030, 0x0017, 0x0014, 0x0027, 0x0024, 0x0023, 0x0035, 0x0015,
- 0x0010, 0x0017, 0x000d, 0x000a, 0x0006, 0x0001, 0x0004, 0x0002,
- 0x0010, 0x000f, 0x0011, 0x001b, 0x0019, 0x0014, 0x001d, 0x000b,
- 0x0011, 0x000c, 0x0010, 0x0008, 0x0001, 0x0001, 0x0000, 0x0001,
-};
-
-static const uint8_t mpa_huffbits_13[256] = {
- 1, 4, 6, 7, 8, 9, 9, 10,
- 9, 10, 11, 11, 12, 12, 13, 13,
- 3, 4, 6, 7, 8, 8, 9, 9,
- 9, 9, 10, 10, 11, 12, 12, 12,
- 6, 6, 7, 8, 9, 9, 10, 10,
- 9, 10, 10, 11, 11, 12, 13, 13,
- 7, 7, 8, 9, 9, 10, 10, 10,
- 10, 11, 11, 11, 11, 12, 13, 13,
- 8, 7, 9, 9, 10, 10, 11, 11,
- 10, 11, 11, 12, 12, 13, 13, 14,
- 9, 8, 9, 10, 10, 10, 11, 11,
- 11, 11, 12, 11, 13, 13, 14, 14,
- 9, 9, 10, 10, 11, 11, 11, 11,
- 11, 12, 12, 12, 13, 13, 14, 14,
- 10, 9, 10, 11, 11, 11, 12, 12,
- 12, 12, 13, 13, 13, 14, 16, 16,
- 9, 8, 9, 10, 10, 11, 11, 12,
- 12, 12, 12, 13, 13, 14, 15, 15,
- 10, 9, 10, 10, 11, 11, 11, 13,
- 12, 13, 13, 14, 14, 14, 16, 15,
- 10, 10, 10, 11, 11, 12, 12, 13,
- 12, 13, 14, 13, 14, 15, 16, 17,
- 11, 10, 10, 11, 12, 12, 12, 12,
- 13, 13, 13, 14, 15, 15, 15, 16,
- 11, 11, 11, 12, 12, 13, 12, 13,
- 14, 14, 15, 15, 15, 16, 16, 16,
- 12, 11, 12, 13, 13, 13, 14, 14,
- 14, 14, 14, 15, 16, 15, 16, 16,
- 13, 12, 12, 13, 13, 13, 15, 14,
- 14, 17, 15, 15, 15, 17, 16, 16,
- 12, 12, 13, 14, 14, 14, 15, 14,
- 15, 15, 16, 16, 19, 18, 19, 16,
-};
-
-static const uint16_t mpa_huffcodes_15[256] = {
- 0x0007, 0x000c, 0x0012, 0x0035, 0x002f, 0x004c, 0x007c, 0x006c,
- 0x0059, 0x007b, 0x006c, 0x0077, 0x006b, 0x0051, 0x007a, 0x003f,
- 0x000d, 0x0005, 0x0010, 0x001b, 0x002e, 0x0024, 0x003d, 0x0033,
- 0x002a, 0x0046, 0x0034, 0x0053, 0x0041, 0x0029, 0x003b, 0x0024,
- 0x0013, 0x0011, 0x000f, 0x0018, 0x0029, 0x0022, 0x003b, 0x0030,
- 0x0028, 0x0040, 0x0032, 0x004e, 0x003e, 0x0050, 0x0038, 0x0021,
- 0x001d, 0x001c, 0x0019, 0x002b, 0x0027, 0x003f, 0x0037, 0x005d,
- 0x004c, 0x003b, 0x005d, 0x0048, 0x0036, 0x004b, 0x0032, 0x001d,
- 0x0034, 0x0016, 0x002a, 0x0028, 0x0043, 0x0039, 0x005f, 0x004f,
- 0x0048, 0x0039, 0x0059, 0x0045, 0x0031, 0x0042, 0x002e, 0x001b,
- 0x004d, 0x0025, 0x0023, 0x0042, 0x003a, 0x0034, 0x005b, 0x004a,
- 0x003e, 0x0030, 0x004f, 0x003f, 0x005a, 0x003e, 0x0028, 0x0026,
- 0x007d, 0x0020, 0x003c, 0x0038, 0x0032, 0x005c, 0x004e, 0x0041,
- 0x0037, 0x0057, 0x0047, 0x0033, 0x0049, 0x0033, 0x0046, 0x001e,
- 0x006d, 0x0035, 0x0031, 0x005e, 0x0058, 0x004b, 0x0042, 0x007a,
- 0x005b, 0x0049, 0x0038, 0x002a, 0x0040, 0x002c, 0x0015, 0x0019,
- 0x005a, 0x002b, 0x0029, 0x004d, 0x0049, 0x003f, 0x0038, 0x005c,
- 0x004d, 0x0042, 0x002f, 0x0043, 0x0030, 0x0035, 0x0024, 0x0014,
- 0x0047, 0x0022, 0x0043, 0x003c, 0x003a, 0x0031, 0x0058, 0x004c,
- 0x0043, 0x006a, 0x0047, 0x0036, 0x0026, 0x0027, 0x0017, 0x000f,
- 0x006d, 0x0035, 0x0033, 0x002f, 0x005a, 0x0052, 0x003a, 0x0039,
- 0x0030, 0x0048, 0x0039, 0x0029, 0x0017, 0x001b, 0x003e, 0x0009,
- 0x0056, 0x002a, 0x0028, 0x0025, 0x0046, 0x0040, 0x0034, 0x002b,
- 0x0046, 0x0037, 0x002a, 0x0019, 0x001d, 0x0012, 0x000b, 0x000b,
- 0x0076, 0x0044, 0x001e, 0x0037, 0x0032, 0x002e, 0x004a, 0x0041,
- 0x0031, 0x0027, 0x0018, 0x0010, 0x0016, 0x000d, 0x000e, 0x0007,
- 0x005b, 0x002c, 0x0027, 0x0026, 0x0022, 0x003f, 0x0034, 0x002d,
- 0x001f, 0x0034, 0x001c, 0x0013, 0x000e, 0x0008, 0x0009, 0x0003,
- 0x007b, 0x003c, 0x003a, 0x0035, 0x002f, 0x002b, 0x0020, 0x0016,
- 0x0025, 0x0018, 0x0011, 0x000c, 0x000f, 0x000a, 0x0002, 0x0001,
- 0x0047, 0x0025, 0x0022, 0x001e, 0x001c, 0x0014, 0x0011, 0x001a,
- 0x0015, 0x0010, 0x000a, 0x0006, 0x0008, 0x0006, 0x0002, 0x0000,
-};
-
-static const uint8_t mpa_huffbits_15[256] = {
- 3, 4, 5, 7, 7, 8, 9, 9,
- 9, 10, 10, 11, 11, 11, 12, 13,
- 4, 3, 5, 6, 7, 7, 8, 8,
- 8, 9, 9, 10, 10, 10, 11, 11,
- 5, 5, 5, 6, 7, 7, 8, 8,
- 8, 9, 9, 10, 10, 11, 11, 11,
- 6, 6, 6, 7, 7, 8, 8, 9,
- 9, 9, 10, 10, 10, 11, 11, 11,
- 7, 6, 7, 7, 8, 8, 9, 9,
- 9, 9, 10, 10, 10, 11, 11, 11,
- 8, 7, 7, 8, 8, 8, 9, 9,
- 9, 9, 10, 10, 11, 11, 11, 12,
- 9, 7, 8, 8, 8, 9, 9, 9,
- 9, 10, 10, 10, 11, 11, 12, 12,
- 9, 8, 8, 9, 9, 9, 9, 10,
- 10, 10, 10, 10, 11, 11, 11, 12,
- 9, 8, 8, 9, 9, 9, 9, 10,
- 10, 10, 10, 11, 11, 12, 12, 12,
- 9, 8, 9, 9, 9, 9, 10, 10,
- 10, 11, 11, 11, 11, 12, 12, 12,
- 10, 9, 9, 9, 10, 10, 10, 10,
- 10, 11, 11, 11, 11, 12, 13, 12,
- 10, 9, 9, 9, 10, 10, 10, 10,
- 11, 11, 11, 11, 12, 12, 12, 13,
- 11, 10, 9, 10, 10, 10, 11, 11,
- 11, 11, 11, 11, 12, 12, 13, 13,
- 11, 10, 10, 10, 10, 11, 11, 11,
- 11, 12, 12, 12, 12, 12, 13, 13,
- 12, 11, 11, 11, 11, 11, 11, 11,
- 12, 12, 12, 12, 13, 13, 12, 13,
- 12, 11, 11, 11, 11, 11, 11, 12,
- 12, 12, 12, 12, 13, 13, 13, 13,
-};
-
-static const uint16_t mpa_huffcodes_16[256] = {
- 0x0001, 0x0005, 0x000e, 0x002c, 0x004a, 0x003f, 0x006e, 0x005d,
- 0x00ac, 0x0095, 0x008a, 0x00f2, 0x00e1, 0x00c3, 0x0178, 0x0011,
- 0x0003, 0x0004, 0x000c, 0x0014, 0x0023, 0x003e, 0x0035, 0x002f,
- 0x0053, 0x004b, 0x0044, 0x0077, 0x00c9, 0x006b, 0x00cf, 0x0009,
- 0x000f, 0x000d, 0x0017, 0x0026, 0x0043, 0x003a, 0x0067, 0x005a,
- 0x00a1, 0x0048, 0x007f, 0x0075, 0x006e, 0x00d1, 0x00ce, 0x0010,
- 0x002d, 0x0015, 0x0027, 0x0045, 0x0040, 0x0072, 0x0063, 0x0057,
- 0x009e, 0x008c, 0x00fc, 0x00d4, 0x00c7, 0x0183, 0x016d, 0x001a,
- 0x004b, 0x0024, 0x0044, 0x0041, 0x0073, 0x0065, 0x00b3, 0x00a4,
- 0x009b, 0x0108, 0x00f6, 0x00e2, 0x018b, 0x017e, 0x016a, 0x0009,
- 0x0042, 0x001e, 0x003b, 0x0038, 0x0066, 0x00b9, 0x00ad, 0x0109,
- 0x008e, 0x00fd, 0x00e8, 0x0190, 0x0184, 0x017a, 0x01bd, 0x0010,
- 0x006f, 0x0036, 0x0034, 0x0064, 0x00b8, 0x00b2, 0x00a0, 0x0085,
- 0x0101, 0x00f4, 0x00e4, 0x00d9, 0x0181, 0x016e, 0x02cb, 0x000a,
- 0x0062, 0x0030, 0x005b, 0x0058, 0x00a5, 0x009d, 0x0094, 0x0105,
- 0x00f8, 0x0197, 0x018d, 0x0174, 0x017c, 0x0379, 0x0374, 0x0008,
- 0x0055, 0x0054, 0x0051, 0x009f, 0x009c, 0x008f, 0x0104, 0x00f9,
- 0x01ab, 0x0191, 0x0188, 0x017f, 0x02d7, 0x02c9, 0x02c4, 0x0007,
- 0x009a, 0x004c, 0x0049, 0x008d, 0x0083, 0x0100, 0x00f5, 0x01aa,
- 0x0196, 0x018a, 0x0180, 0x02df, 0x0167, 0x02c6, 0x0160, 0x000b,
- 0x008b, 0x0081, 0x0043, 0x007d, 0x00f7, 0x00e9, 0x00e5, 0x00db,
- 0x0189, 0x02e7, 0x02e1, 0x02d0, 0x0375, 0x0372, 0x01b7, 0x0004,
- 0x00f3, 0x0078, 0x0076, 0x0073, 0x00e3, 0x00df, 0x018c, 0x02ea,
- 0x02e6, 0x02e0, 0x02d1, 0x02c8, 0x02c2, 0x00df, 0x01b4, 0x0006,
- 0x00ca, 0x00e0, 0x00de, 0x00da, 0x00d8, 0x0185, 0x0182, 0x017d,
- 0x016c, 0x0378, 0x01bb, 0x02c3, 0x01b8, 0x01b5, 0x06c0, 0x0004,
- 0x02eb, 0x00d3, 0x00d2, 0x00d0, 0x0172, 0x017b, 0x02de, 0x02d3,
- 0x02ca, 0x06c7, 0x0373, 0x036d, 0x036c, 0x0d83, 0x0361, 0x0002,
- 0x0179, 0x0171, 0x0066, 0x00bb, 0x02d6, 0x02d2, 0x0166, 0x02c7,
- 0x02c5, 0x0362, 0x06c6, 0x0367, 0x0d82, 0x0366, 0x01b2, 0x0000,
- 0x000c, 0x000a, 0x0007, 0x000b, 0x000a, 0x0011, 0x000b, 0x0009,
- 0x000d, 0x000c, 0x000a, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
-};
-
-static const uint8_t mpa_huffbits_16[256] = {
- 1, 4, 6, 8, 9, 9, 10, 10,
- 11, 11, 11, 12, 12, 12, 13, 9,
- 3, 4, 6, 7, 8, 9, 9, 9,
- 10, 10, 10, 11, 12, 11, 12, 8,
- 6, 6, 7, 8, 9, 9, 10, 10,
- 11, 10, 11, 11, 11, 12, 12, 9,
- 8, 7, 8, 9, 9, 10, 10, 10,
- 11, 11, 12, 12, 12, 13, 13, 10,
- 9, 8, 9, 9, 10, 10, 11, 11,
- 11, 12, 12, 12, 13, 13, 13, 9,
- 9, 8, 9, 9, 10, 11, 11, 12,
- 11, 12, 12, 13, 13, 13, 14, 10,
- 10, 9, 9, 10, 11, 11, 11, 11,
- 12, 12, 12, 12, 13, 13, 14, 10,
- 10, 9, 10, 10, 11, 11, 11, 12,
- 12, 13, 13, 13, 13, 15, 15, 10,
- 10, 10, 10, 11, 11, 11, 12, 12,
- 13, 13, 13, 13, 14, 14, 14, 10,
- 11, 10, 10, 11, 11, 12, 12, 13,
- 13, 13, 13, 14, 13, 14, 13, 11,
- 11, 11, 10, 11, 12, 12, 12, 12,
- 13, 14, 14, 14, 15, 15, 14, 10,
- 12, 11, 11, 11, 12, 12, 13, 14,
- 14, 14, 14, 14, 14, 13, 14, 11,
- 12, 12, 12, 12, 12, 13, 13, 13,
- 13, 15, 14, 14, 14, 14, 16, 11,
- 14, 12, 12, 12, 13, 13, 14, 14,
- 14, 16, 15, 15, 15, 17, 15, 11,
- 13, 13, 11, 12, 14, 14, 13, 14,
- 14, 15, 16, 15, 17, 15, 14, 11,
- 9, 8, 8, 9, 9, 10, 10, 10,
- 11, 11, 11, 11, 11, 11, 11, 8,
-};
-
-static const uint16_t mpa_huffcodes_24[256] = {
- 0x000f, 0x000d, 0x002e, 0x0050, 0x0092, 0x0106, 0x00f8, 0x01b2,
- 0x01aa, 0x029d, 0x028d, 0x0289, 0x026d, 0x0205, 0x0408, 0x0058,
- 0x000e, 0x000c, 0x0015, 0x0026, 0x0047, 0x0082, 0x007a, 0x00d8,
- 0x00d1, 0x00c6, 0x0147, 0x0159, 0x013f, 0x0129, 0x0117, 0x002a,
- 0x002f, 0x0016, 0x0029, 0x004a, 0x0044, 0x0080, 0x0078, 0x00dd,
- 0x00cf, 0x00c2, 0x00b6, 0x0154, 0x013b, 0x0127, 0x021d, 0x0012,
- 0x0051, 0x0027, 0x004b, 0x0046, 0x0086, 0x007d, 0x0074, 0x00dc,
- 0x00cc, 0x00be, 0x00b2, 0x0145, 0x0137, 0x0125, 0x010f, 0x0010,
- 0x0093, 0x0048, 0x0045, 0x0087, 0x007f, 0x0076, 0x0070, 0x00d2,
- 0x00c8, 0x00bc, 0x0160, 0x0143, 0x0132, 0x011d, 0x021c, 0x000e,
- 0x0107, 0x0042, 0x0081, 0x007e, 0x0077, 0x0072, 0x00d6, 0x00ca,
- 0x00c0, 0x00b4, 0x0155, 0x013d, 0x012d, 0x0119, 0x0106, 0x000c,
- 0x00f9, 0x007b, 0x0079, 0x0075, 0x0071, 0x00d7, 0x00ce, 0x00c3,
- 0x00b9, 0x015b, 0x014a, 0x0134, 0x0123, 0x0110, 0x0208, 0x000a,
- 0x01b3, 0x0073, 0x006f, 0x006d, 0x00d3, 0x00cb, 0x00c4, 0x00bb,
- 0x0161, 0x014c, 0x0139, 0x012a, 0x011b, 0x0213, 0x017d, 0x0011,
- 0x01ab, 0x00d4, 0x00d0, 0x00cd, 0x00c9, 0x00c1, 0x00ba, 0x00b1,
- 0x00a9, 0x0140, 0x012f, 0x011e, 0x010c, 0x0202, 0x0179, 0x0010,
- 0x014f, 0x00c7, 0x00c5, 0x00bf, 0x00bd, 0x00b5, 0x00ae, 0x014d,
- 0x0141, 0x0131, 0x0121, 0x0113, 0x0209, 0x017b, 0x0173, 0x000b,
- 0x029c, 0x00b8, 0x00b7, 0x00b3, 0x00af, 0x0158, 0x014b, 0x013a,
- 0x0130, 0x0122, 0x0115, 0x0212, 0x017f, 0x0175, 0x016e, 0x000a,
- 0x028c, 0x015a, 0x00ab, 0x00a8, 0x00a4, 0x013e, 0x0135, 0x012b,
- 0x011f, 0x0114, 0x0107, 0x0201, 0x0177, 0x0170, 0x016a, 0x0006,
- 0x0288, 0x0142, 0x013c, 0x0138, 0x0133, 0x012e, 0x0124, 0x011c,
- 0x010d, 0x0105, 0x0200, 0x0178, 0x0172, 0x016c, 0x0167, 0x0004,
- 0x026c, 0x012c, 0x0128, 0x0126, 0x0120, 0x011a, 0x0111, 0x010a,
- 0x0203, 0x017c, 0x0176, 0x0171, 0x016d, 0x0169, 0x0165, 0x0002,
- 0x0409, 0x0118, 0x0116, 0x0112, 0x010b, 0x0108, 0x0103, 0x017e,
- 0x017a, 0x0174, 0x016f, 0x016b, 0x0168, 0x0166, 0x0164, 0x0000,
- 0x002b, 0x0014, 0x0013, 0x0011, 0x000f, 0x000d, 0x000b, 0x0009,
- 0x0007, 0x0006, 0x0004, 0x0007, 0x0005, 0x0003, 0x0001, 0x0003,
-};
-
-static const uint8_t mpa_huffbits_24[256] = {
- 4, 4, 6, 7, 8, 9, 9, 10,
- 10, 11, 11, 11, 11, 11, 12, 9,
- 4, 4, 5, 6, 7, 8, 8, 9,
- 9, 9, 10, 10, 10, 10, 10, 8,
- 6, 5, 6, 7, 7, 8, 8, 9,
- 9, 9, 9, 10, 10, 10, 11, 7,
- 7, 6, 7, 7, 8, 8, 8, 9,
- 9, 9, 9, 10, 10, 10, 10, 7,
- 8, 7, 7, 8, 8, 8, 8, 9,
- 9, 9, 10, 10, 10, 10, 11, 7,
- 9, 7, 8, 8, 8, 8, 9, 9,
- 9, 9, 10, 10, 10, 10, 10, 7,
- 9, 8, 8, 8, 8, 9, 9, 9,
- 9, 10, 10, 10, 10, 10, 11, 7,
- 10, 8, 8, 8, 9, 9, 9, 9,
- 10, 10, 10, 10, 10, 11, 11, 8,
- 10, 9, 9, 9, 9, 9, 9, 9,
- 9, 10, 10, 10, 10, 11, 11, 8,
- 10, 9, 9, 9, 9, 9, 9, 10,
- 10, 10, 10, 10, 11, 11, 11, 8,
- 11, 9, 9, 9, 9, 10, 10, 10,
- 10, 10, 10, 11, 11, 11, 11, 8,
- 11, 10, 9, 9, 9, 10, 10, 10,
- 10, 10, 10, 11, 11, 11, 11, 8,
- 11, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 11, 11, 11, 11, 11, 8,
- 11, 10, 10, 10, 10, 10, 10, 10,
- 11, 11, 11, 11, 11, 11, 11, 8,
- 12, 10, 10, 10, 10, 10, 10, 11,
- 11, 11, 11, 11, 11, 11, 11, 8,
- 8, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 8, 8, 8, 8, 4,
-};
-
-static const HuffTable mpa_huff_tables[16] = {
-{ 1, NULL, NULL },
-{ 2, mpa_huffbits_1, mpa_huffcodes_1 },
-{ 3, mpa_huffbits_2, mpa_huffcodes_2 },
-{ 3, mpa_huffbits_3, mpa_huffcodes_3 },
-{ 4, mpa_huffbits_5, mpa_huffcodes_5 },
-{ 4, mpa_huffbits_6, mpa_huffcodes_6 },
-{ 6, mpa_huffbits_7, mpa_huffcodes_7 },
-{ 6, mpa_huffbits_8, mpa_huffcodes_8 },
-{ 6, mpa_huffbits_9, mpa_huffcodes_9 },
-{ 8, mpa_huffbits_10, mpa_huffcodes_10 },
-{ 8, mpa_huffbits_11, mpa_huffcodes_11 },
-{ 8, mpa_huffbits_12, mpa_huffcodes_12 },
-{ 16, mpa_huffbits_13, mpa_huffcodes_13 },
-{ 16, mpa_huffbits_15, mpa_huffcodes_15 },
-{ 16, mpa_huffbits_16, mpa_huffcodes_16 },
-{ 16, mpa_huffbits_24, mpa_huffcodes_24 },
-};
-
-static const uint8_t mpa_huff_data[32][2] = {
-{ 0, 0 },
-{ 1, 0 },
-{ 2, 0 },
-{ 3, 0 },
-{ 0, 0 },
-{ 4, 0 },
-{ 5, 0 },
-{ 6, 0 },
-{ 7, 0 },
-{ 8, 0 },
-{ 9, 0 },
-{ 10, 0 },
-{ 11, 0 },
-{ 12, 0 },
-{ 0, 0 },
-{ 13, 0 },
-{ 14, 1 },
-{ 14, 2 },
-{ 14, 3 },
-{ 14, 4 },
-{ 14, 6 },
-{ 14, 8 },
-{ 14, 10 },
-{ 14, 13 },
-{ 15, 4 },
-{ 15, 5 },
-{ 15, 6 },
-{ 15, 7 },
-{ 15, 8 },
-{ 15, 9 },
-{ 15, 11 },
-{ 15, 13 },
-};
-
-
-/* huffman tables for quadrules */
-static const uint8_t mpa_quad_codes[2][16] = {
- { 1, 5, 4, 5, 6, 5, 4, 4, 7, 3, 6, 0, 7, 2, 3, 1, },
- { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, },
-};
-
-static const uint8_t mpa_quad_bits[2][16] = {
- { 1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6, },
- { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, },
-};
-
-/* band size tables */
-static const uint8_t band_size_long[9][22] = {
-{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10,
- 12, 16, 20, 24, 28, 34, 42, 50, 54, 76, 158, }, /* 44100 */
-{ 4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 10,
- 12, 16, 18, 22, 28, 34, 40, 46, 54, 54, 192, }, /* 48000 */
-{ 4, 4, 4, 4, 4, 4, 6, 6, 8, 10, 12,
- 16, 20, 24, 30, 38, 46, 56, 68, 84, 102, 26, }, /* 32000 */
-{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
- 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 22050 */
-{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
- 18, 22, 26, 32, 38, 46, 52, 64, 70, 76, 36, }, /* 24000 */
-{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
- 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 16000 */
-{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
- 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 11025 */
-{ 6, 6, 6, 6, 6, 6, 8, 10, 12, 14, 16,
- 20, 24, 28, 32, 38, 46, 52, 60, 68, 58, 54, }, /* 12000 */
-{ 12, 12, 12, 12, 12, 12, 16, 20, 24, 28, 32,
- 40, 48, 56, 64, 76, 90, 2, 2, 2, 2, 2, }, /* 8000 */
-};
-
-static const uint8_t band_size_short[9][13] = {
-{ 4, 4, 4, 4, 6, 8, 10, 12, 14, 18, 22, 30, 56, }, /* 44100 */
-{ 4, 4, 4, 4, 6, 6, 10, 12, 14, 16, 20, 26, 66, }, /* 48000 */
-{ 4, 4, 4, 4, 6, 8, 12, 16, 20, 26, 34, 42, 12, }, /* 32000 */
-{ 4, 4, 4, 6, 6, 8, 10, 14, 18, 26, 32, 42, 18, }, /* 22050 */
-{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 32, 44, 12, }, /* 24000 */
-{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 16000 */
-{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 11025 */
-{ 4, 4, 4, 6, 8, 10, 12, 14, 18, 24, 30, 40, 18, }, /* 12000 */
-{ 8, 8, 8, 12, 16, 20, 24, 28, 36, 2, 2, 2, 26, }, /* 8000 */
-};
-
-static const uint8_t mpa_pretab[2][22] = {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0 },
-};
-
-/* table for alias reduction (XXX: store it as integer !) */
-static const float ci_table[8] = {
- -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037,
-};
-
-#endif /* AVCODEC_MPEGAUDIODECTAB_H */
+++ /dev/null
-/*
- * mpeg audio layer 2 tables. Most of them come from the mpeg audio
- * specification.
- *
- * Copyright (c) 2000, 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpeg audio layer 2 tables.
- * Most of them come from the mpeg audio specification.
- */
-
-#ifndef AVCODEC_MPEGAUDIOTAB_H
-#define AVCODEC_MPEGAUDIOTAB_H
-
-#include <stdint.h>
-#include "mpegaudio.h"
-
-#define SQRT2 1.41421356237309514547
-
-static const int costab32[30] = {
- FIX(0.54119610014619701222),
- FIX(1.3065629648763763537),
-
- FIX(0.50979557910415917998),
- FIX(2.5629154477415054814),
- FIX(0.89997622313641556513),
- FIX(0.60134488693504528634),
-
- FIX(0.5024192861881556782),
- FIX(5.1011486186891552563),
- FIX(0.78815462345125020249),
- FIX(0.64682178335999007679),
- FIX(0.56694403481635768927),
- FIX(1.0606776859903470633),
- FIX(1.7224470982383341955),
- FIX(0.52249861493968885462),
-
- FIX(10.19000812354803287),
- FIX(0.674808341455005678),
- FIX(1.1694399334328846596),
- FIX(0.53104259108978413284),
- FIX(2.0577810099534108446),
- FIX(0.58293496820613388554),
- FIX(0.83934964541552681272),
- FIX(0.50547095989754364798),
- FIX(3.4076084184687189804),
- FIX(0.62250412303566482475),
- FIX(0.97256823786196078263),
- FIX(0.51544730992262455249),
- FIX(1.4841646163141661852),
- FIX(0.5531038960344445421),
- FIX(0.74453627100229857749),
- FIX(0.5006029982351962726),
-};
-
-static const int bitinv32[32] = {
- 0, 16, 8, 24, 4, 20, 12, 28,
- 2, 18, 10, 26, 6, 22, 14, 30,
- 1, 17, 9, 25, 5, 21, 13, 29,
- 3, 19, 11, 27, 7, 23, 15, 31
-};
-
-
-static int16_t filter_bank[512];
-
-static int scale_factor_table[64];
-#ifdef USE_FLOATS
-static float scale_factor_inv_table[64];
-#else
-static int8_t scale_factor_shift[64];
-static unsigned short scale_factor_mult[64];
-#endif
-static unsigned char scale_diff_table[128];
-
-/* total number of bits per allocation group */
-static unsigned short total_quant_bits[17];
-
-/* signal to noise ratio of each quantification step (could be
- computed from quant_steps[]). The values are dB multiplied by 10
-*/
-static const unsigned short quant_snr[17] = {
- 70, 110, 160, 208,
- 253, 316, 378, 439,
- 499, 559, 620, 680,
- 740, 800, 861, 920,
- 980
-};
-
-/* fixed psycho acoustic model. Values of SNR taken from the 'toolame'
- project */
-static const float fixed_smr[SBLIMIT] = {
- 30, 17, 16, 10, 3, 12, 8, 2.5,
- 5, 5, 6, 6, 5, 6, 10, 6,
- -4, -10, -21, -30, -42, -55, -68, -75,
- -75, -75, -75, -75, -91, -107, -110, -108
-};
-
-static const unsigned char nb_scale_factors[4] = { 3, 2, 1, 2 };
-
-#endif /* AVCODEC_MPEGAUDIOTAB_H */
+++ /dev/null
-/*
- * Generic DCT based hybrid video encoder
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * mpegvideo header.
- */
-
-#ifndef AVCODEC_MPEGVIDEO_H
-#define AVCODEC_MPEGVIDEO_H
-
-#include "dsputil.h"
-#include "get_bits.h"
-#include "put_bits.h"
-#include "ratecontrol.h"
-#include "parser.h"
-#include "mpeg12data.h"
-#include "rl.h"
-
-#define FRAME_SKIPPED 100 ///< return value for header parsers if frame is not coded
-
-enum OutputFormat {
- FMT_MPEG1,
- FMT_H261,
- FMT_H263,
- FMT_MJPEG,
- FMT_H264,
-};
-
-#define MPEG_BUF_SIZE (16 * 1024)
-
-#define QMAT_SHIFT_MMX 16
-#define QMAT_SHIFT 22
-
-#define MAX_FCODE 7
-#define MAX_MV 2048
-
-#define MAX_THREADS 16
-
-#define MAX_PICTURE_COUNT 32
-
-#define ME_MAP_SIZE 64
-#define ME_MAP_SHIFT 3
-#define ME_MAP_MV_BITS 11
-
-#define MAX_MB_BYTES (30*16*16*3/8 + 120)
-
-#define INPLACE_OFFSET 16
-
-/* Start codes. */
-#define SEQ_END_CODE 0x000001b7
-#define SEQ_START_CODE 0x000001b3
-#define GOP_START_CODE 0x000001b8
-#define PICTURE_START_CODE 0x00000100
-#define SLICE_MIN_START_CODE 0x00000101
-#define SLICE_MAX_START_CODE 0x000001af
-#define EXT_START_CODE 0x000001b5
-#define USER_START_CODE 0x000001b2
-
-/**
- * Picture.
- */
-typedef struct Picture{
- FF_COMMON_FRAME
-
- /**
- * halfpel luma planes.
- */
- uint8_t *interpolated[3];
- int16_t (*motion_val_base[2])[2];
- uint32_t *mb_type_base;
-#define MB_TYPE_INTRA MB_TYPE_INTRA4x4 //default mb_type if there is just one type
-#define IS_INTRA4x4(a) ((a)&MB_TYPE_INTRA4x4)
-#define IS_INTRA16x16(a) ((a)&MB_TYPE_INTRA16x16)
-#define IS_PCM(a) ((a)&MB_TYPE_INTRA_PCM)
-#define IS_INTRA(a) ((a)&7)
-#define IS_INTER(a) ((a)&(MB_TYPE_16x16|MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8))
-#define IS_SKIP(a) ((a)&MB_TYPE_SKIP)
-#define IS_INTRA_PCM(a) ((a)&MB_TYPE_INTRA_PCM)
-#define IS_INTERLACED(a) ((a)&MB_TYPE_INTERLACED)
-#define IS_DIRECT(a) ((a)&MB_TYPE_DIRECT2)
-#define IS_GMC(a) ((a)&MB_TYPE_GMC)
-#define IS_16X16(a) ((a)&MB_TYPE_16x16)
-#define IS_16X8(a) ((a)&MB_TYPE_16x8)
-#define IS_8X16(a) ((a)&MB_TYPE_8x16)
-#define IS_8X8(a) ((a)&MB_TYPE_8x8)
-#define IS_SUB_8X8(a) ((a)&MB_TYPE_16x16) //note reused
-#define IS_SUB_8X4(a) ((a)&MB_TYPE_16x8) //note reused
-#define IS_SUB_4X8(a) ((a)&MB_TYPE_8x16) //note reused
-#define IS_SUB_4X4(a) ((a)&MB_TYPE_8x8) //note reused
-#define IS_ACPRED(a) ((a)&MB_TYPE_ACPRED)
-#define IS_QUANT(a) ((a)&MB_TYPE_QUANT)
-#define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0<<((part)+2*(list))))
-#define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0|MB_TYPE_P1L0)<<(2*(list)))) ///< does this mb use listX, note does not work if subMBs
-#define HAS_CBP(a) ((a)&MB_TYPE_CBP)
-
- int field_poc[2]; ///< h264 top/bottom POC
- int poc; ///< h264 frame POC
- int frame_num; ///< h264 frame_num (raw frame_num from slice header)
- int mmco_reset; ///< h264 MMCO_RESET set this 1. Reordering code must not mix pictures before and after MMCO_RESET.
- int pic_id; /**< h264 pic_num (short -> no wrap version of pic_num,
- pic_num & max_pic_num; long -> long_pic_num) */
- int long_ref; ///< 1->long term reference 0->short term reference
- int ref_poc[2][2][16]; ///< h264 POCs of the frames used as reference (FIXME need per slice)
- int ref_count[2][2]; ///< number of entries in ref_poc (FIXME need per slice)
- int mbaff; ///< h264 1 -> MBAFF frame 0-> not MBAFF
-
- int mb_var_sum; ///< sum of MB variance for current frame
- int mc_mb_var_sum; ///< motion compensated MB variance for current frame
- uint16_t *mb_var; ///< Table for MB variances
- uint16_t *mc_mb_var; ///< Table for motion compensated MB variances
- uint8_t *mb_mean; ///< Table for MB luminance
- int32_t *mb_cmp_score; ///< Table for MB cmp scores, for mb decision FIXME remove
- int b_frame_score; /* */
-} Picture;
-
-struct MpegEncContext;
-
-/**
- * Motion estimation context.
- */
-typedef struct MotionEstContext{
- AVCodecContext *avctx;
- int skip; ///< set if ME is skipped for the current MB
- int co_located_mv[4][2]; ///< mv from last P-frame for direct mode ME
- int direct_basis_mv[4][2];
- uint8_t *scratchpad; ///< data area for the ME algo, so that the ME does not need to malloc/free
- uint8_t *best_mb;
- uint8_t *temp_mb[2];
- uint8_t *temp;
- int best_bits;
- uint32_t *map; ///< map to avoid duplicate evaluations
- uint32_t *score_map; ///< map to store the scores
- int map_generation;
- int pre_penalty_factor;
- int penalty_factor; /*!< an estimate of the bits required to
- code a given mv value, e.g. (1,0) takes
- more bits than (0,0). We have to
- estimate whether any reduction in
- residual is worth the extra bits. */
- int sub_penalty_factor;
- int mb_penalty_factor;
- int flags;
- int sub_flags;
- int mb_flags;
- int pre_pass; ///< = 1 for the pre pass
- int dia_size;
- int xmin;
- int xmax;
- int ymin;
- int ymax;
- int pred_x;
- int pred_y;
- uint8_t *src[4][4];
- uint8_t *ref[4][4];
- int stride;
- int uvstride;
- /* temp variables for picture complexity calculation */
- int mc_mb_var_sum_temp;
- int mb_var_sum_temp;
- int scene_change_score;
-/* cmp, chroma_cmp;*/
- op_pixels_func (*hpel_put)[4];
- op_pixels_func (*hpel_avg)[4];
- qpel_mc_func (*qpel_put)[16];
- qpel_mc_func (*qpel_avg)[16];
- uint8_t (*mv_penalty)[MAX_MV*2+1]; ///< amount of bits needed to encode a MV
- uint8_t *current_mv_penalty;
- int (*sub_motion_search)(struct MpegEncContext * s,
- int *mx_ptr, int *my_ptr, int dmin,
- int src_index, int ref_index,
- int size, int h);
-}MotionEstContext;
-
-/**
- * MpegEncContext.
- */
-typedef struct MpegEncContext {
- struct AVCodecContext *avctx;
- /* the following parameters must be initialized before encoding */
- int width, height;///< picture size. must be a multiple of 16
- int gop_size;
- int intra_only; ///< if true, only intra pictures are generated
- int bit_rate; ///< wanted bit rate
- enum OutputFormat out_format; ///< output format
- int h263_pred; ///< use mpeg4/h263 ac/dc predictions
- int pb_frame; ///< PB frame mode (0 = none, 1 = base, 2 = improved)
-
-/* the following codec id fields are deprecated in favor of codec_id */
- int h263_plus; ///< h263 plus headers
- int h263_msmpeg4; ///< generate MSMPEG4 compatible stream (deprecated, use msmpeg4_version instead)
- int h263_flv; ///< use flv h263 header
-
- enum CodecID codec_id; /* see CODEC_ID_xxx */
- int fixed_qscale; ///< fixed qscale if non zero
- int encoding; ///< true if we are encoding (vs decoding)
- int flags; ///< AVCodecContext.flags (HQ, MV4, ...)
- int flags2; ///< AVCodecContext.flags2
- int max_b_frames; ///< max number of b-frames for encoding
- int luma_elim_threshold;
- int chroma_elim_threshold;
- int strict_std_compliance; ///< strictly follow the std (MPEG4, ...)
- int workaround_bugs; ///< workaround bugs in encoders which cannot be detected automatically
- int codec_tag; ///< internal codec_tag upper case converted from avctx codec_tag
- int stream_codec_tag; ///< internal stream_codec_tag upper case converted from avctx stream_codec_tag
- /* the following fields are managed internally by the encoder */
-
- /** bit output */
- PutBitContext pb;
-
- /* sequence parameters */
- int context_initialized;
- int input_picture_number; ///< used to set pic->display_picture_number, should not be used for/by anything else
- int coded_picture_number; ///< used to set pic->coded_picture_number, should not be used for/by anything else
- int picture_number; //FIXME remove, unclear definition
- int picture_in_gop_number; ///< 0-> first pic in gop, ...
- int b_frames_since_non_b; ///< used for encoding, relative to not yet reordered input
- int64_t user_specified_pts;///< last non zero pts from AVFrame which was passed into avcodec_encode_video()
- int mb_width, mb_height; ///< number of MBs horizontally & vertically
- int mb_stride; ///< mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11
- int b8_stride; ///< 2*mb_width+1 used for some 8x8 block arrays to allow simple addressing
- int b4_stride; ///< 4*mb_width+1 used for some 4x4 block arrays to allow simple addressing
- int h_edge_pos, v_edge_pos;///< horizontal / vertical position of the right/bottom edge (pixel replication)
- int mb_num; ///< number of MBs of a picture
- int linesize; ///< line size, in bytes, may be different from width
- int uvlinesize; ///< line size, for chroma in bytes, may be different from width
- Picture *picture; ///< main picture buffer
- Picture **input_picture; ///< next pictures on display order for encoding
- Picture **reordered_input_picture; ///< pointer to the next pictures in codedorder for encoding
-
- int start_mb_y; ///< start mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)
- int end_mb_y; ///< end mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)
- struct MpegEncContext *thread_context[MAX_THREADS];
-
- /**
- * copy of the previous picture structure.
- * note, linesize & data, might not match the previous picture (for field pictures)
- */
- Picture last_picture;
-
- /**
- * copy of the next picture structure.
- * note, linesize & data, might not match the next picture (for field pictures)
- */
- Picture next_picture;
-
- /**
- * copy of the source picture structure for encoding.
- * note, linesize & data, might not match the source picture (for field pictures)
- */
- Picture new_picture;
-
- /**
- * copy of the current picture structure.
- * note, linesize & data, might not match the current picture (for field pictures)
- */
- Picture current_picture; ///< buffer to store the decompressed current picture
-
- Picture *last_picture_ptr; ///< pointer to the previous picture.
- Picture *next_picture_ptr; ///< pointer to the next picture (for bidir pred)
- Picture *current_picture_ptr; ///< pointer to the current picture
- uint8_t *visualization_buffer[3]; //< temporary buffer vor MV visualization
- int last_dc[3]; ///< last DC values for MPEG1
- int16_t *dc_val_base;
- int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous
- int16_t dc_cache[4*5];
- int y_dc_scale, c_dc_scale;
- const uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table
- const uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table
- const uint8_t *chroma_qscale_table; ///< qscale -> chroma_qscale (h263)
- uint8_t *coded_block_base;
- uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1)
- int16_t (*ac_val_base)[16];
- int16_t (*ac_val[3])[16]; ///< used for for mpeg4 AC prediction, all 3 arrays must be continuous
- int ac_pred;
- uint8_t *prev_pict_types; ///< previous picture types in bitstream order, used for mb skip
-#define PREV_PICT_TYPES_BUFFER_SIZE 256
- int mb_skipped; ///< MUST BE SET only during DECODING
- uint8_t *mbskip_table; /**< used to avoid copy if macroblock skipped (for black regions for example)
- and used for b-frame encoding & decoding (contains skip table of next P Frame) */
- uint8_t *mbintra_table; ///< used to avoid setting {ac, dc, cbp}-pred stuff to zero on inter MB decoding
- uint8_t *cbp_table; ///< used to store cbp, ac_pred for partitioned decoding
- uint8_t *pred_dir_table; ///< used to store pred_dir for partitioned decoding
- uint8_t *allocated_edge_emu_buffer;
- uint8_t *edge_emu_buffer; ///< points into the middle of allocated_edge_emu_buffer
- uint8_t *rd_scratchpad; ///< scratchpad for rate distortion mb decision
- uint8_t *obmc_scratchpad;
- uint8_t *b_scratchpad; ///< scratchpad used for writing into write only buffers
-
- int qscale; ///< QP
- int chroma_qscale; ///< chroma QP
- unsigned int lambda; ///< lagrange multipler used in rate distortion
- unsigned int lambda2; ///< (lambda*lambda) >> FF_LAMBDA_SHIFT
- int *lambda_table;
- int adaptive_quant; ///< use adaptive quantization
- int dquant; ///< qscale difference to prev qscale
- int closed_gop; ///< MPEG1/2 GOP is closed
- int pict_type; ///< FF_I_TYPE, FF_P_TYPE, FF_B_TYPE, ...
- int last_pict_type; //FIXME removes
- int last_non_b_pict_type; ///< used for mpeg4 gmc b-frames & ratecontrol
- int dropable;
- int frame_rate_index;
- int last_lambda_for[5]; ///< last lambda for a specific pict type
- int skipdct; ///< skip dct and code zero residual
-
- /* motion compensation */
- int unrestricted_mv; ///< mv can point outside of the coded picture
- int h263_long_vectors; ///< use horrible h263v1 long vector mode
- int decode; ///< if 0 then decoding will be skipped (for encoding b frames for example)
-
- DSPContext dsp; ///< pointers for accelerated dsp functions
- int f_code; ///< forward MV resolution
- int b_code; ///< backward MV resolution for B Frames (mpeg4)
- int16_t (*p_mv_table_base)[2];
- int16_t (*b_forw_mv_table_base)[2];
- int16_t (*b_back_mv_table_base)[2];
- int16_t (*b_bidir_forw_mv_table_base)[2];
- int16_t (*b_bidir_back_mv_table_base)[2];
- int16_t (*b_direct_mv_table_base)[2];
- int16_t (*p_field_mv_table_base[2][2])[2];
- int16_t (*b_field_mv_table_base[2][2][2])[2];
- int16_t (*p_mv_table)[2]; ///< MV table (1MV per MB) p-frame encoding
- int16_t (*b_forw_mv_table)[2]; ///< MV table (1MV per MB) forward mode b-frame encoding
- int16_t (*b_back_mv_table)[2]; ///< MV table (1MV per MB) backward mode b-frame encoding
- int16_t (*b_bidir_forw_mv_table)[2]; ///< MV table (1MV per MB) bidir mode b-frame encoding
- int16_t (*b_bidir_back_mv_table)[2]; ///< MV table (1MV per MB) bidir mode b-frame encoding
- int16_t (*b_direct_mv_table)[2]; ///< MV table (1MV per MB) direct mode b-frame encoding
- int16_t (*p_field_mv_table[2][2])[2]; ///< MV table (2MV per MB) interlaced p-frame encoding
- int16_t (*b_field_mv_table[2][2][2])[2];///< MV table (4MV per MB) interlaced b-frame encoding
- uint8_t (*p_field_select_table[2]);
- uint8_t (*b_field_select_table[2][2]);
- int me_method; ///< ME algorithm
- int mv_dir;
-#define MV_DIR_FORWARD 1
-#define MV_DIR_BACKWARD 2
-#define MV_DIRECT 4 ///< bidirectional mode where the difference equals the MV of the last P/S/I-Frame (mpeg4)
- int mv_type;
-#define MV_TYPE_16X16 0 ///< 1 vector for the whole mb
-#define MV_TYPE_8X8 1 ///< 4 vectors (h263, mpeg4 4MV)
-#define MV_TYPE_16X8 2 ///< 2 vectors, one per 16x8 block
-#define MV_TYPE_FIELD 3 ///< 2 vectors, one per field
-#define MV_TYPE_DMV 4 ///< 2 vectors, special mpeg2 Dual Prime Vectors
- /**motion vectors for a macroblock
- first coordinate : 0 = forward 1 = backward
- second " : depend on type
- third " : 0 = x, 1 = y
- */
- int mv[2][4][2];
- int field_select[2][2];
- int last_mv[2][2][2]; ///< last MV, used for MV prediction in MPEG1 & B-frame MPEG4
- uint8_t *fcode_tab; ///< smallest fcode needed for each MV
- int16_t direct_scale_mv[2][64]; ///< precomputed to avoid divisions in ff_mpeg4_set_direct_mv
-
- MotionEstContext me;
-
- int no_rounding; /**< apply no rounding to motion compensation (MPEG4, msmpeg4, ...)
- for b-frames rounding mode is always 0 */
-
- int hurry_up; /**< when set to 1 during decoding, b frames will be skipped
- when set to 2 idct/dequant will be skipped too */
-
- /* macroblock layer */
- int mb_x, mb_y;
- int mb_skip_run;
- int mb_intra;
- uint16_t *mb_type; ///< Table for candidate MB types for encoding
-#define CANDIDATE_MB_TYPE_INTRA 0x01
-#define CANDIDATE_MB_TYPE_INTER 0x02
-#define CANDIDATE_MB_TYPE_INTER4V 0x04
-#define CANDIDATE_MB_TYPE_SKIPPED 0x08
-//#define MB_TYPE_GMC 0x10
-
-#define CANDIDATE_MB_TYPE_DIRECT 0x10
-#define CANDIDATE_MB_TYPE_FORWARD 0x20
-#define CANDIDATE_MB_TYPE_BACKWARD 0x40
-#define CANDIDATE_MB_TYPE_BIDIR 0x80
-
-#define CANDIDATE_MB_TYPE_INTER_I 0x100
-#define CANDIDATE_MB_TYPE_FORWARD_I 0x200
-#define CANDIDATE_MB_TYPE_BACKWARD_I 0x400
-#define CANDIDATE_MB_TYPE_BIDIR_I 0x800
-
-#define CANDIDATE_MB_TYPE_DIRECT0 0x1000
-
- int block_index[6]; ///< index to current MB in block based arrays with edges
- int block_wrap[6];
- uint8_t *dest[3];
-
- int *mb_index2xy; ///< mb_index -> mb_x + mb_y*mb_stride
-
- /** matrix transmitted in the bitstream */
- uint16_t intra_matrix[64];
- uint16_t chroma_intra_matrix[64];
- uint16_t inter_matrix[64];
- uint16_t chroma_inter_matrix[64];
-#define QUANT_BIAS_SHIFT 8
- int intra_quant_bias; ///< bias for the quantizer
- int inter_quant_bias; ///< bias for the quantizer
- int min_qcoeff; ///< minimum encodable coefficient
- int max_qcoeff; ///< maximum encodable coefficient
- int ac_esc_length; ///< num of bits needed to encode the longest esc
- uint8_t *intra_ac_vlc_length;
- uint8_t *intra_ac_vlc_last_length;
- uint8_t *inter_ac_vlc_length;
- uint8_t *inter_ac_vlc_last_length;
- uint8_t *luma_dc_vlc_length;
- uint8_t *chroma_dc_vlc_length;
-#define UNI_AC_ENC_INDEX(run,level) ((run)*128 + (level))
-
- int coded_score[8];
-
- /** precomputed matrix (combine qscale and DCT renorm) */
- int (*q_intra_matrix)[64];
- int (*q_inter_matrix)[64];
- /** identical to the above but for MMX & these are not permutated, second 64 entries are bias*/
- uint16_t (*q_intra_matrix16)[2][64];
- uint16_t (*q_inter_matrix16)[2][64];
- int block_last_index[12]; ///< last non zero coefficient in block
- /* scantables */
- ScanTable intra_scantable;
- ScanTable intra_h_scantable;
- ScanTable intra_v_scantable;
- ScanTable inter_scantable; ///< if inter == intra then intra should be used to reduce tha cache usage
-
- /* noise reduction */
- int (*dct_error_sum)[64];
- int dct_count[2];
- uint16_t (*dct_offset)[64];
-
- void *opaque; ///< private data for the user
-
- /* bit rate control */
- int64_t wanted_bits;
- int64_t total_bits;
- int frame_bits; ///< bits used for the current frame
- int next_lambda; ///< next lambda used for retrying to encode a frame
- RateControlContext rc_context; ///< contains stuff only accessed in ratecontrol.c
-
- /* statistics, used for 2-pass encoding */
- int mv_bits;
- int header_bits;
- int i_tex_bits;
- int p_tex_bits;
- int i_count;
- int f_count;
- int b_count;
- int skip_count;
- int misc_bits; ///< cbp, mb_type
- int last_bits; ///< temp var used for calculating the above vars
-
- /* error concealment / resync */
- int error_count;
- uint8_t *error_status_table; ///< table of the error status of each MB
-#define VP_START 1 ///< current MB is the first after a resync marker
-#define AC_ERROR 2
-#define DC_ERROR 4
-#define MV_ERROR 8
-#define AC_END 16
-#define DC_END 32
-#define MV_END 64
-//FIXME some prefix?
-
- int resync_mb_x; ///< x position of last resync marker
- int resync_mb_y; ///< y position of last resync marker
- GetBitContext last_resync_gb; ///< used to search for the next resync marker
- int mb_num_left; ///< number of MBs left in this video packet (for partitioned Slices only)
- int next_p_frame_damaged; ///< set if the next p frame is damaged, to avoid showing trashed b frames
- int error_recognition;
-
- ParseContext parse_context;
-
- /* H.263 specific */
- int gob_index;
- int obmc; ///< overlapped block motion compensation
- int showed_packed_warning; ///< flag for having shown the warning about divxs invalid b frames
-
- /* H.263+ specific */
- int umvplus; ///< == H263+ && unrestricted_mv
- int h263_aic; ///< Advanded INTRA Coding (AIC)
- int h263_aic_dir; ///< AIC direction: 0 = left, 1 = top
- int h263_slice_structured;
- int alt_inter_vlc; ///< alternative inter vlc
- int modified_quant;
- int loop_filter;
- int custom_pcf;
-
- /* mpeg4 specific */
- int time_increment_bits; ///< number of bits to represent the fractional part of time
- int last_time_base;
- int time_base; ///< time in seconds of last I,P,S Frame
- int64_t time; ///< time of current frame
- int64_t last_non_b_time;
- uint16_t pp_time; ///< time distance between the last 2 p,s,i frames
- uint16_t pb_time; ///< time distance between the last b and p,s,i frame
- uint16_t pp_field_time;
- uint16_t pb_field_time; ///< like above, just for interlaced
- int shape;
- int vol_sprite_usage;
- int sprite_width;
- int sprite_height;
- int sprite_left;
- int sprite_top;
- int sprite_brightness_change;
- int num_sprite_warping_points;
- int real_sprite_warping_points;
- uint16_t sprite_traj[4][2]; ///< sprite trajectory points
- int sprite_offset[2][2]; ///< sprite offset[isChroma][isMVY]
- int sprite_delta[2][2]; ///< sprite_delta [isY][isMVY]
- int sprite_shift[2]; ///< sprite shift [isChroma]
- int mcsel;
- int quant_precision;
- int quarter_sample; ///< 1->qpel, 0->half pel ME/MC
- int scalability;
- int hierachy_type;
- int enhancement_type;
- int new_pred;
- int reduced_res_vop;
- int aspect_ratio_info; //FIXME remove
- int sprite_warping_accuracy;
- int low_latency_sprite;
- int data_partitioning; ///< data partitioning flag from header
- int partitioned_frame; ///< is current frame partitioned
- int rvlc; ///< reversible vlc
- int resync_marker; ///< could this stream contain resync markers
- int low_delay; ///< no reordering needed / has no b-frames
- int vo_type;
- int vol_control_parameters; ///< does the stream contain the low_delay flag, used to workaround buggy encoders
- int intra_dc_threshold; ///< QP above whch the ac VLC should be used for intra dc
- int use_intra_dc_vlc;
- PutBitContext tex_pb; ///< used for data partitioned VOPs
- PutBitContext pb2; ///< used for data partitioned VOPs
- int mpeg_quant;
- int t_frame; ///< time distance of first I -> B, used for interlaced b frames
- int padding_bug_score; ///< used to detect the VERY common padding bug in MPEG4
- int cplx_estimation_trash_i;
- int cplx_estimation_trash_p;
- int cplx_estimation_trash_b;
-
- /* divx specific, used to workaround (many) bugs in divx5 */
- int divx_version;
- int divx_build;
- int divx_packed;
- uint8_t *bitstream_buffer; //Divx 5.01 puts several frames in a single one, this is used to reorder them
- int bitstream_buffer_size;
- unsigned int allocated_bitstream_buffer_size;
-
- int xvid_build;
-
- /* lavc specific stuff, used to workaround bugs in libavcodec */
- int lavc_build;
-
- /* RV10 specific */
- int rv10_version; ///< RV10 version: 0 or 3
- int rv10_first_dc_coded[3];
- int orig_width, orig_height;
-
- /* MJPEG specific */
- struct MJpegContext *mjpeg_ctx;
- int mjpeg_vsample[3]; ///< vertical sampling factors, default = {2, 1, 1}
- int mjpeg_hsample[3]; ///< horizontal sampling factors, default = {2, 1, 1}
-
- /* MSMPEG4 specific */
- int mv_table_index;
- int rl_table_index;
- int rl_chroma_table_index;
- int dc_table_index;
- int use_skip_mb_code;
- int slice_height; ///< in macroblocks
- int first_slice_line; ///< used in mpeg4 too to handle resync markers
- int flipflop_rounding;
- int msmpeg4_version; ///< 0=not msmpeg4, 1=mp41, 2=mp42, 3=mp43/divx3 4=wmv1/7 5=wmv2/8
- int per_mb_rl_table;
- int esc3_level_length;
- int esc3_run_length;
- /** [mb_intra][isChroma][level][run][last] */
- int (*ac_stats)[2][MAX_LEVEL+1][MAX_RUN+1][2];
- int inter_intra_pred;
- int mspel;
-
- /* decompression specific */
- GetBitContext gb;
-
- /* Mpeg1 specific */
- int gop_picture_number; ///< index of the first picture of a GOP based on fake_pic_num & mpeg1 specific
- int last_mv_dir; ///< last mv_dir, used for b frame encoding
- int broken_link; ///< no_output_of_prior_pics_flag
- uint8_t *vbv_delay_ptr; ///< pointer to vbv_delay in the bitstream
-
- /* MPEG-2-specific - I wished not to have to support this mess. */
- int progressive_sequence;
- int mpeg_f_code[2][2];
- int picture_structure;
-/* picture type */
-#define PICT_TOP_FIELD 1
-#define PICT_BOTTOM_FIELD 2
-#define PICT_FRAME 3
-
- int intra_dc_precision;
- int frame_pred_frame_dct;
- int top_field_first;
- int concealment_motion_vectors;
- int q_scale_type;
- int intra_vlc_format;
- int alternate_scan;
- int repeat_first_field;
- int chroma_420_type;
- int chroma_format;
-#define CHROMA_420 1
-#define CHROMA_422 2
-#define CHROMA_444 3
- int chroma_x_shift;//depend on pix_format, that depend on chroma_format
- int chroma_y_shift;
-
- int progressive_frame;
- int full_pel[2];
- int interlaced_dct;
- int first_slice;
- int first_field; ///< is 1 for the first field of a field picture 0 otherwise
-
- /* RTP specific */
- int rtp_mode;
-
- uint8_t *ptr_lastgob;
- int swap_uv; //vcr2 codec is an MPEG-2 variant with U and V swapped
- DCTELEM (*pblocks[12])[64];
-
- DCTELEM (*block)[64]; ///< points to one of the following blocks
- DCTELEM (*blocks)[8][64]; // for HQ mode we need to keep the best block
- int (*decode_mb)(struct MpegEncContext *s, DCTELEM block[6][64]); // used by some codecs to avoid a switch()
-#define SLICE_OK 0
-#define SLICE_ERROR -1
-#define SLICE_END -2 ///<end marker found
-#define SLICE_NOEND -3 ///<no end marker or error found but mb count exceeded
-
- void (*dct_unquantize_mpeg1_intra)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_mpeg1_inter)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_mpeg2_intra)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_mpeg2_inter)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_h263_intra)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_h263_inter)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_h261_intra)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_h261_inter)(struct MpegEncContext *s,
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_intra)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both)
- DCTELEM *block/*align 16*/, int n, int qscale);
- void (*dct_unquantize_inter)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both)
- DCTELEM *block/*align 16*/, int n, int qscale);
- int (*dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);
- int (*fast_dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);
- void (*denoise_dct)(struct MpegEncContext *s, DCTELEM *block);
-} MpegEncContext;
-
-
-void MPV_decode_defaults(MpegEncContext *s);
-int MPV_common_init(MpegEncContext *s);
-void MPV_common_end(MpegEncContext *s);
-void MPV_decode_mb(MpegEncContext *s, DCTELEM block[12][64]);
-int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx);
-void MPV_frame_end(MpegEncContext *s);
-int MPV_encode_init(AVCodecContext *avctx);
-int MPV_encode_end(AVCodecContext *avctx);
-int MPV_encode_picture(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data);
-void MPV_common_init_mmx(MpegEncContext *s);
-void MPV_common_init_axp(MpegEncContext *s);
-void MPV_common_init_mlib(MpegEncContext *s);
-void MPV_common_init_mmi(MpegEncContext *s);
-void MPV_common_init_arm(MpegEncContext *s);
-void MPV_common_init_altivec(MpegEncContext *s);
-void MPV_common_init_bfin(MpegEncContext *s);
-void ff_clean_intra_table_entries(MpegEncContext *s);
-void ff_draw_horiz_band(MpegEncContext *s, int y, int h);
-void ff_mpeg_flush(AVCodecContext *avctx);
-void ff_print_debug_info(MpegEncContext *s, AVFrame *pict);
-void ff_write_quant_matrix(PutBitContext *pb, uint16_t *matrix);
-int ff_find_unused_picture(MpegEncContext *s, int shared);
-void ff_denoise_dct(MpegEncContext *s, DCTELEM *block);
-void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src);
-const uint8_t *ff_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state);
-void ff_set_qscale(MpegEncContext * s, int qscale);
-
-void ff_er_frame_start(MpegEncContext *s);
-void ff_er_frame_end(MpegEncContext *s);
-void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status);
-
-int ff_dct_common_init(MpegEncContext *s);
-void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][64],
- const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra);
-
-void ff_init_block_index(MpegEncContext *s);
-void ff_copy_picture(Picture *dst, Picture *src);
-
-/**
- * allocates a Picture
- * The pixels are allocated/set by calling get_buffer() if shared=0
- */
-int ff_alloc_picture(MpegEncContext *s, Picture *pic, int shared);
-
-extern const enum PixelFormat ff_pixfmt_list_420[];
-extern const enum PixelFormat ff_hwaccel_pixfmt_list_420[];
-
-static inline void ff_update_block_index(MpegEncContext *s){
- const int block_size= 8>>s->avctx->lowres;
-
- s->block_index[0]+=2;
- s->block_index[1]+=2;
- s->block_index[2]+=2;
- s->block_index[3]+=2;
- s->block_index[4]++;
- s->block_index[5]++;
- s->dest[0]+= 2*block_size;
- s->dest[1]+= block_size;
- s->dest[2]+= block_size;
-}
-
-static inline int get_bits_diff(MpegEncContext *s){
- const int bits= put_bits_count(&s->pb);
- const int last= s->last_bits;
-
- s->last_bits = bits;
-
- return bits - last;
-}
-
-static inline int ff_h263_round_chroma(int x){
- static const uint8_t h263_chroma_roundtab[16] = {
- // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
- };
- return h263_chroma_roundtab[x & 0xf] + (x >> 3);
-}
-
-/* motion_est.c */
-void ff_estimate_p_frame_motion(MpegEncContext * s,
- int mb_x, int mb_y);
-void ff_estimate_b_frame_motion(MpegEncContext * s,
- int mb_x, int mb_y);
-int ff_get_best_fcode(MpegEncContext * s, int16_t (*mv_table)[2], int type);
-void ff_fix_long_p_mvs(MpegEncContext * s);
-void ff_fix_long_mvs(MpegEncContext * s, uint8_t *field_select_table, int field_select,
- int16_t (*mv_table)[2], int f_code, int type, int truncate);
-int ff_init_me(MpegEncContext *s);
-int ff_pre_estimate_p_frame_motion(MpegEncContext * s, int mb_x, int mb_y);
-int ff_epzs_motion_search(MpegEncContext * s, int *mx_ptr, int *my_ptr,
- int P[10][2], int src_index, int ref_index, int16_t (*last_mv)[2],
- int ref_mv_scale, int size, int h);
-int ff_get_mb_score(MpegEncContext * s, int mx, int my, int src_index,
- int ref_index, int size, int h, int add_rate);
-
-/* mpeg12.c */
-extern const uint8_t ff_mpeg1_dc_scale_table[128];
-extern const uint8_t * const ff_mpeg2_dc_scale_table[4];
-
-void mpeg1_encode_picture_header(MpegEncContext *s, int picture_number);
-void mpeg1_encode_mb(MpegEncContext *s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-void ff_mpeg1_encode_init(MpegEncContext *s);
-void ff_mpeg1_encode_slice_header(MpegEncContext *s);
-void ff_mpeg1_clean_buffers(MpegEncContext *s);
-int ff_mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size, AVCodecParserContext *s);
-
-extern const uint8_t ff_aic_dc_scale_table[32];
-extern const uint8_t ff_h263_chroma_qscale_table[32];
-extern const uint8_t ff_h263_loop_filter_strength[32];
-
-/* h261.c */
-void ff_h261_loop_filter(MpegEncContext *s);
-void ff_h261_reorder_mb_index(MpegEncContext* s);
-void ff_h261_encode_mb(MpegEncContext *s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-void ff_h261_encode_picture_header(MpegEncContext * s, int picture_number);
-void ff_h261_encode_init(MpegEncContext *s);
-int ff_h261_get_picture_format(int width, int height);
-
-
-/* rv10.c */
-void rv10_encode_picture_header(MpegEncContext *s, int picture_number);
-int rv_decode_dc(MpegEncContext *s, int n);
-void rv20_encode_picture_header(MpegEncContext *s, int picture_number);
-
-
-/* msmpeg4.c */
-void msmpeg4_encode_picture_header(MpegEncContext * s, int picture_number);
-void msmpeg4_encode_ext_header(MpegEncContext * s);
-void msmpeg4_encode_mb(MpegEncContext * s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-int msmpeg4_decode_picture_header(MpegEncContext * s);
-int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);
-int ff_msmpeg4_decode_init(AVCodecContext *avctx);
-void ff_msmpeg4_encode_init(MpegEncContext *s);
-int ff_wmv2_decode_picture_header(MpegEncContext * s);
-int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);
-void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr);
-void ff_mspel_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- int motion_x, int motion_y, int h);
-int ff_wmv2_encode_picture_header(MpegEncContext * s, int picture_number);
-void ff_wmv2_encode_mb(MpegEncContext * s,
- DCTELEM block[6][64],
- int motion_x, int motion_y);
-
-#endif /* AVCODEC_MPEGVIDEO_H */
-
+++ /dev/null
-/*
- * The simplest mpeg encoder (well, it was the simplest!)
- * Copyright (c) 2000,2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * 4MV & hq & B-frame encoding stuff by Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * The simplest mpeg encoder (well, it was the simplest!).
- */
-
-#ifndef AVCODEC_MPEGVIDEO_COMMON_H
-#define AVCODEC_MPEGVIDEO_COMMON_H
-
-#include <string.h>
-#include "avcodec.h"
-#include "dsputil.h"
-#include "mpegvideo.h"
-#include "mjpegenc.h"
-#include "msmpeg4.h"
-#include "faandct.h"
-#include <limits.h>
-
-int dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow);
-int dct_quantize_trellis_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow);
-void denoise_dct_c(MpegEncContext *s, DCTELEM *block);
-
-/**
- * allocates a Picture
- * The pixels are allocated/set by calling get_buffer() if shared=0
- */
-int alloc_picture(MpegEncContext *s, Picture *pic, int shared);
-
-/**
- * sets the given MpegEncContext to common defaults (same for encoding and decoding).
- * the changed fields will not depend upon the prior state of the MpegEncContext.
- */
-void MPV_common_defaults(MpegEncContext *s);
-
-static inline void gmc1_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- uint8_t **ref_picture)
-{
- uint8_t *ptr;
- int offset, src_x, src_y, linesize, uvlinesize;
- int motion_x, motion_y;
- int emu=0;
-
- motion_x= s->sprite_offset[0][0];
- motion_y= s->sprite_offset[0][1];
- src_x = s->mb_x * 16 + (motion_x >> (s->sprite_warping_accuracy+1));
- src_y = s->mb_y * 16 + (motion_y >> (s->sprite_warping_accuracy+1));
- motion_x<<=(3-s->sprite_warping_accuracy);
- motion_y<<=(3-s->sprite_warping_accuracy);
- src_x = av_clip(src_x, -16, s->width);
- if (src_x == s->width)
- motion_x =0;
- src_y = av_clip(src_y, -16, s->height);
- if (src_y == s->height)
- motion_y =0;
-
- linesize = s->linesize;
- uvlinesize = s->uvlinesize;
-
- ptr = ref_picture[0] + (src_y * linesize) + src_x;
-
- if(s->flags&CODEC_FLAG_EMU_EDGE){
- if( (unsigned)src_x >= s->h_edge_pos - 17
- || (unsigned)src_y >= s->v_edge_pos - 17){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr, linesize, 17, 17, src_x, src_y, s->h_edge_pos, s->v_edge_pos);
- ptr= s->edge_emu_buffer;
- }
- }
-
- if((motion_x|motion_y)&7){
- s->dsp.gmc1(dest_y , ptr , linesize, 16, motion_x&15, motion_y&15, 128 - s->no_rounding);
- s->dsp.gmc1(dest_y+8, ptr+8, linesize, 16, motion_x&15, motion_y&15, 128 - s->no_rounding);
- }else{
- int dxy;
-
- dxy= ((motion_x>>3)&1) | ((motion_y>>2)&2);
- if (s->no_rounding){
- s->dsp.put_no_rnd_pixels_tab[0][dxy](dest_y, ptr, linesize, 16);
- }else{
- s->dsp.put_pixels_tab [0][dxy](dest_y, ptr, linesize, 16);
- }
- }
-
- if(CONFIG_GRAY && s->flags&CODEC_FLAG_GRAY) return;
-
- motion_x= s->sprite_offset[1][0];
- motion_y= s->sprite_offset[1][1];
- src_x = s->mb_x * 8 + (motion_x >> (s->sprite_warping_accuracy+1));
- src_y = s->mb_y * 8 + (motion_y >> (s->sprite_warping_accuracy+1));
- motion_x<<=(3-s->sprite_warping_accuracy);
- motion_y<<=(3-s->sprite_warping_accuracy);
- src_x = av_clip(src_x, -8, s->width>>1);
- if (src_x == s->width>>1)
- motion_x =0;
- src_y = av_clip(src_y, -8, s->height>>1);
- if (src_y == s->height>>1)
- motion_y =0;
-
- offset = (src_y * uvlinesize) + src_x;
- ptr = ref_picture[1] + offset;
- if(s->flags&CODEC_FLAG_EMU_EDGE){
- if( (unsigned)src_x >= (s->h_edge_pos>>1) - 9
- || (unsigned)src_y >= (s->v_edge_pos>>1) - 9){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr= s->edge_emu_buffer;
- emu=1;
- }
- }
- s->dsp.gmc1(dest_cb, ptr, uvlinesize, 8, motion_x&15, motion_y&15, 128 - s->no_rounding);
-
- ptr = ref_picture[2] + offset;
- if(emu){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr= s->edge_emu_buffer;
- }
- s->dsp.gmc1(dest_cr, ptr, uvlinesize, 8, motion_x&15, motion_y&15, 128 - s->no_rounding);
-
- return;
-}
-
-static inline void gmc_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- uint8_t **ref_picture)
-{
- uint8_t *ptr;
- int linesize, uvlinesize;
- const int a= s->sprite_warping_accuracy;
- int ox, oy;
-
- linesize = s->linesize;
- uvlinesize = s->uvlinesize;
-
- ptr = ref_picture[0];
-
- ox= s->sprite_offset[0][0] + s->sprite_delta[0][0]*s->mb_x*16 + s->sprite_delta[0][1]*s->mb_y*16;
- oy= s->sprite_offset[0][1] + s->sprite_delta[1][0]*s->mb_x*16 + s->sprite_delta[1][1]*s->mb_y*16;
-
- s->dsp.gmc(dest_y, ptr, linesize, 16,
- ox,
- oy,
- s->sprite_delta[0][0], s->sprite_delta[0][1],
- s->sprite_delta[1][0], s->sprite_delta[1][1],
- a+1, (1<<(2*a+1)) - s->no_rounding,
- s->h_edge_pos, s->v_edge_pos);
- s->dsp.gmc(dest_y+8, ptr, linesize, 16,
- ox + s->sprite_delta[0][0]*8,
- oy + s->sprite_delta[1][0]*8,
- s->sprite_delta[0][0], s->sprite_delta[0][1],
- s->sprite_delta[1][0], s->sprite_delta[1][1],
- a+1, (1<<(2*a+1)) - s->no_rounding,
- s->h_edge_pos, s->v_edge_pos);
-
- if(CONFIG_GRAY && s->flags&CODEC_FLAG_GRAY) return;
-
- ox= s->sprite_offset[1][0] + s->sprite_delta[0][0]*s->mb_x*8 + s->sprite_delta[0][1]*s->mb_y*8;
- oy= s->sprite_offset[1][1] + s->sprite_delta[1][0]*s->mb_x*8 + s->sprite_delta[1][1]*s->mb_y*8;
-
- ptr = ref_picture[1];
- s->dsp.gmc(dest_cb, ptr, uvlinesize, 8,
- ox,
- oy,
- s->sprite_delta[0][0], s->sprite_delta[0][1],
- s->sprite_delta[1][0], s->sprite_delta[1][1],
- a+1, (1<<(2*a+1)) - s->no_rounding,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
-
- ptr = ref_picture[2];
- s->dsp.gmc(dest_cr, ptr, uvlinesize, 8,
- ox,
- oy,
- s->sprite_delta[0][0], s->sprite_delta[0][1],
- s->sprite_delta[1][0], s->sprite_delta[1][1],
- a+1, (1<<(2*a+1)) - s->no_rounding,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
-}
-
-static inline int hpel_motion(MpegEncContext *s,
- uint8_t *dest, uint8_t *src,
- int field_based, int field_select,
- int src_x, int src_y,
- int width, int height, int stride,
- int h_edge_pos, int v_edge_pos,
- int w, int h, op_pixels_func *pix_op,
- int motion_x, int motion_y)
-{
- int dxy;
- int emu=0;
-
- dxy = ((motion_y & 1) << 1) | (motion_x & 1);
- src_x += motion_x >> 1;
- src_y += motion_y >> 1;
-
- /* WARNING: do no forget half pels */
- src_x = av_clip(src_x, -16, width); //FIXME unneeded for emu?
- if (src_x == width)
- dxy &= ~1;
- src_y = av_clip(src_y, -16, height);
- if (src_y == height)
- dxy &= ~2;
- src += src_y * stride + src_x;
-
- if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){
- if( (unsigned)src_x > h_edge_pos - (motion_x&1) - w
- || (unsigned)src_y > v_edge_pos - (motion_y&1) - h){
- ff_emulated_edge_mc(s->edge_emu_buffer, src, s->linesize, w+1, (h+1)<<field_based,
- src_x, src_y<<field_based, h_edge_pos, s->v_edge_pos);
- src= s->edge_emu_buffer;
- emu=1;
- }
- }
- if(field_select)
- src += s->linesize;
- pix_op[dxy](dest, src, stride, h);
- return emu;
-}
-
-static av_always_inline
-void mpeg_motion_internal(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- int field_based, int bottom_field, int field_select,
- uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- int motion_x, int motion_y, int h, int is_mpeg12, int mb_y)
-{
- uint8_t *ptr_y, *ptr_cb, *ptr_cr;
- int dxy, uvdxy, mx, my, src_x, src_y,
- uvsrc_x, uvsrc_y, v_edge_pos, uvlinesize, linesize;
-
-#if 0
-if(s->quarter_sample)
-{
- motion_x>>=1;
- motion_y>>=1;
-}
-#endif
-
- v_edge_pos = s->v_edge_pos >> field_based;
- linesize = s->current_picture.linesize[0] << field_based;
- uvlinesize = s->current_picture.linesize[1] << field_based;
-
- dxy = ((motion_y & 1) << 1) | (motion_x & 1);
- src_x = s->mb_x* 16 + (motion_x >> 1);
- src_y =( mb_y<<(4-field_based)) + (motion_y >> 1);
-
- if (!is_mpeg12 && s->out_format == FMT_H263) {
- if((s->workaround_bugs & FF_BUG_HPEL_CHROMA) && field_based){
- mx = (motion_x>>1)|(motion_x&1);
- my = motion_y >>1;
- uvdxy = ((my & 1) << 1) | (mx & 1);
- uvsrc_x = s->mb_x* 8 + (mx >> 1);
- uvsrc_y =( mb_y<<(3-field_based))+ (my >> 1);
- }else{
- uvdxy = dxy | (motion_y & 2) | ((motion_x & 2) >> 1);
- uvsrc_x = src_x>>1;
- uvsrc_y = src_y>>1;
- }
- }else if(!is_mpeg12 && s->out_format == FMT_H261){//even chroma mv's are full pel in H261
- mx = motion_x / 4;
- my = motion_y / 4;
- uvdxy = 0;
- uvsrc_x = s->mb_x*8 + mx;
- uvsrc_y = mb_y*8 + my;
- } else {
- if(s->chroma_y_shift){
- mx = motion_x / 2;
- my = motion_y / 2;
- uvdxy = ((my & 1) << 1) | (mx & 1);
- uvsrc_x = s->mb_x* 8 + (mx >> 1);
- uvsrc_y =( mb_y<<(3-field_based))+ (my >> 1);
- } else {
- if(s->chroma_x_shift){
- //Chroma422
- mx = motion_x / 2;
- uvdxy = ((motion_y & 1) << 1) | (mx & 1);
- uvsrc_x = s->mb_x* 8 + (mx >> 1);
- uvsrc_y = src_y;
- } else {
- //Chroma444
- uvdxy = dxy;
- uvsrc_x = src_x;
- uvsrc_y = src_y;
- }
- }
- }
-
- ptr_y = ref_picture[0] + src_y * linesize + src_x;
- ptr_cb = ref_picture[1] + uvsrc_y * uvlinesize + uvsrc_x;
- ptr_cr = ref_picture[2] + uvsrc_y * uvlinesize + uvsrc_x;
-
- if( (unsigned)src_x > s->h_edge_pos - (motion_x&1) - 16
- || (unsigned)src_y > v_edge_pos - (motion_y&1) - h){
- if(is_mpeg12 || s->codec_id == CODEC_ID_MPEG2VIDEO ||
- s->codec_id == CODEC_ID_MPEG1VIDEO){
- av_log(s->avctx,AV_LOG_DEBUG,
- "MPEG motion vector out of boundary (%d %d)\n", src_x, src_y);
- return;
- }
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
- 17, 17+field_based,
- src_x, src_y<<field_based,
- s->h_edge_pos, s->v_edge_pos);
- ptr_y = s->edge_emu_buffer;
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- uint8_t *uvbuf= s->edge_emu_buffer+18*s->linesize;
- ff_emulated_edge_mc(uvbuf ,
- ptr_cb, s->uvlinesize,
- 9, 9+field_based,
- uvsrc_x, uvsrc_y<<field_based,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ff_emulated_edge_mc(uvbuf+16,
- ptr_cr, s->uvlinesize,
- 9, 9+field_based,
- uvsrc_x, uvsrc_y<<field_based,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr_cb= uvbuf;
- ptr_cr= uvbuf+16;
- }
- }
-
- if(bottom_field){ //FIXME use this for field pix too instead of the obnoxious hack which changes picture.data
- dest_y += s->linesize;
- dest_cb+= s->uvlinesize;
- dest_cr+= s->uvlinesize;
- }
-
- if(field_select){
- ptr_y += s->linesize;
- ptr_cb+= s->uvlinesize;
- ptr_cr+= s->uvlinesize;
- }
-
- pix_op[0][dxy](dest_y, ptr_y, linesize, h);
-
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- pix_op[s->chroma_x_shift][uvdxy]
- (dest_cb, ptr_cb, uvlinesize, h >> s->chroma_y_shift);
- pix_op[s->chroma_x_shift][uvdxy]
- (dest_cr, ptr_cr, uvlinesize, h >> s->chroma_y_shift);
- }
- if(!is_mpeg12 && (CONFIG_H261_ENCODER || CONFIG_H261_DECODER) &&
- s->out_format == FMT_H261){
- ff_h261_loop_filter(s);
- }
-}
-/* apply one mpeg motion vector to the three components */
-static av_always_inline
-void mpeg_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- int field_based, int bottom_field, int field_select,
- uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- int motion_x, int motion_y, int h, int mb_y)
-{
-#if !CONFIG_SMALL
- if(s->out_format == FMT_MPEG1)
- mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, field_based,
- bottom_field, field_select, ref_picture, pix_op,
- motion_x, motion_y, h, 1, mb_y);
- else
-#endif
- mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, field_based,
- bottom_field, field_select, ref_picture, pix_op,
- motion_x, motion_y, h, 0, mb_y);
-}
-
-//FIXME move to dsputil, avg variant, 16x16 version
-static inline void put_obmc(uint8_t *dst, uint8_t *src[5], int stride){
- int x;
- uint8_t * const top = src[1];
- uint8_t * const left = src[2];
- uint8_t * const mid = src[0];
- uint8_t * const right = src[3];
- uint8_t * const bottom= src[4];
-#define OBMC_FILTER(x, t, l, m, r, b)\
- dst[x]= (t*top[x] + l*left[x] + m*mid[x] + r*right[x] + b*bottom[x] + 4)>>3
-#define OBMC_FILTER4(x, t, l, m, r, b)\
- OBMC_FILTER(x , t, l, m, r, b);\
- OBMC_FILTER(x+1 , t, l, m, r, b);\
- OBMC_FILTER(x +stride, t, l, m, r, b);\
- OBMC_FILTER(x+1+stride, t, l, m, r, b);
-
- x=0;
- OBMC_FILTER (x , 2, 2, 4, 0, 0);
- OBMC_FILTER (x+1, 2, 1, 5, 0, 0);
- OBMC_FILTER4(x+2, 2, 1, 5, 0, 0);
- OBMC_FILTER4(x+4, 2, 0, 5, 1, 0);
- OBMC_FILTER (x+6, 2, 0, 5, 1, 0);
- OBMC_FILTER (x+7, 2, 0, 4, 2, 0);
- x+= stride;
- OBMC_FILTER (x , 1, 2, 5, 0, 0);
- OBMC_FILTER (x+1, 1, 2, 5, 0, 0);
- OBMC_FILTER (x+6, 1, 0, 5, 2, 0);
- OBMC_FILTER (x+7, 1, 0, 5, 2, 0);
- x+= stride;
- OBMC_FILTER4(x , 1, 2, 5, 0, 0);
- OBMC_FILTER4(x+2, 1, 1, 6, 0, 0);
- OBMC_FILTER4(x+4, 1, 0, 6, 1, 0);
- OBMC_FILTER4(x+6, 1, 0, 5, 2, 0);
- x+= 2*stride;
- OBMC_FILTER4(x , 0, 2, 5, 0, 1);
- OBMC_FILTER4(x+2, 0, 1, 6, 0, 1);
- OBMC_FILTER4(x+4, 0, 0, 6, 1, 1);
- OBMC_FILTER4(x+6, 0, 0, 5, 2, 1);
- x+= 2*stride;
- OBMC_FILTER (x , 0, 2, 5, 0, 1);
- OBMC_FILTER (x+1, 0, 2, 5, 0, 1);
- OBMC_FILTER4(x+2, 0, 1, 5, 0, 2);
- OBMC_FILTER4(x+4, 0, 0, 5, 1, 2);
- OBMC_FILTER (x+6, 0, 0, 5, 2, 1);
- OBMC_FILTER (x+7, 0, 0, 5, 2, 1);
- x+= stride;
- OBMC_FILTER (x , 0, 2, 4, 0, 2);
- OBMC_FILTER (x+1, 0, 1, 5, 0, 2);
- OBMC_FILTER (x+6, 0, 0, 5, 1, 2);
- OBMC_FILTER (x+7, 0, 0, 4, 2, 2);
-}
-
-/* obmc for 1 8x8 luma block */
-static inline void obmc_motion(MpegEncContext *s,
- uint8_t *dest, uint8_t *src,
- int src_x, int src_y,
- op_pixels_func *pix_op,
- int16_t mv[5][2]/* mid top left right bottom*/)
-#define MID 0
-{
- int i;
- uint8_t *ptr[5];
-
- assert(s->quarter_sample==0);
-
- for(i=0; i<5; i++){
- if(i && mv[i][0]==mv[MID][0] && mv[i][1]==mv[MID][1]){
- ptr[i]= ptr[MID];
- }else{
- ptr[i]= s->obmc_scratchpad + 8*(i&1) + s->linesize*8*(i>>1);
- hpel_motion(s, ptr[i], src, 0, 0,
- src_x, src_y,
- s->width, s->height, s->linesize,
- s->h_edge_pos, s->v_edge_pos,
- 8, 8, pix_op,
- mv[i][0], mv[i][1]);
- }
- }
-
- put_obmc(dest, ptr, s->linesize);
-}
-
-static inline void qpel_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
- int field_based, int bottom_field, int field_select,
- uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- qpel_mc_func (*qpix_op)[16],
- int motion_x, int motion_y, int h)
-{
- uint8_t *ptr_y, *ptr_cb, *ptr_cr;
- int dxy, uvdxy, mx, my, src_x, src_y, uvsrc_x, uvsrc_y, v_edge_pos, linesize, uvlinesize;
-
- dxy = ((motion_y & 3) << 2) | (motion_x & 3);
- src_x = s->mb_x * 16 + (motion_x >> 2);
- src_y = s->mb_y * (16 >> field_based) + (motion_y >> 2);
-
- v_edge_pos = s->v_edge_pos >> field_based;
- linesize = s->linesize << field_based;
- uvlinesize = s->uvlinesize << field_based;
-
- if(field_based){
- mx= motion_x/2;
- my= motion_y>>1;
- }else if(s->workaround_bugs&FF_BUG_QPEL_CHROMA2){
- static const int rtab[8]= {0,0,1,1,0,0,0,1};
- mx= (motion_x>>1) + rtab[motion_x&7];
- my= (motion_y>>1) + rtab[motion_y&7];
- }else if(s->workaround_bugs&FF_BUG_QPEL_CHROMA){
- mx= (motion_x>>1)|(motion_x&1);
- my= (motion_y>>1)|(motion_y&1);
- }else{
- mx= motion_x/2;
- my= motion_y/2;
- }
- mx= (mx>>1)|(mx&1);
- my= (my>>1)|(my&1);
-
- uvdxy= (mx&1) | ((my&1)<<1);
- mx>>=1;
- my>>=1;
-
- uvsrc_x = s->mb_x * 8 + mx;
- uvsrc_y = s->mb_y * (8 >> field_based) + my;
-
- ptr_y = ref_picture[0] + src_y * linesize + src_x;
- ptr_cb = ref_picture[1] + uvsrc_y * uvlinesize + uvsrc_x;
- ptr_cr = ref_picture[2] + uvsrc_y * uvlinesize + uvsrc_x;
-
- if( (unsigned)src_x > s->h_edge_pos - (motion_x&3) - 16
- || (unsigned)src_y > v_edge_pos - (motion_y&3) - h ){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
- 17, 17+field_based, src_x, src_y<<field_based,
- s->h_edge_pos, s->v_edge_pos);
- ptr_y= s->edge_emu_buffer;
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- uint8_t *uvbuf= s->edge_emu_buffer + 18*s->linesize;
- ff_emulated_edge_mc(uvbuf, ptr_cb, s->uvlinesize,
- 9, 9 + field_based,
- uvsrc_x, uvsrc_y<<field_based,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ff_emulated_edge_mc(uvbuf + 16, ptr_cr, s->uvlinesize,
- 9, 9 + field_based,
- uvsrc_x, uvsrc_y<<field_based,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr_cb= uvbuf;
- ptr_cr= uvbuf + 16;
- }
- }
-
- if(!field_based)
- qpix_op[0][dxy](dest_y, ptr_y, linesize);
- else{
- if(bottom_field){
- dest_y += s->linesize;
- dest_cb+= s->uvlinesize;
- dest_cr+= s->uvlinesize;
- }
-
- if(field_select){
- ptr_y += s->linesize;
- ptr_cb += s->uvlinesize;
- ptr_cr += s->uvlinesize;
- }
- //damn interlaced mode
- //FIXME boundary mirroring is not exactly correct here
- qpix_op[1][dxy](dest_y , ptr_y , linesize);
- qpix_op[1][dxy](dest_y+8, ptr_y+8, linesize);
- }
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- pix_op[1][uvdxy](dest_cr, ptr_cr, uvlinesize, h >> 1);
- pix_op[1][uvdxy](dest_cb, ptr_cb, uvlinesize, h >> 1);
- }
-}
-
-/**
- * h263 chroma 4mv motion compensation.
- */
-static inline void chroma_4mv_motion(MpegEncContext *s,
- uint8_t *dest_cb, uint8_t *dest_cr,
- uint8_t **ref_picture,
- op_pixels_func *pix_op,
- int mx, int my){
- int dxy, emu=0, src_x, src_y, offset;
- uint8_t *ptr;
-
- /* In case of 8X8, we construct a single chroma motion vector
- with a special rounding */
- mx= ff_h263_round_chroma(mx);
- my= ff_h263_round_chroma(my);
-
- dxy = ((my & 1) << 1) | (mx & 1);
- mx >>= 1;
- my >>= 1;
-
- src_x = s->mb_x * 8 + mx;
- src_y = s->mb_y * 8 + my;
- src_x = av_clip(src_x, -8, s->width/2);
- if (src_x == s->width/2)
- dxy &= ~1;
- src_y = av_clip(src_y, -8, s->height/2);
- if (src_y == s->height/2)
- dxy &= ~2;
-
- offset = (src_y * (s->uvlinesize)) + src_x;
- ptr = ref_picture[1] + offset;
- if(s->flags&CODEC_FLAG_EMU_EDGE){
- if( (unsigned)src_x > (s->h_edge_pos>>1) - (dxy &1) - 8
- || (unsigned)src_y > (s->v_edge_pos>>1) - (dxy>>1) - 8){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
- 9, 9, src_x, src_y,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr= s->edge_emu_buffer;
- emu=1;
- }
- }
- pix_op[dxy](dest_cb, ptr, s->uvlinesize, 8);
-
- ptr = ref_picture[2] + offset;
- if(emu){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
- 9, 9, src_x, src_y,
- s->h_edge_pos>>1, s->v_edge_pos>>1);
- ptr= s->edge_emu_buffer;
- }
- pix_op[dxy](dest_cr, ptr, s->uvlinesize, 8);
-}
-
-static inline void prefetch_motion(MpegEncContext *s, uint8_t **pix, int dir){
- /* fetch pixels for estimated mv 4 macroblocks ahead
- * optimized for 64byte cache lines */
- const int shift = s->quarter_sample ? 2 : 1;
- const int mx= (s->mv[dir][0][0]>>shift) + 16*s->mb_x + 8;
- const int my= (s->mv[dir][0][1]>>shift) + 16*s->mb_y;
- int off= mx + (my + (s->mb_x&3)*4)*s->linesize + 64;
- s->dsp.prefetch(pix[0]+off, s->linesize, 4);
- off= (mx>>1) + ((my>>1) + (s->mb_x&7))*s->uvlinesize + 64;
- s->dsp.prefetch(pix[1]+off, pix[2]-pix[1], 2);
-}
-
-/**
- * motion compensation of a single macroblock
- * @param s context
- * @param dest_y luma destination pointer
- * @param dest_cb chroma cb/u destination pointer
- * @param dest_cr chroma cr/v destination pointer
- * @param dir direction (0->forward, 1->backward)
- * @param ref_picture array[3] of pointers to the 3 planes of the reference picture
- * @param pic_op halfpel motion compensation function (average or put normally)
- * @param pic_op qpel motion compensation function (average or put normally)
- * the motion vectors are taken from s->mv and the MV type from s->mv_type
- */
-static av_always_inline void MPV_motion_internal(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb,
- uint8_t *dest_cr, int dir,
- uint8_t **ref_picture,
- op_pixels_func (*pix_op)[4],
- qpel_mc_func (*qpix_op)[16], int is_mpeg12)
-{
- int dxy, mx, my, src_x, src_y, motion_x, motion_y;
- int mb_x, mb_y, i;
- uint8_t *ptr, *dest;
-
- mb_x = s->mb_x;
- mb_y = s->mb_y;
-
- prefetch_motion(s, ref_picture, dir);
-
- if(!is_mpeg12 && s->obmc && s->pict_type != FF_B_TYPE){
- int16_t mv_cache[4][4][2];
- const int xy= s->mb_x + s->mb_y*s->mb_stride;
- const int mot_stride= s->b8_stride;
- const int mot_xy= mb_x*2 + mb_y*2*mot_stride;
-
- assert(!s->mb_skipped);
-
- memcpy(mv_cache[1][1], s->current_picture.motion_val[0][mot_xy ], sizeof(int16_t)*4);
- memcpy(mv_cache[2][1], s->current_picture.motion_val[0][mot_xy+mot_stride], sizeof(int16_t)*4);
- memcpy(mv_cache[3][1], s->current_picture.motion_val[0][mot_xy+mot_stride], sizeof(int16_t)*4);
-
- if(mb_y==0 || IS_INTRA(s->current_picture.mb_type[xy-s->mb_stride])){
- memcpy(mv_cache[0][1], mv_cache[1][1], sizeof(int16_t)*4);
- }else{
- memcpy(mv_cache[0][1], s->current_picture.motion_val[0][mot_xy-mot_stride], sizeof(int16_t)*4);
- }
-
- if(mb_x==0 || IS_INTRA(s->current_picture.mb_type[xy-1])){
- *(int32_t*)mv_cache[1][0]= *(int32_t*)mv_cache[1][1];
- *(int32_t*)mv_cache[2][0]= *(int32_t*)mv_cache[2][1];
- }else{
- *(int32_t*)mv_cache[1][0]= *(int32_t*)s->current_picture.motion_val[0][mot_xy-1];
- *(int32_t*)mv_cache[2][0]= *(int32_t*)s->current_picture.motion_val[0][mot_xy-1+mot_stride];
- }
-
- if(mb_x+1>=s->mb_width || IS_INTRA(s->current_picture.mb_type[xy+1])){
- *(int32_t*)mv_cache[1][3]= *(int32_t*)mv_cache[1][2];
- *(int32_t*)mv_cache[2][3]= *(int32_t*)mv_cache[2][2];
- }else{
- *(int32_t*)mv_cache[1][3]= *(int32_t*)s->current_picture.motion_val[0][mot_xy+2];
- *(int32_t*)mv_cache[2][3]= *(int32_t*)s->current_picture.motion_val[0][mot_xy+2+mot_stride];
- }
-
- mx = 0;
- my = 0;
- for(i=0;i<4;i++) {
- const int x= (i&1)+1;
- const int y= (i>>1)+1;
- int16_t mv[5][2]= {
- {mv_cache[y][x ][0], mv_cache[y][x ][1]},
- {mv_cache[y-1][x][0], mv_cache[y-1][x][1]},
- {mv_cache[y][x-1][0], mv_cache[y][x-1][1]},
- {mv_cache[y][x+1][0], mv_cache[y][x+1][1]},
- {mv_cache[y+1][x][0], mv_cache[y+1][x][1]}};
- //FIXME cleanup
- obmc_motion(s, dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize,
- ref_picture[0],
- mb_x * 16 + (i & 1) * 8, mb_y * 16 + (i >>1) * 8,
- pix_op[1],
- mv);
-
- mx += mv[0][0];
- my += mv[0][1];
- }
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY))
- chroma_4mv_motion(s, dest_cb, dest_cr, ref_picture, pix_op[1], mx, my);
-
- return;
- }
-
- switch(s->mv_type) {
- case MV_TYPE_16X16:
- if(s->mcsel){
- if(s->real_sprite_warping_points==1){
- gmc1_motion(s, dest_y, dest_cb, dest_cr,
- ref_picture);
- }else{
- gmc_motion(s, dest_y, dest_cb, dest_cr,
- ref_picture);
- }
- }else if(!is_mpeg12 && s->quarter_sample){
- qpel_motion(s, dest_y, dest_cb, dest_cr,
- 0, 0, 0,
- ref_picture, pix_op, qpix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16);
- }else if(!is_mpeg12 && (CONFIG_WMV2_DECODER || CONFIG_WMV2_ENCODER) && s->mspel){
- ff_mspel_motion(s, dest_y, dest_cb, dest_cr,
- ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16);
- }else
- {
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 0, 0, 0,
- ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16, mb_y);
- }
- break;
- case MV_TYPE_8X8:
- if (!is_mpeg12) {
- mx = 0;
- my = 0;
- if(s->quarter_sample){
- for(i=0;i<4;i++) {
- motion_x = s->mv[dir][i][0];
- motion_y = s->mv[dir][i][1];
-
- dxy = ((motion_y & 3) << 2) | (motion_x & 3);
- src_x = mb_x * 16 + (motion_x >> 2) + (i & 1) * 8;
- src_y = mb_y * 16 + (motion_y >> 2) + (i >>1) * 8;
-
- /* WARNING: do no forget half pels */
- src_x = av_clip(src_x, -16, s->width);
- if (src_x == s->width)
- dxy &= ~3;
- src_y = av_clip(src_y, -16, s->height);
- if (src_y == s->height)
- dxy &= ~12;
-
- ptr = ref_picture[0] + (src_y * s->linesize) + (src_x);
- if(s->flags&CODEC_FLAG_EMU_EDGE){
- if( (unsigned)src_x > s->h_edge_pos - (motion_x&3) - 8
- || (unsigned)src_y > s->v_edge_pos - (motion_y&3) - 8 ){
- ff_emulated_edge_mc(s->edge_emu_buffer, ptr,
- s->linesize, 9, 9,
- src_x, src_y,
- s->h_edge_pos, s->v_edge_pos);
- ptr= s->edge_emu_buffer;
- }
- }
- dest = dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize;
- qpix_op[1][dxy](dest, ptr, s->linesize);
-
- mx += s->mv[dir][i][0]/2;
- my += s->mv[dir][i][1]/2;
- }
- }else{
- for(i=0;i<4;i++) {
- hpel_motion(s, dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize,
- ref_picture[0], 0, 0,
- mb_x * 16 + (i & 1) * 8, mb_y * 16 + (i >>1) * 8,
- s->width, s->height, s->linesize,
- s->h_edge_pos, s->v_edge_pos,
- 8, 8, pix_op[1],
- s->mv[dir][i][0], s->mv[dir][i][1]);
-
- mx += s->mv[dir][i][0];
- my += s->mv[dir][i][1];
- }
- }
-
- if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY))
- chroma_4mv_motion(s, dest_cb, dest_cr, ref_picture, pix_op[1], mx, my);
- }
- break;
- case MV_TYPE_FIELD:
- if (s->picture_structure == PICT_FRAME) {
- if(!is_mpeg12 && s->quarter_sample){
- for(i=0; i<2; i++){
- qpel_motion(s, dest_y, dest_cb, dest_cr,
- 1, i, s->field_select[dir][i],
- ref_picture, pix_op, qpix_op,
- s->mv[dir][i][0], s->mv[dir][i][1], 8);
- }
- }else{
- /* top field */
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 1, 0, s->field_select[dir][0],
- ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 8, mb_y);
- /* bottom field */
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 1, 1, s->field_select[dir][1],
- ref_picture, pix_op,
- s->mv[dir][1][0], s->mv[dir][1][1], 8, mb_y);
- }
- } else {
- if(s->picture_structure != s->field_select[dir][0] + 1 && s->pict_type != FF_B_TYPE && !s->first_field){
- ref_picture= s->current_picture_ptr->data;
- }
-
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 0, 0, s->field_select[dir][0],
- ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16, mb_y>>1);
- }
- break;
- case MV_TYPE_16X8:
- for(i=0; i<2; i++){
- uint8_t ** ref2picture;
-
- if(s->picture_structure == s->field_select[dir][i] + 1
- || s->pict_type == FF_B_TYPE || s->first_field){
- ref2picture= ref_picture;
- }else{
- ref2picture= s->current_picture_ptr->data;
- }
-
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 0, 0, s->field_select[dir][i],
- ref2picture, pix_op,
- s->mv[dir][i][0], s->mv[dir][i][1] + 16*i, 8, mb_y>>1);
-
- dest_y += 16*s->linesize;
- dest_cb+= (16>>s->chroma_y_shift)*s->uvlinesize;
- dest_cr+= (16>>s->chroma_y_shift)*s->uvlinesize;
- }
- break;
- case MV_TYPE_DMV:
- if(s->picture_structure == PICT_FRAME){
- for(i=0; i<2; i++){
- int j;
- for(j=0; j<2; j++){
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 1, j, j^i,
- ref_picture, pix_op,
- s->mv[dir][2*i + j][0], s->mv[dir][2*i + j][1], 8, mb_y);
- }
- pix_op = s->dsp.avg_pixels_tab;
- }
- }else{
- for(i=0; i<2; i++){
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- 0, 0, s->picture_structure != i+1,
- ref_picture, pix_op,
- s->mv[dir][2*i][0],s->mv[dir][2*i][1],16, mb_y>>1);
-
- // after put we make avg of the same block
- pix_op=s->dsp.avg_pixels_tab;
-
- //opposite parity is always in the same frame if this is second field
- if(!s->first_field){
- ref_picture = s->current_picture_ptr->data;
- }
- }
- }
- break;
- default: assert(0);
- }
-}
-
-static inline void MPV_motion(MpegEncContext *s,
- uint8_t *dest_y, uint8_t *dest_cb,
- uint8_t *dest_cr, int dir,
- uint8_t **ref_picture,
- op_pixels_func (*pix_op)[4],
- qpel_mc_func (*qpix_op)[16])
-{
-#if !CONFIG_SMALL
- if(s->out_format == FMT_MPEG1)
- MPV_motion_internal(s, dest_y, dest_cb, dest_cr, dir,
- ref_picture, pix_op, qpix_op, 1);
- else
-#endif
- MPV_motion_internal(s, dest_y, dest_cb, dest_cr, dir,
- ref_picture, pix_op, qpix_op, 0);
-}
-#endif /* AVCODEC_MPEGVIDEO_COMMON_H */
+++ /dev/null
-/*
- * MSMPEG4 backend for ffmpeg encoder and decoder
- * copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- */
-
-#ifndef AVCODEC_MSMPEG4_H
-#define AVCODEC_MSMPEG4_H
-
-#include "config.h"
-#include "avcodec.h"
-#include "dsputil.h"
-#include "mpegvideo.h"
-
-#define INTER_INTRA_VLC_BITS 3
-#define MB_NON_INTRA_VLC_BITS 9
-#define MB_INTRA_VLC_BITS 9
-
-extern VLC ff_mb_non_intra_vlc[4];
-extern VLC ff_inter_intra_vlc;
-
-void ff_msmpeg4_code012(PutBitContext *pb, int n);
-void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n);
-void ff_msmpeg4_handle_slices(MpegEncContext *s);
-void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my);
-int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n,
- uint8_t **coded_block_ptr);
-int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr);
-int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
- int n, int coded, const uint8_t *scan_table);
-int ff_wmv2_decode_mb(MpegEncContext *s, DCTELEM block[6][64]);
-
-#define CONFIG_MSMPEG4_DECODER (CONFIG_MSMPEG4V1_DECODER || \
- CONFIG_MSMPEG4V2_DECODER || \
- CONFIG_MSMPEG4V3_DECODER || \
- CONFIG_WMV2_DECODER || \
- CONFIG_VC1_DECODER)
-#define CONFIG_MSMPEG4_ENCODER (CONFIG_MSMPEG4V1_ENCODER || \
- CONFIG_MSMPEG4V2_ENCODER || \
- CONFIG_MSMPEG4V3_ENCODER || \
- CONFIG_WMV2_ENCODER)
-
-#endif /* AVCODEC_MSMPEG4_H */
+++ /dev/null
-/*
- * MSMPEG4 backend for ffmpeg encoder and decoder
- * copyright (c) 2001 Fabrice Bellard
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MSMPEG4 data tables.
- */
-
-#ifndef AVCODEC_MSMPEG4DATA_H
-#define AVCODEC_MSMPEG4DATA_H
-
-#include "libavutil/common.h"
-#include "get_bits.h"
-#include "rl.h"
-
-/* motion vector table */
-typedef struct MVTable {
- int n;
- const uint16_t *table_mv_code;
- const uint8_t *table_mv_bits;
- const uint8_t *table_mvx;
- const uint8_t *table_mvy;
- uint16_t *table_mv_index; /* encoding: convert mv to index in table_mv */
- VLC vlc; /* decoding: vlc */
-} MVTable;
-
-extern VLC ff_msmp4_mb_i_vlc;
-extern VLC ff_msmp4_dc_luma_vlc[2];
-extern VLC ff_msmp4_dc_chroma_vlc[2];
-
-/* intra picture macroblock coded block pattern */
-extern const uint16_t ff_msmp4_mb_i_table[64][2];
-
-#define WMV1_SCANTABLE_COUNT 4
-
-extern const uint8_t wmv1_scantable[WMV1_SCANTABLE_COUNT][64];
-
-#define NB_RL_TABLES 6
-
-extern RLTable rl_table[NB_RL_TABLES];
-
-extern const uint8_t wmv1_y_dc_scale_table[32];
-extern const uint8_t wmv1_c_dc_scale_table[32];
-extern const uint8_t old_ff_y_dc_scale_table[32];
-
-extern MVTable mv_tables[2];
-
-extern const uint8_t v2_mb_type[8][2];
-extern const uint8_t v2_intra_cbpc[4][2];
-
-extern const uint32_t table_mb_non_intra[128][2];
-extern const uint8_t table_inter_intra[4][2];
-
-extern const uint32_t ff_table0_dc_lum[120][2];
-extern const uint32_t ff_table1_dc_lum[120][2];
-extern const uint32_t ff_table0_dc_chroma[120][2];
-extern const uint32_t ff_table1_dc_chroma[120][2];
-
-#define WMV2_INTER_CBP_TABLE_COUNT 4
-extern const uint32_t (* const wmv2_inter_table[WMV2_INTER_CBP_TABLE_COUNT])[2];
-
-extern const uint8_t wmv2_scantableA[64];
-extern const uint8_t wmv2_scantableB[64];
-
-#endif /* AVCODEC_MSMPEG4DATA_H */
+++ /dev/null
-/*
- * Microsoft RLE decoder
- * Copyright (C) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_MSRLEDEC_H
-#define AVCODEC_MSRLEDEC_H
-
-#include "avcodec.h"
-
-/**
- * Decodes stream in MS RLE format into frame.
- *
- * @param avctx codec context
- * @param pic destination frame
- * @param depth bit depth
- * @param data input stream
- * @param data_size input size
- */
-int ff_msrle_decode(AVCodecContext *avctx, AVPicture *pic, int depth,
- const uint8_t* data, int data_size);
-
-#endif /* AVCODEC_MSRLEDEC_H */
-
+++ /dev/null
-/*
- * Common code between Nellymoser encoder and decoder
- * Copyright (c) 2007 a840bda5870ba11f19698ff6eb9581dfb0f95fa5,
- * 539459aeb7d425140b62a3ec7dbf6dc8e408a306, and
- * 520e17cd55896441042b14df2566a6eb610ed444
- * Copyright (c) 2007 Loic Minier <lool at dooz.org>
- * Benjamin Larsson
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * @file
- * The 3 alphanumeric copyright notices are md5summed they are from the original
- * implementors. The original code is available from http://code.google.com/p/nelly2pcm/
- */
-
-#ifndef AVCODEC_NELLYMOSER_H
-#define AVCODEC_NELLYMOSER_H
-
-#include "avcodec.h"
-
-#define NELLY_BANDS 23
-#define NELLY_BLOCK_LEN 64
-#define NELLY_HEADER_BITS 116
-#define NELLY_DETAIL_BITS 198
-#define NELLY_BUF_LEN 128
-#define NELLY_FILL_LEN 124
-#define NELLY_BIT_CAP 6
-#define NELLY_BASE_OFF 4228
-#define NELLY_BASE_SHIFT 19
-#define NELLY_SAMPLES (2 * NELLY_BUF_LEN)
-
-extern const float ff_nelly_dequantization_table[127];
-extern const uint8_t ff_nelly_band_sizes_table[NELLY_BANDS];
-extern const uint16_t ff_nelly_init_table[64];
-extern const int16_t ff_nelly_delta_table[32];
-
-void ff_nelly_get_sample_bits(const float *buf, int *bits);
-
-#endif
+++ /dev/null
-/*
- * AVOptions
- * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_OPT_H
-#define AVCODEC_OPT_H
-
-/**
- * @file
- * AVOptions
- */
-
-#include "libavutil/rational.h"
-#include "avcodec.h"
-
-enum AVOptionType{
- FF_OPT_TYPE_FLAGS,
- FF_OPT_TYPE_INT,
- FF_OPT_TYPE_INT64,
- FF_OPT_TYPE_DOUBLE,
- FF_OPT_TYPE_FLOAT,
- FF_OPT_TYPE_STRING,
- FF_OPT_TYPE_RATIONAL,
- FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
- FF_OPT_TYPE_CONST=128,
-};
-
-/**
- * AVOption
- */
-typedef struct AVOption {
- const char *name;
-
- /**
- * short English help text
- * @todo What about other languages?
- */
- const char *help;
-
- /**
- * The offset relative to the context structure where the option
- * value is stored. It should be 0 for named constants.
- */
- int offset;
- enum AVOptionType type;
-
- /**
- * the default value for scalar options
- */
- double default_val;
- double min; ///< minimum valid value for the option
- double max; ///< maximum valid value for the option
-
- int flags;
-#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
-#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
-#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
-#define AV_OPT_FLAG_AUDIO_PARAM 8
-#define AV_OPT_FLAG_VIDEO_PARAM 16
-#define AV_OPT_FLAG_SUBTITLE_PARAM 32
-//FIXME think about enc-audio, ... style flags
-
- /**
- * The logical unit to which the option belongs. Non-constant
- * options and corresponding named constants share the same
- * unit. May be NULL.
- */
- const char *unit;
-} AVOption;
-
-/**
- * AVOption2.
- * THIS IS NOT PART OF THE API/ABI YET!
- * This is identical to AVOption except that default_val was replaced by
- * an union, it should be compatible with AVOption on normal platforms.
- */
-typedef struct AVOption2 {
- const char *name;
-
- /**
- * short English help text
- * @todo What about other languages?
- */
- const char *help;
-
- /**
- * The offset relative to the context structure where the option
- * value is stored. It should be 0 for named constants.
- */
- int offset;
- enum AVOptionType type;
-
- /**
- * the default value for scalar options
- */
- union {
- double dbl;
- const char *str;
- } default_val;
-
- double min; ///< minimum valid value for the option
- double max; ///< maximum valid value for the option
-
- int flags;
-/*
-#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
-#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
-#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
-#define AV_OPT_FLAG_AUDIO_PARAM 8
-#define AV_OPT_FLAG_VIDEO_PARAM 16
-#define AV_OPT_FLAG_SUBTITLE_PARAM 32
-*/
-//FIXME think about enc-audio, ... style flags
-
- /**
- * The logical unit to which the option belongs. Non-constant
- * options and corresponding named constants share the same
- * unit. May be NULL.
- */
- const char *unit;
-} AVOption2;
-
-
-/**
- * Looks for an option in obj. Looks only for the options which
- * have the flags set as specified in mask and flags (that is,
- * for which it is the case that opt->flags & mask == flags).
- *
- * @param[in] obj a pointer to a struct whose first element is a
- * pointer to an AVClass
- * @param[in] name the name of the option to look for
- * @param[in] unit the unit of the option to look for, or any if NULL
- * @return a pointer to the option found, or NULL if no option
- * has been found
- */
-const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags);
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-/**
- * @see av_set_string2()
- */
-attribute_deprecated const AVOption *av_set_string(void *obj, const char *name, const char *val);
-
-/**
- * @return a pointer to the AVOption corresponding to the field set or
- * NULL if no matching AVOption exists, or if the value val is not
- * valid
- * @see av_set_string3()
- */
-attribute_deprecated const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc);
-#endif
-
-/**
- * Sets the field of obj with the given name to value.
- *
- * @param[in] obj A struct whose first element is a pointer to an
- * AVClass.
- * @param[in] name the name of the field to set
- * @param[in] val The value to set. If the field is not of a string
- * type, then the given string is parsed.
- * SI postfixes and some named scalars are supported.
- * If the field is of a numeric type, it has to be a numeric or named
- * scalar. Behavior with more than one scalar and +- infix operators
- * is undefined.
- * If the field is of a flags type, it has to be a sequence of numeric
- * scalars or named flags separated by '+' or '-'. Prefixing a flag
- * with '+' causes it to be set without affecting the other flags;
- * similarly, '-' unsets a flag.
- * @param[out] o_out if non-NULL put here a pointer to the AVOption
- * found
- * @param alloc when 1 then the old value will be av_freed() and the
- * new av_strduped()
- * when 0 then no av_free() nor av_strdup() will be used
- * @return 0 if the value has been set, or an AVERROR code in case of
- * error:
- * AVERROR(ENOENT) if no matching option exists
- * AVERROR(ERANGE) if the value is out of range
- * AVERROR(EINVAL) if the value is not valid
- */
-int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out);
-
-const AVOption *av_set_double(void *obj, const char *name, double n);
-const AVOption *av_set_q(void *obj, const char *name, AVRational n);
-const AVOption *av_set_int(void *obj, const char *name, int64_t n);
-double av_get_double(void *obj, const char *name, const AVOption **o_out);
-AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
-int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
-const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
-const AVOption *av_next_option(void *obj, const AVOption *last);
-int av_opt_show(void *obj, void *av_log_obj);
-void av_opt_set_defaults(void *s);
-void av_opt_set_defaults2(void *s, int mask, int flags);
-
-#endif /* AVCODEC_OPT_H */
+++ /dev/null
-/*
- * AVCodecParser prototypes and definitions
- * Copyright (c) 2003 Fabrice Bellard
- * Copyright (c) 2003 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_PARSER_H
-#define AVCODEC_PARSER_H
-
-#include "avcodec.h"
-
-typedef struct ParseContext{
- uint8_t *buffer;
- int index;
- int last_index;
- unsigned int buffer_size;
- uint32_t state; ///< contains the last few bytes in MSB order
- int frame_start_found;
- int overread; ///< the number of bytes which where irreversibly read from the next frame
- int overread_index; ///< the index into ParseContext.buffer of the overread bytes
- uint64_t state64; ///< contains the last 8 bytes in MSB order
-} ParseContext;
-
-struct MpegEncContext;
-
-typedef struct ParseContext1{
- ParseContext pc;
-/* XXX/FIXME PC1 vs. PC */
- /* MPEG-2-specific */
- AVRational frame_rate;
- int progressive_sequence;
- int width, height;
-
- /* XXX: suppress that, needed by MPEG-4 */
- struct MpegEncContext *enc;
- int first_picture;
-} ParseContext1;
-
-#define END_NOT_FOUND (-100)
-
-int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_size);
-int ff_mpeg4video_split(AVCodecContext *avctx, const uint8_t *buf,
- int buf_size);
-void ff_parse_close(AVCodecParserContext *s);
-void ff_parse1_close(AVCodecParserContext *s);
-
-/**
- * Fetches timestamps for a specific byte within the current access unit.
- * @param off byte position within the access unit
- * @param remove Found timestamps will be removed if set to 1, kept if set to 0.
- */
-void ff_fetch_timestamp(AVCodecParserContext *s, int off, int remove);
-
-#endif /* AVCODEC_PARSER_H */
+++ /dev/null
-/*
- * Header file for hardcoded PCM tables
- *
- * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef PCM_TABLEGEN_H
-#define PCM_TABLEGEN_H
-
-#include <stdint.h>
-#include "../libavutil/attributes.h"
-
-/* from g711.c by SUN microsystems (unrestricted use) */
-
-#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */
-#define QUANT_MASK (0xf) /* Quantization field mask. */
-#define NSEGS (8) /* Number of A-law segments. */
-#define SEG_SHIFT (4) /* Left shift for segment number. */
-#define SEG_MASK (0x70) /* Segment field mask. */
-
-#define BIAS (0x84) /* Bias for linear code. */
-
-/*
- * alaw2linear() - Convert an A-law value to 16-bit linear PCM
- *
- */
-static av_cold int alaw2linear(unsigned char a_val)
-{
- int t;
- int seg;
-
- a_val ^= 0x55;
-
- t = a_val & QUANT_MASK;
- seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
- if(seg) t= (t + t + 1 + 32) << (seg + 2);
- else t= (t + t + 1 ) << 3;
-
- return (a_val & SIGN_BIT) ? t : -t;
-}
-
-static av_cold int ulaw2linear(unsigned char u_val)
-{
- int t;
-
- /* Complement to obtain normal u-law value. */
- u_val = ~u_val;
-
- /*
- * Extract and bias the quantization bits. Then
- * shift up by the segment number and subtract out the bias.
- */
- t = ((u_val & QUANT_MASK) << 3) + BIAS;
- t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT;
-
- return (u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS);
-}
-
-#if CONFIG_HARDCODED_TABLES
-#define pcm_alaw_tableinit()
-#define pcm_ulaw_tableinit()
-#include "libavcodec/pcm_tables.h"
-#else
-/* 16384 entries per table */
-static uint8_t linear_to_alaw[16384];
-static uint8_t linear_to_ulaw[16384];
-
-static av_cold void build_xlaw_table(uint8_t *linear_to_xlaw,
- int (*xlaw2linear)(unsigned char),
- int mask)
-{
- int i, j, v, v1, v2;
-
- j = 0;
- for(i=0;i<128;i++) {
- if (i != 127) {
- v1 = xlaw2linear(i ^ mask);
- v2 = xlaw2linear((i + 1) ^ mask);
- v = (v1 + v2 + 4) >> 3;
- } else {
- v = 8192;
- }
- for(;j<v;j++) {
- linear_to_xlaw[8192 + j] = (i ^ mask);
- if (j > 0)
- linear_to_xlaw[8192 - j] = (i ^ (mask ^ 0x80));
- }
- }
- linear_to_xlaw[0] = linear_to_xlaw[1];
-}
-
-static void pcm_alaw_tableinit(void)
-{
- build_xlaw_table(linear_to_alaw, alaw2linear, 0xd5);
-}
-
-static void pcm_ulaw_tableinit(void)
-{
- build_xlaw_table(linear_to_ulaw, ulaw2linear, 0xff);
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* PCM_TABLEGEN_H */
+++ /dev/null
-/*
- * PNG image format
- * Copyright (c) 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_PNG_H
-#define AVCODEC_PNG_H
-
-#include <stdint.h>
-
-#define PNG_COLOR_MASK_PALETTE 1
-#define PNG_COLOR_MASK_COLOR 2
-#define PNG_COLOR_MASK_ALPHA 4
-
-#define PNG_COLOR_TYPE_GRAY 0
-#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
-#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR)
-#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
-#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
-
-#define PNG_FILTER_TYPE_LOCO 64
-#define PNG_FILTER_VALUE_NONE 0
-#define PNG_FILTER_VALUE_SUB 1
-#define PNG_FILTER_VALUE_UP 2
-#define PNG_FILTER_VALUE_AVG 3
-#define PNG_FILTER_VALUE_PAETH 4
-#define PNG_FILTER_VALUE_MIXED 5
-
-#define PNG_IHDR 0x0001
-#define PNG_IDAT 0x0002
-#define PNG_ALLIMAGE 0x0004
-#define PNG_PLTE 0x0008
-
-#define NB_PASSES 7
-
-extern const uint8_t ff_pngsig[8];
-extern const uint8_t ff_mngsig[8];
-
-/* Mask to determine which y pixels are valid in a pass */
-extern const uint8_t ff_png_pass_ymask[NB_PASSES];
-
-/* minimum x value */
-extern const uint8_t ff_png_pass_xmin[NB_PASSES];
-
-/* x shift to get row width */
-extern const uint8_t ff_png_pass_xshift[NB_PASSES];
-
-/* Mask to determine which pixels are valid in a pass */
-extern const uint8_t ff_png_pass_mask[NB_PASSES];
-
-void *ff_png_zalloc(void *opaque, unsigned int items, unsigned int size);
-
-void ff_png_zfree(void *opaque, void *ptr);
-
-int ff_png_get_nb_channels(int color_type);
-
-/* compute the row size of an interleaved pass */
-int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
-
-void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
-
-#endif /* AVCODEC_PNG_H */
+++ /dev/null
-/*
- * PNM image format
- * Copyright (c) 2002, 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_PNM_H
-#define AVCODEC_PNM_H
-
-#include "avcodec.h"
-
-typedef struct PNMContext {
- uint8_t *bytestream;
- uint8_t *bytestream_start;
- uint8_t *bytestream_end;
- AVFrame picture;
- int maxval; ///< maximum value of a pixel
- int type;
-} PNMContext;
-
-int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s);
-av_cold int ff_pnm_end(AVCodecContext *avctx);
-av_cold int ff_pnm_init(AVCodecContext *avctx);
-
-#endif /* AVCODEC_PNM_H */
+++ /dev/null
-/*
- * audio encoder psychoacoustic model
- * Copyright (C) 2008 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_PSYMODEL_H
-#define AVCODEC_PSYMODEL_H
-
-#include "avcodec.h"
-
-/** maximum possible number of bands */
-#define PSY_MAX_BANDS 128
-
-/**
- * single band psychoacoustic information
- */
-typedef struct FFPsyBand {
- int bits;
- float energy;
- float threshold;
- float distortion;
- float perceptual_weight;
-} FFPsyBand;
-
-/**
- * windowing related information
- */
-typedef struct FFPsyWindowInfo {
- int window_type[3]; ///< window type (short/long/transitional, etc.) - current, previous and next
- int window_shape; ///< window shape (sine/KBD/whatever)
- int num_windows; ///< number of windows in a frame
- int grouping[8]; ///< window grouping (for e.g. AAC)
- int *window_sizes; ///< sequence of window sizes inside one frame (for eg. WMA)
-} FFPsyWindowInfo;
-
-/**
- * context used by psychoacoustic model
- */
-typedef struct FFPsyContext {
- AVCodecContext *avctx; ///< encoder context
- const struct FFPsyModel *model; ///< encoder-specific model functions
-
- FFPsyBand *psy_bands; ///< frame bands information
-
- uint8_t **bands; ///< scalefactor band sizes for possible frame sizes
- int *num_bands; ///< number of scalefactor bands for possible frame sizes
- int num_lens; ///< number of scalefactor band sets
-
- void* model_priv_data; ///< psychoacoustic model implementation private data
-} FFPsyContext;
-
-/**
- * codec-specific psychoacoustic model implementation
- */
-typedef struct FFPsyModel {
- const char *name;
- int (*init) (FFPsyContext *apc);
- FFPsyWindowInfo (*window)(FFPsyContext *ctx, const int16_t *audio, const int16_t *la, int channel, int prev_type);
- void (*analyze)(FFPsyContext *ctx, int channel, const float *coeffs, FFPsyWindowInfo *wi);
- void (*end) (FFPsyContext *apc);
-} FFPsyModel;
-
-/**
- * Initialize psychoacoustic model.
- *
- * @param ctx model context
- * @param avctx codec context
- * @param num_lens number of possible frame lengths
- * @param bands scalefactor band lengths for all frame lengths
- * @param num_bands number of scalefactor bands for all frame lengths
- *
- * @return zero if successful, a negative value if not
- */
-av_cold int ff_psy_init(FFPsyContext *ctx, AVCodecContext *avctx,
- int num_lens,
- const uint8_t **bands, const int* num_bands);
-
-/**
- * Suggest window sequence for channel.
- *
- * @param ctx model context
- * @param audio samples for the current frame
- * @param la lookahead samples (NULL when unavailable)
- * @param channel number of channel element to analyze
- * @param prev_type previous window type
- *
- * @return suggested window information in a structure
- */
-FFPsyWindowInfo ff_psy_suggest_window(FFPsyContext *ctx,
- const int16_t *audio, const int16_t *la,
- int channel, int prev_type);
-
-
-/**
- * Perform psychoacoustic analysis and set band info (threshold, energy).
- *
- * @param ctx model context
- * @param channel audio channel number
- * @param coeffs pointer to the transformed coefficients
- * @param wi window information
- */
-void ff_psy_set_band_info(FFPsyContext *ctx, int channel, const float *coeffs,
- FFPsyWindowInfo *wi);
-
-/**
- * Cleanup model context at the end.
- *
- * @param ctx model context
- */
-av_cold void ff_psy_end(FFPsyContext *ctx);
-
-
-/**************************************************************************
- * Audio preprocessing stuff. *
- * This should be moved into some audio filter eventually. *
- **************************************************************************/
-struct FFPsyPreprocessContext;
-
-/**
- * psychoacoustic model audio preprocessing initialization
- */
-av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *avctx);
-
-/**
- * Preprocess several channel in audio frame in order to compress it better.
- *
- * @param ctx preprocessing context
- * @param audio samples to preprocess
- * @param dest place to put filtered samples
- * @param tag channel number
- * @param channels number of channel to preprocess (some additional work may be done on stereo pair)
- */
-void ff_psy_preprocess(struct FFPsyPreprocessContext *ctx,
- const int16_t *audio, int16_t *dest,
- int tag, int channels);
-
-/**
- * Cleanup audio preprocessing module.
- */
-av_cold void ff_psy_preprocess_end(struct FFPsyPreprocessContext *ctx);
-
-#endif /* AVCODEC_PSYMODEL_H */
+++ /dev/null
-/*
- * copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * bitstream writer API
- */
-
-#ifndef AVCODEC_PUT_BITS_H
-#define AVCODEC_PUT_BITS_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "libavutil/bswap.h"
-#include "libavutil/common.h"
-#include "libavutil/intreadwrite.h"
-#include "libavutil/log.h"
-#include "mathops.h"
-
-//#define ALT_BITSTREAM_WRITER
-//#define ALIGNED_BITSTREAM_WRITER
-
-/* buf and buf_end must be present and used by every alternative writer. */
-typedef struct PutBitContext {
-#ifdef ALT_BITSTREAM_WRITER
- uint8_t *buf, *buf_end;
- int index;
-#else
- uint32_t bit_buf;
- int bit_left;
- uint8_t *buf, *buf_ptr, *buf_end;
-#endif
- int size_in_bits;
-} PutBitContext;
-
-/**
- * Initializes the PutBitContext s.
- *
- * @param buffer the buffer where to put bits
- * @param buffer_size the size in bytes of buffer
- */
-static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
-{
- if(buffer_size < 0) {
- buffer_size = 0;
- buffer = NULL;
- }
-
- s->size_in_bits= 8*buffer_size;
- s->buf = buffer;
- s->buf_end = s->buf + buffer_size;
-#ifdef ALT_BITSTREAM_WRITER
- s->index=0;
- ((uint32_t*)(s->buf))[0]=0;
-// memset(buffer, 0, buffer_size);
-#else
- s->buf_ptr = s->buf;
- s->bit_left=32;
- s->bit_buf=0;
-#endif
-}
-
-/**
- * Returns the total number of bits written to the bitstream.
- */
-static inline int put_bits_count(PutBitContext *s)
-{
-#ifdef ALT_BITSTREAM_WRITER
- return s->index;
-#else
- return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left;
-#endif
-}
-
-/**
- * Pads the end of the output stream with zeros.
- */
-static inline void flush_put_bits(PutBitContext *s)
-{
-#ifdef ALT_BITSTREAM_WRITER
- align_put_bits(s);
-#else
-#ifndef BITSTREAM_WRITER_LE
- s->bit_buf<<= s->bit_left;
-#endif
- while (s->bit_left < 32) {
- /* XXX: should test end of buffer */
-#ifdef BITSTREAM_WRITER_LE
- *s->buf_ptr++=s->bit_buf;
- s->bit_buf>>=8;
-#else
- *s->buf_ptr++=s->bit_buf >> 24;
- s->bit_buf<<=8;
-#endif
- s->bit_left+=8;
- }
- s->bit_left=32;
- s->bit_buf=0;
-#endif
-}
-
-#if defined(ALT_BITSTREAM_WRITER) || defined(BITSTREAM_WRITER_LE)
-#define align_put_bits align_put_bits_unsupported_here
-#define ff_put_string ff_put_string_unsupported_here
-#define ff_copy_bits ff_copy_bits_unsupported_here
-#else
-/**
- * Pads the bitstream with zeros up to the next byte boundary.
- */
-void align_put_bits(PutBitContext *s);
-
-/**
- * Puts the string string in the bitstream.
- *
- * @param terminate_string 0-terminates the written string if value is 1
- */
-void ff_put_string(PutBitContext *pb, const char *string, int terminate_string);
-
-/**
- * Copies the content of src to the bitstream.
- *
- * @param length the number of bits of src to copy
- */
-void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length);
-#endif
-
-/**
- * Writes up to 31 bits into a bitstream.
- * Use put_bits32 to write 32 bits.
- */
-static inline void put_bits(PutBitContext *s, int n, unsigned int value)
-#ifndef ALT_BITSTREAM_WRITER
-{
- unsigned int bit_buf;
- int bit_left;
-
- // printf("put_bits=%d %x\n", n, value);
- assert(n <= 31 && value < (1U << n));
-
- bit_buf = s->bit_buf;
- bit_left = s->bit_left;
-
- // printf("n=%d value=%x cnt=%d buf=%x\n", n, value, bit_cnt, bit_buf);
- /* XXX: optimize */
-#ifdef BITSTREAM_WRITER_LE
- bit_buf |= value << (32 - bit_left);
- if (n >= bit_left) {
-#if !HAVE_FAST_UNALIGNED
- if (3 & (intptr_t) s->buf_ptr) {
- AV_WL32(s->buf_ptr, bit_buf);
- } else
-#endif
- *(uint32_t *)s->buf_ptr = le2me_32(bit_buf);
- s->buf_ptr+=4;
- bit_buf = (bit_left==32)?0:value >> bit_left;
- bit_left+=32;
- }
- bit_left-=n;
-#else
- if (n < bit_left) {
- bit_buf = (bit_buf<<n) | value;
- bit_left-=n;
- } else {
- bit_buf<<=bit_left;
- bit_buf |= value >> (n - bit_left);
-#if !HAVE_FAST_UNALIGNED
- if (3 & (intptr_t) s->buf_ptr) {
- AV_WB32(s->buf_ptr, bit_buf);
- } else
-#endif
- *(uint32_t *)s->buf_ptr = be2me_32(bit_buf);
- //printf("bitbuf = %08x\n", bit_buf);
- s->buf_ptr+=4;
- bit_left+=32 - n;
- bit_buf = value;
- }
-#endif
-
- s->bit_buf = bit_buf;
- s->bit_left = bit_left;
-}
-#else /* ALT_BITSTREAM_WRITER defined */
-{
-# ifdef ALIGNED_BITSTREAM_WRITER
-# if ARCH_X86
- __asm__ volatile(
- "movl %0, %%ecx \n\t"
- "xorl %%eax, %%eax \n\t"
- "shrdl %%cl, %1, %%eax \n\t"
- "shrl %%cl, %1 \n\t"
- "movl %0, %%ecx \n\t"
- "shrl $3, %%ecx \n\t"
- "andl $0xFFFFFFFC, %%ecx \n\t"
- "bswapl %1 \n\t"
- "orl %1, (%2, %%ecx) \n\t"
- "bswapl %%eax \n\t"
- "addl %3, %0 \n\t"
- "movl %%eax, 4(%2, %%ecx) \n\t"
- : "=&r" (s->index), "=&r" (value)
- : "r" (s->buf), "r" (n), "0" (s->index), "1" (value<<(-n))
- : "%eax", "%ecx"
- );
-# else
- int index= s->index;
- uint32_t *ptr= ((uint32_t *)s->buf)+(index>>5);
-
- value<<= 32-n;
-
- ptr[0] |= be2me_32(value>>(index&31));
- ptr[1] = be2me_32(value<<(32-(index&31)));
-//if(n>24) printf("%d %d\n", n, value);
- index+= n;
- s->index= index;
-# endif
-# else //ALIGNED_BITSTREAM_WRITER
-# if ARCH_X86
- __asm__ volatile(
- "movl $7, %%ecx \n\t"
- "andl %0, %%ecx \n\t"
- "addl %3, %%ecx \n\t"
- "negl %%ecx \n\t"
- "shll %%cl, %1 \n\t"
- "bswapl %1 \n\t"
- "movl %0, %%ecx \n\t"
- "shrl $3, %%ecx \n\t"
- "orl %1, (%%ecx, %2) \n\t"
- "addl %3, %0 \n\t"
- "movl $0, 4(%%ecx, %2) \n\t"
- : "=&r" (s->index), "=&r" (value)
- : "r" (s->buf), "r" (n), "0" (s->index), "1" (value)
- : "%ecx"
- );
-# else
- int index= s->index;
- uint32_t *ptr= (uint32_t*)(((uint8_t *)s->buf)+(index>>3));
-
- ptr[0] |= be2me_32(value<<(32-n-(index&7) ));
- ptr[1] = 0;
-//if(n>24) printf("%d %d\n", n, value);
- index+= n;
- s->index= index;
-# endif
-# endif //!ALIGNED_BITSTREAM_WRITER
-}
-#endif
-
-static inline void put_sbits(PutBitContext *pb, int n, int32_t value)
-{
- assert(n >= 0 && n <= 31);
-
- put_bits(pb, n, value & ((1<<n)-1));
-}
-
-/**
- * Writes exactly 32 bits into a bitstream.
- */
-static void av_unused put_bits32(PutBitContext *s, uint32_t value)
-{
- int lo = value & 0xffff;
- int hi = value >> 16;
-#ifdef BITSTREAM_WRITER_LE
- put_bits(s, 16, lo);
- put_bits(s, 16, hi);
-#else
- put_bits(s, 16, hi);
- put_bits(s, 16, lo);
-#endif
-}
-
-/**
- * Returns the pointer to the byte where the bitstream writer will put
- * the next bit.
- */
-static inline uint8_t* put_bits_ptr(PutBitContext *s)
-{
-#ifdef ALT_BITSTREAM_WRITER
- return s->buf + (s->index>>3);
-#else
- return s->buf_ptr;
-#endif
-}
-
-/**
- * Skips the given number of bytes.
- * PutBitContext must be flushed & aligned to a byte boundary before calling this.
- */
-static inline void skip_put_bytes(PutBitContext *s, int n)
-{
- assert((put_bits_count(s)&7)==0);
-#ifdef ALT_BITSTREAM_WRITER
- FIXME may need some cleaning of the buffer
- s->index += n<<3;
-#else
- assert(s->bit_left==32);
- s->buf_ptr += n;
-#endif
-}
-
-/**
- * Skips the given number of bits.
- * Must only be used if the actual values in the bitstream do not matter.
- * If n is 0 the behavior is undefined.
- */
-static inline void skip_put_bits(PutBitContext *s, int n)
-{
-#ifdef ALT_BITSTREAM_WRITER
- s->index += n;
-#else
- s->bit_left -= n;
- s->buf_ptr-= 4*(s->bit_left>>5);
- s->bit_left &= 31;
-#endif
-}
-
-/**
- * Changes the end of the buffer.
- *
- * @param size the new size in bytes of the buffer where to put bits
- */
-static inline void set_put_bits_buffer_size(PutBitContext *s, int size)
-{
- s->buf_end= s->buf + size;
-}
-
-#endif /* AVCODEC_PUT_BITS_H */
+++ /dev/null
-/*
- * QCELP decoder
- * Copyright (c) 2007 Reynaldo H. Verdejo Pinochet
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_QCELPDATA_H
-#define AVCODEC_QCELPDATA_H
-
-/**
- * @file
- * Data tables for the QCELP decoder
- * @author Reynaldo H. Verdejo Pinochet
- * @remark FFmpeg merging spearheaded by Kenan Gillet
- * @remark Development mentored by Benjamin Larson
- */
-
-#include <stddef.h>
-#include <stdint.h>
-#include "libavutil/common.h"
-
-/**
- * QCELP unpacked data frame
- */
-typedef struct {
-/// @defgroup qcelp_codebook_parameters QCELP excitation codebook parameters
-/// @{
- uint8_t cbsign[16]; ///!< sign of the codebook gain for each codebook subframe
- uint8_t cbgain[16]; ///!< unsigned codebook gain for each codebook subframe
- uint8_t cindex[16]; ///!< codebook index for each codebook subframe
-/// @}
-
-/// @defgroup qcelp_pitch_parameters QCELP pitch prediction parameters
-/// @{
- uint8_t plag[4]; ///!< pitch lag for each pitch subframe
- uint8_t pfrac[4]; ///!< fractional pitch lag for each pitch subframe
- uint8_t pgain[4]; ///!< pitch gain for each pitch subframe
-/// @}
-
- /**
- * line spectral pair frequencies (LSP) for RATE_OCTAVE,
- * line spectral pair frequencies grouped into five vectors
- * of dimension two (LSPV) for other rates
- */
- uint8_t lspv[10];
-
- /**
- * reserved bits only present in bitrate 1, 1/4 and 1/8 packets
- */
- uint8_t reserved;
-} QCELPFrame;
-
-/**
- * pre-calculated table for hammsinc function
- * Only half of the table is needed because of symmetry.
- *
- * TIA/EIA/IS-733 2.4.5.2-2/3
- */
-static const float qcelp_hammsinc_table[4] = { -0.006822, 0.041249, -0.143459, 0.588863};
-
-typedef struct {
- uint8_t index; /*!< index into the QCELPContext structure */
- uint8_t bitpos; /*!< position of the lowest bit in the value's byte */
- uint8_t bitlen; /*!< number of bits to read */
-} QCELPBitmap;
-
-#define QCELP_OF(variable, bit, len) {offsetof(QCELPFrame, variable), bit, len}
-
-/**
- * bitmap unpacking tables for RATE_FULL
- *
- * TIA/EIA/IS-733 Table 2.4.7.1-1
- */
-static const QCELPBitmap qcelp_rate_full_bitmap[] = {
- // start on bit
- QCELP_OF(lspv [ 2], 0, 3), // 265
- QCELP_OF(lspv [ 1], 0, 7), // 262
- QCELP_OF(lspv [ 0], 0, 6), // 255
- QCELP_OF(lspv [ 4], 0, 6), // 249
- QCELP_OF(lspv [ 3], 0, 6), // 243
- QCELP_OF(lspv [ 2], 3, 4), // 237
- QCELP_OF(cbsign[ 0], 0, 1), // 233
- QCELP_OF(cbgain[ 0], 0, 4), // 232
- QCELP_OF(pfrac [ 0], 0, 1), // 228
- QCELP_OF(plag [ 0], 0, 7), // 227
- QCELP_OF(pgain [ 0], 0, 3), // 220
- QCELP_OF(cindex[ 1], 0, 4), // 217
- QCELP_OF(cbsign[ 1], 0, 1), // 213
- QCELP_OF(cbgain[ 1], 0, 4), // 212
- QCELP_OF(cindex[ 0], 0, 7), // 208
- QCELP_OF(cbgain[ 3], 0, 1), // 201
- QCELP_OF(cindex[ 2], 0, 7), // 200
- QCELP_OF(cbsign[ 2], 0, 1), // 193
- QCELP_OF(cbgain[ 2], 0, 4), // 192
- QCELP_OF(cindex[ 1], 4, 3), // 188
- QCELP_OF(plag [ 1], 0, 3), // 185
- QCELP_OF(pgain [ 1], 0, 3), // 182
- QCELP_OF(cindex[ 3], 0, 7), // 179
- QCELP_OF(cbsign[ 3], 0, 1), // 172
- QCELP_OF(cbgain[ 3], 1, 2), // 171
- QCELP_OF(cindex[ 4], 0, 6), // 169
- QCELP_OF(cbsign[ 4], 0, 1), // 163
- QCELP_OF(cbgain[ 4], 0, 4), // 162
- QCELP_OF(pfrac [ 1], 0, 1), // 158
- QCELP_OF(plag [ 1], 3, 4), // 157
- QCELP_OF(cbgain[ 6], 0, 3), // 153
- QCELP_OF(cindex[ 5], 0, 7), // 150
- QCELP_OF(cbsign[ 5], 0, 1), // 143
- QCELP_OF(cbgain[ 5], 0, 4), // 142
- QCELP_OF(cindex[ 4], 6, 1), // 138
- QCELP_OF(cindex[ 7], 0, 3), // 137
- QCELP_OF(cbsign[ 7], 0, 1), // 134
- QCELP_OF(cbgain[ 7], 0, 3), // 133
- QCELP_OF(cindex[ 6], 0, 7), // 130
- QCELP_OF(cbsign[ 6], 0, 1), // 123
- QCELP_OF(cbgain[ 6], 3, 1), // 122
- QCELP_OF(cbgain[ 8], 0, 1), // 121
- QCELP_OF(pfrac [ 2], 0, 1), // 120
- QCELP_OF(plag [ 2], 0, 7), // 119
- QCELP_OF(pgain [ 2], 0, 3), // 112
- QCELP_OF(cindex[ 7], 3, 4), // 109
- QCELP_OF(cbsign[ 9], 0, 1), // 105
- QCELP_OF(cbgain[ 9], 0, 4), // 104
- QCELP_OF(cindex[ 8], 0, 7), // 100
- QCELP_OF(cbsign[ 8], 0, 1), // 93
- QCELP_OF(cbgain[ 8], 1, 3), // 92
- QCELP_OF(cindex[10], 0, 4), // 89
- QCELP_OF(cbsign[10], 0, 1), // 85
- QCELP_OF(cbgain[10], 0, 4), // 84
- QCELP_OF(cindex[ 9], 0, 7), // 80
- QCELP_OF(pgain [ 3], 0, 2), // 73
- QCELP_OF(cindex[11], 0, 7), // 71
- QCELP_OF(cbsign[11], 0, 1), // 64
- QCELP_OF(cbgain[11], 0, 3), // 63
- QCELP_OF(cindex[10], 4, 3), // 60
- QCELP_OF(cindex[12], 0, 2), // 57
- QCELP_OF(cbsign[12], 0, 1), // 55
- QCELP_OF(cbgain[12], 0, 4), // 54
- QCELP_OF(pfrac [ 3], 0, 1), // 50
- QCELP_OF(plag [ 3], 0, 7), // 49
- QCELP_OF(pgain [ 3], 2, 1), // 42
- QCELP_OF(cindex[13], 0, 6), // 41
- QCELP_OF(cbsign[13], 0, 1), // 35
- QCELP_OF(cbgain[13], 0, 4), // 34
- QCELP_OF(cindex[12], 2, 5), // 30
- QCELP_OF(cbgain[15], 0, 3), // 25
- QCELP_OF(cindex[14], 0, 7), // 22
- QCELP_OF(cbsign[14], 0, 1), // 15
- QCELP_OF(cbgain[14], 0, 4), // 14
- QCELP_OF(cindex[13], 6, 1), // 10
- QCELP_OF(reserved, 0, 2), // 9
- QCELP_OF(cindex[15], 0, 7), // 7
- QCELP_OF(cbsign[15], 0, 1) // 0
-};
-
-/**
- * bitmap unpacking tables for RATE_HALF
- *
- * TIA/EIA/IS-733 Table 2.4.7.2-1
- */
-static const QCELPBitmap qcelp_rate_half_bitmap[] = {
- // start on bit
- QCELP_OF(lspv [2], 0, 3), // 123
- QCELP_OF(lspv [1], 0, 7), // 120
- QCELP_OF(lspv [0], 0, 6), // 113
- QCELP_OF(lspv [4], 0, 6), // 107
- QCELP_OF(lspv [3], 0, 6), // 101
- QCELP_OF(lspv [2], 3, 4), // 95
- QCELP_OF(cbsign[0], 0, 1), // 91
- QCELP_OF(cbgain[0], 0, 4), // 90
- QCELP_OF(pfrac [0], 0, 1), // 86
- QCELP_OF(plag [0], 0, 7), // 85
- QCELP_OF(pgain [0], 0, 3), // 78
- QCELP_OF(plag [1], 0, 6), // 75
- QCELP_OF(pgain [1], 0, 3), // 69
- QCELP_OF(cindex[0], 0, 7), // 66
- QCELP_OF(pgain [2], 0, 2), // 59
- QCELP_OF(cindex[1], 0, 7), // 57
- QCELP_OF(cbsign[1], 0, 1), // 50
- QCELP_OF(cbgain[1], 0, 4), // 49
- QCELP_OF(pfrac [1], 0, 1), // 45
- QCELP_OF(plag [1], 6, 1), // 44
- QCELP_OF(cindex[2], 0, 2), // 43
- QCELP_OF(cbsign[2], 0, 1), // 41
- QCELP_OF(cbgain[2], 0, 4), // 40
- QCELP_OF(pfrac [2], 0, 1), // 36
- QCELP_OF(plag [2], 0, 7), // 35
- QCELP_OF(pgain [2], 2, 1), // 28
- QCELP_OF(pfrac [3], 0, 1), // 27
- QCELP_OF(plag [3], 0, 7), // 26
- QCELP_OF(pgain [3], 0, 3), // 19
- QCELP_OF(cindex[2], 2, 5), // 16
- QCELP_OF(cindex[3], 0, 7), // 11
- QCELP_OF(cbsign[3], 0, 1), // 4
- QCELP_OF(cbgain[3], 0, 4) // 3
-};
-
-/**
- * bitmap unpacking tables for RATE_QUARTER
- *
- * TIA/EIA/IS-733 Table 2.4.7.3-1
- */
-static const QCELPBitmap qcelp_rate_quarter_bitmap[] = {
- // start on bit
- QCELP_OF(lspv [2], 0, 3), // 53
- QCELP_OF(lspv [1], 0, 7), // 50
- QCELP_OF(lspv [0], 0, 6), // 43
- QCELP_OF(lspv [4], 0, 6), // 37
- QCELP_OF(lspv [3], 0, 6), // 31
- QCELP_OF(lspv [2], 3, 4), // 25
- QCELP_OF(cbgain[3], 0, 4), // 21
- QCELP_OF(cbgain[2], 0, 4), // 17
- QCELP_OF(cbgain[1], 0, 4), // 13
- QCELP_OF(cbgain[0], 0, 4), // 9
- QCELP_OF(reserved, 0, 2), // 5
- QCELP_OF(cbgain[4], 0, 4) // 3
-};
-
-/**
- * bitmap unpacking tables for RATE_OCTAVE
- *
- * trick: CBSEED is written into QCELPContext.cbsign[15],
- * which is not used for RATE_OCTAVE.
- * CBSEED is only used to ensure the occurrence of random bit
- * patterns in the 16 first bits that are used as the seed.
- *
- * TIA/EIA/IS-733 Table 2.4.7.4-1
- */
-static const QCELPBitmap qcelp_rate_octave_bitmap[] = {
- // start on bit
- QCELP_OF(cbsign[15], 3, 1), // 19
- QCELP_OF(lspv [0], 0, 1), // 18
- QCELP_OF(lspv [1], 0, 1), // 17
- QCELP_OF(lspv [2], 0, 1), // 16
- QCELP_OF(cbsign[15], 2, 1), // 15
- QCELP_OF(lspv [3], 0, 1), // 14
- QCELP_OF(lspv [4], 0, 1), // 13
- QCELP_OF(lspv [5], 0, 1), // 12
- QCELP_OF(cbsign[15], 1, 1), // 11
- QCELP_OF(lspv [6], 0, 1), // 10
- QCELP_OF(lspv [7], 0, 1), // 9
- QCELP_OF(lspv [8], 0, 1), // 8
- QCELP_OF(cbsign[15], 0, 1), // 7
- QCELP_OF(lspv [9], 0, 1), // 6
- QCELP_OF(cbgain [0], 0, 2), // 7
- QCELP_OF(reserved, 0, 4) // 3
-};
-
-/**
- * position of the bitmapping data for each packet type in
- * the QCELPContext
- */
-static const QCELPBitmap * const qcelp_unpacking_bitmaps_per_rate[5] = {
- NULL, ///!< for SILENCE rate
- qcelp_rate_octave_bitmap,
- qcelp_rate_quarter_bitmap,
- qcelp_rate_half_bitmap,
- qcelp_rate_full_bitmap,
-};
-
-static const uint16_t qcelp_unpacking_bitmaps_lengths[5] = {
- 0, ///!< for SILENCE rate
- FF_ARRAY_ELEMS(qcelp_rate_octave_bitmap),
- FF_ARRAY_ELEMS(qcelp_rate_quarter_bitmap),
- FF_ARRAY_ELEMS(qcelp_rate_half_bitmap),
- FF_ARRAY_ELEMS(qcelp_rate_full_bitmap),
-};
-
-typedef uint16_t qcelp_vector[2];
-
-/**
- * LSP vector quantization tables in x*10000 form
- *
- * TIA/EIA/IS-733 tables 2.4.3.2.6.3-1 through 2.4.3.2.6.3-5
- */
-
-static const qcelp_vector qcelp_lspvq1[64]= {
-{ 327, 118},{ 919, 111},{ 427, 440},{1327, 185},
-{ 469, 50},{1272, 91},{ 892, 59},{1771, 193},
-{ 222, 158},{1100, 127},{ 827, 55},{ 978, 791},
-{ 665, 47},{ 700,1401},{ 670, 859},{1913,1048},
-{ 471, 215},{1046, 125},{ 645, 298},{1599, 160},
-{ 593, 39},{1187, 462},{ 749, 341},{1520, 511},
-{ 290, 792},{ 909, 362},{ 753, 81},{1111,1058},
-{ 519, 253},{ 828, 839},{ 685, 541},{1421,1258},
-{ 386, 130},{ 962, 119},{ 542, 387},{1431, 185},
-{ 526, 51},{1175, 260},{ 831, 167},{1728, 510},
-{ 273, 437},{1172, 113},{ 771, 144},{1122, 751},
-{ 619, 119},{ 492,1276},{ 658, 695},{1882, 615},
-{ 415, 200},{1018, 88},{ 681, 339},{1436, 325},
-{ 555, 122},{1042, 485},{ 826, 345},{1374, 743},
-{ 383,1018},{1005, 358},{ 704, 86},{1301, 586},
-{ 597, 241},{ 832, 621},{ 555, 573},{1504, 839}};
-
-static const qcelp_vector qcelp_lspvq2[128]= {
-{ 255, 293},{ 904, 219},{ 151,1211},{1447, 498},
-{ 470, 253},{1559, 177},{1547, 994},{2394, 242},
-{ 91, 813},{ 857, 590},{ 934,1326},{1889, 282},
-{ 813, 472},{1057,1494},{ 450,3315},{2163,1895},
-{ 538, 532},{1399, 218},{ 146,1552},{1755, 626},
-{ 822, 202},{1299, 663},{ 706,1732},{2656, 401},
-{ 418, 745},{ 762,1038},{ 583,1748},{1746,1285},
-{ 527,1169},{1314, 830},{ 556,2116},{1073,2321},
-{ 297, 570},{ 981, 403},{ 468,1103},{1740, 243},
-{ 725, 179},{1255, 474},{1374,1362},{1922, 912},
-{ 285, 947},{ 930, 700},{ 593,1372},{1909, 576},
-{ 588, 916},{1110,1116},{ 224,2719},{1633,2220},
-{ 402, 520},{1061, 448},{ 402,1352},{1499, 775},
-{ 664, 589},{1081, 727},{ 801,2206},{2165,1157},
-{ 566, 802},{ 911,1116},{ 306,1703},{1792, 836},
-{ 655, 999},{1061,1038},{ 298,2089},{1110,1753},
-{ 361, 311},{ 970, 239},{ 265,1231},{1495, 573},
-{ 566, 262},{1569, 293},{1341,1144},{2271, 544},
-{ 214, 877},{ 847, 719},{ 794,1384},{2067, 274},
-{ 703, 688},{1099,1306},{ 391,2947},{2024,1670},
-{ 471, 525},{1245, 290},{ 264,1557},{1568, 807},
-{ 718, 399},{1193, 685},{ 883,1594},{2729, 764},
-{ 500, 754},{ 809,1108},{ 541,1648},{1523,1385},
-{ 614,1196},{1209, 847},{ 345,2242},{1442,1747},
-{ 199, 560},{1092, 194},{ 349,1253},{1653, 507},
-{ 625, 354},{1376, 431},{1187,1465},{2164, 872},
-{ 360, 974},{1008, 698},{ 704,1346},{2114, 452},
-{ 720, 816},{1240,1089},{ 439,2475},{1498,2040},
-{ 336, 718},{1213, 187},{ 451,1450},{1368, 885},
-{ 592, 578},{1131, 531},{ 861,1855},{1764,1500},
-{ 444, 970},{ 935, 903},{ 424,1687},{1633,1102},
-{ 793, 897},{1060, 897},{ 185,2011},{1205,1855}};
-
-static const qcelp_vector qcelp_lspvq3[128]= {
-{ 225, 283},{1296, 355},{ 543, 343},{2073, 274},
-{ 204,1099},{1562, 523},{1388, 161},{2784, 274},
-{ 112, 849},{1870, 175},{1189, 160},{1490,1088},
-{ 969,1115},{ 659,3322},{1158,1073},{3183,1363},
-{ 517, 223},{1740, 223},{ 704, 387},{2637, 234},
-{ 692,1005},{1287,1610},{ 952, 532},{2393, 646},
-{ 490, 552},{1619, 657},{ 845, 670},{1784,2280},
-{ 191,1775},{ 272,2868},{ 942, 952},{2628,1479},
-{ 278, 579},{1565, 218},{ 814, 180},{2379, 187},
-{ 276,1444},{1199,1223},{1200, 349},{3009, 307},
-{ 312, 844},{1898, 306},{ 863, 470},{1685,1241},
-{ 513,1727},{ 711,2233},{1085, 864},{3398, 527},
-{ 414, 440},{1356, 612},{ 964, 147},{2173, 738},
-{ 465,1292},{ 877,1749},{1104, 689},{2105,1311},
-{ 580, 864},{1895, 752},{ 652, 609},{1485,1699},
-{ 514,1400},{ 386,2131},{ 933, 798},{2473, 986},
-{ 334, 360},{1375, 398},{ 621, 276},{2183, 280},
-{ 311,1114},{1382, 807},{1284, 175},{2605, 636},
-{ 230, 816},{1739, 408},{1074, 176},{1619,1120},
-{ 784,1371},{ 448,3050},{1189, 880},{3039,1165},
-{ 424, 241},{1672, 186},{ 815, 333},{2432, 324},
-{ 584,1029},{1137,1546},{1015, 585},{2198, 995},
-{ 574, 581},{1746, 647},{ 733, 740},{1938,1737},
-{ 347,1710},{ 373,2429},{ 787,1061},{2439,1438},
-{ 185, 536},{1489, 178},{ 703, 216},{2178, 487},
-{ 154,1421},{1414, 994},{1103, 352},{3072, 473},
-{ 408, 819},{2055, 168},{ 998, 354},{1917,1140},
-{ 665,1799},{ 993,2213},{1234, 631},{3003, 762},
-{ 373, 620},{1518, 425},{ 913, 300},{1966, 836},
-{ 402,1185},{ 948,1385},{1121, 555},{1802,1509},
-{ 474, 886},{1888, 610},{ 739, 585},{1231,2379},
-{ 661,1335},{ 205,2211},{ 823, 822},{2480,1179}};
-
-static const qcelp_vector qcelp_lspvq4[64]= {
-{ 348, 311},{ 812,1145},{ 552, 461},{1826, 263},
-{ 601, 675},{1730, 172},{1523, 193},{2449, 277},
-{ 334, 668},{ 805,1441},{1319, 207},{1684, 910},
-{ 582,1318},{1403,1098},{ 979, 832},{2700,1359},
-{ 624, 228},{1292, 979},{ 800, 195},{2226, 285},
-{ 730, 862},{1537, 601},{1115, 509},{2720, 354},
-{ 218,1167},{1212,1538},{1074, 247},{1674,1710},
-{ 322,2142},{1263, 777},{ 981, 556},{2119,1710},
-{ 193, 596},{1035, 957},{ 694, 397},{1997, 253},
-{ 743, 603},{1584, 321},{1346, 346},{2221, 708},
-{ 451, 732},{1040,1415},{1184, 230},{1853, 919},
-{ 310,1661},{1625, 706},{ 856, 843},{2902, 702},
-{ 467, 348},{1108,1048},{ 859, 306},{1964, 463},
-{ 560,1013},{1425, 533},{1142, 634},{2391, 879},
-{ 397,1084},{1345,1700},{ 976, 248},{1887,1189},
-{ 644,2087},{1262, 603},{ 877, 550},{2203,1307}};
-
-static const qcelp_vector qcelp_lspvq5[64]= {
-{ 360, 222},{ 820,1097},{ 601, 319},{1656, 198},
-{ 604, 513},{1552, 141},{1391, 155},{2474, 261},
-{ 269, 785},{1463, 646},{1123, 191},{2015, 223},
-{ 785, 844},{1202,1011},{ 980, 807},{3014, 793},
-{ 570, 180},{1135,1382},{ 778, 256},{1901, 179},
-{ 807, 622},{1461, 458},{1231, 178},{2028, 821},
-{ 387, 927},{1496,1004},{ 888, 392},{2246, 341},
-{ 295,1462},{1156, 694},{1022, 473},{2226,1364},
-{ 210, 478},{1029,1020},{ 722, 181},{1730, 251},
-{ 730, 488},{1465, 293},{1303, 326},{2595, 387},
-{ 458, 584},{1569, 742},{1029, 173},{1910, 495},
-{ 605,1159},{1268, 719},{ 973, 646},{2872, 428},
-{ 443, 334},{ 835,1465},{ 912, 138},{1716, 442},
-{ 620, 778},{1316, 450},{1186, 335},{1446,1665},
-{ 486,1050},{1675,1019},{ 880, 278},{2214, 202},
-{ 539,1564},{1142, 533},{ 984, 391},{2130,1089}};
-
-static const qcelp_vector * const qcelp_lspvq[5] = {
- qcelp_lspvq1,
- qcelp_lspvq2,
- qcelp_lspvq3,
- qcelp_lspvq4,
- qcelp_lspvq5
-};
-
-/**
- * the final gain scalefactor before clipping into a usable output float
- */
-#define QCELP_SCALE 8192.
-
-/**
- * table for computing Ga (decoded linear codebook gain magnitude)
- *
- * @note The table could fit in int16_t in x*8 form, but it seems
- * to be slower on x86
- *
- * TIA/EIA/IS-733 2.4.6.2.1-3
- */
-
-static const float qcelp_g12ga[61] = {
- 1.000/QCELP_SCALE, 1.125/QCELP_SCALE, 1.250/QCELP_SCALE, 1.375/QCELP_SCALE,
- 1.625/QCELP_SCALE, 1.750/QCELP_SCALE, 2.000/QCELP_SCALE, 2.250/QCELP_SCALE,
- 2.500/QCELP_SCALE, 2.875/QCELP_SCALE, 3.125/QCELP_SCALE, 3.500/QCELP_SCALE,
- 4.000/QCELP_SCALE, 4.500/QCELP_SCALE, 5.000/QCELP_SCALE, 5.625/QCELP_SCALE,
- 6.250/QCELP_SCALE, 7.125/QCELP_SCALE, 8.000/QCELP_SCALE, 8.875/QCELP_SCALE,
- 10.000/QCELP_SCALE, 11.250/QCELP_SCALE, 12.625/QCELP_SCALE, 14.125/QCELP_SCALE,
- 15.875/QCELP_SCALE, 17.750/QCELP_SCALE, 20.000/QCELP_SCALE, 22.375/QCELP_SCALE,
- 25.125/QCELP_SCALE, 28.125/QCELP_SCALE, 31.625/QCELP_SCALE, 35.500/QCELP_SCALE,
- 39.750/QCELP_SCALE, 44.625/QCELP_SCALE, 50.125/QCELP_SCALE, 56.250/QCELP_SCALE,
- 63.125/QCELP_SCALE, 70.750/QCELP_SCALE, 79.375/QCELP_SCALE, 89.125/QCELP_SCALE,
- 100.000/QCELP_SCALE, 112.250/QCELP_SCALE, 125.875/QCELP_SCALE, 141.250/QCELP_SCALE,
- 158.500/QCELP_SCALE, 177.875/QCELP_SCALE, 199.500/QCELP_SCALE, 223.875/QCELP_SCALE,
- 251.250/QCELP_SCALE, 281.875/QCELP_SCALE, 316.250/QCELP_SCALE, 354.875/QCELP_SCALE,
- 398.125/QCELP_SCALE, 446.625/QCELP_SCALE, 501.125/QCELP_SCALE, 562.375/QCELP_SCALE,
- 631.000/QCELP_SCALE, 708.000/QCELP_SCALE, 794.375/QCELP_SCALE, 891.250/QCELP_SCALE,
- 1000.000/QCELP_SCALE};
-
-/**
- * circular codebook for rate 1 frames in x*100 form
- *
- * TIA/EIA/IS-733 2.4.6.1-2
- */
-static const int16_t qcelp_rate_full_codebook[128] = {
- 10, -65, -59, 12, 110, 34, -134, 157,
- 104, -84, -34, -115, 23, -101, 3, 45,
- -101, -16, -59, 28, -45, 134, -67, 22,
- 61, -29, 226, -26, -55, -179, 157, -51,
- -220, -93, -37, 60, 118, 74, -48, -95,
- -181, 111, 36, -52, -215, 78, -112, 39,
- -17, -47, -223, 19, 12, -98, -142, 130,
- 54, -127, 21, -12, 39, -48, 12, 128,
- 6, -167, 82, -102, -79, 55, -44, 48,
- -20, -53, 8, -61, 11, -70, -157, -168,
- 20, -56, -74, 78, 33, -63, -173, -2,
- -75, -53, -146, 77, 66, -29, 9, -75,
- 65, 119, -43, 76, 233, 98, 125, -156,
- -27, 78, -9, 170, 176, 143, -148, -7,
- 27, -136, 5, 27, 18, 139, 204, 7,
- -184, -197, 52, -3, 78, -189, 8, -65
-};
-#define QCELP_RATE_FULL_CODEBOOK_RATIO .01
-
-/**
- * circular codebook for rate 1/2 frames in x*2 form
- *
- * TIA/EIA/IS-733 2.4.6.1-1
- */
-static const int8_t qcelp_rate_half_codebook[128] = {
- 0, -4, 0, -3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -3, -2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 5,
- 0, 0, 0, 0, 0, 0, 4, 0,
- 0, 3, 2, 0, 3, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 0, 0,
- -3, 3, 0, 0, -2, 0, 3, 0,
- 0, 0, 0, 0, 0, 0, -5, 0,
- 0, 0, 0, 3, 0, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 6, -3, -4, 0, -3, -3,
- 3, -3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
-};
-#define QCELP_RATE_HALF_CODEBOOK_RATIO 0.5
-
-/**
- * sqrt(1.887) is the maximum of the pseudorandom
- * white sequence used to generate the scaled codebook
- * vector for bitrate 1/4.
- *
- * TIA/EIA/IS-733 2.4.8.1.2
- */
-#define QCELP_SQRT1887 1.373681186
-
-/**
- * table for impulse response of BPF used to filter
- * the white excitation for bitrate 1/4 synthesis
- *
- * Only half the tables are needed because of symmetry.
- *
- * TIA/EIA/IS-733 2.4.8.1.2-1.1
- */
-static const double qcelp_rnd_fir_coefs[11] = {
- -1.344519e-1, 1.735384e-2, -6.905826e-2, 2.434368e-2,
- -8.210701e-2, 3.041388e-2, -9.251384e-2, 3.501983e-2,
- -9.918777e-2, 3.749518e-2, 8.985137e-1
-};
-
-/**
- * This spread factor is used, for bitrate 1/8 and I_F_Q,
- * to force the LSP frequencies to be at least 80 Hz apart.
- *
- * TIA/EIA/IS-733 2.4.3.3.2
- */
-#define QCELP_LSP_SPREAD_FACTOR 0.02
-
-/**
- * predictor coefficient for the conversion of LSP codes
- * to LSP frequencies for 1/8 and I_F_Q
- *
- * TIA/EIA/IS-733 2.4.3.2.7-2
- */
-#define QCELP_LSP_OCTAVE_PREDICTOR 29.0/32
-
-/**
- * initial coefficient to perform bandwidth expansion on LPC
- *
- * @note: 0.9883 looks like an approximation of 253/256.
- *
- * TIA/EIA/IS-733 2.4.3.3.6 6
- */
-#define QCELP_BANDWIDTH_EXPANSION_COEFF 0.9883
-
-#endif /* AVCODEC_QCELPDATA_H */
+++ /dev/null
-/*
- * Header file for hardcoded QDM2 tables
- *
- * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef QDM2_TABLEGEN_H
-#define QDM2_TABLEGEN_H
-
-#include <stdint.h>
-#include <math.h>
-#include "../libavutil/attributes.h"
-
-#define SOFTCLIP_THRESHOLD 27600
-#define HARDCLIP_THRESHOLD 35716
-
-#if CONFIG_HARDCODED_TABLES
-#define softclip_table_init()
-#define rnd_table_init()
-#define init_noise_samples()
-#include "libavcodec/qdm2_tables.h"
-#else
-static uint16_t softclip_table[HARDCLIP_THRESHOLD - SOFTCLIP_THRESHOLD + 1];
-static float noise_table[4096];
-static uint8_t random_dequant_index[256][5];
-static uint8_t random_dequant_type24[128][3];
-static float noise_samples[128];
-
-static av_cold void softclip_table_init(void) {
- int i;
- double dfl = SOFTCLIP_THRESHOLD - 32767;
- float delta = 1.0 / -dfl;
- for (i = 0; i < HARDCLIP_THRESHOLD - SOFTCLIP_THRESHOLD + 1; i++)
- softclip_table[i] = SOFTCLIP_THRESHOLD - ((int)(sin((float)i * delta) * dfl) & 0x0000FFFF);
-}
-
-
-// random generated table
-static av_cold void rnd_table_init(void) {
- int i,j;
- uint32_t ldw,hdw;
- uint64_t tmp64_1;
- uint64_t random_seed = 0;
- float delta = 1.0 / 16384.0;
- for(i = 0; i < 4096 ;i++) {
- random_seed = random_seed * 214013 + 2531011;
- noise_table[i] = (delta * (float)(((int32_t)random_seed >> 16) & 0x00007FFF)- 1.0) * 1.3;
- }
-
- for (i = 0; i < 256 ;i++) {
- random_seed = 81;
- ldw = i;
- for (j = 0; j < 5 ;j++) {
- random_dequant_index[i][j] = (uint8_t)((ldw / random_seed) & 0xFF);
- ldw = (uint32_t)ldw % (uint32_t)random_seed;
- tmp64_1 = (random_seed * 0x55555556);
- hdw = (uint32_t)(tmp64_1 >> 32);
- random_seed = (uint64_t)(hdw + (ldw >> 31));
- }
- }
- for (i = 0; i < 128 ;i++) {
- random_seed = 25;
- ldw = i;
- for (j = 0; j < 3 ;j++) {
- random_dequant_type24[i][j] = (uint8_t)((ldw / random_seed) & 0xFF);
- ldw = (uint32_t)ldw % (uint32_t)random_seed;
- tmp64_1 = (random_seed * 0x66666667);
- hdw = (uint32_t)(tmp64_1 >> 33);
- random_seed = hdw + (ldw >> 31);
- }
- }
-}
-
-
-static av_cold void init_noise_samples(void) {
- int i;
- int random_seed = 0;
- float delta = 1.0 / 16384.0;
- for (i = 0; i < 128;i++) {
- random_seed = random_seed * 214013 + 2531011;
- noise_samples[i] = (delta * (float)((random_seed >> 16) & 0x00007fff) - 1.0);
- }
-}
-#endif /* CONFIG_HARDCODED_TABLES */
-
-#endif /* QDM2_TABLEGEN_H */
+++ /dev/null
-/*
- * QDM2 compatible decoder
- * Copyright (c) 2003 Ewald Snel
- * Copyright (c) 2005 Benjamin Larsson
- * Copyright (c) 2005 Alex Beregszaszi
- * Copyright (c) 2005 Roberto Togni
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- /**
- * @file
- * Various QDM2 tables.
- */
-
-#ifndef AVCODEC_QDM2DATA_H
-#define AVCODEC_QDM2DATA_H
-
-#include <stdint.h>
-
-/** VLC TABLES **/
-
-/* values in this table range from -1..23; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_level_huffcodes[24] = {
- 0x037c, 0x0004, 0x003c, 0x004c, 0x003a, 0x002c, 0x001c, 0x001a,
- 0x0024, 0x0014, 0x0001, 0x0002, 0x0000, 0x0003, 0x0007, 0x0005,
- 0x0006, 0x0008, 0x0009, 0x000a, 0x000c, 0x00fc, 0x007c, 0x017c
-};
-
-static const uint8_t vlc_tab_level_huffbits[24] = {
- 10, 6, 7, 7, 6, 6, 6, 6, 6, 5, 4, 4, 4, 3, 3, 3, 3, 4, 4, 5, 7, 8, 9, 10
-};
-
-/* values in this table range from -1..36; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_diff_huffcodes[37] = {
- 0x1c57, 0x0004, 0x0000, 0x0001, 0x0003, 0x0002, 0x000f, 0x000e,
- 0x0007, 0x0016, 0x0037, 0x0027, 0x0026, 0x0066, 0x0006, 0x0097,
- 0x0046, 0x01c6, 0x0017, 0x0786, 0x0086, 0x0257, 0x00d7, 0x0357,
- 0x00c6, 0x0386, 0x0186, 0x0000, 0x0157, 0x0c57, 0x0057, 0x0000,
- 0x0b86, 0x0000, 0x1457, 0x0000, 0x0457
-};
-
-static const uint8_t vlc_tab_diff_huffbits[37] = {
- 13, 3, 3, 2, 3, 3, 4, 4, 6, 5, 6, 6, 7, 7, 8, 8,
- 8, 9, 8, 11, 9, 10, 8, 10, 9, 12, 10, 0, 10, 13, 11, 0,
- 12, 0, 13, 0, 13
-};
-
-/* values in this table range from -1..5; adjust retrieved value by -1 */
-static const uint8_t vlc_tab_run_huffcodes[6] = {
- 0x1f, 0x00, 0x01, 0x03, 0x07, 0x0f
-};
-
-static const uint8_t vlc_tab_run_huffbits[6] = {
- 5, 1, 2, 3, 4, 5
-};
-
-/* values in this table range from -1..19; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_tone_level_idx_hi1_huffcodes[20] = {
- 0x5714, 0x000c, 0x0002, 0x0001, 0x0000, 0x0004, 0x0034, 0x0054,
- 0x0094, 0x0014, 0x0114, 0x0214, 0x0314, 0x0614, 0x0e14, 0x0f14,
- 0x2714, 0x0714, 0x1714, 0x3714
-};
-
-static const uint8_t vlc_tab_tone_level_idx_hi1_huffbits[20] = {
- 15, 4, 2, 1, 3, 5, 6, 7, 8, 10, 10, 11, 11, 12, 12, 12, 14, 14, 15, 14
-};
-
-/* values in this table range from -1..23; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_tone_level_idx_mid_huffcodes[24] = {
- 0x0fea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x03ea, 0x00ea, 0x002a, 0x001a,
- 0x0006, 0x0001, 0x0000, 0x0002, 0x000a, 0x006a, 0x01ea, 0x07ea
-};
-
-static const uint8_t vlc_tab_tone_level_idx_mid_huffbits[24] = {
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 7, 5, 3, 1, 2, 4, 6, 8, 10, 12
-};
-
-/* values in this table range from -1..23; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_tone_level_idx_hi2_huffcodes[24] = {
- 0x0664, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0064, 0x00e4,
- 0x00a4, 0x0068, 0x0004, 0x0008, 0x0014, 0x0018, 0x0000, 0x0001,
- 0x0002, 0x0003, 0x000c, 0x0028, 0x0024, 0x0164, 0x0000, 0x0264
-};
-
-static const uint8_t vlc_tab_tone_level_idx_hi2_huffbits[24] = {
- 11, 0, 0, 0, 0, 0, 10, 8, 8, 7, 6, 6, 5, 5, 4, 2, 2, 2, 4, 7, 8, 9, 0, 11
-};
-
-/* values in this table range from -1..8; adjust retrieved value by -1 */
-static const uint8_t vlc_tab_type30_huffcodes[9] = {
- 0x3c, 0x06, 0x00, 0x01, 0x03, 0x02, 0x04, 0x0c, 0x1c
-};
-
-static const uint8_t vlc_tab_type30_huffbits[9] = {
- 6, 3, 3, 2, 2, 3, 4, 5, 6
-};
-
-/* values in this table range from -1..9; adjust retrieved value by -1 */
-static const uint8_t vlc_tab_type34_huffcodes[10] = {
- 0x18, 0x00, 0x01, 0x04, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08
-};
-
-static const uint8_t vlc_tab_type34_huffbits[10] = {
- 5, 4, 3, 3, 3, 3, 3, 3, 3, 5
-};
-
-/* values in this table range from -1..22; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_fft_tone_offset_0_huffcodes[23] = {
- 0x038e, 0x0001, 0x0000, 0x0022, 0x000a, 0x0006, 0x0012, 0x0002,
- 0x001e, 0x003e, 0x0056, 0x0016, 0x000e, 0x0032, 0x0072, 0x0042,
- 0x008e, 0x004e, 0x00f2, 0x002e, 0x0036, 0x00c2, 0x018e
-};
-
-static const uint8_t vlc_tab_fft_tone_offset_0_huffbits[23] = {
- 10, 1, 2, 6, 4, 5, 6, 7, 6, 6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 6, 6, 8, 10
-};
-
-/* values in this table range from -1..27; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_fft_tone_offset_1_huffcodes[28] = {
- 0x07a4, 0x0001, 0x0020, 0x0012, 0x001c, 0x0008, 0x0006, 0x0010,
- 0x0000, 0x0014, 0x0004, 0x0032, 0x0070, 0x000c, 0x0002, 0x003a,
- 0x001a, 0x002c, 0x002a, 0x0022, 0x0024, 0x000a, 0x0064, 0x0030,
- 0x0062, 0x00a4, 0x01a4, 0x03a4
-};
-
-static const uint8_t vlc_tab_fft_tone_offset_1_huffbits[28] = {
- 11, 1, 6, 6, 5, 4, 3, 6, 6, 5, 6, 6, 7, 6, 6, 6,
- 6, 6, 6, 7, 8, 6, 7, 7, 7, 9, 10, 11
-};
-
-/* values in this table range from -1..31; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_fft_tone_offset_2_huffcodes[32] = {
- 0x1760, 0x0001, 0x0000, 0x0082, 0x000c, 0x0006, 0x0003, 0x0007,
- 0x0008, 0x0004, 0x0010, 0x0012, 0x0022, 0x001a, 0x0000, 0x0020,
- 0x000a, 0x0040, 0x004a, 0x006a, 0x002a, 0x0042, 0x0002, 0x0060,
- 0x00aa, 0x00e0, 0x00c2, 0x01c2, 0x0160, 0x0360, 0x0760, 0x0f60
-};
-
-static const uint8_t vlc_tab_fft_tone_offset_2_huffbits[32] = {
- 13, 2, 0, 8, 4, 3, 3, 3, 4, 4, 5, 5, 6, 5, 7, 7,
- 7, 7, 7, 7, 8, 8, 8, 9, 8, 8, 9, 9, 10, 11, 13, 12
-};
-
-/* values in this table range from -1..34; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_fft_tone_offset_3_huffcodes[35] = {
- 0x33ea, 0x0005, 0x0000, 0x000c, 0x0000, 0x0006, 0x0003, 0x0008,
- 0x0002, 0x0001, 0x0004, 0x0007, 0x001a, 0x000f, 0x001c, 0x002c,
- 0x000a, 0x001d, 0x002d, 0x002a, 0x000d, 0x004c, 0x008c, 0x006a,
- 0x00cd, 0x004d, 0x00ea, 0x020c, 0x030c, 0x010c, 0x01ea, 0x07ea,
- 0x0bea, 0x03ea, 0x13ea
-};
-
-static const uint8_t vlc_tab_fft_tone_offset_3_huffbits[35] = {
- 14, 4, 0, 10, 4, 3, 3, 4, 4, 3, 4, 4, 5, 4, 5, 6,
- 6, 5, 6, 7, 7, 7, 8, 8, 8, 8, 9, 10, 10, 10, 10, 11,
- 12, 13, 14
-};
-
-/* values in this table range from -1..37; adjust retrieved value by -1 */
-static const uint16_t vlc_tab_fft_tone_offset_4_huffcodes[38] = {
- 0x5282, 0x0016, 0x0000, 0x0136, 0x0004, 0x0000, 0x0007, 0x000a,
- 0x000e, 0x0003, 0x0001, 0x000d, 0x0006, 0x0009, 0x0012, 0x0005,
- 0x0025, 0x0022, 0x0015, 0x0002, 0x0076, 0x0035, 0x0042, 0x00c2,
- 0x0182, 0x00b6, 0x0036, 0x03c2, 0x0482, 0x01c2, 0x0682, 0x0882,
- 0x0a82, 0x0082, 0x0282, 0x1282, 0x3282, 0x2282
-};
-
-static const uint8_t vlc_tab_fft_tone_offset_4_huffbits[38] = {
- 15, 6, 0, 9, 3, 3, 3, 4, 4, 3, 4, 4, 5, 4, 5, 6,
- 6, 6, 6, 8, 7, 6, 8, 9, 9, 8, 9, 10, 11, 10, 11, 12,
- 12, 12, 14, 15, 14, 14
-};
-
-/** FFT TABLES **/
-
-/* values in this table range from -1..27; adjust retrieved value by -1 */
-static const uint16_t fft_level_exp_alt_huffcodes[28] = {
- 0x1ec6, 0x0006, 0x00c2, 0x0142, 0x0242, 0x0246, 0x00c6, 0x0046,
- 0x0042, 0x0146, 0x00a2, 0x0062, 0x0026, 0x0016, 0x000e, 0x0005,
- 0x0004, 0x0003, 0x0000, 0x0001, 0x000a, 0x0012, 0x0002, 0x0022,
- 0x01c6, 0x02c6, 0x06c6, 0x0ec6
-};
-
-static const uint8_t fft_level_exp_alt_huffbits[28] = {
- 13, 7, 8, 9, 10, 10, 10, 10, 10, 9, 8, 7, 6, 5, 4, 3,
- 3, 2, 3, 3, 4, 5, 7, 8, 9, 11, 12, 13
-};
-
-/* values in this table range from -1..19; adjust retrieved value by -1 */
-static const uint16_t fft_level_exp_huffcodes[20] = {
- 0x0f24, 0x0001, 0x0002, 0x0000, 0x0006, 0x0005, 0x0007, 0x000c,
- 0x000b, 0x0014, 0x0013, 0x0004, 0x0003, 0x0023, 0x0064, 0x00a4,
- 0x0024, 0x0124, 0x0324, 0x0724
-};
-
-static const uint8_t fft_level_exp_huffbits[20] = {
- 12, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 8, 9, 10, 11, 12
-};
-
-/* values in this table range from -1..6; adjust retrieved value by -1 */
-static const uint8_t fft_stereo_exp_huffcodes[7] = {
- 0x3e, 0x01, 0x00, 0x02, 0x06, 0x0e, 0x1e
-};
-
-static const uint8_t fft_stereo_exp_huffbits[7] = {
- 6, 1, 2, 3, 4, 5, 6
-};
-
-/* values in this table range from -1..8; adjust retrieved value by -1 */
-static const uint8_t fft_stereo_phase_huffcodes[9] = {
- 0x35, 0x02, 0x00, 0x01, 0x0d, 0x15, 0x05, 0x09, 0x03
-};
-
-static const uint8_t fft_stereo_phase_huffbits[9] = {
- 6, 2, 2, 4, 4, 6, 5, 4, 2
-};
-
-static const int fft_cutoff_index_table[4][2] = {
- { 1, 2 }, {-1, 0 }, {-1,-2 }, { 0, 0 }
-};
-
-static const int16_t fft_level_index_table[256] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-};
-
-static const uint8_t last_coeff[3] = {
- 4, 7, 10
-};
-
-static const uint8_t coeff_per_sb_for_avg[3][30] = {
- { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
- { 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
- { 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9 }
-};
-
-static const uint32_t dequant_table[3][10][30] = {
- { { 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 256, 256, 205, 154, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 51, 102, 154, 205, 256, 238, 219, 201, 183, 165, 146, 128, 110, 91, 73, 55, 37, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 18, 37, 55, 73, 91, 110, 128, 146, 165, 183, 201, 219, 238, 256, 228, 199, 171, 142, 114, 85, 57, 28 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 256, 171, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 85, 171, 256, 171, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 85, 171, 256, 219, 183, 146, 110, 73, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 73, 110, 146, 183, 219, 256, 228, 199, 171, 142, 114, 85, 57, 28, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 57, 85, 114, 142, 171, 199, 228, 256, 213, 171, 128, 85, 43 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 256, 171, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 85, 171, 256, 192, 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 128, 192, 256, 205, 154, 102, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 102, 154, 205, 256, 213, 171, 128, 85, 43, 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 85, 128, 171, 213, 256, 213, 171, 128, 85, 43 } }
-};
-
-static const uint8_t coeff_per_sb_for_dequant[3][30] = {
- { 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
- { 0, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 },
- { 0, 1, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9 }
-};
-
-/* first index is subband, 2nd index is 0, 1 or 3 (2 is unused) */
-static const int8_t tone_level_idx_offset_table[30][4] = {
- { -50, -50, 0, -50 },
- { -50, -50, 0, -50 },
- { -50, -9, 0, -19 },
- { -16, -6, 0, -12 },
- { -11, -4, 0, -8 },
- { -8, -3, 0, -6 },
- { -7, -3, 0, -5 },
- { -6, -2, 0, -4 },
- { -5, -2, 0, -3 },
- { -4, -1, 0, -3 },
- { -4, -1, 0, -2 },
- { -3, -1, 0, -2 },
- { -3, -1, 0, -2 },
- { -3, -1, 0, -2 },
- { -2, -1, 0, -1 },
- { -2, -1, 0, -1 },
- { -2, -1, 0, -1 },
- { -2, 0, 0, -1 },
- { -2, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, -1 },
- { -1, 0, 0, 0 },
- { -1, 0, 0, 0 },
- { -1, 0, 0, 0 },
- { -1, 0, 0, 0 }
-};
-
-/* all my samples have 1st index 0 or 1 */
-/* second index is subband, only indexes 0-29 seem to be used */
-static const int8_t coding_method_table[5][30] = {
- { 34, 30, 24, 24, 16, 16, 16, 16, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
- },
- { 34, 30, 24, 24, 16, 16, 16, 16, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
- },
- { 34, 30, 30, 30, 24, 24, 16, 16, 16, 16, 16, 16, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
- },
- { 34, 34, 30, 30, 24, 24, 24, 24, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 10, 10, 10, 10, 10, 10, 10, 10
- },
- { 34, 34, 30, 30, 30, 30, 30, 30, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
- },
-};
-
-static const int vlc_stage3_values[60] = {
- 0, 1, 2, 3, 4, 6, 8, 10, 12, 16, 20, 24,
- 28, 36, 44, 52, 60, 76, 92, 108, 124, 156, 188, 220,
- 252, 316, 380, 444, 508, 636, 764, 892, 1020, 1276, 1532, 1788,
- 2044, 2556, 3068, 3580, 4092, 5116, 6140, 7164, 8188, 10236, 12284, 14332,
- 16380, 20476, 24572, 28668, 32764, 40956, 49148, 57340, 65532, 81916, 98300,114684
-};
-
-static const float fft_tone_sample_table[4][16][5] = {
- { { .0100000000f,-.0037037037f,-.0020000000f,-.0069444444f,-.0018416207f },
- { .0416666667f, .0000000000f, .0000000000f,-.0208333333f,-.0123456791f },
- { .1250000000f, .0558035709f, .0330687836f,-.0164473690f,-.0097465888f },
- { .1562500000f, .0625000000f, .0370370370f,-.0062500000f,-.0037037037f },
- { .1996007860f, .0781250000f, .0462962948f, .0022727272f, .0013468013f },
- { .2000000000f, .0625000000f, .0370370373f, .0208333333f, .0074074073f },
- { .2127659619f, .0555555556f, .0329218097f, .0208333333f, .0123456791f },
- { .2173913121f, .0473484844f, .0280583613f, .0347222239f, .0205761325f },
- { .2173913121f, .0347222239f, .0205761325f, .0473484844f, .0280583613f },
- { .2127659619f, .0208333333f, .0123456791f, .0555555556f, .0329218097f },
- { .2000000000f, .0208333333f, .0074074073f, .0625000000f, .0370370370f },
- { .1996007860f, .0022727272f, .0013468013f, .0781250000f, .0462962948f },
- { .1562500000f,-.0062500000f,-.0037037037f, .0625000000f, .0370370370f },
- { .1250000000f,-.0164473690f,-.0097465888f, .0558035709f, .0330687836f },
- { .0416666667f,-.0208333333f,-.0123456791f, .0000000000f, .0000000000f },
- { .0100000000f,-.0069444444f,-.0018416207f,-.0037037037f,-.0020000000f } },
-
- { { .0050000000f,-.0200000000f, .0125000000f,-.3030303030f, .0020000000f },
- { .1041666642f, .0400000000f,-.0250000000f, .0333333333f,-.0200000000f },
- { .1250000000f, .0100000000f, .0142857144f,-.0500000007f,-.0200000000f },
- { .1562500000f,-.0006250000f,-.00049382716f,-.000625000f,-.00049382716f },
- { .1562500000f,-.0006250000f,-.00049382716f,-.000625000f,-.00049382716f },
- { .1250000000f,-.0500000000f,-.0200000000f, .0100000000f, .0142857144f },
- { .1041666667f, .0333333333f,-.0200000000f, .0400000000f,-.0250000000f },
- { .0050000000f,-.3030303030f, .0020000001f,-.0200000000f, .0125000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f } },
-
- { { .1428571492f, .1250000000f,-.0285714287f,-.0357142873f, .0208333333f },
- { .1818181818f, .0588235296f, .0333333333f, .0212765951f, .0100000000f },
- { .1818181818f, .0212765951f, .0100000000f, .0588235296f, .0333333333f },
- { .1428571492f,-.0357142873f, .0208333333f, .1250000000f,-.0285714287f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f } },
-
- { { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f },
- { .0000000000f, .0000000000f, .0000000000f, .0000000000f, .0000000000f } }
-};
-
-static const float fft_tone_level_table[2][64] = { {
-/* pow ~ (i > 46) ? 0 : (((((i & 1) ? 431 : 304) << (i >> 1))) / 1024.0); */
- 0.17677669f, 0.42677650f, 0.60355347f, 0.85355347f,
- 1.20710683f, 1.68359375f, 2.37500000f, 3.36718750f,
- 4.75000000f, 6.73437500f, 9.50000000f, 13.4687500f,
- 19.0000000f, 26.9375000f, 38.0000000f, 53.8750000f,
- 76.0000000f, 107.750000f, 152.000000f, 215.500000f,
- 304.000000f, 431.000000f, 608.000000f, 862.000000f,
- 1216.00000f, 1724.00000f, 2432.00000f, 3448.00000f,
- 4864.00000f, 6896.00000f, 9728.00000f, 13792.0000f,
- 19456.0000f, 27584.0000f, 38912.0000f, 55168.0000f,
- 77824.0000f, 110336.000f, 155648.000f, 220672.000f,
- 311296.000f, 441344.000f, 622592.000f, 882688.000f,
- 1245184.00f, 1765376.00f, 2490368.00f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- }, {
-/* pow = (i > 45) ? 0 : ((((i & 1) ? 431 : 304) << (i >> 1)) / 512.0); */
- 0.59375000f, 0.84179688f, 1.18750000f, 1.68359375f,
- 2.37500000f, 3.36718750f, 4.75000000f, 6.73437500f,
- 9.50000000f, 13.4687500f, 19.0000000f, 26.9375000f,
- 38.0000000f, 53.8750000f, 76.0000000f, 107.750000f,
- 152.000000f, 215.500000f, 304.000000f, 431.000000f,
- 608.000000f, 862.000000f, 1216.00000f, 1724.00000f,
- 2432.00000f, 3448.00000f, 4864.00000f, 6896.00000f,
- 9728.00000f, 13792.0000f, 19456.0000f, 27584.0000f,
- 38912.0000f, 55168.0000f, 77824.0000f, 110336.000f,
- 155648.000f, 220672.000f, 311296.000f, 441344.000f,
- 622592.000f, 882688.000f, 1245184.00f, 1765376.00f,
- 2490368.00f, 3530752.00f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
- 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f
-} };
-
-static const float fft_tone_envelope_table[4][31] = {
- { .009607375f, .038060248f, .084265202f, .146446645f, .222214907f, .308658302f,
- .402454883f, .500000060f, .597545207f, .691341758f, .777785182f, .853553414f,
- .915734828f, .961939812f, .990392685f, 1.00000000f, .990392625f, .961939752f,
- .915734768f, .853553295f, .777785063f, .691341639f, .597545087f, .500000000f,
- .402454853f, .308658272f, .222214878f, .146446615f, .084265172f, .038060218f,
- .009607345f },
- { .038060248f, .146446645f, .308658302f, .500000060f, .691341758f, .853553414f,
- .961939812f, 1.00000000f, .961939752f, .853553295f, .691341639f, .500000000f,
- .308658272f, .146446615f, .038060218f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f },
- { .146446645f, .500000060f, .853553414f, 1.00000000f, .853553295f, .500000000f,
- .146446615f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f },
- { .500000060f, 1.00000000f, .500000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f, .000000000f, .000000000f, .000000000f, .000000000f, .000000000f,
- .000000000f }
-};
-
-static const float sb_noise_attenuation[32] = {
- 0.0f, 0.0f, 0.3f, 0.4f, 0.5f, 0.7f, 1.0f, 1.0f,
- 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
- 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
- 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
-};
-
-static const uint8_t fft_subpackets[32] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0
-};
-
-/* first index is joined_stereo, second index is 0 or 2 (1 is unused) */
-static const float dequant_1bit[2][3] = {
- {-0.920000f, 0.000000f, 0.920000f },
- {-0.890000f, 0.000000f, 0.890000f }
-};
-
-static const float type30_dequant[8] = {
- -1.0f,-0.625f,-0.291666656732559f,0.0f,
- 0.25f,0.5f,0.75f,1.0f,
-};
-
-static const float type34_delta[10] = { // FIXME: covers 8 entries..
- -1.0f,-0.60947573184967f,-0.333333343267441f,-0.138071194291115f,0.0f,
- 0.138071194291115f,0.333333343267441f,0.60947573184967f,1.0f,0.0f,
-};
-
-#endif /* AVCODEC_QDM2DATA_H */
+++ /dev/null
-/*
- * Real Audio 1.0 (14.4K)
- * Copyright (c) 2003 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_RA144_H
-#define AVCODEC_RA144_H
-
-#include <stdint.h>
-
-static const int16_t gain_val_tab[256][3] = {
- { 541, 956, 768}, { 877, 581, 568}, { 675,1574, 635}, {1248,1464, 668},
- {1246, 839, 1394}, {2560,1386, 991}, { 925, 687, 608}, {2208, 797, 1144},
- { 535, 832, 799}, { 762, 605, 1154}, { 832,1122, 1003}, {1180, 687, 1176},
- {1292, 901, 732}, {1656, 689, 896}, {1750,1248, 848}, {2284, 942, 1022},
- { 824,1472, 643}, { 517, 765, 512}, { 562,1816, 1522}, { 694,1826, 2700},
- { 704, 524, 672}, {1442, 757, 2232}, { 884, 551, 1266}, {2232,1007, 1692},
- { 932, 746, 777}, {1132, 822, 926}, {1226, 771, 611}, {2948,1342, 1008},
- {1302, 594, 1158}, {1602, 636, 1128}, {3408, 910, 1438}, {1996, 614, 575},
- { 665, 935, 628}, { 631,1192, 829}, { 644, 926, 1052}, { 879, 988, 1226},
- { 941,2768, 2772}, { 565,1344, 2304}, { 547, 628, 740}, { 639, 532, 1074},
- { 955,1208, 598}, {1124,1160, 900}, {1206, 899, 1242}, { 746, 533, 624},
- {1458,1028, 735}, {1706,1102, 692}, {1898,1018, 1004}, {2176, 988, 735},
- {1578, 782, 1642}, { 897, 516, 754}, {2068, 702, 1656}, {2344, 818, 1526},
- { 907, 652, 592}, {1056, 652, 642}, {2124,1416, 780}, {2664,1250, 727},
- {1894, 727, 1108}, {2196, 657, 981}, {4840, 920, 1704}, {4992,1238, 983},
- {2420, 909, 1094}, {2760, 935, 1032}, {2800, 612, 853}, {3068, 832, 574},
- { 523,1796, 923}, { 722,1916, 1382}, {1226,1542, 928}, { 758, 757, 584},
- { 512,1134, 577}, { 615,1276, 698}, { 574,2568, 2356}, { 993,2728, 3512},
- { 539, 890, 913}, { 694, 928, 1088}, { 805, 600, 1360}, {2160, 951, 3128},
- { 816, 950, 590}, { 955, 847, 811}, {1094, 883, 556}, {1304, 888, 604},
- { 863,1170, 855}, {1023, 997, 1032}, { 932,1228, 1280}, { 627, 564, 573},
- { 876, 900, 1448}, {1030, 857, 1792}, {1294, 953, 1758}, {1612, 854, 1714},
- {1090,1166, 631}, {1314,1202, 751}, {1480, 905, 795}, {1682,1016, 568},
- {1494,1178, 983}, { 878, 613, 526}, {1728,1446, 779}, {2136,1348, 774},
- { 950, 649, 939}, {1180, 703, 899}, {1236, 527, 1158}, {1450, 647, 972},
- {1282, 647, 707}, {1460, 663, 644}, {1614, 572, 578}, {3516,1222, 821},
- {2668, 729, 1682}, {3128, 585, 1502}, {3208, 733, 976}, {6800, 871, 1416},
- {3480, 743, 1408}, {3764, 899, 1170}, {3772, 632, 875}, {4092, 732, 638},
- {3112, 753, 2620}, {3372, 945, 1890}, {3768, 969, 2288}, {2016, 559, 854},
- {1736, 729, 787}, {1940, 686, 547}, {2140, 635, 674}, {4480,1272, 828},
- {3976, 592, 1666}, {4384, 621, 1388}, {4400, 801, 955}, {4656, 522, 646},
- {4848, 625, 1636}, {4984, 591, 874}, {5352, 535, 1001}, {11216,938, 1184},
- { 925,3280, 1476}, { 735,1580, 1088}, {1150,1576, 674}, { 655, 783, 528},
- { 527,2052, 1354}, { 782,1704, 1880}, { 578, 910, 1026}, { 692, 882, 1468},
- { 586, 683, 715}, { 739, 609, 717}, { 778, 773, 697}, { 922, 785, 813},
- { 766, 651, 984}, { 978, 596, 1030}, {1070, 757, 1080}, {1324, 687, 1178},
- {1108,2144, 979}, { 723, 982, 690}, { 936, 956, 527}, {1180,1002, 547},
- { 517,1306, 825}, { 832,1184, 974}, {1024, 957, 903}, {1262,1090, 906},
- {1028, 720, 649}, {1192, 679, 694}, {2468,1480, 979}, {2844,1370, 877},
- {1310, 835, 848}, {1508, 839, 698}, {1742,1030, 769}, {1910, 852, 573},
- {1280, 859, 1174}, {1584, 863, 1108}, {1686, 708, 1364}, {1942, 768, 1104},
- { 891, 536, 690}, {1016, 560, 663}, {2172, 870, 1348}, {2404, 999, 1170},
- {1890, 966, 889}, {2116, 912, 777}, {2296,1020, 714}, {4872,1844, 932},
- {2392, 778, 929}, {2604, 772, 744}, {2764, 957, 722}, {5832,1532, 984},
- {2188, 519, 1264}, {2332, 532, 922}, {5064, 995, 2412}, {2708, 571, 874},
- {2408, 545, 666}, {5016,1084, 875}, {5376, 983, 1196}, {5536, 979, 730},
- {5344, 634, 1744}, {5688, 706, 1348}, {5912, 977, 1190}, {6072, 905, 763},
- {6048, 582, 1526}, {11968,1013,1816}, {12864,937, 1900}, {12560,1086, 998},
- {1998, 684, 1884}, {2504, 633, 1992}, {1252, 567, 835}, {1478, 571, 973},
- {2620, 769, 1414}, {2808, 952, 1142}, {2908, 712, 1028}, {2976, 686, 741},
- {1462, 552, 714}, {3296, 991, 1452}, {1590, 615, 544}, {3480,1150, 824},
- {3212, 832, 923}, {3276, 839, 531}, {3548, 786, 852}, {3732, 764, 570},
- {5728, 906, 2616}, {6272, 804, 2252}, {3096, 535, 876}, {3228, 598, 649},
- {6536, 759, 1436}, {6648, 993, 846}, {6864, 567, 1210},{14016,1012, 1302},
- {3408, 548, 1098}, {7160,1008, 1742}, {7136,1000, 1182}, {7480,1032, 836},
- {7448, 612, 1552}, {7744, 614, 816}, {8384, 777, 1438}, {8784, 694, 786},
- { 882,1508, 1068}, { 597, 837, 766}, {1270, 954, 1408}, { 803, 550, 798},
- {1398,1308, 798}, {1848,1534, 738}, { 970, 675, 608}, {1264, 706, 684},
- {1716, 767, 1126}, {2108, 765, 1404}, {2236, 924, 1003}, {2472,1048, 611},
- { 999, 942, 963}, {1094, 857, 935}, {2936, 926, 1138}, {1934, 746, 551},
- {3336, 633, 1762}, {3764, 701, 1454}, {1890, 564, 636}, {4096,1126, 793},
- {3936, 556, 1140}, {3936, 540, 740}, {4216, 764, 874}, {8480,1328, 1014},
- {2184, 515, 1042}, {4432, 934, 1344}, {4784, 945, 1112}, {5016,1062, 733},
- {9216,1020, 2028}, {9968, 924, 1188}, {5424, 909, 1206}, {6512, 744, 1086}
-};
-
-static const uint8_t gain_exp_tab[256] = {
- 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
- 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
- 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
- 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
- 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
- 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
- 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
- 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
- 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
- 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
- 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
- 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
- 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
-};
-
-static const int8_t cb1_vects[128][40]={
- {
- 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
- -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
- -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
- -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
- }, {
- 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
- -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
- -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
- 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
- }, {
- 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
- -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
- -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
- 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
- }, {
- 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
- -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
- -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
- 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
- }, {
- 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
- 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
- -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
- 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
- }, {
- 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
- 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
- -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
- 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
- }, {
- 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
- 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
- -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
- 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
- }, {
- 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
- 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
- -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
- 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
- }, {
- 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
- -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
- 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
- -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
- }, {
- 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
- -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
- 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
- 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
- }, {
- 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
- -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
- -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
- 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
- }, {
- 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
- -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
- -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
- 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
- }, {
- 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
- -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
- 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
- -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
- }, {
- 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
- 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
- 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
- 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
- }, {
- 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
- -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
- 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
- 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
- }, {
- 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
- -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
- 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
- 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
- }, {
- -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
- 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
- -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
- -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
- }, {
- 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
- 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
- -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
- 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
- }, {
- -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
- -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
- -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
- 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
- }, {
- 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
- 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
- -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
- 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
- }, {
- 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
- 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
- -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
- 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
- }, {
- 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
- 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
- -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
- 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
- }, {
- -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
- 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
- -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
- 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
- }, {
- 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
- 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
- -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
- 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
- }, {
- -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
- -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
- -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
- -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
- }, {
- 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
- -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
- 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
- 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
- }, {
- -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
- -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
- -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
- 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
- }, {
- -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
- -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
- -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
- 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
- }, {
- -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
- 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
- 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
- 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
- }, {
- 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
- 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
- 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
- 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
- }, {
- -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
- 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
- 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
- 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
- }, {
- 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
- 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
- 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
- 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
- }, {
- 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
- -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
- -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
- -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
- }, {
- 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
- 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
- -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
- 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
- }, {
- 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
- -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
- -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
- -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
- }, {
- 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
- -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
- -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
- 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
- }, {
- 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
- 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
- -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
- -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
- }, {
- 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
- 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
- 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
- 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
- }, {
- 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
- 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
- -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
- 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
- }, {
- 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
- 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
- -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
- 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
- }, {
- 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
- -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
- 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
- -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
- }, {
- 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
- -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
- 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
- -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
- }, {
- 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
- -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
- 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
- -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
- }, {
- 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
- -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
- 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
- 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
- }, {
- 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
- 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
- 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
- -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
- }, {
- 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
- 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
- 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
- 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
- }, {
- 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
- -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
- 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
- -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
- }, {
- 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
- -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
- 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
- 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
- }, {
- 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
- 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
- -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
- -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
- }, {
- 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
- 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
- -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
- 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
- }, {
- 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
- 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
- -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
- -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
- }, {
- 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
- 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
- -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
- 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
- }, {
- 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
- 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
- -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
- -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
- }, {
- 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
- 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
- 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
- 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
- }, {
- 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
- 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
- -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
- 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
- }, {
- 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
- 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
- -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
- 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
- }, {
- 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
- -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
- 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
- -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
- }, {
- 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
- 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
- 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
- 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
- }, {
- -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
- -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
- -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
- -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
- }, {
- 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
- -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
- 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
- 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
- }, {
- 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
- 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
- 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
- -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
- }, {
- 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
- 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
- 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
- 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
- }, {
- 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
- 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
- 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
- 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
- }, {
- 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
- 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
- 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
- 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
- }, {
- -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
- -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
- -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
- -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
- }, {
- -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
- -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
- -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
- 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
- }, {
- -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
- -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
- -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
- -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
- }, {
- -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
- -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
- -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
- 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
- }, {
- -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
- 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
- -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
- -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
- }, {
- 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
- 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
- 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
- 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
- }, {
- -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
- -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
- -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
- 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
- }, {
- -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
- 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
- -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
- 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
- }, {
- -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
- -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
- 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
- -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
- }, {
- -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
- -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
- 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
- -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
- }, {
- -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
- -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
- 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
- -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
- }, {
- -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
- -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
- 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
- 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
- }, {
- -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
- -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
- 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
- -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
- }, {
- -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
- -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
- 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
- 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
- }, {
- -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
- -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
- 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
- -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
- }, {
- -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
- -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
- 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
- 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
- }, {
- -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
- 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
- -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
- -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
- }, {
- -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
- 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
- -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
- 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
- }, {
- -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
- -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
- -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
- -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
- }, {
- -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
- -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
- -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
- 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
- }, {
- -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
- 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
- -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
- -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
- }, {
- -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
- 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
- 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
- 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
- }, {
- -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
- 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
- -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
- 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
- }, {
- -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
- 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
- -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
- 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
- }, {
- -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
- -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
- 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
- -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
- }, {
- -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
- -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
- 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
- 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
- }, {
- -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
- -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
- -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
- -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
- }, {
- -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
- -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
- 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
- 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
- }, {
- -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
- 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
- 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
- -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
- }, {
- -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
- 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
- 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
- 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
- }, {
- -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
- -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
- 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
- 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
- }, {
- -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
- 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
- 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
- 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
- }, {
- -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
- -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
- -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
- -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
- }, {
- 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
- 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
- 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
- -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
- }, {
- -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
- -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
- -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
- -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
- }, {
- 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
- -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
- -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
- 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
- }, {
- 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
- 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
- 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
- -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
- }, {
- 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
- 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
- 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
- -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
- }, {
- -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
- 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
- -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
- -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
- }, {
- 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
- 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
- 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
- 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
- }, {
- -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
- -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
- 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
- -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
- }, {
- 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
- -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
- 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
- -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
- }, {
- -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
- -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
- 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
- -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
- }, {
- -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
- -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
- 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
- -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
- }, {
- -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
- 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
- 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
- -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
- }, {
- 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
- 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
- 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
- -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
- }, {
- -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
- -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
- 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
- -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
- }, {
- 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
- -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
- 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
- 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
- }, {
- -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
- 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
- -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
- -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
- }, {
- -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
- 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
- -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
- -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
- }, {
- -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
- 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
- -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
- -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
- }, {
- -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
- 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
- -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
- 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
- }, {
- -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
- 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
- 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
- -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
- }, {
- -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
- 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
- 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
- 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
- }, {
- -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
- 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
- -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
- -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
- }, {
- -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
- 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
- -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
- 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
- }, {
- -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
- -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
- 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
- -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
- }, {
- -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
- 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
- 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
- -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
- }, {
- -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
- -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
- 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
- -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
- }, {
- -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
- -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
- 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
- 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
- }, {
- -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
- 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
- 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
- -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
- }, {
- -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
- 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
- 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
- -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
- }, {
- -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
- 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
- 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
- -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
- }, {
- -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
- 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
- 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
- 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
- }
-};
-
-static const int8_t cb2_vects[128][40]={
- {
- 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
- -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
- -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
- 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
- }, {
- 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
- -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
- -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
- -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
- }, {
- 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
- -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
- 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
- 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
- }, {
- -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
- -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
- -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
- 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
- }, {
- 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
- 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
- -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
- 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
- }, {
- -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
- 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
- -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
- 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
- }, {
- -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
- 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
- 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
- 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
- }, {
- -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
- -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
- 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
- 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
- }, {
- 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
- -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
- -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
- 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
- }, {
- 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
- -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
- -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
- 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
- }, {
- 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
- -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
- -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
- 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
- }, {
- -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
- -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
- -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
- 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
- }, {
- 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
- 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
- -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
- 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
- }, {
- -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
- -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
- -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
- 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
- }, {
- -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
- -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
- 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
- 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
- }, {
- -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
- -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
- -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
- 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
- }, {
- 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
- 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
- -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
- -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
- }, {
- 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
- -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
- -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
- -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
- }, {
- 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
- -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
- 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
- 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
- }, {
- -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
- -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
- 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
- -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
- }, {
- 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
- 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
- -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
- 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
- }, {
- -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
- 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
- -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
- -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
- }, {
- -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
- 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
- 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
- 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
- }, {
- -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
- -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
- 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
- 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
- }, {
- 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
- -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
- -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
- 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
- }, {
- 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
- -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
- -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
- -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
- }, {
- 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
- -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
- -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
- 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
- }, {
- -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
- -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
- -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
- 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
- }, {
- 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
- 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
- -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
- 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
- }, {
- -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
- 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
- -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
- 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
- }, {
- -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
- 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
- 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
- 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
- }, {
- -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
- -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
- 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
- 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
- }, {
- 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
- -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
- -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
- 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
- }, {
- 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
- -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
- -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
- -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
- }, {
- 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
- -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
- 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
- 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
- }, {
- 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
- -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
- 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
- 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
- }, {
- 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
- 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
- -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
- 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
- }, {
- 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
- -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
- -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
- 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
- }, {
- 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
- -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
- 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
- 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
- }, {
- -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
- -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
- 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
- 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
- }, {
- 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
- -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
- -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
- 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
- }, {
- 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
- -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
- -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
- -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
- }, {
- 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
- -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
- -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
- 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
- }, {
- 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
- -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
- -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
- 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
- }, {
- 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
- -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
- -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
- 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
- }, {
- 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
- -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
- -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
- 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
- }, {
- 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
- -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
- 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
- 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
- }, {
- -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
- -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
- 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
- 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
- }, {
- 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
- -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
- -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
- -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
- }, {
- 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
- -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
- -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
- -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
- }, {
- 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
- -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
- 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
- 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
- }, {
- 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
- -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
- 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
- -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
- }, {
- 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
- 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
- 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
- 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
- }, {
- 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
- 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
- -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
- -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
- }, {
- 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
- 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
- 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
- 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
- }, {
- -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
- -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
- 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
- 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
- }, {
- 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
- -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
- -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
- 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
- }, {
- 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
- -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
- -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
- -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
- }, {
- 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
- -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
- 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
- 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
- }, {
- 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
- -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
- 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
- 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
- }, {
- 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
- 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
- -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
- 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
- }, {
- 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
- -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
- -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
- 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
- }, {
- 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
- -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
- 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
- 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
- }, {
- -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
- -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
- 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
- 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
- }, {
- 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
- 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
- -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
- -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
- }, {
- -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
- 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
- -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
- -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
- }, {
- -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
- 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
- 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
- -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
- }, {
- -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
- -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
- 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
- -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
- }, {
- -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
- 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
- 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
- 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
- }, {
- -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
- 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
- -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
- -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
- }, {
- -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
- 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
- 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
- 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
- }, {
- -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
- 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
- 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
- -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
- }, {
- 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
- 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
- -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
- -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
- }, {
- -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
- -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
- -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
- -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
- }, {
- -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
- -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
- 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
- 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
- }, {
- -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
- -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
- -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
- -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
- }, {
- -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
- 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
- -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
- 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
- }, {
- -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
- 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
- -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
- -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
- }, {
- -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
- 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
- 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
- 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
- }, {
- -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
- 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
- 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
- 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
- }, {
- 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
- 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
- -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
- -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
- }, {
- -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
- 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
- -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
- -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
- }, {
- -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
- 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
- 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
- -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
- }, {
- -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
- 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
- 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
- -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
- }, {
- -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
- 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
- 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
- -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
- }, {
- -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
- 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
- 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
- -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
- }, {
- -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
- 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
- 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
- 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
- }, {
- -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
- 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
- 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
- -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
- }, {
- 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
- 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
- -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
- -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
- }, {
- -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
- 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
- -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
- -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
- }, {
- -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
- 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
- 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
- -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
- }, {
- -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
- -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
- 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
- -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
- }, {
- -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
- 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
- -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
- 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
- }, {
- -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
- 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
- -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
- -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
- }, {
- -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
- 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
- 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
- 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
- }, {
- -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
- 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
- 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
- -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
- }, {
- 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
- 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
- -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
- -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
- }, {
- 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
- -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
- -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
- -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
- }, {
- 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
- 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
- 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
- -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
- }, {
- -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
- -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
- 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
- -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
- }, {
- 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
- 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
- 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
- -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
- }, {
- -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
- 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
- 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
- -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
- }, {
- -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
- 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
- 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
- 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
- }, {
- -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
- 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
- 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
- -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
- }, {
- 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
- 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
- -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
- -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
- }, {
- 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
- -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
- -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
- -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
- }, {
- 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
- -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
- 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
- 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
- }, {
- -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
- -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
- 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
- -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
- }, {
- 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
- 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
- -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
- 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
- }, {
- -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
- 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
- -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
- -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
- }, {
- -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
- 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
- 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
- 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
- }, {
- -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
- -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
- 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
- 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
- }, {
- 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
- 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
- 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
- -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
- }, {
- 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
- 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
- -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
- -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
- }, {
- 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
- 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
- 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
- -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
- }, {
- -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
- -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
- 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
- -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
- }, {
- 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
- 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
- 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
- -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
- }, {
- -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
- 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
- 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
- -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
- }, {
- -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
- 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
- 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
- -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
- }, {
- -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
- 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
- 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
- -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
- }, {
- 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
- 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
- -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
- -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
- }, {
- 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
- -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
- -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
- -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
- }, {
- 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
- 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
- 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
- -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
- }, {
- -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
- -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
- 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
- -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
- }, {
- 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
- 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
- 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
- -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
- }, {
- -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
- 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
- -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
- -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
- }, {
- -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
- 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
- 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
- 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
- }, {
- -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
- 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
- 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
- -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
- }
-};
-
-static const uint16_t cb1_base[128]={
- 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
- 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
- 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
- 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
- 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
- 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
- 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
- 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
- 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
- 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
- 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
- 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
- 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
- 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
- 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
- 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
-};
-
-static const uint16_t cb2_base[128]={
- 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
- 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
- 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
- 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
- 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
- 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
- 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
- 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
- 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
- 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
- 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
- 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
- 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
- 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
- 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
- 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
-};
-
-static const int16_t energy_tab[32]={
- 0, 16, 20, 25, 32, 41, 51, 65,
- 81, 103, 129, 163, 205, 259, 326, 410,
- 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
- 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
-};
-
-static const int16_t lpc_refl_cb1[64]={
- -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
- -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
- -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
- -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
- -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
- -1508, -1348, -1185, -994, -798, -600, -374, -110,
- 152, 447, 720, 982, 1229, 1456, 1682, 1916,
- 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
-};
-
-static const int16_t lpc_refl_cb2[32]={
- -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
- 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
- 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
- 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
-};
-
-static const int16_t lpc_refl_cb3[32]={
- -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
- -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
- -721, -561, -394, -228, -54, 119, 296, 484,
- 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
-};
-
-static const int16_t lpc_refl_cb4[16]={
- -1845, -1057, -522, -77, 301, 647, 975, 1285,
- 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
-};
-
-static const int16_t lpc_refl_cb5[16]={
- -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
- -59, 201, 470, 759, 1077, 1457, 1908, 2495
-};
-
-static const int16_t lpc_refl_cb6[8]={
- -1372, -474, 133, 632, 1100, 1571, 2075, 2672
-};
-
-static const int16_t lpc_refl_cb7[8]={
- -2389, -1787, -1231, -717, -239, 234, 770, 1474
-};
-
-static const int16_t lpc_refl_cb8[8]={
- -1569, -864, -296, 200, 670, 1151, 1709, 2385
-};
-
-static const int16_t lpc_refl_cb9[8]={
- -2200, -1608, -1062, -569, -120, 338, 863, 1621
-};
-
-static const int16_t lpc_refl_cb10[4]={
- -617, 190, 802, 1483
-};
-
-static const int16_t * const lpc_refl_cb[10]={
- lpc_refl_cb1, lpc_refl_cb2, lpc_refl_cb3, lpc_refl_cb4, lpc_refl_cb5,
- lpc_refl_cb6, lpc_refl_cb7, lpc_refl_cb8, lpc_refl_cb9, lpc_refl_cb10
-};
-
-#endif /* AVCODEC_RA144_H */
+++ /dev/null
-/*
- * RealAudio 2.0 (28.8K)
- * Copyright (c) 2003 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_RA288_H
-#define AVCODEC_RA288_H
-
-#include <stdint.h>
-
-static const float amptable[8]={
- 0.515625, 0.90234375, 1.57910156, 2.76342773,
- -0.515625, -0.90234375, -1.57910156, -2.76342773
-};
-
-static const int16_t codetable[128][5]={
- { 668, -2950, -1254, -1790, -2553}, { -5032, -4577, -1045, 2908, 3318},
- { -2819, -2677, -948, -2825, -4450}, { -6679, -340, 1482, -1276, 1262},
- { -562, -6757, 1281, 179, -1274}, { -2512, -7130, -4925, 6913, 2411},
- { -2478, -156, 4683, -3873, 0}, { -8208, 2140, -478, -2785, 533},
- { 1889, 2759, 1381, -6955, -5913}, { 5082, -2460, -5778, 1797, 568},
- { -2208, -3309, -4523, -6236, -7505}, { -2719, 4358, -2988, -1149, 2664},
- { 1259, 995, 2711, -2464,-10390}, { 1722, -7569, -2742, 2171, -2329},
- { 1032, 747, -858, -7946,-12843}, { 3106, 4856, -4193, -2541, 1035},
- { 1862, -960, -6628, 410, 5882}, { -2493, -2628, -4000, -60, 7202},
- { -2672, 1446, 1536, -3831, 1233}, { -5302, 6912, 1589, -4187, 3665},
- { -3456, -8170, -7709, 1384, 4698}, { -4699, -6209,-11176, 8104, 16830},
- { 930, 7004, 1269, -8977, 2567}, { 4649, 11804, 3441, -5657, 1199},
- { 2542, -183, -8859, -7976, 3230}, { -2872, -2011, -9713, -8385, 12983},
- { 3086, 2140, -3680, -9643, -2896}, { -7609, 6515, -2283, -2522, 6332},
- { -3333, -5620, -9130,-11131, 5543}, { -407, -6721,-17466, -2889, 11568},
- { 3692, 6796, -262,-10846, -1856}, { 7275, 13404, -2989,-10595, 4936},
- { 244, -2219, 2656, 3776, -5412}, { -4043, -5934, 2131, 863, -2866},
- { -3302, 1743, -2006, -128, -2052}, { -6361, 3342, -1583, -21, 1142},
- { -3837, -1831, 6397, 2545, -2848}, { -9332, -6528, 5309, 1986, -2245},
- { -4490, 748, 1935, -3027, -493}, { -9255, 5366, 3193, -4493, 1784},
- { 4784, -370, 1866, 1057, -1889}, { 7342, -2690, -2577, 676, -611},
- { -502, 2235, -1850, -1777, -2049}, { 1011, 3880, -2465, 2209, -152},
- { 2592, 2829, 5588, 2839, -7306}, { -3049, -4918, 5955, 9201, -4447},
- { 697, 3908, 5798, -4451, -4644}, { -2121, 5444, -2570, 321, -1202},
- { 2846, -2086, 3532, 566, -708}, { -4279, 950, 4980, 3749, 452},
- { -2484, 3502, 1719, -170, 238}, { -3435, 263, 2114, -2005, 2361},
- { -7338, -1208, 9347, -1216, -4013}, {-13498, -439, 8028, -4232, 361},
- { -3729, 5433, 2004, -4727, -1259}, { -3986, 7743, 8429, -3691, -987},
- { 5198, -423, 1150, -1281, 816}, { 7409, 4109, -3949, 2690, 30},
- { 1246, 3055, -35, -1370, -246}, { -1489, 5635, -678, -2627, 3170},
- { 4830, -4585, 2008, -1062, 799}, { -129, 717, 4594, 14937, 10706},
- { 417, 2759, 1850, -5057, -1153}, { -3887, 7361, -5768, 4285, 666},
- { 1443, -938, 20, -2119, -1697}, { -3712, -3402, -2212, 110, 2136},
- { -2952, 12, -1568, -3500, -1855}, { -1315, -1731, 1160, -558, 1709},
- { 88, -4569, 194, -454, -2957}, { -2839, -1666, -273, 2084, -155},
- { -189, -2376, 1663, -1040, -2449}, { -2842, -1369, 636, -248, -2677},
- { 1517, 79, -3013, -3669, -973}, { 1913, -2493, -5312, -749, 1271},
- { -2903, -3324, -3756, -3690, -1829}, { -2913, -1547, -2760, -1406, 1124},
- { 1844, -1834, 456, 706, -4272}, { 467, -4256, -1909, 1521, 1134},
- { -127, -994, -637, -1491, -6494}, { 873, -2045, -3828, -2792, -578},
- { 2311, -1817, 2632, -3052, 1968}, { 641, 1194, 1893, 4107, 6342},
- { -45, 1198, 2160, -1449, 2203}, { -2004, 1713, 3518, 2652, 4251},
- { 2936, -3968, 1280, 131, -1476}, { 2827, 8, -1928, 2658, 3513},
- { 3199, -816, 2687, -1741, -1407}, { 2948, 4029, 394, -253, 1298},
- { 4286, 51, -4507, -32, -659}, { 3903, 5646, -5588, -2592, 5707},
- { -606, 1234, -1607, -5187, 664}, { -525, 3620, -2192, -2527, 1707},
- { 4297, -3251, -2283, 812, -2264}, { 5765, 528, -3287, 1352, 1672},
- { 2735, 1241, -1103, -3273, -3407}, { 4033, 1648, -2965, -1174, 1444},
- { 74, 918, 1999, 915, -1026}, { -2496, -1605, 2034, 2950, 229},
- { -2168, 2037, 15, -1264, -208}, { -3552, 1530, 581, 1491, 962},
- { -2613, -2338, 3621, -1488, -2185}, { -1747, 81, 5538, 1432, -2257},
- { -1019, 867, 214, -2284, -1510}, { -1684, 2816, -229, 2551, -1389},
- { 2707, 504, 479, 2783, -1009}, { 2517, -1487, -1596, 621, 1929},
- { -148, 2206, -4288, 1292, -1401}, { -527, 1243, -2731, 1909, 1280},
- { 2149, -1501, 3688, 610, -4591}, { 3306, -3369, 1875, 3636, -1217},
- { 2574, 2513, 1449, -3074, -4979}, { 814, 1826, -2497, 4234, -4077},
- { 1664, -220, 3418, 1002, 1115}, { 781, 1658, 3919, 6130, 3140},
- { 1148, 4065, 1516, 815, 199}, { 1191, 2489, 2561, 2421, 2443},
- { 770, -5915, 5515, -368, -3199}, { 1190, 1047, 3742, 6927, -2089},
- { 292, 3099, 4308, -758, -2455}, { 523, 3921, 4044, 1386, 85},
- { 4367, 1006, -1252, -1466, -1383}, { 3852, 1579, -77, 2064, 868},
- { 5109, 2919, -202, 359, -509}, { 3650, 3206, 2303, 1693, 1296},
- { 2905, -3907, 229, -1196, -2332}, { 5977, -3585, 805, 3825, -3138},
- { 3746, -606, 53, -269, -3301}, { 606, 2018, -1316, 4064, 398}
-};
-
-static const float syn_window[111]={
- 0.576690972, 0.580838025, 0.585013986, 0.589219987, 0.59345597, 0.597723007,
- 0.602020264, 0.606384277, 0.610748291, 0.615142822, 0.619598389, 0.624084473,
- 0.628570557, 0.633117676, 0.637695313, 0.642272949, 0.646911621, 0.651580811,
- 0.656280518, 0.66104126, 0.665802002, 0.670593262, 0.675445557, 0.680328369,
- 0.685241699, 0.690185547, 0.695159912, 0.700164795, 0.705230713, 0.710327148,
- 0.715454102, 0.720611572, 0.725830078, 0.731048584, 0.736328125, 0.741638184,
- 0.747009277, 0.752380371, 0.7578125, 0.763305664, 0.768798828, 0.774353027,
- 0.779937744, 0.785583496, 0.791229248, 0.796936035, 0.802703857, 0.808502197,
- 0.814331055, 0.820220947, 0.826141357, 0.832092285, 0.838104248, 0.844146729,
- 0.850250244, 0.856384277, 0.862548828, 0.868774414, 0.875061035, 0.881378174,
- 0.88772583, 0.894134521, 0.900604248, 0.907104492, 0.913635254, 0.920227051,
- 0.926879883, 0.933563232, 0.940307617, 0.94708252, 0.953918457, 0.96081543,
- 0.96774292, 0.974731445, 0.981781006, 0.988861084, 0.994842529, 0.998565674,
- 0.999969482, 0.99911499, 0.996002197, 0.990600586, 0.982910156, 0.973022461,
- 0.960876465, 0.946533203, 0.930053711, 0.911437988, 0.89074707, 0.868041992,
- 0.843322754, 0.816680908, 0.788208008, 0.757904053, 0.725891113, 0.692199707,
- 0.656921387, 0.620178223, 0.582000732, 0.542480469, 0.501739502, 0.459838867,
- 0.416900635, 0.373016357, 0.328277588, 0.282775879, 0.236663818, 0.189971924,
- 0.142852783, 0.0954284668,0.0477600098
-};
-
-static const float gain_window[38]={
- 0.505699992, 0.524200022, 0.54339999, 0.563300014, 0.583953857, 0.60534668,
- 0.627502441, 0.650482178, 0.674316406, 0.699005127, 0.724578857, 0.75112915,
- 0.778625488, 0.807128906, 0.836669922, 0.86730957, 0.899078369, 0.932006836,
- 0.961486816, 0.982757568, 0.995635986, 1, 0.995819092, 0.983154297,
- 0.96206665, 0.932769775, 0.895507813, 0.850585938, 0.798400879, 0.739379883,
- 0.674072266, 0.602996826, 0.526763916, 0.446014404, 0.361480713, 0.273834229,
- 0.183868408, 0.0923461914
-};
-
-/** synthesis bandwidth broadening table */
-static const float syn_bw_tab[36]={
- 0.98828125, 0.976699829, 0.965254128, 0.953942537, 0.942763507, 0.931715488,
- 0.920796931, 0.910006344, 0.899342179, 0.888803005, 0.878387332, 0.868093729,
- 0.857920766, 0.847867012, 0.837931097, 0.828111589, 0.818407178, 0.808816493,
- 0.799338162, 0.789970934, 0.780713439, 0.771564424, 0.762522638, 0.753586829,
- 0.744755745, 0.736028135, 0.727402806, 0.718878567, 0.710454226, 0.702128589,
- 0.693900526, 0.685768902, 0.677732527, 0.669790328, 0.66194123, 0.654184103
-};
-
-/** gain bandwidth broadening table */
-static const float gain_bw_tab[10]={
- 0.90625, 0.821289063, 0.74432373, 0.674499512, 0.61126709,
- 0.553955078, 0.50201416, 0.454956055, 0.41229248, 0.373657227
-};
-
-#endif /* AVCODEC_RA288_H */
+++ /dev/null
-/*
- * Range coder
- * Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Range coder.
- */
-
-#ifndef AVCODEC_RANGECODER_H
-#define AVCODEC_RANGECODER_H
-
-#include <stdint.h>
-#include <assert.h>
-#include "libavutil/common.h"
-
-typedef struct RangeCoder{
- int low;
- int range;
- int outstanding_count;
- int outstanding_byte;
- uint8_t zero_state[256];
- uint8_t one_state[256];
- uint8_t *bytestream_start;
- uint8_t *bytestream;
- uint8_t *bytestream_end;
-}RangeCoder;
-
-void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size);
-void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf, int buf_size);
-int ff_rac_terminate(RangeCoder *c);
-void ff_build_rac_states(RangeCoder *c, int factor, int max_p);
-
-static inline void renorm_encoder(RangeCoder *c){
- //FIXME optimize
- while(c->range < 0x100){
- if(c->outstanding_byte < 0){
- c->outstanding_byte= c->low>>8;
- }else if(c->low <= 0xFF00){
- *c->bytestream++ = c->outstanding_byte;
- for(;c->outstanding_count; c->outstanding_count--)
- *c->bytestream++ = 0xFF;
- c->outstanding_byte= c->low>>8;
- }else if(c->low >= 0x10000){
- *c->bytestream++ = c->outstanding_byte + 1;
- for(;c->outstanding_count; c->outstanding_count--)
- *c->bytestream++ = 0x00;
- c->outstanding_byte= (c->low>>8) & 0xFF;
- }else{
- c->outstanding_count++;
- }
-
- c->low = (c->low & 0xFF)<<8;
- c->range <<= 8;
- }
-}
-
-static inline int get_rac_count(RangeCoder *c){
- int x= c->bytestream - c->bytestream_start + c->outstanding_count;
- if(c->outstanding_byte >= 0)
- x++;
- return 8*x - av_log2(c->range);
-}
-
-static inline void put_rac(RangeCoder *c, uint8_t * const state, int bit){
- int range1= (c->range * (*state)) >> 8;
-
- assert(*state);
- assert(range1 < c->range);
- assert(range1 > 0);
- if(!bit){
- c->range -= range1;
- *state= c->zero_state[*state];
- }else{
- c->low += c->range - range1;
- c->range = range1;
- *state= c->one_state[*state];
- }
-
- renorm_encoder(c);
-}
-
-static inline void refill(RangeCoder *c){
- if(c->range < 0x100){
- c->range <<= 8;
- c->low <<= 8;
- if(c->bytestream < c->bytestream_end)
- c->low+= c->bytestream[0];
- c->bytestream++;
- }
-}
-
-static inline int get_rac(RangeCoder *c, uint8_t * const state){
- int range1= (c->range * (*state)) >> 8;
- int av_unused one_mask;
-
- c->range -= range1;
-#if 1
- if(c->low < c->range){
- *state= c->zero_state[*state];
- refill(c);
- return 0;
- }else{
- c->low -= c->range;
- *state= c->one_state[*state];
- c->range = range1;
- refill(c);
- return 1;
- }
-#else
- one_mask= (c->range - c->low-1)>>31;
-
- c->low -= c->range & one_mask;
- c->range += (range1 - c->range) & one_mask;
-
- *state= c->zero_state[(*state) + (256&one_mask)];
-
- refill(c);
-
- return one_mask&1;
-#endif
-}
-
-#endif /* AVCODEC_RANGECODER_H */
+++ /dev/null
-/*
- * Ratecontrol
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_RATECONTROL_H
-#define AVCODEC_RATECONTROL_H
-
-/**
- * @file
- * ratecontrol header.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include "eval.h"
-
-typedef struct Predictor{
- double coeff;
- double count;
- double decay;
-} Predictor;
-
-typedef struct RateControlEntry{
- int pict_type;
- float qscale;
- int mv_bits;
- int i_tex_bits;
- int p_tex_bits;
- int misc_bits;
- int header_bits;
- uint64_t expected_bits;
- int new_pict_type;
- float new_qscale;
- int mc_mb_var_sum;
- int mb_var_sum;
- int i_count;
- int skip_count;
- int f_code;
- int b_code;
-}RateControlEntry;
-
-/**
- * rate control context.
- */
-typedef struct RateControlContext{
- FILE *stats_file;
- int num_entries; ///< number of RateControlEntries
- RateControlEntry *entry;
- double buffer_index; ///< amount of bits in the video/audio buffer
- Predictor pred[5];
- double short_term_qsum; ///< sum of recent qscales
- double short_term_qcount; ///< count of recent qscales
- double pass1_rc_eq_output_sum;///< sum of the output of the rc equation, this is used for normalization
- double pass1_wanted_bits; ///< bits which should have been outputed by the pass1 code (including complexity init)
- double last_qscale;
- double last_qscale_for[5]; ///< last qscale for a specific pict type, used for max_diff & ipb factor stuff
- int last_mc_mb_var_sum;
- int last_mb_var_sum;
- uint64_t i_cplx_sum[5];
- uint64_t p_cplx_sum[5];
- uint64_t mv_bits_sum[5];
- uint64_t qscale_sum[5];
- int frame_count[5];
- int last_non_b_pict_type;
-
- void *non_lavc_opaque; ///< context for non lavc rc code (for example xvid)
- float dry_run_qscale; ///< for xvid rc
- int last_picture_number; ///< for xvid rc
- AVExpr * rc_eq_eval;
-}RateControlContext;
-
-struct MpegEncContext;
-
-/* rate control */
-int ff_rate_control_init(struct MpegEncContext *s);
-float ff_rate_estimate_qscale(struct MpegEncContext *s, int dry_run);
-void ff_write_pass1_stats(struct MpegEncContext *s);
-void ff_rate_control_uninit(struct MpegEncContext *s);
-int ff_vbv_update(struct MpegEncContext *s, int frame_size);
-void ff_get_2pass_fcode(struct MpegEncContext *s);
-
-int ff_xvid_rate_control_init(struct MpegEncContext *s);
-void ff_xvid_rate_control_uninit(struct MpegEncContext *s);
-float ff_xvid_rate_estimate_qscale(struct MpegEncContext *s, int dry_run);
-
-#endif /* AVCODEC_RATECONTROL_H */
-
+++ /dev/null
-/*
- * Raw Video Codec
- * Copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Raw Video Codec
- */
-
-#ifndef AVCODEC_RAW_H
-#define AVCODEC_RAW_H
-
-#include "avcodec.h"
-
-typedef struct PixelFormatTag {
- enum PixelFormat pix_fmt;
- unsigned int fourcc;
-} PixelFormatTag;
-
-extern const PixelFormatTag ff_raw_pixelFormatTags[];
-
-#endif /* AVCODEC_RAW_H */
+++ /dev/null
-/*
- * rectangle filling function
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * useful rectangle filling function
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVCODEC_RECTANGLE_H
-#define AVCODEC_RECTANGLE_H
-
-#include <assert.h>
-#include "config.h"
-#include "libavutil/common.h"
-#include "dsputil.h"
-
-/**
- * fill a rectangle.
- * @param h height of the rectangle, should be a constant
- * @param w width of the rectangle, should be a constant
- * @param size the size of val (1, 2 or 4), should be a constant
- */
-static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){
- uint8_t *p= (uint8_t*)vp;
- assert(size==1 || size==2 || size==4);
- assert(w<=4);
-
- w *= size;
- stride *= size;
-
- assert((((long)vp)&(FFMIN(w, STRIDE_ALIGN)-1)) == 0);
- assert((stride&(w-1))==0);
- if(w==2){
- const uint16_t v= size==4 ? val : val*0x0101;
- *(uint16_t*)(p + 0*stride)= v;
- if(h==1) return;
- *(uint16_t*)(p + 1*stride)= v;
- if(h==2) return;
- *(uint16_t*)(p + 2*stride)= v;
- *(uint16_t*)(p + 3*stride)= v;
- }else if(w==4){
- const uint32_t v= size==4 ? val : size==2 ? val*0x00010001 : val*0x01010101;
- *(uint32_t*)(p + 0*stride)= v;
- if(h==1) return;
- *(uint32_t*)(p + 1*stride)= v;
- if(h==2) return;
- *(uint32_t*)(p + 2*stride)= v;
- *(uint32_t*)(p + 3*stride)= v;
- }else if(w==8){
- //gcc can't optimize 64bit math on x86_32
-#if HAVE_FAST_64BIT
- const uint64_t v= size==2 ? val*0x0001000100010001ULL : val*0x0100000001ULL;
- *(uint64_t*)(p + 0*stride)= v;
- if(h==1) return;
- *(uint64_t*)(p + 1*stride)= v;
- if(h==2) return;
- *(uint64_t*)(p + 2*stride)= v;
- *(uint64_t*)(p + 3*stride)= v;
- }else if(w==16){
- const uint64_t v= val*0x0100000001ULL;
- *(uint64_t*)(p + 0+0*stride)= v;
- *(uint64_t*)(p + 8+0*stride)= v;
- *(uint64_t*)(p + 0+1*stride)= v;
- *(uint64_t*)(p + 8+1*stride)= v;
- if(h==2) return;
- *(uint64_t*)(p + 0+2*stride)= v;
- *(uint64_t*)(p + 8+2*stride)= v;
- *(uint64_t*)(p + 0+3*stride)= v;
- *(uint64_t*)(p + 8+3*stride)= v;
-#else
- const uint32_t v= size==2 ? val*0x00010001 : val;
- *(uint32_t*)(p + 0+0*stride)= v;
- *(uint32_t*)(p + 4+0*stride)= v;
- if(h==1) return;
- *(uint32_t*)(p + 0+1*stride)= v;
- *(uint32_t*)(p + 4+1*stride)= v;
- if(h==2) return;
- *(uint32_t*)(p + 0+2*stride)= v;
- *(uint32_t*)(p + 4+2*stride)= v;
- *(uint32_t*)(p + 0+3*stride)= v;
- *(uint32_t*)(p + 4+3*stride)= v;
- }else if(w==16){
- *(uint32_t*)(p + 0+0*stride)= val;
- *(uint32_t*)(p + 4+0*stride)= val;
- *(uint32_t*)(p + 8+0*stride)= val;
- *(uint32_t*)(p +12+0*stride)= val;
- *(uint32_t*)(p + 0+1*stride)= val;
- *(uint32_t*)(p + 4+1*stride)= val;
- *(uint32_t*)(p + 8+1*stride)= val;
- *(uint32_t*)(p +12+1*stride)= val;
- if(h==2) return;
- *(uint32_t*)(p + 0+2*stride)= val;
- *(uint32_t*)(p + 4+2*stride)= val;
- *(uint32_t*)(p + 8+2*stride)= val;
- *(uint32_t*)(p +12+2*stride)= val;
- *(uint32_t*)(p + 0+3*stride)= val;
- *(uint32_t*)(p + 4+3*stride)= val;
- *(uint32_t*)(p + 8+3*stride)= val;
- *(uint32_t*)(p +12+3*stride)= val;
-#endif
- }else
- assert(0);
- assert(h==4);
-}
-
-#endif /* AVCODEC_RECTANGLE_H */
+++ /dev/null
-/*
- * Copyright (c) 2000-2002 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * rl header.
- */
-
-#ifndef AVCODEC_RL_H
-#define AVCODEC_RL_H
-
-#include <stdint.h>
-#include "get_bits.h"
-
-/* run length table */
-#define MAX_RUN 64
-#define MAX_LEVEL 64
-
-/** RLTable. */
-typedef struct RLTable {
- int n; ///< number of entries of table_vlc minus 1
- int last; ///< number of values for last = 0
- const uint16_t (*table_vlc)[2];
- const int8_t *table_run;
- const int8_t *table_level;
- uint8_t *index_run[2]; ///< encoding only
- int8_t *max_level[2]; ///< encoding & decoding
- int8_t *max_run[2]; ///< encoding & decoding
- VLC vlc; ///< decoding only deprecated FIXME remove
- RL_VLC_ELEM *rl_vlc[32]; ///< decoding only
-} RLTable;
-
-/**
- *
- * @param static_store static uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3] which will hold
- * the level and run tables, if this is NULL av_malloc() will be used
- */
-void init_rl(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
-void init_vlc_rl(RLTable *rl);
-
-#define INIT_VLC_RL(rl, static_size)\
-{\
- int q;\
- static RL_VLC_ELEM rl_vlc_table[32][static_size];\
- INIT_VLC_STATIC(&rl.vlc, 9, rl.n + 1,\
- &rl.table_vlc[0][1], 4, 2,\
- &rl.table_vlc[0][0], 4, 2, static_size);\
-\
- if(!rl.rl_vlc[0]){\
- for(q=0; q<32; q++)\
- rl.rl_vlc[q]= rl_vlc_table[q];\
-\
- init_vlc_rl(&rl);\
- }\
-}
-
-static inline int get_rl_index(const RLTable *rl, int last, int run, int level)
-{
- int index;
- index = rl->index_run[last][run];
- if (index >= rl->n)
- return rl->n;
- if (level > rl->max_level[last][run])
- return rl->n;
- return index + level - 1;
-}
-
-#endif /* AVCODEC_RL_H */
+++ /dev/null
-/*
- * RLE encoder
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_RLE_H
-#define AVCODEC_RLE_H
-
-#include <stdint.h>
-
-/**
- * RLE compress the row, with maximum size of out_size. Value before repeated bytes is (count ^ xor_rep) + add_rep.
- * Value before raw bytes is (count ^ xor_raw) + add_raw.
- * @param outbuf Output buffer
- * @param out_size Maximum output size
- * @param ptr Input buffer
- * @param bpp Bytes per pixel
- * @param w Image width
- * @return Size of output in bytes, or -1 if larger than out_size
- */
-int ff_rle_encode(uint8_t *outbuf, int out_size, const uint8_t *inbuf, int bpp, int w,
- int add_rep, int xor_rep, int add_raw, int xor_raw);
-
-#endif /* AVCODEC_RLE_H */
+++ /dev/null
-/*
- * Copyright (C) 2003 Mike Melanson
- * Copyright (C) 2003 Dr. Tim Ferguson
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ROQVIDEO_H
-#define AVCODEC_ROQVIDEO_H
-
-#include "libavutil/lfg.h"
-#include "avcodec.h"
-#include "dsputil.h"
-
-typedef struct {
- unsigned char y[4];
- unsigned char u, v;
-} roq_cell;
-
-typedef struct {
- int idx[4];
-} roq_qcell;
-
-typedef struct {
- int d[2];
-} motion_vect;
-
-struct RoqTempData;
-
-typedef struct RoqContext {
-
- AVCodecContext *avctx;
- DSPContext dsp;
- AVFrame frames[2];
- AVFrame *last_frame;
- AVFrame *current_frame;
- int first_frame;
-
- roq_cell cb2x2[256];
- roq_qcell cb4x4[256];
-
- const unsigned char *buf;
- int size;
- int width, height;
-
- /* Encoder only data */
- AVLFG randctx;
- uint64_t lambda;
-
- motion_vect *this_motion4;
- motion_vect *last_motion4;
-
- motion_vect *this_motion8;
- motion_vect *last_motion8;
-
- unsigned int framesSinceKeyframe;
-
- AVFrame *frame_to_enc;
- uint8_t *out_buf;
- struct RoqTempData *tmpData;
-} RoqContext;
-
-#define RoQ_INFO 0x1001
-#define RoQ_QUAD_CODEBOOK 0x1002
-#define RoQ_QUAD_VQ 0x1011
-#define RoQ_SOUND_MONO 0x1020
-#define RoQ_SOUND_STEREO 0x1021
-
-#define RoQ_ID_MOT 0x00
-#define RoQ_ID_FCC 0x01
-#define RoQ_ID_SLD 0x02
-#define RoQ_ID_CCC 0x03
-
-void ff_apply_vector_2x2(RoqContext *ri, int x, int y, roq_cell *cell);
-void ff_apply_vector_4x4(RoqContext *ri, int x, int y, roq_cell *cell);
-
-void ff_apply_motion_4x4(RoqContext *ri, int x, int y, int deltax, int deltay);
-
-void ff_apply_motion_8x8(RoqContext *ri, int x, int y, int deltax, int deltay);
-
-#endif /* AVCODEC_ROQVIDEO_H */
+++ /dev/null
-/*
- * RTJpeg decoding functions
- * copyright (c) 2006 Reimar Doeffinger
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_RTJPEG_H
-#define AVCODEC_RTJPEG_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-typedef struct {
- int w, h;
- DSPContext *dsp;
- uint8_t scan[64];
- uint32_t lquant[64];
- uint32_t cquant[64];
- DECLARE_ALIGNED(16, DCTELEM, block)[64];
-} RTJpegContext;
-
-void rtjpeg_decode_init(RTJpegContext *c, DSPContext *dsp,
- int width, int height,
- const uint32_t *lquant, const uint32_t *cquant);
-
-int rtjpeg_decode_frame_yuv420(RTJpegContext *c, AVFrame *f,
- const uint8_t *buf, int buf_size);
-#endif /* AVCODEC_RTJPEG_H */
+++ /dev/null
-/*
- * RealVideo 3 decoder
- * copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * miscellaneous RV30 tables
- */
-
-#ifndef AVCODEC_RV30DATA_H
-#define AVCODEC_RV30DATA_H
-
-#include <stdint.h>
-
-/** DC quantizer mapping for RV30 */
-static const uint8_t rv30_luma_dc_quant[32] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 22, 22, 23, 23, 23, 24, 24, 25, 25
-};
-
-/**
- * This table is used for storing the differences
- * between the predicted and the real intra type.
- */
-static const uint8_t rv30_itype_code[9*9*2] = {
- 0, 0, 0, 1, 1, 0, 1, 1, 0, 2, 2, 0, 0, 3, 3, 0, 1, 2,
- 2, 1, 0, 4, 4, 0, 3, 1, 1, 3, 0, 5, 5, 0, 2, 2, 1, 4,
- 4, 1, 0, 6, 3, 2, 1, 5, 2, 3, 5, 1, 6, 0, 0, 7, 4, 2,
- 2, 4, 3, 3, 6, 1, 1, 6, 7, 0, 0, 8, 5, 2, 4, 3, 2, 5,
- 3, 4, 1, 7, 4, 4, 7, 1, 8, 0, 6, 2, 3, 5, 5, 3, 2, 6,
- 1, 8, 2, 7, 7, 2, 8, 1, 5, 4, 4, 5, 3, 6, 6, 3, 8, 2,
- 4, 6, 5, 5, 6, 4, 2, 8, 7, 3, 3, 7, 6, 5, 5, 6, 7, 4,
- 4, 7, 8, 3, 3, 8, 7, 5, 8, 4, 5, 7, 4, 8, 6, 6, 7, 6,
- 5, 8, 8, 5, 6, 7, 8, 6, 7, 7, 6, 8, 8, 7, 7, 8, 8, 8,
-};
-
-/**
- * This table is used for retrieving the current intra type
- * based on its neighbors and adjustment provided by
- * code read and decoded before.
- *
- * This is really a three-dimensional matrix with dimensions
- * [-1..9][-1..9][0..9]. The first and second coordinates are
- * detemined by the top and left neighbors (-1 if unavailable).
- */
-static const uint8_t rv30_itype_from_context[900] = {
- 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 2, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 2, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
-
- 0, 1, 9, 9, 9, 9, 9, 9, 9,
- 0, 2, 1, 6, 4, 8, 5, 7, 3,
- 1, 0, 2, 6, 5, 4, 3, 8, 7,
- 2, 8, 0, 1, 7, 4, 3, 6, 5,
- 2, 0, 1, 3, 8, 5, 4, 7, 6,
- 2, 0, 1, 4, 6, 7, 8, 3, 5,
- 0, 1, 5, 2, 6, 3, 8, 4, 7,
- 0, 1, 6, 2, 4, 7, 5, 8, 3,
- 2, 7, 0, 1, 4, 8, 6, 3, 5,
- 2, 8, 0, 1, 7, 3, 4, 5, 6,
-
- 1, 0, 9, 9, 9, 9, 9, 9, 9,
- 1, 2, 5, 6, 3, 0, 4, 8, 7,
- 1, 6, 2, 5, 3, 0, 4, 8, 7,
- 2, 1, 7, 6, 8, 3, 5, 0, 4,
- 1, 2, 5, 3, 6, 8, 4, 7, 0,
- 1, 6, 2, 0, 4, 5, 8, 7, 3,
- 1, 5, 2, 6, 3, 8, 4, 0, 7,
- 1, 6, 0, 2, 4, 5, 7, 3, 8,
- 2, 1, 7, 6, 0, 8, 5, 4, 3,
- 1, 2, 7, 8, 3, 4, 5, 6, 0,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 2, 1, 8, 7, 6, 5, 4, 3,
- 1, 2, 0, 6, 5, 7, 4, 8, 3,
- 2, 8, 7, 1, 0, 6, 4, 3, 5,
- 2, 0, 8, 1, 3, 7, 5, 4, 6,
- 2, 0, 4, 1, 7, 8, 6, 3, 5,
- 2, 0, 1, 5, 8, 4, 6, 7, 3,
- 2, 0, 6, 1, 4, 7, 8, 5, 3,
- 2, 7, 8, 1, 0, 5, 4, 6, 3,
- 2, 8, 7, 1, 0, 4, 3, 6, 5,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 2, 1, 3, 5, 8, 6, 4, 7,
- 1, 0, 2, 5, 3, 6, 4, 8, 7,
- 2, 8, 1, 0, 3, 5, 7, 6, 4,
- 3, 2, 5, 8, 1, 4, 6, 7, 0,
- 4, 2, 0, 6, 1, 5, 8, 3, 7,
- 5, 3, 1, 2, 8, 6, 4, 0, 7,
- 1, 6, 0, 2, 4, 5, 8, 3, 7,
- 2, 7, 0, 1, 5, 4, 8, 6, 3,
- 2, 8, 3, 5, 1, 0, 7, 6, 4,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 2, 0, 6, 1, 4, 7, 5, 8, 3,
- 1, 6, 2, 0, 4, 5, 3, 7, 8,
- 2, 8, 7, 6, 4, 0, 1, 5, 3,
- 4, 2, 1, 0, 6, 8, 3, 5, 7,
- 4, 2, 6, 0, 1, 5, 7, 8, 3,
- 1, 2, 5, 0, 6, 3, 4, 7, 8,
- 6, 4, 0, 1, 2, 7, 5, 3, 8,
- 2, 7, 4, 6, 0, 1, 8, 5, 3,
- 2, 8, 7, 4, 6, 1, 3, 5, 0,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 5, 1, 2, 3, 6, 8, 0, 4, 7,
- 1, 5, 6, 3, 2, 0, 4, 8, 7,
- 2, 1, 5, 3, 6, 8, 7, 4, 0,
- 5, 3, 1, 2, 6, 8, 4, 7, 0,
- 1, 6, 2, 4, 5, 8, 0, 3, 7,
- 5, 1, 3, 6, 2, 0, 8, 4, 7,
- 1, 6, 5, 2, 0, 4, 3, 7, 8,
- 2, 7, 1, 6, 5, 0, 8, 3, 4,
- 2, 5, 1, 3, 6, 8, 4, 0, 7,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 1, 6, 2, 0, 5, 4, 3, 7, 8,
- 1, 6, 5, 4, 2, 3, 0, 7, 8,
- 2, 1, 6, 7, 4, 8, 5, 3, 0,
- 2, 1, 6, 5, 8, 4, 3, 0, 7,
- 6, 4, 1, 2, 0, 5, 7, 8, 3,
- 1, 6, 5, 2, 3, 0, 4, 8, 7,
- 6, 1, 4, 0, 2, 7, 5, 3, 8,
- 2, 7, 4, 6, 1, 5, 0, 8, 3,
- 2, 1, 6, 8, 4, 7, 3, 5, 0,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 2, 0, 4, 7, 6, 1, 8, 5, 3,
- 6, 1, 2, 0, 4, 7, 5, 8, 3,
- 2, 7, 8, 0, 1, 6, 4, 3, 5,
- 2, 4, 0, 8, 3, 1, 7, 6, 5,
- 4, 2, 7, 0, 6, 1, 8, 5, 3,
- 2, 1, 0, 8, 5, 6, 7, 4, 3,
- 2, 6, 4, 1, 7, 0, 5, 8, 3,
- 2, 7, 4, 0, 8, 6, 1, 5, 3,
- 2, 8, 7, 4, 1, 0, 3, 6, 5,
-
- 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 2, 0, 8, 1, 3, 4, 6, 5, 7,
- 1, 2, 0, 6, 8, 5, 7, 3, 4,
- 2, 8, 7, 1, 0, 3, 6, 5, 4,
- 8, 3, 2, 5, 1, 0, 4, 7, 6,
- 2, 0, 4, 8, 5, 1, 7, 6, 3,
- 2, 1, 0, 8, 5, 3, 6, 4, 7,
- 2, 1, 6, 0, 8, 4, 5, 7, 3,
- 2, 7, 8, 4, 0, 6, 1, 5, 3,
- 2, 8, 3, 0, 7, 4, 1, 6, 5,
-};
-
-/**
- * Loop filter limits are taken from this table.
- */
-static const uint8_t rv30_loop_filt_lim[32] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5
-};
-#endif /* AVCODEC_RV30DATA_H */
+++ /dev/null
-/*
- * RV30/40 decoder common data declarations
- * Copyright (c) 2007 Mike Melanson, Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * RV30 and RV40 decoder common data declarations
- */
-
-#ifndef AVCODEC_RV34_H
-#define AVCODEC_RV34_H
-
-#include "avcodec.h"
-#include "dsputil.h"
-#include "mpegvideo.h"
-
-#include "h264pred.h"
-
-#define MB_TYPE_SEPARATE_DC 0x01000000
-#define IS_SEPARATE_DC(a) ((a) & MB_TYPE_SEPARATE_DC)
-
-/**
- * RV30 and RV40 Macroblock types
- */
-enum RV40BlockTypes{
- RV34_MB_TYPE_INTRA, ///< Intra macroblock
- RV34_MB_TYPE_INTRA16x16, ///< Intra macroblock with DCs in a separate 4x4 block
- RV34_MB_P_16x16, ///< P-frame macroblock, one motion frame
- RV34_MB_P_8x8, ///< P-frame macroblock, 8x8 motion compensation partitions
- RV34_MB_B_FORWARD, ///< B-frame macroblock, forward prediction
- RV34_MB_B_BACKWARD, ///< B-frame macroblock, backward prediction
- RV34_MB_SKIP, ///< Skipped block
- RV34_MB_B_DIRECT, ///< Bidirectionally predicted B-frame macroblock, no motion vectors
- RV34_MB_P_16x8, ///< P-frame macroblock, 16x8 motion compensation partitions
- RV34_MB_P_8x16, ///< P-frame macroblock, 8x16 motion compensation partitions
- RV34_MB_B_BIDIR, ///< Bidirectionally predicted B-frame macroblock, two motion vectors
- RV34_MB_P_MIX16x16, ///< P-frame macroblock with DCs in a separate 4x4 block, one motion vector
- RV34_MB_TYPES
-};
-
-/**
- * VLC tables used by the decoder
- *
- * Intra frame VLC sets do not contain some of those tables.
- */
-typedef struct RV34VLC{
- VLC cbppattern[2]; ///< VLCs used for pattern of coded block patterns decoding
- VLC cbp[2][4]; ///< VLCs used for coded block patterns decoding
- VLC first_pattern[4]; ///< VLCs used for decoding coefficients in the first subblock
- VLC second_pattern[2]; ///< VLCs used for decoding coefficients in the subblocks 2 and 3
- VLC third_pattern[2]; ///< VLCs used for decoding coefficients in the last subblock
- VLC coefficient; ///< VLCs used for decoding big coefficients
-}RV34VLC;
-
-/** essential slice information */
-typedef struct SliceInfo{
- int type; ///< slice type (intra, inter)
- int quant; ///< quantizer used for this slice
- int vlc_set; ///< VLCs used for this slice
- int start, end; ///< start and end macroblocks of the slice
- int width; ///< coded width
- int height; ///< coded height
- int pts; ///< frame timestamp
-}SliceInfo;
-
-/** decoder context */
-typedef struct RV34DecContext{
- MpegEncContext s;
- int8_t *intra_types_hist;///< old block types, used for prediction
- int8_t *intra_types; ///< block types
- int intra_types_stride;///< block types array stride
- const uint8_t *luma_dc_quant_i;///< luma subblock DC quantizer for intraframes
- const uint8_t *luma_dc_quant_p;///< luma subblock DC quantizer for interframes
-
- RV34VLC *cur_vlcs; ///< VLC set used for current frame decoding
- int bits; ///< slice size in bits
- H264PredContext h; ///< functions for 4x4 and 16x16 intra block prediction
- SliceInfo si; ///< current slice information
-
- int *mb_type; ///< internal macroblock types
- int block_type; ///< current block type
- int luma_vlc; ///< which VLC set will be used for decoding of luma blocks
- int chroma_vlc; ///< which VLC set will be used for decoding of chroma blocks
- int is16; ///< current block has additional 16x16 specific features or not
- int dmv[4][2]; ///< differential motion vectors for the current macroblock
-
- int rv30; ///< indicates which RV variasnt is currently decoded
- int rpr; ///< one field size in RV30 slice header
-
- int cur_pts, last_pts, next_pts;
-
- uint16_t *cbp_luma; ///< CBP values for luma subblocks
- uint8_t *cbp_chroma; ///< CBP values for chroma subblocks
- int *deblock_coefs; ///< deblock coefficients for each macroblock
-
- /** 8x8 block available flags (for MV prediction) */
- DECLARE_ALIGNED(8, uint32_t, avail_cache)[3*4];
-
- int (*parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si);
- int (*decode_mb_info)(struct RV34DecContext *r);
- int (*decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst);
- void (*loop_filter)(struct RV34DecContext *r, int row);
-}RV34DecContext;
-
-/**
- * common decoding functions
- */
-int ff_rv34_get_start_offset(GetBitContext *gb, int blocks);
-int ff_rv34_decode_init(AVCodecContext *avctx);
-int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt);
-int ff_rv34_decode_end(AVCodecContext *avctx);
-
-#endif /* AVCODEC_RV34_H */
+++ /dev/null
-/*
- * RealVideo 4 decoder
- * copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * miscellaneous RV30/40 tables
- */
-
-#ifndef AVCODEC_RV34DATA_H
-#define AVCODEC_RV34DATA_H
-
-#include <stdint.h>
-
-/**
- * number of ones in nibble minus one
- */
-static const uint8_t rv34_count_ones[16] = {
- 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3
-};
-
-/**
- * values used to reconstruct coded block pattern
- */
-static const uint8_t rv34_cbp_code[16] = {
- 0x00, 0x20, 0x10, 0x30, 0x02, 0x22, 0x12, 0x32,
- 0x01, 0x21, 0x11, 0x31, 0x03, 0x23, 0x13, 0x33
-};
-
-/**
- * precalculated results of division by three and modulo three for values 0-107
- *
- * A lot of four-tuples in RV40 are represented as c0*27+c1*9+c2*3+c3.
- * This table allows conversion from a value back to a vector.
- */
-static const uint8_t modulo_three_table[108][4] = {
- { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 2 }, { 0, 0, 1, 0 },
- { 0, 0, 1, 1 }, { 0, 0, 1, 2 }, { 0, 0, 2, 0 }, { 0, 0, 2, 1 },
- { 0, 0, 2, 2 }, { 0, 1, 0, 0 }, { 0, 1, 0, 1 }, { 0, 1, 0, 2 },
- { 0, 1, 1, 0 }, { 0, 1, 1, 1 }, { 0, 1, 1, 2 }, { 0, 1, 2, 0 },
- { 0, 1, 2, 1 }, { 0, 1, 2, 2 }, { 0, 2, 0, 0 }, { 0, 2, 0, 1 },
- { 0, 2, 0, 2 }, { 0, 2, 1, 0 }, { 0, 2, 1, 1 }, { 0, 2, 1, 2 },
- { 0, 2, 2, 0 }, { 0, 2, 2, 1 }, { 0, 2, 2, 2 }, { 1, 0, 0, 0 },
- { 1, 0, 0, 1 }, { 1, 0, 0, 2 }, { 1, 0, 1, 0 }, { 1, 0, 1, 1 },
- { 1, 0, 1, 2 }, { 1, 0, 2, 0 }, { 1, 0, 2, 1 }, { 1, 0, 2, 2 },
- { 1, 1, 0, 0 }, { 1, 1, 0, 1 }, { 1, 1, 0, 2 }, { 1, 1, 1, 0 },
- { 1, 1, 1, 1 }, { 1, 1, 1, 2 }, { 1, 1, 2, 0 }, { 1, 1, 2, 1 },
- { 1, 1, 2, 2 }, { 1, 2, 0, 0 }, { 1, 2, 0, 1 }, { 1, 2, 0, 2 },
- { 1, 2, 1, 0 }, { 1, 2, 1, 1 }, { 1, 2, 1, 2 }, { 1, 2, 2, 0 },
- { 1, 2, 2, 1 }, { 1, 2, 2, 2 }, { 2, 0, 0, 0 }, { 2, 0, 0, 1 },
- { 2, 0, 0, 2 }, { 2, 0, 1, 0 }, { 2, 0, 1, 1 }, { 2, 0, 1, 2 },
- { 2, 0, 2, 0 }, { 2, 0, 2, 1 }, { 2, 0, 2, 2 }, { 2, 1, 0, 0 },
- { 2, 1, 0, 1 }, { 2, 1, 0, 2 }, { 2, 1, 1, 0 }, { 2, 1, 1, 1 },
- { 2, 1, 1, 2 }, { 2, 1, 2, 0 }, { 2, 1, 2, 1 }, { 2, 1, 2, 2 },
- { 2, 2, 0, 0 }, { 2, 2, 0, 1 }, { 2, 2, 0, 2 }, { 2, 2, 1, 0 },
- { 2, 2, 1, 1 }, { 2, 2, 1, 2 }, { 2, 2, 2, 0 }, { 2, 2, 2, 1 },
- { 2, 2, 2, 2 }, { 3, 0, 0, 0 }, { 3, 0, 0, 1 }, { 3, 0, 0, 2 },
- { 3, 0, 1, 0 }, { 3, 0, 1, 1 }, { 3, 0, 1, 2 }, { 3, 0, 2, 0 },
- { 3, 0, 2, 1 }, { 3, 0, 2, 2 }, { 3, 1, 0, 0 }, { 3, 1, 0, 1 },
- { 3, 1, 0, 2 }, { 3, 1, 1, 0 }, { 3, 1, 1, 1 }, { 3, 1, 1, 2 },
- { 3, 1, 2, 0 }, { 3, 1, 2, 1 }, { 3, 1, 2, 2 }, { 3, 2, 0, 0 },
- { 3, 2, 0, 1 }, { 3, 2, 0, 2 }, { 3, 2, 1, 0 }, { 3, 2, 1, 1 },
- { 3, 2, 1, 2 }, { 3, 2, 2, 0 }, { 3, 2, 2, 1 }, { 3, 2, 2, 2 },
-};
-
-/**
- * quantizer values used for AC and DC coefficients in chroma blocks
- */
-static const uint8_t rv34_chroma_quant[2][32] = {
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 17, 18, 19, 20, 20, 21, 22, 22, 23, 23, 24, 24, 25, 25 },
- { 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 15, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23 }
-};
-
-/**
- * This table is used for dequantizing.
- */
-static const uint16_t rv34_qscale_tab[32] = {
- 60, 67, 76, 85, 96, 108, 121, 136,
- 152, 171, 192, 216, 242, 272, 305, 341,
- 383, 432, 481, 544, 606, 683, 767, 854,
- 963, 1074, 1212, 1392, 1566, 1708, 1978, 2211
-};
-
-/**
- * 4x4 dezigzag pattern
- */
-static const uint8_t rv34_dezigzag[16] = {
- 0, 1, 8, 16,
- 9, 2, 3, 10,
- 17, 24, 25, 18,
- 11, 19, 26, 27
-};
-
-/**
- * tables used to translate a quantizer value into a VLC set for decoding
- * The first table is used for intraframes.
- */
-static const uint8_t rv34_quant_to_vlc_set[2][31] = {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 0 },
- { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3,
- 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6 },
-};
-
-/**
- * table for obtaining the quantizer difference
- * @todo Use with modified_quant_tab from h263data.h.
- */
-static const uint8_t rv34_dquant_tab[2][32]={
-// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-{
- 0, 3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9,10,11,12,13,14,15,16,17,18,18,19,20,21,22,23,24,25,26,27,28
-},{
- 0, 2, 3, 4, 5, 6, 7, 8, 9,10,11,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,31,31,26
-}
-};
-
-/**
- * maximum number of macroblocks for each of the possible slice offset sizes
- * @todo This is the same as ff_mba_max, maybe use it instead.
- */
-static const uint16_t rv34_mb_max_sizes[6] = { 0x2F, 0x62, 0x18B, 0x62F, 0x18BF, 0x23FF };
-/**
- * bits needed to code the slice offset for the given size
- * @todo This is the same as ff_mba_length, maybe use it instead.
- */
-static const uint8_t rv34_mb_bits_sizes[6] = { 6, 7, 9, 11, 13, 14 };
-
-#endif /* AVCODEC_RV34DATA_H */
+++ /dev/null
-/*
- * RealVideo 3/4 decoder
- * Copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * RV30/40 VLC tables
- */
-
-#ifndef AVCODEC_RV34VLC_H
-#define AVCODEC_RV34VLC_H
-
-#include <stdint.h>
-
-#define NUM_INTRA_TABLES 5
-#define NUM_INTER_TABLES 7
-
-#define CBPPAT_VLC_SIZE 1296
-#define CBP_VLC_SIZE 16
-#define FIRSTBLK_VLC_SIZE 864
-#define OTHERBLK_VLC_SIZE 108
-#define COEFF_VLC_SIZE 32
-
-static const uint8_t rv34_table_intra_cbppat[NUM_INTRA_TABLES][2][CBPPAT_VLC_SIZE] = {
- {
- {
- 8, 10, 10, 10, 10, 10, 11, 10, 10, 11, 10, 10, 10, 10, 10, 6,
- 12, 12, 13, 12, 13, 12, 13, 11, 13, 13, 13, 12, 13, 12, 12, 8,
- 14, 13, 16, 13, 15, 13, 16, 12, 16, 16, 16, 14, 16, 13, 14, 10,
- 12, 13, 12, 12, 13, 13, 13, 12, 13, 13, 12, 12, 13, 12, 12, 8,
- 13, 14, 14, 12, 14, 14, 14, 12, 14, 15, 14, 12, 14, 13, 13, 8,
- 16, 16, 16, 12, 16, 16, 16, 13, 16, 16, 16, 13, 16, 14, 14, 9,
- 14, 16, 13, 13, 16, 16, 16, 14, 15, 16, 14, 13, 15, 15, 14, 10,
- 16, 16, 14, 13, 16, 16, 16, 13, 16, 16, 16, 13, 16, 15, 14, 10,
- 16, 16, 16, 11, 16, 16, 16, 12, 16, 16, 16, 12, 16, 16, 15, 9,
- 12, 13, 13, 13, 12, 12, 14, 12, 12, 14, 13, 12, 12, 12, 12, 8,
- 14, 14, 16, 14, 13, 12, 14, 12, 14, 15, 14, 13, 13, 12, 13, 8,
- 16, 16, 16, 15, 16, 13, 16, 13, 16, 16, 16, 15, 16, 13, 15, 10,
- 14, 16, 14, 14, 14, 14, 15, 13, 14, 16, 14, 13, 13, 13, 13, 9,
- 16, 16, 16, 14, 16, 14, 16, 12, 16, 16, 14, 13, 14, 13, 13, 8,
- 16, 16, 16, 14, 16, 14, 16, 13, 16, 16, 16, 14, 16, 14, 14, 9,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 14, 10,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 16, 14, 16, 15, 14, 9,
- 16, 16, 16, 13, 16, 16, 16, 12, 16, 16, 16, 13, 16, 15, 15, 8,
- 14, 16, 16, 16, 14, 14, 16, 14, 16, 16, 16, 15, 13, 13, 14, 10,
- 16, 16, 16, 16, 15, 13, 16, 13, 16, 16, 16, 16, 16, 13, 14, 10,
- 16, 16, 16, 16, 16, 11, 16, 12, 16, 16, 16, 16, 16, 12, 16, 9,
- 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 14, 14, 10,
- 16, 16, 16, 16, 16, 15, 16, 13, 16, 16, 16, 15, 16, 13, 14, 9,
- 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 16, 16, 13, 14, 8,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 11,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 14, 9,
- 16, 16, 16, 14, 16, 15, 16, 11, 16, 16, 16, 14, 16, 14, 14, 8,
- 12, 13, 13, 13, 13, 13, 14, 12, 12, 13, 12, 12, 12, 12, 12, 8,
- 14, 14, 16, 14, 15, 14, 16, 13, 14, 15, 14, 13, 14, 13, 13, 9,
- 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 16, 14, 16, 14, 16, 10,
- 14, 15, 14, 14, 15, 14, 15, 13, 14, 14, 13, 12, 13, 13, 13, 9,
- 15, 16, 15, 14, 16, 16, 16, 13, 15, 16, 14, 12, 14, 13, 13, 8,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 16, 13, 16, 14, 14, 9,
- 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 13, 13, 16, 16, 14, 10,
- 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 15, 13, 16, 14, 14, 9,
- 16, 16, 16, 12, 16, 16, 16, 13, 16, 16, 16, 12, 16, 16, 15, 8,
- 13, 14, 14, 14, 14, 14, 16, 13, 13, 14, 14, 13, 12, 12, 12, 8,
- 16, 16, 16, 14, 15, 14, 16, 13, 15, 16, 14, 13, 13, 12, 13, 8,
- 16, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 14, 16, 13, 14, 9,
- 15, 16, 16, 15, 16, 15, 16, 13, 14, 16, 14, 13, 13, 13, 12, 8,
- 16, 16, 16, 14, 16, 14, 15, 12, 15, 15, 14, 12, 13, 12, 12, 7,
- 16, 16, 16, 14, 16, 14, 16, 12, 16, 16, 16, 13, 16, 13, 13, 7,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 14, 14, 16, 14, 13, 9,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 14, 12, 16, 13, 12, 7,
- 16, 16, 16, 12, 16, 16, 16, 11, 16, 16, 15, 12, 16, 13, 13, 6,
- 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 15, 13, 13, 14, 10,
- 16, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 14, 13, 14, 9,
- 16, 16, 16, 16, 16, 13, 16, 13, 16, 16, 16, 16, 16, 12, 14, 8,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 14, 13, 13, 9,
- 16, 16, 16, 16, 16, 14, 16, 13, 16, 16, 16, 13, 14, 12, 12, 7,
- 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 13, 14, 12, 13, 6,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 14, 9,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 13, 15, 13, 12, 7,
- 16, 16, 16, 13, 16, 14, 16, 11, 16, 16, 16, 12, 16, 12, 12, 5,
- 14, 16, 15, 16, 16, 16, 16, 15, 14, 15, 14, 14, 13, 14, 13, 10,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 14, 16, 10,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 11,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 14, 14, 15, 14, 13, 10,
- 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 14, 13, 16, 14, 14, 9,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 15, 9,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 12, 13, 16, 16, 13, 10,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 13, 16, 16, 13, 9,
- 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 15, 12, 16, 16, 14, 8,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 15, 14, 13, 13, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 14, 13, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 15, 9,
- 16, 16, 16, 16, 16, 16, 16, 15, 15, 16, 14, 14, 14, 13, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 14, 12, 13, 12, 12, 7,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 13, 16, 13, 13, 7,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 13, 16, 14, 13, 9,
- 16, 16, 16, 15, 16, 16, 16, 13, 16, 16, 13, 12, 14, 13, 12, 6,
- 16, 16, 16, 13, 16, 16, 16, 12, 16, 16, 14, 10, 15, 12, 12, 5,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 12, 13, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 15, 13, 12, 13, 8,
- 16, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 15, 12, 14, 8,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 13, 13, 13, 8,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 15, 13, 12, 11, 12, 6,
- 16, 16, 16, 15, 16, 14, 16, 12, 16, 16, 16, 12, 13, 10, 12, 5,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 13, 14, 12, 8,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 13, 12, 13, 12, 10, 5,
- 16, 16, 16, 13, 16, 13, 16, 10, 16, 16, 13, 10, 13, 10, 10, 1,
- },
- {
- 2, 7, 7, 8, 7, 8, 9, 8, 7, 9, 8, 8, 8, 8, 9, 7,
- 6, 9, 10, 10, 10, 10, 11, 10, 10, 11, 11, 11, 10, 11, 11, 9,
- 9, 11, 12, 12, 12, 13, 14, 13, 13, 14, 14, 13, 13, 13, 14, 11,
- 6, 10, 9, 10, 10, 11, 11, 11, 10, 11, 10, 11, 11, 11, 11, 9,
- 6, 9, 10, 10, 10, 11, 12, 11, 10, 12, 11, 11, 11, 11, 11, 8,
- 9, 11, 12, 12, 12, 13, 13, 13, 12, 14, 14, 13, 13, 13, 13, 10,
- 9, 13, 11, 13, 13, 14, 14, 13, 13, 14, 13, 13, 14, 14, 14, 12,
- 9, 12, 12, 12, 12, 14, 14, 13, 13, 14, 13, 13, 13, 14, 13, 11,
- 8, 12, 12, 11, 12, 14, 14, 12, 13, 14, 14, 13, 13, 13, 14, 11,
- 6, 10, 10, 11, 9, 10, 12, 11, 10, 12, 11, 11, 10, 11, 11, 9,
- 7, 10, 10, 11, 10, 11, 12, 11, 11, 12, 11, 11, 11, 11, 11, 9,
- 9, 12, 13, 13, 12, 12, 14, 13, 13, 14, 14, 13, 14, 13, 14, 11,
- 8, 11, 11, 12, 11, 12, 12, 12, 11, 13, 12, 12, 12, 12, 12, 10,
- 7, 10, 10, 11, 10, 11, 12, 11, 10, 12, 11, 11, 11, 11, 11, 8,
- 9, 11, 12, 12, 12, 12, 13, 12, 12, 13, 13, 12, 13, 12, 13, 10,
- 10, 13, 13, 14, 14, 14, 15, 14, 14, 15, 14, 15, 14, 14, 14, 12,
- 9, 12, 12, 13, 12, 13, 14, 13, 12, 13, 13, 12, 13, 13, 13, 10,
- 9, 12, 12, 12, 12, 13, 14, 12, 12, 14, 13, 12, 13, 13, 13, 10,
- 9, 12, 13, 13, 11, 13, 14, 13, 13, 14, 14, 14, 12, 13, 13, 11,
- 10, 12, 13, 13, 12, 12, 14, 13, 13, 14, 14, 14, 13, 13, 14, 11,
- 10, 13, 14, 14, 13, 12, 15, 13, 14, 14, 14, 14, 15, 13, 14, 11,
- 11, 14, 14, 14, 13, 14, 15, 14, 14, 15, 15, 14, 13, 14, 14, 12,
- 10, 13, 12, 13, 12, 12, 14, 13, 13, 14, 13, 13, 13, 13, 13, 10,
- 10, 12, 13, 13, 13, 12, 14, 12, 13, 14, 14, 13, 13, 13, 13, 10,
- 13, 15, 16, 16, 15, 15, 16, 16, 15, 16, 15, 16, 16, 16, 16, 14,
- 11, 14, 14, 14, 14, 14, 15, 14, 14, 15, 15, 14, 14, 14, 15, 11,
- 10, 13, 13, 13, 13, 13, 14, 12, 13, 14, 14, 13, 13, 13, 13, 10,
- 6, 10, 10, 11, 10, 11, 12, 11, 10, 12, 10, 11, 10, 11, 11, 9,
- 8, 11, 11, 12, 11, 12, 13, 12, 11, 12, 12, 12, 12, 12, 12, 10,
- 11, 13, 14, 14, 13, 14, 15, 14, 13, 15, 15, 14, 14, 14, 15, 12,
- 7, 11, 10, 12, 11, 12, 12, 12, 11, 12, 11, 12, 11, 12, 12, 10,
- 7, 10, 10, 11, 10, 11, 12, 11, 11, 12, 11, 11, 11, 11, 11, 9,
- 10, 12, 13, 13, 12, 13, 14, 13, 13, 14, 13, 13, 13, 13, 13, 10,
- 10, 13, 12, 14, 13, 14, 14, 14, 13, 14, 12, 14, 15, 14, 14, 11,
- 10, 12, 12, 12, 12, 13, 14, 13, 13, 14, 13, 12, 13, 13, 13, 10,
- 9, 12, 13, 13, 13, 14, 14, 13, 13, 14, 14, 13, 13, 13, 13, 10,
- 7, 10, 10, 11, 10, 11, 12, 11, 10, 12, 12, 11, 9, 11, 11, 9,
- 7, 10, 11, 11, 10, 11, 12, 11, 10, 12, 12, 11, 11, 11, 11, 9,
- 10, 12, 13, 13, 13, 13, 15, 13, 13, 14, 13, 13, 13, 13, 13, 10,
- 8, 11, 11, 11, 11, 11, 12, 11, 11, 12, 12, 11, 11, 12, 11, 9,
- 6, 9, 9, 10, 9, 10, 10, 10, 9, 11, 10, 10, 9, 10, 10, 7,
- 8, 10, 11, 11, 11, 11, 12, 11, 11, 12, 12, 11, 11, 11, 11, 8,
- 10, 13, 13, 13, 13, 14, 14, 13, 13, 14, 13, 13, 13, 13, 13, 11,
- 8, 11, 11, 11, 11, 12, 12, 11, 11, 12, 11, 11, 11, 11, 11, 8,
- 8, 11, 11, 11, 11, 12, 12, 10, 11, 12, 12, 11, 11, 11, 11, 8,
- 10, 13, 13, 13, 12, 13, 14, 13, 12, 14, 14, 14, 10, 13, 13, 11,
- 10, 12, 12, 13, 12, 13, 14, 12, 12, 13, 13, 13, 12, 12, 13, 10,
- 11, 13, 14, 14, 13, 13, 14, 13, 13, 15, 14, 13, 13, 13, 13, 10,
- 10, 12, 13, 13, 12, 13, 14, 13, 13, 14, 14, 13, 12, 13, 13, 11,
- 8, 11, 11, 11, 11, 11, 12, 11, 11, 12, 12, 11, 11, 11, 11, 8,
- 9, 11, 12, 12, 11, 11, 12, 11, 12, 12, 12, 11, 12, 11, 11, 8,
- 12, 15, 14, 14, 14, 15, 15, 14, 14, 15, 15, 14, 14, 14, 15, 12,
- 10, 12, 12, 12, 12, 12, 13, 12, 12, 13, 13, 12, 12, 12, 12, 9,
- 9, 11, 11, 11, 11, 11, 12, 10, 11, 12, 12, 11, 11, 11, 11, 7,
- 10, 13, 13, 13, 13, 14, 15, 14, 13, 14, 14, 14, 12, 14, 15, 12,
- 11, 14, 14, 14, 14, 15, 15, 14, 14, 15, 15, 15, 14, 15, 15, 12,
- 13, 16, 16, 16, 15, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 14,
- 10, 13, 13, 14, 13, 15, 14, 14, 13, 15, 13, 14, 14, 14, 14, 12,
- 10, 13, 13, 13, 13, 13, 14, 13, 13, 14, 13, 13, 13, 13, 14, 11,
- 12, 14, 14, 14, 14, 15, 15, 14, 14, 15, 15, 14, 15, 14, 14, 12,
- 11, 14, 14, 15, 14, 15, 15, 14, 14, 15, 12, 14, 15, 16, 15, 12,
- 11, 13, 13, 14, 13, 14, 14, 14, 14, 14, 13, 13, 14, 14, 14, 11,
- 11, 14, 14, 14, 14, 15, 15, 14, 14, 16, 14, 13, 14, 14, 14, 11,
- 10, 13, 13, 13, 12, 14, 14, 14, 12, 15, 14, 14, 11, 13, 13, 12,
- 10, 12, 13, 14, 12, 13, 14, 13, 13, 14, 14, 13, 12, 13, 13, 11,
- 12, 14, 14, 15, 14, 15, 16, 15, 15, 15, 15, 15, 14, 14, 15, 12,
- 10, 13, 13, 13, 12, 13, 14, 13, 13, 14, 13, 13, 12, 13, 13, 11,
- 9, 11, 11, 12, 11, 12, 12, 11, 11, 12, 12, 11, 11, 11, 11, 9,
- 10, 12, 12, 12, 12, 12, 13, 12, 12, 13, 13, 12, 13, 12, 12, 9,
- 11, 13, 13, 15, 14, 14, 15, 14, 14, 15, 14, 14, 14, 14, 14, 11,
- 10, 12, 12, 12, 12, 12, 13, 12, 12, 13, 11, 11, 12, 12, 12, 8,
- 9, 12, 12, 11, 12, 12, 13, 11, 12, 12, 12, 11, 12, 11, 11, 8,
- 10, 13, 13, 14, 12, 14, 15, 14, 13, 15, 15, 14, 10, 13, 13, 11,
- 11, 13, 14, 13, 13, 14, 14, 13, 13, 14, 14, 14, 11, 13, 13, 11,
- 12, 14, 14, 14, 14, 14, 15, 14, 15, 16, 15, 14, 13, 13, 14, 11,
- 11, 14, 13, 14, 13, 14, 15, 14, 13, 15, 14, 14, 11, 13, 13, 11,
- 9, 12, 12, 12, 11, 12, 13, 11, 12, 13, 12, 11, 10, 11, 11, 8,
- 10, 12, 12, 12, 12, 12, 13, 11, 12, 12, 12, 11, 11, 11, 11, 8,
- 12, 15, 14, 15, 14, 15, 16, 15, 15, 15, 15, 14, 14, 14, 14, 12,
- 10, 12, 12, 12, 12, 12, 13, 11, 12, 13, 12, 11, 11, 11, 11, 8,
- 8, 10, 10, 10, 10, 10, 11, 9, 10, 11, 10, 9, 10, 9, 9, 5,
- },
- },
- {
- {
- 12, 12, 11, 9, 11, 10, 11, 9, 11, 11, 10, 9, 9, 8, 9, 5,
- 14, 13, 14, 11, 14, 11, 13, 10, 14, 13, 12, 10, 12, 10, 11, 6,
- 16, 13, 16, 12, 16, 12, 16, 11, 16, 14, 16, 12, 15, 12, 13, 8,
- 14, 14, 12, 11, 14, 12, 13, 10, 13, 13, 11, 10, 12, 11, 10, 6,
- 16, 15, 14, 11, 16, 13, 14, 10, 15, 14, 13, 10, 13, 11, 11, 7,
- 16, 16, 16, 11, 16, 14, 16, 11, 16, 16, 15, 12, 15, 13, 13, 8,
- 16, 16, 13, 12, 16, 16, 15, 12, 16, 16, 12, 11, 15, 13, 12, 8,
- 16, 16, 14, 11, 16, 16, 16, 11, 16, 16, 14, 11, 15, 14, 13, 8,
- 16, 16, 15, 10, 16, 16, 16, 10, 16, 16, 15, 11, 16, 14, 14, 8,
- 14, 14, 14, 12, 13, 11, 13, 10, 13, 13, 12, 11, 11, 10, 10, 6,
- 16, 15, 16, 13, 13, 11, 14, 11, 15, 14, 13, 11, 12, 10, 11, 7,
- 16, 15, 16, 14, 16, 11, 16, 11, 16, 16, 16, 13, 16, 12, 13, 8,
- 16, 16, 14, 13, 15, 13, 14, 11, 14, 15, 13, 11, 13, 11, 11, 7,
- 16, 16, 15, 13, 15, 13, 14, 11, 16, 15, 14, 11, 13, 11, 11, 7,
- 16, 16, 16, 13, 16, 13, 16, 11, 16, 16, 16, 12, 16, 12, 13, 8,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 14, 13, 15, 14, 13, 9,
- 16, 16, 16, 13, 16, 16, 16, 12, 16, 16, 14, 12, 15, 13, 13, 8,
- 16, 16, 16, 12, 16, 16, 16, 11, 16, 16, 15, 12, 16, 13, 13, 7,
- 16, 16, 16, 16, 13, 12, 16, 12, 16, 16, 14, 13, 12, 11, 12, 8,
- 16, 16, 16, 15, 14, 11, 16, 11, 16, 16, 16, 13, 14, 11, 13, 8,
- 16, 16, 16, 16, 15, 10, 16, 11, 16, 16, 16, 14, 15, 11, 13, 8,
- 16, 16, 16, 16, 16, 14, 16, 13, 16, 16, 14, 14, 14, 12, 13, 9,
- 16, 16, 16, 15, 16, 13, 16, 12, 16, 16, 16, 13, 14, 12, 13, 8,
- 16, 16, 16, 14, 16, 12, 16, 11, 16, 16, 16, 13, 15, 12, 13, 7,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 15, 16, 14, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 14, 16, 13, 13, 8,
- 16, 16, 16, 14, 16, 14, 16, 10, 16, 16, 16, 13, 16, 13, 13, 7,
- 14, 14, 13, 12, 13, 12, 13, 11, 12, 13, 11, 10, 11, 10, 10, 6,
- 16, 16, 15, 13, 16, 13, 15, 11, 14, 14, 13, 11, 13, 11, 11, 7,
- 16, 16, 16, 14, 16, 14, 16, 12, 16, 16, 16, 13, 16, 13, 14, 9,
- 16, 16, 13, 13, 15, 14, 14, 11, 13, 14, 11, 11, 12, 11, 11, 7,
- 16, 16, 15, 12, 16, 14, 15, 11, 14, 14, 12, 11, 13, 11, 11, 7,
- 16, 16, 16, 13, 16, 14, 16, 12, 16, 16, 14, 12, 16, 13, 13, 8,
- 16, 16, 14, 14, 16, 16, 16, 13, 16, 16, 12, 11, 15, 13, 12, 8,
- 16, 16, 15, 13, 16, 16, 16, 12, 16, 16, 13, 11, 16, 13, 12, 8,
- 16, 16, 16, 11, 16, 16, 16, 11, 16, 16, 14, 11, 16, 14, 13, 7,
- 16, 16, 15, 13, 14, 13, 14, 11, 14, 14, 12, 11, 11, 10, 11, 7,
- 16, 16, 16, 13, 14, 12, 15, 11, 15, 14, 13, 11, 12, 11, 11, 7,
- 16, 16, 16, 14, 16, 13, 16, 12, 16, 16, 16, 13, 14, 12, 13, 8,
- 16, 16, 15, 13, 15, 14, 14, 12, 14, 14, 12, 11, 12, 11, 11, 7,
- 16, 16, 14, 12, 15, 13, 14, 11, 15, 14, 13, 11, 12, 11, 11, 6,
- 16, 16, 16, 13, 16, 13, 16, 11, 16, 15, 14, 11, 14, 11, 12, 6,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 13, 12, 14, 13, 12, 8,
- 16, 16, 15, 13, 16, 14, 15, 11, 16, 16, 13, 11, 14, 12, 11, 6,
- 16, 16, 16, 12, 16, 14, 15, 11, 16, 16, 13, 10, 14, 12, 12, 6,
- 16, 16, 16, 16, 16, 14, 16, 13, 16, 16, 14, 13, 12, 11, 12, 8,
- 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 15, 13, 13, 11, 12, 8,
- 16, 16, 16, 15, 16, 12, 16, 12, 16, 16, 16, 14, 14, 11, 13, 7,
- 16, 16, 16, 16, 16, 15, 16, 13, 16, 16, 14, 13, 13, 12, 12, 8,
- 16, 16, 16, 14, 15, 13, 15, 11, 16, 15, 14, 12, 13, 11, 11, 6,
- 16, 16, 16, 14, 16, 12, 15, 11, 16, 16, 15, 12, 14, 11, 12, 6,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 15, 13, 14, 13, 12, 8,
- 16, 16, 16, 14, 16, 14, 16, 12, 16, 16, 14, 12, 13, 12, 11, 6,
- 16, 16, 16, 13, 16, 13, 15, 10, 16, 16, 14, 11, 14, 11, 11, 5,
- 16, 16, 15, 14, 16, 16, 16, 13, 14, 14, 12, 12, 12, 12, 12, 8,
- 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 14, 13, 14, 13, 13, 9,
- 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 16, 13, 15, 9,
- 16, 16, 14, 15, 16, 16, 16, 14, 14, 16, 12, 12, 13, 13, 12, 8,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 15, 13, 12, 14, 12, 12, 8,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 14, 12, 16, 13, 13, 8,
- 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 11, 11, 15, 14, 12, 8,
- 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 12, 11, 15, 13, 12, 8,
- 16, 16, 16, 13, 16, 16, 16, 12, 16, 16, 13, 10, 16, 13, 12, 7,
- 16, 16, 16, 16, 16, 15, 16, 13, 14, 16, 13, 13, 12, 12, 12, 8,
- 16, 16, 16, 15, 16, 14, 16, 13, 16, 16, 14, 13, 13, 12, 12, 8,
- 16, 16, 16, 16, 16, 15, 16, 13, 16, 16, 16, 13, 15, 12, 14, 8,
- 16, 16, 16, 15, 16, 16, 16, 13, 14, 16, 13, 12, 12, 12, 11, 8,
- 16, 16, 16, 14, 16, 14, 16, 12, 14, 14, 13, 11, 13, 11, 11, 6,
- 16, 16, 16, 14, 16, 14, 16, 12, 16, 15, 14, 11, 14, 11, 12, 6,
- 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 12, 12, 14, 13, 11, 8,
- 16, 16, 15, 14, 16, 16, 16, 12, 16, 15, 12, 11, 13, 12, 11, 6,
- 16, 16, 16, 13, 16, 14, 16, 11, 16, 14, 13, 10, 14, 11, 11, 5,
- 16, 16, 16, 16, 16, 16, 16, 14, 14, 16, 15, 13, 11, 11, 11, 8,
- 16, 16, 16, 16, 16, 15, 16, 13, 16, 16, 16, 13, 12, 11, 12, 7,
- 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 13, 13, 11, 13, 7,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 14, 13, 12, 12, 11, 7,
- 16, 16, 16, 15, 16, 14, 15, 12, 16, 14, 13, 12, 12, 11, 11, 6,
- 16, 16, 16, 14, 16, 13, 15, 11, 16, 14, 14, 11, 13, 10, 11, 5,
- 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 13, 12, 12, 12, 11, 7,
- 16, 16, 16, 14, 16, 14, 15, 12, 16, 15, 12, 11, 12, 11, 10, 5,
- 16, 16, 16, 13, 16, 13, 14, 10, 16, 14, 12, 9, 12, 10, 9, 3,
- },
- {
- 2, 6, 6, 7, 6, 7, 8, 7, 7, 8, 7, 8, 7, 8, 8, 5,
- 5, 8, 9, 9, 9, 9, 12, 10, 10, 11, 10, 10, 10, 11, 11, 8,
- 9, 10, 13, 12, 13, 12, 15, 13, 13, 14, 13, 14, 13, 13, 14, 11,
- 5, 10, 9, 10, 10, 10, 12, 10, 10, 12, 10, 11, 11, 11, 11, 8,
- 6, 9, 10, 9, 10, 11, 12, 10, 10, 12, 11, 11, 10, 11, 11, 8,
- 9, 11, 12, 11, 12, 13, 14, 12, 13, 14, 14, 12, 13, 13, 13, 11,
- 10, 13, 11, 12, 14, 14, 15, 13, 13, 15, 12, 13, 14, 14, 14, 12,
- 9, 12, 12, 12, 13, 13, 15, 13, 13, 14, 13, 13, 14, 13, 15, 11,
- 8, 11, 12, 10, 12, 13, 14, 12, 13, 14, 14, 13, 13, 13, 14, 11,
- 5, 9, 10, 10, 9, 10, 12, 11, 10, 12, 11, 11, 9, 11, 11, 9,
- 6, 10, 10, 11, 10, 10, 12, 11, 11, 12, 11, 11, 11, 11, 11, 9,
- 9, 11, 13, 13, 12, 11, 14, 12, 13, 15, 13, 13, 14, 13, 14, 11,
- 8, 11, 11, 12, 11, 12, 13, 12, 12, 13, 12, 13, 12, 12, 12, 10,
- 7, 10, 10, 11, 10, 11, 12, 11, 11, 12, 11, 11, 11, 11, 12, 9,
- 9, 12, 12, 12, 12, 12, 14, 12, 13, 14, 13, 13, 13, 13, 13, 11,
- 11, 14, 13, 15, 15, 16, 16, 15, 15, 16, 15, 15, 16, 16, 15, 13,
- 10, 12, 13, 13, 13, 14, 15, 13, 13, 14, 13, 13, 14, 14, 14, 11,
- 9, 12, 12, 12, 13, 13, 14, 12, 13, 14, 14, 13, 13, 13, 14, 11,
- 9, 13, 13, 13, 11, 12, 15, 13, 13, 15, 14, 14, 11, 13, 14, 11,
- 10, 13, 13, 13, 12, 12, 15, 13, 13, 15, 14, 14, 13, 13, 14, 11,
- 10, 12, 13, 13, 12, 11, 14, 12, 13, 15, 13, 13, 13, 13, 14, 11,
- 11, 14, 15, 15, 13, 14, 16, 14, 14, 16, 16, 14, 14, 15, 15, 13,
- 10, 13, 13, 13, 12, 13, 14, 13, 13, 14, 14, 14, 13, 13, 14, 11,
- 10, 12, 13, 13, 13, 12, 14, 13, 13, 14, 14, 13, 13, 13, 13, 11,
- 13, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 12, 15, 15, 15, 14, 15, 16, 14, 15, 16, 16, 15, 16, 15, 15, 13,
- 10, 12, 12, 12, 13, 13, 14, 12, 13, 14, 13, 13, 13, 13, 13, 11,
- 6, 10, 10, 11, 10, 11, 12, 11, 10, 12, 11, 11, 10, 11, 11, 9,
- 8, 11, 12, 12, 12, 12, 13, 12, 12, 13, 12, 13, 12, 13, 13, 10,
- 11, 13, 15, 14, 15, 14, 16, 14, 15, 16, 16, 14, 15, 15, 15, 13,
- 7, 11, 10, 12, 11, 11, 13, 11, 11, 13, 10, 11, 12, 12, 12, 10,
- 7, 11, 11, 11, 11, 11, 13, 11, 11, 13, 11, 12, 12, 12, 12, 9,
- 10, 12, 13, 13, 13, 13, 15, 13, 14, 15, 14, 14, 14, 14, 15, 11,
- 10, 13, 12, 14, 14, 14, 15, 13, 13, 15, 12, 13, 15, 15, 14, 12,
- 10, 13, 12, 12, 13, 13, 15, 14, 13, 15, 13, 13, 14, 14, 14, 11,
- 10, 13, 13, 12, 13, 14, 15, 13, 13, 15, 13, 13, 14, 14, 14, 11,
- 7, 10, 11, 11, 10, 11, 12, 11, 10, 12, 12, 12, 9, 11, 12, 9,
- 7, 11, 11, 11, 11, 11, 13, 11, 11, 13, 12, 12, 11, 12, 12, 9,
- 10, 12, 14, 13, 13, 13, 16, 13, 14, 16, 14, 14, 13, 13, 14, 11,
- 8, 11, 11, 12, 11, 12, 13, 12, 12, 13, 12, 12, 12, 12, 12, 10,
- 6, 9, 9, 10, 9, 10, 11, 10, 10, 11, 10, 10, 10, 10, 10, 8,
- 8, 11, 11, 11, 12, 11, 13, 11, 12, 13, 12, 12, 12, 12, 12, 10,
- 11, 14, 13, 14, 14, 14, 16, 14, 14, 16, 14, 14, 15, 15, 14, 12,
- 9, 12, 11, 12, 12, 12, 13, 12, 12, 13, 12, 12, 12, 12, 12, 10,
- 8, 11, 11, 11, 11, 11, 13, 11, 12, 12, 12, 12, 12, 12, 12, 9,
- 10, 13, 14, 13, 11, 13, 14, 14, 13, 15, 15, 14, 10, 13, 14, 11,
- 10, 13, 13, 13, 12, 13, 14, 13, 13, 14, 14, 14, 13, 13, 13, 11,
- 10, 13, 14, 13, 13, 12, 15, 13, 14, 15, 14, 14, 14, 13, 14, 12,
- 11, 14, 14, 14, 13, 13, 15, 14, 14, 15, 14, 15, 13, 14, 14, 12,
- 9, 11, 12, 12, 11, 11, 13, 12, 12, 13, 12, 12, 12, 12, 12, 10,
- 9, 11, 12, 12, 12, 11, 13, 11, 12, 13, 12, 12, 12, 12, 12, 10,
- 13, 15, 15, 16, 15, 16, 16, 15, 16, 16, 16, 15, 15, 15, 16, 14,
- 10, 13, 13, 13, 13, 13, 14, 13, 13, 14, 13, 13, 13, 13, 13, 11,
- 8, 11, 11, 11, 11, 11, 12, 11, 11, 12, 12, 11, 12, 11, 12, 9,
- 11, 14, 14, 15, 14, 15, 15, 14, 13, 15, 14, 15, 12, 14, 15, 13,
- 12, 15, 15, 15, 15, 15, 16, 15, 15, 16, 16, 16, 15, 16, 15, 13,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 11, 14, 13, 15, 14, 14, 16, 14, 14, 16, 13, 14, 15, 14, 15, 12,
- 11, 14, 13, 14, 14, 14, 16, 15, 14, 16, 14, 14, 15, 15, 15, 12,
- 13, 15, 15, 15, 15, 16, 16, 15, 16, 16, 16, 15, 16, 16, 16, 13,
- 11, 14, 13, 14, 14, 14, 15, 14, 14, 16, 12, 14, 16, 16, 14, 12,
- 11, 14, 14, 14, 14, 15, 16, 15, 14, 16, 13, 14, 16, 15, 14, 12,
- 12, 14, 14, 14, 14, 14, 16, 14, 15, 16, 14, 14, 14, 15, 15, 12,
- 11, 14, 14, 14, 13, 14, 16, 15, 13, 16, 15, 15, 11, 14, 14, 12,
- 11, 14, 14, 15, 14, 14, 16, 14, 14, 15, 14, 14, 13, 15, 15, 12,
- 13, 15, 16, 15, 15, 15, 16, 15, 16, 16, 16, 16, 15, 15, 16, 13,
- 11, 14, 14, 14, 14, 14, 15, 14, 14, 16, 14, 14, 14, 15, 14, 12,
- 9, 12, 12, 12, 12, 12, 13, 12, 12, 13, 12, 13, 12, 12, 12, 10,
- 11, 13, 13, 13, 13, 13, 14, 13, 13, 14, 13, 14, 13, 13, 14, 11,
- 12, 15, 14, 15, 15, 15, 16, 15, 14, 16, 14, 14, 16, 16, 14, 13,
- 10, 12, 12, 12, 12, 12, 14, 12, 13, 13, 12, 12, 13, 13, 13, 10,
- 10, 12, 12, 12, 12, 12, 14, 12, 12, 13, 12, 12, 12, 12, 12, 10,
- 10, 14, 14, 14, 12, 14, 16, 14, 13, 16, 16, 16, 10, 13, 14, 12,
- 11, 14, 14, 14, 13, 14, 16, 14, 14, 16, 15, 14, 12, 13, 14, 12,
- 12, 14, 14, 14, 14, 14, 16, 14, 14, 16, 15, 15, 14, 14, 15, 12,
- 12, 14, 15, 15, 14, 15, 16, 14, 15, 15, 15, 15, 13, 15, 14, 12,
- 9, 12, 12, 12, 12, 13, 13, 12, 12, 13, 13, 12, 11, 12, 12, 10,
- 10, 12, 12, 12, 12, 12, 13, 12, 12, 13, 12, 12, 12, 12, 12, 10,
- 13, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 15, 16, 15, 13,
- 10, 12, 12, 13, 12, 13, 13, 12, 13, 14, 13, 13, 12, 13, 13, 10,
- 7, 10, 10, 10, 10, 10, 11, 10, 10, 11, 10, 10, 10, 10, 10, 7,
- },
- },
- {
- {
- 10, 10, 9, 8, 9, 8, 9, 7, 9, 9, 8, 7, 8, 7, 7, 4,
- 13, 11, 12, 9, 12, 9, 12, 9, 12, 11, 11, 9, 10, 9, 9, 6,
- 15, 12, 15, 11, 14, 10, 14, 10, 14, 13, 13, 11, 13, 11, 12, 7,
- 13, 12, 11, 9, 12, 11, 12, 9, 12, 12, 10, 9, 10, 10, 9, 6,
- 14, 13, 12, 10, 13, 12, 13, 9, 13, 12, 11, 10, 12, 11, 10, 6,
- 16, 14, 14, 10, 15, 13, 14, 10, 15, 15, 14, 11, 14, 12, 12, 8,
- 15, 14, 12, 11, 15, 14, 13, 11, 14, 14, 11, 10, 13, 12, 11, 8,
- 15, 16, 13, 11, 16, 14, 14, 11, 15, 15, 12, 10, 14, 13, 12, 8,
- 16, 15, 14, 10, 16, 14, 14, 10, 16, 15, 14, 10, 14, 13, 12, 7,
- 13, 12, 12, 11, 11, 9, 12, 9, 12, 12, 11, 10, 10, 9, 9, 6,
- 13, 13, 14, 12, 12, 10, 12, 10, 14, 13, 12, 11, 11, 10, 10, 7,
- 16, 14, 16, 13, 14, 11, 15, 10, 16, 15, 14, 12, 14, 11, 12, 8,
- 14, 14, 13, 12, 13, 12, 13, 10, 13, 13, 12, 11, 11, 10, 10, 7,
- 15, 14, 14, 12, 14, 12, 13, 10, 14, 13, 12, 11, 12, 11, 11, 7,
- 16, 15, 16, 13, 15, 13, 15, 10, 16, 15, 14, 12, 14, 12, 12, 7,
- 15, 16, 14, 13, 16, 14, 14, 12, 15, 15, 12, 12, 13, 12, 12, 8,
- 16, 16, 14, 13, 16, 14, 14, 11, 15, 15, 14, 11, 14, 12, 12, 8,
- 16, 16, 15, 12, 16, 14, 15, 10, 16, 16, 13, 12, 14, 13, 12, 7,
- 14, 14, 14, 13, 13, 11, 13, 11, 14, 14, 13, 12, 11, 10, 11, 8,
- 16, 15, 16, 13, 13, 11, 14, 11, 15, 14, 14, 13, 12, 11, 12, 8,
- 15, 15, 16, 14, 14, 10, 14, 10, 16, 15, 15, 13, 14, 10, 12, 8,
- 16, 16, 16, 14, 15, 13, 14, 12, 15, 15, 13, 13, 13, 12, 12, 8,
- 16, 16, 16, 14, 15, 13, 14, 11, 16, 16, 14, 13, 13, 12, 12, 8,
- 16, 16, 16, 14, 16, 12, 15, 11, 16, 15, 15, 13, 14, 12, 12, 8,
- 16, 16, 16, 16, 16, 15, 15, 13, 16, 16, 14, 13, 14, 13, 12, 9,
- 16, 16, 16, 14, 16, 15, 15, 11, 16, 16, 14, 13, 15, 13, 12, 8,
- 16, 16, 16, 14, 16, 14, 14, 10, 16, 16, 15, 13, 14, 12, 12, 7,
- 12, 12, 12, 11, 12, 11, 12, 10, 11, 11, 10, 9, 9, 9, 9, 6,
- 14, 13, 14, 12, 13, 12, 13, 10, 13, 13, 12, 10, 12, 10, 11, 7,
- 16, 14, 16, 13, 15, 13, 16, 12, 15, 14, 14, 12, 14, 12, 13, 8,
- 14, 14, 13, 11, 14, 12, 13, 11, 12, 12, 10, 10, 11, 10, 10, 7,
- 14, 14, 13, 12, 14, 12, 13, 11, 13, 13, 12, 10, 12, 11, 10, 7,
- 16, 15, 15, 12, 16, 14, 15, 11, 16, 14, 13, 11, 14, 12, 12, 8,
- 16, 16, 13, 13, 16, 15, 14, 12, 14, 14, 11, 11, 13, 12, 11, 8,
- 16, 16, 14, 12, 16, 14, 14, 12, 15, 14, 12, 11, 14, 12, 12, 8,
- 16, 15, 14, 11, 16, 15, 15, 11, 16, 15, 13, 11, 14, 13, 12, 8,
- 14, 13, 13, 12, 13, 11, 13, 10, 12, 13, 11, 10, 10, 10, 10, 7,
- 15, 14, 14, 13, 13, 12, 13, 11, 14, 13, 12, 11, 12, 10, 11, 7,
- 16, 15, 16, 14, 15, 12, 15, 11, 16, 14, 14, 12, 14, 11, 12, 8,
- 14, 15, 13, 12, 14, 13, 13, 11, 13, 13, 11, 11, 11, 10, 10, 7,
- 14, 14, 14, 12, 14, 13, 13, 10, 14, 13, 12, 10, 12, 10, 10, 6,
- 16, 15, 15, 13, 16, 13, 15, 11, 15, 14, 13, 11, 13, 11, 11, 7,
- 16, 16, 14, 13, 16, 15, 14, 12, 15, 15, 12, 11, 13, 12, 11, 8,
- 16, 16, 14, 13, 16, 14, 14, 11, 15, 14, 12, 11, 13, 12, 11, 7,
- 16, 16, 15, 12, 16, 14, 14, 11, 15, 15, 13, 11, 14, 12, 11, 6,
- 16, 15, 15, 14, 14, 12, 14, 12, 13, 14, 13, 12, 11, 11, 11, 8,
- 16, 16, 16, 14, 14, 12, 15, 12, 15, 14, 14, 12, 12, 11, 12, 8,
- 16, 16, 16, 15, 14, 12, 15, 12, 16, 15, 14, 13, 13, 11, 12, 8,
- 16, 16, 16, 15, 15, 14, 15, 12, 14, 14, 13, 12, 12, 11, 11, 8,
- 16, 16, 15, 14, 14, 12, 14, 11, 14, 14, 13, 12, 12, 11, 11, 7,
- 16, 16, 16, 14, 15, 12, 14, 11, 15, 15, 14, 12, 13, 11, 12, 7,
- 16, 16, 16, 16, 16, 15, 16, 13, 15, 15, 14, 12, 13, 12, 11, 8,
- 16, 16, 16, 14, 15, 14, 14, 12, 16, 15, 13, 12, 13, 12, 11, 7,
- 16, 16, 16, 13, 16, 13, 14, 10, 16, 15, 14, 11, 13, 11, 11, 6,
- 14, 15, 13, 13, 14, 13, 14, 12, 12, 13, 11, 11, 11, 11, 10, 8,
- 16, 16, 15, 13, 16, 14, 16, 13, 14, 14, 13, 12, 13, 12, 12, 8,
- 16, 16, 16, 14, 16, 14, 16, 13, 16, 14, 15, 13, 15, 13, 13, 9,
- 15, 15, 14, 14, 15, 14, 14, 12, 13, 14, 11, 11, 12, 12, 11, 8,
- 15, 16, 15, 13, 15, 14, 14, 12, 14, 14, 12, 11, 13, 12, 12, 8,
- 16, 16, 16, 13, 16, 15, 15, 13, 16, 15, 14, 11, 15, 12, 13, 8,
- 16, 16, 14, 13, 16, 15, 15, 13, 14, 14, 10, 11, 14, 12, 11, 8,
- 16, 16, 15, 13, 16, 16, 15, 13, 15, 14, 12, 11, 14, 13, 12, 8,
- 16, 16, 15, 13, 16, 15, 16, 12, 16, 14, 13, 10, 15, 13, 12, 7,
- 15, 15, 15, 14, 14, 14, 15, 12, 13, 14, 12, 12, 11, 11, 11, 8,
- 16, 15, 16, 14, 15, 13, 15, 12, 14, 14, 13, 12, 12, 11, 12, 8,
- 16, 16, 16, 15, 16, 14, 16, 13, 16, 15, 14, 12, 14, 11, 13, 8,
- 16, 16, 15, 14, 16, 14, 15, 13, 14, 14, 12, 11, 12, 11, 11, 8,
- 15, 16, 15, 14, 15, 14, 14, 12, 14, 13, 12, 11, 12, 11, 11, 7,
- 16, 16, 16, 14, 16, 13, 16, 12, 15, 14, 13, 11, 13, 11, 12, 7,
- 16, 16, 15, 14, 16, 15, 15, 13, 14, 15, 11, 11, 13, 12, 11, 8,
- 16, 16, 15, 13, 16, 14, 15, 12, 15, 14, 12, 11, 13, 11, 11, 7,
- 16, 16, 15, 13, 16, 14, 16, 12, 15, 14, 13, 10, 13, 11, 11, 6,
- 16, 16, 16, 14, 14, 14, 15, 13, 14, 14, 14, 12, 11, 11, 11, 8,
- 16, 16, 16, 14, 15, 14, 16, 13, 15, 14, 14, 13, 12, 11, 11, 7,
- 16, 16, 16, 16, 15, 13, 16, 12, 15, 15, 14, 12, 13, 10, 12, 7,
- 16, 16, 16, 14, 15, 15, 14, 13, 14, 14, 13, 12, 12, 11, 11, 8,
- 16, 15, 16, 14, 16, 13, 15, 12, 14, 14, 13, 12, 12, 10, 10, 6,
- 16, 15, 16, 14, 16, 13, 16, 11, 16, 14, 13, 11, 13, 10, 11, 6,
- 16, 16, 16, 15, 16, 16, 15, 13, 14, 16, 12, 12, 12, 12, 10, 7,
- 16, 16, 16, 14, 16, 14, 14, 12, 15, 15, 12, 11, 12, 11, 10, 6,
- 16, 16, 16, 13, 16, 13, 15, 10, 15, 14, 13, 10, 13, 10, 10, 4,
- },
- {
- 1, 6, 6, 7, 6, 7, 9, 8, 7, 9, 7, 8, 7, 8, 8, 6,
- 6, 9, 10, 10, 10, 10, 12, 11, 10, 12, 11, 11, 11, 11, 12, 9,
- 9, 10, 13, 11, 13, 12, 14, 13, 14, 14, 14, 14, 14, 14, 14, 12,
- 6, 10, 9, 10, 10, 11, 13, 11, 11, 13, 10, 12, 11, 12, 12, 9,
- 6, 10, 10, 10, 10, 11, 13, 11, 11, 13, 12, 12, 11, 12, 12, 9,
- 9, 11, 13, 12, 13, 14, 15, 13, 14, 16, 14, 14, 14, 14, 15, 12,
- 10, 13, 11, 13, 14, 14, 16, 14, 14, 15, 13, 14, 15, 15, 16, 12,
- 9, 13, 12, 12, 14, 14, 16, 14, 14, 15, 14, 14, 15, 15, 15, 12,
- 8, 11, 12, 11, 13, 14, 15, 13, 13, 15, 14, 14, 13, 15, 15, 11,
- 6, 10, 10, 11, 9, 10, 13, 11, 10, 13, 11, 12, 10, 12, 12, 9,
- 6, 10, 10, 11, 11, 10, 13, 11, 11, 13, 11, 12, 12, 12, 13, 10,
- 9, 12, 13, 13, 13, 12, 16, 13, 14, 15, 14, 14, 15, 14, 15, 12,
- 8, 12, 12, 13, 12, 13, 15, 14, 13, 15, 13, 14, 13, 13, 14, 11,
- 7, 11, 11, 12, 11, 12, 13, 12, 12, 13, 12, 13, 12, 13, 13, 10,
- 9, 12, 13, 13, 13, 13, 16, 13, 13, 15, 14, 14, 14, 15, 15, 12,
- 11, 15, 14, 15, 15, 16, 16, 16, 15, 16, 15, 16, 16, 16, 16, 14,
- 10, 13, 13, 14, 14, 14, 16, 15, 14, 16, 15, 15, 15, 15, 16, 13,
- 9, 12, 13, 13, 13, 14, 16, 14, 13, 15, 14, 14, 14, 16, 15, 12,
- 10, 13, 14, 14, 11, 13, 16, 14, 14, 16, 15, 15, 12, 14, 15, 12,
- 10, 13, 14, 14, 12, 12, 16, 15, 14, 16, 15, 15, 14, 14, 16, 12,
- 9, 12, 13, 14, 13, 11, 16, 13, 14, 15, 13, 14, 14, 14, 15, 12,
- 11, 15, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 13, 14, 14, 13, 14, 16, 15, 14, 16, 16, 16, 14, 15, 16, 13,
- 10, 13, 13, 14, 13, 13, 16, 13, 13, 14, 14, 15, 15, 14, 15, 13,
- 13, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 12, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 12, 13, 14, 13, 13, 14, 13, 13, 14, 13, 14, 14, 14, 15, 12,
- 6, 10, 11, 11, 10, 11, 13, 12, 11, 13, 11, 12, 11, 12, 12, 10,
- 8, 12, 13, 13, 12, 13, 14, 14, 13, 15, 14, 14, 14, 14, 15, 12,
- 12, 14, 16, 15, 15, 15, 16, 15, 16, 16, 16, 16, 16, 16, 16, 14,
- 7, 11, 11, 12, 12, 12, 14, 13, 12, 14, 11, 12, 13, 13, 13, 11,
- 8, 11, 12, 12, 12, 12, 14, 13, 12, 14, 12, 13, 13, 14, 14, 11,
- 11, 13, 14, 14, 14, 14, 16, 15, 15, 16, 15, 15, 16, 16, 16, 13,
- 10, 14, 12, 14, 14, 15, 16, 15, 13, 16, 12, 14, 16, 16, 15, 13,
- 10, 13, 13, 14, 14, 15, 16, 15, 14, 16, 14, 15, 15, 16, 16, 12,
- 10, 13, 14, 13, 14, 14, 16, 15, 14, 16, 15, 15, 14, 16, 16, 13,
- 7, 11, 11, 11, 10, 12, 14, 13, 11, 14, 13, 13, 10, 12, 13, 10,
- 8, 11, 12, 12, 11, 12, 14, 13, 12, 15, 13, 13, 12, 13, 14, 11,
- 11, 13, 14, 14, 14, 14, 16, 15, 14, 16, 15, 16, 16, 16, 16, 14,
- 8, 12, 12, 13, 12, 13, 15, 14, 12, 15, 13, 13, 13, 14, 14, 11,
- 6, 10, 10, 11, 10, 11, 13, 12, 11, 13, 11, 12, 11, 12, 12, 9,
- 9, 12, 13, 13, 13, 13, 14, 13, 13, 15, 14, 14, 14, 14, 14, 12,
- 11, 15, 14, 15, 14, 15, 16, 16, 16, 16, 15, 16, 16, 16, 16, 14,
- 9, 13, 12, 13, 13, 13, 15, 14, 13, 14, 13, 14, 14, 15, 14, 12,
- 9, 12, 12, 12, 12, 13, 14, 13, 13, 14, 13, 13, 13, 13, 14, 11,
- 10, 13, 15, 14, 12, 14, 16, 14, 14, 16, 15, 15, 12, 14, 16, 12,
- 10, 14, 14, 14, 13, 14, 16, 15, 14, 16, 16, 16, 13, 14, 16, 13,
- 11, 13, 14, 14, 14, 13, 16, 14, 14, 16, 15, 15, 15, 15, 16, 13,
- 11, 15, 15, 15, 14, 15, 16, 16, 15, 16, 16, 16, 14, 16, 16, 13,
- 9, 13, 13, 13, 12, 13, 15, 14, 13, 15, 14, 14, 13, 14, 15, 11,
- 9, 12, 12, 13, 12, 12, 14, 13, 13, 14, 13, 14, 14, 14, 14, 11,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 11, 14, 14, 15, 15, 14, 16, 16, 14, 16, 14, 15, 15, 16, 16, 12,
- 9, 12, 12, 13, 12, 12, 14, 12, 12, 14, 13, 13, 13, 13, 14, 11,
- 11, 14, 14, 16, 14, 16, 16, 16, 13, 16, 14, 16, 14, 16, 16, 13,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 15, 14, 16, 14, 15, 16, 16, 15, 16, 14, 15, 16, 16, 16, 13,
- 11, 15, 14, 16, 15, 16, 16, 16, 15, 16, 15, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 11, 14, 13, 14, 15, 14, 16, 15, 14, 16, 12, 14, 16, 16, 15, 13,
- 11, 14, 14, 16, 14, 15, 16, 16, 15, 16, 14, 15, 16, 16, 16, 14,
- 12, 14, 14, 15, 14, 16, 16, 15, 14, 16, 15, 15, 15, 16, 16, 13,
- 11, 14, 15, 15, 13, 15, 16, 16, 14, 16, 16, 16, 12, 15, 15, 13,
- 11, 15, 16, 16, 15, 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 11, 15, 14, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 10, 13, 13, 14, 14, 14, 16, 15, 14, 16, 14, 15, 14, 14, 15, 12,
- 12, 15, 14, 16, 14, 15, 16, 15, 15, 16, 15, 15, 16, 15, 16, 13,
- 12, 16, 14, 16, 15, 16, 16, 16, 16, 16, 14, 15, 16, 16, 16, 14,
- 10, 13, 13, 14, 14, 13, 16, 14, 13, 16, 13, 14, 15, 15, 15, 12,
- 10, 13, 13, 14, 13, 13, 16, 14, 14, 15, 14, 14, 14, 14, 15, 12,
- 10, 14, 15, 14, 13, 15, 16, 15, 14, 16, 16, 16, 11, 14, 16, 12,
- 11, 14, 14, 16, 14, 15, 16, 15, 15, 16, 16, 16, 13, 15, 16, 13,
- 12, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 15, 16, 13,
- 12, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 13,
- 10, 13, 14, 14, 13, 14, 16, 14, 13, 16, 15, 14, 12, 14, 16, 11,
- 10, 13, 13, 14, 13, 14, 16, 14, 14, 15, 14, 14, 13, 14, 14, 11,
- 13, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 11, 13, 14, 15, 14, 14, 16, 15, 14, 16, 14, 15, 14, 15, 16, 12,
- 8, 11, 11, 11, 11, 12, 13, 12, 11, 13, 11, 12, 11, 12, 12, 9,
- },
- },
- {
- {
- 8, 8, 8, 7, 8, 7, 8, 6, 8, 8, 7, 6, 7, 6, 6, 4,
- 11, 10, 11, 9, 11, 9, 11, 8, 11, 10, 10, 9, 10, 8, 9, 6,
- 13, 11, 13, 10, 12, 10, 13, 9, 13, 12, 13, 10, 12, 10, 11, 7,
- 11, 11, 10, 9, 11, 10, 11, 9, 10, 11, 9, 8, 10, 9, 9, 6,
- 12, 12, 11, 9, 12, 11, 12, 9, 12, 12, 11, 9, 11, 10, 10, 7,
- 14, 13, 13, 10, 15, 12, 13, 10, 15, 13, 13, 10, 13, 12, 12, 8,
- 13, 13, 11, 10, 14, 13, 12, 10, 13, 13, 10, 10, 12, 11, 10, 8,
- 15, 14, 13, 10, 14, 13, 13, 10, 14, 13, 12, 10, 13, 12, 11, 8,
- 14, 14, 13, 10, 16, 13, 13, 10, 15, 14, 13, 10, 13, 12, 12, 8,
- 11, 11, 11, 10, 10, 9, 10, 9, 10, 10, 10, 9, 9, 8, 9, 6,
- 12, 12, 12, 11, 11, 9, 12, 9, 12, 12, 11, 10, 11, 9, 10, 7,
- 14, 13, 14, 12, 13, 10, 13, 10, 15, 13, 14, 12, 12, 10, 12, 8,
- 13, 13, 12, 11, 12, 11, 12, 10, 12, 12, 11, 10, 11, 10, 10, 7,
- 14, 13, 13, 11, 13, 12, 12, 10, 13, 13, 12, 11, 12, 10, 10, 7,
- 16, 15, 15, 12, 14, 12, 13, 10, 15, 14, 13, 12, 13, 12, 12, 8,
- 15, 15, 13, 13, 14, 14, 14, 12, 14, 14, 12, 11, 13, 12, 11, 8,
- 15, 16, 14, 12, 15, 14, 13, 11, 15, 15, 13, 12, 13, 12, 11, 8,
- 16, 15, 15, 12, 16, 14, 14, 10, 15, 15, 14, 12, 14, 12, 12, 8,
- 13, 13, 13, 13, 11, 10, 12, 10, 12, 13, 12, 11, 10, 10, 10, 8,
- 14, 13, 14, 13, 12, 10, 13, 10, 14, 14, 13, 12, 12, 10, 11, 8,
- 15, 14, 16, 14, 13, 10, 14, 10, 16, 14, 14, 13, 13, 10, 12, 8,
- 15, 15, 14, 14, 14, 13, 13, 12, 14, 14, 13, 12, 12, 11, 11, 9,
- 15, 15, 15, 14, 14, 12, 14, 11, 15, 14, 13, 13, 13, 11, 11, 8,
- 16, 15, 16, 14, 15, 12, 14, 11, 16, 16, 15, 13, 14, 12, 12, 8,
- 16, 16, 16, 14, 15, 14, 14, 12, 15, 15, 14, 13, 13, 12, 11, 9,
- 16, 16, 15, 15, 16, 14, 14, 11, 16, 16, 14, 13, 14, 12, 12, 8,
- 16, 16, 16, 13, 15, 13, 14, 10, 16, 16, 15, 13, 14, 12, 12, 8,
- 11, 11, 11, 10, 11, 10, 11, 9, 10, 10, 9, 8, 9, 9, 9, 6,
- 12, 12, 13, 11, 12, 11, 12, 10, 12, 12, 11, 10, 11, 10, 10, 7,
- 15, 13, 15, 12, 14, 13, 14, 11, 14, 13, 13, 11, 13, 11, 12, 8,
- 12, 13, 12, 11, 13, 11, 12, 10, 11, 12, 10, 9, 11, 10, 10, 7,
- 14, 13, 13, 11, 14, 12, 13, 11, 12, 12, 11, 10, 12, 11, 10, 7,
- 15, 14, 15, 12, 15, 13, 15, 11, 15, 14, 13, 11, 13, 12, 12, 8,
- 14, 14, 13, 12, 15, 14, 13, 12, 13, 13, 11, 10, 13, 12, 11, 8,
- 16, 15, 13, 12, 15, 14, 14, 12, 14, 14, 12, 11, 14, 12, 11, 8,
- 16, 15, 14, 12, 16, 15, 15, 11, 15, 14, 13, 11, 14, 13, 12, 8,
- 12, 12, 12, 11, 12, 11, 12, 10, 11, 11, 11, 10, 10, 9, 9, 7,
- 13, 13, 14, 12, 13, 11, 13, 11, 13, 12, 12, 11, 11, 10, 10, 7,
- 15, 14, 16, 13, 14, 12, 14, 11, 14, 14, 14, 12, 13, 11, 12, 8,
- 13, 13, 13, 12, 13, 12, 13, 11, 12, 12, 11, 10, 11, 10, 10, 7,
- 14, 14, 13, 12, 13, 12, 13, 10, 13, 13, 11, 10, 12, 10, 10, 7,
- 16, 15, 15, 13, 15, 12, 14, 11, 15, 14, 13, 11, 13, 11, 11, 7,
- 15, 16, 14, 13, 15, 14, 14, 12, 14, 14, 12, 11, 13, 12, 11, 8,
- 16, 15, 14, 13, 15, 14, 14, 11, 14, 14, 12, 11, 13, 12, 11, 7,
- 16, 15, 15, 12, 16, 14, 14, 11, 15, 14, 13, 11, 14, 12, 11, 7,
- 14, 15, 14, 14, 13, 12, 13, 12, 13, 13, 12, 12, 11, 10, 11, 8,
- 15, 15, 15, 14, 13, 12, 14, 12, 14, 14, 13, 12, 12, 11, 11, 8,
- 16, 15, 16, 14, 14, 12, 15, 12, 16, 14, 14, 13, 13, 11, 12, 8,
- 15, 15, 15, 14, 14, 13, 14, 12, 14, 14, 13, 12, 12, 11, 11, 8,
- 15, 15, 15, 14, 14, 13, 14, 12, 14, 14, 13, 12, 12, 11, 11, 7,
- 16, 15, 16, 14, 15, 12, 15, 11, 15, 14, 14, 12, 13, 11, 12, 7,
- 16, 16, 16, 15, 16, 15, 14, 13, 15, 15, 13, 12, 13, 12, 11, 9,
- 16, 16, 16, 14, 15, 14, 14, 12, 15, 15, 13, 12, 14, 12, 11, 8,
- 16, 16, 16, 14, 16, 14, 14, 11, 15, 15, 14, 12, 14, 12, 11, 7,
- 13, 13, 13, 12, 13, 12, 13, 11, 11, 12, 11, 10, 10, 10, 10, 8,
- 15, 14, 14, 13, 14, 13, 14, 12, 13, 13, 12, 11, 13, 11, 11, 8,
- 16, 15, 16, 14, 16, 14, 16, 13, 15, 14, 14, 12, 14, 12, 13, 9,
- 14, 15, 13, 13, 14, 13, 14, 12, 12, 13, 11, 11, 12, 11, 11, 8,
- 15, 15, 14, 13, 15, 14, 14, 12, 13, 13, 12, 11, 13, 12, 11, 8,
- 16, 16, 16, 13, 16, 15, 16, 13, 15, 14, 14, 12, 14, 13, 13, 9,
- 14, 15, 13, 13, 16, 15, 15, 13, 13, 14, 11, 11, 13, 12, 11, 9,
- 16, 16, 14, 13, 16, 15, 16, 13, 14, 14, 12, 11, 14, 13, 12, 8,
- 16, 16, 15, 12, 16, 15, 15, 12, 15, 14, 13, 11, 14, 13, 12, 8,
- 14, 14, 14, 13, 14, 13, 14, 12, 12, 13, 12, 11, 11, 11, 11, 8,
- 15, 15, 15, 14, 14, 13, 15, 12, 14, 13, 13, 12, 12, 11, 11, 8,
- 16, 16, 16, 15, 15, 14, 16, 13, 15, 14, 14, 12, 14, 12, 12, 9,
- 15, 15, 14, 14, 14, 14, 14, 13, 13, 14, 12, 11, 12, 11, 11, 8,
- 15, 15, 15, 13, 15, 14, 14, 12, 13, 13, 12, 11, 12, 11, 11, 7,
- 16, 15, 16, 14, 16, 14, 15, 12, 15, 14, 14, 12, 13, 12, 12, 8,
- 16, 16, 15, 14, 16, 15, 15, 13, 14, 14, 12, 11, 13, 12, 11, 8,
- 16, 16, 15, 13, 16, 14, 14, 12, 14, 15, 12, 11, 13, 12, 11, 7,
- 16, 16, 16, 13, 16, 15, 15, 12, 15, 14, 13, 11, 14, 12, 11, 7,
- 15, 15, 15, 14, 13, 13, 14, 13, 13, 14, 13, 12, 11, 11, 11, 8,
- 16, 16, 16, 14, 15, 13, 15, 12, 14, 14, 14, 13, 12, 11, 12, 8,
- 16, 16, 16, 14, 15, 13, 15, 12, 15, 14, 14, 12, 13, 11, 12, 8,
- 15, 16, 16, 14, 15, 14, 15, 13, 14, 14, 12, 12, 11, 11, 11, 8,
- 16, 15, 15, 14, 15, 14, 14, 12, 14, 14, 13, 12, 12, 11, 11, 7,
- 16, 16, 16, 13, 15, 13, 15, 12, 15, 14, 14, 12, 13, 11, 11, 7,
- 16, 16, 16, 15, 15, 16, 15, 13, 14, 14, 12, 12, 12, 12, 11, 8,
- 16, 16, 16, 14, 16, 14, 14, 12, 15, 15, 13, 11, 12, 11, 10, 7,
- 16, 16, 15, 13, 16, 14, 14, 11, 15, 14, 13, 10, 13, 11, 10, 5,
- },
- {
- 1, 6, 6, 7, 6, 7, 9, 7, 6, 9, 7, 8, 7, 8, 8, 5,
- 5, 8, 10, 10, 10, 10, 12, 11, 11, 12, 11, 11, 11, 12, 12, 9,
- 9, 10, 12, 11, 13, 12, 15, 13, 14, 15, 15, 14, 14, 15, 15, 12,
- 6, 10, 9, 10, 10, 11, 13, 12, 11, 13, 11, 12, 12, 12, 12, 10,
- 6, 10, 10, 10, 11, 11, 13, 11, 11, 13, 12, 12, 11, 12, 12, 10,
- 9, 12, 13, 12, 13, 13, 16, 13, 14, 16, 15, 14, 14, 15, 16, 12,
- 9, 13, 11, 13, 14, 14, 16, 15, 14, 16, 13, 15, 15, 15, 15, 12,
- 9, 13, 12, 13, 14, 15, 16, 15, 14, 16, 15, 15, 15, 15, 16, 12,
- 8, 12, 12, 11, 13, 14, 15, 13, 13, 15, 14, 14, 14, 14, 14, 12,
- 6, 10, 10, 11, 9, 10, 13, 11, 11, 13, 12, 12, 10, 12, 12, 9,
- 6, 10, 11, 11, 11, 10, 13, 12, 11, 13, 12, 12, 12, 12, 13, 10,
- 9, 12, 13, 13, 13, 12, 16, 13, 14, 16, 14, 15, 16, 14, 15, 12,
- 8, 12, 13, 13, 13, 13, 16, 14, 13, 16, 13, 14, 14, 14, 14, 12,
- 7, 11, 11, 12, 11, 12, 14, 13, 12, 14, 13, 13, 12, 13, 13, 11,
- 9, 12, 13, 13, 13, 13, 15, 14, 14, 16, 16, 15, 15, 15, 16, 12,
- 11, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 14, 14, 15, 15, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 13,
- 9, 13, 13, 13, 14, 14, 16, 14, 14, 16, 15, 14, 14, 16, 16, 13,
- 9, 13, 14, 14, 11, 13, 16, 14, 13, 16, 15, 16, 13, 14, 15, 12,
- 10, 13, 14, 15, 13, 12, 16, 14, 14, 16, 15, 15, 14, 14, 16, 13,
- 9, 12, 13, 14, 12, 11, 15, 13, 13, 15, 13, 14, 15, 14, 16, 12,
- 11, 15, 16, 16, 14, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 13,
- 11, 14, 14, 15, 13, 14, 16, 15, 15, 16, 16, 16, 16, 16, 16, 13,
- 10, 12, 13, 14, 13, 13, 16, 14, 14, 14, 14, 16, 15, 14, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 9, 12, 13, 14, 13, 13, 16, 13, 13, 15, 15, 16, 15, 15, 16, 12,
- 6, 11, 11, 12, 10, 12, 13, 12, 11, 13, 11, 12, 11, 12, 13, 10,
- 9, 12, 13, 13, 13, 13, 16, 14, 14, 15, 14, 14, 14, 14, 14, 12,
- 12, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 7, 11, 11, 12, 12, 12, 14, 13, 12, 14, 11, 13, 13, 13, 13, 11,
- 8, 12, 12, 13, 12, 13, 14, 13, 13, 14, 13, 13, 13, 14, 14, 11,
- 11, 14, 14, 15, 16, 15, 16, 16, 15, 16, 16, 16, 16, 16, 16, 13,
- 10, 14, 12, 14, 15, 15, 16, 16, 14, 16, 12, 15, 16, 16, 16, 13,
- 11, 14, 13, 15, 15, 15, 16, 16, 14, 16, 14, 14, 16, 16, 16, 13,
- 11, 14, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 13,
- 7, 11, 12, 11, 10, 12, 14, 13, 12, 14, 13, 13, 10, 12, 13, 10,
- 8, 12, 12, 13, 12, 12, 15, 13, 13, 14, 13, 13, 13, 13, 14, 11,
- 11, 13, 15, 16, 14, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 9, 12, 13, 13, 13, 13, 15, 14, 13, 15, 13, 14, 13, 14, 14, 12,
- 7, 11, 11, 11, 11, 11, 13, 12, 11, 13, 11, 12, 11, 12, 12, 10,
- 9, 12, 13, 13, 13, 13, 16, 13, 14, 16, 15, 14, 14, 14, 16, 12,
- 12, 14, 14, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 14,
- 10, 13, 13, 14, 14, 14, 16, 15, 14, 16, 14, 14, 16, 15, 15, 12,
- 9, 12, 13, 13, 13, 15, 16, 14, 13, 16, 14, 13, 13, 14, 14, 11,
- 10, 14, 15, 14, 12, 14, 16, 15, 13, 16, 16, 16, 12, 14, 16, 12,
- 11, 14, 14, 14, 14, 14, 16, 15, 15, 16, 16, 16, 14, 15, 16, 13,
- 11, 14, 14, 16, 14, 13, 16, 15, 14, 16, 15, 16, 15, 15, 16, 13,
- 12, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 14,
- 10, 13, 14, 14, 13, 14, 16, 14, 13, 16, 15, 15, 13, 14, 14, 12,
- 9, 12, 13, 14, 13, 12, 16, 14, 13, 16, 14, 14, 14, 14, 15, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 9, 12, 13, 13, 13, 13, 14, 13, 12, 15, 14, 14, 14, 14, 14, 11,
- 11, 14, 14, 16, 14, 16, 16, 16, 13, 16, 14, 16, 14, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 14, 14, 16, 16, 15, 16, 16, 15, 16, 14, 16, 16, 16, 16, 14,
- 12, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 14, 12, 15, 15, 15, 16, 16, 14, 16, 12, 14, 16, 16, 15, 14,
- 12, 15, 14, 16, 16, 16, 16, 16, 15, 16, 14, 16, 16, 16, 16, 14,
- 12, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14,
- 11, 15, 15, 16, 14, 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 13,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 11, 15, 14, 16, 14, 14, 16, 15, 14, 16, 15, 16, 15, 16, 16, 12,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 12, 16, 15, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 14,
- 10, 14, 13, 14, 15, 14, 16, 15, 14, 16, 13, 16, 16, 16, 15, 13,
- 10, 14, 14, 14, 13, 14, 16, 15, 15, 16, 14, 14, 14, 16, 16, 12,
- 10, 14, 15, 14, 13, 16, 16, 15, 13, 16, 16, 16, 12, 14, 16, 12,
- 11, 16, 16, 16, 14, 15, 16, 16, 16, 16, 16, 16, 14, 16, 16, 13,
- 12, 15, 14, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 14,
- 11, 14, 14, 14, 14, 15, 16, 14, 14, 16, 16, 16, 13, 15, 15, 12,
- 10, 14, 13, 14, 14, 14, 16, 15, 14, 16, 15, 15, 14, 14, 16, 12,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 12, 14, 14, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 13,
- 8, 11, 11, 12, 12, 12, 13, 12, 11, 13, 12, 12, 12, 13, 12, 10,
- },
- },
- {
- {
- 5, 6, 6, 6, 6, 6, 7, 6, 6, 7, 6, 6, 6, 6, 6, 4,
- 9, 9, 9, 8, 9, 8, 10, 8, 10, 10, 9, 9, 9, 8, 9, 6,
- 11, 10, 12, 10, 11, 10, 12, 9, 12, 11, 11, 10, 11, 10, 11, 8,
- 9, 10, 9, 8, 10, 10, 10, 9, 9, 10, 8, 8, 9, 9, 8, 7,
- 10, 11, 10, 9, 11, 11, 11, 9, 11, 11, 10, 9, 10, 10, 10, 7,
- 13, 12, 12, 10, 13, 12, 13, 10, 13, 12, 12, 11, 13, 12, 11, 9,
- 11, 12, 10, 10, 12, 12, 11, 10, 11, 12, 10, 10, 11, 11, 10, 8,
- 12, 12, 11, 10, 13, 13, 13, 10, 13, 13, 12, 11, 13, 12, 11, 9,
- 12, 12, 12, 10, 13, 13, 13, 10, 13, 13, 12, 10, 13, 12, 12, 9,
- 9, 9, 10, 10, 9, 8, 10, 9, 9, 10, 9, 9, 8, 8, 9, 6,
- 10, 11, 11, 11, 10, 9, 11, 9, 11, 11, 11, 10, 10, 9, 10, 7,
- 12, 12, 13, 12, 12, 10, 13, 10, 13, 13, 13, 12, 12, 11, 11, 9,
- 11, 12, 11, 11, 11, 11, 11, 10, 11, 12, 10, 10, 10, 10, 10, 8,
- 12, 12, 12, 11, 12, 11, 11, 10, 12, 12, 11, 11, 11, 11, 10, 8,
- 14, 13, 13, 12, 13, 12, 13, 10, 14, 14, 13, 12, 13, 12, 12, 9,
- 13, 14, 13, 12, 13, 13, 13, 12, 13, 13, 12, 12, 12, 12, 11, 9,
- 14, 14, 13, 12, 13, 13, 13, 11, 14, 14, 13, 12, 13, 12, 12, 9,
- 14, 15, 14, 12, 15, 13, 13, 11, 15, 14, 14, 12, 14, 13, 12, 9,
- 11, 11, 12, 12, 10, 10, 12, 11, 11, 12, 11, 11, 10, 10, 10, 8,
- 12, 12, 14, 13, 11, 10, 12, 11, 13, 13, 13, 12, 12, 10, 11, 9,
- 13, 13, 14, 14, 12, 10, 13, 11, 14, 14, 14, 13, 12, 11, 12, 9,
- 13, 13, 13, 13, 12, 13, 13, 12, 13, 14, 12, 12, 12, 12, 11, 9,
- 13, 14, 14, 13, 13, 12, 13, 11, 14, 14, 13, 12, 13, 12, 12, 9,
- 14, 14, 14, 14, 14, 12, 13, 11, 15, 15, 15, 13, 14, 12, 12, 9,
- 14, 15, 15, 13, 14, 14, 13, 12, 13, 14, 13, 13, 12, 12, 11, 10,
- 16, 16, 15, 14, 15, 14, 13, 11, 15, 15, 14, 13, 13, 13, 12, 9,
- 15, 15, 15, 13, 14, 13, 13, 11, 15, 15, 15, 13, 14, 13, 12, 9,
- 8, 9, 9, 9, 9, 9, 10, 9, 8, 10, 9, 9, 8, 8, 9, 7,
- 11, 11, 11, 11, 11, 11, 12, 10, 11, 11, 11, 10, 10, 10, 10, 8,
- 13, 13, 14, 12, 13, 12, 14, 11, 13, 13, 13, 12, 13, 11, 12, 9,
- 10, 11, 10, 11, 11, 11, 12, 10, 10, 11, 10, 10, 10, 10, 10, 8,
- 12, 12, 12, 11, 12, 12, 12, 11, 11, 12, 11, 10, 11, 11, 10, 8,
- 14, 13, 14, 12, 14, 13, 14, 12, 14, 13, 13, 11, 13, 12, 12, 9,
- 12, 13, 12, 12, 13, 13, 13, 12, 12, 13, 11, 11, 12, 12, 11, 9,
- 13, 14, 13, 12, 14, 14, 14, 12, 14, 13, 12, 11, 13, 12, 12, 9,
- 14, 14, 13, 12, 15, 14, 15, 12, 14, 14, 13, 11, 13, 13, 12, 9,
- 10, 11, 11, 11, 10, 10, 12, 10, 10, 11, 10, 10, 9, 9, 10, 7,
- 12, 12, 13, 12, 12, 11, 12, 11, 12, 12, 12, 11, 11, 10, 10, 8,
- 14, 13, 14, 13, 14, 12, 13, 12, 14, 13, 14, 12, 13, 11, 12, 9,
- 12, 13, 12, 12, 12, 12, 12, 11, 11, 12, 11, 10, 10, 10, 10, 8,
- 12, 12, 12, 12, 12, 12, 12, 11, 12, 12, 11, 10, 11, 10, 10, 7,
- 14, 14, 14, 12, 14, 12, 14, 11, 14, 13, 13, 11, 13, 11, 11, 8,
- 13, 15, 13, 13, 14, 14, 14, 12, 13, 14, 12, 12, 12, 12, 11, 9,
- 14, 15, 13, 12, 14, 13, 13, 11, 13, 13, 12, 11, 13, 12, 11, 8,
- 15, 15, 15, 12, 15, 14, 14, 11, 14, 14, 13, 11, 13, 12, 12, 8,
- 12, 13, 13, 13, 12, 12, 13, 12, 12, 13, 12, 12, 11, 11, 11, 9,
- 13, 14, 15, 14, 13, 12, 14, 12, 13, 13, 14, 12, 12, 11, 12, 9,
- 14, 14, 15, 14, 14, 12, 14, 12, 14, 14, 14, 13, 13, 11, 12, 9,
- 13, 14, 14, 14, 13, 13, 14, 13, 13, 13, 12, 12, 12, 12, 11, 9,
- 14, 14, 14, 13, 13, 13, 13, 12, 13, 14, 13, 12, 12, 11, 11, 8,
- 15, 14, 15, 14, 14, 13, 14, 11, 15, 14, 14, 12, 13, 11, 12, 8,
- 14, 15, 14, 14, 15, 14, 14, 13, 14, 15, 13, 13, 12, 12, 11, 10,
- 16, 15, 14, 14, 14, 14, 13, 12, 14, 14, 13, 12, 13, 12, 11, 9,
- 15, 15, 15, 14, 16, 14, 14, 11, 15, 15, 14, 12, 13, 12, 11, 8,
- 11, 12, 11, 12, 12, 12, 12, 11, 10, 11, 10, 10, 10, 10, 10, 8,
- 13, 13, 13, 13, 13, 13, 14, 12, 12, 12, 12, 12, 12, 11, 12, 9,
- 14, 14, 14, 13, 15, 13, 15, 13, 14, 14, 14, 12, 14, 12, 13, 10,
- 12, 13, 12, 13, 13, 13, 13, 12, 11, 12, 11, 11, 12, 11, 11, 9,
- 14, 14, 13, 13, 14, 14, 14, 12, 12, 13, 12, 11, 13, 12, 12, 9,
- 14, 14, 15, 13, 15, 15, 15, 13, 15, 13, 13, 12, 14, 12, 13, 10,
- 13, 15, 12, 13, 14, 14, 14, 13, 12, 13, 11, 11, 13, 12, 11, 10,
- 14, 15, 14, 13, 15, 14, 15, 13, 14, 14, 12, 11, 13, 13, 12, 9,
- 14, 15, 14, 13, 15, 14, 15, 13, 14, 14, 13, 11, 14, 13, 12, 9,
- 12, 13, 13, 13, 12, 13, 13, 12, 11, 12, 12, 11, 11, 11, 11, 9,
- 13, 14, 14, 13, 14, 13, 14, 12, 13, 13, 13, 12, 12, 11, 11, 9,
- 15, 15, 16, 14, 15, 14, 14, 13, 15, 14, 14, 13, 13, 12, 13, 10,
- 13, 14, 14, 13, 13, 14, 14, 13, 12, 13, 12, 12, 11, 11, 11, 9,
- 14, 14, 14, 13, 14, 13, 14, 12, 13, 13, 12, 11, 12, 11, 11, 8,
- 15, 15, 15, 13, 15, 14, 14, 12, 14, 13, 13, 12, 13, 12, 12, 9,
- 14, 15, 14, 14, 15, 15, 14, 13, 13, 14, 12, 12, 13, 12, 12, 9,
- 15, 15, 14, 13, 15, 14, 14, 13, 14, 14, 12, 11, 13, 12, 11, 8,
- 15, 16, 14, 13, 15, 15, 15, 12, 14, 14, 13, 11, 14, 12, 12, 8,
- 12, 14, 13, 13, 13, 13, 14, 12, 12, 13, 12, 12, 10, 11, 11, 9,
- 14, 15, 15, 14, 13, 13, 15, 13, 13, 14, 14, 12, 12, 11, 12, 9,
- 15, 15, 16, 14, 14, 13, 15, 13, 14, 14, 14, 13, 13, 11, 12, 9,
- 14, 15, 14, 14, 14, 14, 14, 13, 13, 14, 13, 12, 12, 12, 11, 9,
- 14, 15, 15, 14, 14, 14, 14, 12, 13, 14, 13, 12, 12, 11, 11, 8,
- 15, 15, 15, 14, 14, 13, 15, 12, 15, 14, 14, 12, 13, 11, 11, 8,
- 14, 16, 14, 14, 14, 15, 14, 13, 13, 14, 12, 12, 12, 12, 11, 9,
- 15, 15, 15, 14, 15, 14, 14, 12, 14, 14, 13, 12, 12, 11, 11, 8,
- 15, 15, 14, 13, 15, 13, 14, 12, 14, 14, 13, 11, 13, 11, 11, 7,
- },
- {
- 1, 5, 6, 7, 6, 7, 9, 8, 6, 9, 8, 8, 7, 8, 8, 6,
- 5, 8, 10, 10, 10, 11, 13, 12, 11, 13, 12, 12, 12, 12, 13, 10,
- 8, 10, 13, 12, 13, 13, 16, 14, 14, 16, 16, 14, 16, 16, 16, 12,
- 5, 10, 9, 11, 11, 12, 13, 12, 11, 13, 11, 12, 12, 12, 13, 10,
- 6, 10, 11, 11, 11, 12, 14, 12, 11, 13, 13, 13, 12, 13, 13, 11,
- 8, 12, 13, 12, 14, 14, 16, 14, 14, 16, 16, 16, 16, 16, 16, 13,
- 9, 13, 11, 14, 14, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 13,
- 9, 13, 13, 13, 14, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 14,
- 8, 12, 13, 12, 13, 14, 16, 14, 14, 16, 16, 16, 14, 16, 16, 13,
- 5, 10, 11, 12, 9, 11, 13, 12, 11, 13, 13, 13, 11, 12, 13, 10,
- 6, 10, 11, 12, 11, 11, 14, 13, 12, 14, 12, 13, 13, 13, 13, 11,
- 9, 12, 14, 15, 13, 13, 16, 16, 14, 16, 16, 16, 16, 16, 16, 13,
- 8, 13, 13, 14, 13, 14, 16, 16, 14, 16, 14, 16, 14, 16, 14, 13,
- 7, 11, 12, 13, 12, 12, 14, 13, 12, 14, 13, 14, 13, 14, 14, 12,
- 9, 13, 14, 14, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 15, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 9, 13, 14, 14, 14, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 14,
- 9, 13, 14, 15, 11, 13, 16, 14, 14, 16, 16, 16, 13, 14, 16, 13,
- 9, 13, 14, 16, 13, 13, 16, 16, 14, 16, 16, 16, 16, 15, 16, 14,
- 8, 12, 13, 16, 13, 12, 16, 14, 13, 16, 14, 16, 16, 16, 16, 13,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 14, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 9, 13, 16, 16, 14, 14, 16, 16, 14, 16, 16, 16, 16, 16, 16, 14,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 13, 14, 15, 14, 14, 16, 14, 13, 16, 16, 16, 14, 16, 16, 14,
- 6, 11, 11, 12, 11, 12, 14, 13, 11, 14, 12, 13, 12, 13, 13, 11,
- 9, 13, 13, 14, 13, 14, 16, 16, 14, 16, 16, 16, 15, 16, 16, 13,
- 11, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 7, 11, 11, 13, 12, 13, 16, 14, 12, 16, 12, 14, 14, 14, 14, 12,
- 8, 12, 12, 13, 12, 14, 16, 14, 13, 16, 14, 14, 14, 14, 14, 12,
- 11, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 14, 13, 16, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 16,
- 10, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 7, 11, 12, 12, 11, 13, 16, 14, 12, 15, 14, 14, 11, 13, 13, 12,
- 8, 12, 12, 13, 13, 13, 16, 14, 13, 16, 13, 15, 13, 14, 14, 12,
- 11, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 8, 12, 13, 14, 13, 14, 16, 16, 14, 16, 14, 16, 14, 16, 15, 13,
- 6, 11, 11, 12, 11, 12, 13, 13, 11, 13, 12, 13, 12, 13, 13, 11,
- 9, 13, 14, 14, 14, 14, 16, 14, 14, 16, 16, 16, 16, 16, 14, 13,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 14, 13, 14, 14, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 13,
- 9, 13, 14, 13, 13, 16, 16, 14, 13, 16, 16, 16, 13, 16, 14, 13,
- 10, 14, 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 13, 14, 16, 14,
- 11, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 14, 16, 16, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 14, 14, 14, 14, 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 13,
- 9, 13, 13, 16, 14, 14, 16, 16, 14, 16, 14, 16, 16, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 13, 14, 14, 13, 16, 16, 14, 13, 16, 14, 16, 14, 14, 16, 12,
- 10, 14, 14, 16, 16, 16, 16, 16, 13, 16, 16, 16, 14, 16, 16, 14,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 14, 13, 16, 16, 16, 16, 16, 14, 16, 12, 16, 16, 16, 16, 14,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 14,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15,
- 11, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 15, 14, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 14,
- 10, 14, 14, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 10, 14, 16, 16, 13, 16, 16, 16, 14, 16, 16, 16, 12, 16, 16, 14,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16,
- 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 15, 14, 16, 14, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 13,
- 10, 15, 14, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 8, 12, 12, 13, 12, 14, 14, 14, 12, 16, 13, 14, 12, 14, 14, 11,
- },
- },
-};
-
-
-static const uint8_t rv34_table_intra_cbp[NUM_INTRA_TABLES][8][CBP_VLC_SIZE] = {
- {
- { 0, 3, 3, 4, 3, 5, 5, 5, 2, 5, 4, 6, 4, 6, 6, 6, },
- { 0, 2, 3, 4, 2, 5, 6, 7, 3, 6, 5, 7, 4, 7, 8, 8, },
- { 0, 3, 4, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 3, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 6, 3, 5, 6, 5, },
- { 0, 4, 4, 4, 4, 5, 5, 4, 4, 5, 4, 5, 4, 4, 4, 2, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 6, 6, 5, 6, 5, 6, 4, 6, 6, 5, 4, 4, 4, 4, 1, },
- { 0, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 4, 4, 2, },
- },
- {
- { 0, 4, 3, 4, 3, 4, 5, 4, 3, 5, 4, 5, 3, 5, 5, 5, },
- { 0, 2, 3, 4, 2, 5, 6, 7, 3, 6, 5, 7, 4, 7, 8, 8, },
- { 0, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 3, 4, 4, 3, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 6, 3, 5, 6, 5, },
- { 0, 4, 4, 4, 4, 4, 5, 4, 4, 5, 5, 5, 4, 4, 4, 2, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 5, 6, 5, 5, 5, 6, 4, 6, 6, 5, 4, 5, 4, 4, 1, },
- { 0, 4, 4, 4, 4, 4, 5, 4, 4, 5, 5, 4, 4, 4, 5, 2, },
- },
- {
- { 0, 3, 3, 4, 3, 4, 4, 5, 3, 5, 4, 5, 4, 5, 5, 5, },
- { 0, 2, 3, 4, 2, 4, 6, 7, 3, 6, 5, 7, 5, 7, 8, 8, },
- { 0, 4, 4, 4, 4, 4, 5, 4, 3, 5, 4, 4, 4, 4, 4, 3, },
- { 0, 3, 3, 4, 3, 3, 6, 6, 3, 6, 4, 6, 3, 6, 6, 5, },
- { 0, 4, 4, 4, 3, 4, 5, 4, 4, 5, 4, 4, 4, 4, 4, 3, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 5, 5, 5, 5, 5, 6, 4, 5, 6, 5, 5, 5, 4, 4, 1, },
- { 0, 4, 4, 4, 4, 4, 6, 4, 4, 6, 5, 4, 4, 4, 4, 2, },
- },
- {
- { 0, 3, 3, 4, 3, 4, 4, 5, 3, 5, 4, 5, 4, 5, 5, 5, },
- { 0, 2, 3, 4, 2, 4, 7, 6, 3, 7, 5, 7, 5, 7, 7, 7, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 3, 3, 3, 3, 4, 6, 6, 3, 6, 4, 6, 3, 6, 6, 5, },
- { 0, 3, 4, 4, 3, 4, 5, 4, 4, 5, 4, 5, 4, 5, 4, 3, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 4, 5, 4, 4, 4, 5, 4, 4, 5, 5, 4, 4, 4, 4, 2, },
- { 0, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 4, 4, 2, },
- },
- {
- { 0, 3, 3, 4, 3, 4, 5, 6, 2, 5, 4, 7, 4, 6, 6, 7, },
- { 0, 2, 3, 4, 2, 4, 6, 7, 3, 7, 5, 7, 5, 7, 7, 7, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 2, 3, 4, 3, 4, 6, 5, 3, 6, 4, 6, 4, 6, 6, 6, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, },
- { 0, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 4, 4, 2, },
- { 0, 3, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 4, 3, },
- },
-};
-
-
-static const uint8_t rv34_table_intra_firstpat[NUM_INTRA_TABLES][4][FIRSTBLK_VLC_SIZE] = {
- {
- {
- 0, 10, 5, 10, 7, 12, 9, 11, 8, 13, 9, 12, 10, 13, 11, 12,
- 16, 16, 14, 15, 15, 16, 13, 14, 5, 12, 6, 11, 9, 13, 10, 11,
- 9, 14, 9, 12, 11, 14, 11, 12, 16, 16, 14, 15, 15, 16, 13, 13,
- 10, 15, 9, 12, 12, 16, 11, 12, 12, 16, 10, 13, 13, 16, 11, 12,
- 16, 16, 13, 14, 15, 16, 13, 12, 6, 12, 8, 11, 8, 12, 10, 11,
- 9, 14, 10, 12, 10, 13, 11, 12, 15, 16, 14, 15, 14, 16, 13, 13,
- 8, 13, 9, 12, 10, 13, 10, 12, 10, 14, 9, 12, 11, 14, 10, 12,
- 15, 16, 13, 15, 14, 16, 13, 13, 11, 16, 10, 13, 13, 16, 11, 12,
- 12, 16, 11, 13, 13, 16, 11, 12, 16, 16, 13, 14, 15, 16, 12, 12,
- 10, 16, 12, 14, 10, 14, 11, 12, 12, 16, 13, 14, 11, 14, 12, 12,
- 16, 16, 15, 16, 14, 15, 13, 13, 11, 16, 12, 14, 11, 14, 11, 12,
- 12, 16, 12, 14, 11, 14, 11, 12, 16, 16, 14, 15, 13, 15, 13, 12,
- 14, 16, 13, 14, 13, 16, 12, 12, 14, 16, 13, 14, 13, 16, 12, 12,
- 16, 16, 14, 14, 14, 15, 12, 11, 2, 10, 6, 10, 7, 12, 9, 11,
- 8, 12, 9, 11, 10, 13, 10, 11, 15, 16, 14, 15, 14, 16, 13, 13,
- 5, 12, 6, 11, 9, 13, 10, 11, 9, 13, 9, 11, 10, 13, 10, 11,
- 15, 16, 13, 14, 14, 16, 13, 13, 9, 15, 8, 12, 12, 15, 11, 11,
- 11, 16, 10, 12, 13, 15, 11, 11, 15, 16, 13, 14, 15, 16, 12, 12,
- 6, 12, 8, 11, 8, 12, 9, 11, 9, 14, 9, 12, 10, 13, 10, 11,
- 15, 16, 14, 15, 14, 16, 13, 13, 7, 13, 8, 11, 9, 13, 10, 11,
- 9, 14, 9, 12, 10, 13, 10, 11, 14, 16, 13, 14, 13, 16, 12, 12,
- 11, 16, 10, 12, 12, 15, 11, 11, 11, 16, 10, 12, 12, 15, 11, 11,
- 15, 16, 12, 13, 14, 16, 12, 11, 9, 15, 11, 13, 9, 13, 11, 12,
- 11, 16, 12, 14, 10, 14, 11, 12, 16, 16, 14, 15, 13, 15, 12, 12,
- 11, 16, 11, 14, 10, 14, 11, 12, 11, 16, 12, 13, 11, 14, 11, 11,
- 15, 16, 14, 15, 13, 14, 12, 12, 13, 16, 12, 14, 13, 15, 11, 11,
- 13, 16, 12, 14, 13, 15, 11, 11, 16, 16, 13, 14, 13, 15, 11, 10,
- 5, 12, 7, 11, 8, 13, 10, 11, 9, 13, 9, 12, 10, 14, 11, 12,
- 16, 16, 14, 15, 14, 16, 13, 13, 7, 13, 7, 11, 9, 13, 10, 11,
- 9, 14, 9, 12, 11, 14, 11, 12, 16, 16, 14, 14, 14, 16, 13, 13,
- 9, 15, 8, 12, 12, 15, 11, 12, 11, 16, 10, 12, 13, 16, 11, 12,
- 16, 16, 13, 14, 15, 16, 12, 12, 7, 13, 8, 12, 9, 13, 10, 11,
- 10, 14, 10, 12, 10, 14, 11, 12, 16, 16, 14, 15, 14, 16, 13, 13,
- 8, 14, 9, 12, 10, 13, 10, 11, 9, 14, 9, 12, 10, 14, 10, 11,
- 15, 16, 13, 14, 14, 16, 12, 12, 11, 16, 10, 12, 12, 15, 11, 12,
- 11, 16, 10, 12, 12, 15, 11, 11, 15, 16, 12, 14, 14, 16, 12, 11,
- 10, 16, 11, 13, 9, 14, 11, 12, 12, 16, 12, 14, 11, 14, 11, 12,
- 16, 16, 14, 16, 14, 15, 13, 12, 11, 16, 11, 14, 10, 14, 11, 12,
- 11, 16, 12, 14, 11, 14, 11, 11, 15, 16, 14, 15, 13, 15, 12, 12,
- 13, 16, 12, 14, 13, 15, 11, 11, 13, 16, 12, 14, 12, 14, 11, 11,
- 15, 16, 12, 13, 13, 14, 11, 10, 6, 13, 8, 11, 9, 13, 10, 11,
- 10, 14, 10, 12, 10, 13, 10, 11, 15, 16, 13, 13, 13, 14, 12, 11,
- 7, 13, 8, 11, 9, 13, 9, 11, 10, 14, 9, 11, 10, 13, 10, 11,
- 15, 16, 13, 13, 13, 14, 11, 11, 9, 14, 8, 11, 10, 13, 9, 10,
- 11, 15, 9, 11, 11, 13, 9, 10, 15, 16, 12, 13, 13, 14, 10, 9,
- 7, 13, 8, 11, 9, 13, 9, 11, 10, 14, 10, 12, 10, 13, 10, 11,
- 15, 16, 13, 13, 13, 14, 11, 11, 8, 13, 8, 11, 9, 13, 9, 10,
- 9, 14, 9, 11, 10, 13, 9, 10, 14, 16, 12, 13, 13, 14, 11, 10,
- 9, 14, 8, 11, 10, 13, 9, 9, 10, 14, 8, 11, 10, 13, 9, 9,
- 14, 16, 11, 12, 12, 14, 10, 9, 9, 14, 9, 12, 8, 12, 9, 10,
- 11, 15, 10, 12, 10, 13, 9, 10, 15, 16, 13, 13, 12, 13, 11, 10,
- 9, 14, 9, 12, 9, 12, 9, 10, 10, 14, 10, 12, 9, 12, 9, 9,
- 14, 16, 12, 13, 11, 13, 10, 9, 10, 14, 9, 11, 10, 12, 8, 8,
- 10, 14, 9, 11, 10, 12, 8, 8, 12, 14, 9, 10, 10, 11, 8, 7,
- },
- {
- 0, 9, 6, 9, 6, 10, 8, 9, 7, 11, 8, 11, 9, 11, 9, 10,
- 14, 16, 13, 14, 13, 14, 12, 11, 5, 11, 7, 10, 8, 10, 8, 9,
- 8, 12, 8, 11, 9, 12, 9, 10, 14, 16, 12, 13, 13, 14, 11, 11,
- 10, 14, 9, 11, 11, 13, 10, 10, 11, 15, 9, 11, 12, 13, 10, 10,
- 15, 16, 12, 12, 13, 14, 11, 9, 6, 11, 7, 10, 7, 10, 8, 9,
- 8, 12, 9, 11, 9, 11, 9, 10, 14, 16, 13, 13, 13, 14, 11, 11,
- 7, 12, 8, 11, 8, 11, 9, 9, 9, 13, 9, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 12, 14, 11, 10, 11, 14, 10, 12, 11, 13, 10, 10,
- 12, 15, 10, 12, 12, 13, 10, 10, 15, 16, 12, 12, 13, 14, 10, 9,
- 10, 14, 11, 13, 9, 12, 10, 10, 11, 15, 12, 13, 10, 12, 10, 10,
- 14, 16, 13, 14, 12, 13, 11, 10, 11, 14, 11, 13, 10, 12, 10, 10,
- 12, 15, 11, 13, 10, 12, 10, 10, 15, 16, 13, 13, 12, 13, 11, 9,
- 13, 16, 12, 13, 12, 13, 10, 9, 14, 16, 12, 13, 12, 13, 10, 9,
- 16, 16, 12, 12, 13, 13, 10, 7, 4, 10, 6, 9, 7, 10, 8, 9,
- 8, 12, 9, 11, 9, 11, 9, 9, 14, 16, 13, 13, 13, 14, 11, 11,
- 6, 11, 7, 10, 8, 11, 8, 9, 9, 12, 9, 11, 9, 12, 9, 9,
- 14, 16, 12, 13, 13, 14, 11, 10, 10, 14, 9, 11, 11, 13, 9, 9,
- 11, 14, 9, 11, 11, 13, 10, 9, 14, 16, 11, 12, 13, 14, 10, 9,
- 6, 11, 8, 10, 7, 10, 8, 9, 9, 12, 9, 11, 9, 11, 9, 9,
- 14, 16, 13, 13, 12, 13, 11, 10, 8, 12, 8, 10, 8, 11, 9, 9,
- 9, 12, 9, 11, 9, 11, 9, 9, 14, 16, 12, 13, 12, 13, 11, 10,
- 11, 14, 10, 11, 11, 13, 9, 9, 11, 14, 10, 11, 11, 13, 9, 9,
- 14, 16, 11, 12, 13, 14, 10, 8, 10, 14, 11, 12, 9, 12, 10, 10,
- 11, 14, 11, 13, 10, 12, 10, 10, 14, 16, 13, 14, 12, 13, 11, 9,
- 11, 14, 11, 12, 10, 12, 10, 10, 11, 14, 11, 12, 10, 12, 10, 9,
- 14, 16, 13, 13, 11, 12, 10, 9, 13, 16, 12, 13, 12, 13, 10, 9,
- 13, 16, 11, 12, 11, 13, 10, 8, 15, 16, 12, 12, 12, 12, 9, 7,
- 8, 12, 8, 11, 9, 12, 9, 10, 10, 14, 10, 12, 11, 13, 10, 10,
- 16, 16, 14, 14, 14, 14, 12, 11, 8, 13, 8, 11, 9, 12, 10, 10,
- 11, 14, 10, 12, 11, 13, 10, 10, 16, 16, 13, 14, 14, 14, 12, 11,
- 11, 14, 9, 12, 11, 13, 10, 10, 12, 15, 10, 12, 12, 14, 10, 10,
- 15, 16, 12, 12, 14, 14, 11, 9, 9, 13, 9, 11, 9, 12, 10, 10,
- 11, 14, 10, 12, 10, 12, 10, 10, 15, 16, 14, 14, 13, 14, 12, 11,
- 9, 13, 9, 11, 10, 12, 10, 10, 10, 14, 10, 12, 10, 12, 10, 10,
- 15, 16, 13, 13, 13, 14, 11, 10, 11, 15, 10, 12, 11, 13, 10, 10,
- 11, 15, 10, 12, 12, 13, 10, 9, 15, 16, 11, 12, 13, 14, 10, 9,
- 11, 15, 11, 13, 10, 12, 10, 10, 12, 16, 12, 13, 11, 13, 10, 10,
- 16, 16, 14, 14, 12, 13, 11, 9, 11, 15, 11, 13, 10, 13, 10, 10,
- 12, 15, 12, 13, 10, 12, 10, 10, 14, 16, 13, 13, 12, 13, 10, 9,
- 13, 16, 12, 13, 12, 13, 10, 9, 13, 16, 11, 12, 11, 13, 10, 9,
- 14, 16, 11, 12, 12, 12, 9, 7, 10, 15, 10, 12, 11, 13, 10, 10,
- 12, 16, 12, 13, 12, 13, 11, 10, 16, 16, 14, 14, 14, 15, 12, 10,
- 10, 14, 10, 12, 10, 13, 10, 10, 12, 15, 11, 12, 11, 13, 10, 10,
- 16, 16, 14, 13, 14, 14, 11, 9, 11, 14, 10, 11, 11, 12, 9, 9,
- 12, 15, 10, 11, 11, 13, 9, 8, 16, 16, 12, 12, 13, 13, 10, 7,
- 10, 15, 10, 12, 10, 13, 10, 10, 12, 15, 11, 12, 11, 13, 10, 10,
- 16, 16, 14, 13, 14, 14, 11, 9, 10, 14, 10, 12, 10, 12, 10, 10,
- 12, 15, 11, 12, 11, 13, 10, 10, 16, 16, 13, 13, 13, 14, 11, 9,
- 11, 14, 10, 11, 10, 12, 9, 8, 11, 14, 9, 11, 11, 12, 9, 8,
- 14, 16, 10, 11, 12, 13, 9, 7, 11, 15, 11, 12, 10, 12, 10, 9,
- 13, 16, 11, 12, 11, 12, 10, 9, 16, 16, 13, 13, 12, 13, 10, 7,
- 11, 15, 10, 12, 10, 12, 9, 8, 12, 15, 11, 12, 10, 12, 9, 8,
- 14, 16, 12, 12, 11, 12, 9, 7, 11, 14, 10, 11, 10, 12, 8, 7,
- 11, 14, 9, 10, 10, 11, 8, 6, 12, 15, 9, 9, 9, 10, 7, 4,
- },
- {
- 0, 6, 3, 7, 3, 7, 6, 7, 5, 9, 6, 9, 7, 9, 8, 8,
- 16, 16, 16, 16, 16, 16, 16, 11, 3, 8, 5, 8, 6, 8, 7, 7,
- 7, 11, 7, 10, 8, 10, 8, 9, 16, 16, 16, 16, 16, 16, 14, 10,
- 8, 16, 7, 11, 10, 16, 9, 9, 11, 16, 9, 14, 16, 16, 10, 9,
- 16, 16, 16, 16, 16, 16, 16, 10, 3, 8, 5, 8, 5, 8, 7, 7,
- 7, 11, 8, 10, 8, 10, 8, 9, 16, 16, 16, 16, 16, 16, 16, 11,
- 6, 10, 7, 9, 7, 10, 8, 8, 8, 11, 8, 10, 8, 11, 8, 8,
- 16, 16, 16, 16, 16, 16, 11, 10, 10, 16, 9, 13, 11, 16, 10, 9,
- 11, 16, 9, 11, 16, 16, 10, 9, 16, 16, 11, 16, 16, 16, 11, 9,
- 9, 16, 10, 11, 8, 11, 9, 9, 11, 16, 12, 16, 10, 16, 10, 10,
- 16, 16, 16, 16, 16, 16, 16, 10, 10, 16, 11, 16, 10, 16, 10, 10,
- 11, 16, 11, 16, 10, 16, 10, 9, 16, 16, 16, 16, 16, 16, 11, 9,
- 16, 16, 16, 16, 16, 16, 11, 9, 16, 16, 16, 16, 16, 16, 11, 9,
- 16, 16, 11, 16, 16, 16, 9, 7, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 2, 8, 5, 9, 6, 9, 8, 8, 8, 12, 9, 11, 9, 11, 10, 10,
- 16, 16, 14, 16, 14, 16, 14, 12, 5, 10, 6, 9, 8, 10, 8, 9,
- 9, 12, 9, 11, 10, 12, 10, 10, 16, 16, 14, 15, 15, 16, 13, 12,
- 10, 13, 9, 12, 11, 12, 10, 10, 12, 15, 11, 12, 12, 13, 11, 10,
- 16, 16, 15, 14, 15, 16, 13, 12, 6, 10, 8, 10, 7, 10, 8, 9,
- 9, 13, 10, 11, 10, 12, 10, 10, 16, 16, 14, 16, 14, 16, 13, 12,
- 7, 11, 8, 11, 9, 11, 9, 9, 10, 13, 10, 11, 10, 12, 10, 9,
- 16, 16, 14, 14, 14, 15, 12, 11, 11, 14, 11, 12, 11, 13, 10, 10,
- 12, 15, 11, 13, 12, 13, 11, 10, 16, 16, 14, 16, 15, 15, 13, 11,
- 10, 13, 11, 12, 10, 12, 10, 10, 12, 15, 12, 13, 11, 13, 11, 11,
- 16, 16, 15, 16, 14, 15, 13, 11, 11, 14, 11, 13, 11, 12, 11, 10,
- 12, 16, 12, 13, 12, 13, 11, 10, 16, 16, 15, 16, 13, 15, 12, 11,
- 13, 15, 12, 13, 13, 14, 11, 11, 14, 16, 13, 13, 13, 14, 11, 11,
- 16, 16, 15, 14, 15, 15, 12, 10, 3, 8, 6, 9, 7, 9, 8, 8,
- 8, 12, 9, 11, 9, 11, 9, 9, 16, 16, 15, 15, 15, 16, 13, 12,
- 6, 10, 7, 9, 8, 10, 8, 8, 9, 12, 9, 11, 10, 12, 10, 9,
- 16, 16, 14, 14, 14, 15, 13, 11, 10, 13, 9, 11, 11, 12, 10, 10,
- 12, 14, 11, 12, 12, 13, 11, 10, 16, 16, 14, 14, 15, 15, 13, 11,
- 6, 10, 8, 10, 7, 10, 8, 9, 10, 12, 10, 11, 10, 11, 10, 9,
- 16, 16, 14, 15, 14, 15, 13, 11, 8, 11, 8, 10, 9, 11, 9, 9,
- 9, 13, 9, 11, 10, 11, 9, 9, 16, 16, 13, 14, 14, 14, 12, 10,
- 11, 14, 10, 12, 11, 12, 10, 10, 12, 14, 11, 12, 12, 13, 10, 10,
- 16, 16, 13, 14, 15, 15, 12, 10, 10, 13, 11, 12, 10, 12, 10, 10,
- 12, 14, 12, 13, 11, 13, 11, 10, 16, 16, 15, 14, 14, 14, 12, 11,
- 11, 14, 11, 12, 10, 12, 10, 10, 12, 15, 12, 12, 11, 13, 10, 10,
- 16, 16, 14, 15, 13, 14, 12, 10, 13, 15, 12, 13, 12, 13, 11, 10,
- 13, 16, 12, 13, 12, 13, 11, 10, 16, 16, 13, 14, 13, 15, 11, 9,
- 6, 10, 8, 10, 8, 11, 9, 10, 11, 13, 11, 12, 11, 13, 11, 10,
- 16, 16, 16, 16, 16, 16, 13, 12, 8, 11, 9, 11, 9, 11, 10, 10,
- 11, 14, 11, 12, 11, 12, 11, 10, 16, 16, 15, 15, 16, 16, 13, 12,
- 11, 14, 10, 12, 12, 13, 11, 10, 13, 16, 12, 13, 13, 14, 11, 11,
- 16, 16, 15, 16, 16, 16, 13, 12, 8, 12, 9, 11, 9, 11, 10, 10,
- 11, 14, 11, 12, 11, 12, 11, 10, 16, 16, 16, 16, 16, 16, 13, 12,
- 9, 12, 10, 11, 10, 12, 10, 10, 11, 14, 11, 12, 11, 13, 10, 10,
- 16, 16, 15, 14, 15, 15, 13, 11, 12, 14, 11, 13, 12, 13, 11, 10,
- 12, 15, 11, 12, 13, 13, 11, 10, 16, 16, 14, 15, 16, 15, 13, 11,
- 11, 15, 12, 13, 11, 13, 11, 10, 13, 16, 13, 14, 12, 14, 11, 11,
- 16, 16, 16, 16, 15, 15, 13, 12, 12, 14, 12, 13, 11, 13, 11, 10,
- 13, 15, 12, 13, 11, 13, 11, 10, 16, 16, 15, 15, 13, 15, 13, 11,
- 13, 16, 13, 13, 13, 13, 12, 11, 13, 16, 13, 13, 13, 13, 11, 10,
- 16, 16, 13, 15, 14, 14, 12, 9, 9, 13, 10, 12, 11, 13, 11, 11,
- 13, 16, 13, 14, 13, 14, 12, 11, 16, 16, 16, 16, 16, 16, 14, 12,
- 10, 14, 11, 13, 11, 13, 11, 10, 13, 16, 13, 13, 13, 14, 12, 11,
- 16, 16, 16, 16, 16, 16, 14, 12, 11, 15, 11, 13, 12, 13, 11, 10,
- 14, 16, 12, 13, 13, 14, 12, 10, 16, 16, 15, 16, 16, 16, 13, 11,
- 10, 14, 11, 12, 11, 13, 11, 10, 13, 16, 12, 13, 12, 14, 12, 11,
- 16, 16, 16, 16, 16, 16, 14, 12, 11, 14, 11, 12, 11, 13, 11, 10,
- 13, 15, 12, 13, 12, 13, 11, 10, 16, 16, 15, 15, 16, 16, 13, 11,
- 12, 15, 12, 13, 12, 13, 11, 10, 13, 16, 12, 13, 13, 13, 11, 10,
- 16, 16, 14, 14, 16, 15, 13, 10, 12, 15, 12, 13, 12, 13, 11, 10,
- 14, 16, 13, 14, 13, 14, 12, 11, 16, 16, 16, 16, 15, 16, 13, 11,
- 12, 16, 12, 13, 12, 13, 11, 10, 13, 16, 13, 13, 12, 14, 11, 10,
- 16, 16, 15, 16, 14, 15, 13, 10, 12, 15, 12, 14, 12, 13, 11, 10,
- 13, 16, 12, 13, 12, 13, 11, 10, 16, 16, 13, 14, 13, 14, 11, 8,
- },
- },
- {
- {
- 0, 11, 5, 11, 7, 13, 10, 12, 7, 13, 9, 13, 10, 14, 12, 13,
- 16, 16, 15, 16, 16, 16, 15, 15, 4, 13, 6, 12, 10, 14, 11, 12,
- 8, 14, 9, 13, 11, 15, 12, 13, 16, 16, 15, 16, 15, 16, 15, 14,
- 9, 16, 9, 13, 13, 16, 12, 13, 12, 16, 10, 14, 14, 16, 13, 13,
- 16, 16, 14, 16, 16, 16, 14, 14, 5, 13, 8, 13, 8, 13, 11, 12,
- 9, 14, 10, 13, 10, 14, 12, 13, 16, 16, 15, 16, 15, 16, 14, 15,
- 7, 14, 9, 13, 10, 14, 11, 13, 9, 15, 10, 13, 11, 14, 12, 13,
- 16, 16, 14, 16, 15, 16, 14, 14, 11, 16, 11, 14, 13, 16, 12, 13,
- 12, 16, 11, 14, 14, 16, 12, 13, 16, 16, 14, 15, 16, 16, 14, 13,
- 10, 16, 12, 15, 10, 15, 12, 14, 12, 16, 13, 16, 11, 15, 13, 14,
- 16, 16, 16, 16, 14, 16, 14, 14, 11, 16, 12, 15, 11, 16, 12, 13,
- 12, 16, 13, 15, 12, 16, 12, 13, 16, 16, 16, 16, 14, 16, 14, 14,
- 14, 16, 13, 15, 14, 16, 13, 13, 14, 16, 14, 15, 14, 16, 13, 13,
- 16, 16, 15, 16, 15, 16, 13, 13, 2, 12, 6, 11, 7, 13, 10, 12,
- 7, 13, 9, 12, 10, 14, 11, 12, 16, 16, 15, 16, 15, 16, 14, 15,
- 5, 13, 6, 12, 9, 13, 10, 12, 8, 14, 9, 13, 11, 14, 11, 13,
- 16, 16, 14, 16, 15, 16, 14, 14, 9, 16, 8, 13, 12, 16, 11, 13,
- 11, 16, 10, 13, 13, 16, 12, 13, 16, 16, 13, 15, 16, 16, 13, 13,
- 5, 13, 8, 12, 7, 13, 10, 12, 8, 14, 10, 13, 10, 14, 11, 13,
- 16, 16, 14, 16, 15, 16, 14, 14, 7, 14, 8, 12, 9, 14, 11, 12,
- 8, 14, 9, 13, 10, 14, 11, 12, 15, 16, 14, 15, 14, 16, 13, 14,
- 11, 16, 10, 13, 13, 16, 12, 13, 11, 16, 10, 13, 13, 16, 12, 13,
- 16, 16, 13, 15, 15, 16, 13, 13, 9, 16, 12, 15, 9, 14, 11, 13,
- 11, 16, 13, 15, 11, 14, 12, 13, 16, 16, 15, 16, 14, 16, 14, 14,
- 11, 16, 12, 14, 11, 15, 12, 13, 11, 16, 12, 14, 11, 15, 12, 13,
- 16, 16, 15, 16, 14, 16, 13, 13, 13, 16, 13, 15, 13, 16, 12, 13,
- 14, 16, 13, 15, 13, 16, 12, 12, 16, 16, 14, 15, 14, 16, 12, 12,
- 4, 13, 7, 12, 8, 14, 11, 12, 9, 14, 10, 13, 11, 14, 12, 13,
- 16, 16, 15, 16, 16, 16, 15, 15, 6, 14, 7, 12, 10, 14, 11, 12,
- 9, 15, 10, 13, 11, 15, 12, 13, 16, 16, 15, 16, 16, 16, 14, 14,
- 9, 16, 8, 13, 12, 16, 11, 13, 12, 16, 10, 14, 13, 16, 12, 13,
- 16, 16, 14, 16, 16, 16, 14, 14, 6, 14, 8, 13, 8, 14, 11, 13,
- 9, 15, 10, 13, 11, 14, 12, 13, 16, 16, 15, 16, 16, 16, 14, 14,
- 7, 15, 9, 13, 10, 14, 11, 13, 9, 15, 10, 13, 11, 14, 11, 13,
- 16, 16, 14, 16, 15, 16, 14, 14, 10, 16, 10, 13, 12, 16, 12, 13,
- 11, 16, 10, 13, 13, 16, 12, 13, 16, 16, 13, 14, 15, 16, 13, 13,
- 9, 16, 12, 14, 9, 14, 11, 13, 12, 16, 12, 15, 11, 15, 12, 13,
- 16, 16, 16, 16, 15, 16, 14, 14, 10, 16, 12, 15, 11, 15, 12, 13,
- 11, 16, 12, 14, 11, 15, 12, 13, 16, 16, 14, 16, 13, 16, 13, 13,
- 13, 16, 13, 15, 13, 16, 12, 13, 13, 16, 12, 14, 13, 16, 12, 12,
- 15, 16, 13, 14, 13, 16, 12, 12, 6, 14, 8, 13, 9, 14, 10, 12,
- 10, 15, 10, 12, 11, 14, 11, 12, 16, 16, 14, 14, 14, 16, 13, 13,
- 7, 15, 8, 13, 9, 14, 10, 12, 10, 15, 10, 13, 11, 14, 11, 12,
- 16, 16, 14, 14, 14, 16, 13, 12, 9, 16, 8, 12, 11, 14, 10, 11,
- 11, 16, 10, 13, 11, 14, 10, 11, 16, 16, 13, 14, 14, 16, 12, 11,
- 7, 14, 9, 13, 9, 14, 10, 12, 10, 16, 10, 13, 11, 14, 11, 12,
- 16, 16, 14, 14, 14, 15, 13, 12, 7, 14, 9, 13, 9, 14, 10, 12,
- 9, 14, 10, 12, 10, 14, 11, 12, 15, 16, 13, 14, 14, 15, 12, 12,
- 9, 15, 9, 12, 11, 14, 10, 11, 10, 15, 9, 12, 11, 14, 10, 11,
- 14, 16, 11, 13, 13, 15, 11, 11, 9, 16, 10, 13, 9, 14, 10, 11,
- 11, 16, 11, 13, 10, 14, 10, 11, 16, 16, 14, 15, 13, 15, 12, 12,
- 9, 16, 10, 13, 9, 13, 10, 11, 10, 15, 10, 13, 10, 13, 10, 11,
- 14, 16, 13, 14, 12, 14, 11, 11, 11, 16, 10, 13, 11, 13, 9, 10,
- 11, 14, 10, 12, 10, 13, 9, 9, 13, 15, 10, 11, 11, 12, 9, 8,
- },
- {
- 0, 10, 5, 10, 6, 11, 8, 10, 7, 12, 8, 11, 9, 12, 9, 10,
- 14, 16, 13, 13, 13, 14, 12, 11, 5, 12, 6, 10, 8, 12, 9, 10,
- 8, 13, 8, 11, 9, 12, 9, 10, 14, 16, 12, 13, 13, 14, 11, 11,
- 9, 15, 8, 12, 11, 14, 10, 10, 11, 16, 9, 12, 12, 14, 10, 10,
- 14, 16, 11, 12, 13, 14, 11, 10, 5, 12, 8, 11, 7, 11, 9, 10,
- 8, 13, 9, 11, 9, 12, 9, 10, 14, 16, 12, 13, 13, 14, 11, 11,
- 7, 13, 8, 11, 9, 12, 9, 10, 9, 13, 9, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 12, 13, 11, 10, 11, 15, 10, 12, 12, 14, 10, 10,
- 12, 16, 10, 12, 12, 14, 10, 10, 14, 16, 11, 12, 13, 14, 10, 9,
- 10, 15, 11, 13, 9, 13, 10, 10, 11, 15, 12, 13, 10, 12, 10, 10,
- 14, 16, 13, 14, 12, 13, 11, 10, 11, 16, 11, 13, 10, 13, 10, 10,
- 11, 16, 11, 13, 10, 13, 10, 10, 14, 16, 13, 14, 12, 13, 11, 9,
- 13, 16, 12, 13, 12, 14, 11, 10, 14, 16, 12, 13, 12, 14, 10, 9,
- 16, 16, 12, 13, 13, 13, 10, 8, 3, 11, 6, 10, 7, 11, 9, 10,
- 8, 12, 8, 11, 9, 12, 9, 10, 14, 16, 13, 13, 13, 14, 11, 11,
- 5, 12, 6, 10, 8, 12, 9, 10, 8, 13, 8, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 13, 14, 11, 10, 9, 14, 8, 11, 11, 14, 10, 10,
- 11, 15, 9, 11, 12, 14, 10, 10, 14, 16, 11, 12, 13, 14, 11, 9,
- 6, 12, 8, 11, 7, 11, 9, 10, 8, 13, 9, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 13, 13, 11, 10, 7, 13, 8, 11, 8, 12, 9, 10,
- 9, 13, 9, 11, 9, 12, 9, 9, 14, 16, 12, 13, 12, 13, 11, 10,
- 10, 15, 9, 12, 11, 14, 10, 10, 11, 15, 9, 11, 11, 13, 10, 9,
- 14, 16, 11, 12, 13, 14, 10, 9, 9, 15, 11, 13, 9, 12, 10, 10,
- 11, 15, 11, 13, 9, 12, 10, 10, 14, 16, 13, 14, 12, 13, 11, 10,
- 10, 15, 11, 13, 10, 13, 10, 10, 11, 15, 11, 13, 10, 12, 10, 10,
- 14, 16, 12, 13, 11, 12, 10, 9, 13, 16, 12, 13, 12, 14, 10, 9,
- 13, 16, 11, 12, 12, 13, 10, 9, 14, 16, 11, 12, 12, 13, 9, 8,
- 7, 13, 8, 12, 9, 13, 10, 11, 10, 14, 10, 12, 11, 13, 11, 11,
- 16, 16, 13, 14, 14, 14, 12, 11, 8, 14, 8, 12, 9, 13, 10, 10,
- 10, 14, 10, 12, 11, 13, 10, 10, 16, 16, 13, 13, 14, 14, 12, 11,
- 10, 15, 9, 12, 11, 14, 10, 10, 12, 16, 10, 12, 12, 14, 10, 10,
- 16, 16, 12, 13, 14, 15, 11, 10, 8, 14, 9, 12, 9, 13, 10, 11,
- 10, 15, 10, 12, 10, 13, 10, 11, 16, 16, 13, 14, 14, 14, 12, 11,
- 8, 14, 9, 12, 9, 13, 10, 10, 10, 14, 10, 12, 10, 13, 10, 10,
- 15, 16, 13, 13, 13, 14, 11, 10, 10, 15, 10, 12, 12, 14, 10, 10,
- 11, 16, 9, 12, 12, 14, 10, 10, 14, 16, 11, 12, 13, 14, 10, 9,
- 11, 16, 11, 13, 10, 13, 10, 10, 12, 16, 12, 13, 10, 13, 11, 10,
- 15, 16, 14, 14, 12, 13, 11, 10, 11, 16, 11, 13, 10, 13, 10, 10,
- 11, 16, 12, 13, 10, 12, 10, 10, 14, 16, 13, 14, 11, 13, 11, 9,
- 13, 16, 12, 13, 12, 14, 10, 10, 12, 16, 11, 12, 12, 13, 10, 9,
- 14, 16, 11, 12, 11, 12, 9, 8, 10, 16, 10, 13, 11, 14, 11, 11,
- 12, 16, 11, 13, 12, 14, 11, 11, 16, 16, 14, 13, 14, 14, 12, 10,
- 10, 15, 10, 13, 10, 13, 10, 11, 12, 16, 11, 13, 11, 13, 11, 10,
- 16, 16, 14, 13, 14, 14, 12, 10, 11, 15, 9, 12, 11, 13, 10, 9,
- 12, 16, 10, 12, 12, 13, 10, 9, 16, 16, 12, 12, 13, 14, 10, 8,
- 10, 16, 10, 13, 10, 14, 11, 11, 12, 16, 11, 13, 12, 14, 11, 10,
- 16, 16, 14, 13, 14, 14, 12, 10, 9, 15, 9, 12, 10, 13, 10, 10,
- 11, 16, 10, 12, 11, 13, 10, 10, 16, 16, 13, 13, 13, 14, 11, 9,
- 10, 15, 9, 11, 11, 13, 9, 9, 11, 15, 9, 11, 11, 13, 9, 8,
- 14, 16, 10, 11, 13, 13, 10, 8, 11, 16, 11, 13, 10, 13, 10, 9,
- 13, 16, 11, 13, 11, 13, 10, 9, 16, 16, 13, 13, 13, 13, 10, 8,
- 11, 16, 10, 12, 10, 13, 10, 9, 11, 16, 11, 12, 10, 12, 9, 9,
- 15, 16, 12, 13, 11, 12, 10, 8, 11, 16, 10, 12, 11, 12, 9, 8,
- 11, 15, 9, 11, 10, 12, 9, 7, 13, 15, 9, 9, 10, 10, 7, 5,
- },
- {
- 0, 7, 3, 8, 4, 9, 7, 8, 5, 10, 7, 10, 8, 11, 8, 9,
- 16, 16, 16, 16, 16, 16, 11, 10, 2, 10, 4, 9, 7, 10, 7, 8,
- 7, 16, 7, 10, 9, 16, 8, 9, 16, 16, 16, 16, 16, 16, 11, 10,
- 8, 16, 7, 10, 10, 16, 9, 8, 10, 16, 9, 11, 16, 16, 9, 9,
- 16, 16, 16, 16, 16, 16, 11, 9, 3, 10, 6, 9, 6, 11, 8, 8,
- 7, 16, 8, 10, 9, 16, 9, 9, 16, 16, 16, 16, 16, 16, 11, 10,
- 5, 16, 7, 10, 8, 11, 8, 8, 8, 16, 8, 10, 9, 16, 8, 8,
- 16, 16, 11, 16, 16, 16, 10, 9, 9, 16, 9, 11, 11, 16, 9, 9,
- 11, 16, 9, 11, 11, 16, 9, 8, 16, 16, 10, 16, 16, 16, 10, 9,
- 8, 16, 10, 16, 8, 16, 10, 9, 12, 16, 11, 16, 10, 16, 10, 9,
- 16, 16, 16, 16, 16, 16, 12, 10, 10, 16, 11, 16, 10, 16, 10, 9,
- 11, 16, 11, 16, 10, 16, 10, 9, 16, 16, 16, 16, 16, 16, 11, 9,
- 16, 16, 16, 16, 16, 16, 10, 9, 16, 16, 11, 16, 16, 16, 10, 9,
- 16, 16, 10, 11, 11, 16, 9, 7, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 2, 9, 6, 9, 6, 10, 8, 9, 8, 12, 9, 11, 9, 12, 10, 10,
- 16, 16, 14, 14, 15, 15, 13, 12, 5, 11, 7, 10, 8, 11, 9, 9,
- 9, 13, 9, 11, 10, 12, 10, 10, 15, 16, 14, 14, 14, 16, 12, 11,
- 10, 14, 9, 11, 11, 13, 10, 10, 12, 15, 10, 12, 12, 13, 11, 10,
- 16, 16, 14, 15, 14, 15, 12, 11, 5, 11, 8, 10, 7, 11, 9, 9,
- 9, 13, 9, 12, 9, 12, 10, 10, 15, 16, 13, 14, 13, 16, 12, 11,
- 7, 12, 8, 11, 9, 11, 9, 10, 9, 13, 9, 11, 10, 12, 9, 9,
- 16, 16, 13, 14, 13, 14, 11, 11, 10, 14, 10, 12, 11, 13, 10, 10,
- 11, 16, 11, 12, 12, 13, 10, 10, 16, 16, 13, 14, 13, 14, 12, 11,
- 10, 14, 11, 13, 10, 13, 10, 11, 12, 16, 12, 13, 10, 12, 11, 11,
- 16, 16, 14, 15, 13, 14, 12, 11, 11, 15, 11, 13, 11, 13, 10, 10,
- 12, 15, 12, 13, 11, 13, 11, 10, 15, 16, 14, 15, 13, 15, 12, 11,
- 12, 16, 12, 13, 12, 14, 11, 11, 13, 16, 12, 13, 12, 14, 11, 10,
- 16, 16, 13, 14, 13, 14, 11, 10, 3, 10, 6, 9, 7, 10, 8, 9,
- 9, 12, 9, 11, 10, 12, 9, 10, 15, 16, 14, 14, 14, 14, 12, 11,
- 6, 11, 7, 10, 8, 10, 9, 9, 9, 13, 9, 11, 10, 12, 9, 9,
- 15, 16, 13, 14, 14, 15, 12, 11, 10, 14, 9, 11, 11, 12, 10, 10,
- 12, 14, 10, 12, 11, 13, 10, 10, 15, 16, 13, 14, 14, 16, 12, 11,
- 6, 11, 8, 10, 7, 11, 9, 9, 9, 13, 9, 11, 9, 12, 9, 9,
- 15, 16, 14, 14, 13, 14, 12, 11, 7, 11, 8, 11, 8, 11, 9, 9,
- 9, 12, 9, 11, 9, 12, 9, 9, 15, 16, 13, 13, 13, 14, 11, 10,
- 10, 13, 10, 12, 11, 13, 10, 10, 11, 15, 10, 12, 11, 13, 10, 10,
- 14, 16, 12, 13, 13, 14, 11, 10, 10, 14, 11, 12, 9, 12, 10, 10,
- 11, 15, 11, 13, 10, 13, 10, 10, 15, 16, 14, 14, 13, 14, 12, 11,
- 10, 14, 10, 12, 10, 12, 10, 10, 11, 15, 11, 12, 10, 12, 10, 10,
- 15, 16, 13, 14, 12, 14, 11, 10, 12, 16, 11, 13, 12, 14, 11, 10,
- 12, 16, 12, 13, 11, 13, 10, 10, 15, 16, 12, 14, 12, 14, 11, 9,
- 7, 12, 9, 11, 9, 12, 10, 10, 11, 14, 11, 12, 11, 13, 11, 11,
- 16, 16, 15, 16, 15, 16, 13, 12, 8, 12, 9, 11, 9, 12, 10, 10,
- 11, 14, 11, 12, 11, 13, 10, 10, 16, 16, 14, 15, 15, 16, 13, 12,
- 11, 14, 10, 12, 11, 13, 10, 10, 12, 16, 11, 13, 12, 14, 11, 10,
- 16, 16, 14, 15, 14, 16, 12, 11, 8, 13, 9, 11, 9, 12, 10, 10,
- 11, 14, 11, 12, 11, 13, 10, 10, 16, 16, 15, 15, 14, 15, 13, 12,
- 9, 13, 9, 12, 9, 12, 10, 10, 11, 14, 10, 12, 10, 12, 10, 10,
- 16, 16, 14, 15, 14, 14, 12, 11, 11, 15, 11, 12, 11, 13, 11, 10,
- 12, 16, 11, 12, 12, 13, 11, 10, 16, 16, 13, 15, 14, 15, 11, 11,
- 11, 16, 11, 13, 10, 13, 11, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 16, 16, 14, 15, 14, 15, 13, 11, 11, 16, 11, 13, 11, 13, 11, 10,
- 12, 16, 12, 13, 10, 13, 11, 10, 16, 16, 14, 14, 12, 14, 12, 10,
- 12, 16, 12, 14, 12, 14, 11, 11, 13, 16, 12, 14, 12, 14, 11, 10,
- 15, 16, 12, 14, 12, 14, 11, 9, 9, 14, 11, 13, 11, 13, 11, 11,
- 13, 16, 12, 14, 13, 14, 12, 11, 16, 16, 16, 16, 16, 16, 14, 12,
- 9, 14, 10, 12, 10, 13, 11, 11, 12, 16, 12, 13, 13, 14, 11, 11,
- 16, 16, 16, 16, 16, 14, 13, 12, 10, 15, 11, 13, 11, 14, 11, 10,
- 13, 16, 12, 13, 12, 15, 11, 10, 16, 16, 14, 16, 15, 16, 13, 11,
- 10, 14, 10, 13, 11, 14, 11, 11, 13, 16, 12, 13, 12, 14, 11, 11,
- 16, 16, 16, 16, 15, 16, 13, 12, 10, 14, 10, 12, 10, 13, 10, 11,
- 12, 15, 12, 13, 12, 13, 11, 10, 16, 16, 14, 14, 15, 15, 13, 11,
- 11, 16, 11, 13, 11, 14, 11, 10, 12, 16, 11, 13, 12, 14, 11, 10,
- 16, 16, 13, 14, 14, 15, 12, 10, 11, 16, 12, 13, 11, 14, 11, 10,
- 13, 16, 13, 14, 12, 14, 11, 11, 16, 16, 15, 16, 15, 15, 12, 11,
- 11, 16, 12, 13, 11, 14, 11, 10, 13, 16, 12, 13, 11, 14, 11, 10,
- 16, 16, 14, 15, 13, 14, 12, 10, 12, 16, 12, 14, 12, 14, 10, 10,
- 12, 16, 11, 13, 11, 14, 10, 10, 14, 16, 11, 13, 12, 13, 10, 8,
- },
- },
- {
- {
- 0, 12, 6, 13, 7, 14, 11, 14, 8, 14, 10, 14, 11, 15, 13, 15,
- 16, 16, 16, 16, 16, 16, 16, 16, 5, 14, 7, 13, 10, 16, 12, 14,
- 9, 16, 10, 14, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 9, 14, 14, 16, 13, 16, 12, 16, 11, 16, 16, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 5, 14, 9, 14, 8, 14, 12, 14,
- 9, 16, 11, 14, 11, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 14, 11, 16, 12, 14, 10, 16, 11, 15, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 12, 16, 14, 16, 14, 16,
- 13, 16, 12, 16, 15, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 13, 16, 11, 16, 14, 16, 13, 16, 14, 16, 13, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 14, 16, 13, 16, 14, 16,
- 13, 16, 14, 16, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 15, 16, 16, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 12, 6, 12, 8, 14, 11, 13,
- 8, 14, 10, 13, 11, 14, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 14, 7, 13, 10, 14, 11, 14, 9, 16, 10, 14, 12, 16, 13, 15,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 9, 14, 13, 16, 13, 14,
- 12, 16, 11, 15, 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 14, 9, 13, 8, 14, 12, 14, 9, 16, 11, 14, 11, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 15, 9, 14, 10, 16, 12, 14,
- 9, 16, 10, 14, 11, 16, 12, 14, 16, 16, 16, 16, 16, 16, 15, 16,
- 11, 16, 11, 15, 14, 16, 13, 15, 12, 16, 11, 15, 14, 16, 13, 14,
- 16, 16, 14, 16, 16, 16, 14, 16, 10, 16, 13, 16, 10, 16, 13, 16,
- 12, 16, 14, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 13, 16, 12, 16, 13, 16, 12, 16, 13, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 15, 16, 14, 16, 14, 16, 16, 16, 14, 16,
- 15, 16, 14, 16, 14, 16, 14, 16, 16, 16, 16, 16, 16, 16, 14, 14,
- 4, 14, 8, 13, 9, 16, 12, 14, 9, 16, 11, 14, 11, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 15, 8, 13, 10, 16, 12, 14,
- 10, 16, 11, 14, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 9, 14, 13, 16, 13, 15, 12, 16, 11, 16, 14, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 9, 14, 9, 16, 12, 14,
- 10, 16, 11, 15, 12, 16, 13, 15, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 14, 11, 16, 12, 14, 10, 16, 11, 14, 12, 16, 13, 15,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 11, 15, 14, 16, 13, 15,
- 12, 16, 11, 15, 14, 16, 13, 14, 16, 16, 14, 16, 16, 16, 14, 16,
- 10, 16, 13, 16, 10, 16, 13, 15, 13, 16, 14, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 13, 16, 12, 16, 13, 16,
- 12, 16, 13, 16, 11, 16, 13, 16, 16, 16, 16, 16, 15, 16, 15, 16,
- 14, 16, 14, 16, 15, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 14,
- 16, 16, 14, 16, 15, 16, 14, 14, 6, 16, 9, 14, 10, 16, 12, 14,
- 10, 16, 11, 13, 12, 16, 13, 14, 16, 16, 16, 16, 16, 16, 14, 14,
- 7, 16, 9, 14, 10, 16, 12, 13, 11, 16, 11, 14, 12, 16, 12, 14,
- 16, 16, 16, 16, 16, 16, 14, 14, 9, 16, 9, 14, 12, 16, 11, 13,
- 12, 16, 11, 14, 12, 16, 12, 13, 16, 16, 14, 16, 16, 16, 13, 14,
- 7, 16, 10, 14, 10, 16, 12, 14, 11, 16, 11, 14, 11, 16, 12, 14,
- 16, 16, 16, 16, 16, 16, 14, 14, 8, 16, 10, 14, 10, 16, 11, 13,
- 10, 16, 11, 13, 11, 16, 12, 13, 16, 16, 14, 16, 16, 16, 14, 14,
- 10, 16, 9, 13, 12, 16, 11, 13, 11, 16, 10, 13, 12, 16, 11, 12,
- 16, 16, 13, 15, 15, 16, 13, 13, 9, 16, 11, 14, 9, 16, 11, 13,
- 12, 16, 12, 16, 12, 16, 12, 13, 16, 16, 16, 16, 15, 16, 14, 14,
- 10, 16, 11, 14, 10, 16, 11, 13, 11, 16, 12, 14, 10, 15, 11, 13,
- 16, 16, 15, 16, 13, 16, 13, 13, 12, 16, 11, 13, 12, 16, 11, 12,
- 12, 16, 11, 13, 11, 14, 11, 11, 13, 16, 12, 13, 12, 14, 11, 11,
- },
- {
- 0, 10, 5, 10, 6, 11, 8, 10, 7, 12, 8, 11, 8, 12, 9, 10,
- 14, 16, 13, 13, 13, 14, 12, 11, 4, 12, 6, 10, 8, 12, 9, 10,
- 8, 13, 8, 11, 9, 12, 9, 10, 14, 16, 12, 13, 13, 14, 11, 11,
- 9, 15, 8, 12, 12, 14, 10, 11, 11, 16, 9, 12, 12, 14, 10, 10,
- 14, 16, 11, 13, 13, 15, 11, 11, 4, 12, 8, 11, 6, 11, 9, 10,
- 8, 13, 9, 11, 8, 12, 9, 10, 14, 16, 12, 13, 13, 14, 11, 11,
- 7, 13, 8, 11, 9, 12, 9, 10, 8, 13, 9, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 12, 13, 11, 10, 11, 16, 10, 12, 12, 14, 10, 11,
- 11, 16, 10, 12, 12, 14, 10, 10, 15, 16, 11, 13, 13, 14, 11, 10,
- 10, 16, 11, 13, 9, 13, 10, 11, 11, 15, 12, 13, 10, 12, 10, 11,
- 15, 16, 13, 14, 12, 13, 11, 11, 11, 16, 11, 13, 10, 13, 10, 11,
- 12, 16, 11, 13, 10, 13, 10, 10, 15, 16, 13, 14, 12, 13, 11, 10,
- 13, 16, 12, 13, 13, 14, 11, 11, 14, 16, 12, 13, 12, 14, 11, 10,
- 16, 16, 13, 13, 13, 14, 11, 9, 3, 11, 6, 10, 6, 11, 9, 10,
- 8, 12, 8, 11, 9, 12, 9, 10, 14, 16, 13, 13, 13, 13, 12, 11,
- 5, 12, 6, 10, 8, 12, 9, 10, 8, 13, 8, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 13, 14, 11, 11, 9, 15, 8, 11, 11, 14, 10, 10,
- 11, 15, 9, 11, 12, 14, 10, 10, 14, 16, 11, 12, 13, 14, 11, 10,
- 5, 12, 8, 11, 7, 11, 9, 10, 8, 13, 9, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 13, 13, 11, 11, 7, 13, 8, 11, 8, 12, 9, 10,
- 8, 13, 8, 11, 9, 12, 9, 9, 13, 16, 11, 13, 12, 13, 11, 10,
- 10, 15, 9, 12, 11, 14, 10, 10, 11, 15, 9, 11, 11, 13, 10, 10,
- 14, 16, 11, 12, 13, 14, 10, 10, 9, 16, 11, 13, 9, 12, 10, 10,
- 11, 16, 11, 13, 9, 12, 10, 10, 15, 16, 13, 14, 12, 13, 11, 10,
- 11, 16, 11, 13, 10, 13, 10, 10, 11, 15, 11, 13, 9, 12, 10, 10,
- 14, 16, 12, 13, 11, 13, 10, 10, 13, 16, 12, 13, 12, 14, 11, 10,
- 13, 16, 11, 13, 12, 13, 10, 10, 14, 16, 11, 12, 12, 13, 10, 9,
- 7, 14, 8, 12, 9, 13, 10, 11, 10, 14, 10, 12, 11, 13, 11, 11,
- 16, 16, 14, 14, 14, 14, 12, 12, 7, 14, 8, 12, 9, 13, 10, 11,
- 10, 14, 10, 12, 11, 13, 10, 11, 16, 16, 13, 13, 14, 14, 12, 11,
- 10, 15, 9, 12, 12, 14, 10, 10, 12, 16, 9, 12, 12, 14, 10, 10,
- 16, 16, 12, 13, 14, 15, 12, 11, 8, 14, 9, 12, 9, 13, 10, 11,
- 10, 15, 10, 12, 10, 13, 10, 11, 16, 16, 14, 14, 14, 14, 12, 11,
- 8, 14, 9, 12, 9, 13, 10, 11, 10, 14, 10, 12, 10, 13, 10, 10,
- 15, 16, 13, 13, 13, 14, 12, 11, 10, 15, 10, 12, 12, 14, 10, 10,
- 11, 16, 9, 12, 12, 14, 10, 10, 14, 16, 11, 12, 13, 14, 11, 10,
- 11, 16, 11, 14, 9, 13, 10, 11, 12, 16, 12, 14, 10, 13, 11, 11,
- 16, 16, 14, 15, 13, 14, 12, 11, 11, 16, 12, 14, 10, 13, 11, 11,
- 11, 16, 11, 13, 10, 13, 10, 10, 15, 16, 13, 14, 12, 13, 11, 10,
- 13, 16, 12, 14, 13, 14, 11, 10, 12, 16, 11, 13, 12, 13, 10, 10,
- 14, 16, 11, 12, 11, 13, 10, 9, 10, 16, 10, 13, 11, 14, 11, 11,
- 12, 16, 11, 13, 12, 14, 11, 11, 16, 16, 14, 13, 14, 15, 12, 11,
- 10, 16, 10, 13, 10, 14, 11, 11, 12, 16, 11, 13, 11, 14, 11, 11,
- 16, 16, 14, 13, 14, 14, 12, 11, 11, 15, 9, 12, 11, 14, 10, 10,
- 13, 16, 10, 12, 12, 14, 10, 10, 16, 16, 13, 13, 14, 14, 11, 10,
- 10, 16, 10, 13, 11, 14, 11, 11, 12, 16, 11, 13, 12, 14, 11, 11,
- 16, 16, 14, 14, 14, 14, 12, 11, 9, 16, 10, 13, 10, 14, 11, 11,
- 11, 15, 11, 12, 11, 13, 11, 11, 16, 16, 13, 13, 14, 14, 12, 10,
- 10, 15, 9, 12, 11, 14, 10, 10, 11, 16, 9, 11, 11, 13, 10, 9,
- 15, 16, 11, 12, 13, 14, 10, 9, 11, 16, 11, 13, 10, 13, 10, 10,
- 13, 16, 12, 13, 11, 13, 10, 10, 16, 16, 14, 14, 13, 13, 11, 10,
- 11, 16, 11, 13, 10, 13, 10, 10, 12, 16, 11, 13, 10, 13, 10, 10,
- 15, 16, 13, 13, 12, 13, 11, 9, 11, 16, 11, 12, 11, 13, 10, 9,
- 11, 15, 10, 11, 11, 12, 9, 8, 13, 15, 10, 10, 10, 11, 8, 7,
- },
- {
- 0, 9, 3, 8, 5, 9, 7, 8, 5, 11, 6, 9, 8, 11, 8, 9,
- 16, 16, 16, 16, 16, 16, 11, 10, 2, 10, 4, 9, 7, 10, 7, 8,
- 7, 16, 7, 10, 9, 11, 8, 9, 16, 16, 11, 16, 16, 16, 11, 10,
- 7, 16, 7, 10, 10, 16, 8, 9, 10, 16, 8, 10, 11, 16, 9, 9,
- 16, 16, 16, 16, 16, 16, 11, 10, 3, 11, 6, 9, 6, 11, 8, 8,
- 7, 16, 8, 10, 8, 11, 8, 9, 16, 16, 15, 16, 16, 16, 11, 10,
- 5, 11, 7, 9, 8, 11, 8, 8, 7, 16, 7, 10, 8, 11, 8, 8,
- 16, 16, 11, 16, 16, 16, 10, 9, 9, 16, 8, 11, 11, 16, 9, 9,
- 10, 16, 8, 11, 11, 16, 9, 9, 16, 16, 10, 16, 16, 16, 10, 9,
- 8, 16, 10, 11, 8, 16, 9, 9, 11, 16, 11, 16, 10, 16, 10, 9,
- 16, 16, 16, 16, 16, 16, 11, 10, 9, 16, 10, 16, 10, 16, 9, 9,
- 10, 16, 10, 16, 9, 16, 9, 9, 16, 16, 16, 16, 15, 16, 10, 9,
- 16, 16, 11, 16, 16, 16, 10, 10, 13, 16, 11, 16, 11, 16, 10, 9,
- 16, 16, 10, 11, 11, 16, 9, 8, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 1, 10, 6, 10, 7, 11, 9, 10, 8, 12, 9, 12, 9, 12, 10, 10,
- 16, 16, 14, 16, 14, 15, 13, 12, 5, 12, 7, 10, 9, 11, 9, 10,
- 9, 13, 9, 12, 10, 13, 10, 10, 16, 16, 14, 15, 14, 14, 13, 12,
- 10, 15, 10, 12, 12, 14, 11, 11, 12, 16, 11, 13, 12, 14, 11, 11,
- 16, 16, 14, 16, 15, 16, 13, 12, 6, 12, 8, 11, 8, 11, 10, 10,
- 9, 13, 10, 12, 10, 12, 10, 10, 15, 16, 13, 15, 13, 14, 12, 12,
- 7, 13, 9, 11, 9, 12, 10, 10, 9, 14, 10, 12, 10, 13, 10, 10,
- 15, 16, 13, 15, 13, 14, 12, 11, 11, 15, 11, 13, 12, 14, 11, 11,
- 12, 16, 11, 13, 12, 14, 11, 11, 16, 16, 13, 15, 14, 16, 12, 11,
- 10, 16, 12, 14, 10, 13, 11, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 16, 16, 15, 16, 14, 16, 13, 12, 11, 16, 12, 14, 11, 14, 11, 11,
- 12, 16, 12, 14, 11, 14, 11, 11, 16, 16, 14, 15, 13, 15, 12, 12,
- 13, 16, 13, 15, 13, 15, 12, 12, 13, 16, 12, 15, 12, 15, 11, 11,
- 16, 16, 13, 16, 13, 15, 12, 11, 4, 11, 7, 10, 7, 11, 9, 10,
- 9, 13, 9, 12, 10, 12, 10, 10, 15, 16, 14, 15, 14, 15, 13, 12,
- 6, 12, 7, 11, 9, 11, 9, 10, 9, 13, 9, 12, 10, 12, 10, 10,
- 15, 16, 14, 15, 14, 15, 12, 12, 10, 15, 9, 12, 12, 13, 11, 11,
- 12, 15, 11, 13, 12, 14, 11, 11, 16, 16, 13, 15, 14, 16, 12, 12,
- 6, 12, 8, 11, 8, 11, 9, 10, 9, 14, 10, 12, 10, 12, 10, 10,
- 14, 16, 13, 14, 13, 14, 12, 12, 8, 13, 9, 11, 9, 12, 10, 10,
- 9, 13, 9, 12, 9, 12, 9, 10, 14, 16, 13, 14, 13, 14, 12, 11,
- 11, 15, 11, 13, 11, 14, 11, 11, 12, 16, 10, 13, 12, 13, 11, 10,
- 15, 16, 12, 15, 13, 16, 12, 11, 10, 15, 11, 13, 10, 13, 11, 11,
- 12, 16, 12, 14, 11, 13, 11, 11, 16, 16, 14, 15, 13, 16, 13, 12,
- 11, 16, 11, 14, 11, 13, 11, 11, 12, 16, 12, 14, 10, 13, 11, 11,
- 15, 16, 13, 16, 12, 14, 12, 11, 12, 16, 12, 14, 12, 15, 11, 11,
- 13, 16, 12, 14, 12, 14, 11, 11, 15, 16, 13, 15, 13, 15, 11, 10,
- 7, 13, 9, 12, 10, 13, 11, 11, 11, 15, 12, 13, 12, 13, 11, 11,
- 16, 16, 15, 16, 16, 16, 14, 13, 8, 13, 9, 12, 10, 13, 11, 11,
- 12, 15, 11, 13, 12, 13, 11, 11, 16, 16, 14, 15, 15, 16, 13, 12,
- 11, 16, 11, 13, 12, 14, 11, 11, 13, 16, 12, 14, 13, 15, 12, 11,
- 16, 16, 14, 16, 15, 16, 13, 12, 9, 15, 10, 13, 10, 13, 11, 11,
- 12, 15, 11, 13, 11, 13, 11, 11, 16, 16, 14, 16, 16, 16, 13, 12,
- 9, 14, 10, 13, 10, 13, 11, 11, 11, 14, 11, 13, 11, 13, 11, 11,
- 16, 16, 14, 16, 14, 16, 12, 12, 11, 16, 11, 14, 12, 14, 12, 11,
- 12, 16, 11, 13, 13, 14, 11, 11, 16, 16, 13, 15, 14, 16, 12, 11,
- 12, 16, 12, 14, 11, 14, 11, 11, 13, 16, 13, 14, 12, 15, 12, 11,
- 16, 16, 16, 16, 14, 16, 13, 12, 12, 16, 12, 14, 11, 14, 12, 11,
- 12, 16, 12, 15, 11, 14, 11, 11, 16, 16, 14, 16, 13, 15, 12, 12,
- 13, 16, 13, 16, 13, 16, 12, 12, 13, 16, 12, 15, 12, 16, 11, 11,
- 14, 16, 12, 15, 12, 15, 11, 10, 9, 16, 11, 14, 12, 14, 12, 12,
- 13, 16, 13, 15, 14, 16, 12, 12, 16, 16, 16, 16, 16, 16, 14, 13,
- 10, 16, 11, 14, 12, 14, 12, 12, 13, 16, 13, 14, 13, 16, 12, 12,
- 16, 16, 15, 16, 16, 16, 13, 12, 11, 16, 11, 14, 12, 15, 12, 11,
- 13, 16, 12, 14, 13, 16, 12, 11, 16, 16, 14, 16, 16, 16, 13, 12,
- 11, 16, 11, 14, 12, 14, 12, 12, 13, 16, 12, 15, 13, 16, 12, 12,
- 16, 16, 16, 16, 16, 16, 14, 13, 10, 16, 11, 14, 11, 15, 11, 11,
- 13, 16, 12, 14, 12, 14, 12, 11, 16, 16, 14, 16, 16, 16, 13, 12,
- 11, 16, 11, 15, 12, 15, 12, 11, 13, 16, 11, 14, 13, 15, 12, 11,
- 16, 16, 13, 16, 14, 16, 12, 11, 12, 16, 12, 15, 11, 15, 12, 11,
- 14, 16, 13, 15, 12, 16, 12, 11, 16, 16, 15, 16, 14, 16, 13, 12,
- 11, 16, 12, 15, 11, 15, 11, 11, 13, 16, 13, 16, 11, 15, 11, 11,
- 16, 16, 14, 16, 13, 15, 12, 11, 12, 16, 12, 15, 12, 16, 11, 11,
- 12, 16, 11, 15, 12, 14, 11, 11, 13, 16, 12, 13, 11, 13, 10, 9,
- },
- },
- {
- {
- 0, 13, 6, 13, 8, 14, 12, 16, 8, 16, 11, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 16, 7, 14, 11, 16, 13, 16,
- 9, 16, 11, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 10, 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 5, 16, 10, 16, 8, 16, 13, 16,
- 10, 16, 12, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 11, 16, 13, 16, 10, 16, 12, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 12, 16, 16, 16, 16, 16,
- 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 11, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16,
- 14, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 13, 7, 13, 8, 16, 12, 16,
- 8, 16, 10, 16, 11, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 16, 7, 14, 10, 16, 12, 16, 9, 16, 10, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 10, 16, 9, 16, 14, 16, 14, 16,
- 13, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 9, 16, 8, 16, 12, 16, 9, 16, 11, 16, 11, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 16, 10, 16, 11, 16, 13, 16,
- 9, 16, 11, 16, 11, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 12, 16, 16, 16, 14, 16, 13, 16, 12, 16, 16, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 10, 16, 13, 16, 11, 16, 14, 16,
- 13, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 14, 16, 13, 16, 14, 16, 13, 16, 14, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 16, 8, 16, 9, 16, 13, 16, 10, 16, 11, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 8, 16, 11, 16, 13, 16,
- 10, 16, 11, 16, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 9, 16, 13, 16, 13, 16, 13, 16, 12, 16, 16, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 10, 16, 10, 16, 13, 16,
- 10, 16, 12, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 11, 16, 13, 16, 10, 16, 11, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 11, 16, 16, 16, 14, 16,
- 12, 16, 11, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 13, 16, 10, 16, 13, 16, 13, 16, 16, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 13, 16, 12, 16, 14, 16,
- 12, 16, 15, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 10, 16, 10, 16, 13, 16,
- 11, 16, 11, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 9, 16, 11, 16, 12, 16, 11, 16, 11, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 9, 16, 12, 16, 12, 16,
- 13, 16, 11, 16, 13, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 10, 16, 12, 16, 11, 16, 12, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 10, 16, 11, 16, 12, 16,
- 10, 16, 11, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 10, 14, 12, 16, 12, 16, 11, 16, 10, 14, 13, 16, 12, 14,
- 16, 16, 14, 16, 16, 16, 14, 16, 9, 16, 12, 16, 10, 16, 12, 16,
- 13, 16, 13, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 11, 16, 12, 16, 11, 16, 12, 16, 11, 16, 12, 15,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 12, 16, 13, 16, 12, 13,
- 12, 16, 12, 16, 12, 16, 12, 13, 16, 16, 13, 14, 13, 16, 13, 13,
- },
- {
- 0, 10, 5, 10, 5, 10, 8, 10, 6, 11, 8, 11, 8, 11, 9, 10,
- 14, 16, 13, 14, 13, 14, 12, 12, 4, 12, 5, 10, 8, 12, 9, 10,
- 7, 12, 8, 11, 9, 12, 9, 10, 14, 16, 12, 13, 13, 14, 12, 12,
- 9, 16, 8, 12, 12, 14, 10, 11, 11, 16, 9, 12, 12, 14, 11, 11,
- 14, 16, 12, 13, 14, 15, 12, 12, 4, 12, 7, 11, 6, 11, 9, 10,
- 8, 12, 9, 11, 8, 11, 9, 10, 14, 16, 12, 14, 13, 14, 12, 12,
- 7, 13, 8, 11, 8, 12, 9, 10, 8, 13, 8, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 12, 13, 11, 11, 11, 16, 10, 12, 12, 14, 11, 11,
- 12, 16, 10, 12, 12, 14, 11, 11, 16, 16, 12, 13, 14, 15, 12, 11,
- 10, 16, 11, 14, 9, 13, 10, 11, 11, 16, 12, 14, 10, 13, 11, 11,
- 15, 16, 13, 14, 13, 14, 12, 12, 11, 16, 12, 14, 10, 13, 11, 11,
- 12, 16, 12, 14, 11, 13, 11, 11, 15, 16, 13, 14, 13, 14, 12, 11,
- 14, 16, 13, 14, 13, 15, 12, 12, 14, 16, 12, 14, 13, 15, 11, 11,
- 16, 16, 13, 14, 14, 15, 12, 11, 3, 11, 5, 10, 6, 11, 9, 10,
- 7, 12, 8, 11, 9, 11, 9, 10, 14, 16, 13, 13, 13, 14, 12, 12,
- 5, 12, 6, 10, 8, 12, 9, 10, 8, 13, 8, 11, 9, 12, 9, 10,
- 14, 16, 12, 13, 13, 14, 12, 12, 9, 16, 8, 11, 11, 14, 10, 11,
- 11, 16, 9, 12, 12, 14, 10, 11, 15, 16, 12, 13, 14, 15, 12, 11,
- 5, 12, 7, 11, 6, 11, 9, 10, 8, 13, 9, 11, 8, 11, 9, 10,
- 14, 16, 12, 14, 13, 13, 12, 12, 7, 13, 8, 11, 8, 12, 9, 10,
- 8, 12, 8, 11, 9, 12, 9, 10, 13, 16, 12, 13, 12, 13, 11, 11,
- 10, 16, 9, 12, 12, 14, 10, 11, 11, 15, 9, 12, 12, 14, 10, 11,
- 14, 16, 11, 13, 13, 14, 11, 11, 9, 16, 11, 14, 8, 13, 10, 11,
- 11, 16, 12, 13, 10, 13, 10, 11, 16, 16, 13, 15, 13, 14, 12, 12,
- 11, 16, 11, 14, 10, 13, 10, 11, 11, 16, 11, 13, 10, 13, 10, 11,
- 14, 16, 13, 14, 12, 13, 11, 11, 14, 16, 12, 14, 13, 15, 11, 11,
- 13, 16, 12, 13, 12, 14, 11, 11, 14, 16, 12, 13, 12, 13, 11, 10,
- 6, 14, 8, 12, 9, 13, 10, 11, 10, 14, 10, 12, 11, 13, 11, 12,
- 16, 16, 14, 14, 14, 14, 13, 12, 7, 14, 8, 12, 9, 13, 10, 11,
- 10, 14, 10, 12, 11, 13, 11, 11, 16, 16, 13, 14, 14, 15, 13, 12,
- 10, 16, 8, 12, 12, 14, 10, 11, 12, 16, 10, 12, 13, 15, 11, 11,
- 16, 16, 13, 14, 15, 16, 12, 12, 8, 15, 9, 13, 9, 13, 10, 11,
- 10, 15, 10, 13, 10, 13, 11, 11, 16, 16, 14, 14, 14, 14, 13, 12,
- 8, 15, 9, 12, 10, 13, 10, 11, 10, 14, 10, 12, 10, 13, 10, 11,
- 16, 16, 13, 14, 13, 14, 12, 12, 10, 16, 10, 13, 12, 15, 11, 11,
- 11, 16, 9, 12, 12, 14, 11, 11, 14, 16, 11, 13, 14, 16, 12, 11,
- 10, 16, 12, 14, 9, 13, 11, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 16, 16, 15, 16, 14, 14, 13, 12, 11, 16, 12, 14, 11, 14, 11, 11,
- 11, 16, 12, 14, 10, 13, 11, 11, 15, 16, 13, 15, 12, 14, 12, 11,
- 14, 16, 13, 14, 13, 16, 12, 12, 12, 16, 12, 13, 12, 14, 11, 11,
- 14, 16, 11, 12, 12, 13, 10, 10, 9, 16, 10, 14, 11, 15, 12, 12,
- 12, 16, 11, 13, 12, 15, 12, 12, 16, 16, 14, 13, 15, 15, 13, 12,
- 10, 16, 10, 14, 11, 15, 11, 12, 12, 16, 11, 13, 12, 14, 12, 12,
- 16, 16, 14, 13, 15, 14, 13, 12, 11, 16, 9, 12, 12, 14, 11, 11,
- 13, 16, 11, 13, 13, 15, 11, 11, 16, 16, 14, 14, 16, 16, 12, 12,
- 10, 16, 10, 14, 11, 14, 11, 12, 12, 16, 11, 13, 12, 14, 12, 12,
- 16, 16, 14, 14, 15, 15, 13, 12, 10, 16, 10, 13, 11, 14, 11, 12,
- 11, 16, 11, 13, 11, 14, 11, 12, 16, 16, 14, 14, 14, 14, 13, 12,
- 11, 16, 10, 12, 12, 15, 11, 11, 12, 16, 9, 12, 12, 14, 10, 11,
- 16, 16, 12, 13, 14, 15, 11, 11, 11, 16, 12, 14, 10, 14, 11, 11,
- 13, 16, 12, 14, 12, 14, 11, 11, 16, 16, 15, 15, 14, 15, 12, 12,
- 11, 16, 12, 14, 11, 14, 11, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 16, 16, 14, 14, 13, 14, 12, 11, 12, 16, 11, 13, 12, 14, 10, 10,
- 12, 15, 11, 12, 12, 13, 10, 10, 14, 15, 11, 11, 12, 12, 10, 9,
- },
- {
- 0, 8, 3, 8, 5, 9, 7, 8, 5, 10, 6, 10, 8, 11, 8, 9,
- 16, 16, 15, 16, 16, 16, 11, 11, 2, 10, 4, 9, 7, 10, 7, 8,
- 7, 16, 7, 10, 9, 11, 8, 9, 16, 16, 15, 16, 16, 16, 11, 11,
- 7, 16, 6, 11, 10, 16, 9, 10, 10, 16, 9, 11, 11, 16, 9, 10,
- 16, 16, 16, 16, 16, 16, 16, 11, 3, 10, 6, 9, 5, 10, 7, 9,
- 7, 16, 8, 10, 8, 11, 8, 9, 16, 16, 16, 16, 16, 16, 11, 11,
- 5, 11, 7, 10, 8, 11, 8, 9, 7, 14, 7, 10, 8, 11, 8, 9,
- 16, 16, 11, 16, 16, 16, 10, 11, 9, 16, 9, 11, 11, 16, 9, 10,
- 10, 16, 8, 11, 11, 16, 9, 10, 16, 16, 11, 16, 16, 16, 11, 10,
- 8, 16, 9, 16, 7, 16, 9, 10, 11, 16, 11, 16, 10, 16, 10, 10,
- 16, 16, 16, 16, 16, 16, 16, 11, 9, 16, 10, 16, 9, 16, 9, 10,
- 10, 16, 10, 16, 9, 16, 9, 10, 16, 16, 16, 16, 11, 16, 11, 11,
- 16, 16, 16, 16, 16, 16, 10, 10, 11, 16, 11, 16, 11, 16, 10, 10,
- 16, 16, 11, 16, 11, 16, 10, 9, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 1, 10, 6, 10, 7, 11, 9, 10, 8, 12, 9, 12, 9, 12, 10, 10,
- 15, 16, 14, 15, 14, 16, 13, 12, 5, 12, 7, 11, 8, 11, 9, 10,
- 9, 13, 9, 12, 10, 12, 10, 10, 16, 16, 14, 15, 13, 16, 13, 12,
- 10, 15, 10, 13, 12, 14, 11, 11, 12, 16, 11, 13, 12, 14, 11, 11,
- 16, 16, 14, 16, 14, 16, 13, 12, 5, 12, 8, 11, 7, 11, 9, 10,
- 9, 13, 10, 12, 9, 12, 10, 10, 14, 16, 14, 15, 13, 14, 13, 12,
- 7, 13, 9, 12, 9, 12, 10, 10, 9, 13, 9, 12, 9, 12, 10, 10,
- 14, 16, 13, 14, 13, 15, 12, 12, 11, 16, 11, 13, 12, 14, 11, 11,
- 12, 16, 11, 14, 12, 14, 11, 11, 16, 16, 14, 16, 14, 16, 13, 12,
- 10, 16, 11, 14, 10, 13, 11, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 15, 16, 15, 16, 14, 16, 13, 12, 11, 16, 12, 14, 11, 14, 11, 12,
- 12, 16, 12, 14, 11, 14, 11, 11, 15, 16, 14, 16, 13, 16, 13, 12,
- 13, 16, 13, 16, 13, 16, 12, 12, 13, 16, 13, 16, 13, 16, 12, 12,
- 16, 16, 14, 15, 14, 16, 13, 12, 4, 11, 7, 10, 7, 11, 9, 10,
- 9, 13, 9, 11, 9, 12, 10, 10, 15, 16, 14, 15, 14, 15, 13, 12,
- 6, 12, 7, 11, 8, 11, 9, 10, 9, 13, 9, 12, 10, 12, 10, 10,
- 15, 16, 13, 14, 14, 15, 12, 12, 10, 14, 10, 12, 12, 13, 11, 11,
- 12, 16, 11, 13, 12, 14, 11, 11, 16, 16, 14, 15, 15, 16, 13, 12,
- 6, 12, 8, 11, 8, 11, 9, 10, 9, 13, 10, 12, 9, 12, 10, 10,
- 16, 16, 14, 15, 13, 14, 12, 12, 8, 13, 9, 11, 9, 12, 9, 10,
- 9, 13, 9, 12, 9, 12, 9, 10, 14, 16, 13, 14, 13, 14, 12, 11,
- 11, 15, 11, 13, 12, 14, 11, 11, 11, 16, 10, 13, 12, 14, 11, 11,
- 15, 16, 13, 15, 14, 16, 12, 11, 10, 16, 12, 13, 10, 13, 11, 11,
- 11, 16, 12, 14, 10, 13, 11, 11, 16, 16, 14, 16, 13, 16, 13, 12,
- 11, 16, 12, 14, 10, 14, 11, 11, 11, 16, 12, 14, 10, 13, 11, 11,
- 16, 16, 14, 16, 12, 15, 12, 11, 13, 16, 13, 15, 13, 15, 12, 12,
- 13, 16, 12, 15, 12, 15, 12, 11, 15, 16, 13, 16, 13, 16, 12, 11,
- 8, 14, 9, 12, 10, 13, 11, 11, 11, 16, 11, 13, 11, 13, 11, 11,
- 16, 16, 16, 16, 16, 16, 14, 13, 9, 14, 10, 12, 10, 13, 11, 11,
- 11, 16, 11, 13, 12, 13, 11, 11, 16, 16, 15, 16, 15, 16, 14, 12,
- 11, 16, 11, 13, 12, 14, 12, 11, 13, 16, 12, 14, 13, 14, 12, 11,
- 16, 16, 15, 16, 16, 16, 14, 13, 9, 14, 10, 13, 10, 13, 11, 11,
- 11, 16, 11, 13, 11, 13, 11, 11, 16, 16, 15, 16, 14, 15, 14, 13,
- 9, 14, 10, 13, 10, 13, 11, 11, 11, 15, 11, 13, 11, 13, 11, 11,
- 16, 16, 14, 16, 14, 16, 13, 12, 12, 16, 12, 14, 13, 14, 12, 11,
- 12, 16, 11, 14, 12, 15, 12, 11, 16, 16, 13, 16, 15, 16, 13, 11,
- 11, 16, 12, 14, 11, 14, 12, 11, 13, 16, 13, 15, 12, 14, 12, 12,
- 16, 16, 16, 16, 14, 16, 14, 13, 12, 16, 13, 15, 11, 14, 12, 12,
- 12, 16, 13, 14, 11, 15, 12, 11, 16, 16, 15, 16, 13, 15, 13, 12,
- 13, 16, 13, 15, 13, 16, 12, 12, 13, 16, 13, 15, 13, 15, 12, 12,
- 15, 16, 13, 16, 13, 15, 11, 10, 10, 16, 12, 14, 12, 15, 12, 12,
- 14, 16, 13, 15, 13, 16, 13, 12, 16, 16, 16, 16, 16, 16, 15, 13,
- 10, 16, 12, 14, 12, 15, 12, 12, 13, 16, 13, 15, 13, 15, 13, 12,
- 16, 16, 16, 16, 16, 16, 14, 13, 11, 16, 12, 15, 13, 16, 12, 12,
- 14, 16, 13, 16, 13, 16, 12, 12, 16, 16, 15, 16, 15, 16, 14, 12,
- 11, 16, 12, 14, 12, 16, 12, 12, 14, 16, 13, 15, 13, 15, 13, 12,
- 16, 16, 16, 16, 16, 16, 15, 13, 11, 16, 12, 14, 12, 15, 12, 12,
- 13, 16, 12, 14, 12, 15, 12, 12, 16, 16, 16, 16, 16, 16, 14, 12,
- 12, 16, 12, 15, 13, 16, 12, 12, 13, 16, 12, 15, 13, 15, 12, 11,
- 16, 16, 14, 16, 15, 16, 13, 12, 12, 16, 13, 16, 12, 16, 12, 12,
- 15, 16, 14, 16, 13, 16, 12, 12, 16, 16, 16, 16, 16, 16, 14, 13,
- 12, 16, 13, 15, 12, 16, 12, 12, 13, 16, 13, 15, 12, 15, 12, 12,
- 16, 16, 15, 16, 14, 16, 13, 12, 13, 16, 13, 16, 12, 16, 12, 12,
- 13, 16, 12, 16, 12, 15, 12, 12, 14, 16, 12, 14, 12, 14, 11, 10,
- },
- },
- {
- {
- 0, 16, 6, 16, 8, 16, 16, 16, 9, 16, 11, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 16, 7, 16, 11, 16, 16, 16,
- 10, 16, 11, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 10, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 5, 16, 10, 16, 9, 16, 16, 16,
- 10, 16, 13, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 11, 16, 12, 16, 16, 16, 10, 16, 12, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 7, 16, 8, 16, 13, 16,
- 9, 16, 11, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 16, 7, 16, 11, 16, 13, 16, 9, 16, 11, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 9, 16, 16, 16, 16, 16,
- 13, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 16, 10, 16, 8, 16, 16, 16, 10, 16, 12, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 16, 10, 16, 11, 16, 16, 16,
- 9, 16, 11, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 12, 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 10, 16, 16, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 16, 8, 16, 10, 16, 16, 16, 10, 16, 11, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 8, 16, 11, 16, 16, 16,
- 10, 16, 12, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 9, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 10, 16, 10, 16, 16, 16,
- 11, 16, 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 11, 16, 11, 16, 16, 16, 10, 16, 12, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 12, 16, 16, 16, 16, 16,
- 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 16, 16, 12, 16, 16, 16,
- 12, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 10, 16, 11, 16, 16, 16,
- 11, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 9, 16, 11, 16, 13, 16, 11, 16, 12, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 9, 16, 13, 16, 12, 16,
- 13, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 10, 16, 14, 16, 12, 16, 12, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 11, 16, 11, 16, 13, 16,
- 10, 16, 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 10, 16, 13, 16, 12, 16, 12, 16, 11, 16, 16, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 12, 16, 10, 16, 13, 16,
- 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 13, 16, 11, 16, 13, 16, 12, 16, 13, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 13, 16, 16, 16, 12, 16,
- 13, 16, 12, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 0, 10, 4, 10, 5, 11, 9, 11, 6, 11, 8, 11, 8, 12, 10, 12,
- 15, 16, 13, 15, 14, 15, 13, 14, 4, 12, 5, 11, 8, 12, 9, 11,
- 7, 13, 8, 12, 9, 13, 10, 12, 15, 16, 13, 15, 14, 16, 13, 14,
- 10, 16, 9, 13, 12, 16, 11, 13, 11, 16, 10, 14, 13, 16, 12, 13,
- 16, 16, 14, 16, 15, 16, 14, 15, 4, 12, 7, 12, 6, 12, 9, 11,
- 8, 13, 9, 12, 9, 12, 10, 12, 15, 16, 13, 15, 14, 15, 13, 14,
- 7, 13, 8, 12, 9, 13, 10, 12, 8, 13, 9, 12, 9, 13, 10, 12,
- 14, 16, 13, 15, 13, 15, 13, 14, 12, 16, 11, 14, 13, 16, 12, 13,
- 12, 16, 11, 14, 13, 16, 12, 13, 16, 16, 14, 16, 15, 16, 14, 15,
- 10, 16, 12, 16, 10, 14, 12, 13, 12, 16, 13, 16, 11, 14, 12, 13,
- 16, 16, 16, 16, 15, 16, 14, 15, 12, 16, 13, 16, 11, 15, 12, 13,
- 13, 16, 13, 16, 12, 15, 12, 14, 16, 16, 16, 16, 14, 16, 13, 14,
- 16, 16, 14, 16, 14, 16, 13, 15, 16, 16, 14, 16, 14, 16, 13, 15,
- 16, 16, 16, 16, 16, 16, 14, 16, 2, 11, 5, 11, 6, 11, 9, 11,
- 7, 12, 8, 11, 9, 12, 10, 12, 15, 16, 14, 14, 14, 14, 13, 14,
- 4, 13, 6, 11, 8, 12, 9, 11, 8, 13, 8, 12, 10, 13, 10, 12,
- 15, 16, 13, 15, 14, 15, 13, 14, 9, 16, 8, 13, 12, 15, 11, 12,
- 11, 16, 10, 14, 13, 16, 12, 13, 16, 16, 14, 16, 16, 16, 14, 15,
- 5, 13, 8, 12, 7, 12, 9, 11, 8, 13, 9, 12, 9, 12, 10, 12,
- 16, 16, 14, 15, 14, 15, 13, 13, 7, 13, 8, 12, 9, 13, 10, 12,
- 8, 13, 8, 12, 9, 13, 10, 12, 14, 16, 13, 14, 13, 15, 12, 13,
- 11, 16, 10, 14, 13, 16, 12, 13, 11, 16, 10, 13, 12, 15, 11, 13,
- 14, 16, 12, 14, 14, 16, 13, 14, 10, 16, 12, 15, 9, 14, 11, 13,
- 12, 16, 12, 16, 11, 14, 12, 13, 16, 16, 15, 16, 16, 16, 14, 15,
- 11, 16, 12, 15, 11, 15, 12, 13, 12, 16, 12, 15, 11, 14, 12, 13,
- 16, 16, 14, 16, 13, 15, 13, 14, 15, 16, 14, 16, 14, 16, 13, 14,
- 14, 16, 13, 16, 14, 16, 13, 14, 16, 16, 14, 16, 14, 16, 13, 14,
- 7, 15, 8, 13, 9, 14, 11, 13, 10, 14, 10, 13, 11, 14, 12, 13,
- 16, 16, 15, 16, 15, 16, 15, 14, 7, 16, 8, 13, 10, 14, 11, 13,
- 11, 15, 10, 13, 12, 14, 12, 13, 16, 16, 16, 16, 16, 16, 15, 15,
- 10, 16, 9, 13, 13, 16, 12, 13, 13, 16, 11, 14, 14, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 16, 8, 16, 10, 14, 9, 14, 11, 13,
- 11, 16, 11, 14, 11, 14, 12, 13, 16, 16, 16, 16, 16, 16, 14, 15,
- 8, 16, 10, 14, 10, 14, 11, 13, 10, 15, 10, 14, 11, 14, 12, 13,
- 16, 16, 14, 16, 15, 16, 14, 14, 11, 16, 10, 14, 13, 16, 12, 13,
- 11, 16, 10, 13, 13, 16, 12, 13, 16, 16, 13, 16, 16, 16, 14, 14,
- 11, 16, 12, 16, 10, 15, 12, 13, 14, 16, 14, 16, 12, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 13, 16, 11, 16, 12, 14,
- 12, 16, 13, 16, 11, 14, 12, 13, 16, 16, 16, 16, 14, 16, 14, 14,
- 15, 16, 14, 16, 16, 16, 13, 14, 13, 16, 13, 15, 14, 16, 13, 14,
- 14, 16, 13, 14, 14, 15, 13, 14, 9, 16, 11, 16, 12, 16, 13, 14,
- 12, 16, 12, 15, 13, 16, 13, 14, 16, 16, 16, 15, 16, 16, 15, 15,
- 10, 16, 10, 16, 12, 16, 12, 14, 12, 16, 12, 14, 13, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 15, 11, 16, 10, 14, 14, 16, 12, 13,
- 14, 16, 12, 16, 14, 16, 13, 14, 16, 16, 16, 16, 16, 16, 16, 15,
- 10, 16, 12, 16, 11, 16, 12, 14, 13, 16, 12, 15, 13, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 15, 10, 16, 11, 16, 12, 16, 12, 14,
- 12, 16, 12, 15, 13, 16, 13, 14, 16, 16, 16, 16, 16, 16, 14, 14,
- 11, 16, 10, 14, 14, 16, 12, 13, 13, 16, 11, 14, 14, 16, 12, 13,
- 16, 16, 15, 16, 16, 16, 14, 14, 12, 16, 13, 16, 11, 16, 12, 14,
- 15, 16, 14, 16, 13, 16, 13, 14, 16, 16, 16, 16, 16, 16, 14, 16,
- 12, 16, 13, 16, 12, 16, 12, 14, 13, 16, 13, 16, 12, 16, 12, 13,
- 16, 16, 16, 16, 16, 16, 14, 15, 13, 16, 13, 16, 14, 16, 12, 13,
- 13, 16, 13, 14, 14, 16, 12, 13, 16, 16, 14, 14, 14, 15, 13, 13,
- },
- {
- 0, 9, 3, 9, 5, 9, 7, 9, 5, 10, 7, 11, 8, 11, 9, 10,
- 16, 16, 16, 16, 16, 16, 16, 16, 2, 11, 4, 10, 7, 11, 8, 10,
- 7, 16, 7, 11, 9, 16, 9, 11, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 7, 16, 11, 16, 10, 11, 11, 16, 10, 16, 16, 16, 11, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 2, 11, 6, 10, 6, 10, 8, 10,
- 7, 16, 8, 16, 8, 11, 9, 11, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 13, 7, 11, 8, 11, 9, 11, 6, 12, 8, 12, 8, 12, 9, 11,
- 16, 16, 16, 16, 16, 16, 16, 16, 10, 16, 10, 16, 12, 16, 10, 13,
- 10, 16, 9, 16, 11, 16, 11, 12, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 8, 16, 10, 12, 11, 16, 12, 16, 10, 16, 11, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 10, 16, 11, 16, 10, 16, 11, 16,
- 11, 16, 12, 16, 10, 16, 11, 12, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 1, 10, 5, 10, 6, 10, 9, 10, 7, 12, 9, 12, 9, 12, 10, 10,
- 16, 16, 15, 16, 14, 16, 13, 13, 5, 12, 7, 11, 8, 11, 9, 10,
- 8, 13, 9, 12, 10, 12, 10, 11, 16, 16, 16, 16, 14, 16, 13, 12,
- 10, 16, 10, 13, 12, 14, 12, 12, 12, 16, 11, 14, 13, 15, 12, 12,
- 16, 16, 16, 15, 16, 16, 14, 13, 5, 12, 8, 11, 7, 11, 9, 10,
- 8, 13, 10, 12, 9, 12, 10, 10, 15, 16, 14, 15, 14, 14, 13, 13,
- 7, 13, 9, 12, 9, 12, 10, 10, 9, 13, 10, 13, 10, 13, 10, 10,
- 14, 16, 14, 15, 14, 16, 13, 12, 11, 16, 12, 14, 12, 15, 12, 12,
- 12, 16, 12, 15, 13, 16, 12, 12, 16, 16, 15, 16, 16, 16, 14, 13,
- 10, 16, 12, 14, 10, 14, 12, 12, 12, 16, 13, 14, 11, 14, 12, 12,
- 16, 16, 16, 16, 14, 16, 14, 13, 11, 16, 12, 14, 11, 14, 12, 12,
- 12, 16, 13, 16, 11, 15, 12, 12, 16, 16, 16, 16, 14, 16, 14, 13,
- 13, 16, 14, 16, 14, 16, 13, 13, 13, 16, 13, 16, 13, 16, 13, 12,
- 16, 16, 16, 16, 16, 16, 13, 13, 4, 11, 7, 10, 7, 11, 9, 10,
- 8, 12, 9, 12, 9, 12, 10, 11, 15, 16, 14, 15, 14, 16, 13, 13,
- 6, 12, 7, 11, 8, 11, 9, 10, 9, 13, 9, 12, 10, 12, 10, 10,
- 16, 16, 15, 16, 15, 16, 13, 12, 10, 16, 10, 13, 12, 14, 12, 11,
- 12, 16, 11, 14, 13, 14, 12, 12, 16, 16, 16, 14, 16, 16, 14, 13,
- 6, 12, 8, 11, 7, 11, 9, 10, 9, 14, 10, 12, 9, 12, 10, 10,
- 15, 16, 14, 16, 14, 16, 14, 13, 7, 13, 9, 12, 9, 12, 10, 10,
- 9, 13, 9, 12, 9, 12, 10, 10, 14, 16, 13, 14, 14, 16, 12, 11,
- 11, 16, 11, 14, 12, 14, 12, 12, 12, 16, 11, 14, 12, 14, 12, 11,
- 16, 16, 13, 16, 14, 16, 13, 12, 10, 16, 12, 14, 10, 14, 11, 11,
- 12, 16, 13, 14, 11, 14, 12, 12, 16, 16, 16, 16, 14, 16, 13, 13,
- 11, 16, 12, 16, 11, 14, 12, 12, 12, 16, 12, 14, 11, 14, 12, 11,
- 16, 16, 15, 16, 13, 15, 13, 12, 13, 16, 14, 16, 13, 16, 13, 12,
- 13, 16, 13, 16, 13, 16, 13, 12, 16, 16, 14, 16, 14, 16, 12, 11,
- 8, 13, 10, 12, 10, 13, 11, 11, 11, 14, 12, 14, 12, 14, 12, 12,
- 16, 16, 16, 16, 16, 16, 14, 13, 9, 14, 10, 13, 10, 13, 11, 11,
- 12, 16, 12, 13, 12, 13, 12, 11, 16, 16, 16, 16, 16, 16, 15, 14,
- 12, 16, 11, 14, 13, 15, 12, 12, 13, 16, 12, 15, 14, 15, 13, 12,
- 16, 16, 16, 16, 16, 16, 15, 13, 9, 14, 11, 13, 10, 13, 11, 11,
- 11, 16, 12, 14, 12, 14, 12, 12, 16, 16, 16, 16, 16, 16, 16, 13,
- 10, 15, 11, 13, 11, 14, 12, 11, 11, 16, 12, 14, 11, 14, 12, 11,
- 16, 16, 16, 16, 16, 16, 14, 12, 12, 16, 12, 14, 13, 15, 13, 12,
- 12, 16, 12, 14, 13, 15, 12, 12, 16, 16, 14, 16, 16, 16, 14, 12,
- 12, 16, 13, 16, 11, 14, 12, 12, 14, 16, 14, 16, 12, 16, 13, 12,
- 16, 16, 16, 16, 16, 16, 16, 13, 12, 16, 13, 16, 12, 16, 13, 12,
- 12, 16, 13, 16, 12, 16, 12, 12, 16, 16, 16, 16, 14, 16, 14, 12,
- 14, 16, 14, 16, 14, 16, 14, 13, 13, 16, 13, 16, 13, 16, 13, 12,
- 16, 16, 13, 16, 13, 16, 12, 11, 9, 16, 12, 15, 13, 16, 13, 12,
- 13, 16, 14, 16, 14, 16, 14, 13, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 16, 12, 15, 12, 15, 13, 12, 13, 16, 14, 16, 13, 16, 13, 12,
- 16, 16, 16, 16, 16, 16, 16, 13, 12, 16, 12, 16, 13, 16, 13, 12,
- 14, 16, 13, 16, 14, 16, 13, 12, 16, 16, 16, 16, 16, 16, 16, 13,
- 11, 16, 12, 15, 12, 16, 13, 12, 14, 16, 14, 16, 13, 16, 13, 13,
- 16, 16, 16, 16, 16, 16, 15, 13, 11, 16, 12, 16, 12, 16, 13, 12,
- 13, 16, 13, 15, 13, 16, 13, 12, 16, 16, 16, 16, 16, 16, 15, 13,
- 12, 16, 12, 16, 13, 16, 13, 12, 13, 16, 12, 16, 13, 16, 13, 12,
- 16, 16, 14, 16, 16, 16, 14, 12, 12, 16, 14, 16, 11, 16, 13, 12,
- 14, 16, 14, 16, 13, 16, 13, 12, 16, 16, 16, 16, 16, 16, 16, 13,
- 12, 16, 13, 16, 12, 16, 13, 12, 13, 16, 13, 16, 12, 16, 13, 12,
- 16, 16, 16, 16, 14, 16, 14, 12, 13, 16, 13, 16, 13, 16, 13, 13,
- 13, 16, 12, 16, 12, 16, 12, 12, 14, 16, 13, 15, 13, 16, 12, 11,
- },
- },
-};
-
-
-static const uint8_t rv34_table_intra_secondpat[NUM_INTRA_TABLES][2][OTHERBLK_VLC_SIZE] = {
- {
- {
- 0, 5, 10, 3, 6, 10, 7, 8, 9, 4, 6, 10, 6, 7, 9, 8,
- 8, 9, 8, 8, 9, 8, 9, 9, 9, 9, 8, 3, 6, 10, 4, 6,
- 10, 7, 7, 9, 5, 7, 10, 6, 7, 9, 7, 7, 8, 7, 8, 9,
- 8, 8, 9, 8, 8, 7, 6, 8, 10, 6, 8, 10, 7, 8, 9, 7,
- 8, 10, 7, 8, 10, 8, 8, 8, 8, 9, 9, 8, 8, 9, 9, 8,
- 7, 7, 8, 9, 7, 8, 9, 7, 7, 7, 8, 8, 9, 7, 8, 9,
- 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 6, 5,
- },
- {
- 0, 5, 11, 3, 6, 11, 8, 9, 11, 3, 6, 10, 6, 7, 11, 9,
- 9, 11, 7, 9, 11, 9, 9, 11, 10, 10, 11, 2, 6, 10, 4, 7,
- 10, 7, 9, 11, 4, 7, 11, 6, 7, 10, 9, 9, 11, 7, 9, 11,
- 8, 9, 10, 10, 10, 10, 5, 8, 11, 6, 8, 11, 8, 9, 11, 6,
- 8, 11, 7, 8, 11, 9, 9, 11, 8, 10, 11, 9, 9, 11, 10, 10,
- 10, 8, 9, 11, 8, 9, 11, 9, 9, 10, 8, 9, 11, 8, 9, 11,
- 9, 9, 10, 8, 9, 10, 9, 9, 10, 9, 9, 8,
- },
- },
- {
- {
- 0, 5, 10, 4, 6, 10, 7, 8, 10, 4, 6, 10, 6, 7, 9, 8,
- 8, 9, 8, 8, 9, 8, 9, 9, 9, 9, 9, 2, 6, 10, 4, 6,
- 10, 7, 7, 9, 5, 7, 10, 6, 7, 9, 7, 7, 9, 7, 8, 9,
- 8, 8, 9, 9, 8, 8, 6, 8, 10, 6, 8, 10, 7, 8, 9, 6,
- 8, 10, 7, 8, 10, 8, 8, 9, 8, 9, 10, 8, 8, 9, 9, 9,
- 8, 8, 8, 10, 7, 8, 9, 7, 8, 8, 7, 8, 10, 7, 8, 9,
- 7, 7, 8, 8, 8, 9, 8, 8, 8, 7, 7, 6,
- },
- {
- 0, 5, 12, 4, 7, 12, 8, 10, 13, 4, 7, 12, 6, 8, 12, 10,
- 10, 12, 8, 9, 12, 10, 10, 12, 12, 12, 12, 1, 6, 12, 4, 7,
- 12, 8, 9, 12, 4, 7, 12, 6, 8, 11, 9, 10, 12, 8, 9, 12,
- 9, 10, 11, 11, 11, 12, 6, 8, 12, 7, 9, 12, 9, 10, 13, 6,
- 9, 12, 8, 9, 12, 10, 10, 12, 9, 10, 12, 10, 10, 12, 12, 12,
- 12, 8, 10, 12, 9, 10, 12, 10, 10, 12, 8, 10, 12, 9, 10, 12,
- 10, 10, 11, 9, 10, 12, 10, 10, 11, 11, 10, 10,
- },
- },
- {
- {
- 0, 5, 10, 3, 6, 10, 7, 8, 11, 4, 6, 10, 6, 7, 10, 8,
- 9, 10, 8, 8, 10, 9, 9, 10, 10, 10, 10, 2, 6, 10, 4, 6,
- 10, 7, 8, 10, 4, 7, 10, 6, 7, 10, 8, 8, 10, 7, 8, 10,
- 8, 8, 9, 10, 9, 9, 5, 8, 11, 6, 8, 10, 7, 9, 10, 6,
- 8, 11, 7, 8, 10, 8, 8, 10, 8, 9, 11, 9, 9, 10, 10, 9,
- 9, 8, 9, 10, 8, 9, 10, 8, 9, 10, 8, 9, 10, 8, 8, 10,
- 8, 8, 9, 8, 9, 10, 8, 8, 9, 9, 8, 8,
- },
- {
- 0, 6, 13, 4, 7, 14, 9, 11, 14, 3, 7, 13, 7, 8, 13, 11,
- 11, 14, 8, 10, 13, 10, 11, 13, 13, 13, 14, 1, 6, 12, 4, 8,
- 13, 9, 10, 15, 4, 8, 13, 7, 8, 12, 11, 11, 14, 8, 10, 13,
- 10, 10, 13, 13, 13, 14, 5, 9, 13, 7, 9, 13, 10, 11, 14, 6,
- 10, 14, 8, 10, 14, 11, 11, 14, 9, 11, 14, 11, 11, 13, 13, 13,
- 14, 9, 10, 14, 9, 11, 13, 11, 12, 14, 9, 11, 13, 9, 11, 14,
- 11, 12, 13, 10, 12, 15, 11, 11, 13, 13, 12, 13,
- },
- },
- {
- {
- 0, 5, 11, 3, 6, 11, 7, 9, 12, 3, 6, 11, 6, 7, 11, 9,
- 9, 11, 8, 9, 11, 9, 9, 11, 11, 11, 12, 2, 6, 11, 4, 6,
- 11, 7, 9, 11, 4, 7, 11, 5, 7, 10, 9, 9, 11, 7, 8, 11,
- 9, 9, 10, 11, 11, 11, 5, 8, 11, 6, 8, 11, 8, 9, 12, 6,
- 8, 11, 7, 8, 11, 9, 9, 11, 8, 9, 12, 9, 9, 11, 11, 11,
- 11, 8, 10, 12, 8, 10, 11, 9, 10, 12, 8, 10, 12, 8, 9, 12,
- 10, 10, 12, 9, 10, 12, 9, 9, 11, 11, 10, 11,
- },
- {
- 0, 6, 13, 3, 8, 14, 10, 12, 16, 3, 8, 15, 7, 9, 15, 12,
- 13, 15, 9, 11, 15, 11, 12, 16, 14, 16, 16, 1, 7, 13, 4, 8,
- 14, 9, 11, 15, 4, 8, 14, 7, 9, 14, 12, 13, 15, 8, 10, 14,
- 11, 11, 14, 16, 14, 16, 6, 9, 14, 7, 10, 14, 11, 13, 15, 7,
- 10, 14, 9, 10, 13, 12, 12, 15, 10, 11, 14, 11, 11, 14, 14, 14,
- 16, 9, 11, 14, 10, 11, 14, 13, 14, 15, 9, 12, 14, 10, 12, 16,
- 13, 14, 16, 10, 13, 16, 12, 12, 14, 15, 14, 15,
- },
- },
- {
- {
- 0, 6, 12, 3, 7, 12, 9, 11, 13, 4, 7, 12, 6, 8, 12, 10,
- 11, 13, 8, 10, 13, 10, 11, 13, 13, 13, 14, 1, 6, 12, 4, 7,
- 12, 9, 10, 14, 4, 7, 12, 6, 7, 12, 10, 11, 13, 8, 9, 13,
- 10, 10, 12, 13, 13, 14, 6, 9, 13, 7, 9, 13, 10, 12, 14, 7,
- 9, 13, 8, 10, 13, 11, 11, 14, 9, 11, 13, 11, 11, 14, 13, 13,
- 14, 10, 12, 14, 10, 12, 14, 12, 13, 15, 10, 12, 14, 10, 12, 14,
- 12, 13, 15, 11, 13, 15, 12, 12, 15, 14, 14, 14,
- },
- {
- 0, 6, 16, 3, 8, 16, 10, 13, 16, 3, 8, 16, 7, 9, 16, 13,
- 16, 16, 8, 10, 16, 11, 13, 16, 16, 16, 16, 1, 7, 14, 4, 8,
- 16, 10, 12, 16, 4, 8, 13, 7, 9, 16, 13, 14, 16, 8, 10, 16,
- 11, 11, 14, 16, 16, 16, 6, 9, 14, 8, 10, 14, 12, 16, 16, 6,
- 10, 13, 9, 11, 16, 13, 14, 16, 9, 12, 16, 12, 11, 16, 16, 16,
- 16, 10, 12, 16, 11, 12, 16, 16, 14, 16, 9, 12, 16, 11, 12, 16,
- 16, 15, 16, 10, 13, 16, 12, 13, 16, 16, 16, 16,
- },
- },
-};
-
-static const uint8_t rv34_table_intra_thirdpat[NUM_INTRA_TABLES][2][OTHERBLK_VLC_SIZE] = {
- {
- {
- 0, 5, 10, 3, 6, 10, 7, 8, 10, 4, 7, 10, 6, 7, 10, 8,
- 8, 10, 8, 9, 10, 9, 9, 10, 9, 9, 9, 2, 6, 10, 4, 7,
- 10, 7, 8, 9, 5, 7, 10, 6, 7, 10, 8, 8, 9, 8, 9, 10,
- 8, 8, 9, 9, 9, 8, 6, 8, 11, 6, 8, 10, 7, 8, 10, 6,
- 8, 11, 7, 8, 10, 8, 8, 9, 8, 9, 10, 9, 9, 10, 9, 9,
- 9, 7, 8, 10, 7, 8, 10, 7, 8, 8, 7, 8, 10, 7, 8, 9,
- 7, 8, 8, 8, 8, 9, 8, 8, 8, 7, 7, 7,
- },
- {
- 0, 4, 10, 3, 6, 10, 7, 8, 11, 3, 6, 10, 5, 7, 10, 9,
- 9, 11, 9, 10, 11, 9, 10, 11, 11, 11, 11, 2, 6, 10, 4, 6,
- 10, 7, 8, 10, 4, 7, 10, 6, 7, 10, 8, 9, 10, 8, 9, 11,
- 9, 9, 11, 10, 10, 11, 6, 8, 11, 6, 8, 11, 8, 9, 11, 7,
- 9, 11, 7, 8, 11, 9, 9, 11, 9, 10, 12, 10, 10, 12, 11, 11,
- 11, 8, 9, 11, 8, 9, 11, 9, 9, 11, 9, 10, 11, 9, 10, 11,
- 9, 10, 11, 10, 11, 12, 10, 10, 12, 10, 10, 10,
- },
- },
- {
- {
- 0, 5, 10, 3, 6, 10, 7, 8, 10, 4, 7, 10, 6, 7, 10, 8,
- 9, 10, 8, 9, 11, 8, 9, 10, 10, 10, 10, 2, 6, 10, 4, 6,
- 10, 7, 8, 10, 4, 7, 10, 5, 7, 10, 8, 8, 10, 8, 9, 10,
- 8, 9, 10, 9, 9, 9, 5, 7, 11, 6, 8, 11, 7, 8, 11, 6,
- 8, 11, 7, 8, 10, 8, 9, 10, 8, 9, 11, 9, 9, 10, 10, 9,
- 10, 7, 8, 10, 7, 8, 10, 8, 9, 10, 8, 9, 10, 8, 9, 10,
- 8, 8, 10, 9, 9, 10, 9, 9, 10, 9, 9, 9,
- },
- {
- 0, 5, 11, 3, 6, 11, 8, 9, 12, 4, 7, 12, 6, 7, 12, 9,
- 10, 13, 10, 11, 13, 10, 11, 14, 12, 13, 14, 1, 6, 11, 4, 7,
- 11, 8, 9, 12, 5, 7, 11, 6, 8, 12, 9, 10, 13, 10, 11, 14,
- 10, 11, 13, 12, 12, 14, 6, 8, 12, 7, 9, 13, 9, 10, 14, 7,
- 10, 13, 8, 10, 12, 11, 11, 13, 11, 13, 14, 11, 12, 14, 13, 13,
- 15, 9, 10, 12, 9, 11, 14, 10, 11, 14, 11, 11, 13, 10, 11, 13,
- 11, 12, 14, 12, 14, 15, 13, 13, 14, 13, 13, 14,
- },
- },
- {
- {
- 0, 5, 11, 3, 6, 11, 7, 9, 11, 4, 6, 11, 5, 7, 10, 9,
- 9, 11, 8, 9, 11, 9, 10, 11, 11, 11, 11, 2, 6, 10, 3, 6,
- 10, 7, 9, 11, 4, 7, 10, 5, 7, 10, 8, 9, 11, 8, 9, 11,
- 9, 9, 11, 11, 11, 11, 5, 8, 11, 6, 8, 11, 8, 10, 12, 6,
- 8, 11, 7, 8, 11, 9, 10, 11, 9, 10, 12, 9, 10, 11, 11, 11,
- 11, 8, 9, 11, 8, 10, 12, 9, 11, 12, 8, 10, 12, 9, 10, 12,
- 10, 11, 12, 10, 11, 12, 10, 10, 11, 11, 11, 11,
- },
- {
- 0, 5, 13, 2, 7, 16, 9, 11, 16, 4, 8, 16, 7, 9, 16, 12,
- 12, 16, 12, 16, 16, 12, 16, 16, 16, 16, 16, 1, 6, 13, 4, 8,
- 16, 9, 11, 16, 6, 9, 16, 7, 10, 16, 13, 13, 16, 13, 15, 16,
- 12, 16, 16, 16, 16, 16, 7, 9, 16, 8, 11, 15, 11, 13, 16, 10,
- 12, 16, 10, 12, 16, 16, 13, 16, 16, 16, 16, 14, 16, 16, 16, 16,
- 16, 12, 12, 16, 12, 16, 16, 16, 16, 16, 13, 14, 16, 12, 13, 16,
- 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 6, 11, 3, 7, 11, 8, 10, 12, 4, 7, 11, 6, 8, 11, 10,
- 11, 12, 9, 10, 12, 10, 10, 12, 12, 12, 13, 1, 6, 11, 4, 7,
- 11, 8, 10, 12, 4, 7, 11, 6, 8, 11, 10, 10, 12, 9, 10, 12,
- 10, 10, 12, 13, 13, 13, 6, 8, 12, 7, 10, 12, 10, 12, 13, 7,
- 9, 12, 8, 10, 12, 11, 11, 13, 11, 12, 14, 11, 11, 13, 13, 13,
- 13, 9, 11, 13, 10, 12, 14, 12, 13, 15, 10, 12, 14, 11, 12, 14,
- 13, 13, 14, 12, 13, 15, 13, 13, 14, 14, 14, 14,
- },
- {
- 0, 5, 16, 2, 6, 16, 10, 14, 16, 4, 8, 16, 7, 9, 16, 11,
- 16, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 1, 6, 12, 4, 8,
- 12, 12, 12, 16, 6, 8, 16, 8, 10, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 12, 16, 16, 7, 10, 16, 8, 11, 14, 16, 16, 16, 10,
- 12, 16, 10, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 5, 11, 3, 6, 11, 10, 10, 12, 3, 7, 11, 6, 8, 11, 11,
- 11, 12, 10, 10, 12, 11, 11, 13, 14, 13, 14, 1, 6, 11, 4, 7,
- 11, 10, 11, 13, 5, 7, 11, 7, 8, 11, 11, 11, 13, 10, 11, 13,
- 11, 11, 12, 13, 13, 14, 7, 10, 12, 9, 11, 13, 12, 13, 14, 9,
- 10, 13, 9, 10, 13, 12, 11, 13, 12, 13, 16, 12, 13, 13, 14, 14,
- 14, 11, 14, 16, 12, 14, 15, 14, 13, 16, 13, 13, 15, 13, 14, 16,
- 14, 13, 16, 13, 13, 16, 13, 14, 15, 15, 14, 15,
- },
- {
- 0, 4, 16, 2, 7, 16, 10, 16, 16, 4, 10, 16, 7, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 6, 13, 4, 11,
- 16, 16, 16, 16, 6, 10, 16, 8, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 8, 16, 16, 10, 16, 16, 16, 16, 16, 10,
- 16, 16, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
-};
-
-
-static const uint8_t rv34_intra_coeff[NUM_INTRA_TABLES][COEFF_VLC_SIZE] = {
-{
- 1, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,
- 9, 9, 10, 10, 10, 11, 11, 11, 10, 10, 10, 12, 13, 14, 15, 15,
-},
-{
- 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 10, 10, 11,
- 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 8, 8, 9, 9, 10, 10, 11, 12, 12, 12,
- 13, 13, 14, 14, 14, 14, 16, 16, 14, 16, 16, 16, 14, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 8, 8, 9, 9, 10, 10, 11, 12, 12, 12,
- 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, 14, 12, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 7, 7, 8, 8, 9, 10, 10, 12, 11, 13, 12,
- 15, 13, 14, 13, 12, 15, 14, 13, 12, 12, 10, 11, 16, 16, 16, 16,
-}
-};
-
-
-static const uint8_t rv34_inter_cbppat[NUM_INTER_TABLES][CBPPAT_VLC_SIZE] = {
-{
- 7, 9, 9, 8, 9, 8, 9, 8, 9, 9, 8, 8, 8, 8, 8, 4,
- 7, 10, 11, 10, 11, 10, 12, 10, 12, 11, 11, 10, 11, 10, 10, 7,
- 10, 11, 15, 12, 15, 12, 15, 12, 15, 14, 14, 12, 14, 12, 14, 9,
- 7, 11, 10, 10, 12, 11, 11, 10, 11, 12, 10, 10, 11, 10, 10, 7,
- 8, 12, 12, 11, 13, 12, 12, 10, 13, 13, 12, 10, 12, 11, 11, 7,
- 11, 13, 15, 11, 15, 13, 15, 12, 16, 14, 14, 12, 15, 13, 13, 9,
- 10, 15, 11, 12, 15, 14, 14, 12, 15, 15, 12, 12, 14, 14, 12, 9,
- 11, 15, 13, 12, 16, 15, 14, 12, 15, 15, 13, 12, 15, 14, 13, 9,
- 13, 15, 14, 10, 16, 15, 16, 11, 16, 16, 15, 12, 16, 15, 15, 9,
- 7, 11, 11, 11, 11, 10, 11, 10, 11, 12, 11, 10, 10, 10, 10, 7,
- 9, 12, 13, 12, 12, 11, 13, 10, 13, 13, 12, 11, 12, 10, 11, 7,
- 12, 13, 16, 14, 15, 12, 16, 12, 16, 15, 15, 13, 15, 12, 14, 9,
- 9, 13, 13, 12, 13, 12, 13, 11, 13, 13, 12, 11, 12, 11, 11, 7,
- 9, 13, 13, 12, 13, 12, 13, 11, 13, 13, 13, 11, 12, 11, 11, 7,
- 12, 14, 15, 13, 16, 13, 15, 11, 16, 14, 15, 12, 15, 12, 13, 8,
- 12, 16, 14, 14, 16, 15, 15, 13, 16, 15, 14, 13, 15, 14, 13, 9,
- 12, 15, 14, 13, 15, 14, 15, 12, 16, 15, 14, 12, 14, 13, 13, 8,
- 13, 16, 16, 12, 16, 14, 16, 11, 16, 16, 15, 12, 16, 14, 14, 8,
- 10, 15, 15, 15, 12, 12, 14, 12, 14, 15, 15, 14, 12, 12, 13, 9,
- 11, 15, 16, 14, 13, 12, 15, 12, 16, 15, 15, 14, 14, 12, 13, 9,
- 14, 15, 16, 16, 15, 11, 16, 12, 16, 16, 16, 15, 16, 12, 15, 9,
- 12, 16, 16, 15, 14, 14, 14, 13, 16, 16, 15, 14, 14, 13, 13, 9,
- 12, 15, 15, 14, 14, 13, 15, 12, 16, 15, 14, 13, 14, 13, 13, 8,
- 13, 16, 16, 15, 16, 12, 16, 11, 16, 16, 16, 14, 16, 13, 14, 8,
- 14, 16, 16, 16, 16, 16, 15, 14, 16, 16, 16, 15, 16, 15, 14, 11,
- 13, 16, 16, 15, 16, 15, 15, 12, 16, 16, 16, 14, 15, 14, 14, 9,
- 14, 16, 16, 13, 16, 14, 16, 10, 16, 16, 16, 13, 16, 14, 14, 8,
- 7, 12, 11, 11, 11, 11, 12, 10, 11, 11, 10, 10, 10, 10, 10, 7,
- 9, 13, 13, 12, 13, 12, 13, 11, 13, 13, 12, 11, 12, 11, 11, 8,
- 12, 14, 16, 14, 16, 14, 16, 13, 16, 14, 15, 13, 15, 13, 14, 9,
- 9, 13, 12, 12, 13, 12, 13, 11, 12, 13, 11, 10, 12, 11, 11, 7,
- 9, 13, 13, 12, 13, 12, 13, 11, 13, 13, 12, 11, 12, 11, 11, 7,
- 12, 14, 16, 13, 16, 14, 15, 12, 15, 15, 14, 12, 15, 13, 13, 8,
- 11, 15, 13, 14, 15, 15, 14, 13, 15, 15, 12, 12, 14, 14, 12, 9,
- 11, 15, 14, 13, 15, 14, 14, 12, 15, 14, 13, 11, 14, 13, 12, 8,
- 13, 16, 15, 12, 16, 15, 16, 12, 16, 16, 14, 11, 15, 14, 14, 8,
- 8, 13, 13, 12, 12, 12, 13, 11, 12, 13, 12, 11, 11, 10, 10, 7,
- 9, 13, 14, 12, 13, 12, 13, 11, 13, 13, 13, 11, 12, 11, 11, 7,
- 12, 14, 16, 14, 15, 13, 15, 12, 15, 15, 15, 13, 14, 12, 13, 8,
- 9, 13, 13, 12, 13, 12, 13, 11, 13, 13, 12, 11, 12, 11, 11, 7,
- 9, 13, 12, 12, 13, 12, 12, 10, 13, 13, 12, 10, 12, 10, 10, 6,
- 11, 14, 14, 12, 14, 12, 14, 11, 14, 14, 13, 11, 13, 11, 12, 7,
- 12, 16, 14, 14, 15, 15, 14, 13, 15, 15, 13, 12, 14, 13, 12, 8,
- 11, 14, 13, 12, 14, 13, 13, 11, 14, 14, 13, 11, 13, 12, 11, 7,
- 11, 14, 14, 12, 15, 13, 14, 11, 15, 14, 13, 11, 14, 12, 12, 6,
- 11, 16, 15, 15, 13, 14, 15, 13, 14, 15, 15, 13, 12, 12, 12, 9,
- 12, 15, 15, 14, 14, 13, 15, 12, 15, 15, 14, 13, 13, 11, 12, 8,
- 13, 16, 16, 15, 16, 13, 16, 13, 16, 16, 15, 14, 14, 12, 14, 8,
- 11, 16, 15, 14, 14, 14, 14, 13, 15, 15, 14, 13, 13, 12, 12, 8,
- 11, 14, 14, 13, 13, 12, 14, 11, 14, 14, 13, 12, 12, 11, 11, 7,
- 12, 14, 15, 13, 14, 12, 14, 11, 15, 14, 14, 12, 13, 11, 12, 7,
- 13, 16, 16, 16, 16, 15, 16, 14, 16, 16, 15, 14, 15, 14, 13, 9,
- 12, 15, 14, 13, 15, 13, 14, 12, 15, 15, 13, 12, 13, 12, 12, 7,
- 11, 15, 14, 12, 14, 13, 14, 10, 15, 14, 13, 11, 13, 11, 11, 5,
- 10, 15, 15, 15, 15, 14, 15, 13, 12, 14, 12, 12, 12, 13, 12, 9,
- 12, 16, 16, 15, 16, 15, 16, 14, 14, 15, 14, 13, 14, 13, 13, 9,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14, 16, 14, 15, 11,
- 11, 15, 15, 14, 15, 15, 15, 14, 14, 15, 12, 12, 13, 13, 12, 9,
- 12, 15, 15, 14, 16, 14, 15, 13, 14, 14, 13, 12, 14, 13, 12, 8,
- 13, 16, 16, 15, 16, 16, 16, 14, 16, 16, 15, 12, 16, 14, 14, 9,
- 13, 16, 14, 16, 16, 16, 16, 15, 15, 16, 11, 12, 16, 15, 12, 9,
- 13, 16, 15, 14, 16, 15, 16, 14, 15, 16, 12, 11, 15, 14, 13, 8,
- 13, 16, 16, 13, 16, 16, 16, 13, 16, 16, 13, 11, 16, 14, 14, 8,
- 11, 15, 15, 15, 14, 14, 15, 13, 13, 15, 14, 13, 12, 12, 12, 9,
- 11, 15, 16, 14, 15, 14, 15, 13, 14, 14, 14, 13, 13, 12, 13, 8,
- 13, 16, 16, 16, 16, 15, 16, 14, 16, 16, 16, 13, 15, 12, 14, 9,
- 11, 16, 15, 14, 14, 14, 15, 13, 14, 14, 13, 12, 13, 12, 11, 8,
- 11, 14, 14, 13, 14, 13, 14, 12, 13, 13, 12, 11, 12, 11, 11, 7,
- 12, 15, 15, 13, 15, 14, 15, 12, 15, 14, 14, 11, 13, 12, 12, 7,
- 13, 16, 15, 15, 16, 16, 16, 14, 15, 16, 12, 12, 14, 14, 12, 8,
- 11, 15, 14, 13, 15, 13, 14, 12, 14, 14, 12, 11, 13, 12, 11, 6,
- 11, 14, 14, 12, 15, 13, 14, 11, 15, 14, 12, 10, 13, 11, 11, 5,
- 12, 16, 16, 16, 15, 15, 16, 15, 14, 16, 15, 15, 10, 12, 12, 9,
- 13, 16, 16, 16, 15, 14, 16, 13, 15, 15, 15, 14, 12, 11, 13, 8,
- 14, 16, 16, 16, 16, 14, 16, 13, 16, 16, 16, 14, 14, 11, 14, 8,
- 13, 16, 16, 15, 15, 15, 15, 14, 15, 16, 14, 13, 12, 12, 11, 8,
- 11, 15, 15, 13, 14, 13, 14, 12, 14, 14, 13, 12, 12, 11, 11, 6,
- 11, 15, 15, 13, 15, 12, 14, 11, 14, 14, 13, 11, 12, 10, 11, 5,
- 13, 16, 16, 15, 16, 16, 16, 14, 16, 16, 14, 14, 14, 13, 11, 8,
- 11, 14, 14, 13, 14, 13, 14, 11, 14, 14, 12, 11, 12, 11, 10, 5,
- 10, 13, 13, 11, 13, 12, 13, 9, 13, 13, 12, 9, 12, 10, 10, 3,
-},
-{
- 5, 7, 7, 7, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7, 4,
- 7, 9, 11, 9, 11, 9, 11, 9, 11, 10, 10, 9, 10, 9, 10, 6,
- 11, 11, 14, 11, 14, 11, 14, 11, 15, 13, 14, 12, 14, 12, 13, 9,
- 6, 11, 10, 9, 11, 10, 11, 9, 11, 11, 9, 9, 10, 10, 9, 6,
- 8, 11, 11, 10, 12, 11, 12, 10, 12, 12, 11, 10, 12, 11, 11, 7,
- 11, 13, 14, 11, 15, 13, 15, 11, 15, 14, 14, 12, 14, 13, 13, 9,
- 10, 14, 11, 11, 15, 14, 13, 12, 14, 14, 11, 11, 14, 13, 12, 9,
- 11, 14, 13, 11, 15, 14, 14, 11, 15, 15, 13, 11, 14, 14, 13, 9,
- 12, 14, 14, 10, 16, 15, 16, 11, 16, 16, 15, 11, 16, 15, 14, 9,
- 6, 10, 11, 10, 10, 9, 11, 9, 10, 11, 10, 10, 9, 9, 9, 6,
- 9, 12, 12, 11, 12, 10, 12, 10, 12, 12, 12, 11, 11, 10, 11, 7,
- 12, 13, 15, 13, 14, 11, 15, 11, 15, 15, 14, 13, 14, 12, 14, 9,
- 9, 12, 12, 11, 12, 11, 12, 11, 12, 13, 11, 11, 12, 11, 11, 7,
- 9, 12, 12, 11, 13, 11, 12, 10, 13, 13, 12, 11, 12, 11, 11, 7,
- 12, 14, 15, 12, 15, 12, 14, 11, 15, 15, 14, 12, 14, 13, 13, 8,
- 12, 15, 14, 13, 15, 14, 14, 13, 16, 16, 14, 13, 15, 14, 13, 9,
- 12, 15, 14, 13, 15, 14, 14, 12, 15, 15, 13, 12, 14, 13, 13, 9,
- 13, 15, 15, 12, 16, 14, 15, 11, 16, 16, 15, 12, 15, 14, 14, 9,
- 10, 14, 14, 14, 12, 11, 13, 12, 14, 15, 14, 13, 12, 11, 12, 9,
- 12, 14, 15, 14, 13, 11, 14, 12, 15, 15, 15, 14, 13, 11, 13, 9,
- 13, 15, 16, 15, 14, 11, 16, 11, 16, 16, 16, 14, 15, 12, 15, 9,
- 12, 15, 15, 14, 14, 14, 14, 13, 15, 15, 14, 14, 14, 13, 13, 9,
- 12, 15, 15, 14, 14, 13, 14, 12, 15, 15, 14, 13, 14, 13, 13, 9,
- 13, 15, 16, 14, 15, 13, 16, 11, 16, 16, 15, 14, 15, 13, 14, 9,
- 14, 16, 16, 16, 16, 16, 15, 14, 16, 16, 16, 16, 16, 16, 14, 11,
- 14, 16, 16, 14, 16, 15, 15, 12, 16, 16, 16, 14, 15, 14, 14, 9,
- 14, 16, 16, 14, 16, 14, 16, 11, 16, 16, 16, 14, 16, 14, 14, 9,
- 6, 11, 10, 10, 10, 10, 11, 10, 10, 11, 9, 9, 9, 9, 9, 6,
- 9, 12, 12, 11, 13, 11, 13, 11, 12, 12, 11, 11, 12, 11, 11, 7,
- 12, 14, 16, 13, 16, 14, 16, 13, 15, 14, 15, 12, 15, 13, 14, 9,
- 8, 12, 11, 11, 12, 12, 12, 11, 11, 12, 10, 10, 11, 11, 10, 7,
- 9, 12, 12, 11, 13, 12, 13, 11, 13, 12, 11, 10, 12, 11, 11, 7,
- 12, 14, 15, 12, 15, 14, 15, 12, 15, 14, 14, 12, 14, 13, 13, 9,
- 11, 15, 13, 13, 15, 14, 14, 13, 14, 15, 11, 11, 14, 14, 12, 9,
- 11, 14, 13, 12, 15, 14, 14, 12, 14, 14, 12, 11, 14, 13, 12, 8,
- 13, 15, 15, 12, 16, 15, 15, 12, 15, 15, 14, 11, 15, 14, 14, 8,
- 8, 12, 12, 11, 11, 11, 12, 11, 11, 12, 11, 11, 10, 10, 10, 7,
- 9, 13, 13, 12, 13, 11, 13, 11, 12, 13, 12, 11, 11, 10, 11, 7,
- 12, 14, 15, 14, 15, 13, 15, 12, 15, 14, 14, 13, 14, 12, 13, 9,
- 9, 13, 12, 12, 12, 12, 12, 11, 12, 13, 11, 11, 11, 11, 10, 7,
- 9, 12, 12, 11, 12, 11, 12, 10, 12, 12, 11, 10, 11, 10, 10, 7,
- 11, 13, 14, 12, 14, 12, 14, 11, 14, 13, 13, 11, 13, 11, 12, 7,
- 12, 15, 14, 13, 15, 14, 14, 13, 15, 15, 13, 12, 13, 13, 12, 9,
- 11, 14, 13, 12, 14, 13, 13, 11, 14, 14, 12, 11, 13, 12, 11, 7,
- 11, 14, 14, 12, 14, 13, 14, 11, 14, 14, 13, 11, 13, 12, 12, 7,
- 11, 15, 15, 14, 13, 13, 14, 13, 14, 15, 14, 13, 11, 11, 12, 9,
- 12, 15, 15, 14, 14, 12, 14, 12, 14, 14, 14, 13, 12, 11, 12, 8,
- 13, 16, 16, 15, 15, 12, 16, 13, 16, 15, 15, 14, 14, 12, 14, 9,
- 12, 15, 15, 14, 14, 14, 14, 13, 15, 15, 14, 13, 12, 12, 12, 9,
- 11, 14, 14, 13, 13, 12, 13, 11, 14, 13, 13, 12, 12, 11, 11, 7,
- 12, 14, 15, 13, 14, 12, 14, 11, 15, 14, 13, 12, 13, 11, 12, 7,
- 13, 16, 16, 15, 16, 15, 15, 14, 16, 16, 15, 14, 14, 14, 12, 9,
- 12, 15, 14, 13, 14, 13, 14, 12, 15, 14, 13, 12, 13, 12, 12, 8,
- 12, 14, 14, 13, 15, 13, 14, 11, 14, 14, 13, 12, 13, 12, 12, 6,
- 10, 14, 14, 13, 14, 14, 14, 13, 12, 13, 12, 12, 12, 12, 11, 9,
- 12, 15, 15, 14, 15, 14, 16, 14, 14, 14, 13, 12, 14, 13, 13, 9,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14, 16, 14, 16, 11,
- 11, 15, 14, 14, 15, 14, 14, 14, 13, 14, 11, 12, 13, 13, 12, 9,
- 12, 15, 14, 14, 15, 14, 15, 13, 14, 14, 13, 12, 14, 13, 13, 9,
- 13, 16, 16, 14, 16, 15, 16, 14, 16, 15, 15, 12, 16, 14, 14, 9,
- 13, 16, 14, 15, 16, 16, 16, 14, 14, 16, 11, 12, 15, 14, 12, 9,
- 13, 16, 15, 14, 16, 15, 16, 14, 15, 15, 12, 11, 15, 14, 13, 9,
- 14, 16, 16, 13, 16, 16, 16, 14, 16, 15, 13, 11, 16, 14, 14, 9,
- 11, 15, 15, 14, 14, 14, 14, 13, 13, 14, 13, 13, 11, 11, 11, 9,
- 12, 15, 15, 14, 15, 14, 15, 13, 14, 14, 13, 13, 13, 12, 12, 9,
- 13, 16, 16, 16, 16, 14, 16, 14, 16, 15, 16, 14, 15, 12, 14, 9,
- 11, 15, 14, 14, 15, 14, 14, 13, 14, 14, 12, 12, 12, 12, 11, 8,
- 11, 14, 14, 13, 14, 13, 13, 12, 13, 13, 12, 11, 12, 11, 11, 7,
- 12, 14, 15, 13, 15, 13, 14, 13, 14, 14, 13, 12, 13, 12, 12, 8,
- 13, 16, 15, 15, 16, 15, 15, 14, 15, 16, 12, 12, 14, 14, 11, 9,
- 12, 15, 14, 13, 15, 13, 14, 12, 14, 14, 12, 11, 13, 12, 11, 7,
- 12, 14, 14, 13, 15, 13, 14, 12, 15, 14, 13, 10, 13, 12, 12, 6,
- 12, 16, 16, 15, 14, 14, 15, 14, 13, 15, 14, 14, 10, 11, 11, 9,
- 13, 16, 16, 15, 15, 14, 15, 14, 15, 15, 15, 14, 12, 11, 12, 8,
- 14, 16, 16, 16, 16, 14, 16, 14, 16, 15, 15, 14, 14, 11, 14, 8,
- 12, 16, 16, 15, 15, 14, 15, 14, 14, 16, 14, 14, 12, 12, 11, 8,
- 11, 14, 14, 13, 14, 13, 14, 12, 14, 14, 13, 12, 12, 11, 11, 7,
- 12, 14, 15, 13, 14, 13, 14, 12, 14, 14, 13, 12, 13, 11, 12, 6,
- 14, 16, 16, 16, 16, 16, 15, 14, 16, 16, 14, 13, 13, 13, 11, 8,
- 12, 15, 15, 13, 15, 13, 14, 12, 14, 14, 13, 12, 13, 12, 10, 6,
- 11, 14, 13, 12, 14, 12, 13, 10, 14, 13, 12, 10, 12, 10, 10, 4,
-},
-{
- 4, 6, 6, 6, 6, 6, 7, 6, 6, 7, 6, 6, 6, 6, 6, 3,
- 6, 9, 10, 9, 10, 9, 11, 9, 10, 10, 10, 9, 10, 9, 10, 6,
- 10, 11, 14, 11, 14, 11, 14, 11, 14, 13, 14, 11, 14, 11, 13, 9,
- 6, 10, 9, 9, 10, 10, 10, 9, 10, 11, 9, 9, 10, 10, 9, 6,
- 8, 11, 11, 9, 12, 11, 12, 10, 12, 12, 11, 10, 12, 11, 11, 7,
- 11, 13, 14, 11, 15, 13, 15, 11, 15, 14, 14, 11, 15, 13, 14, 9,
- 10, 13, 11, 11, 14, 14, 13, 11, 14, 14, 11, 11, 13, 13, 11, 9,
- 11, 14, 12, 11, 15, 14, 14, 11, 15, 15, 13, 11, 14, 14, 13, 9,
- 12, 14, 13, 10, 16, 15, 16, 11, 16, 16, 14, 11, 16, 14, 14, 9,
- 6, 10, 10, 10, 9, 9, 10, 9, 10, 11, 10, 10, 9, 9, 9, 6,
- 8, 11, 12, 11, 11, 10, 12, 10, 12, 12, 12, 11, 11, 10, 11, 7,
- 11, 13, 15, 13, 14, 11, 15, 11, 15, 14, 14, 13, 14, 12, 14, 9,
- 8, 12, 12, 12, 12, 12, 12, 11, 12, 13, 11, 11, 11, 11, 11, 8,
- 9, 12, 12, 11, 12, 12, 13, 11, 13, 13, 12, 11, 12, 11, 11, 8,
- 11, 14, 15, 13, 14, 13, 15, 11, 15, 15, 14, 13, 15, 13, 14, 9,
- 12, 16, 14, 14, 15, 15, 14, 12, 15, 16, 14, 13, 14, 14, 13, 10,
- 11, 15, 14, 13, 15, 14, 15, 12, 15, 16, 14, 13, 15, 14, 13, 9,
- 13, 15, 15, 12, 16, 15, 16, 12, 16, 16, 15, 13, 15, 14, 14, 9,
- 10, 14, 14, 14, 11, 11, 13, 11, 14, 14, 14, 13, 11, 11, 11, 9,
- 11, 14, 15, 14, 13, 11, 14, 12, 15, 15, 15, 14, 13, 11, 13, 9,
- 13, 14, 16, 15, 14, 11, 16, 12, 16, 16, 16, 14, 15, 12, 15, 10,
- 12, 16, 15, 15, 14, 14, 14, 12, 16, 16, 14, 14, 14, 13, 13, 10,
- 12, 15, 15, 14, 14, 13, 14, 12, 15, 16, 14, 14, 14, 13, 13, 9,
- 13, 16, 16, 14, 16, 13, 16, 12, 16, 16, 16, 14, 16, 13, 15, 10,
- 14, 16, 16, 16, 16, 16, 15, 14, 16, 16, 16, 16, 16, 16, 14, 11,
- 13, 16, 16, 15, 16, 16, 16, 13, 16, 16, 16, 15, 16, 15, 14, 10,
- 14, 16, 16, 14, 16, 14, 16, 12, 16, 16, 16, 15, 16, 15, 15, 10,
- 6, 10, 10, 10, 10, 10, 11, 10, 9, 10, 9, 9, 9, 9, 9, 6,
- 9, 12, 12, 11, 12, 11, 13, 11, 12, 12, 11, 10, 12, 11, 11, 8,
- 12, 14, 15, 14, 15, 14, 16, 13, 15, 14, 14, 12, 15, 13, 14, 10,
- 8, 12, 11, 11, 12, 12, 12, 11, 11, 12, 10, 10, 11, 11, 10, 7,
- 9, 12, 12, 11, 13, 12, 13, 11, 12, 13, 11, 10, 12, 12, 11, 8,
- 11, 14, 14, 13, 15, 14, 15, 13, 15, 14, 14, 12, 15, 13, 14, 9,
- 11, 15, 12, 13, 15, 15, 14, 13, 14, 15, 11, 11, 14, 14, 12, 9,
- 11, 14, 13, 13, 15, 14, 15, 13, 15, 15, 13, 11, 15, 14, 13, 9,
- 13, 15, 15, 12, 16, 15, 16, 13, 16, 15, 14, 11, 16, 15, 14, 9,
- 8, 12, 12, 11, 11, 11, 12, 11, 11, 12, 11, 11, 9, 10, 10, 7,
- 9, 12, 13, 12, 12, 11, 13, 11, 12, 13, 12, 12, 11, 11, 11, 8,
- 12, 14, 15, 14, 15, 13, 16, 13, 15, 14, 15, 13, 14, 12, 14, 9,
- 9, 13, 12, 12, 12, 12, 13, 12, 12, 13, 11, 11, 11, 11, 10, 8,
- 9, 12, 12, 12, 12, 12, 13, 11, 12, 13, 11, 11, 12, 11, 11, 7,
- 11, 13, 14, 13, 14, 13, 15, 12, 14, 14, 14, 12, 14, 12, 13, 8,
- 12, 15, 14, 14, 15, 15, 14, 13, 15, 16, 13, 13, 14, 14, 12, 9,
- 11, 14, 13, 13, 14, 14, 14, 12, 14, 15, 13, 12, 14, 13, 12, 8,
- 11, 14, 14, 13, 15, 14, 15, 12, 15, 15, 14, 12, 14, 13, 13, 8,
- 11, 14, 14, 14, 13, 13, 14, 13, 13, 14, 14, 13, 11, 11, 11, 9,
- 11, 15, 15, 14, 14, 13, 15, 13, 14, 15, 14, 14, 13, 11, 13, 9,
- 13, 16, 16, 16, 15, 13, 16, 13, 16, 16, 16, 15, 15, 12, 15, 10,
- 11, 15, 15, 15, 14, 14, 14, 13, 15, 15, 14, 14, 13, 13, 12, 9,
- 11, 14, 14, 13, 13, 13, 14, 12, 14, 14, 13, 13, 13, 12, 12, 8,
- 12, 15, 15, 14, 15, 13, 15, 12, 15, 15, 14, 13, 14, 12, 13, 8,
- 13, 16, 16, 16, 16, 16, 16, 14, 16, 16, 15, 15, 15, 15, 13, 10,
- 12, 15, 15, 14, 15, 14, 15, 13, 15, 16, 14, 13, 14, 14, 13, 9,
- 12, 15, 15, 14, 15, 14, 15, 12, 15, 15, 14, 13, 14, 13, 13, 8,
- 10, 14, 13, 13, 14, 13, 14, 13, 11, 13, 11, 11, 11, 11, 11, 9,
- 12, 15, 16, 14, 15, 14, 16, 14, 14, 14, 14, 13, 14, 13, 13, 10,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 13, 16, 14, 16, 11,
- 11, 15, 14, 14, 15, 14, 15, 14, 13, 14, 11, 12, 13, 13, 11, 9,
- 12, 15, 15, 14, 15, 15, 16, 14, 14, 14, 13, 12, 14, 13, 13, 9,
- 13, 16, 16, 15, 16, 16, 16, 15, 16, 15, 15, 12, 16, 14, 15, 10,
- 12, 16, 14, 15, 16, 16, 16, 14, 14, 16, 11, 12, 14, 15, 12, 9,
- 13, 16, 15, 14, 16, 16, 16, 14, 15, 16, 13, 12, 15, 15, 13, 9,
- 14, 16, 16, 14, 16, 16, 16, 15, 16, 16, 14, 12, 16, 15, 15, 10,
- 11, 14, 14, 14, 14, 14, 14, 13, 12, 14, 13, 13, 11, 11, 11, 9,
- 11, 15, 15, 14, 14, 14, 16, 14, 14, 14, 14, 13, 13, 12, 13, 9,
- 13, 16, 16, 16, 16, 15, 16, 15, 16, 15, 16, 14, 15, 13, 15, 10,
- 11, 15, 15, 14, 14, 14, 15, 14, 14, 15, 13, 13, 12, 13, 11, 9,
- 11, 14, 14, 13, 14, 14, 14, 13, 13, 14, 13, 12, 13, 12, 12, 8,
- 12, 15, 15, 14, 16, 14, 16, 14, 15, 15, 15, 13, 14, 13, 14, 9,
- 13, 16, 15, 16, 16, 16, 16, 15, 15, 16, 13, 13, 14, 14, 12, 9,
- 12, 15, 14, 14, 15, 15, 15, 13, 14, 15, 13, 12, 14, 13, 12, 8,
- 12, 15, 14, 14, 15, 15, 15, 13, 15, 15, 14, 12, 14, 13, 13, 8,
- 12, 16, 15, 15, 13, 14, 15, 14, 13, 15, 14, 14, 10, 11, 11, 9,
- 12, 16, 16, 15, 15, 14, 16, 14, 15, 15, 15, 14, 13, 12, 13, 9,
- 14, 16, 16, 16, 16, 14, 16, 15, 16, 15, 16, 15, 14, 12, 15, 10,
- 12, 16, 15, 15, 15, 15, 15, 14, 15, 16, 14, 14, 12, 13, 11, 9,
- 11, 15, 15, 14, 14, 14, 15, 13, 14, 15, 14, 13, 13, 12, 12, 8,
- 12, 15, 15, 14, 15, 14, 15, 13, 15, 15, 14, 13, 14, 12, 13, 8,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 14, 14, 14, 14, 11, 9,
- 12, 15, 15, 14, 15, 15, 15, 13, 15, 15, 14, 13, 14, 13, 12, 8,
- 11, 14, 14, 13, 14, 13, 14, 12, 13, 14, 13, 12, 13, 12, 12, 7,
-},
-{
- 2, 6, 6, 5, 6, 6, 7, 6, 6, 7, 6, 6, 6, 6, 6, 3,
- 6, 9, 10, 9, 10, 9, 11, 9, 10, 10, 10, 9, 10, 9, 10, 7,
- 10, 11, 14, 11, 14, 11, 14, 11, 14, 13, 14, 12, 14, 12, 13, 9,
- 6, 10, 9, 9, 10, 10, 10, 9, 10, 11, 9, 9, 10, 10, 9, 7,
- 8, 11, 11, 9, 12, 11, 12, 10, 12, 12, 11, 10, 12, 11, 11, 8,
- 11, 13, 14, 11, 16, 13, 15, 12, 16, 14, 14, 12, 15, 13, 14, 10,
- 10, 13, 11, 11, 14, 14, 13, 11, 13, 14, 11, 11, 13, 13, 11, 9,
- 11, 13, 13, 11, 15, 14, 14, 12, 15, 15, 13, 12, 15, 14, 13, 10,
- 12, 14, 14, 11, 16, 15, 16, 12, 16, 16, 15, 12, 16, 15, 15, 10,
- 6, 10, 10, 10, 9, 9, 10, 9, 10, 11, 10, 10, 9, 9, 9, 7,
- 8, 11, 12, 11, 11, 10, 12, 10, 12, 12, 12, 11, 11, 10, 11, 8,
- 12, 13, 16, 13, 14, 11, 16, 12, 16, 15, 15, 13, 14, 12, 14, 10,
- 9, 13, 12, 12, 12, 12, 12, 11, 13, 13, 12, 12, 12, 12, 11, 8,
- 10, 13, 13, 12, 13, 12, 13, 11, 14, 14, 13, 12, 13, 12, 12, 9,
- 12, 14, 16, 13, 15, 13, 15, 12, 16, 16, 16, 13, 16, 14, 14, 10,
- 12, 16, 14, 14, 16, 15, 14, 13, 16, 16, 14, 14, 15, 15, 13, 11,
- 12, 16, 15, 14, 16, 15, 15, 12, 16, 16, 15, 14, 16, 15, 14, 10,
- 14, 16, 16, 14, 16, 15, 16, 13, 16, 16, 16, 14, 16, 16, 15, 11,
- 10, 14, 14, 13, 11, 11, 13, 12, 14, 14, 13, 13, 11, 11, 12, 9,
- 12, 14, 16, 14, 13, 11, 14, 12, 16, 15, 15, 14, 14, 12, 13, 10,
- 13, 14, 16, 15, 14, 11, 16, 12, 16, 16, 16, 15, 16, 13, 15, 11,
- 12, 16, 15, 15, 14, 14, 14, 13, 16, 16, 15, 15, 14, 14, 13, 11,
- 13, 16, 16, 15, 14, 14, 15, 13, 16, 16, 16, 15, 15, 14, 14, 11,
- 14, 16, 16, 15, 16, 14, 16, 13, 16, 16, 16, 15, 16, 14, 15, 11,
- 15, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 14, 12,
- 15, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 15, 12,
- 15, 16, 16, 15, 16, 15, 16, 13, 16, 16, 16, 16, 16, 16, 16, 11,
- 6, 10, 10, 10, 10, 10, 11, 10, 9, 10, 9, 9, 9, 9, 9, 7,
- 9, 12, 13, 12, 13, 12, 14, 12, 12, 12, 12, 11, 12, 11, 11, 8,
- 12, 14, 16, 14, 16, 14, 16, 14, 15, 14, 15, 13, 16, 13, 14, 11,
- 8, 12, 11, 11, 12, 12, 12, 11, 11, 12, 10, 10, 11, 11, 10, 8,
- 10, 13, 13, 12, 14, 13, 14, 12, 13, 13, 12, 11, 13, 12, 12, 9,
- 12, 15, 15, 13, 16, 15, 16, 14, 16, 15, 15, 12, 16, 14, 15, 10,
- 11, 15, 13, 13, 16, 15, 14, 13, 14, 15, 11, 12, 14, 14, 12, 10,
- 12, 16, 14, 13, 16, 16, 16, 14, 16, 15, 13, 12, 15, 15, 14, 10,
- 14, 16, 16, 14, 16, 16, 16, 14, 16, 16, 15, 13, 16, 16, 15, 11,
- 8, 12, 12, 12, 11, 11, 12, 11, 11, 12, 11, 11, 9, 10, 10, 8,
- 10, 13, 14, 13, 13, 12, 14, 12, 13, 13, 13, 12, 12, 11, 12, 9,
- 13, 15, 16, 15, 16, 14, 16, 14, 16, 15, 16, 14, 15, 13, 15, 11,
- 10, 13, 13, 13, 13, 13, 13, 12, 13, 14, 12, 12, 12, 12, 11, 9,
- 10, 13, 13, 13, 13, 13, 14, 12, 13, 14, 13, 12, 12, 12, 12, 9,
- 12, 15, 15, 14, 16, 14, 16, 13, 16, 15, 15, 13, 15, 13, 14, 10,
- 13, 16, 15, 15, 16, 16, 15, 14, 16, 16, 13, 14, 15, 15, 12, 10,
- 12, 16, 14, 14, 16, 16, 15, 13, 16, 16, 14, 13, 15, 14, 13, 10,
- 13, 16, 16, 14, 16, 15, 16, 13, 16, 16, 16, 13, 16, 15, 15, 10,
- 11, 15, 15, 14, 13, 13, 14, 13, 13, 15, 14, 14, 11, 12, 12, 10,
- 12, 15, 16, 15, 14, 13, 16, 14, 16, 15, 16, 14, 13, 12, 13, 10,
- 14, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 16, 13, 16, 11,
- 12, 16, 16, 16, 15, 15, 15, 14, 15, 16, 14, 14, 13, 14, 12, 10,
- 12, 16, 16, 15, 15, 14, 16, 13, 16, 16, 15, 14, 14, 13, 13, 10,
- 13, 16, 16, 15, 16, 14, 16, 13, 16, 16, 16, 15, 16, 14, 15, 10,
- 15, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 13, 12,
- 14, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 15, 16, 15, 14, 11,
- 14, 16, 16, 15, 16, 16, 16, 13, 16, 16, 16, 15, 16, 15, 14, 10,
- 10, 14, 13, 13, 13, 13, 14, 13, 11, 13, 11, 11, 11, 11, 11, 9,
- 12, 15, 16, 15, 16, 15, 16, 14, 14, 14, 14, 13, 14, 13, 14, 11,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 14, 16, 12,
- 11, 15, 14, 14, 15, 15, 15, 14, 13, 14, 11, 12, 13, 13, 12, 10,
- 13, 16, 15, 15, 16, 16, 16, 15, 15, 15, 13, 12, 15, 14, 13, 10,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 12,
- 13, 16, 14, 15, 16, 16, 16, 15, 14, 16, 11, 12, 15, 15, 12, 10,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 13, 16, 16, 14, 11,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 11,
- 11, 15, 15, 14, 13, 14, 14, 14, 13, 14, 13, 13, 11, 12, 11, 10,
- 12, 16, 16, 16, 16, 15, 16, 15, 15, 15, 15, 14, 13, 12, 14, 10,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 14, 16, 12,
- 12, 16, 15, 15, 16, 16, 16, 14, 14, 15, 13, 13, 13, 13, 12, 10,
- 12, 16, 16, 15, 15, 15, 16, 14, 14, 15, 14, 13, 14, 13, 13, 10,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14, 16, 14, 15, 11,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 15, 15, 12, 11,
- 13, 16, 16, 15, 16, 16, 16, 14, 16, 16, 14, 13, 16, 14, 13, 10,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14, 16, 14, 15, 10,
- 12, 16, 16, 15, 14, 15, 16, 14, 13, 15, 14, 14, 11, 12, 12, 10,
- 13, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 15, 13, 12, 14, 11,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 11,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 15, 15, 13, 14, 12, 11,
- 13, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14, 14, 13, 13, 10,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 15, 15, 14, 14, 10,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 15, 16, 13, 11,
- 14, 16, 16, 16, 16, 16, 16, 14, 16, 16, 15, 14, 15, 14, 13, 10,
- 12, 15, 15, 14, 15, 14, 16, 14, 14, 16, 15, 13, 14, 13, 13, 9,
-},
-{
- 2, 5, 5, 5, 5, 5, 6, 6, 5, 6, 5, 6, 5, 6, 6, 4,
- 6, 8, 10, 8, 10, 9, 11, 9, 10, 10, 10, 9, 10, 9, 10, 8,
- 10, 11, 13, 11, 13, 11, 14, 11, 14, 13, 13, 12, 13, 12, 13, 10,
- 6, 10, 8, 9, 10, 10, 10, 9, 10, 11, 9, 9, 10, 10, 9, 7,
- 8, 11, 11, 10, 12, 11, 12, 10, 12, 12, 11, 10, 12, 12, 11, 9,
- 11, 13, 14, 11, 15, 14, 15, 12, 16, 14, 14, 12, 15, 14, 14, 11,
- 10, 13, 11, 11, 14, 13, 13, 12, 13, 14, 11, 11, 13, 13, 12, 10,
- 11, 14, 13, 11, 16, 14, 14, 12, 15, 15, 14, 12, 15, 14, 14, 11,
- 12, 14, 14, 11, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 15, 12,
- 6, 10, 10, 10, 8, 9, 10, 9, 10, 11, 10, 10, 9, 9, 9, 8,
- 8, 11, 12, 12, 11, 10, 12, 11, 12, 12, 12, 12, 12, 11, 12, 9,
- 11, 13, 16, 14, 14, 12, 15, 12, 16, 15, 16, 14, 14, 13, 14, 11,
- 9, 13, 12, 12, 12, 12, 12, 11, 13, 13, 12, 12, 12, 12, 11, 10,
- 10, 13, 13, 12, 13, 12, 13, 11, 14, 14, 13, 13, 13, 13, 12, 10,
- 13, 14, 16, 14, 15, 14, 16, 13, 16, 16, 16, 14, 16, 14, 15, 12,
- 12, 16, 14, 14, 16, 15, 14, 13, 16, 16, 14, 14, 15, 15, 13, 12,
- 13, 16, 15, 14, 16, 16, 15, 13, 16, 16, 15, 14, 16, 16, 14, 12,
- 14, 16, 16, 14, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 12,
- 10, 13, 14, 13, 11, 11, 13, 12, 13, 14, 13, 13, 11, 12, 12, 10,
- 11, 14, 15, 15, 13, 12, 14, 13, 16, 16, 16, 15, 14, 13, 14, 11,
- 12, 14, 16, 16, 14, 12, 16, 13, 16, 16, 16, 16, 15, 13, 16, 12,
- 12, 16, 15, 16, 14, 15, 14, 14, 16, 16, 15, 16, 14, 14, 13, 12,
- 13, 16, 16, 16, 16, 14, 16, 13, 16, 16, 16, 16, 16, 14, 15, 12,
- 14, 16, 16, 16, 16, 14, 16, 14, 16, 16, 16, 16, 16, 15, 16, 13,
- 15, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 15, 13,
- 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 13,
- 15, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 13,
- 6, 10, 10, 10, 10, 10, 10, 10, 8, 10, 9, 9, 8, 9, 9, 7,
- 9, 12, 13, 12, 13, 12, 13, 12, 12, 12, 12, 11, 12, 11, 12, 10,
- 12, 14, 16, 14, 16, 14, 16, 14, 16, 15, 15, 14, 16, 14, 15, 12,
- 8, 12, 11, 11, 12, 12, 12, 11, 11, 12, 10, 10, 11, 12, 10, 9,
- 10, 13, 13, 12, 14, 13, 14, 12, 13, 13, 12, 11, 13, 13, 12, 10,
- 13, 15, 16, 14, 16, 16, 16, 14, 16, 15, 15, 13, 16, 15, 15, 12,
- 11, 15, 13, 13, 15, 15, 15, 14, 14, 14, 11, 12, 14, 14, 12, 11,
- 13, 16, 14, 14, 16, 16, 16, 14, 16, 15, 13, 13, 16, 14, 14, 11,
- 14, 16, 16, 14, 16, 16, 16, 15, 16, 16, 16, 14, 16, 16, 16, 12,
- 8, 12, 12, 12, 11, 11, 12, 12, 11, 12, 11, 11, 9, 10, 10, 9,
- 10, 13, 14, 13, 13, 12, 14, 13, 13, 13, 13, 13, 12, 11, 12, 10,
- 13, 15, 16, 15, 16, 14, 16, 14, 16, 16, 16, 15, 16, 13, 15, 12,
- 10, 14, 13, 13, 13, 13, 13, 13, 13, 14, 12, 12, 12, 12, 11, 10,
- 10, 13, 13, 13, 13, 13, 14, 12, 13, 14, 13, 12, 13, 12, 12, 10,
- 13, 16, 16, 14, 16, 15, 16, 14, 16, 16, 15, 14, 16, 14, 15, 11,
- 13, 16, 15, 16, 16, 16, 15, 14, 16, 16, 14, 14, 15, 15, 13, 12,
- 13, 16, 15, 14, 16, 16, 16, 14, 16, 16, 14, 14, 15, 15, 14, 11,
- 14, 16, 16, 15, 16, 16, 16, 14, 16, 16, 16, 15, 16, 16, 15, 12,
- 11, 14, 15, 14, 13, 13, 14, 14, 13, 15, 14, 14, 11, 12, 12, 11,
- 13, 16, 16, 16, 14, 14, 16, 14, 16, 16, 16, 15, 14, 13, 14, 12,
- 14, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 14, 16, 13,
- 13, 16, 16, 16, 15, 16, 15, 15, 16, 16, 15, 16, 14, 14, 13, 12,
- 13, 16, 16, 15, 15, 14, 16, 14, 16, 16, 16, 15, 14, 14, 14, 11,
- 14, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 15, 16, 12,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 13,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 12,
- 9, 13, 13, 13, 13, 13, 14, 13, 10, 12, 11, 12, 11, 12, 11, 10,
- 12, 15, 16, 15, 16, 16, 16, 16, 14, 14, 14, 13, 14, 13, 14, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 14,
- 11, 15, 14, 14, 15, 14, 15, 14, 13, 14, 11, 12, 13, 13, 12, 11,
- 13, 16, 16, 15, 16, 16, 16, 15, 15, 15, 14, 13, 16, 15, 14, 12,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 13,
- 12, 16, 14, 15, 16, 16, 16, 16, 14, 16, 11, 13, 15, 16, 13, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 16, 16, 15, 12,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 13,
- 11, 15, 14, 14, 13, 14, 15, 14, 12, 14, 13, 13, 11, 12, 12, 11,
- 13, 16, 16, 16, 16, 15, 16, 16, 15, 15, 15, 15, 14, 13, 14, 12,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 15, 14, 16, 13, 14, 13, 14, 13, 11,
- 13, 16, 16, 16, 16, 16, 16, 15, 15, 16, 15, 14, 14, 14, 14, 11,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 15, 16, 16, 13, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 16, 16, 15, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 12,
- 11, 16, 16, 15, 13, 15, 16, 15, 13, 15, 15, 15, 11, 12, 12, 11,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 15, 12,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 13,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 14, 14, 13, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 12,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 14, 13,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 12,
- 12, 14, 14, 14, 14, 15, 16, 14, 14, 16, 15, 14, 14, 15, 14, 11,
-},
-{
- 1, 5, 5, 6, 5, 6, 7, 7, 5, 7, 6, 7, 5, 6, 6, 6,
- 6, 9, 10, 9, 10, 9, 11, 10, 11, 11, 11, 10, 11, 10, 11, 9,
- 10, 11, 14, 12, 14, 12, 16, 12, 16, 13, 16, 13, 14, 13, 16, 12,
- 6, 10, 9, 9, 10, 11, 11, 10, 10, 11, 9, 10, 10, 11, 10, 9,
- 8, 11, 11, 10, 13, 12, 13, 12, 13, 13, 12, 12, 13, 13, 13, 11,
- 11, 13, 16, 12, 16, 16, 16, 13, 16, 16, 16, 14, 16, 16, 16, 13,
- 10, 14, 11, 12, 14, 14, 13, 13, 13, 16, 12, 13, 14, 16, 13, 12,
- 11, 14, 13, 12, 16, 16, 16, 14, 16, 16, 14, 14, 16, 16, 16, 13,
- 12, 14, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 6, 10, 10, 11, 9, 9, 11, 10, 10, 11, 11, 11, 9, 10, 10, 9,
- 9, 12, 13, 12, 12, 11, 13, 12, 13, 13, 13, 13, 12, 12, 13, 11,
- 12, 13, 16, 16, 16, 13, 16, 14, 16, 16, 16, 16, 16, 14, 16, 13,
- 9, 13, 13, 13, 13, 13, 13, 13, 13, 14, 13, 13, 13, 13, 12, 11,
- 10, 14, 14, 13, 14, 13, 14, 13, 16, 16, 14, 15, 14, 14, 14, 12,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 14, 14, 16, 11, 12, 14, 13, 14, 16, 16, 16, 12, 13, 13, 12,
- 12, 16, 16, 16, 13, 13, 16, 14, 16, 16, 16, 16, 16, 14, 16, 13,
- 13, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 10, 10, 10, 10, 11, 11, 11, 9, 11, 9, 10, 9, 10, 10, 9,
- 9, 13, 13, 13, 13, 13, 14, 13, 12, 13, 13, 12, 13, 12, 13, 11,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 8, 13, 12, 12, 13, 13, 13, 13, 11, 13, 10, 12, 12, 13, 12, 11,
- 10, 14, 13, 13, 16, 16, 16, 14, 14, 14, 13, 13, 14, 14, 14, 12,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 11, 16, 13, 16, 16, 16, 16, 16, 14, 16, 12, 13, 16, 16, 14, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 13, 13, 13, 11, 12, 13, 13, 11, 13, 12, 13, 10, 12, 12, 11,
- 10, 14, 16, 16, 14, 13, 16, 14, 14, 16, 16, 14, 13, 13, 14, 12,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 16, 14, 16, 14, 14, 14, 14, 13, 16, 13, 14, 13, 14, 12, 12,
- 10, 14, 14, 14, 14, 16, 16, 14, 14, 16, 14, 14, 14, 14, 14, 12,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 13, 16, 16, 16, 14, 16, 16, 16, 12, 14, 14, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 14, 13, 14, 13, 14, 16, 16, 11, 13, 12, 13, 11, 13, 12, 12,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 14, 16, 16, 16, 16, 16, 13, 16, 12, 13, 14, 16, 13, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 14, 16, 12, 16, 16, 16, 14, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 14, 16, 16, 16, 13, 16, 14, 16, 12, 13, 13, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 16, 12, 16, 14, 14,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13,
-},
-{
- 1, 5, 5, 6, 5, 6, 7, 8, 5, 7, 6, 8, 6, 7, 7, 7,
- 5, 9, 10, 10, 10, 10, 12, 11, 10, 11, 11, 11, 10, 11, 12, 10,
- 9, 11, 13, 12, 13, 12, 16, 14, 16, 14, 16, 16, 16, 13, 16, 13,
- 5, 10, 9, 10, 10, 11, 11, 11, 10, 11, 9, 11, 10, 11, 11, 10,
- 8, 11, 11, 11, 12, 13, 13, 13, 12, 13, 12, 12, 13, 13, 13, 12,
- 11, 13, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 14, 11, 12, 14, 16, 13, 14, 13, 16, 12, 14, 16, 16, 13, 13,
- 11, 16, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 14, 14, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 10, 11, 11, 9, 10, 11, 11, 10, 12, 11, 12, 9, 11, 11, 11,
- 8, 12, 13, 13, 11, 11, 14, 13, 13, 14, 13, 16, 12, 12, 13, 12,
- 11, 13, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 13, 12, 13, 12, 13, 13, 14, 13, 16, 13, 16, 13, 16, 13, 13,
- 10, 14, 13, 14, 13, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 14, 16, 16, 11, 12, 14, 16, 13, 16, 16, 16, 12, 14, 13, 13,
- 11, 16, 16, 16, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 14, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 10, 10, 11, 10, 11, 12, 12, 8, 11, 10, 11, 9, 11, 11, 11,
- 9, 12, 13, 13, 13, 13, 16, 16, 12, 13, 13, 13, 13, 13, 16, 13,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 13, 11, 13, 12, 13, 13, 14, 11, 13, 10, 13, 12, 14, 12, 12,
- 10, 14, 13, 14, 16, 16, 16, 16, 13, 16, 13, 14, 16, 16, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 13, 16, 16, 16, 16, 16, 13, 16, 12, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 13, 13, 13, 11, 13, 14, 16, 11, 13, 13, 14, 10, 12, 12, 12,
- 10, 14, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16, 13, 13, 16, 14,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 14, 16, 13, 16, 16, 16, 13, 16, 13, 16, 13, 16, 13, 14,
- 10, 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 13,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 13, 16, 16, 16, 14, 16, 16, 16, 12, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 14, 13, 16, 13, 16, 16, 16, 10, 14, 12, 14, 11, 13, 13, 13,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 16, 16, 16, 16, 12, 16, 12, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 16, 16, 16, 16, 13, 16, 13, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 14, 16, 16, 16, 12, 16, 16, 16, 12, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 14, 16, 16, 16, 14, 16, 16, 16, 12, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 14,
-}
-};
-
-
-static const uint8_t rv34_inter_cbp[NUM_INTER_TABLES][4][CBP_VLC_SIZE] = {
-{
- { 0, 6, 6, 3, 6, 4, 5, 3, 6, 5, 4, 3, 3, 4, 4, 3 },
- { 0, 6, 6, 4, 6, 4, 5, 3, 6, 5, 4, 3, 4, 4, 4, 2 },
- { 0, 7, 7, 4, 7, 5, 5, 4, 7, 5, 5, 4, 5, 4, 4, 1 },
- { 0, 7, 7, 5, 7, 5, 6, 4, 7, 6, 5, 3, 5, 4, 4, 1 }
-},
-{
- { 0, 6, 6, 3, 6, 3, 5, 4, 6, 5, 3, 4, 3, 4, 4, 3 },
- { 0, 6, 6, 4, 6, 4, 4, 4, 6, 4, 4, 3, 4, 4, 4, 2 },
- { 0, 6, 6, 4, 6, 4, 5, 4, 6, 5, 4, 3, 4, 4, 3, 2 },
- { 0, 7, 7, 5, 7, 5, 6, 4, 7, 6, 5, 3, 5, 4, 4, 1 }
-},
-{
- { 0, 6, 6, 3, 6, 3, 5, 4, 6, 5, 3, 4, 3, 4, 4, 3 },
- { 0, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 2 },
- { 0, 6, 6, 4, 6, 4, 5, 3, 6, 5, 4, 3, 4, 4, 4, 2 },
- { 0, 7, 7, 5, 7, 5, 6, 4, 7, 6, 5, 3, 5, 4, 4, 1 }
-},
-{
- { 0, 6, 6, 3, 6, 3, 5, 4, 6, 5, 3, 4, 3, 4, 4, 3 },
- { 0, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 2 },
- { 0, 6, 6, 4, 6, 4, 5, 3, 6, 5, 4, 3, 4, 4, 4, 2 },
- { 0, 7, 7, 4, 7, 5, 6, 4, 7, 6, 5, 4, 4, 4, 4, 1 }
-},
-{
- { 0, 5, 5, 3, 5, 3, 5, 4, 5, 5, 3, 4, 3, 4, 4, 4 },
- { 0, 5, 5, 3, 5, 4, 5, 4, 5, 5, 3, 4, 3, 4, 4, 3 },
- { 0, 6, 6, 4, 6, 4, 5, 4, 6, 5, 4, 3, 4, 4, 3, 2 },
- { 0, 7, 7, 4, 7, 5, 6, 4, 7, 6, 5, 4, 4, 4, 4, 1 }
-},
-{
- { 0, 5, 5, 3, 5, 3, 5, 4, 5, 5, 3, 4, 3, 4, 4, 4 },
- { 0, 5, 5, 3, 5, 4, 5, 4, 5, 5, 3, 4, 3, 4, 4, 3 },
- { 0, 5, 5, 3, 5, 4, 4, 4, 5, 4, 4, 4, 3, 4, 4, 3 },
- { 0, 6, 6, 4, 6, 4, 5, 4, 6, 5, 4, 3, 4, 4, 3, 2 }
-},
-{
- { 0, 4, 4, 3, 4, 3, 5, 5, 4, 5, 3, 5, 3, 5, 4, 5 },
- { 0, 4, 4, 3, 4, 4, 5, 4, 4, 5, 3, 5, 3, 5, 4, 4 },
- { 0, 4, 4, 3, 4, 4, 5, 4, 4, 5, 4, 4, 3, 4, 4, 4 },
- { 0, 4, 4, 3, 5, 4, 5, 4, 5, 5, 4, 4, 3, 4, 4, 3 }
-}
-};
-
-
-static const uint8_t rv34_table_inter_firstpat[NUM_INTER_TABLES][2][FIRSTBLK_VLC_SIZE] = {
- {
- {
- 0, 7, 5, 7, 5, 7, 6, 6, 7, 10, 7, 9, 8, 9, 8, 7,
- 12, 14, 11, 12, 12, 12, 11, 9, 6, 9, 6, 8, 7, 9, 7, 7,
- 8, 11, 8, 9, 9, 10, 9, 8, 13, 15, 12, 12, 12, 13, 11, 9,
- 10, 13, 9, 10, 11, 12, 9, 8, 12, 14, 10, 11, 12, 13, 10, 9,
- 16, 16, 12, 12, 14, 13, 11, 9, 6, 9, 7, 9, 7, 9, 8, 7,
- 9, 11, 9, 10, 9, 10, 9, 8, 14, 16, 12, 12, 13, 13, 11, 9,
- 8, 11, 8, 10, 9, 10, 9, 8, 10, 13, 10, 11, 10, 11, 9, 8,
- 14, 16, 12, 12, 13, 13, 11, 9, 12, 14, 10, 11, 12, 13, 10, 9,
- 13, 16, 11, 12, 13, 13, 10, 9, 16, 16, 13, 12, 14, 14, 11, 9,
- 11, 13, 11, 12, 10, 11, 10, 9, 13, 14, 12, 12, 11, 12, 10, 9,
- 16, 16, 13, 13, 13, 13, 11, 9, 12, 15, 12, 12, 11, 12, 10, 9,
- 13, 16, 13, 13, 12, 12, 11, 9, 16, 16, 14, 13, 13, 13, 11, 9,
- 14, 16, 13, 13, 13, 14, 11, 9, 16, 16, 13, 13, 14, 14, 11, 9,
- 16, 16, 13, 13, 14, 13, 11, 8, 4, 9, 6, 8, 6, 9, 7, 7,
- 8, 11, 8, 9, 9, 10, 8, 8, 13, 15, 12, 12, 13, 13, 11, 9,
- 7, 10, 7, 9, 8, 10, 8, 8, 9, 12, 9, 10, 10, 11, 9, 8,
- 14, 16, 12, 12, 13, 13, 11, 9, 11, 13, 9, 10, 11, 12, 9, 8,
- 12, 14, 10, 11, 12, 13, 10, 9, 16, 16, 13, 12, 14, 14, 11, 9,
- 7, 10, 8, 9, 8, 10, 8, 8, 10, 12, 10, 11, 10, 11, 9, 8,
- 14, 16, 13, 13, 13, 13, 11, 9, 9, 12, 9, 10, 9, 11, 9, 8,
- 11, 13, 10, 11, 10, 11, 10, 9, 15, 16, 13, 13, 13, 13, 11, 9,
- 12, 14, 11, 11, 12, 13, 10, 9, 13, 16, 11, 12, 13, 13, 10, 9,
- 16, 16, 12, 12, 14, 13, 11, 8, 11, 14, 11, 12, 10, 11, 10, 9,
- 13, 15, 12, 13, 11, 12, 10, 9, 16, 16, 14, 13, 13, 13, 11, 9,
- 12, 15, 12, 13, 11, 12, 10, 9, 13, 16, 13, 13, 12, 12, 11, 9,
- 16, 16, 14, 13, 13, 13, 11, 9, 15, 16, 13, 13, 13, 13, 11, 9,
- 16, 16, 13, 13, 13, 13, 11, 9, 16, 16, 13, 12, 13, 13, 10, 7,
- 8, 11, 8, 10, 9, 11, 9, 9, 10, 13, 10, 11, 11, 12, 10, 9,
- 15, 16, 13, 13, 14, 14, 12, 10, 9, 12, 9, 11, 10, 11, 9, 9,
- 12, 14, 11, 11, 11, 12, 10, 9, 16, 16, 13, 13, 14, 14, 12, 10,
- 12, 14, 10, 11, 12, 13, 10, 9, 14, 16, 11, 12, 13, 14, 10, 9,
- 16, 16, 13, 13, 15, 14, 11, 9, 9, 12, 10, 11, 9, 11, 10, 9,
- 12, 14, 11, 12, 11, 12, 10, 9, 16, 16, 14, 13, 14, 14, 12, 10,
- 11, 14, 10, 12, 11, 12, 10, 9, 12, 15, 11, 12, 12, 13, 11, 10,
- 16, 16, 14, 13, 14, 14, 12, 10, 13, 16, 11, 12, 13, 14, 11, 9,
- 14, 16, 12, 12, 13, 14, 11, 9, 16, 16, 13, 13, 14, 14, 11, 9,
- 12, 15, 12, 13, 10, 12, 10, 9, 14, 16, 13, 13, 11, 12, 11, 10,
- 16, 16, 14, 14, 14, 13, 12, 9, 13, 16, 13, 13, 12, 13, 11, 10,
- 14, 16, 13, 13, 12, 13, 11, 10, 16, 16, 14, 14, 13, 13, 12, 9,
- 15, 16, 13, 13, 13, 14, 11, 9, 16, 16, 13, 13, 13, 14, 11, 9,
- 16, 16, 13, 12, 13, 13, 10, 8, 10, 13, 10, 11, 10, 12, 10, 9,
- 12, 14, 11, 12, 12, 13, 11, 10, 16, 16, 13, 13, 14, 14, 12, 9,
- 11, 14, 10, 11, 11, 12, 10, 9, 13, 16, 11, 12, 12, 13, 11, 10,
- 16, 16, 14, 13, 14, 14, 12, 9, 12, 15, 10, 11, 12, 13, 9, 8,
- 14, 16, 11, 11, 13, 14, 10, 8, 16, 16, 12, 12, 14, 14, 10, 8,
- 11, 14, 11, 12, 11, 12, 10, 9, 13, 16, 12, 13, 12, 13, 11, 10,
- 16, 16, 14, 13, 14, 14, 12, 9, 12, 15, 11, 12, 11, 13, 10, 10,
- 13, 16, 12, 13, 12, 13, 11, 10, 16, 16, 14, 13, 14, 14, 12, 9,
- 13, 16, 11, 11, 13, 13, 10, 8, 14, 16, 11, 12, 13, 14, 10, 8,
- 16, 16, 12, 12, 14, 14, 10, 8, 12, 15, 12, 13, 10, 11, 10, 9,
- 14, 16, 13, 13, 11, 12, 10, 9, 16, 16, 14, 13, 13, 13, 11, 8,
- 13, 16, 12, 13, 11, 12, 10, 9, 14, 16, 13, 13, 12, 12, 10, 9,
- 16, 16, 14, 13, 13, 12, 10, 8, 14, 16, 12, 12, 12, 13, 10, 8,
- 14, 16, 12, 12, 12, 13, 10, 7, 16, 16, 11, 11, 12, 11, 8, 5,
- },
- {
- 0, 7, 4, 8, 5, 8, 7, 8, 6, 10, 7, 10, 8, 10, 9, 9,
- 13, 16, 12, 13, 13, 14, 12, 12, 4, 10, 6, 9, 8, 11, 8, 9,
- 8, 12, 8, 11, 10, 12, 10, 10, 14, 16, 12, 13, 14, 15, 12, 12,
- 9, 14, 9, 11, 12, 14, 11, 11, 11, 15, 10, 12, 13, 14, 11, 11,
- 15, 16, 13, 14, 15, 16, 13, 12, 5, 10, 7, 10, 7, 10, 9, 9,
- 8, 12, 9, 11, 10, 11, 10, 10, 14, 16, 13, 14, 14, 14, 12, 12,
- 8, 12, 8, 11, 10, 12, 10, 10, 10, 14, 10, 12, 11, 13, 10, 11,
- 15, 16, 13, 14, 14, 15, 13, 12, 11, 16, 10, 12, 13, 15, 11, 11,
- 13, 16, 11, 13, 14, 15, 12, 12, 16, 16, 14, 14, 16, 16, 13, 12,
- 11, 15, 11, 13, 11, 13, 11, 11, 13, 16, 12, 14, 12, 13, 12, 12,
- 16, 16, 14, 15, 15, 15, 13, 12, 12, 16, 12, 14, 12, 14, 12, 12,
- 14, 16, 13, 14, 13, 14, 12, 12, 16, 16, 14, 16, 16, 16, 13, 12,
- 14, 16, 13, 14, 15, 16, 13, 12, 16, 16, 14, 15, 16, 16, 13, 12,
- 16, 16, 15, 16, 16, 16, 13, 12, 2, 9, 5, 8, 6, 9, 8, 9,
- 7, 11, 8, 10, 9, 11, 9, 10, 13, 16, 12, 13, 14, 14, 12, 12,
- 5, 11, 6, 10, 9, 11, 9, 9, 9, 13, 9, 11, 10, 12, 10, 10,
- 14, 16, 12, 14, 14, 15, 12, 12, 9, 14, 9, 11, 12, 14, 10, 11,
- 11, 16, 10, 12, 13, 14, 11, 11, 16, 16, 13, 14, 15, 16, 13, 12,
- 6, 11, 7, 10, 8, 11, 9, 9, 9, 13, 9, 11, 10, 12, 10, 10,
- 14, 16, 13, 14, 14, 14, 12, 12, 8, 13, 8, 11, 10, 12, 10, 10,
- 10, 13, 10, 12, 11, 13, 10, 11, 14, 16, 13, 14, 14, 15, 12, 12,
- 11, 15, 10, 12, 13, 15, 11, 11, 12, 16, 11, 13, 13, 15, 12, 11,
- 16, 16, 13, 14, 15, 16, 13, 12, 11, 15, 11, 13, 10, 13, 11, 11,
- 13, 16, 12, 14, 12, 13, 12, 11, 16, 16, 14, 15, 15, 15, 13, 12,
- 12, 16, 12, 13, 12, 14, 12, 12, 13, 16, 12, 14, 13, 14, 12, 12,
- 16, 16, 14, 15, 15, 15, 13, 12, 14, 16, 13, 14, 15, 16, 12, 12,
- 16, 16, 13, 14, 15, 16, 12, 12, 16, 16, 14, 15, 16, 16, 13, 12,
- 6, 12, 7, 10, 9, 12, 9, 10, 9, 13, 9, 12, 11, 13, 11, 11,
- 14, 16, 13, 14, 15, 15, 13, 12, 8, 13, 8, 11, 10, 13, 10, 10,
- 10, 14, 10, 12, 12, 14, 11, 11, 15, 16, 13, 14, 16, 16, 13, 12,
- 10, 15, 9, 12, 12, 15, 11, 11, 12, 16, 11, 13, 14, 16, 12, 12,
- 16, 16, 14, 14, 16, 16, 13, 12, 8, 13, 9, 11, 10, 12, 10, 11,
- 11, 14, 11, 12, 11, 13, 11, 11, 16, 16, 14, 15, 15, 16, 13, 12,
- 10, 14, 10, 12, 11, 13, 11, 11, 11, 15, 11, 13, 12, 14, 11, 11,
- 15, 16, 13, 14, 15, 16, 13, 12, 12, 16, 11, 13, 13, 16, 12, 12,
- 13, 16, 11, 13, 14, 16, 12, 12, 16, 16, 13, 14, 16, 16, 13, 12,
- 12, 16, 12, 14, 11, 13, 11, 11, 13, 16, 13, 14, 12, 14, 12, 12,
- 16, 16, 15, 16, 16, 16, 14, 13, 13, 16, 12, 14, 12, 14, 12, 12,
- 14, 16, 13, 14, 13, 14, 12, 12, 16, 16, 14, 16, 14, 16, 13, 12,
- 15, 16, 13, 15, 15, 16, 13, 12, 15, 16, 13, 15, 14, 16, 13, 12,
- 16, 16, 14, 15, 15, 16, 13, 11, 8, 13, 8, 11, 10, 13, 10, 11,
- 11, 15, 10, 12, 12, 14, 11, 11, 15, 16, 13, 14, 15, 15, 13, 12,
- 9, 14, 9, 12, 11, 14, 10, 11, 11, 16, 10, 12, 13, 14, 11, 11,
- 16, 16, 13, 14, 15, 16, 13, 12, 11, 15, 9, 12, 12, 14, 10, 10,
- 12, 16, 11, 12, 14, 15, 11, 11, 16, 16, 13, 14, 16, 16, 12, 11,
- 9, 14, 10, 12, 11, 13, 11, 11, 12, 16, 11, 13, 12, 14, 11, 11,
- 16, 16, 14, 14, 15, 15, 13, 12, 10, 15, 10, 12, 12, 14, 11, 11,
- 12, 16, 11, 13, 13, 14, 11, 11, 16, 16, 14, 14, 15, 16, 13, 12,
- 12, 16, 10, 12, 13, 15, 11, 11, 13, 16, 11, 13, 14, 15, 11, 11,
- 16, 16, 13, 13, 15, 16, 12, 11, 12, 16, 11, 13, 10, 13, 11, 11,
- 14, 16, 13, 14, 12, 14, 11, 11, 16, 16, 15, 16, 14, 15, 13, 11,
- 13, 16, 12, 14, 12, 14, 11, 11, 13, 16, 12, 14, 12, 14, 11, 11,
- 16, 16, 14, 15, 14, 14, 12, 11, 14, 16, 12, 13, 13, 15, 11, 11,
- 14, 16, 12, 13, 13, 14, 11, 11, 15, 16, 12, 13, 13, 13, 10, 9,
- },
- },
- {
- {
- 0, 7, 4, 7, 5, 7, 6, 6, 6, 10, 7, 8, 8, 9, 8, 7,
- 13, 14, 11, 12, 12, 12, 11, 9, 5, 9, 6, 8, 7, 9, 7, 7,
- 8, 11, 8, 9, 9, 10, 9, 8, 13, 16, 12, 12, 12, 13, 11, 9,
- 10, 13, 8, 10, 11, 12, 9, 9, 12, 14, 10, 11, 12, 13, 10, 9,
- 15, 16, 12, 12, 14, 14, 11, 9, 6, 10, 7, 9, 7, 9, 8, 7,
- 8, 11, 9, 10, 9, 10, 9, 8, 14, 16, 12, 12, 13, 12, 11, 9,
- 8, 11, 8, 10, 9, 10, 9, 8, 10, 13, 10, 11, 10, 11, 9, 9,
- 14, 16, 12, 12, 13, 13, 11, 9, 12, 15, 10, 11, 12, 13, 10, 9,
- 13, 16, 11, 12, 13, 13, 10, 9, 16, 16, 12, 13, 14, 14, 11, 9,
- 10, 14, 11, 12, 9, 11, 10, 9, 12, 15, 12, 13, 11, 12, 11, 9,
- 16, 16, 13, 13, 13, 13, 11, 9, 12, 15, 12, 13, 11, 12, 11, 9,
- 13, 16, 12, 13, 12, 13, 11, 10, 16, 16, 13, 13, 13, 13, 11, 9,
- 14, 16, 13, 13, 13, 14, 11, 10, 16, 16, 13, 13, 13, 14, 11, 10,
- 16, 16, 13, 13, 14, 14, 11, 9, 4, 9, 6, 8, 6, 9, 7, 7,
- 8, 11, 8, 9, 9, 10, 9, 8, 13, 15, 12, 12, 13, 13, 11, 9,
- 6, 10, 7, 9, 8, 10, 8, 8, 9, 12, 9, 10, 10, 11, 9, 8,
- 14, 16, 12, 12, 13, 13, 11, 10, 10, 13, 8, 10, 11, 12, 9, 9,
- 12, 15, 10, 11, 12, 13, 10, 9, 16, 16, 12, 12, 14, 14, 11, 9,
- 7, 11, 8, 9, 7, 10, 8, 8, 9, 12, 10, 11, 9, 11, 9, 9,
- 14, 16, 12, 13, 13, 13, 11, 10, 9, 12, 9, 10, 9, 11, 9, 9,
- 10, 13, 10, 11, 10, 11, 10, 9, 14, 16, 12, 13, 13, 13, 11, 9,
- 12, 15, 10, 11, 12, 13, 10, 9, 13, 16, 11, 12, 13, 13, 10, 9,
- 16, 16, 12, 12, 14, 14, 11, 9, 10, 14, 11, 12, 9, 11, 10, 9,
- 12, 16, 12, 13, 11, 12, 11, 9, 16, 16, 14, 14, 13, 13, 11, 9,
- 12, 16, 12, 13, 11, 12, 10, 10, 13, 16, 12, 13, 11, 12, 11, 10,
- 16, 16, 13, 13, 13, 13, 11, 9, 14, 16, 13, 13, 13, 14, 11, 9,
- 15, 16, 13, 13, 13, 14, 11, 9, 16, 16, 13, 13, 13, 13, 10, 8,
- 7, 11, 8, 10, 9, 11, 9, 9, 10, 13, 10, 11, 11, 12, 10, 10,
- 15, 16, 13, 13, 14, 14, 12, 10, 9, 13, 9, 11, 10, 12, 10, 9,
- 11, 14, 10, 12, 12, 13, 10, 10, 16, 16, 13, 13, 14, 14, 12, 10,
- 11, 15, 9, 11, 12, 13, 10, 9, 13, 16, 11, 12, 13, 14, 11, 10,
- 16, 16, 13, 13, 15, 15, 11, 10, 9, 13, 10, 11, 9, 11, 10, 9,
- 11, 14, 11, 12, 11, 12, 11, 10, 16, 16, 14, 14, 14, 14, 12, 10,
- 10, 14, 10, 12, 11, 12, 10, 10, 12, 15, 11, 12, 12, 13, 11, 10,
- 16, 16, 13, 13, 14, 14, 12, 10, 13, 16, 11, 12, 13, 14, 11, 10,
- 13, 16, 11, 12, 13, 14, 11, 10, 16, 16, 12, 13, 14, 14, 11, 9,
- 11, 15, 12, 13, 10, 12, 10, 10, 13, 16, 13, 14, 11, 13, 11, 10,
- 16, 16, 14, 14, 14, 14, 12, 10, 13, 16, 13, 13, 11, 13, 11, 10,
- 14, 16, 13, 14, 12, 13, 11, 10, 16, 16, 14, 14, 13, 13, 12, 10,
- 15, 16, 13, 14, 14, 14, 11, 10, 15, 16, 13, 13, 13, 14, 11, 10,
- 16, 16, 12, 13, 13, 13, 10, 8, 9, 13, 10, 11, 10, 12, 10, 10,
- 12, 15, 11, 12, 12, 13, 11, 10, 16, 16, 14, 13, 14, 14, 12, 10,
- 10, 14, 10, 12, 11, 13, 10, 10, 13, 16, 11, 12, 12, 14, 11, 10,
- 16, 16, 13, 13, 14, 14, 12, 10, 12, 16, 9, 11, 12, 14, 10, 9,
- 13, 16, 10, 12, 13, 14, 10, 9, 16, 16, 12, 12, 14, 14, 11, 9,
- 10, 14, 11, 12, 10, 12, 10, 10, 13, 16, 12, 13, 12, 13, 11, 10,
- 16, 16, 14, 14, 14, 14, 12, 10, 11, 16, 11, 12, 11, 13, 11, 10,
- 13, 16, 12, 13, 12, 14, 11, 10, 16, 16, 14, 14, 14, 14, 12, 10,
- 13, 16, 11, 12, 13, 14, 10, 9, 14, 16, 11, 12, 13, 14, 10, 9,
- 16, 16, 12, 12, 14, 14, 10, 8, 12, 16, 12, 13, 10, 12, 10, 9,
- 14, 16, 13, 13, 11, 12, 11, 9, 16, 16, 14, 14, 13, 13, 11, 9,
- 13, 16, 12, 13, 11, 12, 10, 9, 14, 16, 13, 13, 11, 13, 11, 9,
- 16, 16, 14, 14, 13, 13, 11, 9, 14, 16, 12, 13, 12, 13, 10, 8,
- 14, 16, 12, 12, 12, 13, 10, 8, 15, 16, 11, 11, 11, 12, 9, 6,
- },
- {
- 0, 7, 4, 7, 5, 8, 7, 8, 5, 10, 7, 10, 8, 10, 9, 10,
- 13, 16, 12, 14, 14, 14, 13, 12, 4, 10, 6, 9, 8, 11, 9, 9,
- 8, 12, 8, 11, 10, 12, 10, 10, 14, 16, 13, 14, 14, 15, 13, 12,
- 9, 14, 9, 12, 12, 14, 11, 11, 12, 16, 11, 13, 13, 15, 12, 12,
- 15, 16, 14, 15, 15, 16, 13, 13, 5, 10, 7, 10, 7, 10, 9, 9,
- 8, 12, 9, 11, 9, 11, 10, 10, 14, 16, 13, 14, 14, 15, 13, 12,
- 7, 12, 8, 11, 10, 12, 10, 10, 10, 13, 10, 12, 11, 13, 11, 11,
- 15, 16, 13, 15, 14, 16, 13, 13, 11, 16, 11, 13, 13, 16, 12, 12,
- 13, 16, 12, 14, 14, 16, 12, 12, 16, 16, 14, 16, 16, 16, 14, 13,
- 11, 15, 12, 14, 11, 13, 11, 12, 13, 16, 12, 14, 12, 14, 12, 12,
- 16, 16, 14, 16, 14, 16, 13, 13, 13, 16, 12, 14, 12, 14, 12, 12,
- 14, 16, 13, 15, 13, 15, 13, 13, 16, 16, 15, 16, 16, 16, 14, 13,
- 15, 16, 13, 16, 15, 16, 13, 13, 16, 16, 14, 16, 16, 16, 14, 13,
- 16, 16, 16, 16, 16, 16, 14, 13, 2, 9, 5, 8, 6, 9, 8, 9,
- 7, 11, 8, 10, 9, 11, 9, 10, 14, 16, 13, 14, 14, 15, 13, 12,
- 5, 11, 6, 10, 9, 11, 9, 10, 8, 13, 9, 11, 11, 12, 10, 11,
- 14, 16, 13, 14, 14, 16, 13, 13, 9, 15, 9, 12, 12, 14, 11, 11,
- 12, 16, 11, 13, 13, 15, 12, 12, 16, 16, 14, 15, 16, 16, 14, 13,
- 6, 11, 7, 10, 8, 11, 9, 10, 9, 13, 9, 12, 10, 12, 10, 11,
- 14, 16, 13, 14, 14, 15, 13, 13, 8, 12, 8, 11, 10, 12, 10, 11,
- 9, 13, 10, 12, 11, 13, 11, 11, 14, 16, 13, 14, 14, 16, 13, 13,
- 12, 16, 11, 13, 13, 15, 12, 12, 13, 16, 11, 13, 14, 16, 12, 12,
- 16, 16, 14, 15, 16, 16, 13, 13, 11, 15, 11, 14, 10, 13, 11, 12,
- 13, 16, 13, 15, 12, 14, 12, 12, 16, 16, 15, 16, 15, 16, 14, 13,
- 12, 16, 12, 14, 12, 14, 12, 12, 13, 16, 13, 15, 13, 14, 12, 13,
- 16, 16, 15, 16, 15, 16, 13, 13, 15, 16, 13, 16, 15, 16, 13, 13,
- 16, 16, 14, 16, 16, 16, 13, 13, 16, 16, 15, 16, 16, 16, 14, 13,
- 5, 12, 7, 10, 9, 12, 10, 10, 9, 13, 9, 12, 11, 13, 11, 11,
- 15, 16, 13, 14, 15, 15, 13, 13, 7, 13, 8, 11, 10, 13, 10, 11,
- 10, 14, 10, 12, 12, 14, 11, 12, 16, 16, 14, 15, 16, 16, 14, 13,
- 10, 16, 9, 12, 13, 15, 11, 12, 13, 16, 11, 13, 14, 16, 12, 12,
- 16, 16, 14, 16, 16, 16, 14, 13, 8, 13, 9, 12, 9, 12, 10, 11,
- 11, 15, 11, 13, 11, 13, 11, 12, 16, 16, 14, 16, 16, 16, 14, 13,
- 9, 14, 10, 12, 11, 13, 11, 12, 11, 15, 11, 13, 12, 14, 12, 12,
- 16, 16, 14, 16, 15, 16, 14, 13, 12, 16, 11, 14, 14, 16, 12, 12,
- 13, 16, 12, 14, 14, 16, 13, 13, 16, 16, 13, 15, 16, 16, 14, 13,
- 11, 16, 12, 14, 10, 13, 12, 12, 13, 16, 13, 15, 12, 14, 12, 13,
- 16, 16, 16, 16, 16, 16, 14, 14, 13, 16, 13, 15, 12, 15, 12, 13,
- 13, 16, 13, 15, 12, 15, 13, 13, 16, 16, 15, 16, 14, 16, 14, 13,
- 16, 16, 14, 16, 16, 16, 14, 13, 15, 16, 14, 16, 15, 16, 14, 13,
- 16, 16, 14, 16, 15, 16, 13, 12, 8, 14, 9, 12, 10, 14, 11, 12,
- 11, 16, 10, 13, 12, 14, 12, 12, 16, 16, 14, 15, 15, 16, 14, 13,
- 9, 15, 9, 12, 12, 14, 11, 12, 12, 16, 11, 13, 13, 15, 12, 12,
- 16, 16, 14, 15, 16, 16, 14, 13, 11, 16, 9, 12, 13, 15, 11, 11,
- 13, 16, 11, 13, 14, 16, 12, 12, 16, 16, 14, 14, 16, 16, 13, 12,
- 9, 15, 10, 13, 11, 14, 11, 12, 12, 16, 11, 14, 12, 14, 12, 12,
- 16, 16, 14, 16, 16, 16, 14, 13, 10, 16, 10, 13, 12, 15, 12, 12,
- 12, 16, 12, 14, 13, 15, 12, 12, 16, 16, 14, 16, 16, 16, 14, 13,
- 12, 16, 11, 13, 13, 16, 12, 12, 13, 16, 11, 13, 14, 16, 12, 12,
- 16, 16, 13, 14, 16, 16, 13, 12, 11, 16, 12, 14, 10, 13, 11, 12,
- 13, 16, 13, 15, 12, 14, 12, 12, 16, 16, 16, 16, 15, 16, 13, 12,
- 12, 16, 12, 15, 12, 14, 12, 12, 13, 16, 13, 15, 12, 14, 12, 12,
- 16, 16, 15, 16, 14, 15, 13, 12, 14, 16, 13, 14, 13, 16, 12, 12,
- 13, 16, 12, 14, 13, 15, 12, 12, 14, 16, 12, 13, 13, 14, 11, 10,
- },
- },
- {
- {
- 0, 7, 4, 7, 5, 7, 6, 6, 6, 10, 7, 8, 8, 9, 8, 8,
- 13, 14, 11, 12, 12, 12, 11, 10, 5, 9, 6, 8, 7, 9, 7, 7,
- 8, 11, 8, 9, 9, 10, 9, 8, 13, 16, 12, 12, 13, 13, 11, 10,
- 10, 14, 8, 10, 11, 13, 9, 9, 12, 15, 10, 11, 12, 13, 10, 10,
- 16, 16, 12, 13, 14, 14, 11, 10, 5, 10, 7, 9, 6, 9, 8, 8,
- 8, 11, 9, 10, 9, 10, 9, 8, 14, 16, 12, 12, 13, 13, 11, 10,
- 8, 12, 8, 10, 9, 10, 9, 9, 10, 13, 9, 11, 10, 11, 9, 9,
- 14, 16, 12, 13, 13, 13, 11, 10, 12, 16, 10, 12, 12, 13, 10, 10,
- 13, 16, 11, 12, 13, 14, 11, 10, 16, 16, 12, 13, 14, 14, 11, 10,
- 10, 14, 11, 13, 9, 11, 10, 10, 12, 16, 12, 13, 11, 12, 11, 10,
- 16, 16, 13, 14, 13, 13, 12, 10, 12, 16, 12, 13, 11, 13, 11, 10,
- 13, 16, 12, 13, 12, 13, 11, 10, 16, 16, 13, 14, 13, 14, 12, 10,
- 14, 16, 13, 14, 13, 14, 12, 11, 16, 16, 13, 14, 14, 15, 12, 11,
- 16, 16, 13, 14, 14, 14, 11, 10, 3, 9, 5, 8, 6, 9, 7, 7,
- 8, 11, 8, 10, 9, 10, 9, 8, 14, 15, 12, 12, 13, 13, 11, 10,
- 6, 11, 6, 9, 8, 10, 8, 8, 9, 12, 9, 10, 10, 11, 9, 9,
- 14, 16, 12, 13, 13, 13, 11, 10, 10, 14, 8, 11, 12, 13, 9, 9,
- 12, 16, 10, 11, 12, 13, 10, 10, 16, 16, 12, 13, 14, 14, 11, 10,
- 6, 11, 8, 10, 7, 10, 8, 8, 9, 12, 10, 11, 9, 11, 9, 9,
- 14, 16, 12, 13, 13, 13, 12, 10, 9, 12, 9, 11, 9, 11, 9, 9,
- 10, 13, 10, 11, 10, 12, 10, 9, 14, 16, 12, 13, 13, 13, 11, 10,
- 12, 16, 10, 12, 12, 14, 10, 10, 13, 16, 10, 12, 13, 14, 11, 10,
- 16, 16, 12, 13, 14, 14, 11, 10, 10, 15, 11, 13, 9, 11, 10, 10,
- 12, 16, 12, 13, 11, 12, 11, 10, 16, 16, 14, 14, 13, 14, 12, 10,
- 12, 16, 12, 13, 11, 13, 11, 10, 13, 16, 12, 13, 11, 13, 11, 10,
- 16, 16, 13, 14, 13, 13, 12, 10, 14, 16, 13, 14, 14, 14, 11, 11,
- 15, 16, 13, 14, 13, 14, 11, 10, 16, 16, 13, 13, 13, 14, 11, 9,
- 7, 12, 8, 11, 9, 11, 9, 10, 10, 14, 10, 12, 11, 12, 11, 10,
- 16, 16, 13, 13, 14, 14, 12, 11, 9, 13, 9, 11, 10, 12, 10, 10,
- 11, 15, 10, 12, 12, 13, 11, 10, 16, 16, 13, 14, 14, 14, 12, 11,
- 11, 16, 9, 11, 12, 14, 10, 10, 13, 16, 10, 12, 13, 14, 11, 10,
- 16, 16, 13, 14, 16, 16, 12, 11, 9, 13, 10, 12, 9, 12, 10, 10,
- 11, 15, 11, 13, 11, 13, 11, 11, 16, 16, 14, 14, 14, 14, 13, 11,
- 10, 14, 10, 12, 11, 13, 11, 10, 12, 16, 11, 13, 12, 13, 11, 11,
- 16, 16, 13, 14, 14, 14, 12, 11, 13, 16, 11, 13, 13, 14, 11, 11,
- 13, 16, 11, 13, 13, 14, 11, 11, 16, 16, 12, 13, 14, 15, 12, 10,
- 11, 16, 12, 14, 10, 12, 11, 10, 13, 16, 13, 14, 11, 13, 11, 11,
- 16, 16, 15, 16, 14, 14, 13, 11, 13, 16, 13, 14, 12, 13, 11, 11,
- 13, 16, 13, 14, 12, 13, 11, 11, 16, 16, 14, 14, 13, 14, 12, 11,
- 15, 16, 13, 14, 14, 16, 12, 11, 14, 16, 13, 14, 13, 14, 12, 11,
- 16, 16, 12, 13, 13, 14, 11, 9, 9, 14, 10, 12, 10, 13, 11, 11,
- 12, 16, 12, 13, 12, 14, 12, 11, 16, 16, 14, 14, 14, 14, 13, 11,
- 10, 16, 10, 13, 12, 14, 11, 11, 13, 16, 12, 13, 13, 14, 12, 11,
- 16, 16, 14, 14, 15, 15, 13, 11, 12, 16, 9, 12, 13, 14, 10, 10,
- 14, 16, 11, 12, 13, 15, 11, 10, 16, 16, 13, 13, 15, 16, 11, 10,
- 10, 16, 11, 13, 11, 13, 11, 11, 13, 16, 12, 14, 12, 14, 12, 11,
- 16, 16, 14, 14, 14, 14, 13, 11, 11, 16, 11, 13, 12, 14, 11, 11,
- 13, 16, 12, 14, 13, 14, 12, 11, 16, 16, 14, 14, 14, 15, 13, 11,
- 13, 16, 11, 13, 13, 14, 11, 10, 14, 16, 11, 13, 13, 14, 11, 10,
- 16, 16, 12, 13, 14, 15, 11, 9, 12, 16, 12, 14, 10, 13, 11, 10,
- 14, 16, 13, 14, 11, 13, 11, 10, 16, 16, 14, 15, 13, 14, 12, 10,
- 13, 16, 13, 14, 11, 13, 11, 10, 14, 16, 13, 14, 12, 13, 11, 10,
- 16, 16, 14, 14, 13, 13, 11, 10, 14, 16, 12, 13, 13, 14, 11, 9,
- 14, 16, 12, 13, 12, 13, 10, 9, 14, 16, 11, 11, 12, 12, 9, 7,
- },
- {
- 0, 7, 3, 8, 5, 8, 7, 9, 5, 10, 7, 10, 8, 11, 10, 10,
- 14, 16, 14, 15, 14, 16, 14, 14, 4, 10, 6, 10, 8, 11, 9, 10,
- 8, 12, 9, 11, 10, 12, 11, 11, 15, 16, 14, 16, 15, 16, 14, 14,
- 10, 16, 10, 13, 13, 16, 12, 13, 13, 16, 12, 14, 14, 16, 13, 13,
- 16, 16, 16, 16, 16, 16, 14, 15, 4, 10, 7, 10, 7, 10, 9, 10,
- 8, 12, 9, 12, 10, 12, 11, 12, 14, 16, 14, 16, 15, 16, 14, 14,
- 8, 12, 9, 12, 10, 13, 11, 12, 10, 14, 11, 13, 11, 14, 12, 13,
- 16, 16, 14, 16, 16, 16, 14, 15, 12, 16, 12, 14, 14, 16, 13, 14,
- 14, 16, 13, 16, 16, 16, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 12, 16, 11, 14, 13, 13, 13, 16, 13, 16, 13, 15, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 16, 13, 16, 13, 16, 13, 16, 13, 14,
- 14, 16, 14, 16, 14, 16, 14, 15, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 15, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 2, 9, 5, 9, 6, 10, 8, 10,
- 7, 11, 8, 11, 9, 12, 10, 11, 14, 16, 14, 16, 15, 16, 14, 14,
- 5, 11, 6, 10, 9, 12, 10, 11, 9, 13, 9, 12, 11, 13, 11, 12,
- 16, 16, 14, 16, 16, 16, 14, 14, 10, 16, 9, 13, 13, 16, 12, 13,
- 13, 16, 12, 14, 14, 16, 13, 13, 16, 16, 16, 16, 16, 16, 16, 14,
- 5, 11, 8, 11, 7, 11, 10, 11, 9, 13, 10, 13, 10, 13, 11, 12,
- 16, 16, 14, 16, 16, 16, 14, 14, 8, 13, 9, 12, 10, 13, 11, 12,
- 10, 14, 10, 13, 11, 14, 12, 12, 16, 16, 14, 16, 15, 16, 14, 14,
- 12, 16, 12, 14, 14, 16, 13, 14, 14, 16, 12, 16, 15, 16, 13, 14,
- 16, 16, 15, 16, 16, 16, 15, 15, 11, 16, 12, 16, 10, 14, 12, 13,
- 13, 16, 14, 16, 13, 16, 13, 14, 16, 16, 16, 16, 16, 16, 15, 16,
- 13, 16, 13, 16, 13, 16, 13, 14, 14, 16, 14, 16, 13, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 15, 16, 16, 16, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16,
- 5, 13, 7, 12, 9, 13, 11, 12, 10, 14, 10, 13, 11, 13, 12, 13,
- 16, 16, 16, 16, 16, 16, 16, 15, 7, 14, 8, 12, 11, 14, 11, 12,
- 11, 16, 11, 13, 13, 16, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 10, 14, 14, 16, 12, 13, 13, 16, 12, 15, 16, 16, 14, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 14, 10, 13, 9, 13, 11, 12,
- 11, 16, 12, 14, 12, 14, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 11, 14, 12, 14, 12, 13, 11, 16, 12, 14, 12, 15, 13, 13,
- 16, 16, 15, 16, 16, 16, 15, 16, 13, 16, 12, 16, 15, 16, 14, 14,
- 13, 16, 12, 16, 16, 16, 14, 14, 16, 16, 14, 16, 16, 16, 14, 16,
- 11, 16, 13, 16, 10, 14, 12, 13, 14, 16, 14, 16, 13, 16, 14, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 13, 16, 14, 16, 13, 16, 14, 15,
- 13, 16, 14, 16, 13, 16, 14, 15, 16, 16, 16, 16, 15, 16, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 15, 16,
- 16, 16, 15, 16, 16, 16, 14, 14, 8, 16, 10, 14, 11, 16, 12, 13,
- 12, 16, 12, 14, 13, 16, 13, 14, 16, 16, 16, 16, 16, 16, 16, 14,
- 10, 16, 10, 14, 12, 16, 12, 13, 13, 16, 12, 15, 14, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 15, 11, 16, 10, 13, 13, 16, 12, 13,
- 14, 16, 12, 14, 15, 16, 13, 13, 16, 16, 16, 16, 16, 16, 15, 14,
- 10, 16, 11, 14, 11, 16, 12, 13, 13, 16, 13, 16, 13, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 15, 11, 16, 12, 14, 13, 16, 13, 14,
- 13, 16, 13, 16, 14, 16, 13, 14, 16, 16, 16, 16, 16, 16, 16, 15,
- 13, 16, 12, 14, 14, 16, 13, 13, 13, 16, 12, 15, 14, 16, 13, 13,
- 16, 16, 14, 16, 16, 16, 14, 13, 11, 16, 12, 16, 11, 15, 12, 13,
- 14, 16, 14, 16, 13, 16, 13, 14, 16, 16, 16, 16, 16, 16, 14, 14,
- 12, 16, 13, 16, 12, 16, 13, 14, 13, 16, 14, 16, 13, 16, 13, 14,
- 16, 16, 16, 16, 14, 16, 14, 14, 14, 16, 13, 16, 14, 16, 13, 13,
- 13, 16, 13, 16, 14, 16, 13, 13, 15, 16, 13, 14, 13, 15, 12, 12,
- },
- },
- {
- {
- 0, 7, 4, 6, 4, 7, 6, 7, 6, 9, 7, 8, 7, 9, 8, 8,
- 13, 14, 12, 12, 12, 13, 11, 11, 5, 9, 5, 8, 7, 9, 7, 8,
- 8, 11, 8, 10, 9, 10, 9, 9, 13, 15, 12, 13, 12, 13, 11, 11,
- 9, 14, 8, 11, 11, 13, 10, 10, 11, 15, 10, 12, 12, 13, 10, 11,
- 14, 16, 12, 13, 14, 14, 12, 11, 5, 9, 7, 9, 6, 9, 8, 8,
- 8, 11, 8, 10, 8, 10, 9, 9, 13, 16, 12, 13, 13, 13, 11, 11,
- 7, 11, 8, 10, 9, 11, 9, 9, 9, 13, 9, 11, 10, 11, 10, 10,
- 14, 16, 12, 13, 13, 13, 12, 11, 11, 16, 10, 12, 12, 14, 11, 11,
- 13, 16, 11, 13, 13, 14, 11, 11, 16, 16, 13, 14, 14, 15, 12, 11,
- 10, 15, 11, 13, 9, 12, 10, 10, 12, 16, 12, 13, 11, 12, 11, 11,
- 15, 16, 13, 14, 13, 14, 12, 11, 12, 16, 12, 14, 11, 13, 11, 11,
- 13, 16, 12, 14, 12, 13, 12, 11, 16, 16, 13, 14, 14, 14, 12, 11,
- 14, 16, 13, 14, 14, 15, 12, 12, 16, 16, 13, 14, 14, 16, 12, 12,
- 16, 16, 14, 14, 14, 15, 12, 11, 3, 9, 5, 8, 6, 9, 7, 8,
- 7, 11, 8, 10, 9, 10, 9, 9, 13, 14, 12, 13, 13, 13, 12, 11,
- 6, 11, 6, 9, 8, 10, 8, 9, 9, 12, 8, 10, 10, 11, 9, 10,
- 14, 16, 12, 13, 13, 14, 12, 11, 9, 14, 8, 11, 11, 13, 10, 10,
- 12, 16, 10, 12, 12, 14, 11, 11, 16, 16, 12, 13, 14, 15, 12, 11,
- 6, 11, 8, 10, 7, 10, 8, 9, 9, 12, 9, 11, 9, 11, 10, 10,
- 14, 16, 13, 13, 13, 14, 12, 11, 8, 12, 9, 11, 9, 11, 9, 10,
- 10, 13, 9, 11, 10, 12, 10, 10, 14, 16, 12, 13, 13, 14, 12, 11,
- 12, 16, 10, 12, 12, 14, 11, 11, 12, 16, 10, 12, 13, 14, 11, 11,
- 15, 16, 12, 13, 14, 14, 11, 11, 10, 15, 11, 13, 9, 12, 10, 10,
- 12, 16, 12, 14, 11, 13, 11, 11, 16, 16, 14, 14, 14, 14, 12, 11,
- 12, 16, 12, 14, 11, 13, 11, 11, 13, 16, 12, 14, 11, 13, 11, 11,
- 16, 16, 13, 14, 13, 14, 12, 11, 14, 16, 13, 14, 14, 15, 12, 11,
- 14, 16, 13, 14, 13, 15, 12, 11, 16, 16, 13, 14, 13, 14, 11, 10,
- 6, 13, 8, 11, 9, 12, 10, 10, 10, 14, 10, 12, 11, 13, 11, 11,
- 16, 16, 13, 14, 14, 14, 13, 12, 8, 14, 8, 12, 10, 13, 10, 11,
- 11, 15, 10, 12, 12, 13, 11, 11, 16, 16, 14, 14, 15, 16, 13, 12,
- 11, 16, 9, 12, 12, 14, 11, 11, 13, 16, 11, 13, 13, 16, 11, 11,
- 16, 16, 13, 14, 16, 16, 13, 12, 8, 14, 10, 12, 9, 12, 10, 11,
- 11, 15, 11, 13, 11, 13, 11, 11, 16, 16, 14, 15, 14, 15, 13, 12,
- 10, 15, 10, 13, 11, 13, 11, 11, 11, 15, 11, 13, 12, 13, 11, 11,
- 16, 16, 13, 15, 14, 15, 13, 12, 12, 16, 11, 13, 13, 15, 11, 11,
- 13, 16, 11, 13, 13, 15, 11, 11, 16, 16, 12, 14, 14, 16, 12, 11,
- 11, 16, 12, 14, 10, 13, 11, 11, 13, 16, 13, 15, 12, 14, 12, 12,
- 16, 16, 15, 16, 14, 15, 13, 12, 12, 16, 13, 14, 12, 14, 12, 12,
- 13, 16, 13, 14, 12, 14, 12, 12, 16, 16, 14, 15, 13, 14, 12, 12,
- 15, 16, 13, 15, 14, 16, 12, 12, 14, 16, 13, 14, 13, 15, 12, 12,
- 15, 16, 12, 13, 13, 14, 11, 10, 9, 15, 10, 13, 11, 14, 11, 12,
- 12, 16, 12, 14, 12, 14, 12, 12, 16, 16, 14, 14, 14, 15, 13, 12,
- 10, 16, 10, 13, 12, 14, 12, 12, 13, 16, 12, 14, 13, 15, 12, 12,
- 16, 16, 14, 14, 15, 16, 13, 12, 11, 16, 9, 12, 13, 15, 11, 11,
- 14, 16, 11, 13, 14, 16, 11, 11, 16, 16, 13, 14, 16, 16, 12, 11,
- 10, 16, 11, 14, 11, 14, 12, 12, 13, 16, 13, 14, 12, 14, 12, 12,
- 16, 16, 14, 15, 15, 15, 13, 12, 11, 16, 12, 14, 12, 15, 12, 12,
- 13, 16, 12, 14, 13, 15, 12, 12, 16, 16, 14, 15, 15, 16, 13, 12,
- 12, 16, 11, 13, 13, 15, 11, 11, 13, 16, 11, 13, 13, 15, 11, 11,
- 16, 16, 12, 13, 14, 16, 12, 10, 11, 16, 12, 14, 10, 13, 11, 11,
- 14, 16, 13, 14, 12, 14, 11, 11, 16, 16, 15, 16, 14, 14, 12, 11,
- 12, 16, 13, 14, 11, 14, 11, 11, 13, 16, 13, 14, 12, 14, 11, 11,
- 16, 16, 14, 15, 13, 14, 12, 11, 14, 16, 12, 14, 13, 14, 11, 10,
- 13, 16, 12, 13, 12, 14, 11, 10, 14, 16, 11, 12, 12, 12, 10, 8,
- },
- {
- 0, 8, 4, 9, 5, 9, 8, 10, 6, 11, 8, 11, 9, 12, 11, 12,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 11, 6, 11, 9, 12, 10, 12,
- 9, 13, 10, 13, 11, 16, 12, 13, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 11, 16, 16, 16, 14, 16, 14, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 11, 8, 12, 7, 12, 10, 12,
- 8, 13, 10, 13, 10, 13, 12, 14, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 13, 10, 14, 11, 16, 12, 14, 11, 16, 12, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 14, 16, 12, 16, 16, 16, 13, 16, 16, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 10, 5, 10, 7, 11, 9, 11,
- 8, 12, 9, 12, 10, 13, 12, 13, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 12, 7, 12, 10, 13, 11, 12, 9, 16, 10, 13, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 10, 16, 16, 16, 14, 16,
- 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 12, 9, 13, 8, 12, 11, 13, 10, 16, 11, 16, 11, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 10, 14, 11, 16, 12, 16,
- 10, 16, 11, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 14, 16, 11, 16, 14, 16,
- 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 16, 9, 13, 10, 16, 12, 14, 11, 16, 12, 16, 12, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 9, 14, 12, 16, 13, 16,
- 12, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 10, 16, 16, 16, 14, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 11, 16, 10, 16, 12, 16,
- 12, 16, 13, 16, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 13, 16, 14, 16, 11, 16, 13, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 13, 16, 16, 16, 16, 16,
- 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 11, 16, 14, 16, 16, 16, 16, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 11, 16, 12, 16, 13, 16,
- 13, 16, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 11, 16, 13, 16, 14, 16, 14, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 10, 16, 16, 16, 13, 16,
- 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 12, 16, 13, 16, 13, 16, 16, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 13, 16, 14, 16, 16, 16,
- 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 12, 16, 16, 16, 14, 16, 14, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 13, 16, 11, 16, 13, 16,
- 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 14, 15,
- },
- },
- {
- {
- 0, 7, 3, 7, 4, 7, 6, 7, 6, 9, 7, 9, 7, 9, 8, 9,
- 13, 14, 12, 13, 13, 13, 12, 12, 4, 9, 5, 9, 7, 9, 8, 9,
- 7, 11, 8, 10, 9, 11, 9, 10, 13, 16, 12, 14, 13, 14, 12, 12,
- 9, 14, 8, 12, 12, 14, 10, 11, 11, 16, 10, 13, 13, 14, 11, 12,
- 15, 16, 13, 14, 14, 16, 12, 12, 5, 10, 7, 9, 6, 9, 8, 9,
- 8, 11, 8, 11, 8, 10, 9, 10, 14, 16, 12, 14, 13, 14, 12, 12,
- 7, 12, 8, 11, 9, 11, 9, 10, 9, 13, 9, 12, 10, 12, 10, 11,
- 14, 16, 12, 14, 13, 14, 12, 12, 12, 16, 11, 13, 13, 15, 11, 12,
- 13, 16, 11, 14, 13, 15, 12, 12, 15, 16, 13, 15, 14, 16, 13, 13,
- 10, 15, 12, 14, 9, 13, 11, 12, 12, 16, 12, 14, 11, 13, 12, 12,
- 15, 16, 13, 15, 14, 15, 13, 13, 12, 16, 12, 14, 12, 14, 12, 12,
- 13, 16, 13, 14, 12, 14, 12, 12, 16, 16, 14, 15, 14, 16, 13, 13,
- 15, 16, 13, 15, 14, 16, 12, 13, 16, 16, 14, 16, 14, 16, 13, 13,
- 16, 16, 14, 16, 15, 16, 13, 13, 3, 9, 5, 9, 6, 9, 8, 9,
- 7, 11, 8, 10, 9, 11, 9, 10, 14, 15, 13, 14, 13, 14, 12, 12,
- 5, 11, 6, 10, 8, 11, 9, 10, 9, 12, 9, 11, 10, 12, 10, 11,
- 14, 16, 13, 14, 14, 15, 13, 13, 9, 15, 8, 12, 12, 14, 10, 11,
- 12, 16, 10, 13, 13, 15, 11, 12, 15, 16, 13, 14, 14, 16, 13, 13,
- 6, 11, 8, 11, 7, 10, 9, 10, 9, 13, 10, 12, 9, 12, 10, 11,
- 14, 16, 13, 14, 14, 14, 13, 13, 8, 13, 9, 12, 9, 12, 10, 11,
- 9, 13, 9, 12, 10, 12, 10, 11, 14, 16, 12, 14, 13, 14, 12, 12,
- 12, 16, 11, 13, 13, 15, 11, 12, 12, 16, 11, 13, 13, 15, 11, 12,
- 14, 16, 12, 14, 14, 15, 12, 12, 10, 15, 11, 14, 9, 13, 11, 12,
- 12, 16, 12, 14, 11, 14, 12, 12, 16, 16, 14, 16, 14, 15, 13, 13,
- 12, 16, 12, 14, 11, 14, 12, 12, 12, 16, 13, 14, 11, 14, 12, 12,
- 15, 16, 14, 15, 13, 15, 12, 13, 14, 16, 13, 15, 14, 16, 13, 13,
- 14, 16, 13, 15, 14, 16, 12, 13, 15, 16, 13, 15, 13, 15, 12, 12,
- 6, 13, 8, 12, 9, 12, 10, 11, 10, 14, 11, 13, 11, 13, 12, 12,
- 15, 16, 14, 15, 15, 15, 14, 13, 8, 14, 9, 12, 11, 13, 11, 12,
- 11, 15, 11, 13, 12, 14, 12, 12, 16, 16, 14, 15, 15, 16, 14, 14,
- 10, 16, 9, 13, 12, 15, 11, 12, 13, 16, 11, 14, 13, 16, 12, 12,
- 16, 16, 14, 15, 16, 16, 13, 13, 8, 14, 10, 13, 9, 13, 11, 12,
- 11, 15, 12, 14, 11, 14, 12, 12, 16, 16, 15, 16, 15, 16, 14, 14,
- 10, 15, 10, 13, 11, 14, 11, 12, 11, 15, 11, 14, 12, 14, 12, 12,
- 15, 16, 14, 15, 14, 16, 13, 13, 12, 16, 11, 14, 13, 16, 12, 12,
- 12, 16, 11, 14, 13, 15, 12, 12, 15, 16, 12, 14, 15, 16, 13, 13,
- 11, 16, 12, 14, 10, 14, 11, 12, 13, 16, 13, 16, 12, 14, 12, 13,
- 16, 16, 16, 16, 15, 16, 14, 13, 12, 16, 13, 15, 12, 14, 12, 13,
- 13, 16, 13, 15, 12, 14, 12, 13, 16, 16, 14, 16, 13, 15, 13, 13,
- 15, 16, 14, 16, 14, 16, 13, 13, 14, 16, 13, 15, 13, 16, 13, 13,
- 14, 16, 12, 14, 13, 14, 12, 12, 9, 16, 11, 14, 11, 15, 12, 13,
- 13, 16, 12, 14, 12, 15, 13, 13, 16, 16, 14, 15, 15, 15, 14, 13,
- 11, 16, 11, 14, 12, 16, 12, 13, 13, 16, 12, 14, 13, 16, 13, 13,
- 16, 16, 14, 15, 16, 16, 14, 13, 11, 16, 10, 13, 13, 16, 11, 12,
- 14, 16, 11, 14, 14, 16, 12, 12, 16, 16, 14, 14, 16, 16, 13, 12,
- 11, 16, 12, 14, 11, 15, 12, 13, 13, 16, 13, 15, 13, 16, 13, 13,
- 16, 16, 15, 16, 15, 16, 14, 13, 11, 16, 12, 15, 12, 16, 12, 13,
- 13, 16, 13, 15, 13, 16, 13, 13, 16, 16, 15, 16, 15, 16, 14, 13,
- 12, 16, 11, 14, 13, 16, 12, 12, 13, 16, 11, 14, 13, 16, 12, 12,
- 16, 16, 13, 14, 15, 16, 12, 12, 11, 16, 12, 14, 10, 14, 11, 12,
- 14, 16, 13, 15, 12, 15, 12, 12, 16, 16, 16, 16, 14, 15, 13, 12,
- 12, 16, 13, 15, 12, 14, 12, 12, 13, 16, 13, 15, 12, 14, 12, 12,
- 16, 16, 14, 16, 14, 15, 12, 12, 14, 16, 13, 15, 13, 16, 11, 12,
- 13, 16, 12, 14, 13, 15, 11, 11, 14, 16, 12, 13, 12, 13, 11, 10,
- },
- {
- 0, 8, 4, 9, 5, 10, 9, 11, 5, 11, 9, 12, 9, 13, 12, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 11, 6, 12, 9, 13, 11, 13,
- 9, 16, 10, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 12, 8, 13, 7, 12, 11, 16,
- 8, 16, 11, 16, 11, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 10, 16, 11, 16, 13, 16, 11, 16, 12, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 10, 6, 11, 7, 12, 10, 13,
- 7, 12, 10, 13, 10, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 13, 7, 12, 10, 16, 12, 16, 10, 16, 11, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 11, 16, 16, 16, 16, 16,
- 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 13, 9, 16, 8, 16, 12, 16, 9, 16, 12, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 11, 16, 12, 16, 13, 16,
- 10, 16, 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 16, 9, 16, 10, 16, 13, 16, 11, 16, 12, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 9, 16, 12, 16, 13, 16,
- 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 10, 16, 16, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 11, 16, 11, 16, 13, 16,
- 12, 16, 13, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 13, 16, 16, 16, 11, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 16, 11, 16, 12, 16, 16, 16,
- 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 11, 16, 13, 16, 16, 16, 16, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 10, 16, 16, 16, 16, 16,
- 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 13, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 12, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 16, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 7, 4, 8, 4, 8, 7, 8, 6, 10, 7, 10, 8, 10, 9, 10,
- 13, 16, 13, 15, 13, 15, 13, 14, 4, 10, 5, 10, 7, 10, 9, 10,
- 7, 12, 8, 11, 9, 12, 10, 11, 13, 16, 13, 15, 13, 16, 13, 14,
- 9, 16, 9, 13, 12, 16, 11, 13, 11, 16, 11, 14, 13, 16, 12, 14,
- 15, 16, 14, 16, 15, 16, 14, 14, 4, 10, 7, 10, 6, 10, 9, 10,
- 8, 12, 9, 12, 9, 11, 10, 12, 13, 16, 13, 16, 14, 16, 13, 14,
- 7, 12, 8, 12, 9, 12, 10, 12, 9, 13, 10, 13, 10, 13, 11, 12,
- 14, 16, 13, 16, 14, 16, 13, 14, 12, 16, 11, 14, 13, 16, 12, 14,
- 13, 16, 12, 16, 14, 16, 13, 14, 16, 16, 14, 16, 15, 16, 14, 14,
- 10, 16, 12, 15, 10, 14, 12, 13, 12, 16, 13, 16, 12, 14, 13, 14,
- 15, 16, 14, 16, 14, 16, 14, 14, 12, 16, 13, 16, 12, 16, 13, 14,
- 13, 16, 13, 16, 13, 16, 13, 14, 16, 16, 14, 16, 15, 16, 14, 15,
- 15, 16, 14, 16, 15, 16, 13, 15, 16, 16, 14, 16, 15, 16, 14, 15,
- 16, 16, 16, 16, 16, 16, 15, 15, 2, 9, 5, 10, 6, 10, 8, 10,
- 7, 11, 8, 11, 9, 11, 10, 11, 14, 16, 13, 15, 14, 15, 14, 14,
- 5, 11, 6, 11, 8, 12, 9, 11, 8, 13, 9, 12, 10, 13, 11, 12,
- 14, 16, 13, 15, 14, 16, 14, 14, 9, 16, 8, 13, 12, 16, 11, 13,
- 12, 16, 11, 14, 13, 16, 12, 13, 16, 16, 14, 16, 15, 16, 14, 15,
- 5, 12, 8, 11, 7, 11, 9, 11, 9, 13, 10, 13, 10, 13, 11, 12,
- 14, 16, 14, 16, 14, 16, 14, 15, 8, 13, 9, 13, 10, 13, 11, 12,
- 9, 13, 10, 13, 10, 13, 11, 13, 13, 16, 13, 15, 13, 16, 13, 14,
- 12, 16, 11, 14, 13, 16, 12, 14, 12, 16, 11, 14, 13, 16, 12, 14,
- 14, 16, 13, 16, 14, 16, 13, 14, 10, 16, 12, 15, 9, 14, 11, 13,
- 12, 16, 13, 16, 12, 15, 12, 14, 16, 16, 15, 16, 15, 16, 14, 14,
- 12, 16, 13, 16, 12, 16, 12, 14, 12, 16, 13, 16, 12, 15, 13, 14,
- 15, 16, 14, 16, 14, 16, 14, 14, 15, 16, 14, 16, 14, 16, 14, 15,
- 14, 16, 13, 16, 14, 16, 13, 14, 16, 16, 14, 16, 14, 16, 13, 14,
- 6, 14, 9, 13, 9, 14, 11, 12, 10, 14, 11, 13, 11, 14, 12, 13,
- 16, 16, 15, 16, 15, 16, 14, 15, 8, 15, 9, 13, 11, 14, 11, 13,
- 11, 16, 11, 14, 12, 15, 12, 14, 16, 16, 15, 16, 16, 16, 15, 16,
- 10, 16, 9, 14, 12, 16, 12, 13, 13, 16, 11, 15, 14, 16, 13, 14,
- 16, 16, 15, 16, 16, 16, 15, 16, 8, 15, 10, 13, 10, 14, 11, 13,
- 11, 16, 12, 14, 12, 14, 12, 14, 16, 16, 16, 16, 16, 16, 15, 16,
- 10, 16, 11, 14, 11, 15, 12, 13, 11, 16, 11, 14, 12, 15, 12, 14,
- 16, 16, 14, 16, 15, 16, 14, 15, 12, 16, 11, 15, 13, 16, 13, 14,
- 12, 16, 11, 14, 13, 16, 13, 14, 15, 16, 13, 16, 16, 16, 14, 15,
- 10, 16, 12, 15, 10, 15, 12, 13, 13, 16, 13, 16, 12, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 15, 12, 16, 13, 16, 12, 16, 13, 14,
- 12, 16, 13, 16, 12, 16, 13, 14, 16, 16, 15, 16, 14, 16, 14, 15,
- 15, 16, 14, 16, 15, 16, 14, 15, 14, 16, 13, 16, 14, 16, 13, 14,
- 14, 16, 13, 15, 14, 16, 13, 14, 9, 16, 11, 16, 11, 16, 12, 14,
- 13, 16, 12, 16, 13, 16, 13, 14, 16, 16, 15, 16, 16, 16, 15, 15,
- 11, 16, 11, 16, 12, 16, 13, 14, 13, 16, 12, 16, 13, 16, 13, 14,
- 16, 16, 15, 16, 16, 16, 15, 15, 11, 16, 10, 15, 13, 16, 12, 13,
- 14, 16, 12, 16, 14, 16, 13, 14, 16, 16, 15, 16, 16, 16, 14, 14,
- 11, 16, 12, 16, 11, 16, 13, 14, 13, 16, 13, 16, 13, 16, 13, 14,
- 16, 16, 16, 16, 16, 16, 15, 15, 11, 16, 12, 16, 12, 16, 13, 14,
- 13, 16, 13, 16, 13, 16, 13, 14, 16, 16, 15, 16, 16, 16, 15, 14,
- 12, 16, 12, 15, 13, 16, 12, 14, 13, 16, 12, 16, 14, 16, 13, 14,
- 16, 16, 14, 16, 16, 16, 14, 14, 11, 16, 12, 16, 11, 16, 12, 14,
- 14, 16, 14, 16, 12, 16, 13, 14, 16, 16, 16, 16, 16, 16, 15, 14,
- 12, 16, 13, 16, 12, 16, 12, 14, 13, 16, 13, 16, 12, 16, 13, 14,
- 16, 16, 16, 16, 15, 16, 14, 14, 14, 16, 13, 16, 14, 16, 12, 14,
- 13, 16, 13, 16, 13, 16, 12, 13, 15, 16, 13, 14, 14, 15, 13, 13,
- },
- {
- 0, 8, 4, 10, 5, 11, 10, 16, 5, 12, 9, 16, 10, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 12, 7, 12, 9, 16, 12, 16,
- 9, 16, 11, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 12, 9, 16, 8, 16, 12, 16,
- 8, 16, 11, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 8, 16, 11, 16, 12, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 11, 6, 12, 7, 16, 11, 16,
- 7, 16, 10, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 7, 16, 10, 16, 12, 16, 9, 16, 11, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 11, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 10, 16, 8, 16, 12, 16, 9, 16, 12, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 11, 16, 12, 16, 16, 16,
- 10, 16, 12, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 9, 16, 10, 16, 16, 16, 11, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 9, 16, 12, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 11, 16, 11, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 16, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 11, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 10, 16, 12, 16, 16, 16,
- 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 9, 16, 16, 16, 16, 16,
- 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 13, 16, 12, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 16, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 8, 4, 10, 5, 9, 8, 10, 6, 11, 8, 12, 8, 11, 10, 13,
- 14, 16, 14, 16, 14, 16, 16, 16, 3, 11, 5, 11, 8, 12, 10, 12,
- 7, 12, 9, 13, 10, 13, 11, 13, 14, 16, 14, 16, 16, 16, 16, 16,
- 9, 16, 9, 16, 12, 16, 12, 16, 11, 16, 11, 16, 14, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 11, 7, 12, 6, 11, 10, 12,
- 8, 13, 9, 13, 9, 13, 11, 14, 13, 16, 14, 16, 14, 16, 16, 16,
- 7, 13, 9, 13, 9, 13, 11, 13, 9, 14, 10, 16, 11, 16, 12, 16,
- 15, 16, 14, 16, 16, 16, 16, 16, 12, 16, 12, 16, 14, 16, 13, 16,
- 13, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 10, 16, 13, 16, 12, 16, 13, 16, 12, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 13, 16, 13, 16, 14, 16,
- 13, 16, 14, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 2, 10, 5, 11, 6, 11, 9, 11,
- 7, 12, 9, 13, 9, 13, 11, 13, 14, 16, 16, 16, 16, 16, 16, 16,
- 4, 12, 6, 12, 8, 13, 10, 13, 8, 13, 9, 13, 11, 16, 12, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 8, 16, 12, 16, 12, 16,
- 12, 16, 11, 16, 13, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 12, 8, 13, 7, 13, 10, 13, 8, 14, 10, 14, 10, 14, 12, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 14, 9, 16, 10, 16, 11, 14,
- 8, 14, 10, 16, 11, 16, 12, 16, 13, 16, 14, 16, 16, 16, 16, 16,
- 11, 16, 11, 16, 13, 16, 13, 16, 12, 16, 12, 16, 14, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 12, 16, 10, 16, 12, 16,
- 12, 16, 13, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 13, 16, 12, 16, 14, 16, 12, 16, 13, 16, 12, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 16, 8, 16, 9, 16, 11, 13, 10, 16, 11, 16, 11, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 16, 9, 16, 10, 16, 12, 16,
- 11, 16, 11, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 9, 16, 12, 16, 13, 16, 13, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 7, 16, 10, 16, 9, 16, 12, 16,
- 11, 16, 12, 16, 12, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 11, 16, 11, 16, 12, 16, 11, 16, 12, 16, 13, 16, 13, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 12, 16, 14, 16, 14, 16,
- 12, 16, 12, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 10, 16, 13, 16, 13, 16, 14, 16, 13, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 13, 16, 12, 16, 14, 16,
- 12, 16, 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 11, 16, 11, 16, 13, 16,
- 12, 16, 13, 16, 13, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 11, 16, 13, 16, 13, 16, 13, 16, 13, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 11, 16, 14, 16, 13, 16,
- 14, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 12, 16, 12, 16, 13, 16, 13, 16, 13, 16, 13, 16, 14, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 12, 16, 13, 16, 14, 16,
- 13, 16, 13, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 12, 16, 14, 16, 14, 16, 14, 16, 14, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 13, 16, 11, 16, 14, 16,
- 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 14, 16, 13, 16, 14, 16, 16, 16, 16, 16, 14, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 0, 10, 4, 12, 5, 16, 11, 16, 6, 16, 10, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 3, 16, 7, 16, 10, 16, 16, 16,
- 9, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 4, 16, 10, 16, 9, 16, 16, 16,
- 9, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 12, 16, 16, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 6, 16, 8, 16, 16, 16,
- 8, 16, 11, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 8, 16, 11, 16, 16, 16, 10, 16, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 11, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 11, 16, 9, 16, 16, 16, 10, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 9, 16, 12, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 5, 16, 9, 16, 11, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 10, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 11, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 12, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 6, 16, 11, 16, 15, 16, 16, 16,
- 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 9, 16, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 9, 16, 16, 16, 16, 16,
- 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 10, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
-};
-
-static const uint8_t rv34_table_inter_secondpat[NUM_INTER_TABLES][2][OTHERBLK_VLC_SIZE] = {
- {
- {
- 0, 4, 8, 3, 6, 8, 6, 7, 8, 4, 6, 8, 6, 7, 8, 7,
- 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 3, 6, 8, 4, 6,
- 9, 7, 7, 8, 5, 7, 9, 6, 7, 9, 8, 8, 8, 7, 8, 8,
- 8, 8, 8, 8, 8, 7, 6, 8, 9, 7, 8, 9, 7, 8, 9, 7,
- 8, 9, 7, 8, 9, 8, 8, 9, 8, 8, 9, 8, 9, 9, 8, 8,
- 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 9,
- 8, 8, 8, 7, 8, 8, 8, 8, 8, 7, 7, 6,
- },
- {
- 0, 4, 9, 3, 6, 9, 7, 8, 10, 3, 6, 9, 5, 7, 10, 9,
- 9, 10, 7, 8, 10, 8, 9, 10, 10, 10, 10, 2, 6, 9, 4, 7,
- 10, 8, 9, 10, 4, 7, 10, 6, 7, 10, 9, 9, 10, 7, 8, 10,
- 8, 9, 10, 10, 10, 10, 6, 8, 10, 7, 9, 11, 9, 10, 11, 7,
- 9, 11, 8, 9, 11, 10, 10, 11, 8, 9, 11, 9, 10, 11, 11, 11,
- 10, 8, 10, 11, 9, 10, 11, 9, 10, 11, 8, 10, 11, 9, 10, 11,
- 10, 10, 11, 8, 10, 11, 9, 10, 10, 10, 10, 9,
- },
- },
- {
- {
- 0, 4, 8, 3, 6, 8, 6, 7, 9, 4, 6, 8, 5, 7, 8, 8,
- 8, 9, 7, 7, 8, 8, 8, 8, 8, 9, 8, 3, 6, 8, 4, 6,
- 9, 7, 7, 9, 5, 6, 9, 6, 7, 9, 8, 8, 9, 7, 8, 8,
- 8, 8, 8, 8, 8, 8, 6, 8, 9, 7, 8, 10, 7, 8, 9, 7,
- 8, 10, 7, 8, 10, 8, 8, 9, 7, 8, 9, 8, 9, 9, 9, 9,
- 8, 7, 9, 10, 8, 9, 10, 8, 8, 8, 8, 9, 10, 8, 9, 9,
- 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 7, 6,
- },
- {
- 0, 4, 9, 3, 6, 10, 8, 9, 11, 3, 5, 9, 5, 7, 10, 9,
- 10, 11, 7, 8, 10, 9, 9, 11, 11, 11, 12, 2, 5, 10, 4, 7,
- 10, 8, 9, 11, 4, 6, 10, 6, 7, 10, 9, 10, 11, 7, 9, 10,
- 9, 9, 11, 11, 11, 11, 6, 8, 11, 7, 9, 11, 9, 10, 12, 7,
- 9, 11, 8, 9, 12, 10, 10, 12, 8, 10, 11, 10, 10, 11, 12, 11,
- 11, 8, 10, 12, 9, 11, 12, 10, 11, 12, 9, 10, 12, 10, 11, 12,
- 11, 11, 12, 9, 10, 12, 10, 10, 11, 11, 11, 10,
- },
- },
- {
- {
- 0, 4, 8, 3, 6, 9, 7, 8, 9, 4, 6, 8, 5, 7, 9, 8,
- 9, 9, 7, 8, 9, 8, 8, 9, 9, 9, 9, 2, 6, 9, 4, 6,
- 9, 7, 8, 10, 5, 7, 9, 6, 7, 9, 8, 8, 9, 7, 8, 9,
- 8, 8, 9, 9, 9, 9, 6, 8, 10, 7, 8, 10, 8, 9, 10, 6,
- 8, 10, 8, 8, 10, 9, 9, 10, 8, 9, 10, 9, 9, 10, 10, 10,
- 9, 8, 9, 10, 8, 9, 10, 8, 9, 10, 8, 9, 10, 9, 9, 10,
- 9, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, 8,
- },
- {
- 0, 4, 10, 3, 6, 10, 8, 10, 12, 2, 6, 10, 6, 8, 11, 10,
- 11, 12, 7, 9, 11, 9, 10, 12, 12, 13, 13, 2, 6, 10, 4, 7,
- 11, 9, 10, 13, 4, 7, 11, 7, 8, 11, 10, 11, 12, 8, 9, 12,
- 10, 10, 12, 12, 12, 13, 6, 9, 12, 8, 10, 13, 10, 12, 14, 7,
- 10, 13, 9, 10, 13, 11, 11, 13, 9, 11, 13, 11, 11, 13, 13, 13,
- 13, 9, 11, 13, 10, 12, 14, 11, 12, 14, 9, 11, 14, 11, 12, 14,
- 12, 12, 14, 9, 12, 13, 11, 12, 13, 13, 12, 12,
- },
- },
- {
- {
- 0, 4, 9, 3, 6, 9, 7, 8, 10, 3, 6, 9, 6, 7, 9, 9,
- 9, 10, 7, 8, 9, 8, 9, 10, 10, 10, 11, 2, 6, 9, 4, 7,
- 10, 7, 9, 10, 4, 7, 10, 6, 7, 10, 9, 9, 10, 7, 8, 10,
- 8, 9, 10, 10, 10, 10, 6, 8, 11, 7, 9, 11, 8, 10, 11, 6,
- 9, 11, 8, 9, 11, 9, 9, 11, 8, 9, 11, 9, 10, 11, 11, 10,
- 10, 8, 10, 11, 9, 10, 11, 9, 10, 11, 8, 10, 11, 9, 10, 11,
- 10, 10, 11, 8, 10, 11, 9, 10, 11, 10, 10, 10,
- },
- {
- 0, 4, 12, 3, 7, 12, 10, 11, 14, 3, 6, 12, 7, 9, 13, 12,
- 13, 14, 8, 11, 13, 11, 12, 14, 14, 14, 14, 1, 7, 12, 5, 8,
- 13, 10, 12, 14, 4, 8, 13, 8, 9, 13, 12, 13, 14, 9, 11, 14,
- 11, 12, 14, 14, 14, 14, 7, 10, 14, 9, 11, 14, 11, 13, 16, 8,
- 11, 14, 10, 12, 14, 13, 13, 16, 10, 12, 15, 12, 13, 15, 15, 15,
- 15, 10, 13, 15, 12, 13, 14, 13, 15, 15, 10, 13, 15, 12, 13, 15,
- 13, 14, 15, 10, 13, 14, 12, 13, 14, 14, 14, 14,
- },
- },
- {
- {
- 0, 4, 9, 3, 6, 10, 7, 9, 11, 3, 5, 9, 5, 7, 10, 9,
- 10, 12, 7, 8, 10, 9, 10, 11, 11, 12, 12, 2, 6, 10, 4, 7,
- 10, 7, 9, 12, 4, 7, 10, 6, 7, 11, 9, 10, 12, 7, 9, 11,
- 9, 9, 11, 11, 11, 12, 5, 8, 11, 7, 9, 12, 9, 10, 13, 6,
- 9, 12, 8, 9, 12, 10, 10, 12, 8, 10, 12, 10, 10, 12, 12, 12,
- 12, 8, 10, 12, 9, 11, 13, 10, 11, 13, 9, 11, 13, 10, 11, 13,
- 11, 11, 13, 9, 11, 12, 10, 11, 12, 11, 11, 12,
- },
- {
- 0, 4, 12, 3, 7, 13, 10, 12, 15, 3, 7, 13, 7, 9, 14, 12,
- 12, 13, 8, 11, 14, 11, 13, 15, 15, 14, 14, 1, 6, 13, 5, 8,
- 13, 10, 13, 15, 4, 8, 13, 8, 9, 14, 13, 13, 15, 8, 11, 14,
- 12, 12, 15, 15, 14, 14, 7, 10, 13, 9, 11, 13, 12, 14, 16, 8,
- 11, 14, 10, 12, 15, 13, 13, 16, 10, 12, 15, 12, 13, 15, 15, 14,
- 15, 11, 12, 14, 12, 14, 14, 13, 15, 15, 10, 12, 14, 12, 13, 15,
- 14, 15, 15, 10, 13, 13, 12, 13, 15, 14, 14, 15,
- },
- },
- {
- {
- 0, 5, 10, 3, 7, 11, 9, 11, 14, 3, 7, 11, 7, 8, 12, 11,
- 12, 14, 7, 9, 12, 10, 11, 14, 13, 14, 16, 1, 7, 11, 5, 8,
- 12, 9, 11, 15, 4, 8, 12, 7, 9, 13, 11, 12, 15, 8, 10, 13,
- 10, 11, 14, 14, 14, 16, 6, 9, 13, 8, 11, 14, 10, 13, 16, 7,
- 10, 14, 9, 11, 15, 12, 13, 16, 9, 11, 15, 12, 12, 15, 14, 14,
- 16, 10, 12, 14, 11, 13, 15, 12, 14, 16, 10, 12, 15, 11, 13, 16,
- 13, 14, 16, 10, 13, 16, 12, 13, 15, 14, 15, 16,
- },
- {
- 0, 5, 16, 3, 8, 14, 11, 13, 14, 2, 8, 14, 8, 10, 16, 13,
- 13, 14, 9, 13, 16, 12, 13, 16, 16, 14, 16, 1, 7, 14, 6, 10,
- 14, 12, 16, 16, 5, 9, 14, 9, 11, 16, 15, 16, 16, 10, 12, 16,
- 13, 13, 16, 16, 14, 16, 8, 11, 14, 11, 13, 14, 14, 14, 16, 8,
- 12, 14, 11, 13, 16, 16, 16, 16, 10, 12, 15, 13, 14, 16, 16, 16,
- 16, 11, 14, 14, 14, 15, 16, 16, 15, 16, 10, 13, 16, 13, 14, 14,
- 16, 16, 16, 10, 13, 16, 13, 14, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 5, 11, 3, 7, 13, 9, 12, 16, 3, 7, 12, 6, 9, 14, 11,
- 13, 16, 7, 10, 16, 11, 12, 16, 16, 16, 16, 1, 6, 12, 5, 9,
- 16, 9, 13, 16, 4, 8, 16, 7, 10, 16, 12, 15, 16, 7, 11, 16,
- 11, 12, 16, 16, 16, 16, 6, 10, 15, 8, 11, 16, 11, 14, 16, 7,
- 11, 16, 10, 12, 16, 13, 16, 16, 9, 13, 16, 13, 14, 16, 16, 16,
- 16, 10, 12, 16, 12, 16, 16, 16, 16, 16, 11, 13, 16, 13, 16, 16,
- 16, 16, 16, 12, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 0, 5, 16, 3, 8, 16, 12, 12, 16, 2, 8, 16, 8, 10, 16, 13,
- 13, 16, 9, 13, 16, 12, 13, 16, 16, 16, 16, 1, 8, 16, 6, 10,
- 16, 12, 16, 16, 5, 9, 16, 9, 11, 16, 13, 16, 16, 9, 12, 14,
- 12, 12, 16, 16, 16, 16, 8, 11, 13, 11, 12, 16, 14, 16, 16, 8,
- 12, 16, 11, 13, 16, 16, 15, 16, 9, 13, 14, 12, 13, 16, 16, 16,
- 16, 10, 12, 13, 14, 13, 16, 16, 16, 16, 9, 13, 16, 13, 12, 16,
- 16, 16, 16, 10, 12, 16, 14, 15, 16, 16, 16, 16,
- },
- },
-};
-
-static const uint8_t rv34_table_inter_thirdpat[NUM_INTER_TABLES][2][OTHERBLK_VLC_SIZE] = {
- {
- {
- 0, 5, 8, 3, 6, 9, 6, 7, 9, 4, 6, 9, 6, 7, 9, 8,
- 8, 9, 7, 8, 9, 8, 9, 9, 9, 9, 9, 2, 6, 9, 4, 7,
- 9, 7, 8, 9, 5, 7, 9, 6, 7, 9, 8, 8, 9, 7, 8, 9,
- 8, 9, 9, 9, 9, 8, 5, 8, 10, 6, 8, 10, 8, 9, 9, 7,
- 8, 10, 7, 9, 10, 8, 9, 9, 8, 9, 10, 9, 9, 10, 9, 9,
- 9, 7, 9, 10, 8, 9, 10, 8, 8, 9, 8, 9, 10, 8, 9, 10,
- 8, 8, 9, 8, 9, 9, 8, 9, 9, 8, 8, 7,
- },
- {
- 0, 4, 9, 2, 6, 10, 7, 8, 10, 3, 6, 10, 6, 7, 10, 9,
- 9, 10, 8, 9, 11, 9, 10, 11, 10, 11, 11, 2, 6, 10, 4, 7,
- 10, 8, 9, 10, 5, 7, 10, 7, 8, 10, 9, 9, 10, 9, 10, 11,
- 10, 10, 11, 11, 11, 11, 6, 9, 11, 7, 9, 11, 9, 10, 12, 8,
- 9, 11, 8, 10, 11, 10, 10, 11, 10, 11, 12, 11, 11, 12, 11, 11,
- 11, 9, 11, 12, 10, 11, 12, 10, 11, 12, 10, 11, 12, 10, 11, 12,
- 11, 11, 12, 11, 12, 12, 11, 12, 12, 12, 11, 11,
- },
- },
- {
- {
- 0, 4, 9, 3, 6, 9, 6, 8, 9, 4, 6, 9, 5, 7, 9, 8,
- 8, 9, 7, 8, 10, 8, 9, 10, 9, 9, 9, 2, 6, 9, 4, 7,
- 9, 7, 8, 9, 5, 7, 9, 6, 7, 10, 8, 9, 9, 7, 9, 10,
- 8, 9, 10, 9, 9, 9, 5, 8, 10, 6, 8, 10, 8, 9, 10, 7,
- 8, 10, 7, 9, 11, 9, 9, 10, 8, 9, 10, 9, 10, 10, 10, 10,
- 9, 7, 9, 10, 8, 9, 11, 8, 9, 10, 8, 9, 11, 8, 9, 11,
- 9, 9, 10, 9, 9, 10, 9, 9, 10, 9, 9, 8,
- },
- {
- 0, 4, 9, 2, 5, 10, 7, 8, 11, 3, 6, 10, 6, 7, 10, 9,
- 10, 11, 8, 9, 11, 9, 10, 11, 11, 11, 12, 2, 6, 10, 4, 7,
- 10, 8, 9, 11, 5, 7, 10, 6, 8, 10, 9, 10, 11, 9, 10, 12,
- 10, 10, 12, 11, 12, 12, 6, 9, 11, 8, 9, 12, 9, 11, 13, 8,
- 10, 12, 9, 10, 12, 11, 11, 12, 10, 12, 13, 11, 12, 13, 13, 12,
- 13, 10, 11, 13, 10, 12, 13, 11, 12, 13, 11, 12, 13, 11, 12, 13,
- 12, 12, 13, 12, 13, 14, 13, 13, 14, 13, 13, 13,
- },
- },
- {
- {
- 0, 4, 9, 3, 6, 9, 7, 8, 10, 3, 6, 9, 5, 7, 10, 8,
- 9, 10, 7, 9, 10, 8, 9, 10, 10, 10, 10, 2, 6, 9, 4, 7,
- 10, 7, 9, 10, 4, 7, 10, 6, 8, 10, 8, 9, 10, 8, 9, 10,
- 9, 9, 10, 10, 10, 10, 5, 8, 11, 7, 9, 11, 8, 10, 11, 7,
- 9, 11, 8, 9, 11, 9, 10, 11, 9, 10, 11, 10, 10, 11, 11, 11,
- 11, 8, 10, 11, 9, 10, 11, 9, 10, 11, 9, 10, 12, 9, 10, 12,
- 10, 11, 11, 9, 10, 11, 10, 11, 11, 10, 10, 10,
- },
- {
- 0, 4, 10, 3, 6, 11, 8, 10, 12, 3, 6, 11, 6, 8, 11, 10,
- 11, 13, 9, 10, 13, 11, 12, 14, 13, 13, 14, 1, 6, 10, 5, 8,
- 12, 9, 10, 13, 5, 8, 11, 7, 9, 12, 11, 11, 13, 10, 12, 13,
- 11, 12, 14, 14, 13, 15, 7, 10, 12, 9, 11, 14, 11, 12, 15, 9,
- 11, 13, 10, 11, 14, 12, 12, 14, 12, 14, 16, 13, 13, 16, 14, 14,
- 16, 12, 13, 15, 12, 14, 15, 13, 14, 16, 13, 14, 16, 14, 14, 16,
- 14, 15, 16, 14, 16, 16, 15, 16, 16, 15, 15, 16,
- },
- },
- {
- {
- 0, 4, 9, 2, 6, 9, 7, 9, 11, 3, 6, 10, 6, 7, 10, 9,
- 10, 11, 7, 9, 10, 9, 10, 11, 11, 11, 12, 2, 6, 10, 4, 7,
- 10, 8, 9, 11, 5, 7, 10, 7, 8, 10, 9, 10, 11, 8, 9, 11,
- 9, 10, 11, 11, 12, 11, 6, 9, 11, 7, 10, 12, 9, 11, 12, 7,
- 10, 12, 9, 10, 12, 11, 11, 12, 9, 11, 12, 10, 11, 12, 12, 12,
- 12, 9, 11, 12, 9, 11, 13, 11, 12, 13, 9, 11, 13, 10, 12, 13,
- 11, 12, 13, 11, 12, 13, 11, 12, 13, 12, 13, 12,
- },
- {
- 0, 4, 11, 2, 6, 12, 9, 11, 16, 4, 7, 12, 7, 9, 15, 11,
- 12, 16, 10, 11, 16, 11, 13, 16, 16, 16, 16, 1, 6, 11, 5, 8,
- 16, 9, 12, 16, 6, 9, 15, 8, 10, 16, 12, 13, 16, 12, 14, 16,
- 12, 16, 16, 16, 16, 16, 8, 11, 14, 10, 12, 16, 12, 16, 16, 10,
- 13, 16, 12, 16, 16, 13, 14, 16, 14, 16, 16, 16, 16, 16, 16, 16,
- 16, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 5, 9, 3, 6, 10, 8, 10, 12, 3, 6, 10, 6, 8, 10, 10,
- 11, 12, 8, 9, 11, 10, 10, 12, 13, 13, 13, 1, 6, 10, 5, 8,
- 11, 9, 11, 13, 5, 8, 11, 7, 9, 11, 11, 11, 13, 8, 9, 11,
- 10, 10, 12, 13, 13, 14, 6, 9, 12, 8, 11, 13, 11, 13, 15, 8,
- 10, 13, 10, 11, 13, 12, 13, 15, 10, 12, 13, 12, 12, 13, 14, 14,
- 14, 9, 12, 14, 11, 13, 15, 13, 15, 16, 11, 13, 15, 12, 14, 15,
- 14, 15, 16, 13, 14, 15, 14, 14, 15, 15, 16, 16,
- },
- {
- 0, 4, 16, 2, 7, 16, 10, 13, 16, 3, 8, 16, 7, 10, 16, 16,
- 16, 16, 12, 16, 16, 15, 16, 16, 16, 16, 16, 1, 7, 16, 6, 9,
- 16, 10, 16, 16, 7, 12, 16, 9, 13, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 9, 16, 16, 11, 13, 16, 16, 16, 16, 12,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 4, 9, 3, 6, 11, 9, 12, 16, 3, 6, 10, 6, 8, 11, 12,
- 13, 16, 8, 9, 12, 10, 11, 13, 16, 16, 16, 1, 6, 10, 5, 8,
- 12, 10, 13, 16, 5, 8, 11, 8, 9, 13, 13, 14, 16, 9, 10, 14,
- 11, 12, 15, 16, 16, 16, 6, 10, 13, 9, 12, 16, 14, 16, 16, 9,
- 12, 14, 11, 13, 16, 16, 16, 16, 12, 14, 16, 14, 16, 16, 16, 16,
- 16, 11, 16, 16, 13, 16, 16, 16, 16, 16, 12, 16, 16, 13, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 0, 4, 16, 2, 8, 16, 10, 16, 16, 3, 9, 16, 8, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 7, 16, 5, 10,
- 16, 16, 16, 16, 7, 16, 16, 11, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 10, 15, 16, 10, 16, 16, 16, 16, 16, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
- {
- {
- 0, 3, 9, 3, 7, 11, 11, 15, 16, 3, 6, 11, 7, 9, 12, 16,
- 16, 16, 8, 10, 16, 11, 16, 16, 16, 16, 16, 1, 6, 11, 6, 9,
- 15, 16, 16, 16, 5, 8, 16, 9, 11, 16, 16, 16, 16, 10, 16, 16,
- 16, 16, 16, 16, 16, 16, 7, 11, 16, 11, 16, 16, 16, 16, 16, 11,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- {
- 0, 4, 16, 2, 8, 16, 16, 16, 16, 3, 12, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 7, 16, 5, 12,
- 16, 16, 16, 16, 6, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- },
- },
-};
-
-
-static const uint8_t rv34_inter_coeff[NUM_INTER_TABLES][COEFF_VLC_SIZE] = {
-{
- 1, 2, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 8, 9, 9, 10,
- 10, 10, 10, 11, 11, 11, 11, 12, 11, 11, 11, 13, 14, 15, 16, 16,
-},
-{
- 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9, 10, 10, 10,
- 11, 11, 12, 12, 12, 12, 13, 13, 12, 12, 13, 14, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12,
- 12, 12, 13, 13, 13, 14, 14, 15, 14, 14, 16, 16, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12,
- 13, 13, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 7, 8, 10, 10, 11, 11, 13, 12, 12, 13,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-},
-{
- 1, 2, 3, 4, 5, 6, 7, 8, 10, 10, 10, 11, 14, 13, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 16,
-}
-};
-
-#endif /* AVCODEC_RV34VLC_H */
+++ /dev/null
-/*
- * RealVideo 4 decoder
- * copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * miscellaneous RV40 tables
- */
-
-#ifndef AVCODEC_RV40DATA_H
-#define AVCODEC_RV40DATA_H
-
-#include <stdint.h>
-
-/**
- * standard widths and heights coded in RV40
- */
-//@{
-static const int rv40_standard_widths[] = { 160, 172, 240, 320, 352, 640, 704, 0};
-static const int rv40_standard_heights[] = { 120, 132, 144, 240, 288, 480, -8, -10, 180, 360, 576, 0};
-//@}
-
-#define MODE2_PATTERNS_NUM 20
-/**
- * intra types table
- *
- * These values are actually coded 3-tuples
- * used for detecting standard block configurations.
- */
-static const uint16_t rv40_aic_table_index[MODE2_PATTERNS_NUM] = {
- 0x000, 0x100, 0x200,
- 0x011, 0x111, 0x211, 0x511, 0x611,
- 0x022, 0x122, 0x222, 0x722,
- 0x272, 0x227,
- 0x822, 0x282, 0x228,
- 0x112, 0x116, 0x221
-};
-
-/**
- * luma quantizer values
- * The second table is used for inter blocks.
- */
-static const uint8_t rv40_luma_dc_quant[2][32] = {
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 22, 22, 22, 22 },
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 20, 21, 21, 22, 23, 23, 23, 24, 24, 24, 24 }
-};
-
-/**
- * @begingroup loopfilter coefficients used by the RV40 loop filter
- * @{
- */
-/**
- * dither values for deblocking filter - left/top values
- */
-static const uint8_t rv40_dither_l[16] = {
- 0x40, 0x50, 0x20, 0x60, 0x30, 0x50, 0x40, 0x30,
- 0x50, 0x40, 0x50, 0x30, 0x60, 0x20, 0x50, 0x40
-};
-/**
- * dither values for deblocking filter - right/bottom values
- */
-static const uint8_t rv40_dither_r[16] = {
- 0x40, 0x30, 0x60, 0x20, 0x50, 0x30, 0x30, 0x40,
- 0x40, 0x40, 0x50, 0x30, 0x20, 0x60, 0x30, 0x40
-};
-
-/** alpha parameter for RV40 loop filter - almost the same as in JVT-A003r1 */
-static const uint8_t rv40_alpha_tab[32] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 122, 96, 75, 59, 47, 37,
- 29, 23, 18, 15, 13, 11, 10, 9,
- 8, 7, 6, 5, 4, 3, 2, 1
-};
-/** beta parameter for RV40 loop filter - almost the same as in JVT-A003r1 */
-static const uint8_t rv40_beta_tab[32] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 4, 6, 6,
- 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16, 17
-};
-/** clip table for RV40 loop filter - the same as in JVT-A003r1 */
-static const uint8_t rv40_filter_clip_tbl[3][32] = {
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- },
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5
- },
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 7, 8, 9
- }
-};
-/** @} */ // end loopfilter group
-
-#endif /* AVCODEC_RV40DATA_H */
+++ /dev/null
-/*
- * RealVideo 4 decoder
- * copyright (c) 2007 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * RV40 VLC tables used for macroblock information decoding
- */
-
-#ifndef AVCODEC_RV40VLC2_H
-#define AVCODEC_RV40VLC2_H
-
-#include <stdint.h>
-
-/**
- * codes used for the first four block types
- */
-//@{
-#define AIC_TOP_BITS 8
-#define AIC_TOP_SIZE 16
-static const uint8_t rv40_aic_top_vlc_codes[AIC_TOP_SIZE] = {
- 0x01, 0x05, 0x01, 0x00, 0x03, 0x3D, 0x1D, 0x02,
- 0x04, 0x3C, 0x3F, 0x1C, 0x0D, 0x3E, 0x0C, 0x01
-};
-
-static const uint8_t rv40_aic_top_vlc_bits[AIC_TOP_SIZE] = {
- 1, 4, 5, 5, 5, 7, 6, 5, 4, 7, 7, 6, 5, 7, 5, 3
-};
-//@}
-
-/**
- * codes used for determining a pair of block types
- */
-//@{
-#define AIC_MODE2_NUM 20
-#define AIC_MODE2_SIZE 81
-#define AIC_MODE2_BITS 9
-
-static const uint16_t aic_mode2_vlc_codes[AIC_MODE2_NUM][AIC_MODE2_SIZE] = {
-{ 0x0001, 0x0001, 0x0005, 0x01F5, 0x0011, 0x0049, 0x0000, 0x0048, 0x004B,
- 0x0035, 0x0003, 0x0034, 0x03C9, 0x01F4, 0x00C9, 0x004A, 0x0FD9, 0x03C8,
- 0x0010, 0x0037, 0x0001, 0x00C8, 0x0075, 0x01F7, 0x00CB, 0x0074, 0x0002,
- 0x01F6, 0x00CA, 0x01F1, 0x01F0, 0x1F81, 0x07F9, 0x1F80, 0x1F83, 0x07F8,
- 0x0077, 0x00F5, 0x0036, 0x07FB, 0x0076, 0x1F82, 0x00F4, 0x00F7, 0x07FA,
- 0x0071, 0x00F6, 0x03CB, 0x03CA, 0x0FD8, 0x00F1, 0x03F5, 0x1F8D, 0x07E5,
- 0x0013, 0x0031, 0x00F0, 0x0FDB, 0x00F3, 0x07E4, 0x0030, 0x01F3, 0x07E7,
- 0x03F4, 0x07E6, 0x0070, 0x3F19, 0x01F2, 0x3F18, 0x0FDA, 0x0033, 0x07E1,
- 0x01FD, 0x01FC, 0x0073, 0x01FF, 0x0FC5, 0x0FC4, 0x0FC7, 0x03F7, 0x0072, },
-{ 0x0005, 0x0005, 0x0005, 0x0079, 0x0005, 0x000D, 0x001D, 0x0078, 0x0069,
- 0x0004, 0x0001, 0x0007, 0x0068, 0x001C, 0x001F, 0x0004, 0x006B, 0x000C,
- 0x0004, 0x001E, 0x0006, 0x006A, 0x0015, 0x000F, 0x0014, 0x0017, 0x0007,
- 0x0016, 0x000E, 0x0011, 0x0009, 0x00D1, 0x00D0, 0x0181, 0x00D3, 0x007B,
- 0x0010, 0x0013, 0x0004, 0x00D2, 0x0007, 0x0319, 0x0008, 0x007A, 0x00DD,
- 0x0019, 0x0006, 0x000B, 0x0065, 0x00DC, 0x0012, 0x0064, 0x0180, 0x00DF,
- 0x0006, 0x0018, 0x0001, 0x00DE, 0x001D, 0x00D9, 0x001B, 0x0067, 0x000A,
- 0x00D8, 0x00DB, 0x001C, 0x0318, 0x00DA, 0x0635, 0x0183, 0x0000, 0x00C5,
- 0x0066, 0x0061, 0x0035, 0x00C4, 0x0182, 0x0634, 0x031B, 0x00C7, 0x001F, },
-{ 0x0005, 0x0001, 0x001D, 0x01C1, 0x0035, 0x00F1, 0x006D, 0x00F0, 0x0049,
- 0x0000, 0x0004, 0x0003, 0x00F3, 0x0048, 0x0034, 0x006C, 0x01C0, 0x01C3,
- 0x0007, 0x0006, 0x0001, 0x006F, 0x0002, 0x004B, 0x006E, 0x001C, 0x0005,
- 0x0069, 0x0068, 0x006B, 0x0037, 0x01C2, 0x00F2, 0x0395, 0x01CD, 0x00FD,
- 0x006A, 0x0036, 0x0015, 0x01CC, 0x0014, 0x0394, 0x004A, 0x00FC, 0x00FF,
- 0x0017, 0x0031, 0x00FE, 0x01CF, 0x0397, 0x00F9, 0x01CE, 0x0725, 0x0396,
- 0x0016, 0x0030, 0x0075, 0x0724, 0x00F8, 0x0727, 0x0033, 0x0391, 0x0390,
- 0x0011, 0x0032, 0x001F, 0x00FB, 0x0074, 0x0726, 0x00FA, 0x001E, 0x0077,
- 0x0019, 0x0018, 0x0004, 0x0010, 0x003D, 0x0076, 0x0071, 0x0013, 0x0001, },
-{ 0x000D, 0x0019, 0x0011, 0x0015, 0x0061, 0x0019, 0x0014, 0x01AD, 0x0060,
- 0x0018, 0x0001, 0x0005, 0x001B, 0x0010, 0x0019, 0x0005, 0x0017, 0x0018,
- 0x0016, 0x0004, 0x0004, 0x0013, 0x000C, 0x0012, 0x001A, 0x0018, 0x0005,
- 0x000F, 0x001B, 0x0004, 0x001D, 0x0011, 0x001C, 0x0010, 0x000E, 0x001B,
- 0x0013, 0x001F, 0x001A, 0x0029, 0x0005, 0x0063, 0x001E, 0x0009, 0x0062,
- 0x0008, 0x0007, 0x0007, 0x0019, 0x0004, 0x001A, 0x0018, 0x006D, 0x0007,
- 0x001B, 0x0007, 0x001A, 0x006C, 0x0006, 0x0012, 0x0005, 0x006F, 0x000B,
- 0x006E, 0x0069, 0x001D, 0x0359, 0x0028, 0x002B, 0x002A, 0x001C, 0x00D5,
- 0x0358, 0x001F, 0x0001, 0x001E, 0x0068, 0x00D4, 0x00D7, 0x0019, 0x0000, },
-{ 0x00B9, 0x0061, 0x0060, 0x00B8, 0x02B5, 0x01AD, 0x00BB, 0x0AF5, 0x0151,
- 0x0001, 0x0001, 0x0005, 0x0000, 0x0003, 0x0005, 0x0004, 0x0063, 0x0025,
- 0x00BA, 0x0004, 0x0007, 0x0062, 0x00A5, 0x0024, 0x006D, 0x0002, 0x006C,
- 0x02B4, 0x000D, 0x006F, 0x0027, 0x00A4, 0x0026, 0x01AC, 0x0150, 0x01AF,
- 0x01AE, 0x0021, 0x006E, 0x02B7, 0x0020, 0x0153, 0x0023, 0x00A7, 0x0152,
- 0x00A6, 0x0006, 0x000C, 0x0022, 0x01A9, 0x0019, 0x002D, 0x02B6, 0x01A8,
- 0x000F, 0x0007, 0x000E, 0x00A1, 0x0069, 0x002C, 0x0001, 0x01AB, 0x00A0,
- 0x02B1, 0x00A3, 0x002F, 0x0AF4, 0x02B0, 0x0AF7, 0x02B3, 0x0068, 0x015D,
- 0x0AF6, 0x01AA, 0x0055, 0x015C, 0x02B2, 0x0579, 0x0578, 0x015F, 0x00A2, },
-{ 0x0905, 0x013D, 0x013C, 0x0904, 0x121D, 0x049D, 0x049C, 0x243D, 0x0907,
- 0x00ED, 0x0001, 0x0015, 0x0041, 0x013F, 0x0031, 0x0014, 0x025D, 0x025C,
- 0x013E, 0x000D, 0x0000, 0x0040, 0x0139, 0x0043, 0x0030, 0x0017, 0x0033,
- 0x0906, 0x0032, 0x0042, 0x00EC, 0x025F, 0x00EF, 0x025E, 0x049F, 0x0138,
- 0x0901, 0x013B, 0x0259, 0x121C, 0x049E, 0x0900, 0x0258, 0x243C, 0x121F,
- 0x0903, 0x003D, 0x00EE, 0x025B, 0x025A, 0x004D, 0x013A, 0x0902, 0x0245,
- 0x00E9, 0x0016, 0x00E8, 0x0499, 0x0125, 0x0244, 0x004C, 0x0498, 0x090D,
- 0x00EB, 0x003C, 0x0011, 0x049B, 0x049A, 0x0485, 0x00EA, 0x003F, 0x0124,
- 0x090C, 0x003E, 0x0039, 0x0095, 0x0247, 0x0246, 0x0484, 0x0094, 0x0038, },
-{ 0x0F09, 0x00CD, 0x01FD, 0x0791, 0x1E6D, 0x0790, 0x03D9, 0x3CD1, 0x3CD0,
- 0x0075, 0x0001, 0x0001, 0x0035, 0x00CC, 0x0011, 0x0000, 0x03D8, 0x01FC,
- 0x03DB, 0x0010, 0x0003, 0x00CF, 0x03DA, 0x00CE, 0x0074, 0x0034, 0x0077,
- 0x0793, 0x0013, 0x0076, 0x0071, 0x03C5, 0x0070, 0x01FF, 0x0792, 0x01FE,
- 0x01F9, 0x0037, 0x00C9, 0x0F08, 0x01F8, 0x03C4, 0x00C8, 0x0F0B, 0x079D,
- 0x03C7, 0x0001, 0x0012, 0x0073, 0x00CB, 0x0005, 0x0036, 0x03C6, 0x0072,
- 0x007D, 0x0002, 0x00CA, 0x079C, 0x01FB, 0x00F5, 0x0031, 0x079F, 0x0F0A,
- 0x0F35, 0x079E, 0x01FA, 0x1E6C, 0x1E6F, 0x3CD3, 0x0799, 0x03C1, 0x1E6E,
- 0x3CD2, 0x0030, 0x00F4, 0x007C, 0x03C0, 0x03C3, 0x0798, 0x01E5, 0x00F7, },
-{ 0x01A5, 0x0001, 0x001D, 0x0021, 0x00A1, 0x000D, 0x0061, 0x06B9, 0x00A0,
- 0x0060, 0x0001, 0x0005, 0x000C, 0x0020, 0x001C, 0x0004, 0x01A4, 0x01A7,
- 0x00A3, 0x001F, 0x001E, 0x0023, 0x0022, 0x002D, 0x002C, 0x0063, 0x0062,
- 0x1A81, 0x01A6, 0x01A1, 0x06B8, 0x06BB, 0x00A2, 0x06BA, 0x0D59, 0x06A5,
- 0x01A0, 0x000F, 0x006D, 0x06A4, 0x002F, 0x00AD, 0x006C, 0x06A7, 0x00AC,
- 0x0D58, 0x000E, 0x01A3, 0x00AF, 0x00AE, 0x006F, 0x01A2, 0x0D5B, 0x00A9,
- 0x0019, 0x0001, 0x0009, 0x00A8, 0x006E, 0x002E, 0x0000, 0x01AD, 0x00AB,
- 0x00AA, 0x0355, 0x0029, 0x1A80, 0x1A83, 0x1A82, 0x0354, 0x01AC, 0x0D5A,
- 0x1A8D, 0x01AF, 0x0357, 0x0D45, 0x0D44, 0x0D47, 0x1A8C, 0x06A6, 0x06A1, },
-{ 0x0001, 0x0011, 0x0005, 0x0775, 0x00F9, 0x00F8, 0x0031, 0x0030, 0x0049,
- 0x00FB, 0x0010, 0x0033, 0x0EC9, 0x038D, 0x038C, 0x00FA, 0x038F, 0x0774,
- 0x0048, 0x0032, 0x0000, 0x01D5, 0x00E5, 0x038E, 0x00E4, 0x0013, 0x000D,
- 0x0389, 0x0777, 0x0388, 0x038B, 0x1DF9, 0x0EC8, 0x3BC9, 0x1DF8, 0x038A,
- 0x03B5, 0x0776, 0x00E7, 0x3BC8, 0x01D4, 0x3BCB, 0x0ECB, 0x0771, 0x0ECA,
- 0x01D7, 0x03B4, 0x01D6, 0x1DFB, 0x0EF5, 0x0770, 0x0EF4, 0x3BCA, 0x0773,
- 0x00E6, 0x03B7, 0x004B, 0x1DFA, 0x03B6, 0x0EF7, 0x00E1, 0x0EF6, 0x0EF1,
- 0x03B1, 0x01D1, 0x003D, 0x0EF0, 0x0772, 0x077D, 0x077C, 0x003C, 0x01D0,
- 0x03B0, 0x01D3, 0x003F, 0x03B3, 0x01D2, 0x0EF3, 0x077F, 0x00E0, 0x004A, },
-{ 0x0015, 0x0049, 0x0014, 0x07D1, 0x03FD, 0x03FC, 0x01C1, 0x01C0, 0x00F1,
- 0x0017, 0x0001, 0x0001, 0x01C3, 0x0048, 0x004B, 0x0016, 0x0031, 0x01C2,
- 0x004A, 0x0011, 0x0000, 0x01CD, 0x00F0, 0x01CC, 0x0075, 0x0010, 0x000D,
- 0x03FF, 0x01CF, 0x01CE, 0x07D0, 0x0F81, 0x07D3, 0x1F1D, 0x0F80, 0x07D2,
- 0x01C9, 0x03FE, 0x0074, 0x07DD, 0x00F3, 0x1F1C, 0x07DC, 0x03F9, 0x07DF,
- 0x00F2, 0x00FD, 0x0077, 0x07DE, 0x07D9, 0x01C8, 0x07D8, 0x0F83, 0x03F8,
- 0x0030, 0x0076, 0x0013, 0x0F82, 0x00FC, 0x03FB, 0x0033, 0x03FA, 0x03E5,
- 0x03E4, 0x01CB, 0x0032, 0x1F1F, 0x03E7, 0x07DB, 0x07DA, 0x003D, 0x01CA,
- 0x07C5, 0x03E6, 0x0071, 0x0F8D, 0x07C4, 0x1F1E, 0x0F8C, 0x03E1, 0x01F5, },
-{ 0x0019, 0x0065, 0x0018, 0x0351, 0x0350, 0x0353, 0x0021, 0x0020, 0x0064,
- 0x001D, 0x0005, 0x0005, 0x01A5, 0x0023, 0x0067, 0x0005, 0x0066, 0x0022,
- 0x001B, 0x0004, 0x0001, 0x0004, 0x001C, 0x0061, 0x001A, 0x0005, 0x0004,
- 0x0007, 0x002D, 0x0006, 0x002C, 0x01A4, 0x002F, 0x0352, 0x035D, 0x0060,
- 0x0001, 0x002E, 0x001F, 0x035C, 0x0000, 0x06B1, 0x01A7, 0x0029, 0x01A6,
- 0x0028, 0x0063, 0x0062, 0x035F, 0x01A1, 0x002B, 0x06B0, 0x06B3, 0x01A0,
- 0x0003, 0x006D, 0x001E, 0x035E, 0x006C, 0x06B2, 0x0002, 0x01A3, 0x01A2,
- 0x000D, 0x0005, 0x0007, 0x01AD, 0x006F, 0x002A, 0x006E, 0x0004, 0x0004,
- 0x000C, 0x0007, 0x0006, 0x000F, 0x000E, 0x00D5, 0x0009, 0x0006, 0x0007, },
-{ 0x0065, 0x0181, 0x0064, 0x36C9, 0x06D5, 0x0DB5, 0x0379, 0x0180, 0x0183,
- 0x00D5, 0x001D, 0x001C, 0x0DB4, 0x0182, 0x0378, 0x00D4, 0x00D7, 0x06D4,
- 0x0067, 0x001F, 0x0001, 0x00D6, 0x00D1, 0x018D, 0x0066, 0x0001, 0x0000,
- 0x037B, 0x06D7, 0x037A, 0x0DB7, 0x36C8, 0x06D6, 0x0DB6, 0x1B79, 0x0DB1,
- 0x018C, 0x0365, 0x00D0, 0x1B78, 0x00D3, 0x1B7B, 0x0364, 0x06D1, 0x06D0,
- 0x018F, 0x018E, 0x00D2, 0x36CB, 0x0367, 0x0366, 0x06D3, 0x0DB0, 0x06D2,
- 0x0361, 0x06DD, 0x0189, 0x36CA, 0x0360, 0x36F5, 0x0188, 0x0DB3, 0x36F4,
- 0x0009, 0x0008, 0x0005, 0x06DC, 0x00DD, 0x018B, 0x00DC, 0x0004, 0x000B,
- 0x018A, 0x0061, 0x0003, 0x0363, 0x00DF, 0x06DF, 0x0362, 0x000A, 0x001E, },
-{ 0x001D, 0x0061, 0x000D, 0x0D55, 0x06B9, 0x06B8, 0x01A5, 0x0021, 0x0020,
- 0x0023, 0x000C, 0x0060, 0x0D54, 0x00AD, 0x00AC, 0x0022, 0x00AF, 0x06BB,
- 0x000F, 0x001C, 0x0001, 0x002D, 0x0063, 0x01A4, 0x000E, 0x0001, 0x0005,
- 0x01A7, 0x06BA, 0x01A6, 0x06A5, 0x0D57, 0x0D56, 0x1ABD, 0x0D51, 0x00AE,
- 0x002C, 0x00A9, 0x002F, 0x0D50, 0x01A1, 0x1ABC, 0x06A4, 0x06A7, 0x06A6,
- 0x00A8, 0x06A1, 0x01A0, 0x1ABF, 0x0D53, 0x06A0, 0x0D52, 0x1ABE, 0x06A3,
- 0x0062, 0x002E, 0x0009, 0x0D5D, 0x01A3, 0x0D5C, 0x006D, 0x00AB, 0x06A2,
- 0x006C, 0x001F, 0x0001, 0x06AD, 0x0029, 0x01A2, 0x0028, 0x0004, 0x001E,
- 0x01AD, 0x006F, 0x0000, 0x01AC, 0x01AF, 0x06AC, 0x00AA, 0x006E, 0x0019, },
-{ 0x0019, 0x007D, 0x0018, 0x01B5, 0x000D, 0x01B4, 0x007C, 0x007F, 0x01B7,
- 0x000C, 0x001B, 0x001A, 0x01B6, 0x000F, 0x00D5, 0x0019, 0x007E, 0x00D4,
- 0x0018, 0x001B, 0x0001, 0x000E, 0x0011, 0x0009, 0x0005, 0x0005, 0x0005,
- 0x00D7, 0x01B1, 0x0008, 0x01B0, 0x0079, 0x06FD, 0x0371, 0x0370, 0x00D6,
- 0x0078, 0x01B3, 0x0010, 0x0373, 0x0013, 0x06FC, 0x007B, 0x007A, 0x00D1,
- 0x00D0, 0x00D3, 0x0065, 0x0372, 0x06FF, 0x0064, 0x06FE, 0x037D, 0x00D2,
- 0x00DD, 0x0067, 0x0004, 0x037C, 0x0012, 0x01B2, 0x0007, 0x0066, 0x01BD,
- 0x0006, 0x0061, 0x0004, 0x01BC, 0x001A, 0x0060, 0x001D, 0x0004, 0x001C,
- 0x0063, 0x0001, 0x0007, 0x000B, 0x0000, 0x0062, 0x000A, 0x0005, 0x0007, },
-{ 0x0069, 0x0045, 0x0068, 0x04BD, 0x0255, 0x04BC, 0x00E5, 0x00E4, 0x0031,
- 0x0030, 0x0019, 0x0001, 0x0121, 0x00E7, 0x00E6, 0x0033, 0x00E1, 0x00E0,
- 0x006B, 0x0018, 0x0001, 0x0044, 0x0032, 0x0047, 0x006A, 0x001B, 0x0005,
- 0x003D, 0x0046, 0x0015, 0x0041, 0x0120, 0x0123, 0x04BF, 0x0122, 0x0040,
- 0x003C, 0x00E3, 0x0014, 0x0254, 0x0043, 0x0975, 0x012D, 0x00E2, 0x00ED,
- 0x0042, 0x00EC, 0x004D, 0x0257, 0x0256, 0x0251, 0x04BE, 0x0974, 0x0250,
- 0x00EF, 0x00EE, 0x004C, 0x04B9, 0x012C, 0x04B8, 0x004F, 0x04BB, 0x0253,
- 0x003F, 0x0017, 0x0001, 0x0252, 0x00E9, 0x00E8, 0x00EB, 0x0000, 0x0003,
- 0x0016, 0x0002, 0x0004, 0x004E, 0x003E, 0x00EA, 0x0049, 0x000D, 0x0007, },
-{ 0x000D, 0x01BD, 0x000C, 0x0D31, 0x0D30, 0x0D33, 0x0359, 0x0358, 0x002D,
- 0x0065, 0x001D, 0x001C, 0x0D32, 0x035B, 0x035A, 0x002C, 0x01BC, 0x0345,
- 0x000F, 0x001F, 0x0001, 0x002F, 0x0064, 0x01BF, 0x0067, 0x0001, 0x0005,
- 0x0066, 0x002E, 0x0061, 0x0029, 0x0695, 0x0694, 0x0697, 0x0696, 0x0060,
- 0x01BE, 0x0D3D, 0x0028, 0x1A49, 0x0344, 0x1A48, 0x1A4B, 0x0D3C, 0x0691,
- 0x002B, 0x01B9, 0x002A, 0x0D3F, 0x0690, 0x0347, 0x0D3E, 0x1A4A, 0x0346,
- 0x00D5, 0x0341, 0x0063, 0x0D39, 0x0340, 0x0D38, 0x01B8, 0x0D3B, 0x0D3A,
- 0x00D4, 0x0062, 0x0000, 0x0693, 0x01BB, 0x0343, 0x0342, 0x001E, 0x000E,
- 0x006D, 0x0009, 0x0001, 0x006C, 0x00D7, 0x034D, 0x01BA, 0x0008, 0x0004, },
-{ 0x0075, 0x00CD, 0x0035, 0x03C1, 0x03C0, 0x07F9, 0x03C3, 0x1F8D, 0x00CC,
- 0x0074, 0x0011, 0x0010, 0x03C2, 0x0FD9, 0x01F1, 0x00CF, 0x03CD, 0x00CE,
- 0x0034, 0x0001, 0x0001, 0x0037, 0x00C9, 0x00C8, 0x0036, 0x0000, 0x0001,
- 0x0FD8, 0x03CC, 0x00CB, 0x01F0, 0x07F8, 0x03CF, 0x07FB, 0x07FA, 0x00CA,
- 0x01F3, 0x03CE, 0x00F5, 0x0FDB, 0x00F4, 0x07E5, 0x07E4, 0x07E7, 0x01F2,
- 0x07E6, 0x03C9, 0x01FD, 0x0FDA, 0x1F8C, 0x07E1, 0x1F8F, 0x1F8E, 0x03C8,
- 0x03CB, 0x0077, 0x0076, 0x0FC5, 0x03CA, 0x07E0, 0x00F7, 0x0FC4, 0x03F5,
- 0x00F6, 0x01FC, 0x0003, 0x03F4, 0x0071, 0x03F7, 0x00F1, 0x0013, 0x0031,
- 0x0030, 0x0070, 0x0005, 0x0012, 0x0073, 0x01FF, 0x0072, 0x007D, 0x0002, },
-{ 0x0061, 0x0055, 0x0060, 0x02C9, 0x02C8, 0x02CB, 0x0171, 0x00B5, 0x0054,
- 0x0001, 0x0001, 0x0001, 0x0057, 0x0001, 0x0063, 0x001D, 0x0062, 0x0039,
- 0x006D, 0x0000, 0x0005, 0x0038, 0x0056, 0x00B4, 0x006C, 0x0003, 0x001C,
- 0x006F, 0x003B, 0x0002, 0x003A, 0x0170, 0x00B7, 0x0173, 0x0051, 0x006E,
- 0x0025, 0x0050, 0x0069, 0x02CA, 0x0024, 0x0027, 0x0172, 0x00B6, 0x00B1,
- 0x000D, 0x000C, 0x001F, 0x017D, 0x0026, 0x0068, 0x0053, 0x017C, 0x006B,
- 0x001E, 0x000F, 0x0004, 0x017F, 0x006A, 0x02F5, 0x0019, 0x0021, 0x0052,
- 0x02F4, 0x02F7, 0x0020, 0x0BCD, 0x05E5, 0x05E4, 0x0BCC, 0x0023, 0x00B0,
- 0x02F6, 0x00B3, 0x0022, 0x02F1, 0x02F0, 0x0BCF, 0x0BCE, 0x017E, 0x005D, },
-{ 0x00BD, 0x0025, 0x01A1, 0x0159, 0x0299, 0x00BC, 0x0024, 0x0505, 0x0504,
- 0x01A0, 0x0001, 0x001D, 0x006D, 0x001C, 0x0001, 0x0005, 0x0027, 0x01A3,
- 0x0158, 0x001F, 0x001E, 0x01A2, 0x0026, 0x0021, 0x000D, 0x0020, 0x0023,
- 0x0298, 0x006C, 0x0022, 0x00BF, 0x00BE, 0x01AD, 0x002D, 0x029B, 0x00B9,
- 0x01AC, 0x00B8, 0x01AF, 0x029A, 0x006F, 0x015B, 0x006E, 0x0285, 0x0284,
- 0x01AE, 0x0019, 0x002C, 0x01A9, 0x01A8, 0x000C, 0x000F, 0x015A, 0x00BB,
- 0x000E, 0x0000, 0x0069, 0x01AB, 0x0018, 0x01AA, 0x0004, 0x0055, 0x00BA,
- 0x0507, 0x0145, 0x0054, 0x0506, 0x00A5, 0x0501, 0x00A4, 0x0057, 0x0500,
- 0x0A05, 0x0144, 0x00A7, 0x0287, 0x0286, 0x0503, 0x0147, 0x0A04, 0x0146, },
-{ 0x0759, 0x0041, 0x00E5, 0x03BD, 0x0E9D, 0x012D, 0x012C, 0x3A1D, 0x03BC,
- 0x012F, 0x000D, 0x0040, 0x00E4, 0x03BF, 0x0043, 0x0042, 0x0758, 0x03BE,
- 0x00E7, 0x0001, 0x0000, 0x003D, 0x00E6, 0x0015, 0x0014, 0x0017, 0x003C,
- 0x743D, 0x012E, 0x03B9, 0x03B8, 0x0E9C, 0x03BB, 0x075B, 0x3A1C, 0x0E9F,
- 0x0129, 0x00E1, 0x0128, 0x0E9E, 0x012B, 0x075A, 0x00E0, 0x0E99, 0x0745,
- 0x3A1F, 0x03BA, 0x0744, 0x0E98, 0x1D0D, 0x03A5, 0x0E9B, 0x743C, 0x0E9A,
- 0x012A, 0x004D, 0x00E3, 0x0E85, 0x01D5, 0x0E84, 0x004C, 0x0747, 0x1D0C,
- 0x01D4, 0x003F, 0x0016, 0x0746, 0x03A4, 0x0741, 0x004F, 0x003E, 0x01D7,
- 0x0740, 0x000C, 0x0011, 0x004E, 0x00E2, 0x00ED, 0x00EC, 0x0049, 0x0048, },
-};
-
-static const uint8_t aic_mode2_vlc_bits[AIC_MODE2_NUM][AIC_MODE2_SIZE] = {
-{ 1, 5, 4, 10, 6, 8, 5, 8, 8,
- 7, 5, 7, 11, 10, 9, 8, 13, 11,
- 6, 7, 3, 9, 8, 10, 9, 8, 5,
- 10, 9, 10, 10, 14, 12, 14, 14, 12,
- 8, 9, 7, 12, 8, 14, 9, 9, 12,
- 8, 9, 11, 11, 13, 9, 11, 14, 12,
- 6, 7, 9, 13, 9, 12, 7, 10, 12,
- 11, 12, 8, 15, 10, 15, 13, 7, 12,
- 10, 10, 8, 10, 13, 13, 13, 11, 8, },
-{ 4, 6, 5, 11, 8, 10, 7, 11, 9,
- 4, 1, 4, 9, 7, 7, 5, 9, 10,
- 6, 7, 4, 9, 9, 10, 9, 9, 6,
- 9, 10, 9, 10, 12, 12, 13, 12, 11,
- 9, 9, 8, 12, 8, 14, 10, 11, 12,
- 7, 8, 10, 11, 12, 9, 11, 13, 12,
- 6, 7, 8, 12, 9, 12, 7, 11, 10,
- 12, 12, 9, 14, 12, 15, 13, 8, 12,
- 11, 11, 10, 12, 13, 15, 14, 12, 9, },
-{ 5, 7, 6, 12, 9, 11, 8, 11, 10,
- 7, 5, 7, 11, 10, 9, 8, 12, 12,
- 5, 5, 1, 8, 7, 10, 8, 6, 4,
- 8, 8, 8, 9, 12, 11, 13, 12, 11,
- 8, 9, 8, 12, 8, 13, 10, 11, 11,
- 8, 9, 11, 12, 13, 11, 12, 14, 13,
- 8, 9, 10, 14, 11, 14, 9, 13, 13,
- 8, 9, 6, 11, 10, 14, 11, 6, 10,
- 6, 6, 4, 8, 9, 10, 10, 8, 5, },
-{ 11, 7, 8, 10, 12, 9, 10, 14, 12,
- 7, 1, 5, 7, 8, 6, 4, 10, 9,
- 10, 5, 4, 8, 11, 8, 7, 6, 7,
- 11, 6, 7, 8, 10, 8, 10, 11, 9,
- 10, 8, 9, 13, 9, 12, 8, 11, 12,
- 11, 4, 7, 8, 9, 6, 8, 12, 9,
- 8, 5, 8, 12, 9, 10, 6, 12, 11,
- 12, 12, 10, 15, 13, 13, 13, 10, 13,
- 15, 10, 9, 10, 12, 13, 13, 10, 9, },
-{ 11, 8, 8, 11, 13, 10, 11, 15, 12,
- 7, 1, 4, 7, 7, 5, 4, 8, 9,
- 11, 5, 5, 8, 11, 9, 8, 7, 8,
- 13, 7, 8, 9, 11, 9, 10, 12, 10,
- 10, 9, 8, 13, 9, 12, 9, 11, 12,
- 11, 5, 7, 9, 10, 6, 9, 13, 10,
- 7, 4, 7, 11, 8, 9, 5, 10, 11,
- 13, 11, 9, 15, 13, 15, 13, 8, 12,
- 15, 10, 10, 12, 13, 14, 14, 12, 11, },
-{ 12, 9, 9, 12, 13, 11, 11, 14, 12,
- 8, 2, 5, 7, 9, 6, 5, 10, 10,
- 9, 4, 2, 7, 9, 7, 6, 5, 6,
- 12, 6, 7, 8, 10, 8, 10, 11, 9,
- 12, 9, 10, 13, 11, 12, 10, 14, 13,
- 12, 6, 8, 10, 10, 7, 9, 12, 10,
- 8, 5, 8, 11, 9, 10, 7, 11, 12,
- 8, 6, 5, 11, 11, 11, 8, 6, 9,
- 12, 6, 6, 8, 10, 10, 11, 8, 6, },
-{ 13, 9, 10, 12, 14, 12, 11, 15, 15,
- 8, 1, 5, 7, 9, 6, 5, 11, 10,
- 11, 6, 5, 9, 11, 9, 8, 7, 8,
- 12, 6, 8, 8, 11, 8, 10, 12, 10,
- 10, 7, 9, 13, 10, 11, 9, 13, 12,
- 11, 3, 6, 8, 9, 4, 7, 11, 8,
- 8, 5, 9, 12, 10, 9, 7, 12, 13,
- 13, 12, 10, 14, 14, 15, 12, 11, 14,
- 15, 7, 9, 8, 11, 11, 12, 10, 9, },
-{ 10, 5, 6, 9, 11, 7, 8, 12, 11,
- 8, 1, 4, 7, 9, 6, 4, 10, 10,
- 11, 6, 6, 9, 9, 9, 9, 8, 8,
- 14, 10, 10, 12, 12, 11, 12, 13, 12,
- 10, 7, 8, 12, 9, 11, 8, 12, 11,
- 13, 7, 10, 11, 11, 8, 10, 13, 11,
- 6, 3, 7, 11, 8, 9, 5, 10, 11,
- 11, 11, 9, 14, 14, 14, 11, 10, 13,
- 14, 10, 11, 13, 13, 13, 14, 12, 12, },
-{ 2, 5, 3, 11, 8, 8, 6, 6, 7,
- 8, 5, 6, 12, 10, 10, 8, 10, 11,
- 7, 6, 2, 9, 8, 10, 8, 5, 4,
- 10, 11, 10, 10, 13, 12, 14, 13, 10,
- 10, 11, 8, 14, 9, 14, 12, 11, 12,
- 9, 10, 9, 13, 12, 11, 12, 14, 11,
- 8, 10, 7, 13, 10, 12, 8, 12, 12,
- 10, 9, 6, 12, 11, 11, 11, 6, 9,
- 10, 9, 6, 10, 9, 12, 11, 8, 7, },
-{ 6, 8, 6, 12, 11, 11, 10, 10, 9,
- 6, 1, 3, 10, 8, 8, 6, 7, 10,
- 8, 6, 3, 10, 9, 10, 8, 6, 5,
- 11, 10, 10, 12, 13, 12, 14, 13, 12,
- 10, 11, 8, 12, 9, 14, 12, 11, 12,
- 9, 9, 8, 12, 12, 10, 12, 13, 11,
- 7, 8, 6, 13, 9, 11, 7, 11, 11,
- 11, 10, 7, 14, 11, 12, 12, 7, 10,
- 12, 11, 8, 13, 12, 14, 13, 11, 10, },
-{ 7, 10, 7, 13, 13, 13, 11, 11, 10,
- 8, 5, 6, 12, 11, 10, 9, 10, 11,
- 7, 5, 1, 9, 8, 10, 7, 4, 4,
- 9, 11, 9, 11, 12, 11, 13, 13, 10,
- 9, 11, 8, 13, 9, 14, 12, 11, 12,
- 11, 10, 10, 13, 12, 11, 14, 14, 12,
- 9, 10, 8, 13, 10, 14, 9, 12, 12,
- 9, 7, 4, 12, 10, 11, 10, 6, 7,
- 9, 7, 4, 9, 9, 11, 9, 7, 5, },
-{ 7, 9, 7, 14, 11, 12, 10, 9, 9,
- 8, 5, 5, 12, 9, 10, 8, 8, 11,
- 7, 5, 2, 8, 8, 9, 7, 4, 4,
- 10, 11, 10, 12, 14, 11, 12, 13, 12,
- 9, 10, 8, 13, 8, 13, 10, 11, 11,
- 9, 9, 8, 14, 10, 10, 11, 12, 11,
- 10, 11, 9, 14, 10, 14, 9, 12, 14,
- 6, 6, 3, 11, 8, 9, 8, 3, 6,
- 9, 7, 4, 10, 8, 11, 10, 6, 5, },
-{ 6, 8, 7, 13, 12, 12, 10, 9, 9,
- 9, 7, 8, 13, 11, 11, 9, 11, 12,
- 7, 6, 1, 9, 8, 10, 7, 5, 4,
- 10, 12, 10, 12, 13, 13, 14, 13, 11,
- 9, 11, 9, 13, 10, 14, 12, 12, 12,
- 11, 12, 10, 14, 13, 12, 13, 14, 12,
- 8, 9, 7, 13, 10, 13, 8, 11, 12,
- 8, 6, 3, 12, 9, 10, 9, 4, 6,
- 10, 8, 5, 10, 10, 12, 11, 8, 6, },
-{ 7, 10, 7, 12, 9, 12, 10, 10, 12,
- 9, 7, 7, 12, 9, 11, 6, 10, 11,
- 6, 6, 1, 9, 8, 9, 7, 4, 5,
- 11, 12, 9, 12, 10, 14, 13, 13, 11,
- 10, 12, 8, 13, 8, 14, 10, 10, 11,
- 11, 11, 10, 13, 14, 10, 14, 13, 11,
- 11, 10, 7, 13, 8, 12, 7, 10, 12,
- 7, 10, 4, 12, 6, 10, 8, 5, 8,
- 10, 7, 4, 9, 7, 10, 9, 6, 5, },
-{ 7, 9, 7, 13, 12, 13, 10, 10, 8,
- 8, 5, 6, 11, 10, 10, 8, 10, 10,
- 7, 5, 2, 9, 8, 9, 7, 5, 3,
- 8, 9, 7, 9, 11, 11, 13, 11, 9,
- 8, 10, 7, 12, 9, 14, 11, 10, 10,
- 9, 10, 9, 12, 12, 12, 13, 14, 12,
- 10, 10, 9, 13, 11, 13, 9, 13, 12,
- 8, 7, 4, 12, 10, 10, 10, 6, 6,
- 7, 6, 3, 9, 8, 10, 9, 6, 3, },
-{ 7, 10, 7, 13, 13, 13, 11, 11, 9,
- 8, 6, 6, 13, 11, 11, 9, 10, 11,
- 7, 6, 1, 9, 8, 10, 8, 5, 4,
- 8, 9, 8, 9, 12, 12, 12, 12, 8,
- 10, 13, 9, 14, 11, 14, 14, 13, 12,
- 9, 10, 9, 13, 12, 11, 13, 14, 11,
- 9, 11, 8, 13, 11, 13, 10, 13, 13,
- 9, 8, 5, 12, 10, 11, 11, 6, 7,
- 8, 7, 3, 8, 9, 11, 10, 7, 4, },
-{ 8, 9, 7, 11, 11, 12, 11, 14, 9,
- 8, 6, 6, 11, 13, 10, 9, 11, 9,
- 7, 5, 1, 7, 9, 9, 7, 5, 3,
- 13, 11, 9, 10, 12, 11, 12, 12, 9,
- 10, 11, 9, 13, 9, 12, 12, 12, 10,
- 12, 11, 10, 13, 14, 12, 14, 14, 11,
- 11, 8, 8, 13, 11, 12, 9, 13, 11,
- 9, 10, 5, 11, 8, 11, 9, 6, 7,
- 7, 8, 4, 6, 8, 10, 8, 8, 5, },
-{ 8, 10, 8, 13, 13, 13, 12, 11, 10,
- 5, 1, 3, 10, 7, 8, 6, 8, 9,
- 8, 7, 4, 9, 10, 11, 8, 7, 6,
- 8, 9, 7, 9, 12, 11, 12, 10, 8,
- 9, 10, 8, 13, 9, 9, 12, 11, 11,
- 7, 7, 6, 12, 9, 8, 10, 12, 8,
- 6, 7, 4, 12, 8, 13, 6, 9, 10,
- 13, 13, 9, 15, 14, 14, 15, 9, 11,
- 13, 11, 9, 13, 13, 15, 15, 12, 10, },
-{ 10, 8, 9, 11, 12, 10, 8, 13, 13,
- 9, 2, 5, 7, 5, 4, 3, 8, 9,
- 11, 5, 5, 9, 8, 8, 6, 8, 8,
- 12, 7, 8, 10, 10, 9, 8, 12, 10,
- 9, 10, 9, 12, 7, 11, 7, 12, 12,
- 9, 5, 8, 9, 9, 6, 6, 11, 10,
- 6, 4, 7, 9, 5, 9, 3, 9, 10,
- 13, 11, 9, 13, 10, 13, 10, 9, 13,
- 14, 11, 10, 12, 12, 13, 11, 14, 11, },
-{ 11, 7, 8, 10, 12, 9, 9, 14, 10,
- 9, 4, 7, 8, 10, 7, 7, 11, 10,
- 8, 2, 2, 6, 8, 5, 5, 5, 6,
- 15, 9, 10, 10, 12, 10, 11, 14, 12,
- 9, 8, 9, 12, 9, 11, 8, 12, 11,
- 14, 10, 11, 12, 13, 10, 12, 15, 12,
- 9, 7, 8, 12, 9, 12, 7, 11, 13,
- 9, 6, 5, 11, 10, 11, 7, 6, 9,
- 11, 4, 5, 7, 8, 8, 8, 7, 7, },
-};
-//@}
-
-/**
- * Codes used for determining block type
- */
-//@{
-#define AIC_MODE1_NUM 90
-#define AIC_MODE1_SIZE 9
-#define AIC_MODE1_BITS 7
-
-static const uint8_t aic_mode1_vlc_codes[AIC_MODE1_NUM][AIC_MODE1_SIZE] = {
- { 0x01, 0x01, 0x01, 0x11, 0x00, 0x09, 0x03, 0x10, 0x05,},
- { 0x09, 0x01, 0x01, 0x05, 0x11, 0x00, 0x03, 0x21, 0x20,},
- { 0x01, 0x01, 0x01, 0x11, 0x09, 0x10, 0x05, 0x00, 0x03,},
- { 0x01, 0x01, 0x00, 0x03, 0x21, 0x05, 0x09, 0x20, 0x11,},
- { 0x01, 0x09, 0x00, 0x29, 0x08, 0x15, 0x03, 0x0B, 0x28,},
- { 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02,},
- { 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x01, 0x09, 0x08,},
- { 0x01, 0x01, 0x01, 0x09, 0x01, 0x08, 0x00, 0x03, 0x05,},
- { 0x01, 0x01, 0x01, 0x00, 0x05, 0x11, 0x09, 0x10, 0x03,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x01, 0x01, 0x05, 0x01, 0x00, 0x03, 0x09, 0x08,},
- { 0x09, 0x01, 0x01, 0x05, 0x11, 0x00, 0x03, 0x21, 0x20,},
- { 0x01, 0x01, 0x01, 0x0D, 0x05, 0x04, 0x00, 0x07, 0x0C,},
- { 0x01, 0x01, 0x00, 0x05, 0x11, 0x03, 0x09, 0x21, 0x20,},
- { 0x05, 0x01, 0x01, 0x11, 0x00, 0x09, 0x03, 0x21, 0x20,},
- { 0x09, 0x01, 0x01, 0x00, 0x05, 0x01, 0x03, 0x11, 0x10,},
- { 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x03, 0x02,},
- { 0x01, 0x01, 0x01, 0x09, 0x00, 0x05, 0x01, 0x03, 0x08,},
- { 0x01, 0x01, 0x01, 0x09, 0x11, 0x05, 0x00, 0x10, 0x03,},
- { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x00, 0x01, 0x09, 0x08, 0x15, 0x14, 0x0B, 0x03,},
- { 0x0D, 0x01, 0x01, 0x05, 0x0C, 0x04, 0x01, 0x00, 0x07,},
- { 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x03, 0x01, 0x01,},
- { 0x05, 0x01, 0x01, 0x04, 0x19, 0x07, 0x18, 0x0D, 0x00,},
- { 0x11, 0x09, 0x01, 0x21, 0x05, 0x20, 0x01, 0x00, 0x03,},
- { 0x41, 0x01, 0x00, 0x05, 0x40, 0x03, 0x09, 0x21, 0x11,},
- { 0x29, 0x01, 0x00, 0x28, 0x09, 0x15, 0x03, 0x08, 0x0B,},
- { 0x01, 0x00, 0x01, 0x11, 0x09, 0x10, 0x05, 0x01, 0x03,},
- { 0x05, 0x01, 0x01, 0x04, 0x0D, 0x0C, 0x07, 0x00, 0x01,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x00, 0x03, 0x05, 0x11, 0x10, 0x25, 0x24, 0x13,},
- { 0x21, 0x01, 0x01, 0x00, 0x11, 0x03, 0x05, 0x20, 0x09,},
- { 0x01, 0x01, 0x01, 0x00, 0x09, 0x11, 0x10, 0x05, 0x03,},
- { 0x21, 0x05, 0x01, 0x01, 0x09, 0x00, 0x11, 0x20, 0x03,},
- { 0x05, 0x01, 0x00, 0x04, 0x01, 0x19, 0x07, 0x18, 0x0D,},
- { 0x11, 0x01, 0x00, 0x01, 0x09, 0x01, 0x03, 0x10, 0x05,},
- { 0x1D, 0x01, 0x05, 0x0D, 0x0C, 0x04, 0x00, 0x1C, 0x0F,},
- { 0x05, 0x19, 0x01, 0x04, 0x00, 0x18, 0x1B, 0x1A, 0x07,},
- { 0x09, 0x01, 0x00, 0x01, 0x05, 0x03, 0x11, 0x10, 0x01,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x00, 0x03, 0x41, 0x05, 0x40, 0x09, 0x11, 0x21,},
- { 0x05, 0x01, 0x01, 0x19, 0x04, 0x07, 0x00, 0x18, 0x0D,},
- { 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x01, 0x00, 0x03,},
- { 0x01, 0x05, 0x00, 0x0D, 0x01, 0x04, 0x07, 0x19, 0x18,},
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
- { 0x31, 0x01, 0x05, 0x19, 0x04, 0x07, 0x00, 0x30, 0x0D,},
- { 0x01, 0x00, 0x03, 0x11, 0x01, 0x05, 0x01, 0x09, 0x10,},
- { 0x01, 0x05, 0x01, 0x11, 0x01, 0x10, 0x00, 0x03, 0x09,},
- { 0x01, 0x09, 0x00, 0x29, 0x03, 0x08, 0x28, 0x15, 0x0B,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x01, 0x00, 0x09, 0x15, 0x03, 0x08, 0x14, 0x0B,},
- { 0x11, 0x01, 0x01, 0x00, 0x09, 0x01, 0x03, 0x10, 0x05,},
- { 0x01, 0x00, 0x03, 0x25, 0x11, 0x05, 0x10, 0x24, 0x13,},
- { 0x11, 0x01, 0x00, 0x01, 0x09, 0x01, 0x05, 0x10, 0x03,},
- { 0x05, 0x01, 0x00, 0x0D, 0x0C, 0x04, 0x0F, 0x1D, 0x1C,},
- { 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02,},
- { 0x21, 0x01, 0x05, 0x09, 0x11, 0x00, 0x03, 0x41, 0x40,},
- { 0x05, 0x01, 0x00, 0x1D, 0x1C, 0x0D, 0x0C, 0x0F, 0x04,},
- { 0x05, 0x01, 0x00, 0x0D, 0x31, 0x04, 0x19, 0x30, 0x07,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x01, 0x00, 0x21, 0x05, 0x11, 0x03, 0x09, 0x20,},
- { 0x01, 0x01, 0x00, 0x11, 0x03, 0x05, 0x01, 0x09, 0x10,},
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
- { 0x05, 0x01, 0x04, 0x19, 0x07, 0x0D, 0x00, 0x31, 0x30,},
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
- { 0x05, 0x01, 0x01, 0x11, 0x09, 0x00, 0x03, 0x21, 0x20,},
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
- { 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x01, 0x01, 0x02,},
- { 0x09, 0x01, 0x00, 0x29, 0x08, 0x15, 0x03, 0x28, 0x0B,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x00, 0x01, 0x03,},
- { 0x09, 0x01, 0x00, 0x29, 0x28, 0x15, 0x08, 0x03, 0x0B,},
- { 0x01, 0x00, 0x01, 0x11, 0x05, 0x10, 0x09, 0x01, 0x03,},
- { 0x05, 0x04, 0x01, 0x1D, 0x0D, 0x0C, 0x1C, 0x00, 0x0F,},
- { 0x09, 0x11, 0x01, 0x41, 0x00, 0x40, 0x05, 0x03, 0x21,},
- { 0x0D, 0x05, 0x01, 0x1D, 0x1C, 0x0C, 0x04, 0x00, 0x0F,},
- { 0x41, 0x09, 0x01, 0x40, 0x00, 0x11, 0x05, 0x03, 0x21,},
- { 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x00, 0x01, 0x03,},
- { 0x05, 0x04, 0x01, 0x0D, 0x01, 0x0C, 0x07, 0x01, 0x00,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-
- { 0x05, 0x04, 0x01, 0x07, 0x19, 0x31, 0x30, 0x0D, 0x00,},
- { 0x21, 0x01, 0x01, 0x00, 0x11, 0x09, 0x20, 0x05, 0x03,},
- { 0x05, 0x01, 0x01, 0x04, 0x07, 0x0D, 0x0C, 0x00, 0x01,},
- { 0x21, 0x09, 0x01, 0x00, 0x20, 0x05, 0x23, 0x22, 0x03,},
- { 0x31, 0x0D, 0x01, 0x19, 0x05, 0x30, 0x04, 0x07, 0x00,},
- { 0x31, 0x05, 0x01, 0x04, 0x19, 0x00, 0x0D, 0x30, 0x07,},
- { 0x31, 0x01, 0x00, 0x0D, 0x05, 0x19, 0x04, 0x30, 0x07,},
- { 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02, 0x01, 0x01,},
- { 0x01, 0x00, 0x01, 0x01, 0x05, 0x09, 0x08, 0x03, 0x01,},
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
-};
-
-static const uint8_t aic_mode1_vlc_bits[AIC_MODE1_NUM][AIC_MODE1_SIZE] = {
- { 1, 4, 2, 7, 4, 6, 4, 7, 5,},
- { 5, 1, 3, 4, 6, 3, 3, 7, 7,},
- { 1, 4, 2, 7, 6, 7, 5, 4, 4,},
- { 1, 3, 3, 3, 7, 4, 5, 7, 6,},
- { 2, 4, 2, 6, 4, 5, 2, 4, 6,},
- { 7, 2, 3, 4, 7, 1, 5, 7, 7,},
- { 5, 1, 3, 6, 5, 5, 2, 7, 7,},
- { 2, 5, 1, 7, 3, 7, 5, 5, 6,},
- { 2, 4, 1, 4, 5, 7, 6, 7, 4,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 2, 1, 3, 6, 5, 5, 5, 7, 7,},
- { 5, 1, 3, 4, 6, 3, 3, 7, 7,},
- { 4, 1, 2, 6, 5, 5, 4, 5, 6,},
- { 3, 1, 3, 4, 6, 3, 5, 7, 7,},
- { 4, 1, 3, 6, 3, 5, 3, 7, 7,},
- { 6, 1, 4, 4, 5, 2, 4, 7, 7,},
- { 7, 1, 5, 7, 4, 3, 2, 7, 7,},
- { 5, 3, 2, 7, 5, 6, 1, 5, 7,},
- { 4, 1, 2, 6, 7, 5, 4, 7, 4,},
- { 1, 0, 1, 0, 0, 0, 0, 0, 0,},
-
- { 3, 3, 1, 5, 5, 6, 6, 5, 3,},
- { 6, 2, 1, 5, 6, 5, 4, 4, 5,},
- { 6, 4, 1, 7, 6, 7, 6, 3, 2,},
- { 4, 3, 1, 4, 6, 4, 6, 5, 3,},
- { 6, 5, 1, 7, 4, 7, 3, 3, 3,},
- { 7, 2, 2, 3, 7, 2, 4, 6, 5,},
- { 6, 2, 2, 6, 4, 5, 2, 4, 4,},
- { 4, 4, 1, 7, 6, 7, 5, 2, 4,},
- { 5, 4, 1, 5, 6, 6, 5, 4, 2,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 2, 2, 2, 3, 5, 5, 6, 6, 5,},
- { 7, 1, 3, 3, 6, 3, 4, 7, 5,},
- { 2, 4, 1, 4, 6, 7, 7, 5, 4,},
- { 7, 4, 3, 1, 5, 3, 6, 7, 3,},
- { 4, 3, 3, 4, 1, 6, 4, 6, 5,},
- { 7, 4, 4, 2, 6, 1, 4, 7, 5,},
- { 5, 2, 3, 4, 4, 3, 2, 5, 4,},
- { 3, 5, 2, 3, 2, 5, 5, 5, 3,},
- { 6, 4, 4, 2, 5, 4, 7, 7, 1,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 2, 2, 2, 7, 3, 7, 4, 5, 6,},
- { 4, 1, 3, 6, 4, 4, 3, 6, 5,},
- { 2, 4, 1, 7, 3, 7, 6, 6, 6,},
- { 3, 4, 3, 5, 1, 4, 4, 6, 6,},
- { 4, 5, 2, 7, 1, 7, 3, 7, 7,},
- { 6, 2, 3, 5, 3, 3, 2, 6, 4,},
- { 4, 4, 4, 7, 2, 5, 1, 6, 7,},
- { 4, 5, 2, 7, 1, 7, 4, 4, 6,},
- { 2, 4, 2, 6, 2, 4, 6, 5, 4,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 1, 3, 3, 5, 6, 3, 5, 6, 5,},
- { 7, 1, 4, 4, 6, 2, 4, 7, 5,},
- { 2, 2, 2, 6, 5, 3, 5, 6, 5,},
- { 7, 4, 4, 2, 6, 1, 5, 7, 4,},
- { 3, 2, 2, 4, 4, 3, 4, 5, 5,},
- { 7, 2, 5, 3, 7, 1, 4, 7, 7,},
- { 6, 2, 3, 4, 5, 2, 2, 7, 7,},
- { 3, 2, 2, 5, 5, 4, 4, 4, 3,},
- { 3, 2, 2, 4, 6, 3, 5, 6, 3,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 1, 3, 3, 7, 4, 6, 3, 5, 7,},
- { 4, 1, 4, 7, 4, 5, 2, 6, 7,},
- { 2, 4, 1, 7, 5, 7, 3, 7, 7,},
- { 3, 2, 3, 5, 3, 4, 2, 6, 6,},
- { 3, 5, 4, 7, 2, 7, 1, 7, 7,},
- { 4, 1, 3, 6, 5, 3, 3, 7, 7,},
- { 4, 2, 5, 7, 3, 7, 1, 7, 7,},
- { 7, 4, 1, 7, 3, 7, 2, 5, 7,},
- { 4, 2, 2, 6, 4, 5, 2, 6, 4,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 3, 4, 1, 7, 6, 7, 6, 2, 6,},
- { 4, 2, 2, 6, 6, 5, 4, 2, 4,},
- { 4, 4, 1, 7, 5, 7, 6, 2, 4,},
- { 3, 3, 2, 5, 4, 4, 5, 2, 4,},
- { 4, 5, 2, 7, 2, 7, 3, 2, 6,},
- { 4, 3, 2, 5, 5, 4, 3, 2, 4,},
- { 7, 4, 2, 7, 2, 5, 3, 2, 6,},
- { 4, 6, 2, 7, 3, 7, 6, 1, 6,},
- { 5, 5, 1, 6, 4, 6, 5, 2, 4,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-
- { 3, 3, 2, 3, 5, 6, 6, 4, 2,},
- { 7, 1, 3, 3, 6, 5, 7, 4, 3,},
- { 5, 4, 1, 5, 5, 6, 6, 4, 2,},
- { 6, 4, 2, 2, 6, 3, 6, 6, 2,},
- { 6, 4, 2, 5, 3, 6, 3, 3, 2,},
- { 6, 3, 2, 3, 5, 2, 4, 6, 3,},
- { 6, 2, 2, 4, 3, 5, 3, 6, 3,},
- { 7, 5, 1, 7, 4, 7, 7, 3, 2,},
- { 5, 5, 2, 3, 6, 7, 7, 5, 1,},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,},
-};
-
-//@}
-
-#define PBTYPE_ESCAPE 0xFF
-
-/** tables used for P-frame macroblock type decoding */
-//@{
-#define NUM_PTYPE_VLCS 7
-#define PTYPE_VLC_SIZE 8
-#define PTYPE_VLC_BITS 7
-
-static const uint8_t ptype_vlc_codes[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE] = {
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x0D, 0x05, 0x01, 0x04, 0x01, 0x00, 0x07, 0x0C },
- { 0x09, 0x11, 0x01, 0x00, 0x05, 0x03, 0x21, 0x20 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
-};
-
-static const uint8_t ptype_vlc_bits[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE] = {
- { 1, 2, 3, 6, 5, 4, 7, 7 },
- { 3, 1, 2, 7, 6, 5, 4, 7 },
- { 5, 4, 1, 4, 3, 3, 4, 5 },
- { 4, 5, 2, 2, 3, 2, 6, 6 },
- { 5, 6, 1, 4, 2, 3, 7, 7 },
- { 5, 6, 1, 4, 3, 2, 7, 7 },
- { 6, 3, 2, 7, 5, 4, 1, 7 }
-};
-
-static const uint8_t ptype_vlc_syms[PTYPE_VLC_SIZE] = {
- 0, 1, 2, 3, 8, 9, 11, PBTYPE_ESCAPE
-};
-
-/** reverse of ptype_vlc_syms */
-static const uint8_t block_num_to_ptype_vlc_num[12] = {
- 0, 1, 2, 3, 0, 0, 2, 0, 4, 5, 0, 6
-};
-//@}
-
-/** tables used for P-frame macroblock type decoding */
-//@{
-#define NUM_BTYPE_VLCS 6
-#define BTYPE_VLC_SIZE 7
-#define BTYPE_VLC_BITS 6
-
-static const uint8_t btype_vlc_codes[NUM_BTYPE_VLCS][BTYPE_VLC_SIZE] = {
- { 0x01, 0x05, 0x00, 0x03, 0x11, 0x09, 0x10 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x09, 0x01, 0x00, 0x01, 0x05, 0x03, 0x08 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
-};
-
-static const uint8_t btype_vlc_bits[NUM_BTYPE_VLCS][PTYPE_VLC_SIZE] = {
- { 2, 3, 2, 2, 5, 4, 5 },
- { 4, 1, 3, 2, 6, 5, 6 },
- { 6, 4, 1, 2, 5, 3, 6 },
- { 5, 3, 3, 1, 4, 3, 5 },
- { 6, 5, 3, 2, 4, 1, 6 },
- { 6, 5, 3, 1, 4, 2, 6 }
-};
-
-static const uint8_t btype_vlc_syms[BTYPE_VLC_SIZE] = {
- 0, 1, 4, 5, 10, 7, PBTYPE_ESCAPE
-};
-
-/** reverse of btype_vlc_syms */
-static const uint8_t block_num_to_btype_vlc_num[12] = {
- 0, 1, 0, 0, 2, 3, 0, 5, 0, 0, 4, 0
-};
-//@}
-#endif /* AVCODEC_RV40VLC2_H */
+++ /dev/null
-/*
- * S3 Texture Compression (S3TC) decoding functions
- * Copyright (c) 2007 by Ivo van Poorten
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_S3TC_H
-#define AVCODEC_S3TC_H
-
-#include <stdint.h>
-
-#define FF_S3TC_DXT1 0x31545844
-#define FF_S3TC_DXT3 0x33545844
-
-/**
- * Decode DXT1 encoded data to RGB32
- * @param *src source buffer, has to be aligned on a 4-byte boundary
- * @param *dst destination buffer
- * @param w width of output image
- * @param h height of output image
- * @param stride line size of output image
- */
-void ff_decode_dxt1(const uint8_t *src, uint8_t *dst,
- const unsigned int w, const unsigned int h,
- const unsigned int stride);
-/**
- * Decode DXT3 encoded data to RGB32
- * @param *src source buffer, has to be aligned on a 4-byte boundary
- * @param *dst destination buffer
- * @param w width of output image
- * @param h height of output image
- * @param stride line size of output image
- */
-void ff_decode_dxt3(const uint8_t *src, uint8_t *dst,
- const unsigned int w, const unsigned int h,
- const unsigned int stride);
-
-#endif /* AVCODEC_S3TC_H */
+++ /dev/null
-/*
- * Spectral Band Replication definitions and structures
- * Copyright (c) 2008-2009 Robert Swain ( rob opendot cl )
- * Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Spectral Band Replication definitions and structures
- * @author Robert Swain ( rob opendot cl )
- */
-
-#ifndef AVCODEC_SBR_H
-#define AVCODEC_SBR_H
-
-#include <stdint.h>
-#include "fft.h"
-
-/**
- * Spectral Band Replication header - spectrum parameters that invoke a reset if they differ from the previous header.
- */
-typedef struct {
- uint8_t bs_start_freq;
- uint8_t bs_stop_freq;
- uint8_t bs_xover_band;
-
- /**
- * @defgroup bs_header_extra_1 Variables associated with bs_header_extra_1
- * @{
- */
- uint8_t bs_freq_scale;
- uint8_t bs_alter_scale;
- uint8_t bs_noise_bands;
- /** @} */
-} SpectrumParameters;
-
-#define SBR_SYNTHESIS_BUF_SIZE ((1280-128)*2)
-
-/**
- * Spectral Band Replication per channel data
- */
-typedef struct {
- /**
- * @defgroup bitstream Main bitstream data variables
- * @{
- */
- unsigned bs_frame_class;
- unsigned bs_add_harmonic_flag;
- unsigned bs_num_env;
- uint8_t bs_freq_res[7];
- unsigned bs_num_noise;
- uint8_t bs_df_env[5];
- uint8_t bs_df_noise[2];
- uint8_t bs_invf_mode[2][5];
- uint8_t bs_add_harmonic[48];
- unsigned bs_amp_res;
- /** @} */
-
- /**
- * @defgroup state State variables
- * @{
- */
- DECLARE_ALIGNED(16, float, synthesis_filterbank_samples)[SBR_SYNTHESIS_BUF_SIZE];
- DECLARE_ALIGNED(16, float, analysis_filterbank_samples) [1312];
- int synthesis_filterbank_samples_offset;
- ///l_APrev and l_A
- int e_a[2];
- ///Chirp factors
- float bw_array[5];
- ///QMF values of the original signal
- float W[2][32][32][2];
- ///QMF output of the HF adjustor
- float Y[2][38][64][2];
- float g_temp[42][48];
- float q_temp[42][48];
- uint8_t s_indexmapped[8][48];
- ///Envelope scalefactors
- float env_facs[6][48];
- ///Noise scalefactors
- float noise_facs[3][5];
- ///Envelope time borders
- uint8_t t_env[8];
- ///Envelope time border of the last envelope of the previous frame
- uint8_t t_env_num_env_old;
- ///Noise time borders
- uint8_t t_q[3];
- unsigned f_indexnoise;
- unsigned f_indexsine;
- /** @} */
-} SBRData;
-
-/**
- * Spectral Band Replication
- */
-typedef struct {
- int sample_rate;
- int start;
- int reset;
- SpectrumParameters spectrum_params;
- int bs_amp_res_header;
- /**
- * @defgroup bs_header_extra_2 variables associated with bs_header_extra_2
- * @{
- */
- unsigned bs_limiter_bands;
- unsigned bs_limiter_gains;
- unsigned bs_interpol_freq;
- unsigned bs_smoothing_mode;
- /** @} */
- unsigned bs_coupling;
- unsigned k[5]; ///< k0, k1, k2
- ///kx', and kx respectively, kx is the first QMF subband where SBR is used.
- ///kx' is its value from the previous frame
- unsigned kx[2];
- ///M' and M respectively, M is the number of QMF subbands that use SBR.
- unsigned m[2];
- ///The number of frequency bands in f_master
- unsigned n_master;
- SBRData data[2];
- ///N_Low and N_High respectively, the number of frequency bands for low and high resolution
- unsigned n[2];
- ///Number of noise floor bands
- unsigned n_q;
- ///Number of limiter bands
- unsigned n_lim;
- ///The master QMF frequency grouping
- uint16_t f_master[49];
- ///Frequency borders for low resolution SBR
- uint16_t f_tablelow[25];
- ///Frequency borders for high resolution SBR
- uint16_t f_tablehigh[49];
- ///Frequency borders for noise floors
- uint16_t f_tablenoise[6];
- ///Frequency borders for the limiter
- uint16_t f_tablelim[29];
- unsigned num_patches;
- uint8_t patch_num_subbands[6];
- uint8_t patch_start_subband[6];
- ///QMF low frequency input to the HF generator
- float X_low[32][40][2];
- ///QMF output of the HF generator
- float X_high[64][40][2];
- ///QMF values of the reconstructed signal
- DECLARE_ALIGNED(16, float, X)[2][2][32][64];
- ///Zeroth coefficient used to filter the subband signals
- float alpha0[64][2];
- ///First coefficient used to filter the subband signals
- float alpha1[64][2];
- ///Dequantized envelope scalefactors, remapped
- float e_origmapped[7][48];
- ///Dequantized noise scalefactors, remapped
- float q_mapped[7][48];
- ///Sinusoidal presence, remapped
- uint8_t s_mapped[7][48];
- ///Estimated envelope
- float e_curr[7][48];
- ///Amplitude adjusted noise scalefactors
- float q_m[7][48];
- ///Sinusoidal levels
- float s_m[7][48];
- float gain[7][48];
- DECLARE_ALIGNED(16, float, qmf_filter_scratch)[5][64];
- RDFTContext rdft;
- FFTContext mdct;
-} SpectralBandReplication;
-
-#endif /* AVCODEC_SBR_H */
+++ /dev/null
- /*
- * SGI image encoder
- * Xiaohui Sun <tjnksxh@hotmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SGI_H
-#define AVCODEC_SGI_H
-
-/**
- * SGI image file signature
- */
-#define SGI_MAGIC 474
-
-#define SGI_HEADER_SIZE 512
-
-#define SGI_GRAYSCALE 1
-#define SGI_RGB 3
-#define SGI_RGBA 4
-
-#endif /* AVCODEC_SGI_H */
+++ /dev/null
-/*
- * Simple IDCT
- *
- * Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * simple idct header.
- */
-
-#ifndef AVCODEC_SIMPLE_IDCT_H
-#define AVCODEC_SIMPLE_IDCT_H
-
-#include <stdint.h>
-#include "dsputil.h"
-
-void ff_simple_idct_put(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_simple_idct_add(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_simple_idct_mmx(int16_t *block);
-void ff_simple_idct_add_mmx(uint8_t *dest, int line_size, int16_t *block);
-void ff_simple_idct_put_mmx(uint8_t *dest, int line_size, int16_t *block);
-void ff_simple_idct(DCTELEM *block);
-
-void ff_simple_idct248_put(uint8_t *dest, int line_size, DCTELEM *block);
-
-void ff_simple_idct84_add(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_simple_idct48_add(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_simple_idct44_add(uint8_t *dest, int line_size, DCTELEM *block);
-
-#endif /* AVCODEC_SIMPLE_IDCT_H */
+++ /dev/null
-/*
- * SIPR / ACELP.NET decoder
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- * Copyright (c) 2009 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SIPR_H
-#define AVCODEC_SIPR_H
-
-#include "avcodec.h"
-#include "dsputil.h"
-#include "acelp_pitch_delay.h"
-
-#define LP_FILTER_ORDER_16k 16
-#define L_SUBFR_16k 80
-#define PITCH_MIN 30
-#define PITCH_MAX 281
-
-#define LSFQ_DIFF_MIN (0.0125 * M_PI)
-
-#define LP_FILTER_ORDER 10
-
-/** Number of past samples needed for excitation interpolation */
-#define L_INTERPOL (LP_FILTER_ORDER + 1)
-
-/** Subframe size for all modes except 16k */
-#define SUBFR_SIZE 48
-
-#define SUBFRAME_COUNT_16k 2
-
-typedef enum {
- MODE_16k,
- MODE_8k5,
- MODE_6k5,
- MODE_5k0,
- MODE_COUNT
-} SiprMode;
-
-typedef struct {
- AVCodecContext *avctx;
- DSPContext dsp;
-
- SiprMode mode;
-
- float past_pitch_gain;
- float lsf_history[LP_FILTER_ORDER_16k];
-
- float excitation[L_INTERPOL + PITCH_MAX + 2 * L_SUBFR_16k];
-
- DECLARE_ALIGNED(16, float, synth_buf)[LP_FILTER_ORDER + 5*SUBFR_SIZE + 6];
-
- float lsp_history[LP_FILTER_ORDER];
- float gain_mem;
- float energy_history[4];
- float highpass_filt_mem[2];
- float postfilter_mem[PITCH_DELAY_MAX + LP_FILTER_ORDER];
-
- /* 5k0 */
- float tilt_mem;
- float postfilter_agc;
- float postfilter_mem5k0[PITCH_DELAY_MAX + LP_FILTER_ORDER];
- float postfilter_syn5k0[LP_FILTER_ORDER + SUBFR_SIZE*5];
-
- /* 16k */
- int pitch_lag_prev;
- float iir_mem[LP_FILTER_ORDER_16k+1];
- float filt_buf[2][LP_FILTER_ORDER_16k+1];
- float *filt_mem[2];
- float mem_preemph[LP_FILTER_ORDER_16k];
- float synth[LP_FILTER_ORDER_16k];
- double lsp_history_16k[16];
-} SiprContext;
-
-typedef struct {
- int ma_pred_switch; ///< switched moving average predictor
- int vq_indexes[5];
- int pitch_delay[5]; ///< pitch delay
- int gp_index[5]; ///< adaptive-codebook gain indexes
- int16_t fc_indexes[5][10]; ///< fixed-codebook indexes
- int gc_index[5]; ///< fixed-codebook gain indexes
-} SiprParameters;
-
-extern const float ff_pow_0_5[16];
-
-void ff_sipr_init_16k(SiprContext *ctx);
-
-void ff_sipr_decode_frame_16k(SiprContext *ctx, SiprParameters *params,
- float *out_data);
-
-#endif /* AVCODEC_SIPR_H */
+++ /dev/null
-/*
- * SIPR decoder for the 16k mode
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- * Copyright (c) 2009 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SIPR16KDATA_H
-#define AVCODEC_SIPR16KDATA_H
-
-static const float pred_16k[2] = {0.8, 0.6};
-static const float qu[2] = { 0.12, 0.5};
-
-static const float gain_cb_16k[32] = {
- 0.07499, 0.10593, 0.14125, 0.18836,
- 0.23714, 0.28184, 0.32734, 0.37584,
- 0.42170, 0.47315, 0.53088, 0.59566,
- 0.66834, 0.74989, 0.84140, 0.94406,
- 1.05925, 1.18850, 1.33352, 1.49624,
- 1.67880, 1.88365, 2.11349, 2.37137,
- 2.66073, 3.05492, 3.54813, 4.21697,
- 5.30884, 7.07946, 9.44061, 13.33521,
-};
-
-static const float gain_pitch_cb_16k[16] = {
- 0.00, 0.2, 0.40, 0.5, 0.60, 0.7, 0.75, 0.8,
- 0.85, 0.9, 0.95, 1.0, 1.05, 1.1, 1.15, 1.2,
-};
-
-
-static const float mean_lsf_16k[16] = {
- 0.131554, 0.246615, 0.435896, 0.644419,
- 0.827810, 1.017876, 1.198910, 1.379159,
- 1.562157, 1.736908, 1.940719, 2.131963,
- 2.347162, 2.521521, 2.717870, 2.847068
-};
-
-/**
- * Hamming windowed sinc function, like in AMR
- */
-static const float sinc_win[40] = {
- 0.874475, 0.755101, 0.455962, 0.118807, -0.114223, -0.176778,
- -0.101923, 0.015553, 0.086555, 0.078193, 0.018660, -0.037513,
- -0.052733, -0.027459, 0.009967, 0.030278, 0.024050, 0.003055,
- -0.013862, -0.016162, -0.006725, 0.004212, 0.008634, 0.005721,
- -0.000000, -0.003710, -0.003690, -0.001228, 0.001409, 0.002610,
-};
-
-static const float lsf_cb1_16k[128][3] = {
- {-0.089990, -0.172485, -0.203391}, {-0.094710, -0.178687, -0.134483},
- {-0.056398, -0.131952, -0.154500}, {-0.051362, -0.128138, -0.198549},
- {-0.061700, -0.142830, -0.251623}, {-0.041512, -0.115637, -0.229420},
- {-0.036544, -0.107512, -0.173125}, {-0.024158, -0.088450, -0.204144},
- {-0.038690, -0.103368, -0.132674}, {-0.056954, -0.128472, -0.104669},
- {-0.020963, -0.076785, -0.163199}, {-0.012952, -0.077249, -0.128385},
- {-0.032787, -0.097044, -0.093967}, {-0.035214, -0.053838, -0.111940},
- {-0.013850, -0.036926, -0.139328}, {-0.004956, -0.065092, -0.087709},
- {-0.065354, -0.065595, -0.079064}, {-0.023627, -0.081457, -0.054195},
- {-0.027335, -0.035244, -0.068034}, { 0.016555, -0.047075, -0.128286},
- { 0.021066, -0.037252, -0.092041}, { 0.014681, -0.043044, -0.057739},
- {-0.008493, -0.008143, -0.102486}, {-0.002303, -0.061540, -0.022952},
- {-0.006061, -0.014278, -0.033652}, {-0.005276, 0.011246, -0.062762},
- { 0.043411, -0.006303, -0.063730}, { 0.035885, -0.010052, -0.115290},
- { 0.030628, -0.031538, -0.017807}, { 0.022345, 0.028210, -0.032335},
- { 0.026535, 0.027536, -0.091150}, {-0.003365, -0.008077, 0.015687},
- {-0.026013, 0.017493, -0.010355}, { 0.059069, 0.010634, -0.007530},
- { 0.044038, -0.019424, 0.030453}, {-0.036065, -0.034215, -0.007758},
- { 0.022486, 0.042543, 0.027870}, {-0.049985, -0.016085, 0.021768},
- {-0.021715, 0.021168, 0.052076}, {-0.004243, -0.061228, 0.027640},
- {-0.033950, -0.017287, 0.064656}, { 0.016151, 0.000727, 0.062757},
- {-0.063456, -0.043152, 0.056707}, {-0.067715, 0.006126, 0.058178},
- {-0.038931, 0.051673, 0.030636}, {-0.073017, -0.074716, 0.026387},
- {-0.039893, -0.104629, 0.039616}, {-0.073179, -0.074601, 0.082069},
- {-0.066154, -0.027180, 0.099439}, {-0.075167, -0.121149, 0.071938},
- {-0.030382, -0.092582, 0.091067}, {-0.084519, -0.137542, 0.023626},
- {-0.060956, -0.121259, -0.015264}, {-0.030069, -0.093823, -0.008692},
- {-0.063564, -0.065225, -0.025820}, {-0.052074, -0.117595, -0.059689},
- {-0.091652, -0.165173, -0.045573}, {-0.070167, -0.121342, 0.131707},
- {-0.061024, -0.005833, -0.051035}, { 0.007837, -0.051816, 0.074575},
- {-0.070643, -0.053927, 0.149498}, {-0.014358, -0.066681, 0.139708},
- {-0.058186, 0.029576, 0.092923}, {-0.023371, 0.007058, 0.112484},
- {-0.057969, 0.022786, 0.148420}, { 0.029439, -0.017673, 0.121423},
- {-0.015811, 0.056785, 0.091594}, { 0.004347, 0.056680, 0.137848},
- {-0.004464, 0.002342, 0.184013}, { 0.029660, 0.046870, 0.082654},
- { 0.059408, 0.001016, 0.086063}, { 0.055263, 0.027574, 0.155037},
- { 0.062166, 0.064323, 0.117371}, { 0.022967, 0.100050, 0.077227},
- { 0.041795, 0.096343, 0.170421}, { 0.053189, 0.122931, 0.118549},
- { 0.094247, 0.094448, 0.078395}, { 0.082407, 0.033408, 0.041085},
- { 0.096820, 0.115960, 0.149433}, { 0.067804, 0.121849, 0.025336},
- {-0.008421, 0.104316, 0.032314}, { 0.031013, 0.073218, -0.004899},
- { 0.085079, 0.060323, -0.009687}, { 0.028174, 0.092766, -0.055590},
- { 0.070133, 0.039160, -0.061035}, {-0.039211, 0.072517, -0.028756},
- { 0.129686, 0.100233, -0.046998}, { 0.154189, 0.107616, 0.022791},
- {-0.049331, 0.094184, 0.087984}, {-0.013179, 0.126552, 0.125099},
- {-0.058716, 0.098524, 0.150886}, {-0.022753, 0.080011, 0.191127},
- { 0.013451, 0.164593, 0.153768}, { 0.074818, 0.181214, 0.108211},
- { 0.091323, 0.169249, 0.168460}, { 0.033885, 0.155516, 0.213745},
- {-0.032128, 0.227238, 0.135815}, {-0.059176, 0.168980, 0.229110},
- { 0.033917, 0.229753, 0.222264}, { 0.082702, 0.116370, 0.224697},
- { 0.127737, 0.186658, 0.212783}, { 0.047528, 0.063920, 0.216856},
- {-0.002446, 0.114174, 0.263289}, {-0.077783, 0.082523, 0.249697},
- { 0.010023, 0.024267, 0.256874}, { 0.053190, 0.111422, 0.310407},
- {-0.078804, 0.004444, 0.224078}, {-0.055253, -0.059180, 0.217892},
- {-0.065371, 0.008124, 0.333405}, {-0.076188, -0.098767, 0.286983},
- {-0.071911, -0.115804, 0.198031}, {-0.062473, 0.183639, 0.370162},
- {-0.042666, 0.255210, 0.262720}, { 0.011999, 0.217530, 0.318291},
- {-0.042144, 0.322087, 0.326387}, { 0.090663, 0.205835, 0.294784},
- { 0.058218, 0.293649, 0.277927}, { 0.157506, 0.282870, 0.294610},
- { 0.118248, 0.261007, 0.148614}, { 0.065261, 0.332362, 0.411912},
- { 0.141269, 0.451850, 0.315726}, { 0.001706, 0.456301, 0.357590},
- {-0.052947, 0.356559, 0.456944}, { 0.247707, 0.263837, 0.152591},
- { 0.306847, 0.417373, 0.258553}, { 0.166347, 0.149222, 0.118973},
- { 0.379709, 0.292172, 0.139875}, { 0.010171, -0.055170, -0.174523}
-};
-
-static const float lsf_cb2_16k[256][3] = {
- {-0.213011, -0.293385, -0.330597}, {-0.212582, -0.240992, -0.338239},
- {-0.223373, -0.306214, -0.277192}, {-0.231138, -0.287729, -0.229412},
- {-0.238466, -0.228571, -0.260954}, {-0.140931, -0.247018, -0.258566},
- {-0.136239, -0.249669, -0.350143}, {-0.149738, -0.192970, -0.281475},
- {-0.167058, -0.261052, -0.196301}, {-0.177049, -0.201324, -0.207897},
- {-0.116915, -0.200629, -0.212526}, {-0.162247, -0.143805, -0.245093},
- {-0.082042, -0.191842, -0.266338}, {-0.098846, -0.208511, -0.320481},
- {-0.113510, -0.152470, -0.222474}, {-0.066197, -0.179112, -0.207813},
- {-0.129490, -0.169320, -0.155238}, {-0.078843, -0.190292, -0.155172},
- {-0.087790, -0.147729, -0.169351}, {-0.141037, -0.127207, -0.177910},
- {-0.126525, -0.223961, -0.153639}, {-0.101464, -0.189953, -0.114559},
- {-0.102450, -0.106303, -0.151171}, {-0.103208, -0.144457, -0.105378},
- {-0.170794, -0.140525, -0.136428}, {-0.168641, -0.203064, -0.135368},
- {-0.138193, -0.116042, -0.111905}, {-0.145085, -0.168581, -0.092613},
- {-0.126379, -0.220431, -0.091327}, {-0.212934, -0.184797, -0.101632},
- {-0.193711, -0.140556, -0.078304}, {-0.173674, -0.197276, -0.060140},
- {-0.197897, -0.241907, -0.091997}, {-0.156037, -0.258519, -0.111628},
- {-0.241964, -0.191124, -0.063140}, {-0.261340, -0.240847, -0.103132},
- {-0.221621, -0.242972, -0.041255}, {-0.224166, -0.232742, -0.161568},
- {-0.203591, -0.294470, -0.126035}, {-0.209540, -0.303149, -0.053170},
- {-0.253859, -0.295066, -0.156050}, {-0.278143, -0.331105, -0.085237},
- {-0.300273, -0.198750, -0.094834}, {-0.260477, -0.169713, -0.132476},
- {-0.211889, -0.172454, -0.164281}, {-0.228370, -0.122149, -0.124178},
- {-0.254629, -0.135668, -0.081692}, {-0.263813, -0.154928, -0.213596},
- {-0.308224, -0.106877, -0.084404}, {-0.242644, -0.082862, -0.085835},
- {-0.252084, -0.064888, -0.146498}, {-0.198162, -0.105721, -0.188887},
- {-0.189238, -0.088028, -0.109736}, {-0.197598, -0.099831, -0.044030},
- {-0.269017, -0.105991, -0.021513}, {-0.231349, -0.058825, -0.041407},
- {-0.225589, -0.027501, -0.087160}, {-0.160347, -0.058341, -0.079789},
- {-0.158729, -0.108951, -0.067262}, {-0.170483, -0.053023, -0.017561},
- {-0.175207, -0.013649, -0.049513}, {-0.156004, -0.108378, -0.004052},
- {-0.219958, -0.082362, 0.014950}, {-0.217785, -0.012981, -0.009410},
- {-0.123290, -0.040849, -0.040910}, {-0.119861, -0.095078, -0.060246},
- {-0.117537, -0.065479, 0.002968}, {-0.103231, -0.113298, -0.023282},
- {-0.136365, -0.149524, -0.051387}, {-0.119332, -0.164400, -0.009103},
- {-0.104522, -0.060948, -0.083056}, {-0.071461, -0.070787, -0.037347},
- {-0.081116, -0.149015, -0.056740}, {-0.069561, -0.108099, -0.069167},
- {-0.055624, -0.117369, -0.025091}, {-0.091941, -0.190091, -0.060020},
- {-0.072003, -0.168433, -0.006540}, {-0.033305, -0.154427, -0.054608},
- {-0.062988, -0.127093, -0.108307}, {-0.056690, -0.170813, -0.102834},
- {-0.018273, -0.127863, -0.094998}, {-0.056239, -0.123678, -0.146262},
- {-0.023442, -0.154617, -0.137417}, {-0.051903, -0.078379, -0.093395},
- {-0.014599, -0.104412, -0.135959}, {-0.051582, -0.081280, -0.140643},
- {-0.092727, -0.091930, -0.107816}, {-0.024814, -0.140993, -0.183243},
- {-0.064307, -0.113024, -0.194788}, {-0.000118, -0.098858, -0.195336},
- {-0.028090, -0.048258, -0.164101}, {-0.093414, -0.055969, -0.172743},
- {-0.114445, -0.104336, -0.215204}, {-0.048518, -0.132063, -0.242991},
- {-0.159620, -0.060240, -0.178592}, {-0.135728, -0.067473, -0.131876},
- {-0.078464, -0.038040, -0.125105}, {-0.011061, -0.064011, -0.102496},
- {-0.033887, -0.026485, -0.109493}, {-0.129128, -0.014216, -0.111329},
- {-0.190687, -0.030660, -0.135825}, {-0.082037, 0.010997, -0.100167},
- {-0.183403, 0.001651, -0.098962}, {-0.074775, -0.030335, -0.062217},
- {-0.031759, -0.050551, -0.059420}, {-0.051439, 0.010827, -0.052148},
- {-0.126744, 0.008689, -0.047785}, {-0.145916, 0.042019, -0.077431},
- {-0.093552, 0.054143, -0.060473}, {-0.090660, 0.012868, -0.018195},
- {-0.079783, -0.033071, 0.001482}, {-0.033010, -0.022331, -0.014506},
- {-0.004798, -0.017339, -0.060120}, {-0.025021, 0.026390, -0.003263},
- {-0.001437, 0.025994, -0.040892}, {-0.074821, 0.019005, 0.027549},
- {-0.030811, -0.012114, 0.034284}, { 0.006785, 0.004618, 0.018717},
- { 0.013392, -0.032597, -0.023731}, { 0.035994, 0.005963, -0.011757},
- { 0.008071, -0.045750, 0.024889}, { 0.013055, 0.017040, 0.054121},
- {-0.012989, 0.044864, 0.036327}, { 0.025054, 0.047137, 0.009974},
- { 0.053801, 0.024178, 0.031774}, { 0.056442, -0.030647, 0.021291},
- { 0.032247, 0.052680, 0.049886}, { 0.035369, 0.090207, 0.031394},
- { 0.064720, 0.070390, 0.040938}, { 0.022112, 0.054834, 0.091059},
- { 0.041765, 0.086248, 0.070196}, { 0.070645, 0.060852, 0.078825},
- { 0.058506, 0.016920, 0.081612}, { 0.000009, 0.086500, 0.059849},
- { 0.071253, 0.107392, 0.059046}, { 0.094702, 0.096160, 0.090982},
- { 0.047639, 0.110877, 0.111227}, { 0.122444, 0.090909, 0.057396},
- { 0.101916, 0.052299, 0.029909}, { 0.076560, 0.086094, -0.007252},
- { 0.123411, 0.030769, 0.082749}, { 0.135579, 0.103022, 0.009540},
- { 0.120576, 0.065284, -0.024095}, { 0.077483, 0.028526, -0.012369},
- { 0.128747, 0.017901, -0.003874}, { 0.158254, 0.046962, 0.029577},
- { 0.102287, -0.002211, 0.037329}, { 0.089654, -0.021372, -0.006857},
- { 0.137917, 0.027228, -0.053223}, { 0.098728, -0.012192, -0.048518},
- { 0.083974, 0.036153, -0.062266}, { 0.048230, -0.010241, -0.052293},
- { 0.110135, 0.007715, -0.095233}, { 0.068294, -0.014317, -0.104029},
- { 0.063909, -0.056416, -0.063023}, { 0.059133, -0.044675, -0.023780},
- { 0.030748, 0.021845, -0.086332}, { 0.023994, -0.045574, -0.076232},
- { 0.052147, -0.059825, -0.109667}, { 0.013087, -0.020420, -0.121945},
- { 0.018163, -0.096765, -0.088758}, { 0.020196, -0.076470, -0.048112},
- { 0.020282, -0.084204, -0.135535}, { 0.040076, -0.053464, -0.161949},
- {-0.017796, -0.103070, -0.059559}, {-0.016484, -0.070138, -0.016866},
- { 0.004849, -0.112481, -0.017731}, { 0.040160, -0.073873, -0.005327},
- { 0.002202, -0.094723, 0.045366}, {-0.056918, -0.081578, 0.017875},
- {-0.031099, -0.141708, 0.009186}, {-0.102802, -0.122675, 0.030060},
- {-0.061717, -0.145116, 0.076680}, {-0.073607, -0.050464, 0.072853},
- {-0.117403, -0.194921, 0.040101}, {-0.185236, -0.133620, 0.045939},
- {-0.160174, -0.057226, 0.056641}, {-0.178489, -0.173435, -0.007806},
- {-0.199916, -0.204866, 0.047342}, {-0.152337, -0.249651, 0.034656},
- {-0.185637, -0.230942, -0.002072}, {-0.122548, -0.215209, -0.024552},
- {-0.249578, -0.209714, 0.009470}, {-0.160108, -0.257702, -0.040992},
- {-0.216694, -0.289353, 0.027182}, {-0.226390, -0.147844, -0.022742},
- {-0.288737, -0.272150, -0.013948}, {-0.262554, -0.237035, 0.072473},
- {-0.306267, -0.188335, -0.032894}, {-0.259666, -0.345816, 0.024138},
- {-0.271093, -0.137143, 0.040404}, {-0.201317, -0.286782, 0.107615},
- {-0.235725, -0.163396, 0.113844}, {-0.159988, -0.209788, 0.112140},
- {-0.262985, -0.056741, 0.093506}, {-0.277226, -0.037306, 0.016008},
- {-0.293486, -0.040422, -0.062018}, {-0.214921, 0.022900, 0.055295},
- {-0.253889, 0.058575, -0.000151}, {-0.246689, 0.024242, -0.058488},
- {-0.143790, 0.006767, 0.014061}, {-0.187077, 0.048882, -0.035625},
- {-0.196369, 0.112085, 0.031546}, {-0.124264, 0.086197, -0.020800},
- {-0.126249, 0.016960, 0.095741}, {-0.079816, 0.080398, 0.051038},
- {-0.056269, 0.075380, -0.028262}, {-0.120493, 0.148495, 0.028430},
- {-0.161750, 0.101290, 0.117806}, {-0.003247, 0.083393, -0.017061},
- {-0.034007, 0.142542, 0.007402}, {-0.037618, 0.025871, 0.089496},
- {-0.082819, 0.184435, 0.073224}, { 0.006448, 0.167015, 0.080548},
- { 0.035315, 0.144022, 0.003218}, {-0.023459, 0.088147, 0.152604},
- { 0.006247, -0.024099, 0.077792}, { 0.039894, 0.057586, -0.042455},
- {-0.020417, 0.035400, -0.093971}, { 0.075465, 0.052063, 0.145582},
- { 0.078027, 0.184720, 0.092096}, { 0.107295, 0.148380, 0.022264},
- { 0.066928, -0.052831, 0.065108}, { 0.093295, 0.118157, 0.149815},
- { 0.119373, 0.137114, 0.099536}, { 0.138653, 0.075509, 0.121545},
- { 0.174025, 0.077531, 0.077169}, { 0.165839, 0.150080, 0.133423},
- { 0.173276, 0.155887, 0.048150}, { 0.162910, 0.095898, 0.171896},
- { 0.214577, 0.112888, 0.115579}, { 0.204755, 0.106392, 0.032337},
- { 0.178853, 0.205034, 0.114760}, { 0.177401, 0.070504, -0.013778},
- { 0.241624, 0.166921, 0.066087}, { 0.219595, 0.183553, 0.172332},
- { 0.123671, 0.170842, 0.167216}, { 0.177104, 0.240197, 0.186359},
- { 0.272003, 0.220214, 0.126073}, { 0.093748, 0.235843, 0.160998},
- { 0.141510, 0.190012, 0.240416}, { 0.046878, 0.168984, 0.190412},
- { 0.094898, 0.107038, 0.235003}, { 0.108592, 0.269536, 0.262528},
- {-0.027754, 0.234355, 0.134544}, { 0.265127, 0.267540, 0.199041},
- { 0.199523, 0.291507, 0.265171}, { 0.266177, 0.209339, 0.350369},
- { 0.322159, 0.344794, 0.270823}, { 0.399957, 0.264065, 0.110387},
- { 0.277817, 0.127407, -0.035625}, {-0.177038, 0.208155, 0.119077},
- { 0.049075, -0.076294, 0.145711}, { 0.187246, 0.042865, -0.127097},
- { 0.117885, -0.023489, -0.138658}, {-0.284256, 0.068153, 0.124259}
-};
-
-static const float lsf_cb3_16k[128][3] = {
- {-0.223412, -0.236300, -0.188067}, {-0.202286, -0.218711, -0.102947},
- {-0.251652, -0.161020, -0.125280}, {-0.169223, -0.138155, -0.140430},
- {-0.176427, -0.146628, -0.222632}, {-0.120584, -0.187276, -0.180164},
- {-0.195559, -0.074225, -0.169109}, {-0.144551, -0.142774, -0.073340},
- {-0.111001, -0.111310, -0.130696}, {-0.095221, -0.174684, -0.111841},
- {-0.112158, -0.103049, -0.195130}, {-0.059989, -0.142170, -0.157850},
- {-0.127598, -0.051759, -0.153109}, {-0.063753, -0.067898, -0.164117},
- {-0.141753, -0.068274, -0.091999}, {-0.060482, -0.101054, -0.099475},
- {-0.104699, -0.104456, -0.066496}, {-0.073649, -0.052614, -0.091612},
- {-0.088268, -0.019072, -0.129956}, {-0.018837, -0.104115, -0.127837},
- {-0.021630, -0.033055, -0.129868}, {-0.083768, -0.047549, -0.041407},
- {-0.055892, -0.108526, -0.043200}, {-0.027816, -0.062499, -0.048190},
- {-0.002248, -0.110428, -0.062868}, { 0.001270, -0.033245, -0.072404},
- {-0.042747, -0.013835, -0.033829}, {-0.037615, -0.147833, -0.083912},
- {-0.045023, 0.006011, -0.092182}, {-0.050411, -0.081832, 0.005787},
- { 0.000357, -0.104282, -0.009428}, {-0.003893, -0.047892, -0.001506},
- {-0.040077, -0.147110, -0.009065}, {-0.060858, -0.030972, 0.012999},
- {-0.014674, 0.001370, 0.005554}, {-0.101362, -0.126061, -0.001898},
- {-0.102519, -0.000390, -0.015721}, {-0.132687, -0.069608, -0.019928},
- {-0.102227, -0.076131, 0.043306}, {-0.055193, 0.027001, 0.011857},
- {-0.156427, -0.016629, 0.017480}, {-0.078736, 0.002809, 0.057979},
- {-0.157789, -0.016693, -0.055073}, {-0.179397, -0.095520, 0.022065},
- {-0.110219, 0.010408, -0.081927}, {-0.125392, 0.049111, 0.044595},
- {-0.112528, 0.063173, -0.024954}, {-0.185525, 0.053093, -0.032102},
- {-0.176887, -0.019379, -0.115125}, {-0.249706, -0.017664, -0.059188},
- {-0.200243, -0.103311, -0.066846}, {-0.055404, 0.045106, -0.046991},
- {-0.000544, 0.022690, -0.044831}, { 0.022298, -0.016367, -0.022509},
- { 0.028278, 0.017585, -0.100612}, { 0.061781, -0.020826, -0.068190},
- { 0.029157, -0.074477, -0.098898}, { 0.043073, -0.067234, -0.032293},
- { 0.060157, 0.034636, -0.034885}, { 0.071153, -0.013881, -0.009036},
- { 0.054196, -0.029989, -0.131139}, { 0.030193, 0.024976, 0.009861},
- { 0.055943, -0.045304, 0.031927}, { 0.033217, -0.002418, 0.038165},
- { 0.063814, 0.045625, 0.025309}, { 0.033689, 0.038819, 0.049700},
- { 0.073582, 0.028527, 0.060200}, {-0.007957, 0.022531, 0.043687},
- {-0.000984, 0.054518, 0.018742}, { 0.057004, 0.060916, 0.060573},
- { 0.009883, 0.015238, 0.080211}, { 0.022742, 0.070832, 0.068855},
- { 0.053001, 0.029790, 0.091446}, {-0.042447, 0.060379, 0.061462},
- { 0.076826, 0.062468, 0.089653}, { 0.039065, 0.069768, 0.119128},
- { 0.064145, 0.095353, 0.071621}, { 0.094411, 0.069527, 0.054197},
- { 0.042812, 0.093060, 0.027980}, { 0.094791, 0.099189, 0.101112},
- { 0.117611, 0.048601, 0.093111}, { 0.119951, 0.122758, 0.051546},
- { 0.103558, 0.085245, -0.010700}, { 0.150126, 0.059766, 0.020280},
- { 0.108066, 0.017170, 0.008606}, { 0.108422, 0.023253, -0.063942},
- { 0.019652, 0.072284, -0.030331}, { 0.192719, 0.075624, 0.071156},
- { 0.221140, 0.069191, -0.035085}, { 0.188367, 0.126200, 0.035225},
- { 0.185760, 0.043537, -0.101714}, {-0.042518, 0.099646, 0.003244},
- {-0.015308, -0.027521, 0.046006}, { 0.034086, -0.045777, 0.095989},
- { 0.007174, -0.093358, 0.046459}, {-0.051248, -0.062095, 0.083161},
- {-0.045626, -0.133301, 0.052997}, {-0.037840, 0.024042, 0.131097},
- {-0.020217, -0.115942, 0.126170}, {-0.134550, -0.036291, 0.111322},
- {-0.110576, -0.160024, 0.091841}, {-0.093308, -0.184958, 0.013939},
- {-0.082735, -0.167417, -0.051725}, {-0.169934, -0.173003, -0.007155},
- {-0.128244, -0.213123, -0.053337}, {-0.079852, -0.154116, -0.246546},
- {-0.032242, -0.108756, -0.204133}, {-0.140117, -0.199495, -0.284505},
- { 0.010842, -0.074979, -0.166333}, {-0.093313, 0.145006, 0.034110},
- {-0.039236, 0.113213, 0.111053}, { 0.040613, -0.031783, 0.174058},
- {-0.164232, 0.131421, 0.149842}, { 0.026893, 0.107281, 0.179297},
- { 0.047086, 0.158606, 0.103267}, {-0.070567, 0.210459, 0.134734},
- { 0.094392, 0.137050, 0.166892}, { 0.086039, 0.063657, 0.168825},
- { 0.159371, 0.120897, 0.154357}, { 0.147101, 0.160684, 0.114882},
- { 0.120158, 0.199650, 0.180948}, { 0.191417, 0.174500, 0.170734},
- { 0.159153, 0.142165, 0.233347}, { 0.232002, 0.150181, 0.102736},
- { 0.188299, 0.221738, 0.228748}, { 0.256786, 0.209685, 0.161534},
- { 0.257861, 0.247793, 0.250516}, {-0.164461, -0.000143, 0.232461}
-};
-
-static const float lsf_cb4_16k[128][3] = {
- {-0.193369, -0.304643, -0.253777}, {-0.164125, -0.277786, -0.153116},
- {-0.135681, -0.209120, -0.211724}, {-0.121822, -0.215734, -0.292207},
- {-0.198781, -0.161674, -0.242538}, {-0.164147, -0.180570, -0.138070},
- {-0.095915, -0.198695, -0.154309}, {-0.248386, -0.234462, -0.136984},
- {-0.164968, -0.108318, -0.175635}, {-0.124171, -0.111809, -0.224402},
- {-0.067398, -0.157017, -0.195759}, {-0.090132, -0.119174, -0.165253},
- {-0.099460, -0.146895, -0.106799}, {-0.141493, -0.108103, -0.108880},
- {-0.085088, -0.098340, -0.109953}, {-0.105526, -0.054463, -0.154315},
- {-0.040480, -0.144285, -0.124042}, {-0.040969, -0.084039, -0.142880},
- {-0.049082, -0.118553, -0.066686}, {-0.096336, -0.087515, -0.055741},
- {-0.058605, -0.059327, -0.089275}, {-0.121842, -0.058681, -0.086949},
- {-0.053792, -0.022025, -0.124451}, {-0.036744, -0.068891, -0.045865},
- { 0.003900, -0.098237, -0.091158}, {-0.001664, -0.045089, -0.081353},
- {-0.072829, -0.034087, -0.038416}, {-0.100822, -0.007330, -0.088715},
- {-0.035911, -0.005864, -0.062577}, {-0.020205, -0.026547, -0.019634},
- { 0.004291, -0.041290, -0.138181}, { 0.023404, -0.010932, -0.044904},
- { 0.013557, 0.014823, -0.092943}, { 0.059673, -0.031024, -0.095739},
- { 0.021130, -0.080607, -0.034594}, { 0.024655, -0.035564, 0.003243},
- { 0.017106, 0.006952, -0.000308}, { 0.075208, -0.030910, -0.031181},
- { 0.024965, 0.048632, -0.039448}, { 0.057028, 0.021547, -0.009418},
- {-0.018577, 0.023697, -0.009759}, { 0.024077, 0.033053, 0.024324},
- { 0.037052, -0.003436, 0.044530}, {-0.012871, -0.007179, 0.031795},
- { 0.077877, 0.021547, 0.023131}, { 0.053365, 0.052078, 0.029433},
- { 0.011429, 0.070426, 0.028734}, {-0.001827, 0.033115, 0.061505},
- {-0.044870, 0.038568, 0.026239}, { 0.061633, 0.034799, 0.059784},
- { 0.034261, 0.060342, 0.065185}, { 0.058981, 0.082481, 0.047252},
- { 0.090008, 0.065942, 0.044470}, { 0.066961, 0.073728, -0.000428},
- { 0.074763, 0.060293, 0.085632}, { 0.066366, 0.103375, 0.079642},
- { 0.122297, 0.036558, 0.058745}, { 0.111042, 0.092093, 0.085412},
- { 0.099243, 0.115476, 0.039254}, { 0.019973, 0.122844, 0.050255},
- { 0.159571, 0.098965, 0.051740}, { 0.137624, 0.072405, -0.006922},
- { 0.130240, 0.146091, 0.089698}, { 0.138335, 0.092968, 0.136193},
- { 0.066031, 0.149304, 0.125476}, { 0.202749, 0.145751, 0.077122},
- { 0.002224, 0.082811, 0.131200}, { 0.124476, 0.178073, 0.162336},
- { 0.174722, 0.190298, 0.127106}, { 0.202193, 0.153569, 0.163840},
- { 0.242604, 0.197796, 0.136929}, { 0.185809, 0.229348, 0.193353},
- {-0.058814, 0.195178, 0.141821}, { 0.253646, 0.247175, 0.205766},
- { 0.061433, -0.025542, 0.119311}, {-0.057816, 0.082445, 0.073243},
- {-0.069239, 0.148678, 0.031146}, {-0.030217, -0.008503, 0.106194},
- {-0.026708, 0.087469, -0.009589}, {-0.090418, 0.000265, 0.056807},
- {-0.050607, -0.019383, 0.010494}, {-0.079397, 0.008233, -0.011469},
- {-0.072634, -0.061165, 0.046917}, {-0.075741, -0.072343, -0.007557},
- {-0.025162, -0.073363, 0.005173}, {-0.123371, -0.041257, -0.008375},
- {-0.139904, 0.018285, 0.009920}, {-0.143421, -0.104238, 0.033457},
- {-0.100923, -0.134400, -0.023257}, {-0.157791, -0.095042, -0.036959},
- {-0.219890, -0.078637, 0.001815}, {-0.183607, -0.023053, -0.043678},
- {-0.145303, -0.158923, -0.059045}, {-0.197615, -0.165199, 0.028099},
- {-0.225131, -0.167756, -0.056401}, {-0.216572, -0.104751, -0.102964},
- {-0.171336, -0.241967, -0.063404}, {-0.134035, -0.205614, 0.011831},
- {-0.297116, -0.211173, -0.015352}, {-0.086464, -0.200592, -0.070454},
- {-0.217777, -0.278403, 0.030398}, {-0.236248, -0.323694, -0.087588},
- {-0.222074, -0.210785, 0.106210}, {-0.283400, -0.097077, 0.041303},
- {-0.078417, -0.154464, 0.062956}, {-0.214417, -0.100695, 0.121909},
- {-0.178576, -0.028847, 0.061042}, {-0.037999, -0.144233, -0.010546},
- {-0.086695, -0.070996, 0.125282}, { 0.010788, -0.085006, 0.058527},
- {-0.154015, 0.066560, 0.071038}, {-0.143503, 0.033260, 0.154393},
- {-0.134069, 0.032420, -0.056293}, {-0.110851, 0.086908, 0.003920},
- {-0.057254, 0.047674, -0.055571}, {-0.214206, 0.068784, -0.004735},
- {-0.257264, 0.050468, 0.081702}, {-0.291834, 0.004120, -0.022366},
- {-0.173309, -0.029081, -0.115901}, {-0.207622, 0.168664, 0.136030},
- { 0.090541, 0.032754, -0.057330}, { 0.140219, -0.000735, -0.015633},
- { 0.136697, -0.017163, -0.100909}, { 0.029838, -0.089515, -0.147130},
- {-0.055367, -0.072683, -0.214015}, { 0.048680, -0.057633, -0.212429},
- {-0.013134, -0.113898, -0.196403}, {-0.071702, -0.159408, -0.254895}
-};
-
-static const float lsf_cb5_16k[128][4] = {
- {-0.201277, -0.278679, -0.173262, -0.198580},
- {-0.214667, -0.151922, -0.117551, -0.192713},
- {-0.160962, -0.207728, -0.124750, -0.129749},
- {-0.131043, -0.137818, -0.155281, -0.166308},
- {-0.179134, -0.169602, -0.165223, -0.066293},
- {-0.136474, -0.177035, -0.250127, -0.134370},
- {-0.066970, -0.146274, -0.170638, -0.134436},
- {-0.083288, -0.165860, -0.103437, -0.140361},
- {-0.130474, -0.119317, -0.124393, -0.086408},
- {-0.127609, -0.134415, -0.073592, -0.116103},
- {-0.113027, -0.091756, -0.107786, -0.131935},
- {-0.125530, -0.182152, -0.093796, -0.045088},
- {-0.077122, -0.138052, -0.166271, -0.038886},
- {-0.073027, -0.106845, -0.067073, -0.113910},
- {-0.049146, -0.107019, -0.112531, -0.063388},
- {-0.101539, -0.119586, -0.050297, -0.040670},
- {-0.107784, -0.066913, -0.080993, -0.052352},
- {-0.152155, -0.103010, -0.090461, -0.015526},
- {-0.153087, -0.087656, -0.029889, -0.037367},
- {-0.215281, -0.138062, -0.089162, -0.050839},
- {-0.053350, -0.060169, -0.063459, -0.024499},
- {-0.051674, -0.076355, -0.033733, -0.077211},
- {-0.045047, -0.107006, -0.020880, -0.024525},
- {-0.083003, -0.063672, -0.013243, -0.028324},
- {-0.104104, -0.075450, -0.032746, 0.024480},
- {-0.085695, -0.019502, -0.045121, -0.025016},
- {-0.123120, -0.030844, -0.003533, -0.016224},
- {-0.025568, -0.049172, -0.003911, -0.027522},
- {-0.039029, -0.019857, -0.043211, -0.058087},
- {-0.040122, -0.023067, -0.001356, 0.008607},
- {-0.063351, -0.001776, 0.016015, -0.027088},
- {-0.068110, -0.038838, 0.042525, 0.001076},
- {-0.043623, -0.020736, -0.047862, 0.037710},
- {-0.041052, 0.021954, -0.025660, 0.000758},
- {-0.013035, 0.002583, -0.008233, -0.037300},
- {-0.005523, -0.014670, 0.019651, -0.012667},
- {-0.004409, -0.014437, -0.059412, -0.019701},
- { 0.024946, -0.011663, -0.014351, -0.028762},
- { 0.012660, 0.018489, -0.010205, 0.012695},
- {-0.004423, 0.017827, 0.040544, 0.003629},
- { 0.020684, 0.026743, 0.007752, -0.025595},
- { 0.032071, 0.000043, 0.026188, -0.006444},
- { 0.058793, 0.015820, -0.001119, -0.017415},
- { 0.020156, -0.047590, 0.004227, 0.008670},
- { 0.054770, 0.032135, 0.029770, -0.009767},
- { 0.030884, 0.047757, 0.033068, 0.006866},
- { 0.062039, 0.011646, 0.056037, 0.016859},
- { 0.013798, -0.028196, 0.060710, 0.014299},
- { 0.100043, 0.041445, 0.023379, -0.014889},
- { 0.062728, -0.042821, 0.002180, -0.055380},
- { 0.061663, 0.018767, -0.015571, -0.074095},
- { 0.062980, 0.080497, 0.011808, -0.031787},
- { 0.084964, 0.043100, -0.025877, 0.020309},
- { 0.014707, 0.035421, -0.041440, -0.053373},
- { 0.081268, 0.005791, -0.066290, -0.039825},
- { 0.017691, -0.020401, -0.040513, -0.083960},
- { 0.120874, 0.055753, -0.025988, -0.059552},
- { 0.079912, 0.007894, -0.085380, -0.114587},
- { 0.036856, -0.039331, -0.104237, -0.069116},
- { 0.008526, -0.064273, -0.048312, -0.038595},
- { 0.033461, -0.028956, -0.066505, 0.038722},
- {-0.042064, -0.043989, -0.100653, -0.071550},
- {-0.015342, -0.064850, -0.065675, -0.122769},
- {-0.006581, -0.004919, -0.113564, -0.145753},
- { 0.008273, -0.070702, -0.164998, -0.095541},
- {-0.001698, -0.063744, -0.129971, -0.011162},
- {-0.048471, -0.087500, -0.111006, -0.161823},
- {-0.032193, -0.091955, -0.080642, 0.012288},
- {-0.095873, -0.015986, -0.072722, -0.101745},
- {-0.079477, -0.082060, -0.203008, -0.100297},
- {-0.023883, -0.064022, -0.168341, -0.211739},
- {-0.070530, -0.103547, -0.123858, 0.055049},
- {-0.033503, -0.076812, -0.016287, 0.044159},
- {-0.088427, -0.161682, -0.058579, 0.013873},
- {-0.083068, -0.168222, -0.016773, -0.080209},
- {-0.080548, -0.139090, 0.030544, 0.007171},
- {-0.117482, -0.083718, 0.027074, -0.003674},
- {-0.163085, -0.156856, -0.012618, -0.022329},
- {-0.176540, -0.113042, -0.020148, 0.051770},
- {-0.153891, -0.199293, -0.043244, 0.028331},
- {-0.107822, -0.150615, 0.016430, 0.092919},
- {-0.137676, -0.183224, 0.066026, 0.029343},
- {-0.191106, -0.099250, 0.045370, 0.004084},
- {-0.237042, -0.130815, -0.022543, -0.029428},
- {-0.201014, -0.053591, -0.007305, -0.033547},
- {-0.249286, -0.228408, 0.005002, 0.007146},
- {-0.206509, -0.211998, -0.061352, -0.047233},
- {-0.255702, -0.135114, 0.076375, 0.036630},
- {-0.296271, -0.073946, -0.007273, -0.019601},
- {-0.302917, -0.175111, -0.070024, -0.043905},
- {-0.239275, -0.043962, -0.084982, -0.067446},
- {-0.254583, -0.294720, -0.088762, -0.070451},
- {-0.205583, -0.238996, -0.124753, 0.033076},
- {-0.205583, -0.215882, -0.028472, 0.118679},
- {-0.153640, -0.204464, -0.039654, -0.134441},
- {-0.145929, -0.191970, -0.175308, 0.021366},
- {-0.149348, -0.212569, -0.118324, 0.103812},
- {-0.166397, -0.220581, -0.265260, -0.029113},
- {-0.164171, -0.231262, -0.258828, 0.061427},
- {-0.200198, -0.263453, -0.212016, 0.115359},
- {-0.130088, -0.212168, -0.202368, 0.118563},
- {-0.206387, -0.078075, -0.227856, -0.111165},
- {-0.129605, -0.176848, -0.241584, -0.259900},
- {-0.176826, -0.045901, -0.141712, -0.209345},
- {-0.351173, -0.031097, -0.133935, -0.182412},
- {-0.164232, 0.027006, -0.014039, -0.053567},
- {-0.171037, -0.025924, 0.030972, 0.017329},
- {-0.080862, -0.021577, 0.007652, 0.063968},
- {-0.061788, 0.042024, -0.018783, -0.057979},
- {-0.110311, 0.054760, 0.031446, -0.006710},
- {-0.136637, 0.022171, 0.084991, 0.028039},
- {-0.254471, -0.004376, 0.078034, 0.033649},
- {-0.234464, 0.088157, 0.040999, 0.002639},
- {-0.037095, 0.059443, 0.072180, 0.015027},
- {-0.046841, -0.004813, 0.088266, 0.038786},
- {-0.086782, 0.120100, 0.082655, 0.020271},
- {-0.118361, -0.069242, 0.094867, 0.039200},
- {-0.023342, -0.084303, 0.052684, 0.017093},
- {-0.014194, 0.001012, 0.011946, 0.074125},
- {-0.015342, 0.076396, 0.022365, -0.028001},
- { 0.027706, 0.037047, 0.107573, 0.060815},
- { 0.030615, 0.040664, 0.010467, 0.074289},
- { 0.038646, 0.115584, 0.069627, 0.007642},
- { 0.096463, 0.069818, 0.062494, 0.015413},
- { 0.054834, 0.065232, 0.054286, 0.110088},
- { 0.152312, 0.092371, 0.026420, -0.013184},
- { 0.144264, 0.123438, 0.080131, 0.023233},
- { 0.124405, 0.009943, -0.148477, -0.205184}
-};
-
-static const float *lsf_codebooks_16k[] = {
- lsf_cb1_16k[0], lsf_cb2_16k[0], lsf_cb3_16k[0], lsf_cb4_16k[0],
- lsf_cb5_16k[0]
-};
-
-#endif /* AVCODEC_SIPR16KDATA_H */
+++ /dev/null
-/*
- * SIPR / ACELP.NET decoder
- *
- * Copyright (c) 2008 Vladimir Voroshilov
- * Copyright (c) 2009 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SIPRDATA_H
-#define AVCODEC_SIPRDATA_H
-
-static const float mean_lsf[10] = {
- 0.297151, 0.452308, 0.765443, 1.134803, 1.421125,
- 1.773822, 2.049173, 2.375914, 2.585097, 0.075756
-};
-
-static const float lsf_cb1[64][2] = {
- { 0.007587, -0.005843}, { 0.042163, -0.028048}, {-0.017147, -0.060705},
- { 0.013773, -0.038108}, {-0.041563, -0.078571}, {-0.076928, -0.119343},
- { 0.012654, 0.176005}, { 0.059737, 0.156869}, { 0.171767, 0.231837},
- { 0.114030, 0.242047}, { 0.168977, 0.283101}, { 0.146210, 0.397961},
- { 0.249446, 0.268421}, { 0.137074, 0.186724}, {-0.057736, -0.135638},
- {-0.109664, -0.124611}, {-0.021234, -0.031174}, {-0.013990, -0.091819},
- {-0.040046, -0.111426}, {-0.016830, 0.055361}, { 0.057815, 0.071606},
- { 0.060670, 0.114436}, { 0.106695, 0.140838}, { 0.093601, 0.092793},
- { 0.039593, 0.006142}, {-0.066589, -0.092463}, {-0.102589, -0.171380},
- {-0.059621, -0.050671}, { 0.166131, 0.139773}, { 0.213069, 0.190761},
- { 0.061820, 0.037661}, { 0.136471, 0.090823}, {-0.019789, 0.013515},
- { 0.022280, 0.079473}, { 0.215281, 0.461959}, { 0.206497, 0.340077},
- { 0.012249, -0.065596}, { 0.091345, 0.190871}, { 0.019506, 0.037266},
- {-0.050702, -0.013223}, {-0.057334, 0.028943}, { 0.291512, 0.371415},
- {-0.053467, 0.084160}, { 0.025372, 0.375310}, { 0.269995, 0.566520},
- {-0.095259, -0.012353}, { 0.050479, 0.212893}, { 0.101219, 0.049320},
- { 0.072426, 0.283362}, {-0.084116, -0.150542}, {-0.031485, 0.144922},
- { 0.012714, 0.256910}, {-0.009528, 0.102768}, {-0.039572, 0.204967},
- {-0.098800, 0.055038}, { 0.020719, 0.128387}, {-0.045559, -0.178373},
- {-0.082338, 0.136933}, {-0.058270, 0.292806}, { 0.084242, 0.505112},
- { 0.121825, 0.326386}, {-0.102658, -0.069341}, { 0.071675, 0.004744},
- {-0.117763, -0.202608}
-};
-
-static const float lsf_cb2[128][2] = {
- { 0.025412, 0.006095}, {-0.069803, 0.010650}, {-0.175957, -0.185800},
- {-0.139298, -0.048013}, {-0.156150, -0.129688}, {-0.160523, 0.068022},
- { 0.199683, 0.259982}, { 0.258038, 0.236147}, { 0.367089, 0.304716},
- { 0.251764, 0.305853}, { 0.394314, 0.382153}, { 0.448579, 0.337438},
- { 0.323286, 0.425563}, { 0.015369, 0.123820}, {-0.026770, 0.083881},
- {-0.112161, -0.097993}, {-0.221847, -0.161311}, {-0.050014, -0.092862},
- {-0.214960, -0.398498}, {-0.114062, -0.241381}, { 0.137950, 0.138852},
- { 0.031529, 0.065719}, { 0.208734, 0.084760}, { 0.157862, 0.057535},
- { 0.124750, 0.011922}, {-0.035227, -0.154397}, {-0.105523, -0.291427},
- {-0.073488, -0.201948}, {-0.224184, -0.273290}, {-0.168019, -0.240297},
- {-0.271591, -0.384682}, {-0.124784, 0.014253}, { 0.004210, -0.110418},
- { 0.074270, -0.014272}, { 0.053058, -0.068672}, {-0.090098, -0.145019},
- { 0.303214, 0.210323}, { 0.413443, 0.272002}, { 0.356904, 0.230646},
- {-0.035186, -0.028579}, {-0.117558, 0.115105}, {-0.159225, 0.218385},
- {-0.230178, 0.172901}, {-0.216148, -0.110195}, { 0.309444, 0.101508},
- { 0.250489, 0.118338}, { 0.293324, 0.151205}, {-0.023634, 0.033084},
- { 0.076708, 0.114024}, { 0.123119, 0.087704}, {-0.060265, 0.126543},
- {-0.223766, -0.021903}, {-0.241987, -0.328089}, { 0.205598, 0.147925},
- {-0.087010, 0.064601}, {-0.287892, -0.286099}, {-0.179451, -0.350781},
- {-0.219572, 0.043816}, {-0.217263, 0.245550}, {-0.286743, -0.180981},
- { 0.172659, 0.112620}, {-0.105422, 0.176856}, { 0.006176, -0.051491},
- { 0.099802, 0.176322}, {-0.186620, -0.068980}, { 0.164689, 0.185018},
- { 0.519877, 0.376111}, { 0.521941, 0.533731}, { 0.473375, 0.439534},
- { 0.214235, 0.202476}, { 0.579215, 0.466969}, { 0.310414, 0.271057},
- { 0.257450, 0.058939}, { 0.023936, -0.169464}, {-0.268817, -0.064531},
- {-0.174182, -0.000198}, {-0.268405, -0.234529}, {-0.296522, 0.247140},
- { 0.115950, -0.072194}, {-0.303666, 0.149084}, {-0.347762, -0.011002},
- {-0.223829, -0.214137}, {-0.278958, -0.457975}, { 0.135500, 0.238466},
- { 0.312730, 0.342760}, { 0.071754, -0.125912}, { 0.485938, 0.260429},
- { 0.037536, 0.179771}, { 0.391493, 0.156938}, { 0.397320, 0.484446},
- {-0.308630, -0.342418}, {-0.269599, -0.128453}, {-0.086683, -0.043863},
- { 0.421115, 0.213521}, { 0.082417, 0.049006}, {-0.087873, 0.238126},
- { 0.338899, 0.166131}, {-0.166988, 0.147105}, {-0.167214, -0.294075},
- { 0.588706, 0.328303}, { 0.207270, 0.017671}, {-0.141658, 0.291147},
- {-0.140850, 0.374321}, { 0.028180, 0.322510}, {-0.229858, 0.328036},
- {-0.060743, -0.260916}, {-0.011131, 0.246442}, {-0.058151, 0.310760},
- {-0.127536, -0.186432}, {-0.128523, -0.334884}, {-0.283899, 0.077729},
- {-0.031595, 0.181015}, {-0.329330, -0.108630}, {-0.215739, 0.107458},
- { 0.175734, 0.327134}, { 0.255801, 0.176077}, { 0.228265, 0.396859},
- {-0.370909, -0.185081}, {-0.355138, -0.300405}, { 0.061669, 0.242616},
- { 0.104489, 0.307995}, {-0.320021, -0.234002}, { 0.077349, 0.416286},
- {-0.339471, -0.407609}, {-0.019384, -0.215111}, { 0.168229, -0.032453},
- {-0.040140, 0.399658}, {-0.275141, 0.008218}
-};
-
-static const float lsf_cb3[128][2] = {
- { 0.024608, 0.006198}, {-0.216616, -0.398169}, {-0.089601, -0.201370},
- {-0.121878, -0.305281}, { 0.037913, 0.059320}, { 0.245126, 0.244089},
- { 0.266853, 0.182476}, { 0.319362, 0.203481}, { 0.349945, 0.252644},
- { 0.393849, 0.279272}, { 0.445707, 0.258063}, { 0.387321, 0.200855},
- {-0.038818, 0.129603}, {-0.009510, 0.076441}, {-0.023892, -0.028199},
- {-0.117134, -0.145990}, {-0.186585, -0.052886}, {-0.034250, -0.084547},
- {-0.087443, -0.095426}, {-0.453322, -0.174493}, {-0.363975, -0.148186},
- {-0.334413, -0.202479}, {-0.221313, -0.181320}, {-0.131146, -0.050611},
- {-0.104706, 0.115139}, { 0.192765, 0.275417}, { 0.014184, 0.194251},
- { 0.154215, 0.226949}, { 0.084031, 0.221759}, { 0.189438, 0.164566},
- { 0.130737, 0.170962}, {-0.066815, 0.062954}, {-0.177176, -0.145167},
- {-0.247608, -0.129767}, {-0.187886, -0.293720}, {-0.244036, -0.344655},
- {-0.203063, -0.234947}, {-0.292715, -0.158421}, { 0.064990, -0.028164},
- { 0.147664, 0.085995}, { 0.107977, 0.002253}, { 0.071286, 0.027533},
- { 0.021017, -0.049807}, {-0.272056, -0.217857}, {-0.065596, 0.008375},
- {-0.150818, -0.195514}, {-0.012767, -0.150787}, { 0.238541, 0.136606},
- { 0.291741, 0.114024}, { 0.202677, 0.103701}, { 0.140985, 0.037759},
- {-0.257347, -0.442383}, {-0.320666, -0.319742}, {-0.488725, -0.603660},
- {-0.319170, -0.469806}, { 0.014970, -0.101074}, { 0.102209, 0.066790},
- {-0.076202, -0.044884}, { 0.073868, 0.152565}, { 0.070755, -0.091358},
- {-0.016751, 0.027216}, { 0.071201, 0.096981}, {-0.060975, -0.145638},
- { 0.114156, 0.117587}, {-0.284757, -0.029101}, {-0.253005, -0.073645},
- {-0.204028, -0.098492}, {-0.114508, 0.001219}, {-0.225284, -0.011998},
- {-0.235670, 0.084330}, { 0.161921, 0.128334}, { 0.025717, 0.119456},
- {-0.255292, -0.281471}, {-0.392803, -0.095809}, { 0.039229, -0.152110},
- {-0.310905, -0.099233}, {-0.268773, 0.032308}, {-0.340150, 0.013129},
- {-0.344890, -0.045157}, {-0.188423, 0.265603}, {-0.168235, -0.000936},
- { 0.000462, 0.297000}, { 0.263674, 0.371214}, {-0.146797, -0.098225},
- {-0.386557, -0.282426}, {-0.070940, -0.255550}, { 0.293258, 0.252785},
- { 0.408332, 0.387751}, {-0.381914, -0.358918}, {-0.463621, -0.315560},
- {-0.323681, -0.258465}, { 0.250055, 0.071195}, {-0.405256, -0.429754},
- {-0.135748, -0.251274}, { 0.186827, 0.060177}, { 0.116742, -0.053526},
- {-0.403321, -0.220339}, {-0.414144, -0.021108}, {-0.416877, 0.050184},
- {-0.470083, -0.079564}, {-0.315554, 0.219217}, {-0.273183, 0.138437},
- { 0.253231, 0.306374}, { 0.177802, 0.346298}, { 0.210358, 0.207697},
- {-0.323480, 0.077519}, {-0.193136, 0.048170}, { 0.114492, 0.292778},
- {-0.130766, 0.056677}, {-0.171572, -0.349267}, {-0.370076, -0.536392},
- {-0.311109, -0.389953}, { 0.334928, 0.367664}, { 0.351246, 0.438664},
- { 0.518803, 0.331253}, { 0.437061, 0.327257}, { 0.318906, 0.307389},
- {-0.025972, -0.206758}, { 0.373278, 0.325438}, { 0.473488, 0.389441},
- { 0.478553, 0.477990}, { 0.332783, 0.153825}, { 0.212098, 0.452336},
- { 0.161522, -0.011212}, { 0.209368, 0.020687}, {-0.086262, 0.204493},
- {-0.388643, 0.133640}, {-0.177016, 0.134404}
-};
-
-static const float lsf_cb4[128][2] = {
- {-0.003594, -0.022447}, { 0.070651, 0.028334}, {-0.290374, -0.018347},
- {-0.224495, -0.370312}, {-0.269555, -0.131227}, {-0.122714, -0.267733},
- { 0.173325, 0.138698}, { 0.161946, 0.020687}, { 0.111706, 0.022510},
- { 0.097638, 0.056049}, { 0.139754, 0.059920}, { 0.056549, -0.050586},
- { 0.036301, 0.021501}, {-0.066347, 0.012324}, {-0.066972, 0.096136},
- {-0.120062, -0.084201}, { 0.011225, 0.047425}, {-0.012846, -0.067390},
- {-0.116201, 0.122874}, {-0.027819, 0.035453}, {-0.024743, 0.072835},
- {-0.034061, -0.001310}, { 0.077469, 0.081609}, { 0.128347, 0.139584},
- { 0.183416, 0.086563}, {-0.155839, -0.053775}, {-0.190403, -0.018639},
- {-0.202548, -0.062841}, {-0.373733, -0.275094}, {-0.394260, -0.186513},
- {-0.465700, -0.220031}, { 0.064400, -0.095825}, {-0.262053, -0.199837},
- {-0.167233, -0.094402}, { 0.048600, 0.057567}, {-0.007122, 0.168506},
- { 0.050938, 0.156451}, {-0.060828, 0.147083}, {-0.171889, 0.195822},
- {-0.218934, 0.138431}, {-0.270532, 0.195775}, {-0.405818, 0.075643},
- {-0.440187, 0.193387}, {-0.484968, 0.157607}, {-0.480560, 0.067230},
- {-0.436757, -0.111847}, {-0.040731, -0.040363}, {-0.202319, -0.170457},
- {-0.158515, -0.134551}, {-0.356709, -0.378549}, {-0.268820, -0.289831},
- {-0.188486, -0.289306}, {-0.148139, -0.177616}, {-0.071591, -0.191128},
- {-0.052270, -0.150589}, {-0.020543, -0.116220}, { 0.039584, -0.012592},
- {-0.268226, 0.042704}, {-0.209755, 0.069423}, {-0.168964, 0.124504},
- {-0.363240, 0.188266}, {-0.524935, -0.025010}, {-0.105894, -0.002699},
- {-0.251830, -0.062018}, {-0.310480, -0.082325}, { 0.014652, 0.083127},
- {-0.136512, 0.033116}, {-0.073755, -0.025236}, { 0.110766, 0.095954},
- { 0.002878, 0.011838}, {-0.074977, -0.244586}, {-0.047023, -0.081339},
- {-0.183249, 0.029525}, { 0.263435, 0.206934}, {-0.156721, -0.229993},
- {-0.112224, -0.208941}, {-0.116534, -0.123191}, {-0.073988, -0.111668},
- { 0.029484, -0.137573}, {-0.009802, -0.161685}, {-0.023273, 0.114043},
- {-0.332651, 0.049072}, {-0.394009, 0.018608}, {-0.433543, -0.035318},
- {-0.368459, -0.108024}, {-0.350215, -0.037617}, {-0.321140, -0.178537},
- { 0.020307, -0.048487}, {-0.210512, -0.232274}, {-0.082140, -0.065443},
- { 0.081961, -0.009340}, { 0.146794, 0.101973}, { 0.213999, 0.124687},
- { 0.100217, -0.054095}, {-0.114411, -0.041403}, {-0.097631, 0.037061},
- {-0.099651, -0.157978}, {-0.215790, -0.116550}, {-0.107100, 0.076300},
- { 0.084653, 0.126088}, { 0.246439, 0.091442}, { 0.160077, 0.188536},
- { 0.273900, 0.279190}, { 0.320417, 0.232550}, { 0.132710, -0.018988},
- { 0.018950, -0.091681}, {-0.032073, -0.202906}, { 0.212789, 0.178188},
- { 0.208580, 0.239726}, { 0.049420, 0.099840}, {-0.145695, -0.010619},
- {-0.132525, -0.322660}, { 0.019666, 0.126603}, { 0.260809, 0.147727},
- {-0.232795, -0.001090}, {-0.049826, 0.225987}, {-0.154774, 0.076614},
- { 0.045032, 0.221397}, { 0.321014, 0.161632}, {-0.062379, 0.053586},
- { 0.132252, 0.246675}, { 0.392627, 0.271905}, {-0.264585, 0.102344},
- {-0.327200, 0.121624}, {-0.399642, 0.124445}, {-0.108335, 0.179171},
- { 0.100374, 0.182731}, { 0.203852, 0.049505}
-};
-
-static const float lsf_cb5[32][2] = {
- {-0.047705, 0.008002}, { 0.011332, 0.065028}, {-0.021796, -0.034777},
- {-0.147394, -0.001241}, {-0.001577, 0.020599}, {-0.083827, -0.028975},
- {-0.177707, 0.066046}, {-0.043241, -0.165144}, { 0.053322, 0.096519},
- {-0.097688, 0.106484}, {-0.023392, 0.111234}, {-0.146747, -0.159360},
- { 0.027241, -0.011806}, {-0.043156, 0.057667}, { 0.019516, -0.062116},
- { 0.025990, 0.162533}, { 0.091888, 0.009720}, {-0.098511, 0.036414},
- { 0.013722, -0.116512}, { 0.054833, -0.180975}, { 0.119497, 0.128774},
- { 0.118378, -0.125997}, { 0.065882, -0.030932}, { 0.120581, -0.039964},
- {-0.050561, -0.088577}, { 0.050134, 0.033194}, {-0.129654, -0.075112},
- {-0.225334, -0.040234}, { 0.070629, -0.084455}, { 0.095508, 0.063548},
- { 0.150514, 0.034366}, { 0.186092, -0.069272}
-};
-
-static const float *lsf_codebooks[] = {
- lsf_cb1[0], lsf_cb2[0], lsf_cb3[0], lsf_cb4[0], lsf_cb5[0]
-};
-
-static const float gain_cb[128][2] = {
- {0.035230, 0.161540}, {0.049223, 0.448359}, {0.057443, 0.809043},
- {0.072434, 1.760306}, {0.111491, 0.566418}, {0.112820, 1.098524},
- {0.143493, 0.726856}, {0.144840, 0.347800}, {0.180341, 1.050010},
- {0.188171, 2.197256}, {0.189771, 0.256947}, {0.198260, 0.484678},
- {0.210622, 0.755825}, {0.220694, 0.590788}, {0.237062, 1.322214},
- {0.255175, 0.338710}, {0.298980, 0.919051}, {0.314627, 0.520961},
- {0.337106, 1.469863}, {0.341422, 2.804546}, {0.363257, 0.736222},
- {0.363881, 0.367640}, {0.369850, 1.937934}, {0.370136, 1.075201},
- {0.397152, 0.549410}, {0.426557, 0.876015}, {0.450686, 0.215588},
- {0.468116, 0.671848}, {0.470495, 1.242034}, {0.474180, 1.739845},
- {0.484875, 0.490564}, {0.498917, 0.971238}, {0.530996, 0.785765},
- {0.539768, 2.130689}, {0.546021, 0.589544}, {0.546632, 3.050846},
- {0.552336, 0.389775}, {0.556302, 1.400103}, {0.559688, 1.105421},
- {0.574140, 0.667513}, {0.595547, 0.828943}, {0.597771, 0.496929},
- {0.617079, 1.863075}, {0.619657, 1.221713}, {0.621172, 0.950275},
- {0.628426, 0.630766}, {0.628689, 4.242164}, {0.640899, 1.529846},
- {0.645813, 0.331127}, {0.653056, 0.748168}, {0.662909, 1.077438},
- {0.669505, 2.631114}, {0.681570, 1.839298}, {0.687844, 0.903400},
- {0.688660, 1.270830}, {0.695070, 0.578227}, {0.697926, 0.428440},
- {0.715454, 0.812355}, {0.729981, 1.539357}, {0.737434, 1.106765},
- {0.740241, 2.033374}, {0.740871, 0.568460}, {0.752689, 0.698461},
- {0.756587, 0.893078}, {0.767797, 0.499246}, {0.768516, 3.712434},
- {0.773153, 1.332360}, {0.786125, 1.042996}, {0.788792, 0.238388},
- {0.790861, 2.273229}, {0.795338, 1.582767}, {0.809621, 0.595501},
- {0.821032, 0.756460}, {0.824590, 0.922925}, {0.826019, 1.186793},
- {0.827426, 1.885076}, {0.830080, 6.088666}, {0.837028, 2.819993},
- {0.845561, 1.490623}, {0.848323, 0.410436}, {0.856522, 0.729725},
- {0.862636, 0.966880}, {0.874561, 1.681660}, {0.874751, 1.177630},
- {0.879289, 2.301300}, {0.886671, 0.613068}, {0.896729, 0.781097},
- {0.904777, 3.484111}, {0.906098, 1.330892}, {0.919182, 1.877203},
- {0.919901, 0.569511}, {0.921772, 1.034126}, {0.922439, 0.376000},
- {0.934221, 1.485214}, {0.938842, 0.869135}, {0.939166, 2.378294},
- {0.958933, 1.122722}, {0.959042, 0.694098}, {0.960995, 1.743430},
- {0.970763, 2.884897}, {0.982881, 0.814506}, {0.990141, 1.330022},
- {0.996447, 1.823381}, {1.000013, 0.967498}, {1.000743, 0.480597},
- {1.008020, 5.095226}, {1.013883, 2.105435}, {1.026438, 0.691312},
- {1.027361, 1.558169}, {1.030123, 3.586526}, {1.033916, 1.118036},
- {1.039315, 2.543360}, {1.068596, 0.836380}, {1.081023, 1.318768},
- {1.093150, 2.267843}, {1.095607, 1.712383}, {1.102816, 1.037334},
- {1.103231, 3.536292}, {1.107320, 0.508615}, {1.150000, 7.999000},
- {1.156731, 1.236772}, {1.168428, 2.268084}, {1.184130, 0.775839},
- {1.210609, 1.511840}, {1.220663, 4.365683}, {1.224016, 0.983179},
- {1.252236, 2.778535}, {1.301176, 1.923126}
-};
-
-static const float pred[4] = {
- 0.200, 0.334, 0.504, 0.691
-};
-
-#endif /* AVCODEC_SIPRDATA_H */
+++ /dev/null
-/*
- * Copyright (C) 2004 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (C) 2006 Robert Edele <yartrebo@earthlink.net>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SNOW_H
-#define AVCODEC_SNOW_H
-
-#include "dsputil.h"
-#include "dwt.h"
-
-#define MID_STATE 128
-
-#define MAX_PLANES 4
-#define QSHIFT 5
-#define QROOT (1<<QSHIFT)
-#define LOSSLESS_QLOG -128
-#define FRAC_BITS 4
-#define MAX_REF_FRAMES 8
-
-#define LOG2_OBMC_MAX 8
-#define OBMC_MAX (1<<(LOG2_OBMC_MAX))
-
-/* C bits used by mmx/sse2/altivec */
-
-static av_always_inline void snow_interleave_line_header(int * i, int width, IDWTELEM * low, IDWTELEM * high){
- (*i) = (width) - 2;
-
- if (width & 1){
- low[(*i)+1] = low[((*i)+1)>>1];
- (*i)--;
- }
-}
-
-static av_always_inline void snow_interleave_line_footer(int * i, IDWTELEM * low, IDWTELEM * high){
- for (; (*i)>=0; (*i)-=2){
- low[(*i)+1] = high[(*i)>>1];
- low[*i] = low[(*i)>>1];
- }
-}
-
-static av_always_inline void snow_horizontal_compose_lift_lead_out(int i, IDWTELEM * dst, IDWTELEM * src, IDWTELEM * ref, int width, int w, int lift_high, int mul, int add, int shift){
- for(; i<w; i++){
- dst[i] = src[i] - ((mul * (ref[i] + ref[i + 1]) + add) >> shift);
- }
-
- if((width^lift_high)&1){
- dst[w] = src[w] - ((mul * 2 * ref[w] + add) >> shift);
- }
-}
-
-static av_always_inline void snow_horizontal_compose_liftS_lead_out(int i, IDWTELEM * dst, IDWTELEM * src, IDWTELEM * ref, int width, int w){
- for(; i<w; i++){
- dst[i] = src[i] + ((ref[i] + ref[(i+1)]+W_BO + 4 * src[i]) >> W_BS);
- }
-
- if(width&1){
- dst[w] = src[w] + ((2 * ref[w] + W_BO + 4 * src[w]) >> W_BS);
- }
-}
-
-#endif /* AVCODEC_SNOW_H */
+++ /dev/null
-/*
- * Sunplus JPEG tables
- * Copyright (c) 2003 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SP5X_H
-#define AVCODEC_SP5X_H
-
-#include <stdint.h>
-
-static const uint8_t sp5x_data_sof[] =
-{
- 0xFF, 0xC0, /* SOF */
- 0x00, 0x11, /* len */
- 0x08, /* bits */
- 0x00, 0xf0, /* height (default: 240) */
- 0x01, 0x40, /* width (default: 240) */
- 0x03, /* nb components */
- 0x01, 0x22, 0x00, /* 21 vs 22 ? */
- 0x02, 0x11, 0x01,
- 0x03, 0x11, 0x01
-};
-
-static const uint8_t sp5x_data_sos[] =
-{
- 0xFF, 0xDA, /* SOS */
- 0x00, 0x0C, /* len */
- 0x03, /* nb components */
- 0x01, 0x00,
- 0x02, 0x11,
- 0x03, 0x11,
- 0x00, /* Ss */
- 0x3F, /* Se */
- 0x00 /* Ah/Al */
-};
-
-static const uint8_t sp5x_data_dqt[] =
-{
- 0xFF, 0xDB, /* DQT */
- 0x00, 0x84, /* len */
- 0x00,
- 0x05, 0x03, 0x04, 0x04, 0x04, 0x03, 0x05, 0x04,
- 0x04, 0x04, 0x06, 0x05, 0x05, 0x06, 0x08, 0x0D,
- 0x08, 0x08, 0x07, 0x07, 0x08, 0x10, 0x0C, 0x0C,
- 0x0A, 0x0D, 0x14, 0x11, 0x15, 0x14, 0x13, 0x11,
- 0x13, 0x13, 0x16, 0x18, 0x1F, 0x1A, 0x16, 0x17,
- 0x1E, 0x17, 0x13, 0x13, 0x1B, 0x25, 0x1C, 0x1E,
- 0x20, 0x21, 0x23, 0x23, 0x23, 0x15, 0x1A, 0x27,
- 0x29, 0x26, 0x22, 0x29, 0x1F, 0x22, 0x23, 0x22,
- 0x01,
- 0x05, 0x06, 0x06, 0x08, 0x07, 0x08, 0x10, 0x08,
- 0x08, 0x10, 0x22, 0x16, 0x13, 0x16, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22
-};
-
-static const uint8_t sp5x_data_dht[] = {
- 0xFF, 0xC4, /* DHT */
- 0x01, 0xA2, /* len */
- 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
- 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x01, 0x00, 0x03,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
- 0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03,
- 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00,
- 0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04,
- 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13,
- 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81,
- 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15,
- 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82,
- 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25,
- 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36,
- 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46,
- 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66,
- 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76,
- 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86,
- 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95,
- 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4,
- 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3,
- 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2,
- 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA,
- 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,
- 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
- 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5,
- 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11, 0x00, 0x02,
- 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05,
- 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01,
- 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06,
- 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22,
- 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1,
- 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62,
- 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25,
- 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28,
- 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
- 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
- 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
- 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
- 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
- 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
- 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
- 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
- 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5,
- 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,
- 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3,
- 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2,
- 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA
-};
-
-
-static const uint8_t sp5x_quant_table[20][64]=
-{
- /* index 0, Q50 */
- { 16, 11, 12, 14, 12, 10, 16, 14, 13, 14, 18, 17, 16, 19, 24, 40,
- 26, 24, 22, 22, 24, 49, 35, 37, 29, 40, 58, 51, 61, 60, 57, 51,
- 56, 55, 64, 72, 92, 78, 64, 68, 87, 69, 55, 56, 80,109, 81, 87,
- 95, 98,103,104,103, 62, 77,113,121,112,100,120, 92,101,103, 99 },
- { 17, 18, 18, 24, 21, 24, 47, 26, 26, 47, 99, 66, 56, 66, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 },
-
- /* index 1, Q70 */
- { 10, 7, 7, 8, 7, 6, 10, 8, 8, 8, 11, 10, 10, 11, 14, 24,
- 16, 14, 13, 13, 14, 29, 21, 22, 17, 24, 35, 31, 37, 36, 34, 31,
- 34, 33, 38, 43, 55, 47, 38, 41, 52, 41, 33, 34, 48, 65, 49, 52,
- 57, 59, 62, 62, 62, 37, 46, 68, 73, 67, 60, 72, 55, 61, 62, 59 },
- { 10, 11, 11, 14, 13, 14, 28, 16, 16, 28, 59, 40, 34, 40, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59 },
-
- /* index 2, Q80 */
- { 6, 4, 5, 6, 5, 4, 6, 6, 5, 6, 7, 7, 6, 8, 10, 16,
- 10, 10, 9, 9, 10, 20, 14, 15, 12, 16, 23, 20, 24, 24, 23, 20,
- 22, 22, 26, 29, 37, 31, 26, 27, 35, 28, 22, 22, 32, 44, 32, 35,
- 38, 39, 41, 42, 41, 25, 31, 45, 48, 45, 40, 48, 37, 40, 41, 40 },
- { 7, 7, 7, 10, 8, 10, 19, 10, 10, 19, 40, 26, 22, 26, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 },
-
- /* index 3, Q85 */
- { 5, 3, 4, 4, 4, 3, 5, 4, 4, 4, 5, 5, 5, 6, 7, 12,
- 8, 7, 7, 7, 7, 15, 11, 11, 9, 12, 17, 15, 18, 18, 17, 15,
- 17, 17, 19, 22, 28, 23, 19, 20, 26, 21, 17, 17, 24, 33, 24, 26,
- 29, 29, 31, 31, 31, 19, 23, 34, 36, 34, 30, 36, 28, 30, 31, 30 },
- { 5, 5, 5, 7, 6, 7, 14, 8, 8, 14, 30, 20, 17, 20, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 },
-
- /* index 4, Q90 */
- { 3, 2, 2, 3, 2, 2, 3, 3, 3, 3, 4, 3, 3, 4, 5, 8,
- 5, 5, 4, 4, 5, 10, 7, 7, 6, 8, 12, 10, 12, 12, 11, 10,
- 11, 11, 13, 14, 18, 16, 13, 14, 17, 14, 11, 11, 16, 22, 16, 17,
- 19, 20, 21, 21, 21, 12, 15, 23, 24, 22, 20, 24, 18, 20, 21, 20 },
- { 3, 4, 4, 5, 4, 5, 9, 5, 5, 9, 20, 13, 11, 13, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 },
-
- /* index 5, Q60 */
- { 13, 9, 10, 11, 10, 8, 13, 11, 10, 11, 14, 14, 13, 15, 19, 32,
- 21, 19, 18, 18, 19, 39, 28, 30, 23, 32, 46, 41, 49, 48, 46, 41,
- 45, 44, 51, 58, 74, 62, 51, 54, 70, 55, 44, 45, 64, 87, 65, 70,
- 76, 78, 82, 83, 82, 50, 62, 90, 97, 90, 80, 96, 74, 81, 82, 79 },
- { 14, 14, 14, 19, 17, 19, 38, 21, 21, 38, 79, 53, 45, 53, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 },
-
- /* index 6, Q25 */
- { 32, 22, 24, 28, 24, 20, 32, 28, 26, 28, 36, 34, 32, 38, 48, 80,
- 52, 48, 44, 44, 48, 98, 70, 74, 58, 80,116,102,122,120,114,102,
- 112,110,128,144,184,156,128,136,174,138,110,112,160,218,162,174,
- 190,196,206,208,206,124,154,226,242,224,200,240,184,202,206,198 },
- { 34, 36, 36, 48, 42, 48, 94, 52, 52, 94,198,132,112,132,198,198,
- 198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
- 198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
- 198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198 },
-
- /* index 7, Q95 */
- { 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 4,
- 3, 2, 2, 2, 2, 5, 4, 4, 3, 4, 6, 5, 6, 6, 6, 5,
- 6, 6, 6, 7, 9, 8, 6, 7, 9, 7, 6, 6, 8, 11, 8, 9,
- 10, 10, 10, 10, 10, 6, 8, 11, 12, 11, 10, 12, 9, 10, 10, 10 },
- { 2, 2, 2, 2, 2, 2, 5, 3, 3, 5, 10, 7, 6, 7, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 },
-
- /* index 8, Q93 */
- { 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 2, 3, 3, 6,
- 4, 3, 3, 3, 3, 7, 5, 5, 4, 6, 8, 7, 9, 8, 8, 7,
- 8, 8, 9, 10, 13, 11, 9, 10, 12, 10, 8, 8, 11, 15, 11, 12,
- 13, 14, 14, 15, 14, 9, 11, 16, 17, 16, 14, 17, 13, 14, 14, 14 },
- { 2, 3, 3, 3, 3, 3, 7, 4, 4, 7, 14, 9, 8, 9, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 },
-
- /* index 9, Q40 */
- { 20, 14, 15, 18, 15, 13, 20, 18, 16, 18, 23, 21, 20, 24, 30, 50,
- 33, 30, 28, 28, 30, 61, 44, 46, 36, 50, 73, 64, 76, 75, 71, 64,
- 70, 69, 80, 90,115, 98, 80, 85,109, 86, 69, 70,100,136,101,109,
- 119,123,129,130,129, 78, 96,141,151,140,125,150,115,126,129,124 },
- { 21, 23, 23, 30, 26, 30, 59, 33, 33, 59,124, 83, 70, 83,124,124,
- 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
- 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
- 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124 }
-};
-
-#if 0
-/* 4NF-M, not ZigZag */
-static const uint8_t sp5x_quant_table_orig[18][64] =
-{
- /* index 0, Q50 */
- { 16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55,
- 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62,
- 18, 22, 37, 56, 68,109,103, 77, 24, 35, 55, 64, 81,104,113, 92,
- 49, 64, 78, 87,103,121,120,101, 72, 92, 95, 98,112,100,103, 99 },
- { 17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99,
- 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 },
-
- /* index 1, Q70 */
- { 10, 7, 6, 10, 14, 24, 31, 37, 7, 7, 8, 11, 16, 35, 36, 33,
- 8, 8, 10, 14, 24, 34, 41, 34, 8, 10, 13, 17, 31, 52, 48, 37,
- 11, 13, 22, 34, 41, 65, 62, 46, 14, 21, 33, 38, 49, 62, 68, 55,
- 29, 38, 47, 52, 62, 73, 72, 61, 43, 55, 57, 59, 67, 60, 62, 59 },
- { 10, 11, 14, 28, 59, 59, 59, 59, 11, 13, 16, 40, 59, 59, 59, 59,
- 14, 16, 34, 59, 59, 59, 59, 59, 28, 40, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59 },
-
- /* index 2, Q80 */
- { 6, 4, 4, 6, 10, 16, 20, 24, 5, 5, 6, 8, 10, 23, 24, 22,
- 6, 5, 6, 10, 16, 23, 28, 22, 6, 7, 9, 12, 20, 35, 32, 25,
- 7, 9, 15, 22, 27, 44, 41, 31, 10, 14, 22, 26, 32, 42, 45, 37,
- 20, 26, 31, 35, 41, 48, 48, 40, 29, 37, 38, 39, 45, 40, 41, 40 },
- { 7, 7, 10, 19, 40, 40, 40, 40, 7, 8, 10, 26, 40, 40, 40, 40,
- 10, 10, 22, 40, 40, 40, 40, 40, 19, 26, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 },
-
- /* index 3, Q85 */
- { 5, 3, 3, 5, 7, 12, 15, 18, 4, 4, 4, 6, 8, 17, 18, 17,
- 4, 4, 5, 7, 12, 17, 21, 17, 4, 5, 7, 9, 15, 26, 24, 19,
- 5, 7, 11, 17, 20, 33, 31, 23, 7, 11, 17, 19, 24, 31, 34, 28,
- 15, 19, 23, 26, 31, 36, 36, 30, 22, 28, 29, 29, 34, 30, 31, 30 },
- { 5, 5, 7, 14, 30, 30, 30, 30, 5, 6, 8, 20, 30, 30, 30, 30,
- 7, 8, 17, 30, 30, 30, 30, 30, 14, 20, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 },
-
- /* index 4, Q90 */
- { 3, 2, 2, 3, 5, 8, 10, 12, 2, 2, 3, 4, 5, 12, 12, 11,
- 3, 3, 3, 5, 8, 11, 14, 11, 3, 3, 4, 6, 10, 17, 16, 12,
- 4, 4, 7, 11, 14, 22, 21, 15, 5, 7, 11, 13, 16, 21, 23, 18,
- 10, 13, 16, 17, 21, 24, 24, 20, 14, 18, 19, 20, 22, 20, 21, 20 },
- { 3, 4, 5, 9, 20, 20, 20, 20, 4, 4, 5, 13, 20, 20, 20, 20,
- 5, 5, 11, 20, 20, 20, 20, 20, 9, 13, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 },
-
- /* index 5, Q60 */
- { 13, 9, 8, 13, 19, 32, 41, 49, 10, 10, 11, 15, 21, 46, 48, 44,
- 11, 10, 13, 19, 32, 46, 55, 45, 11, 14, 18, 23, 41, 70, 64, 50,
- 14, 18, 30, 45, 54, 87, 82, 62, 19, 28, 44, 51, 65, 83, 90, 74,
- 39, 51, 62, 70, 82, 97, 96, 81, 58, 74, 76, 78, 90, 80, 82, 79 },
- { 14, 14, 19, 38, 79, 79, 79, 79, 14, 17, 21, 53, 79, 79, 79, 79,
- 19, 21, 45, 79, 79, 79, 79, 79, 38, 53, 79, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 },
-
- /* index 6, Q25 */
- { 32, 22, 20, 32, 48, 80,102,122, 24, 24, 28, 38, 52,116,120,110,
- 28, 26, 32, 48, 80,114,138,112, 28, 34, 44, 58,102,174,160,124,
- 36, 44, 74,112,136,218,206,154, 48, 70,110,128,162,208,226,184,
- 98,128,156,174,206,242,240,202,144,184,190,196,224,200,206,198 },
- { 34, 36, 48, 94,198,198,198,198, 36, 42, 52,132,198,198,198,198,
- 48, 52,112,198,198,198,198,198, 94,132,198,198,198,198,198,198,
- 198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
- 198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198 },
-
- /* index 7, Q95 */
- { 2, 1, 1, 2, 2, 4, 5, 6, 1, 1, 1, 2, 3, 6, 6, 6,
- 1, 1, 2, 2, 4, 6, 7, 6, 1, 2, 2, 3, 5, 9, 8, 6,
- 2, 2, 4, 6, 7, 11, 10, 8, 2, 4, 6, 6, 8, 10, 11, 9,
- 5, 6, 8, 9, 10, 12, 12, 10, 7, 9, 10, 10, 11, 10, 10, 10 },
- { 2, 2, 2, 5, 10, 10, 10, 10, 2, 2, 3, 7, 10, 10, 10, 10,
- 2, 3, 6, 10, 10, 10, 10, 10, 5, 7, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 },
-
- /* index 8, Q93 */
- { 2, 2, 1, 2, 3, 6, 7, 9, 2, 2, 2, 3, 4, 8, 8, 8,
- 2, 2, 2, 3, 6, 8, 10, 8, 2, 2, 3, 4, 7, 12, 11, 9,
- 3, 3, 5, 8, 10, 15, 14, 11, 3, 5, 8, 9, 11, 15, 16, 13,
- 7, 9, 11, 12, 14, 17, 17, 14, 10, 13, 13, 14, 16, 14, 14, 14 },
- { 2, 3, 3, 7, 14, 14, 14, 14, 3, 3, 4, 9, 14, 14, 14, 14,
- 3, 4, 8, 14, 14, 14, 14, 14, 7, 9, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 }
-};
-#endif
-
-#endif /* AVCODEC_SP5X_H */
+++ /dev/null
-/*
- * SVQ1 decoder
- * ported to MPlayer by Arpi <arpi@thot.banki.hu>
- * ported to libavcodec by Nick Kurshev <nickols_k@mail.ru>
- *
- * Copyright (C) 2002 the xine project
- * Copyright (C) 2002 the ffmpeg project
- *
- * SVQ1 Encoder (c) 2004 Mike Melanson <melanson@pcisys.net>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Sorenson Vector Quantizer #1 (SVQ1) video codec.
- * For more information of the SVQ1 algorithm, visit:
- * http://www.pcisys.net/~melanson/codecs/
- */
-
-#ifndef AVCODEC_SVQ1_H
-#define AVCODEC_SVQ1_H
-
-#include <stdint.h>
-
-#define SVQ1_BLOCK_SKIP 0
-#define SVQ1_BLOCK_INTER 1
-#define SVQ1_BLOCK_INTER_4V 2
-#define SVQ1_BLOCK_INTRA 3
-
-struct svq1_frame_size {
- uint16_t width;
- uint16_t height;
-};
-
-uint16_t ff_svq1_packet_checksum (const uint8_t *data, const int length,
- int value);
-
-extern const int8_t* const ff_svq1_inter_codebooks[6];
-extern const int8_t* const ff_svq1_intra_codebooks[6];
-
-extern const uint8_t ff_svq1_block_type_vlc[4][2];
-extern const uint8_t ff_svq1_intra_multistage_vlc[6][8][2];
-extern const uint8_t ff_svq1_inter_multistage_vlc[6][8][2];
-extern const uint16_t ff_svq1_intra_mean_vlc[256][2];
-extern const uint16_t ff_svq1_inter_mean_vlc[512][2];
-
-extern const struct svq1_frame_size ff_svq1_frame_size_table[7];
-
-#endif /* AVCODEC_SVQ1_H */
+++ /dev/null
-/*
- * SVQ1 decoder
- * ported to MPlayer by Arpi <arpi@thot.banki.hu>
- * ported to libavcodec by Nick Kurshev <nickols_k@mail.ru>
- *
- * Copyright (C) 2002 the xine project
- * Copyright (C) 2002 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * svq1 code books.
- */
-
-#ifndef AVCODEC_SVQ1_CB_H
-#define AVCODEC_SVQ1_CB_H
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#include "libavutil/mem.h"
-
-/* 6x16-entry codebook for inter-coded 4x2 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_inter_codebook_4x2)[768] = {
- 7, 2, -6, -7, 7, 3, -3, -4, -7, -2, 7, 8, -8, -4, 3, 4,
- 19, 17, 9, 3,-14,-16,-12, -8,-18,-16, -8, -3, 11, 14, 12, 8,
- 7,-16,-10, 20, 7,-17,-10, 20, -6, 18, 8,-21, -7, 18, 9,-20,
- 25, 3,-20,-14, 29, 7,-18,-13,-29, -4, 21, 14,-31, -6, 20, 14,
- -19,-26,-28,-24, 31, 32, 22, 10, 15, 24, 31, 28,-32,-32,-22,-13,
- 2, -8,-23,-26, -9, 3, 27, 35, 3, 11, 21, 21, 8, -4,-27,-34,
- -30,-31, 12, 47,-29,-30, 13, 47, 38, 30,-17,-46, 34, 26,-19,-46,
- -42,-50,-51,-43, 34, 48, 55, 48, 48, 54, 51, 42,-44,-52,-53,-47,
- 4, 5, 0, -6, -2, -2, 0, 1,-11, -6, -1, -2, 1, 8, 9, 1,
- 0, 1, -6, 5, 8, 1,-12, 2, 7,-14, -7, 8, 5, -8, 0, 8,
- 1, 4, 11, 8,-12, -8, 0, -5, -1, 1, 0, 4,-15, -8, 3, 16,
- 17, 8, -4, -6, 9, -4,-13, -8, 2, 6, 1,-18, -1, 11, 11,-12,
- 6, 0, 2, 0, 14, 6, -7,-21, 1, -1,-13,-20, 1, 1, 10, 21,
- -22, -5, 7, 13,-11, -1, 4, 12, -7, 0, 14, 19, -4, 3, -5,-19,
- -26,-14, 10, 15, 18, 4, -6, -2, 25, 19, -5,-18,-20, -7, 4, 2,
- -13, -6, -1, -4, 25, 37, -2,-35, 5, 4, 1, 1,-21,-36, 2, 43,
- 2, -2, -1, 3, 8, -2, -6, -1, -2, -3, 2, 12, -5, -2, -2, -1,
- -3, -1, -1, -5, -1, 7, 8, -2, 2, 7, 5, -3, 1, 1, -3, -8,
- -3, -1, -3, -2, -2, -3, 2, 13, 15, 0,-11, -6, 3, 0, 0, 0,
- -6, -9, -5, -4, 18, 4, 1, 3, 12, 3, 0, 4,-16, -3, 3, -3,
- -17, 3, 18, 2, -1, -3, -1, -1, -6, 16, -8, 0, -9, 14, -7, 0,
- 3,-13, 14, -5, 3,-13, 14, -4, -7, 20, 14,-23, 8, -7, -8, 4,
- 8,-15,-19, 16,-10, 13, 11, -3, 9, -1, 1, 26, 5,-15,-27, 2,
- -20, 7, 16, -4,-40, 9, 31, 1, 26,-12,-30, -7, 40, -2,-19, 4,
- 6, 0, 0, 0, -6, -2, 1, 2, 0, -1, 0, -6, 9, 0, -2, -1,
- -7, 8, 2, -3, -1, 2, -3, 2, 7, -4, -2, 4, 2, 0, 0, -6,
- -3, -2, 9, 2, -2, -1, 0, -4, -3, -3, 0, -3, -6, 2, 10, 4,
- 3, 0,-10, 8, 0, 0, -4, 4, -1, 1, 4, 2, 3, -7, -9, 7,
- 2, 1, -9, -4, -1, 12, 0, 0, 3, -1, 7, -4, 3,-14, 4, 2,
- -12, -9, 1, 11, 2, 5, 1, 0, 3, 1, 0, 2, 0, 8, 6,-19,
- -6,-10, -7, -4, 9, 7, 5, 7, 6, 21, 3, -3,-11, -9, -5, -2,
- -4, -9,-16, -1, -2, -5, 1, 36, 8, 11, 19, 0, 2, 5, -4,-41,
- -1, -1, -2, -1, -2, -2, 1, 6, 0, 4, 1, -8, 1, 1, 1, 0,
- -2, -3, 4, 0, 2, -1, 3, -3, 1, 3, -4, 1, -1, 3, 0, -5,
- 3, 4, 2, 3, -2, -3, -6, -1, -2, -3, -2, 2, -4, 8, 1, 0,
- -7, 4, 2, 6, -7, -1, 1, 0, -2, 2, -4, 1, 8, -6, 2, -1,
- -6, 2, 0, 2, 5, 4, -8, -1, -1,-11, 0, 9, 0, -2, 2, 2,
- 17, -5, -4, -1, -1, -4, -2, -2, 0,-13, 9, -3, -1, 12, -7, 2,
- 0, -2, -5, 2, -7, -5, 20, -3, 7, 7, -1,-30, 3, 5, 8, 1,
- -6, 3, -1, -4, 2, -2,-11, 18, 0, -7, 3, 14, 20, -3,-18, -9,
- 7, -2, 0, -1, -2, 0, 0, -1, -4, -1, 1, 0, -2, 2, 0, 4,
- 1, -3, 2, 1, 3, 1, -5, 1, -3, 0, -1, -2, 7, 1, 0, -3,
- 2, 5, 0, -2, 2, -5, -1, 1, -1, -2, 4, -1, 0, -3, 5, 0,
- 0, 3, -1, -2, -4, 1, 5, -1, -1, 0, -1, 9, -1, -2, -1, -1,
- -2, 5, 5, -1, -2, 2, -3, -2, 1, 2,-11, 1, 2, 1, 3, 2,
- 2,-10, -1, -2, 4, 2, 4, 1, 4, 5, -5, 1, 0, 6,-11, 1,
- 1, 0, 6, 6, 0, 2, 1,-15, 7, 3, 5, 9,-30, 2, 2, 2,
- -34, 1, 9, 2, 5, 8, 8, 2, 7, 2, 6, 6, 2,-27, 1, 4
-};
-
-/* 6x16-entry codebook for inter-coded 4x4 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_inter_codebook_4x4)[1536] = {
- 4, 0, -6, -7, -4, -8,-13, -9, -8, -8, -1, 6, -2, 5, 22, 27,
- -16, -7, 11, 10,-18, -7, 13, 10,-15, -4, 12, 8, -9, -1, 9, 5,
- -2, 2, 15,-16, -3, 2, 19,-19, -3, 2, 19,-19, -2, 3, 15,-14,
- 17, 22, 22, 16, -6, -7, -5, -2,-12,-16,-16,-12, 1, 1, -1, -3,
- 11,-17, 0, 8, 14,-21, -1, 9, 14,-21, -2, 8, 11,-16, -2, 6,
- 7, -2,-16, 11, 9, -2,-21, 14, 10, -1,-22, 14, 8, -1,-18, 10,
- -10, 16, 3, -9,-13, 20, 4,-11,-14, 21, 4,-10,-11, 16, 3, -8,
- 11, 4, -9, -9, 15, 6,-12,-14, 17, 8,-12,-14, 16, 10, -7,-11,
- 4, 10, 14, 13, -1, 7, 15, 16,-12, -7, 3, 8,-20,-23,-18,-10,
- -10,-18,-26,-25, 4, 1, -6,-11, 13, 15, 11, 3, 12, 15, 13, 8,
- -16,-19,-16,-11, 7, 12, 15, 11, 11, 16, 16, 11, -6, -9,-11,-10,
- 18, 19, 12, 5, 18, 16, 5, -4, 6, 0,-10,-15, -9,-17,-23,-22,
- -10,-14, -1, 21,-11,-17, 0, 29,-11,-16, 1, 30,-10,-14, 0, 23,
- -16,-17,-12, -6,-19,-19,-14, -7, -3, -1, 1, 2, 27, 35, 29, 19,
- -37, -8, 23, 23,-42, -9, 28, 29,-43,-10, 26, 28,-38,-11, 19, 22,
- 32, 16,-16,-33, 39, 20,-18,-37, 38, 19,-19,-38, 32, 15,-17,-34,
- 24, 9, -6, -4, -1,-10, -6, 3, -8, -9, -1, 3, 3, 7, 2, -6,
- -1, -3, -1, 0, -1, 4, 2, -7, -3, 11, 3,-16, 1, 20, 9,-18,
- -3, -8, 6, 12, -5,-10, 7, 13, -6, -9, 5, 7, -5, -5, 2, -1,
- -8, 12, -3, -1,-10, 15, -3, 1,-11, 13, -4, 1,-11, 8, -3, 2,
- 9, 6, -5,-12, 3, 0, -8,-13, -4, -4, -1, -1, -4, 1, 15, 18,
- 9, 13, 14, 12, 4, 3, -1, -2, -2, -5, -8, -5, -7,-11, -9, -4,
- 7, -5, -7, -4, 14, -2, -7, -4, 17, 0, -8, -5, 15, 1, -7, -5,
- -10, -1, 6, 4,-15, -9, 2, 4, 2, -1, -3, 0, 25, 13, -8,-10,
- 7, 11, -3,-16, 7, 11, -3,-15, 6, 7, -2, -9, 4, 2, -3, -5,
- -7, -1, -1, 0, -9, -2, 2, 6,-12, -4, 6, 14,-13, -6, 8, 19,
- -18,-18,-11, -5, -3, 0, 3, 4, 6, 8, 6, 6, 6, 6, 6, 6,
- -5, 3, 13,-10, -6, 1, 15, -9, -6, -3, 15, -6, -6, -6, 10, -3,
- 9, 1, -9, -9, 11, 9, 6, 5, 0, 3, 8, 7,-15,-14, -6, -5,
- -11, -6, 11, 19, -2, -5, -9, -8, 6, 2, -9,-10, 6, 5, 4, 5,
- -7, -3, 8, 15, -1, 3, 10, 15, 5, 5, -1, -2, 4, -2,-21,-25,
- 6, -6, -6, 5, 8, -9, -7, 9, 8,-12, -7, 13, 4,-14, -7, 14,
- -4, -3, 1, 1, -3, -5, -2, -3, 7, 0, -2, -4, 20, 7, -4, -4,
- -3,-20, -6, 10, 6, 0, 0, 1, 5, 8, 5, -1, -3, 0, 0, -2,
- 13, 6, -1, 2, 5, 3, 2, 3, -3, 0, 3, 0,-16, -8, -2, -5,
- -2, -7, -6, 0, -3, -6, -3, 1, -5, -1, 2, -1, -1, 12, 16, 5,
- -7, 1, 9, 8,-10, -2, 5, 3, -6, 2, 7, 3, -4, 0, -1, -7,
- 3, 4, -9,-24, 0, 2, 6, 3, -1, -1, 4, 7, 5, 3, -1, -2,
- 3, 6, -9, 2, 1, 6,-13, 1, 1, 8,-10, 2, 1, 8, -7, 1,
- -3, -3, 2, 22, -2, -3, -5, 12, -2, -3,-10, 2, -3, -1, -4, 2,
- 11, 12, 8, 2, -5, -5, -5, -8, -6, -4, 0, -3, -2, -1, 3, 3,
- 12, -6, -2, -1, 12, -8, -2, -2, 9, -7, 0, -3, 4, -6, 2, -2,
- -19, 1, 12, -3, -4, 4, 5, -4, 6, 1, -2, -1, 4, -4, -2, 7,
- -3, -4, -7, -8, -4, -4, -2, 0, -1, 2, 14, 16, -4, -2, 4, 4,
- -1, 7, 2, -5, -2, 0, -1, 1, 4, -3, -1, 13, 6,-12,-14, 8,
- -1, 5, 4, -5, -2, 5, 3, -9, -2, 7, 4,-12, -1, 7, 4, -9,
- -6, -3, 1, 1, 11, 11, 0, -6, 6, 4, -2, -7,-12,-10, 3, 10,
- -2, -3, -3, -2, 6, 11, 14, 10, -9,-11,-10,-10, 2, 2, 3, 2,
- -7, -5, -7, -1, -1, 2, 0, 7, -1, 1, 0, 9, 3, 4, -5, -1,
- 10, -1,-15, -1, 4, 1, -5, 2, -3, 1, -1, 1, -3, 1, 4, 4,
- 2, -1, 4, 10, 6, 2, -1, 0, 2, 2, -7,-12, -4, 2, 0, -3,
- -1, -4, -1, -8, 3, -1, 2, -9, 4, 0, 5, -5, 2, 0, 8, 3,
- 3, 2, 1, 1, 4, -2, 0, 3, 2, -1, 4, 1, 0, 6, -1,-25,
- -1, -2, -2, -4, -3, 0, -1, -4, -1, -1, -4, 2, 0, -6, 2, 25,
- -11, -1, 5, 0, 7, 0, -2, 2, 10, -1, -3, 4, -5, -5, -2, -1,
- 0, 6, 3, -1, -2, -1, -1, 1, -1, -7,-12, -5, 8, 6, 2, 4,
- 2, 6, -1, -6, 9, 10, -1, -4, 1, 0, -4, 0, 3, -2, -9, -5,
- -4, 3, 4, 0, -4, 3, 3, 0,-11, 0, 3, 2,-11, 3, 7, 2,
- 2, -4, 7, 3, 1, -8, 7, 1, -1,-12, 4, 1, 3, -9, 2, 2,
- 2, -2, -2, 9,-17, -3, 3, 1, -4, 7, 1, -6, 5, 4, -1, 3,
- -1, 2, 0, -4, -7, 8, 12, -1, -2, 5, 4, -5, 3, -5, -8, -2,
- 0, 0, -5, -2, -2, -8, 3, 27, -1, -4, -3, 6, -3, 1, -2, -7,
- 4, 4, 1, -1, -7,-10, -7, -3, 10, 10, 5, 3, -2, -2, -4, -3,
- 0, 1, 5, 7, 4, -2,-16,-20, 0, 4, 7, 8, 2, 0, -2, -1,
- -2, 1, 3, 17, -3, 1, -2, -1, -1, -2, -1, -2, -1, -5, -1, 0,
- 5, -3, 1, 0, 6, -2, 0, 0, -1, -2, 0, -3,-11, 1, 8, -1,
- 3, 0, 0, 0, 0, 2, 4, 1, 2, 0, 6, 1, -2,-18, -3, 2,
- -14, 0, 6, 1, -5, -2, -1, 1, -1, 1, 0, 1, 1, 7, 4, 0,
- -1, 0, 1, -4, 1, 8, 3, -4, -3, 4, 1, 3, -6, 1, -4, 1,
- 1,-12, 3, 3, -1,-10, 0, -1, 2, 0, 2, 1, 3, 2, 2, 4,
- 3, 0, 0, 3, 2, 0, -2, 1, 5, 2, -5, 0, 6, -1,-14, -1,
- -2, -6, -3, -3, 2, -1, 4, 5, 6, -1, -2, 0, 4, 4, -1, -5,
- -4, 1,-11, 0, -1, 2, -4, 1, 2, -3, 3, -1, 1, -2, 15, 0,
- 1, -1, 0, -2, 1, -4, -7, 1, -2, -6, -1, 21, -2, 2, -1, 1,
- 21, -1, -2, 0, -1, -3, 1, -2, -9, -2, 2, -1, 2, 1, -4, -1,
- 1, 8, 2, -6,-10, -1, 4, 0, -4, -3, 3, 3, 5, 0, -1, -1,
- 3, 2, 1, -2, -2, -2, 4, 3, 5, 2, -4,-17, 0, -2, 4, 3,
- -7, -4, 0, 3, 9, 9, 2, -1,-11, -6, 0, -1, 5, 1, 0, 1,
- 0, 17, 5,-11, 3, -2, -6, 0, 2, -2, -4, 1, -4, 1, 2, -1,
- -5, -1, -5, -3, -3, 5, -3, -2, 4, 16, 2, -5, -2, 5, -1, -1,
- 0, 0, -4, 1, -1, 2, 5, 11, -1, -1, -2, 1, -4, -2, -3, -1,
- -5, -1, 10, 0, 6, 1, 0, -3, 0, -4, 1, 0, -2, -4, 3, -1,
- 6, 9, 3, 0, -2, 1, -2, 0, -2, -3, -2, -2, 1, 0, 1, -6,
- 1, 0, 2, 1, -1, 3, -2, 1, 0, -1,-15, 0, -1, 5, 2, 6,
- 2, 0, 2, 2, 0,-12, -4, 6, 0, 1, 4, -1, 1, 2, 1, -4,
- 1, -2, -7, 0, 0, 0, 0, -1, -5, 2, 11, 3, 1, 3, 0, -6,
- 0, -3, -9, -4, 1, 3, -1, 0, 4, 1, -2, 0, 7, -3, -1, 6,
- 1, -2, 6, 2, 0, -1, 3, -2, -2, 4, 0, 2, -1, 2,-14, 2,
- 2, 2, 0, -1, -2, 3, -3,-14, 0, 2, 3, -3, 5, 1, 3, 2,
- 1, -3, 4,-14, 1, -2, 11, -1, 0, -1, 3, 0, -1, 1, 0, 2,
- -2, 3, -3, 2, -4, -1, -4, 3, -1, 2, 1, 3, -6, -2, 2, 7,
- -2, 1, 2, 0, -2, 0, 0, -1, 12, 5, -1, 2, -8, -1, 1, -7,
- 2, -2, -4, 2, 11, 0,-11, -2, 3, 1, -3, -1, 0, 3, 1, -1,
- 0, 3, 0, -2, 0, -6, -1, -3, 12, -7, -2, 0, 7, -2, 1, 1,
- 1, 2, 2, 2, -1, 2, 0, 2,-23, 0, 4, 0, 3, 2, 1, 3,
- -4, -5, -1, 5, -3, 5, 10, -1, 0, 0, 3, -4, 1, -1, 2, -5
-};
-
-/* 6x16-entry codebook for inter-coded 8x4 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_inter_codebook_8x4)[3072] = {
- 9, 8, 4, 0, -3, -4, -4, -3, 9, 8, 4, -1, -4, -5, -5, -3,
- 8, 7, 3, -2, -5, -5, -5, -4, 6, 4, 1, -2, -4, -5, -4, -3,
- -12,-14,-11, -4, 1, 5, 6, 6, -8,-10, -7, -5, -2, 1, 1, 1,
- 5, 4, 3, 1, 0, 0, -1, -1, 13, 13, 9, 6, 3, 0, -1, -2,
- -4, -4, -3, -1, 1, 4, 8, 11, -5, -6, -4, -2, 0, 3, 8, 12,
- -7, -7, -6, -4, -2, 2, 7, 10, -7, -7, -5, -4, -2, 1, 5, 8,
- -3, -2, -1, 1, 3, 6, 7, 6, 2, 3, 5, 7, 8, 8, 6, 4,
- 4, 5, 4, 3, 1, -2, -6, -7, 1, 0, -2, -7,-10,-14,-17,-16,
- -5, -4, 1, 8, 9, 3, -3, -7, -7, -6, 1, 11, 12, 5, -3, -8,
- -8, -7, 0, 9, 11, 5, -3, -7, -8, -6, -1, 5, 8, 4, -2, -6,
- -4, -5, -7, -8, -9, -9, -8, -6, -4, -5, -6, -7, -7, -6, -4, -2,
- 0, 1, 2, 3, 5, 8, 10, 9, 1, 2, 3, 6, 9, 12, 14, 13,
- 5, 6, 6, 5, 4, 3, 2, 1, 5, 6, 7, 7, 6, 6, 6, 4,
- -1, 0, 1, 1, 3, 5, 5, 5,-13,-16,-17,-17,-14,-10, -6, -4,
- 9, 11, 13, 16, 15, 13, 12, 10, -4, -5, -6, -7, -7, -7, -6, -5,
- -6, -6, -7, -7, -7, -7, -6, -5, -2, -1, 0, 0, 0, 0, 0, -1,
- -11,-13,-15,-16,-16,-14,-12,-10, 2, 3, 4, 5, 4, 3, 3, 3,
- 6, 7, 8, 8, 8, 7, 6, 5, 3, 4, 3, 3, 3, 3, 3, 3,
- 3, 4, 4, 1, -2, -7,-13,-17, 5, 7, 7, 5, 1, -5,-13,-19,
- 6, 8, 9, 8, 5, -1, -9,-16, 6, 8, 10, 10, 7, 2, -4,-11,
- 18, 9, -1,-10,-13, -9, -4, 0, 22, 12, -1,-12,-15,-10, -4, 2,
- 23, 13, 0,-10,-13, -9, -3, 2, 20, 12, 2, -6, -9, -6, -2, 2,
- -6, -6, -6, -7, -7, -7, -7, -6, -6, -7, -8, -8, -9, -9, -9, -8,
- -3, -3, -3, -3, -3, -3, -3, -3, 12, 15, 18, 21, 21, 19, 17, 14,
- 14, 16, 18, 18, 18, 16, 15, 13, 5, 6, 6, 5, 5, 4, 4, 3,
- -6, -7, -9,-10,-10,-10, -9, -7,-10,-11,-13,-14,-14,-13,-12,-10,
- -27,-17, -4, 5, 9, 10, 10, 7,-32,-19, -3, 7, 11, 12, 11, 8,
- -30,-16, -2, 8, 12, 12, 10, 7,-23,-12, 0, 7, 10, 11, 9, 6,
- 16, 17, 16, 12, 6, -1, -8,-12, 17, 18, 15, 10, 1, -8,-15,-18,
- 15, 14, 10, 4, -5,-14,-20,-23, 10, 8, 4, -1, -9,-16,-21,-22,
- -10,-12,-12,-11, -5, 4, 14, 20,-11,-13,-15,-12, -4, 7, 19, 27,
- -11,-13,-14,-11, -3, 8, 21, 28,-10,-11,-12, -9, -2, 8, 18, 25,
- -1, -1, -1, 1, 4, 6, 6, 5, 0, 0, 0, 2, 4, 3, 1, -2,
- 0, 0, 2, 4, 4, -1, -7,-10, 0, 0, 3, 5, 3, -3,-11,-15,
- -14,-13, -8, -1, 3, 3, -1, -4, -5, -4, -1, 4, 8, 8, 3, 0,
- 3, 2, 2, 3, 4, 5, 3, 1, 5, 3, 0, -2, -2, -1, -1, -1,
- 9, 1, -6, -6, -5, -3, -2, -1, 12, 1, -6, -6, -4, -2, -1, 0,
- 14, 4, -4, -4, -2, -2, -1, -1, 14, 6, -1, -1, -1, -1, -1, -1,
- 4, 6, 8, 10, 11, 9, 7, 5, -1, -1, -1, 0, 0, -1, -1, -2,
- -2, -4, -4, -5, -5, -5, -5, -4, -2, -3, -3, -4, -4, -3, -2, -1,
- 2, 3, 4, 4, 3, 1, 0, 0, -1, 1, 4, 5, 6, 5, 4, 3,
- -8, -6, -2, 2, 3, 4, 4, 3,-14,-13, -9, -5, -2, -1, 0, 0,
- -3, -4, -5, -4, 0, 7, 12, 13, -3, -4, -5, -5, -2, 4, 9, 10,
- -2, -3, -4, -5, -4, -1, 3, 4, -1, -1, -2, -3, -3, -2, 0, 1,
- 9, 5, -2, -8,-11,-10, -7, -4, 12, 10, 6, 2, 0, -1, 0, 0,
- 2, 2, 3, 4, 3, 1, 1, 1, -9, -8, -4, 0, 1, 2, 1, 0,
- 6, 8, 8, 5, 1, -5,-11,-13, 0, 1, 2, 2, -1, -4, -8,-11,
- -3, -2, 1, 3, 3, 1, -1, -4, -2, -1, 2, 5, 6, 6, 4, 1,
- 3, 4, 5, 5, 4, 1, -3, -6, 5, 6, 4, 2, 2, 2, 0, -3,
- 6, 5, 0, -5, -5, -2, -1, -2, 7, 4, -3,-11,-12, -7, -3, -2,
- 1, 0, -1, -1, -1, 0, 0, 0, 2, 3, 4, 4, 5, 5, 4, 3,
- -7, -9, -9,-10,-10, -9, -7, -6, 3, 4, 5, 6, 5, 5, 5, 5,
- -7, -7, -7, -7, -6, -6, -5, -4, -5, -4, -3, -1, -1, -1, 0, 0,
- -3, -2, 1, 4, 5, 5, 5, 5, -2, -1, 3, 6, 9, 10, 10, 9,
- -14, 1, 10, 3, -2, 0, 1, 1,-16, 2, 13, 3, -3, -1, 1, 0,
- -15, 2, 12, 3, -4, -2, 1, 1,-10, 3, 10, 2, -3, -1, 1, 1,
- 0, 1, 4, 2, -5,-10, -3, 11, -1, 1, 4, 2, -6,-13, -2, 15,
- -1, 0, 3, 1, -6,-12, -1, 15, -1, 1, 2, 1, -4, -8, 0, 11,
- 10, 5, -2, -2, 2, 5, 1, -4, 7, 0, -8, -6, 1, 5, 2, -4,
- 2, -5,-12, -7, 2, 7, 4, -1, -1, -7,-10, -4, 4, 9, 7, 2,
- -5, -5, -4, -6, -6, -5, -5, -3, -1, -2, -2, -4, -5, -6, -5, -4,
- 6, 7, 7, 4, 0, -2, -3, -3, 13, 14, 13, 10, 5, 1, -1, -2,
- 1, 1, 2, 2, 2, 2, 2, 2, -5, -6, -8, -9, -9, -8, -7, -6,
- 7, 9, 10, 11, 11, 9, 7, 5, -1, -2, -3, -3, -4, -4, -4, -3,
- -1, -1, 0, 0, 0, 0, -1, -1, -3, -3, -4, -5, -4, -3, -3, -2,
- 2, 1, -1, -3, -3, -2, -1, 0, 12, 12, 8, 3, 1, 0, 0, 1,
- -6, -8, -8, -6, -2, 2, 6, 8, 1, 1, -1, -2, 0, 3, 5, 7,
- 3, 3, 1, -1, -1, 0, 0, 2, 0, 1, 0, -1, -1, -1, -2, -1,
- 1, 0, 0, 0, 0, 0, 2, 4, 2, 1, 3, 4, 3, 1, 0, 2,
- 2, 1, 0, 0, -1, -1, 0, 3, 5, 1, -6,-12,-13, -8, -1, 4,
- -2, 0, -1, -2, -1, 0, 2, 3, -6, -3, -2, 0, 1, 1, 1, 1,
- -9, -5, 0, 4, 5, 3, 1, 0, -8, -3, 3, 7, 8, 4, 1, 0,
- 1, 2, 2, 3, 3, 1, -1, -3, 4, 5, 5, 6, 6, 5, 2, 0,
- 0, 0, 0, 0, 1, 0, -2, -4, -3, -3, -4, -3, -3, -4, -7, -8,
- 14, 12, 6, -1, -3, -3, 0, 0, 7, 5, 1, -3, -5, -4, -2, -1,
- -2, -2, -2, -2, -2, -2, -1, -1, -6, -4, -1, 1, 1, 1, 0, -1,
- 2, 2, 1, -3, -6, -7, -6, -3, 1, 0, -1, -3, -2, 1, 4, 6,
- 0, 0, 1, 2, 4, 7, 8, 7, 0, 0, 0, 0, -1, -4, -7, -8,
- 0, 2, 1, -2, -3, -3, -2, -1, -1, 1, 0, -3, -5, -2, 0, 2,
- -2, -1, -2, -5, -4, 1, 6, 9, -3, -2, -3, -4, -2, 5, 11, 13,
- -4, -2, 2, 6, 4, -3,-10,-14, -2, -1, 1, 4, 4, 1, -1, -2,
- 0, 0, -1, -2, -2, 0, 4, 6, 2, 2, 0, -3, -3, 0, 5, 9,
- -4, -4, -2, 1, 6, 9, 3, -7, -2, -2, -2, -1, 4, 8, 0,-11,
- 1, 1, 0, 0, 2, 6, -1,-10, 2, 2, 1, 0, 2, 4, 0, -7,
- -1, -2, -3, -6, -7, -8, -8, -8, 2, 3, 3, 1, -1, -2, -3, -4,
- 5, 5, 5, 4, 3, 2, 0, -1, 3, 3, 3, 3, 2, 2, 1, 1,
- 3, 3, 2, -2, -3, 0, 7, 10, 1, 2, 2, -2, -5, -4, 0, 3,
- 0, 3, 4, 2, -3, -5, -6, -4, 0, 2, 4, 4, 1, -4, -7, -7,
- 2, 4, 5, 5, 5, 5, 6, 6, -4, -4, -3, -5, -5, -3, -3, -2,
- -3, -4, -4, -5, -4, -2, -2, -2, 1, 1, 0, 0, 2, 4, 5, 4,
- -2, 0, 3, 4, 4, 3, 2, 2, -9, -7, -4, 0, 3, 6, 6, 6,
- -5, -5, -3, -2, 0, 1, 3, 4, 5, 5, 2, -2, -4, -6, -5, -3,
- 1, -6, -4, 7, 5, -2, -2, 1, 5, -5, -4, 6, 4, -5, -4, 1,
- 5, -5, -4, 6, 4, -5, -3, 1, 1, -7, -3, 8, 7, -1, -3, 1,
- -8, -7, -4, 0, 2, 4, 5, 5, 5, 6, 5, 2, -1, -5, -7, -7,
- 5, 6, 4, 1, -3, -5, -6, -5, -7, -7, -5, -2, 1, 6, 9, 10,
- 6, 3, 0, 1, 3, 0, -8,-14, 3, 0, -1, 1, 4, 3, 0, -4,
- 1, 0, 0, 1, 2, 1, 1, 1, -1, -1, 1, 2, 1, -1, -1, 0,
- 1, 1, 1, 1, 0, -2, -3, 0, 1, 2, 1, 0, -2, -8, -9, -4,
- 1, 3, 3, 2, 1, -3, -3, 1, 0, 1, 1, 1, 1, 1, 4, 8,
- 2, 5, 9, 7, 2, -1, -1, 1, -4, -1, 1, 0, -3, -4, -1, 2,
- -3, 0, 3, 3, 0, -1, 0, 2, -4, -1, 1, 1, -2, -4, -5, -4,
- 1, -1, -2, -2, -1, 2, 4, 5, 2, 1, 1, 0, -1, -1, 0, 0,
- 2, 3, 4, 5, 4, 2, 1, 0, -9, -9, -6, -3, -1, -1, -1, -1,
- -6, -6, 4, 7, 0, -2, -1, -2, -1, -2, 5, 6, -1, -2, 0, -1,
- 4, -1, 1, 0, -4, -2, 0, -2, 7, 1, -1, -2, -3, 1, 3, 1,
- 4, 2, 1, 3, 3, 1, 1, 2, 2, -2, -4, 0, 3, 1, 0, 0,
- 1, -4, -8, -4, 1, 2, 1, 0, 2, -3, -9, -6, 0, 3, 3, 2,
- -1, -1, 0, -1, -1, 0, 1, 2, 3, 1, -4, -8, -7, -3, 1, 2,
- 2, -1, -3, -2, -1, 0, 1, 0, -1, 0, 5, 11, 9, 3, -1, -3,
- -1, -2, -2, -1, 1, 1, 1, 1, 0, -1, 0, 3, 6, 6, 5, 5,
- 2, 1, -1, -1, -2, -5, -6, -4, 2, 2, 2, 1, -1, -4, -5, -5,
- -1, -3, -6, -7, -6, -4, -1, 1, 5, 5, 3, 4, 4, 3, 4, 5,
- -1, -2, -3, -2, -2, -2, 0, 1, 0, 0, 0, 0, 0, 1, 2, 3,
- -6, -6, -4, -1, 2, 2, 2, 2, -6, -7, -5, -2, 0, -1, -1, 0,
- 2, 2, 2, 4, 4, 3, 3, 4, 2, 1, 0, -1, 0, 0, 2, 4,
- 12, 5, -5, -8, -5, 0, 2, 2, 2, -3, -6, -3, 0, 0, -1, -2,
- -2, -3, -1, 3, 4, 1, -2, -3, 2, 2, 3, 4, 3, 1, -1, -1,
- 3, 2, 1, 0, 1, 4, 3, 0, 4, 3, 0, -5, -6, 0, 3, 3,
- 2, 3, 1, -7,-12, -6, 1, 3, 1, 3, 4, -1, -6, -4, 0, 1,
- -9, -4, 2, 6, 7, 4, 1, 0, -7, -1, 4, 6, 4, 0, -3, -3,
- -6, 0, 4, 4, 1, -2, -3, -2, -4, 1, 3, 2, 0, -2, -1, 0,
- 0, 5, 2, -5, -3, 3, 1, -4, -2, 4, 2, -6, -3, 6, 4, -3,
- -1, 5, 3, -5, -1, 7, 3, -4, -1, 2, 0, -6, -3, 5, 3, -3,
- -8, -3, 3, 5, 3, 1, -2, -2, 2, 4, 4, -2, -4, -3, 1, 3,
- 2, 1, -3, -5, -3, 3, 4, 3, -5, -6, -5, 3, 10, 8, -1, -5,
- 0, 3, 2, -4, -9, -7, 0, 6, -5, -1, 5, 7, 4, -1, -3, -3,
- -5, -5, -2, 3, 6, 5, -1, -4, 9, 6, 0, -4, -2, 1, 1, -1,
- -1, -1, -1, 1, 1, 0, -1, 0, -1, 0, 0, 0, 0, -1, -1, 0,
- 2, 1, -2, -1, 1, 1, 0, 0, 12, 8, 2, -1, -1, -4, -7, -7,
- 2, 1, 3, 6, 7, 4, 2, 0, 1, 0, -1, 0, -1, -4, -7, -8,
- 0, 0, -1, 0, 0, 0, -1, -3, 0, 0, 0, 0, 1, 1, 0, -2,
- -1, 0, 1, 1, 0, 0, -1, -2, 0, 0, -1, -3, -4, -3, -1, 1,
- -1, 0, 0, 0, 1, 4, 10, 12, -1, 0, -2, -2, -3, -3, -1, 1,
- -3, -1, -2, -4, 2, 9, 9, 7, -3, 0, -1, -3, 0, 2, -1, 1,
- -1, 1, -2, -3, 0, -1, -3, 0, 0, 0, -3, -2, 0, -1, -1, 1,
- -1, -2, -1, -1, -2, -1, -1, -2, 2, -1, -2, -1, 0, 1, 0, -2,
- 3, -1, -2, 2, 5, 3, -1, -3, 1, -5, -5, 1, 6, 6, 2, 0,
- 1, 2, 0, -1, 0, 1, 0, -2, -5, -3, -1, 0, 1, 2, 1, -2,
- -7, -5, -2, -2, -2, -2, 0, 1, -1, 0, 1, 1, 0, 3, 9, 12,
- 0, 6, 5, 1, -2, -3, 0, 3, 0, 6, 5, 1, 1, 1, 2, 3,
- -5, -2, -2, -3, 0, 0, 0, 0, -6, -3, -3, -2, 0, 0, -1, -2,
- 4, 4, 2, 1, 0, -1, -1, 0, -2, -2, 0, 1, 2, 1, 1, 0,
- 2, 2, 1, -1, -3, -5, -9,-10, 2, 1, -1, -1, 1, 4, 4, 1,
- 4, 0, -2, -2, -2, -2, -1, 0, 7, 1, -4, -3, -2, 0, 1, 1,
- 10, 5, -1, -2, 0, 1, 1, 0, 5, 1, -3, -4, -3, -1, -1, -2,
- 2, 1, -1, -3, -3, 1, 1, -1, -2, -1, 3, 0, -1, 1, 1, 0,
- -3, 1, 7, 2, -3, -2, -1, 0, -2, 4, 8, -1, -8, -5, 0, 2,
- -4, -1, 1, 2, 1, -3, -4, -2, -5, -3, -2, 1, 4, 4, 4, 6,
- -3, -2, -4, -3, 0, 1, 1, 2, 2, 2, 2, 1, 2, 1, -1, -1,
- -4, -1, 0, -1, -3, -3, -1, -1, 1, 4, 4, 2, 0, -1, -2, -3,
- 4, 6, 5, 3, 2, 1, -2, -4, 0, 1, 1, 1, 1, -1, -4, -6,
- 1, 2, 2, -1, -6, -5, -1, 2, -3, -2, 1, 1, -4, -3, 2, 5,
- -2, -1, 2, 2, -3, -4, 0, 3, -2, -2, 2, 6, 5, 2, 1, 2,
- 2, -3, -3, 0, 0, 2, 3, 1, 3, -1, 1, 3, 1, 2, -1, -5,
- -5, -7, -4, -2, 1, 8, 8, 1, -1, 0, 2, 0, -3, 0, 1, -3,
- -2, -5, -5, -2, -3, -1, 0, -2, -1, -4, 0, 4, 0, 2, 4, 0,
- 0, 0, 8, 10, 2, 1, 3, -1, -4, -3, 2, 3, -3, -3, 1, -1,
- 1, -2, -4, 2, 7, 3, -2, -1, 6, 4, -2, -1, 2, 0, -1, 3,
- 1, 1, -2, -2, -2, -5, -3, 4, -6, -2, 1, 1, -1, -4, -2, 4,
- -2, -1, -2, -2, 0, 1, 0, -2, -1, 1, 0, -1, 0, 0, -1, -3,
- 0, 1, -2, -4, -3, -1, 0, 0, 6, 8, 5, 0, 0, 1, 2, 3,
- -2, -2, 2, 5, 2, 0, 0, 1, 2, -2, -2, -1, -1, 1, 2, 4,
- 2, -1, 0, 1, 0, 0, 0, 1, -8, -7, -1, 1, -1, -1, 1, 3,
- 0, 3, 6, 2, -2, 1, 2, 0,-10, -7, -1, 0, -3, -1, 2, 1,
- 0, 0, 2, 2, 1, 1, 1, -1, 3, 0, -2, -2, 0, 2, 1, 0,
- 8, 1, 0, 0, -2, -3, -1, 0, 2, -2, 2, 5, 1, -2, -1, 1,
- -3, -6, -3, -1, -3, -3, -1, 2, 2, 0, 1, 2, 2, 1, 0, 0,
- 1, -1, -1, -2, -1, 0, 1, 0, 15, 9, 2, -1, -2, -3, -3, -3,
- 0, -3, -2, 0, 0, -1, -1, -1, 1, 0, 1, 0, 0, -1, -1, -1,
- 0, 2, 2, -2, -3, -3, -7, -8, 0, 2, 2, 0, 1, 2, 1, 1,
- 1, 2, 2, 2, 3, 1, 0, 3, 1, 0, -1, -2, -1, -2, 0, 5,
- -11, -6, -1, 1, 2, 3, 1, -3, 1, 4, 3, -1, -2, 1, 2, -1,
- 2, 2, 1, -1, -2, 0, 1, -1, 0, 0, -1, -1, 0, 2, 3, 2,
- 1, 1, 2, 1, -1, 1, 0, -4, 0, 0, 0, -2, -2, 2, 4, -2,
- -2, -3, 0, 0, -1, 2, 1, -6, 0, 2, 5, 5, 3, 2, -1, -7,
- 4, 2, 0, 0, 3, 3, 1, -1, 0, -1, -1, 3, 6, 4, 1, -1,
- -2, -2, 0, 2, 2, 0, -2, -2, -1, 0, -1, -5, -7, -5, -1, 1,
- 5, -1, -2, 0, 2, 4, 2, -5, 0, -5, -2, 2, 1, 2, 0, -6,
- 6, 1, 0, 1, -2, -1, 4, 2, 2, -3, -3, 0, -1, -2, 0, 0,
- 1, -1, 0, 2, 0, 0, 6, 11, 2, -1, -1, 0, -3, -2, 3, 5,
- 0, -2, -1, 0, -1, 0, 0, -3, 1, -1, -1, -1, -2, -1, -3, -7,
- 1, 1, -2, -2, 1, 3, 1, -2, -1, 2, 0, -1, -1, 1, 0, 0,
- -4, 2, 3, -1, -2, -2, 0, 1,-11, -2, 4, 5, 6, 2, -1, -2,
- -6, -2, 1, -1, -3, -4, 1, 9, -3, 0, 3, 3, 2, -3, -3, 3,
- 1, 1, 0, 0, 1, -1, -2, 3, 2, 0, -3, -3, 0, -1, -1, 3,
- 1, -1, -3, 1, 2, -6, -4, 6, 0, -2, -5, -2, 0, -3, -2, 3,
- 2, 2, 1, -2, -2, 1, 2, -1, -1, 1, 1, -2, -1, 6, 7, -1,
- 1, 0, -4, -2, 1, -2, -3, 1, -4, 0, -3, -2, 2, 0, -3, 0,
- -3, 4, 3, 1, 8, 7, 0, -1, -3, 4, 1, -4, 2, 3, -2, -3,
- -3, 6, 1, -4, 1, 1, -1, -1, -2, 4, -3, -3, 3, 0, -1, -1,
- 1, 2, -4, 2, 4, -3, -1, 2, 3, -1, -4, 5, 4, -6, -3, 2
-};
-
-/* 6x16-entry codebook for inter-coded 8x8 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_inter_codebook_8x8)[6144] = {
- -4, -3, 4, 5, 2, 1, 1, 0, -5, -3, 5, 5, 2, 1, 0, 0,
- -6, -4, 5, 5, 2, 1, 0, 0, -7, -4, 4, 5, 2, 1, 0, 0,
- -8, -5, 3, 4, 2, 1, 0, 0, -8, -6, 3, 4, 1, 1, 1, 0,
- -8, -6, 2, 4, 2, 1, 1, 0, -8, -6, 2, 4, 1, 1, 1, 1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2,
- -2, -3, -3, -3, -3, -3, -3, -3, -2, -3, -3, -3, -3, -3, -4, -3,
- -2, -2, -2, -2, -2, -3, -3, -2, 1, 1, 1, 1, 1, 0, -1, -1,
- 4, 5, 5, 5, 4, 3, 3, 2, 7, 7, 8, 8, 8, 7, 6, 5,
- 2, 1, 2, 4, 4, 0, -4, -6, 1, 1, 2, 5, 5, 1, -5, -7,
- 1, 2, 1, 4, 5, 1, -5, -8, 1, 1, 1, 5, 5, 0, -6, -8,
- 0, 1, 1, 5, 6, 1, -6, -9, 0, 0, 1, 4, 5, 0, -5, -8,
- 0, 0, 1, 4, 5, 0, -5, -7, 0, 0, 1, 4, 4, 1, -4, -7,
- 1, 2, 3, 0, -3, -4, -3, -1, 1, 3, 4, 0, -3, -4, -3, -1,
- 2, 4, 5, 1, -3, -4, -3, -2, 2, 5, 6, 1, -3, -5, -4, -2,
- 3, 6, 6, 1, -3, -5, -4, -2, 3, 6, 6, 1, -3, -5, -4, -2,
- 3, 6, 6, 1, -3, -5, -4, -2, 3, 5, 5, 1, -3, -4, -4, -2,
- 2, 2, 2, 2, 1, 0, 0, -1, 4, 4, 4, 3, 2, 1, 1, 0,
- 4, 5, 4, 4, 3, 3, 2, 1, 4, 4, 4, 4, 4, 3, 2, 2,
- 2, 3, 3, 3, 3, 3, 2, 1, -1, -1, -1, -1, 0, 0, 0, 0,
- -5, -6, -6, -5, -5, -4, -3, -3, -7, -9, -9, -8, -7, -6, -6, -5,
- 6, 6, 6, 6, 6, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2,
- 0, -1, -1, -1, -2, -2, -1, -1, -3, -5, -6, -6, -6, -6, -5, -4,
- -3, -5, -6, -7, -6, -6, -5, -4, -1, -2, -2, -2, -2, -2, -1, -1,
- 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 1, -2, -5, -4, 0, 2, 5, 2, 1, -2, -6, -5, 0, 3, 5,
- 2, 1, -2, -6, -6, -1, 3, 6, 3, 2, -2, -7, -6, 0, 4, 7,
- 2, 1, -2, -7, -5, 0, 5, 7, 2, 1, -2, -6, -5, 0, 4, 7,
- 2, 1, -2, -6, -4, 0, 4, 6, 1, 1, -2, -5, -4, 0, 3, 6,
- -10, -9, -6, -4, -1, 2, 3, 2,-10, -9, -5, -3, 0, 4, 4, 3,
- -9, -7, -3, -1, 2, 5, 5, 3, -7, -5, -2, 0, 3, 5, 5, 3,
- -6, -3, 0, 1, 4, 6, 5, 3, -4, -2, 1, 2, 3, 5, 4, 2,
- -2, 0, 1, 2, 2, 4, 3, 1, -1, 1, 2, 2, 2, 3, 3, 1,
- -4, -5, -5, -6, -6, -6, -6, -5, -3, -3, -4, -4, -4, -4, -4, -4,
- 0, 0, 0, 0, -1, -1, -1, -1, 5, 5, 6, 5, 5, 4, 3, 2,
- 5, 6, 7, 7, 7, 6, 5, 4, 3, 3, 4, 4, 4, 4, 3, 2,
- 0, -1, 0, 0, -1, -1, 0, -1, -3, -3, -4, -4, -4, -4, -3, -3,
- 1, -2, -5, 1, 5, 4, 2, 0, 1, -3, -6, 1, 6, 5, 2, 0,
- 0, -4, -7, 0, 6, 6, 2, 1, -1, -5, -9, -1, 6, 6, 3, 1,
- -1, -6,-10, -2, 6, 6, 3, 1, -1, -6, -9, -2, 5, 6, 3, 1,
- -2, -6, -9, -2, 5, 5, 3, 1, -2, -6, -7, -2, 4, 4, 2, 1,
- -5, -7, -8, -9, -9, -8, -7, -6, -5, -6, -6, -7, -7, -6, -6, -5,
- -3, -3, -3, -4, -5, -5, -4, -4, -1, 0, 0, -1, -1, -1, -1, -1,
- 0, 1, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 5, 5, 5, 4,
- 3, 4, 5, 6, 8, 8, 8, 7, 3, 4, 5, 6, 7, 7, 7, 6,
- 5, 6, 7, 8, 9, 10, 10, 9, 3, 4, 6, 7, 8, 9, 9, 8,
- 0, 1, 2, 3, 4, 5, 5, 5, -1, -2, -1, -1, 0, 1, 2, 2,
- -2, -3, -3, -3, -3, -2, -1, 0, -3, -4, -5, -5, -5, -5, -5, -4,
- -4, -5, -5, -6, -7, -7, -6, -5, -3, -4, -5, -6, -7, -7, -6, -6,
- 13, 7, 0, -3, -3, -4, -4, -5, 14, 7, 0, -3, -3, -4, -4, -4,
- 15, 8, -1, -4, -4, -4, -5, -4, 15, 8, -1, -4, -4, -5, -4, -3,
- 15, 7, -1, -4, -5, -5, -5, -4, 14, 7, -1, -4, -4, -4, -4, -3,
- 12, 6, -1, -4, -4, -4, -4, -3, 11, 5, -1, -4, -4, -4, -4, -3,
- -17, -4, 5, 4, 4, 4, 3, 3,-18, -5, 5, 4, 4, 4, 3, 3,
- -19, -5, 6, 4, 4, 4, 3, 2,-20, -5, 6, 4, 4, 4, 3, 3,
- -20, -4, 6, 4, 4, 5, 3, 3,-19, -5, 6, 4, 4, 5, 3, 3,
- -18, -4, 5, 4, 4, 4, 3, 2,-17, -5, 4, 3, 4, 4, 3, 3,
- -6, -6, -6, -4, -2, 1, 6, 11, -6, -7, -7, -4, -2, 2, 8, 13,
- -8, -8, -7, -4, -2, 3, 9, 14, -8, -8, -7, -5, -1, 4, 10, 16,
- -8, -8, -7, -5, -1, 4, 10, 17, -8, -8, -7, -4, 0, 5, 10, 16,
- -8, -8, -6, -3, 0, 4, 9, 15, -7, -7, -5, -3, 0, 4, 8, 12,
- 8, 7, 7, 5, 2, -2, -8,-14, 8, 8, 7, 5, 2, -2, -8,-15,
- 8, 8, 7, 5, 1, -3, -9,-16, 8, 8, 7, 5, 1, -3,-10,-17,
- 8, 9, 8, 5, 1, -3,-10,-17, 8, 8, 7, 4, 1, -4,-10,-16,
- 7, 7, 7, 4, 1, -3, -9,-14, 6, 7, 6, 3, 0, -3, -9,-13,
- 5, 1, -4, -4, -3, -1, 0, 0, 7, 2, -3, -3, -2, -1, 1, 0,
- 7, 1, -3, -3, -1, 0, 1, 1, 6, 1, -3, -2, -1, 1, 1, 0,
- 6, 0, -4, -2, -1, 0, 1, 0, 5, 0, -4, -3, -1, 0, 0, -1,
- 5, 0, -3, -1, 0, 0, 0, -2, 4, 1, -2, -1, 0, 1, 0, -1,
- 2, 2, 1, 1, -2, -6, -8, -8, 1, 1, 1, 1, -2, -5, -8, -8,
- 1, 1, 1, 0, -1, -3, -5, -5, 0, 0, 0, 0, -1, -1, -1, -2,
- 0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 2, 3, 2,
- 2, 1, 1, 1, 2, 3, 4, 3, 3, 3, 3, 3, 4, 4, 5, 4,
- -4, -4, -3, -2, 0, 0, 1, 1, -4, -4, -3, -2, -1, 0, 0, 1,
- -2, -2, -2, -1, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1,
- 2, 2, 2, 2, 2, 2, 1, 1, 3, 4, 4, 4, 4, 4, 4, 3,
- 1, 1, 1, 3, 3, 4, 3, 3, -5, -6, -5, -4, -3, -3, -2, -2,
- -4, -2, -1, -1, -1, -1, 0, 1, -4, -2, -1, -1, -1, -1, 0, 1,
- -3, -2, -1, -1, -1, 0, 1, 2, -4, -3, -2, -1, -1, 1, 3, 3,
- -4, -3, -3, -1, -1, 1, 4, 5, -4, -3, -2, -2, -1, 1, 4, 7,
- -2, -2, -1, -1, 0, 2, 6, 8, -1, 0, 0, 1, 1, 4, 7, 8,
- -3, -3, -3, -2, -2, -1, -1, 0, -1, -1, 0, 1, 2, 2, 3, 3,
- 0, 1, 2, 4, 5, 6, 6, 5, -1, 0, 2, 3, 5, 6, 5, 3,
- -1, -1, 0, 2, 3, 3, 2, 1, -2, -2, -1, 0, -1, -3, -4, -4,
- 0, 0, -1, -1, -2, -4, -8, -7, 1, 2, 1, 0, -1, -4, -6, -7,
- -2, 4, 1, -6, 0, 3, 0, 0, -2, 5, 1, -7, 0, 3, 0, 0,
- -3, 5, 1, -8, 0, 3, -1, -1, -2, 6, 1, -9, 0, 3, 0, -1,
- -2, 6, 2, -8, 0, 4, 0, -1, -3, 5, 1, -7, 1, 4, 0, 0,
- -2, 4, 1, -7, 0, 4, 1, 0, -1, 4, 1, -6, 0, 3, 1, 0,
- 0, 0, 0, 3, 4, 5, 4, 1, 1, 1, 1, 2, 3, 3, 2, 0,
- 2, 2, 1, 2, 2, 1, -1, -2, 4, 3, 1, 1, 0, -1, -3, -5,
- 5, 3, 1, -1, -2, -3, -4, -6, 5, 3, 0, -2, -3, -5, -6, -7,
- 4, 3, 0, -2, -3, -4, -5, -5, 4, 3, 0, -1, -2, -2, -3, -3,
- 0, 0, 0, 0, -1, -5, -2, 6, 0, 0, 0, 1, -1, -6, -2, 8,
- 0, 0, 0, 2, 0, -6, -3, 9, 0, -1, 0, 2, 0, -7, -2, 10,
- 0, -1, 0, 2, -1, -8, -3, 10, 0, -1, -1, 2, -1, -7, -3, 9,
- 0, -1, 0, 1, -1, -6, -3, 8, 0, 0, 0, 1, 0, -5, -2, 7,
- 2, 3, 3, 2, 1, 0, -1, -1, 3, 4, 3, 2, 1, 0, -1, -2,
- 3, 4, 4, 2, 1, -1, -2, -3, 2, 3, 3, 2, 0, -1, -2, -3,
- -1, 0, 1, 1, 0, -1, -2, -2, -5, -4, -3, -1, 0, 1, 1, 1,
- -8, -8, -5, -1, 1, 3, 4, 3,-10, -9, -5, 0, 3, 5, 6, 5,
- -5, -1, 4, 5, 3, 1, 0, 0, -6, -1, 4, 5, 2, 0, -1, -2,
- -6, -1, 5, 4, 2, -1, -2, -2, -7, -1, 4, 4, 1, -2, -3, -3,
- -6, -1, 5, 4, 1, -2, -3, -3, -5, 0, 4, 4, 1, -1, -2, -2,
- -4, 0, 5, 4, 1, -1, -1, -2, -3, 1, 4, 3, 1, -1, -1, -2,
- -2, -3, -2, 1, 4, 6, 5, 3, -3, -4, -4, 0, 3, 5, 4, 2,
- -3, -5, -5, -1, 2, 4, 3, 1, -4, -6, -4, -1, 2, 4, 2, -1,
- -2, -4, -3, 1, 2, 4, 2, -1, -2, -4, -2, 1, 3, 3, 1, -2,
- -2, -3, -2, 1, 3, 3, 1, -2, -2, -2, -1, 1, 3, 3, 0, -2,
- -4, -4, -3, -2, -1, 2, 5, 7, -4, -4, -3, -3, -2, 1, 5, 7,
- -2, -3, -2, -3, -3, -1, 3, 5, -1, -1, 0, -2, -3, -2, 2, 4,
- 1, 1, 1, -1, -4, -3, 1, 3, 4, 3, 2, -1, -4, -3, -1, 1,
- 6, 4, 3, 0, -3, -3, -2, 0, 6, 5, 3, 1, -2, -3, -2, -1,
- 12, 11, 8, 4, 0, -2, -2, -1, 10, 9, 6, 2, -1, -2, -1, 0,
- 4, 3, 2, 0, -1, -1, 0, 1, -1, -1, -1, -1, -2, 0, 1, 2,
- -3, -5, -4, -2, -2, 0, 2, 3, -5, -5, -4, -2, -1, 0, 1, 2,
- -5, -5, -4, -2, -1, 0, 1, 1, -4, -4, -3, -2, -2, -1, 0, 0,
- 3, 3, 2, -1, -3, -4, -3, -2, 3, 2, 0, -2, -4, -4, -3, -2,
- 2, 2, 1, -1, -3, -5, -4, -3, 3, 3, 3, 1, -2, -3, -3, -3,
- 4, 4, 4, 3, 0, -2, -2, -2, 5, 5, 5, 3, 0, -1, -2, -2,
- 5, 5, 4, 2, -1, -2, -3, -2, 3, 3, 3, 0, -2, -4, -4, -4,
- -1, -1, 4, -2, -2, 6, 2, -5, -1, 0, 4, -2, -3, 6, 2, -6,
- -1, 0, 4, -2, -3, 7, 3, -7, -1, -1, 4, -3, -4, 8, 3, -7,
- 0, -1, 4, -3, -4, 7, 3, -6, -1, -1, 4, -3, -4, 7, 3, -6,
- -1, -1, 3, -3, -4, 6, 3, -6, -1, 0, 3, -2, -3, 6, 3, -5,
- 1, -2, -7, 2, 5, -2, -1, 1, 1, -2, -8, 3, 6, -3, -1, 2,
- 2, -2, -9, 4, 7, -4, -2, 2, 3, -1, -9, 5, 7, -4, -1, 3,
- 3, -1, -9, 4, 7, -4, -2, 2, 3, -1, -7, 4, 6, -4, -2, 1,
- 2, 0, -6, 4, 6, -4, -1, 1, 2, 0, -5, 3, 4, -3, -1, 1,
- -2, 2, 2, 0, 0, -1, -3, -4, -2, 2, 2, 1, 1, 0, -2, -4,
- -2, 2, 2, 2, 2, 1, -1, -2, -3, 2, 3, 3, 4, 2, 0, -2,
- -3, 2, 3, 2, 4, 2, 0, -3, -4, 1, 2, 1, 2, 1, -1, -3,
- -5, 0, 1, 0, 1, 1, -2, -3, -4, 0, 0, 0, 1, 0, -2, -3,
- 0, 0, -1, -2, -2, 2, 7, 8, 0, 0, -1, -3, -2, 1, 6, 7,
- 0, 1, -1, -3, -3, 0, 4, 5, 0, 1, 0, -1, -1, 0, 1, 3,
- 0, 2, 1, 1, 0, -1, 0, 1, -2, 0, 1, 2, 1, 0, -1, -1,
- -5, -2, 0, 1, 1, 0, -3, -3, -6, -4, -1, 1, 1, -1, -3, -4,
- -4, -2, 2, 5, 6, 4, 3, 2, -5, -3, 1, 4, 4, 2, 0, 0,
- -4, -2, 0, 2, 1, -1, -2, -2, -2, -1, 0, 1, 0, -2, -3, -2,
- -2, 0, 0, 0, -1, -1, -2, -1, -2, -1, -1, 0, 0, 0, 1, 2,
- -2, -2, -1, -1, 0, 1, 3, 4, -2, -3, -2, -1, 0, 2, 4, 5,
- 2, 1, -2, -2, -1, 0, 1, 0, 1, 0, -3, -3, -1, 0, 1, 0,
- 0, -1, -3, -3, -1, 1, 1, 1, 0, 0, -3, -1, 1, 2, 3, 3,
- 0, -1, -3, -1, 1, 3, 3, 3, -2, -2, -4, -2, 1, 3, 4, 4,
- -3, -3, -4, -2, 1, 3, 3, 4, -2, -3, -5, -2, 1, 2, 3, 3,
- 4, 5, 3, 4, 4, 4, 4, 5, 3, 3, 1, 0, 0, 0, 0, 1,
- 1, 1, -1, -2, -3, -4, -3, -2, 2, 2, 0, -2, -2, -4, -3, -2,
- 2, 3, 1, -1, -1, -3, -3, -2, 1, 2, 0, 0, -1, -2, -2, -1,
- 0, 1, 0, -1, -1, -3, -2, -1, 1, 1, 0, -1, -1, -2, -2, -2,
- -2, -1, -1, 0, 1, 2, 1, 0, 1, 2, 3, 5, 6, 5, 5, 3,
- 1, 2, 3, 4, 5, 5, 4, 3, -2, -2, -3, -3, -2, -1, 0, 0,
- -3, -3, -4, -5, -4, -3, -2, -1, -1, -1, -2, -2, -2, -1, 0, 0,
- 0, 1, 0, -1, -1, 0, 0, 1, -1, 0, -1, -2, -3, -2, -2, -1,
- 7, 7, 6, 5, 4, 2, -1, -2, 3, 3, 2, 2, 1, 0, -2, -3,
- 0, -1, -1, -1, 0, -1, -2, -2, -1, -3, -2, -1, 0, 0, 0, 1,
- 0, -2, -2, -1, -1, 1, 2, 2, 3, 1, -1, -1, -1, 1, 2, 2,
- 3, 1, -2, -3, -2, -1, 1, 2, 1, -2, -5, -6, -5, -3, -2, 0,
- 0, -1, -2, -3, -1, 0, -2, -2, 0, 0, -1, -1, 0, 1, -1, -2,
- 0, 0, -2, -1, 0, 0, 0, -2, -1, -2, -3, -3, -2, -1, -3, -3,
- -1, -2, -3, -3, -2, -2, -3, -4, 2, 2, 0, 0, 0, 0, -1, -2,
- 5, 5, 3, 2, 2, 2, 0, -1, 8, 8, 6, 5, 4, 4, 2, 1,
- -7, -8, -6, -3, -1, -1, -2, -1, -5, -5, -3, 0, 2, 1, 0, 0,
- -1, -1, 0, 3, 4, 3, 1, 1, 2, 1, 1, 3, 4, 3, 2, 2,
- 3, 2, 0, 2, 3, 2, 1, 2, 4, 2, -1, -1, 0, 1, 1, 1,
- 3, 2, -2, -3, -2, -1, 0, 1, 3, 1, -3, -4, -3, -2, 0, 1,
- -4, -2, -1, 2, 3, 3, 1, 0, -7, -5, -4, -2, 0, 0, -1, -2,
- -6, -5, -5, -4, -2, -2, -2, -3, -1, 0, -1, -1, 0, 0, 0, -1,
- 2, 3, 2, 2, 2, 2, 1, 0, 3, 5, 4, 3, 1, 0, 1, 0,
- 3, 4, 3, 2, 0, -1, -1, -1, 5, 5, 3, 1, 0, -1, -1, -1,
- 1, 1, 0, -1, -3, -5, -6, -4, 1, 1, 0, 0, 0, -3, -3, -1,
- 0, -1, -1, 0, 1, 0, 1, 3, -2, -2, -3, -1, 2, 2, 4, 7,
- -2, -2, -2, 0, 2, 2, 3, 6, -1, 0, 0, 1, 1, 0, 0, 3,
- 0, 3, 3, 3, 1, -2, -3, -1, 1, 3, 4, 3, 0, -3, -5, -4,
- 0, 2, 0, -1, -3, -4, -2, -2, 1, 4, 2, 0, -2, -3, -2, -1,
- 3, 6, 3, 1, -2, -2, 0, -1, 4, 7, 4, 1, -2, -3, -1, 0,
- 3, 6, 3, 0, -3, -3, -1, 0, 1, 3, 0, -1, -3, -2, 1, 1,
- 0, 1, -1, -2, -3, -1, 2, 2, -2, -1, -3, -3, -3, -1, 1, 2,
- 3, 1, -1, 0, 1, 0, 0, 0, 2, -1, -2, -1, 1, 0, -1, -1,
- 1, -1, -2, 0, 1, 0, -2, -3, 0, -2, -1, 1, 3, 1, -3, -5,
- 0, -2, -1, 2, 5, 2, -3, -5, 0, -2, -1, 4, 6, 3, -2, -5,
- 0, -2, 0, 4, 7, 4, -2, -4, 0, -2, 0, 4, 6, 4, -2, -4,
- -2, -2, -3, -4, -3, -2, -1, 0, 1, 1, 0, -1, -1, -1, 0, 1,
- 3, 3, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 0, 0, 1,
- 0, 0, 0, 0, -1, -1, -1, -1, -4, -4, -4, -4, -4, -4, -4, -3,
- -3, -3, -2, -3, -2, -1, -1, 0, 3, 4, 4, 5, 5, 6, 6, 7,
- -1, -2, 7, -2, -4, -1, -1, 0, -1, -2, 9, -1, -4, -1, -1, 0,
- -1, -3, 10, -1, -4, -1, -1, 1, -1, -3, 10, -2, -3, -1, -1, 2,
- -1, -2, 10, -2, -4, -1, -1, 2, -1, -2, 9, -2, -4, -1, -1, 2,
- -1, -2, 8, -2, -4, 0, -1, 1, 0, -2, 7, -2, -3, -1, 0, 2,
- 3, -4, 1, 3, -3, -2, 1, 0, 3, -5, 1, 4, -3, -2, 1, 0,
- 3, -6, 2, 5, -3, -1, 3, 0, 3, -6, 2, 5, -3, -1, 2, 0,
- 3, -6, 1, 5, -4, -2, 3, 0, 3, -6, 1, 5, -3, -2, 2, 0,
- 2, -6, 1, 4, -3, -1, 1, 0, 2, -6, 1, 4, -2, -1, 1, 0,
- 0, 0, 1, 1, 1, 0, 0, 2, 0, -1, 1, 1, 1, 0, 0, 2,
- 0, -1, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 0, -1, 0,
- 1, 0, 1, 0, 0, -1, -2, -1, 3, 1, 1, 0, 0, -2, -4, -3,
- 5, 3, 2, 1, 0, -3, -5, -4, 5, 4, 2, 0, -1, -4, -5, -5,
- 1, 0, -1, -2, -2, -3, -6, -9, 2, 0, -1, -1, 0, 0, -3, -6,
- 1, 0, 0, -1, 0, 0, -2, -5, 2, 1, 1, 1, 1, 2, -1, -3,
- 1, 1, 2, 1, 2, 2, 1, -1, 1, 1, 2, 1, 1, 1, 1, 1,
- 0, 0, 2, 1, 0, 0, 2, 2, 0, 1, 2, 2, 0, 0, 2, 2,
- -4, -3, 0, 1, 4, 6, 4, 3, -3, -2, 0, 0, 2, 4, 1, 0,
- -1, -1, 0, 0, 1, 1, -2, -3, 1, 1, 1, 0, 1, 1, -3, -5,
- 1, 1, 1, 0, 1, 1, -3, -5, -1, 0, 0, -1, 1, 1, -2, -4,
- -1, 0, 0, -1, 1, 2, 0, -2, -1, 0, 0, 0, 2, 3, 1, 0,
- -1, 0, 3, 4, 0, -4, -5, -5, 0, 0, 4, 5, 2, -2, -3, -2,
- 0, -1, 2, 4, 2, -1, -1, 0, 0, -2, -1, 1, 0, -2, 0, 1,
- 1, -2, -2, 0, 0, -1, -1, 1, 1, -2, -3, 0, 1, 0, -1, 0,
- 1, -2, -2, 1, 3, 1, 0, 0, 1, -2, -1, 2, 4, 2, 0, 0,
- 1, 2, 3, 2, 0, 2, 2, 1, -1, 0, 1, 0, -3, 1, 1, 1,
- -1, 0, 0, -2, -4, 0, 2, 1, -1, 2, 2, -1, -5, 0, 2, 1,
- -1, 3, 4, -1, -5, 0, 2, 1, -2, 2, 4, 0, -4, -1, 0, 0,
- -4, 0, 2, 0, -4, -2, 0, 0, -5, -1, 2, 1, -2, 1, 3, 2,
- 1, 0, 1, 0, 1, 2, -1, -2, 2, 0, -1, -2, 1, 3, 0, -1,
- 3, 0, -2, -4, 0, 3, 1, 0, 5, 1, -3, -5, -2, 2, 1, 1,
- 6, 1, -2, -5, -2, 1, 0, 1, 5, 1, -1, -5, -2, 0, -1, 0,
- 3, 0, -2, -4, -2, 0, -1, 0, 1, -1, 0, -2, 0, 1, 0, 1,
- 1, 1, 2, 3, 2, 1, 1, 2, -1, -1, 0, 1, 1, 0, 1, 1,
- -4, -3, 0, 0, 1, 1, 1, 2, -4, -3, 0, 2, 2, 2, 3, 2,
- -5, -4, 0, 1, 1, 1, 1, 2, -5, -4, -1, -1, -2, -2, -1, 0,
- -3, -2, 0, 0, -2, -3, -2, -1, 2, 3, 4, 4, 2, 0, 0, 0,
- -4, -2, 0, 1, 0, 0, 0, 0, -3, -1, 1, 1, 0, 0, 0, 0,
- -2, 0, 2, 2, 0, 0, 0, 2, -1, 1, 2, 1, -1, 0, 3, 5,
- 0, 2, 1, -1, -2, 0, 5, 6, 0, 1, 0, -3, -3, 0, 4, 6,
- 1, 1, -2, -4, -4, -3, 1, 2, 1, 0, -2, -4, -5, -4, -2, 0,
- -1, -3, -3, -3, -3, -2, -1, -1, 3, 2, 1, 0, 0, 1, 1, 1,
- 5, 4, 3, 2, 1, 1, 2, 2, 2, 1, 0, -2, -2, -2, -1, -1,
- 0, 0, 0, -1, -2, -2, -2, -2, 0, 1, 3, 3, 2, 1, -1, -1,
- 0, 1, 3, 4, 3, 2, 1, -1, -4, -3, -1, 1, 0, -2, -3, -3,
- -3, -4, -7, -8, -7, -4, -1, 2, 0, -1, -3, -4, -4, -2, 0, 2,
- 1, 0, 0, -1, -3, -2, 0, 2, 2, 1, 1, 0, -1, -1, 0, 2,
- 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 0, 1, 2, 3, 3, 2, 2, 0, 0, 1, 3, 4, 4, 3, 2,
- 3, 3, 3, 0, -1, 0, 1, 2, 1, 1, 1, -1, -2, -1, -1, 1,
- -2, -2, -1, -3, -3, -2, -2, 0, -4, -4, -2, -2, -2, -2, -3, 0,
- -4, -4, -1, 1, 1, 0, -1, 2, -3, -1, 2, 3, 4, 3, 3, 5,
- -2, 0, 2, 3, 3, 3, 3, 3, -2, -2, 0, 0, 0, 0, 0, 1,
- 0, 2, 1, -1, -3, -1, 3, -2, -1, 0, -1, -1, -3, 0, 4, -2,
- -2, -2, -2, -2, -2, 1, 5, -2, -3, -2, -3, -1, -2, 1, 4, -3,
- -2, 0, -1, 0, -1, 0, 3, -5, 1, 2, 1, 2, 0, 0, 2, -5,
- 2, 4, 2, 3, 1, 1, 3, -3, 1, 2, 1, 1, 0, 1, 4, -2,
- 4, -3, -4, -1, 3, 3, 1, 3, 4, -4, -4, -1, 3, 2, 0, 2,
- 4, -3, -4, 0, 2, 2, -1, 1, 4, -3, -2, 1, 2, 1, -2, 0,
- 2, -4, -2, 1, 2, 0, -3, 0, 2, -3, -2, 0, 1, 0, -2, 2,
- 3, -1, -1, 0, 0, 0, 0, 3, 2, -2, -2, -2, -1, -1, -1, 2,
- 2, 2, 3, 4, 3, 1, 0, -1, 1, 0, 1, 2, 1, -1, -2, -2,
- 2, 1, 2, 1, 1, 0, -1, -1, 4, 3, 4, 3, 2, 1, 1, 1,
- 3, 2, 2, 2, 1, 1, 1, 1, -1, -2, -1, 0, -1, -1, -1, -1,
- -3, -3, -2, -1, -2, -2, -2, -2, -4, -4, -3, -3, -4, -4, -3, -3,
- 2, 1, -1, -3, -4, -2, 3, 4, 2, 2, 1, -1, -3, -2, 1, 2,
- 1, 2, 3, 3, 0, -2, -1, -2, -1, 0, 2, 4, 2, 0, -1, -3,
- -2, -2, 0, 3, 3, 2, 0, -3, 0, -2, -3, -1, 1, 2, 2, -1,
- 3, -1, -4, -5, -3, 0, 2, 0, 6, 3, -2, -6, -5, 0, 3, 1,
- -2, 3, -2, 0, 3, -2, -2, 1, -3, 4, -3, 0, 3, -2, -1, 2,
- -3, 5, -3, 0, 4, -2, -1, 2, -2, 4, -4, -1, 3, -3, -2, 2,
- -3, 4, -3, 0, 3, -3, -1, 2, -2, 5, -2, 0, 3, -3, -1, 2,
- -2, 4, -3, 1, 3, -2, -1, 2, -2, 3, -2, 1, 3, -2, 0, 2,
- 1, 0, 0, -1, 1, 2, -4, -1, 2, 0, 0, -1, 1, 2, -4, -2,
- 1, 1, 1, -1, 2, 4, -2, 0, 0, -1, 1, -1, 2, 5, -1, 1,
- 0, -1, 0, -2, 1, 5, -1, 1, 0, -1, -1, -2, 0, 3, -3, -1,
- 1, 1, 0, -2, 0, 3, -3, -1, 1, 1, 0, -3, 0, 3, -2, 0,
- 1, 0, -1, 1, 1, 2, 4, 5, 1, 0, -1, 1, 1, 1, 5, 7,
- 0, 0, -2, -1, -1, 0, 3, 5, 0, -1, -2, -1, -1, -1, 2, 3,
- 0, -1, -3, -1, -1, -1, 1, 2, -1, -2, -4, -2, -2, -2, 0, 0,
- -1, -2, -2, -1, -2, -2, 0, 0, 0, -1, -1, 0, -1, -1, 0, 0,
- 3, 3, 0, -1, -1, 1, 4, 4, 2, 3, 0, -2, -2, 0, 1, 1,
- 2, 3, 1, -1, -1, 0, 1, 0, 1, 2, 0, -1, -1, -1, 0, -2,
- 0, 1, 0, -1, -2, -1, 0, -2, 0, 1, 0, -1, -2, -1, 1, 0,
- 1, 1, -1, -3, -4, -3, 1, 3, 1, 2, -1, -3, -5, -4, 1, 3,
- -3, -2, 0, 1, 1, 1, 0, -2, 0, 1, 1, 1, 0, 0, -1, -3,
- 1, 2, 1, 1, 0, -1, -1, -2, 0, -1, -3, -1, -1, -1, 0, -1,
- 0, -3, -6, -3, -2, -1, 1, 1, 2, -1, -4, -3, -2, 0, 2, 2,
- 5, 4, 1, 1, 0, 1, 3, 2, 5, 4, 2, 1, 0, -1, 0, 1,
- -2, 0, -2, -5, -6, -3, 0, 0, -2, 0, 1, 0, -1, 1, 2, 2,
- -2, 0, 1, 3, 2, 2, 2, 1, -2, 0, 2, 4, 3, 2, 1, 1,
- -2, 0, 2, 3, 2, 0, -1, 0, -3, -1, 1, 1, 0, -1, -1, 1,
- -4, -1, 1, 0, -1, -2, 0, 2, -4, -1, 0, -1, -1, -2, 1, 4,
- -3, 0, 0, -1, 1, 1, 1, 0, -3, 1, 0, -1, 0, 0, -1, -1,
- -1, 3, 3, 0, 1, 0, 0, 1, -3, 2, 2, -2, -1, 0, 0, 1,
- -5, 0, 0, -2, -1, 1, 0, 2, -7, -2, 1, 0, 1, 2, 2, 2,
- -5, 0, 3, 2, 3, 3, 2, 2, -3, 2, 4, 1, 0, 0, -2, -3,
- 5, 2, -2, -2, 0, -1, -1, -1, 2, -1, -4, -3, -1, -2, -1, -1,
- 0, -2, -2, 1, 2, -1, 0, 1, -1, -2, -1, 3, 3, -1, 0, 2,
- 1, 0, 0, 3, 3, -2, -1, 2, 2, 1, 1, 3, 2, -2, -2, 0,
- 1, 0, -1, 1, 1, -3, -3, -2, 1, 0, 1, 2, 3, 0, 0, 0,
- -4, -5, -3, 0, 1, -1, -2, -1, -2, -3, -1, 1, 2, 0, 0, 0,
- 1, 1, 2, 1, 2, 1, 1, 1, 3, 4, 3, 1, 0, -2, -1, -1,
- 3, 3, 2, 0, -2, -3, -3, -2, 1, 1, 0, -1, -2, -4, -2, -2,
- 2, 1, 0, 0, 0, -1, 0, 1, 2, 1, 1, 1, 1, 1, 1, 3,
- 0, 0, 0, -1, -2, -1, 1, 0, -2, -1, -1, -2, -3, -2, 0, 0,
- -1, 0, 0, -1, -2, 0, 1, 1, 1, 1, 0, -1, -1, 1, 3, 1,
- 2, 2, 0, -2, -1, 2, 3, 0, 3, 1, -1, -1, 1, 4, 2, -2,
- 2, 0, -3, -1, 3, 5, 0, -5, 1, -1, -2, 0, 3, 3, -1, -6,
- -1, 0, 3, 4, 2, 0, 1, 2, -2, -1, 0, 1, -1, -2, 0, 1,
- -2, -3, -2, -3, -6, -7, -6, -3, 2, 2, 3, 1, -1, -2, -3, -2,
- 2, 2, 3, 1, 0, 0, 0, 0, 2, 1, 1, 0, 1, 1, 0, 1,
- 1, 0, 0, 0, 0, 1, 1, 2, 1, 0, -1, 0, 0, 2, 2, 1,
- 1, 1, 3, 1, -1, -1, -1, 1, -2, -1, 0, 0, -2, -2, -1, 2,
- -2, -2, 1, 1, 1, 0, 1, 3, -2, -2, 0, -1, 0, -1, 0, 2,
- 0, 0, 1, 0, -1, -1, -2, 1, 3, 2, 2, 1, 0, -2, -2, 1,
- 5, 3, 3, 2, 1, 1, 1, 4, 0, -3, -4, -5, -4, -3, -1, 1,
- -6, -4, -1, 2, 2, 0, 0, -1, -4, -2, 1, 3, 3, 2, 2, 0,
- -3, -2, -1, 2, 3, 3, 2, 0, -3, -2, -2, 1, 2, 1, 1, -1,
- -2, -2, -2, 0, 2, 2, 1, -1, -1, -1, -1, 1, 2, 3, 2, 0,
- -1, -1, -2, 1, 2, 2, 2, -1, 0, -1, -2, 0, 2, 1, 0, -1,
- 6, 4, 2, 1, 0, 0, 0, 1, 4, 2, -1, -2, -2, -2, -1, -1,
- 2, 1, -1, -2, -2, -2, -2, -1, 2, 2, 0, -2, -2, -2, -1, 0,
- 0, 0, -1, -2, -2, -1, 0, 1, -3, -3, -2, -1, -1, -2, -1, 0,
- -3, -2, 2, 3, 2, 0, -1, -2, -2, 0, 4, 5, 5, 2, 0, -1,
- 5, 4, 2, 0, -1, -2, -1, -1, 4, 3, 2, 1, 0, -1, 0, -1,
- 1, 1, 0, 1, 1, 0, 1, -1, -2, -1, -1, 0, 0, -2, -2, -3,
- -1, 0, 0, 0, -1, -3, -3, -5, 0, 1, 1, -1, -1, -2, -2, -3,
- -1, -1, -1, -2, -1, 1, 3, 1, -1, -2, -2, -1, 2, 5, 6, 5,
- -3, -3, -2, 1, 1, -2, -1, -1, 1, 2, 3, 4, 1, -3, -1, -3,
- 3, 2, 0, 1, -1, -3, -1, -3, 1, 0, -1, 0, -1, -1, 1, 0,
- 1, 1, 0, 1, 2, 2, 5, 3, 1, 1, 1, 2, 2, 2, 3, 0,
- -3, -1, -2, -2, -3, -3, -1, -3, -1, 1, 1, 0, -1, -1, 0, -2,
- 2, 0, -2, -2, 2, 4, 1, -2, 1, 0, -2, -1, 3, 5, 2, -1,
- -1, -2, -3, -2, 1, 3, 1, -2, -1, -2, -1, -1, 0, 2, 1, -1,
- 0, 0, 1, 1, 1, 2, 2, 0, 0, 1, 4, 4, 2, 2, 3, 1,
- -2, -1, 2, 1, -2, -3, -2, -3, -1, 0, 1, 0, -3, -4, -4, -5,
- 4, 0, -3, -4, -4, -4, -2, -1, 5, 0, -1, 0, -1, -3, -2, -1,
- 4, 0, 0, 1, 1, 0, 0, 0, 0, -3, -2, -1, 0, 0, 1, 0,
- 0, -2, 0, 0, 1, 1, 2, 1, 2, 0, 0, 0, 1, 1, 1, 0,
- 2, 0, -1, -1, 1, 1, 1, 0, 1, -1, -2, -2, 0, 2, 2, 2,
- -3, -5, -2, 0, -1, -3, -3, 0, 0, -2, 0, 2, 2, 0, 0, 3,
- 2, -1, -2, 0, 0, -1, -1, 2, 5, 2, -1, -1, -1, -1, -1, 2,
- 5, 2, 0, -1, -1, 0, -1, 2, 2, 1, 0, 0, 0, 1, 0, 2,
- -1, -1, 1, 1, 2, 2, 1, 2, -3, -2, 0, 0, 0, 0, -2, -1,
- 0, 3, 2, 0, -2, -3, -3, -3, 0, 3, 3, 1, 0, 0, 1, 2,
- -1, 0, -1, -2, -1, -1, 1, 3, -1, 0, -1, -2, -1, -1, 0, 2,
- -1, 0, -1, -2, 0, 0, -1, 2, -1, 0, -1, -2, -1, -1, -2, 1,
- 0, 1, 0, -3, -1, -1, -1, 2, 5, 5, 2, -1, -1, -1, 1, 3,
- 0, 0, 1, -1, -3, -2, 0, 2, 1, 1, 3, 0, -2, -2, 0, 1,
- 1, 1, 3, 1, 0, 0, -1, -1, 0, -1, 2, 1, 1, 0, -1, -3,
- -1, -2, 1, 1, 1, 0, -2, -4, -1, 0, 2, 1, 1, 0, -1, -3,
- 1, 1, 3, 2, 1, 0, -2, -3, 2, 2, 4, 2, 1, -1, -2, -4,
- 1, 2, 2, 2, 0, -2, 0, 2, -1, -1, -2, -3, -4, -5, -3, 1,
- 0, 1, 1, 0, -1, -1, -1, 1, 0, 1, 1, 1, 0, 0, 0, 2,
- 0, 1, 1, 2, 1, 1, 1, 2, -1, -1, 0, 2, 2, 2, 2, 3,
- -2, -4, -4, -1, -2, -2, -2, 0, 1, 0, 0, 1, 0, 0, 0, 1,
- 0, -1, -3, -2, 0, 2, 2, 1, 0, -1, -2, -3, 0, 1, 1, 2,
- 1, 0, -2, -3, -1, 0, 0, 1, -1, 0, -1, -2, 0, 0, -1, 0,
- -1, 1, 1, 0, 2, 2, 0, 0, 0, 2, 3, 1, 3, 5, 3, 2,
- -1, 1, 1, -2, 0, 3, 1, 1, -1, 0, 0, -4, -4, -1, -1, -1,
- -1, 1, 1, 0, 1, 2, 1, 2, -3, 0, 1, 0, 1, 1, 0, 2,
- -5, -3, -1, -1, 0, 1, 0, 1, -4, -3, -2, -3, -2, -1, -1, 0,
- 0, 0, -1, -2, -2, -2, -2, 0, 3, 4, 2, 0, 0, 0, 0, 1,
- 2, 1, 0, 0, 0, 0, -1, 0, 0, 1, 2, 3, 4, 4, 3, 2,
- -1, 4, 7, 4, 0, 0, 0, 0, -1, 4, 6, 3, 0, 1, 1, 1,
- 0, 3, 4, 0, -1, 0, 0, 1, 0, 1, 1, -2, -1, 0, -1, -1,
- -1, 0, -1, -1, -1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0,
- -1, -3, -3, 0, 1, -1, -2, -1, -3, -4, -4, -2, -1, -2, -2, -1,
- 2, 2, 1, 0, 1, 1, 0, -3, -2, -1, 0, 0, 1, 1, 0, -3,
- -2, -1, 0, 1, 2, 1, 1, -2, 1, 2, 2, 2, 3, 3, 2, -1,
- 1, 2, 1, 0, 1, 1, 2, -1, 0, 1, -2, -4, -2, 0, 1, -1,
- 1, 1, -1, -3, -2, 0, -1, -3, 1, 2, 0, -1, 0, 1, -1, -4,
- -1, -1, -2, -2, 0, 3, 4, 3, 1, 1, -1, -3, -2, 0, 0, 0,
- 2, 2, 2, 2, 2, 1, -1, -1, 1, 1, 1, 3, 3, 0, -2, -2,
- 0, -1, -1, -1, 0, -2, -1, -1, -1, -3, -4, -3, -2, -2, 0, 2,
- -1, -1, 0, 1, 2, 2, 3, 5, -2, -1, -1, 0, 0, 0, 0, 1,
- -2, -3, 2, 0, 0, 1, 1, -1, -1, -4, 1, -2, -1, 2, 2, 0,
- 1, -4, 0, -2, -2, 1, 1, -1, 2, -3, 1, -1, -1, 1, 1, -1,
- 3, -2, 3, 1, 0, 1, 1, -1, 1, -3, 2, 1, 0, 1, 0, -1,
- -1, -5, 1, 0, -1, 0, 1, 1, 0, -3, 3, 3, 1, 2, 3, 3,
- 0, -1, -2, 1, 5, 5, 2, -1, 1, -1, -2, -1, 1, 1, -2, -5,
- 1, 1, -1, -2, -1, -1, -1, -3, 1, 1, -1, -1, -1, 2, 4, 3,
- -1, -1, -1, -1, -1, 0, 4, 3, -1, -1, 0, 1, -1, -3, -1, -1,
- 0, 0, 0, 2, 2, 0, 0, -1, 0, -2, -3, 0, 1, 1, 3, 2,
- 2, 3, 2, 1, 0, 0, -2, -2, 2, 3, 0, 1, 1, 3, 3, 2,
- 0, 0, -3, -1, -1, 2, 2, 3, -2, -2, -3, 1, 1, 2, 1, 1,
- -2, -1, -2, 2, 1, 1, -1, -2, 0, 1, 0, 2, 0, 0, -2, -2,
- 0, 1, 0, 2, 0, 0, -2, -2, -3, -2, -2, 0, -1, -2, -2, -3,
- 0, 1, -1, 3, -1, 1, 3, -1, 0, 1, -1, 3, -1, -1, 2, -3,
- 1, 1, -2, 3, -1, -3, 0, -3, 2, 2, -2, 3, 0, -2, 1, -2,
- 1, 1, -3, 3, -1, -2, 1, -3, 1, 1, -3, 3, 0, -1, 1, -2,
- 1, 2, -1, 4, 0, -1, 1, -2, 0, 1, -1, 3, -1, -3, 0, -3,
- -3, -3, -1, 1, 2, 1, -1, -2, -2, -2, 0, 2, 1, 0, -2, -2,
- -3, -2, 1, 2, 1, -1, -2, -1, -3, -2, 2, 4, 0, -2, -2, 1,
- -3, -1, 2, 4, 0, -2, -2, 2, -1, 1, 4, 3, -1, -3, -2, 2,
- 0, 2, 4, 2, -1, -2, -1, 2, 0, 1, 2, 0, -1, 0, 1, 3,
- 3, 0, -5, 1, 4, 0, 0, 1, 1, -2, -5, 2, 5, -1, -2, 1,
- -1, 0, 0, 3, 3, 1, 0, -1, -2, 3, 4, -2, -3, -1, 0, -2,
- -3, 3, 5, -3, -3, 0, 0, -2, -1, 3, 2, -2, -2, 2, 2, -1,
- 2, 0, 0, -1, 0, 0, 0, 0, 0, -3, -2, 1, 3, 0, -2, -2
-};
-
-/* list of codebooks for inter-coded vectors */
-const int8_t* const ff_svq1_inter_codebooks[6] = {
- svq1_inter_codebook_4x2, svq1_inter_codebook_4x4,
- svq1_inter_codebook_8x4, svq1_inter_codebook_8x8,
- NULL, NULL,
-};
-
-/* 6x16-entry codebook for intra-coded 4x2 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_intra_codebook_4x2)[768] = {
- 12, 13, 13, 11, -7,-10,-15,-17,-16,-15,-12,-10, 11, 15, 15, 12,
- 2, 17, 20, 15,-45,-24, 2, 13, 21, 20, -6,-36, 12, 16, -1,-27,
- -18,-21, 10, 45,-11,-20, -7, 21, 43, -8,-28, 0, 33,-16,-28, 3,
- -12,-18,-18, -6,-20,-10, 28, 55, -5,-18,-21,-18, 56, 30, -6,-20,
- -34, 27, 29,-22,-30, 29, 26,-25, 30, 34, 33, 26,-25,-31,-35,-33,
- -31,-35,-36,-32, 29, 36, 37, 31,-71,-12, 38, 34,-63, -1, 42, 33,
- 58, 37,-31,-60, 55, 34,-33,-61,-57,-57, 22, 93,-57,-58, 21, 93,
- 59, 69, 70, 62,-63,-68,-68,-60,-64,-71,-71,-64, 63, 73, 72, 62,
- -2, 0, 7, 15,-11,-10, -3, 5, -5, -8,-10,-10, 1, 9, 14, 9,
- 15, 8, -4,-11, 12, 2,-11,-12, -8, 0, 19, 28, 4, -1,-15,-26,
- -15, 27, 2,-14,-14, 22, 1, -9, -4, -6,-13,-10, -6,-14, 6, 47,
- -35,-20, 6, 23, 6, 9, 6, 4, -6, 2, 23,-22, -7, 4, 28,-21,
- 20,-22, -2, 6, 22,-28, -5, 8,-10,-18,-16,-12, 36, 19, 2, -1,
- -3, 0, 4, 8,-45,-10, 23, 23, 40, 15,-20,-35, -4, -1, 4, 1,
- 9, -5,-33, 24, 8, 3,-26, 19, -1, 4, 6, -3, 32, 25,-13,-49,
- 24, 24, 15, 7,-17,-27,-19, -7,-47, 0, 39, 24,-21, -6, 7, 4,
- -1, 0,-10,-13, 1, 1, 5, 16, 20, 5, -3, -9, -1, -4, -2, -6,
- -17, -7, 1, 4, 12, 7, 0, 0, 3, 0, 12, 11, -3, 1, 0,-23,
- 4, 17, -6, 0, 6, 3,-25, 0,-17, 10, 8, 5,-14, 4, 1, 4,
- 13, 10, 4, 2,-23, -9, 1, 2, 3, -3, 1, 7, 1,-23, -7, 20,
- -7,-18, 2, 12, -5, -4, 10, 9, 4, 10, 7,-24, 6, 3, 4,-10,
- 22,-14,-22, 6, 0, 5, 5, -1, -4, 3,-11, -4, -7, 31, 7,-14,
- -5,-16, -1, 42, -4, -2, -9, -5, 5, -8, -6, -3, 42, -4,-21, -5,
- -18, 12, 20,-12, 13,-13,-10, 7, -8, -9, -2,-18,-16, 6, 40, 8,
- 10, -1, 0, 4, -3, 4, -1,-13, -2, 6, 1,-15, 5, 3, 1, 2,
- -4, -2, 1, 3, 15, 0, -9, -4, -3, -4, -4, -4, -3, 5, 16, -3,
- 2, 13, 3, 4, -3, -8,-10, 0, -6, -2, -4, -1, -2, -3, -6, 23,
- 6, -6, 7, 1, 4,-18, 5, 1, -1, 1,-15, 14, -5, 6, -4, 4,
- 2, 2, 2, 6,-24, 2, 7, 3,-26, 0, 3, 3, 5, 7, 1, 6,
- 14, -2,-18, -3, 7, 5, -4, 2, -6, 3, 32, 1, -6, -6, -6,-12,
- 5,-36, 7, 6, 9, -1, 11, 0, 4, 4, 5, 3, 4, 15, 3,-38,
- 10, 23, -5,-42, 0, 4, 4, 4, 23, 17, -6,-13,-13,-37, 1, 29,
- 5,-14, -1, 1, 5, 0, 3, 1, 0, 4, -5, 2, 8, 0, 0,-10,
- 4, 7, -2, -3,-10, 3, 1, 1,-12, -1, 13, 3, 0, -1, 1, -3,
- 0, -1, 3, 1, -6, -9, 3, 9, -6, 1, -4, -6, 8, -1, 0, 8,
- -3, -3, 0, 18, -5, -1, -4, -1, -8, -2, 3, -4, 0, 17, -1, -5,
- 5, -2, 9,-10, 1, -5, 6, -5, 4, 2, 2, 3, 10,-14, -8, 1,
- -1, -2,-18, -1, -1, 20, 1, 2, -1, 1, -9, 1, -1, -9, 22, -4,
- 6, -4, 8, -3, -1, 7,-19, 5, -7, 31, -4, -4, -6, 0, -5, -5,
- -7, -8,-19, -4, 1, 1, 4, 32, 38, -1, -8, 4, -7, -8, -6,-12,
- -1, 0, -7, 1, -1, 9, -1, 0, 9, -1, -1, 0, 2, -6, 1, -3,
- -12, 0, 2, 1, 1, 1, 8, 0, 9, 1, 0, 2, -2, 1,-11, 0,
- 0, 8, 2,-10, -1, 2, -1, 0, -2, -4, 0, -5, -2, -1, -1, 14,
- -3, 7, -1, 5, 0,-10, 1, 1, -1, -5, 14, -1, -2, 1, -3, -2,
- -6, 0, 0, 6, 2, 3, -9, 4, 4, -5, -1, -1, -7, 3, 8, -1,
- 2, -4, -1,-11, 11, 2, 1, 0, -1, 2, 3, 9, 0, 2, 0,-15,
- 3, 5,-20, 3, 3, -1, 3, 3, 1, -1, 16, 1, 2,-29, 9, 2,
- -13, -6, -1, -3, 36, -1, -8, -3, 2, 5, 4, 2,-37, 9, 11, 3
-};
-
-/* 6x16-entry codebook for intra-coded 4x4 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_intra_codebook_4x4)[1536] = {
- -11, -3, 3, 6,-10, -1, 5, 7, -9, -1, 6, 7, -9, -1, 4, 6,
- 5, 7, 0,-14, 6, 9, 2,-15, 6, 9, 2,-15, 4, 6, 0,-14,
- 16, 3, -5, -6, 16, 1, -8, -8, 14, -1, -9, -9, 12, 0, -8, -8,
- 8, 12, 16, 17, -2, 2, 6, 9,-10, -8, -4, 0,-15,-14,-11, -7,
- -7,-10, -2, 16, -7,-11, -3, 18, -7,-11, -1, 20, -6, -8, 1, 19,
- -9,-13,-16,-17, 2, -2, -7, -9, 11, 8, 4, -1, 16, 15, 11, 7,
- -22, -2, 13, 15,-24, -2, 14, 16,-25, -4, 13, 15,-25, -6, 10, 13,
- 26, 26, 22, 16, 17, 15, 9, 3, -2, -6,-11,-14,-20,-25,-28,-28,
- -27,-27,-25,-21,-16,-15,-11, -7, 3, 8, 12, 13, 23, 28, 31, 30,
- 20, 16, -7,-33, 22, 19, -6,-35, 22, 19, -6,-34, 20, 17, -6,-32,
- -20,-20, 2, 38,-21,-22, 2, 40,-21,-22, 2, 40,-20,-20, 3, 38,
- -47, -4, 24, 26,-50, -3, 26, 27,-50, -3, 26, 27,-47, -4, 24, 26,
- 45, 6,-23,-27, 48, 5,-25,-28, 48, 5,-26,-28, 44, 6,-24,-27,
- -30,-36,-10, 76,-31,-37,-11, 78,-31,-37,-11, 78,-31,-36,-10, 77,
- -53,-32, 35, 52,-54,-34, 36, 52,-54,-34, 36, 52,-53,-33, 34, 51,
- -93,-34, 62, 65,-93,-34, 62, 66,-93,-34, 62, 65,-93,-34, 60, 64,
- -7, 0, 2, 2, -8, -1, 3, 3, -8, 0, 4, 5, -6, 1, 5, 5,
- 3, 7, 11, 11, 2, 2, 3, 3, 1, -2, -6, -7, 1, -5,-11,-13,
- 3, -2, -4, -3, 7, 0, -5, -5, 12, 4, -5, -7, 14, 6, -4, -7,
- 18, 14, 3, -2, 6, 4, 0, -3, -8, -5, -2, 0,-16,-11, -2, 2,
- -8, -6, 7, 18, -7, -8, 2, 13, -4, -6, -2, 6, 0, -4, -3, 1,
- 1, -3,-13,-18, 0, -1, -5, -7, -1, 1, 6, 7, -2, 4, 15, 17,
- -15,-14, -7, -2, -6, -5, -1, 0, 6, 6, 3, 1, 15, 13, 6, 1,
- 2, -2,-11, 10, 2, -1,-12, 11, 3, -1,-12, 11, 2, -2,-11, 11,
- -9, 14, -1, -5, -9, 15, -2, -5, -8, 16, -2, -5, -7, 15, -1, -4,
- 2, 6, 8, 8, -2, 3, 9, 12,-11, -5, 4, 10,-19,-16, -8, 0,
- 14, 8, -7,-15, 12, 7, -7,-14, 8, 5, -4, -9, 5, 3, -1, -4,
- 12,-14, -2, 2, 13,-15, -1, 3, 14,-15, -1, 3, 13,-14, -1, 3,
- 0, 6, 10,-13, 0, 6, 10,-15, 0, 7, 9,-17, 1, 6, 8,-16,
- -8, -5, 15, -2, -8, -6, 17, -2, -8, -6, 16, -3, -8, -5, 15, -2,
- -9,-11,-11,-10, 9, 10, 9, 8, 8, 10, 10, 9, -8, -9, -8, -7,
- 9, 10, 9, 7, -8,-10,-10,-10, -7,-10,-11,-11, 11, 12, 11, 8,
- 0, 10, 7, 0, 0, 7, 0, -6, 0, 2, -5, -6, -2, -1, -4, -1,
- 5, 0, -6, -9, 2, 2, 2, 1, -2, 0, 5, 7, -6, -5, 1, 4,
- 3, -8, 2, -1, 4, -9, 3, 0, 5, -7, 3, 0, 7, -5, 3, 0,
- -5, -3, 2, 9, -6, -3, 1, 8, -6, -3, 1, 7, -5, -2, 0, 4,
- 13, 8, 3, 1, -3, -5, -4, -1, -8, -7, -3, 0, -1, 1, 3, 2,
- 3, 2, -5,-12, 4, 3, -2, -9, 3, 4, 1, -4, 3, 5, 4, -1,
- -9, -8, -4, 0, 8, 6, 2, 0, 10, 8, 3, 0, -6, -5, -3, -1,
- -3, -9,-12, -5, 0, -3, -5, 0, 2, 3, 2, 4, 5, 8, 7, 6,
- -1, -2, 5, 12, -1, -1, 5, 9, 2, 1, -1, -2, 2, -1,-11,-17,
- -7, 3, 3, -1, -9, 3, 4, -1,-10, 4, 6, -1, -9, 5, 7, 0,
- -18, -7, 2, 2, -8, 1, 5, 3, 3, 4, 1, 0, 9, 5, -2, -3,
- -2, 0, 6, 8, -4, -5, -5, -3, 1, -2, -6, -8, 10, 9, 3, -1,
- 0, -2, -2, 0, 0, -4, -5, 0, -2, -8, -4, 8, -5, -7, 6, 24,
- 9, 1, -7, 1, 9, 1, -8, 1, 8, 0,-10, 1, 8, -1,-11, -1,
- 8, 8, 6, 3, 5, 4, 3, 2, -2, -3, -1, 0,-10,-13, -8, -4,
- 0, 4, 2, -3, 0, 6, 3, -5, 3, 10, 2,-12, 5, 10, -4,-22,
- 0, -4, -1, 3, 1, -4, -1, 5, 1, -5, 0, 8, -1, -6, -2, 7,
- -1, -1, -2, -4, -1, -2, -4, -6, -1, -1, -1, -2, 1, 5, 10, 9,
- 10, 3, 0, -2, 6, -1, -2, -5, 3, -1, -2, -6, 2, 0, 0, -5,
- 6, 3, 0, 0, 6, 3, 1, 1, 4, -2, -2, 1, 0, -9, -9, -2,
- -11, -3, 1, 2, -6, 2, 4, 5, -3, 2, 3, 4, -2, 1, 1, 2,
- -6, -4, -1, -2, 2, -1, -1, -2, 10, 2, -2, -2, 11, 2, -4, -1,
- 6, 0, -2, 2, 3, 3, 0, 0, -6, 3, 3, 0,-17, -1, 5, 0,
- -1, 4, 10, 11, -3, -2, 0, 1, -3, -4, -5, -3, -1, -2, -2, -1,
- 2, -3, -9,-12, 3, 3, 3, 2, 2, 2, 4, 4, 2, 1, -1, -2,
- -2, 9, 5,-10, -3, 5, 5, -5, -2, 1, 2, 0, -1, -2, -2, 1,
- -2, -3, 7, -2, -1, -3, 7, -3, -1, -2, 8, -4, -2, -2, 7, -3,
- 1, -8, -3, 12, 2, -2, -2, 4, 1, 3, 0, -5, -1, 5, 2, -7,
- -1, 3, 1, -5, -7, -2, 3, 1, -2, -7, -2, 2, 20, 3, -5, -1,
- 5, 0, -3, -2, -7, -7, 0, 6, -6, 0, 7, 6, 2, 6, 0, -7,
- -2, 6, -7, 1, -2, 7, -8, 3, -2, 7, -7, 3, -1, 7, -6, 2,
- -5, -2, 5, 7, 4, 1, -4, -8, 6, 3, -2, -5, -7, -5, 3, 7,
- -1, -1, 6, 5, 0, -1, 1, -4, 2, 1, 0, -7, 1, 0, 0, -4,
- -8, 0, 3, 1, -2, 1, -1, -1, 1, -1, -3, 1, 1, -2, 1, 9,
- 5, 2, -3, -4, -1, 0, -1, -3, -3, 1, 3, 1, -4, 0, 4, 2,
- 2, -2, -2, 12, 0, -2, -5, 3, -1, 0, -3, 1, -3, -1, -2, 1,
- 1, 5, 3, 0, -6, -4, -2, 1, 0, -2, -2, 2, 6, 1, -4, -1,
- -3, -5, -5, -1, 3, 5, 5, 4, 0, 3, 1, -1, -2, 1, -2, -3,
- 2, -4, -5, -3, 4, -2, -3, -2, 6, 0, -1, -1, 7, 1, 0, 0,
- -3, -2, -2, 0, -2, -3, -5, -1, -2, 2, 0, -1, -1, 11, 9, -1,
- 0, 1, -1,-10, -1, 1, 0, -6, 1, 0, 1, 4, 2, -5, -1, 13,
- -2, 4, 5, 0, -5, 1, 6, 3, -6, -2, 3, 2, -5, -2, 0, -2,
- -1, 1, 1, -2, -1, -2, 0, 2, 5, 5, 5, 7, 0, -4, -8, -7,
- 0, 2, -1, -5, -1, 2, 2, -3, 0, 5, 3, -5, 3, 8, 2,-12,
- 8, 4, 0, -2, 10, -1, -4, -1, 3, -6, -3, 0, -4, -5, 0, 0,
- 0,-10, -4, 2, -1, -6, 3, 5, -1, -3, 6, 4, 0, -2, 4, 2,
- 0, 8, 1, -1, 0, 11, 1, -3, -1, 6, -2, -4, -3, -2, -7, -4,
- 0, -1, -1, -1, 4, 5, 6, 5, -5, -9, -8, -5, 2, 2, 3, 2,
- 0, 2, 6, 1, 2, 0, 3, 0, 1, -2, -1, -2, 0, -1, -3, -6,
- 0, 0, 2, 0, 4, 0, 2, 1, 5, -2, 0, 0, -2, -9, -1, 2,
- 0, 1, 0,-10, -1, 1, 8, 0, -1, -2, 4, 0, 1, -1, 2, -1,
- -3, -2, 2, -1, -3, -1, 2, -3, 0, -1, 1, 0, 8, 1, -1, 3,
- 0, 1, 1, 2, 0, -4, -2, 0, -1, -5, 1, -1, -2, -1, 11, 2,
- 1, 5, -2, -2, 0, 2, -4, 0, -2, 1, -5, 1, 0, 5, 0, 1,
- -5, -3, 0, 6, -4, 2, 0, 0, -3, 5, 1, 0, -3, 3, 0, 0,
- 3, -2, -3, 1, 1, -4, 0, 8, -2, -3, -2, 3, 1, 2, -1, -1,
- 1, 1, 0, 2, 2, 0, 1, 6, 1, -1, 2, 1, 0, 3, 0,-19,
- 1, -3, -2, 2, 6, 5, -2, -7, -3, 1, 3, 1, -1, -1, 0, 2,
- -8, -1, -1, -4, 1, 1, -1, 2, 4, 3, 2, 3, -5, 1, 3, 0,
- 0, 2, -1, 1, -3, 0, 0, 5, -5, -2, 0, 8, -4, -4, -4, 6,
- 1, 2, 1, 2, 2, 2, -3, 2, 4, 0, -9, 0, 7, 0,-11, 1,
- 0, 0, 0, -2, 3, 3, -1, -6, 4, 3, -3,-10, -1, 2, 6, 2,
- 7, -2, -3, 5, -4, 0, 3, -1, -4, 2, 1, -7, 2, -1, -1, 3,
- 3, 2, 2, 2, -5, -7, -7, -5, 5, 6, 4, 2, -2, -1, 0, 1
-};
-
-/* 6x16-entry codebook for intra-coded 8x4 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_intra_codebook_8x4)[3072] = {
- 5, 6, 6, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 1, 2, 3,
- -3, -4, -4, -5, -5, -4, -3, -2, -4, -4, -4, -5, -4, -4, -3, -3,
- 1, 2, 2, 2, 2, 3, 3, 3, 2, 3, 3, 4, 4, 5, 5, 5,
- -1, 0, 1, 1, 2, 3, 4, 4, -9,-10, -9, -9, -8, -7, -6, -5,
- -4, -4, -5, -6, -6, -7, -7, -7, 0, -1, -2, -2, -3, -3, -4, -4,
- 4, 4, 3, 3, 2, 1, 1, 0, 7, 7, 7, 6, 6, 5, 4, 4,
- 2, 4, 5, 6, 4, 1, -3, -6, 3, 4, 5, 5, 4, 0, -5, -8,
- 2, 3, 4, 4, 2, -2, -7,-10, 2, 2, 2, 1, 0, -4, -9,-12,
- -9, -7, -3, 1, 4, 4, 3, 3,-10, -7, -2, 3, 5, 5, 3, 3,
- -9, -6, -2, 3, 6, 5, 4, 3, -8, -6, -1, 3, 4, 4, 3, 2,
- -5, -5, -5, -5, -3, 1, 4, 7, -5, -5, -5, -4, -2, 1, 6, 8,
- -4, -5, -4, -3, -1, 3, 8, 10, -3, -4, -3, -2, 1, 5, 9, 11,
- -2, -2, -2, -2, -2, -2, -2, -2, -4, -5, -5, -5, -5, -5, -5, -4,
- -3, -4, -4, -4, -4, -4, -4, -3, 9, 10, 10, 11, 11, 11, 10, 10,
- 7, 4, 1, -2, -4, -6, -9,-10, 9, 7, 3, 0, -2, -4, -8, -9,
- 11, 8, 4, 2, 0, -3, -6, -8, 11, 9, 5, 3, 1, -2, -5, -7,
- -13,-13,-13,-12,-11,-10, -8, -8, 0, 1, 2, 3, 4, 4, 4, 3,
- 3, 4, 5, 6, 6, 6, 5, 4, 3, 4, 4, 4, 3, 3, 3, 2,
- 10, 10, 11, 10, 9, 9, 8, 7, 6, 6, 6, 6, 5, 4, 3, 2,
- 0, 0, 0, -1, -2, -3, -4, -4,-10,-10,-11,-12,-13,-14,-14,-14,
- 16, 16, 17, 16, 15, 13, 12, 11, -1, -2, -3, -4, -4, -4, -4, -3,
- -4, -5, -6, -6, -6, -6, -6, -6, -5, -6, -6, -6, -6, -6, -5, -5,
- -13,-13,-13,-12,-11,-10, -8, -6, -9, -8, -7, -6, -4, -2, 0, 1,
- -2, -1, 1, 3, 5, 7, 8, 9, 5, 7, 9, 11, 13, 14, 15, 15,
- 16, 14, 11, 7, 2, -3, -7, -9, 14, 12, 8, 3, -1, -6, -9,-11,
- 11, 9, 4, 0, -4, -8,-11,-13, 8, 5, 1, -3, -6,-10,-12,-14,
- -18,-15, -9, -3, 1, 6, 9, 11,-17,-13, -7, -1, 3, 7, 11, 12,
- -15,-11, -5, 1, 5, 9, 12, 13,-13, -9, -3, 2, 5, 9, 11, 13,
- 22, 21, 19, 15, 10, 3, -4, -9, 20, 18, 15, 9, 2, -5,-12,-17,
- 16, 13, 8, 1, -7,-14,-20,-24, 10, 6, -1, -8,-15,-21,-25,-27,
- -25,-23,-20,-14, -7, 1, 9, 14,-23,-21,-16, -9, 0, 9, 16, 21,
- -20,-16,-10, -1, 8, 16, 22, 25,-15,-11, -3, 6, 14, 20, 25, 27,
- -4, -2, 0, 1, 2, 2, 2, 2, -5, -2, 0, 2, 3, 3, 3, 3,
- -6, -4, -1, 1, 2, 3, 3, 3, -7, -5, -2, 0, 1, 1, 2, 2,
- 2, 1, 1, 1, 1, 0, -2, -3, 3, 3, 2, 1, 0, -1, -3, -4,
- 4, 3, 2, 1, 0, -2, -4, -6, 5, 4, 3, 1, -1, -3, -5, -6,
- 5, 6, 6, 4, 2, 0, -2, -3, 3, 4, 4, 4, 3, 1, 0, -1,
- -2, -2, -1, -1, -1, -1, -2, -2, -5, -4, -3, -2, -2, -2, -3, -3,
- -1, -1, -1, -1, -1, -1, -1, -1, -3, -4, -4, -4, -3, -3, -3, -3,
- -1, -1, -1, -1, -1, -1, -1, -2, 5, 6, 6, 6, 6, 5, 4, 3,
- 4, 4, 4, 4, 4, 5, 6, 7, 0, -1, -1, -1, -1, 0, 1, 2,
- -2, -3, -3, -3, -3, -2, -1, 0, -3, -3, -4, -4, -4, -3, -2, -1,
- 0, -2, -4, -4, -2, 0, 2, 3, 0, -2, -3, -3, -1, 2, 4, 5,
- -1, -2, -4, -3, 0, 3, 5, 6, -2, -3, -4, -3, -1, 2, 4, 5,
- 9, 4, 0, -3, -3, -1, 0, 1, 8, 4, -1, -4, -3, -1, 1, 2,
- 6, 2, -3, -5, -4, -2, 0, 1, 5, 1, -3, -4, -4, -2, 0, 1,
- 5, 3, 1, -1, -4, -8,-10,-10, 3, 3, 2, 1, 0, -2, -3, -4,
- 1, 1, 1, 2, 3, 2, 1, 0, -1, 0, 1, 2, 3, 4, 3, 2,
- 0, 1, 2, 2, 1, -1, -3, -3, 0, 1, 1, 1, -1, -2, -4, -3,
- -3, -3, -3, -3, -3, -3, -1, 2, -4, -4, -3, 0, 3, 7, 12, 14,
- -5, -5, -6, -6, -6, -6, -6, -5, 2, 2, 2, 1, 0, 0, 0, 0,
- 4, 4, 3, 2, 1, 0, 0, 0, 6, 6, 5, 4, 2, 2, 1, 1,
- -7, -7, -6, -3, 0, 4, 7, 8, -1, -2, -3, -3, -2, -1, 1, 2,
- 3, 3, 1, -1, -2, -2, -2, -1, 6, 6, 4, 2, 0, -2, -2, -2,
- -6, -5, -2, 2, 5, 9, 11, 12, -4, -4, -2, 0, 2, 4, 5, 6,
- -3, -2, -2, -2, -2, -1, 0, 1, -2, -2, -2, -3, -3, -3, -3, -2,
- -7, -3, 1, 3, 3, 0, -3, -5, -6, -2, 3, 5, 4, 1, -3, -5,
- -5, -1, 4, 6, 5, 2, -3, -4, -4, 0, 5, 7, 6, 3, -1, -3,
- 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -3, -3, -3, -3, -2, -1,
- 6, 7, 8, 9, 9, 8, 7, 6, -4, -4, -5, -5, -6, -6, -5, -4,
- -9, -8, -6, -4, 0, 3, 6, 6, -5, -4, -1, 3, 5, 6, 5, 3,
- 1, 3, 6, 6, 4, 1, -2, -5, 6, 7, 5, 1, -3, -7,-10,-11,
- 10, 9, 5, 1, -3, -6, -6, -4, 5, 3, -1, -5, -6, -5, -2, 2,
- -2, -4, -6, -6, -4, 1, 6, 10, -6, -7, -7, -4, 1, 7, 11, 12,
- 6, 5, 3, 2, 0, 0, 0, 0, 2, 1, -1, -2, -3, -2, -1, -1,
- 0, -1, -2, -4, -4, -2, -1, 1, 0, 0, -1, -2, -1, 0, 2, 3,
- 0, -1, -2, -2, -2, -2, -1, -1, 5, 4, 2, 1, 0, 0, 0, 0,
- 6, 5, 3, 1, 0, 0, 0, 0, 2, 0, -2, -4, -4, -3, -2, -2,
- -7, -4, 0, 2, 2, 2, 2, 1, -7, -3, 0, 0, 0, 0, 0, 0,
- -4, -1, 1, 1, 0, 0, 0, 1, -1, 1, 2, 2, 2, 2, 3, 3,
- -2, 0, 2, 2, 1, 1, 1, 1, -1, 1, 2, 2, 1, 0, 0, -1,
- 0, 2, 4, 2, 0, -1, -2, -3, 1, 2, 3, 1, -2, -4, -6, -6,
- 1, 2, 2, 4, 5, 6, 4, 1, 0, -1, -1, -1, 0, 0, -2, -4,
- 0, 0, -1, -2, -2, -2, -4, -6, 2, 1, 0, 0, 1, 1, -1, -3,
- 1, 1, 1, 1, 1, 2, 3, 3, 0, 0, 1, 0, 1, 2, 4, 4,
- -1, -1, -1, -1, 0, 1, 2, 3, -4, -4, -5, -5, -5, -3, -1, 0,
- -6, -5, -5, -4, -3, -2, -1, -1, -1, 0, 0, 1, 1, 2, 3, 3,
- 0, 1, 1, 1, 2, 2, 3, 4, 0, 0, -1, -1, 0, 1, 2, 3,
- 0, 1, 1, 1, 0, 0, -1, -1, 1, 3, 3, 2, 1, -1, -2, -2,
- -2, 0, 2, 2, 2, 2, 1, 1, -9, -8, -4, -2, 1, 3, 3, 3,
- -1, -1, -1, -2, -3, -3, -3, -4, 0, 0, 0, -1, -2, -2, -3, -3,
- 2, 2, 2, 0, -1, -1, -1, -1, 5, 5, 4, 3, 2, 2, 2, 2,
- 6, 3, -1, -4, -3, -1, 1, 1, 2, -1, -3, -4, -1, 2, 2, 0,
- -1, -2, -2, 1, 4, 4, 1, -3, -2, -1, 1, 4, 6, 3, -3, -8,
- 3, 3, 2, 1, -1, -2, -2, -2, -4, -4, -2, -1, 1, 3, 4, 4,
- -4, -5, -5, -4, -2, 0, 2, 2, 7, 7, 4, 1, -1, -2, -3, -2,
- -1, 1, 3, 0, -4, -6, 0, 6, -2, 1, 4, 1, -4, -6, -1, 7,
- -3, 1, 4, 2, -3, -6, -1, 6, -2, 0, 3, 2, -2, -5, -1, 4,
- 1, -1, -2, 1, 4, 4, -1, -7, 1, -1, -4, -1, 5, 6, 0, -6,
- 3, 0, -4, -3, 3, 6, 2, -4, 3, 0, -5, -4, 1, 4, 1, -3,
- 2, 2, 3, 3, 3, 3, 2, 2, -4, -5, -6, -7, -7, -7, -7, -6,
- 1, 2, 3, 3, 3, 3, 2, 2, 0, 0, 1, 1, 1, 2, 2, 1,
- 3, -3, -3, 3, 4, -2, -2, 2, 3, -4, -4, 4, 4, -4, -4, 2,
- 4, -4, -4, 4, 4, -4, -3, 3, 3, -3, -4, 3, 3, -3, -3, 3,
- -2, -2, -2, -2, -2, -2, -1, -1, 6, 7, 8, 8, 8, 7, 6, 5,
- -5, -6, -7, -7, -8, -7, -6, -5, 1, 1, 2, 2, 2, 2, 1, 1,
- 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0,
- -2, -3, -2, -2, -2, -3, -3, -3, 2, 3, 5, 6, 4, 2, 1, 0,
- 8, 6, 2, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, -1, -1, -1,
- 1, -1, 0, 0, 0, -1, -2, -3, -2, -2, -1, 0, 0, -2, -4, -5,
- 3, 1, -1, -2, -3, -4, -5, -5, 2, 1, 0, 0, 1, 1, 0, 0,
- 0, -1, -1, 0, 2, 2, 2, 2, -1, -2, -1, 1, 2, 2, 2, 2,
- 0, -1, -2, -1, -1, -1, -1, 0, -1, -2, -2, -1, -1, 0, 0, 1,
- 2, 1, 1, 2, 2, 1, 1, 0, 6, 5, 3, 1, 0, -2, -4, -4,
- -3, -2, -1, 0, 1, 1, 0, -1, 0, 1, 3, 4, 5, 5, 3, 1,
- -1, -1, -1, 0, 1, 0, -1, -2, -2, -2, -2, -1, 0, -1, -2, -3,
- 0, -1, -2, -2, -1, -1, 0, 2, 1, -1, -2, -1, -1, -1, 0, 2,
- 1, 0, -2, -2, -2, -2, 1, 5, 1, -1, -2, -2, -2, 0, 5, 10,
- 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0, 1, 2,
- 1, 2, 2, 3, 4, 4, 6, 5, -3, -3, -3, -2, -2, -3, -3, -3,
- 1, -1, -2, -2, 0, 3, 5, 7, 2, 0, -2, -3, -2, 0, 2, 3,
- 3, 1, -2, -3, -3, -2, -1, -1, 3, 1, 0, -1, -1, -1, -1, -1,
- 1, 3, 5, 4, 2, -1, -3, -4, -3, -2, 1, 2, 1, 0, -1, -2,
- -5, -3, 0, 2, 2, 1, 0, 0, -3, -1, 1, 2, 2, 1, 0, 0,
- 0, -1, -1, -1, 1, 2, 3, 4, -3, -4, -4, -3, -1, 0, 0, 1,
- -2, -3, -2, -1, 1, 1, 1, 1, -2, -2, 0, 3, 4, 4, 3, 2,
- -4, -4, -3, -2, -1, 1, 2, 3, 0, 1, 1, 1, -1, -2, -3, -3,
- 3, 4, 5, 4, 2, -1, -3, -3, -2, -2, 0, 2, 2, 2, 1, 0,
- -4, 0, 5, 7, 4, -1, -4, -4, -1, 2, 4, 3, 0, -3, -3, -2,
- 2, 1, 0, -1, -2, -2, 0, 1, 0, 0, -1, -2, -2, -1, 1, 2,
- -4, -3, -2, -1, 0, 1, 2, 2, 10, 9, 5, 0, -3, -4, -3, -2,
- 1, -1, -2, -2, -1, 0, 0, 0, -2, -2, -1, 1, 1, 1, 0, -1,
- -5, -3, 0, 3, 4, 2, 0, -2, -2, -1, 0, 1, 1, 0, -1, -1,
- 3, 2, -1, -2, -2, -1, 1, 1, 7, 5, -1, -5, -6, -2, 2, 4,
- -2, 3, 3, -3, -4, 1, 2, -2, -3, 3, 4, -3, -4, 2, 3, -2,
- -3, 3, 4, -3, -4, 2, 3, -2, -4, 2, 4, -2, -3, 1, 2, -1,
- 4, 3, -1, -3, -3, -1, 1, 2, -4, -6, -4, 0, 4, 5, 4, 1,
- 0, 2, 5, 6, 2, -3, -5, -4, 1, 1, -1, -3, -5, -2, 2, 4,
- -1, 0, 1, 2, 2, 3, 3, 4, -1, 0, 1, 1, 0, -1, -1, -1,
- -1, 0, 1, 2, 2, 1, -1, -2, -3, -2, -1, 0, 0, -1, -2, -3,
- 1, 1, 1, 1, 0, 0, 1, 2, 1, 0, -1, 0, 0, 1, 1, 0,
- 1, -2, -4, -1, 1, 2, 1, 0, 1, -4, -7, -3, 1, 3, 2, 1,
- 1, 1, 1, 1, 1, 1, 0, -1, 1, 1, 1, 0, 1, 2, 2, 0,
- 1, 1, 0, 0, 0, 2, 0, -3, 3, 2, 0, -1, -1, -2, -6, -9,
- 0, 0, 0, 1, 0, 0, 1, 2, 1, 0, 0, 0, -1, -1, 0, 2,
- 0, 1, 1, 1, -1, -3, -2, 0, -7, -5, 1, 6, 6, 2, -1, -1,
- 3, 1, -1, -3, -4, -2, 1, 4, 2, 0, -2, -3, -4, -3, -1, 2,
- 2, 2, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1,
- -1, 1, 1, -2, -5, -6, -4, -1, -1, 1, 4, 3, 2, 0, 1, 2,
- -1, 0, 2, 3, 1, 0, 0, 1, -1, 0, 1, 0, 0, -1, -1, 0,
- 0, 1, 2, 2, 0, -2, -1, 1, -2, -1, -1, -2, -1, 2, 6, 8,
- -1, -1, -2, -3, -2, 0, 1, 2, -1, 0, 0, -1, -1, 0, -1, -1,
- 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, -1, -1, 1,
- -1, 0, 2, 2, -1, -3, -2, 3, 0, 2, 3, 0, -5, -7, -2, 4,
- -1, 0, 0, 0, -1, -2, -3, -3, -1, 0, -1, -2, -2, -2, -2, -2,
- 1, 1, 0, 0, 1, 2, 0, -1, 1, 2, 1, 2, 5, 6, 2, 0,
- -2, -4, -3, 0, 2, 2, 0, -3, 3, 1, 0, 1, 2, 1, -2, -3,
- 3, 1, 0, 0, 0, 0, 0, -1, 1, -1, -2, -2, -1, 1, 3, 3,
- 3, 2, 1, 2, 4, 3, 1, -2, -2, -4, -4, -3, -1, 0, -2, -3,
- 1, 0, -1, -1, 0, 1, 0, -1, 3, 2, 0, 0, 0, 1, 1, 0,
- 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 3, 2, 2, 2, 1, 1,
- 0, -1, -2, -3, -5, -5, -5, -4, 1, 1, 0, -1, 0, 1, 3, 3,
- -9, -6, -2, 0, 1, 1, 2, 2, -6, -2, 1, 2, 1, 1, 0, 1,
- -2, 1, 2, 2, 1, 1, 1, 1, 0, 2, 2, 1, 0, 1, 1, 1,
- 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -3, -2, 0,
- -3, -3, -3, -2, -1, 3, 7, 9, 1, 2, 2, 2, 0, -2, -4, -3,
- 2, 0, -2, -1, 3, 4, -1, -6, 1, 0, -2, -3, -1, 3, 3, 0,
- 0, 3, 3, 0, -2, -1, 1, 1, -6, -1, 3, 2, -1, -2, 0, 1,
- 5, 3, 0, -2, -3, 0, 2, 1, 1, 1, 2, 2, 0, -2, -4, -7,
- -3, -2, 1, 2, 2, 1, -1, -4, 2, 2, 0, -2, -2, 0, 2, 2,
- 0, 0, -2, -3, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- -2, -1, 0, 1, 0, 1, 2, 3, -4, -2, 0, 0, -1, 0, 2, 3,
- -2, -2, -2, -1, -1, 0, 2, 4, 0, 0, 0, 0, -1, -1, 0, 1,
- 0, -1, -1, -1, -1, -1, 0, 0, 6, 4, 2, 0, -1, -2, -1, -1,
- 0, 1, 1, 1, 1, -1, -5,-10, 1, 1, 1, 1, 1, 1, 0, -4,
- 1, 0, 1, 1, 1, 1, 1, -1, 2, 1, 1, 1, 0, 0, 0, 0,
- -3, 1, 4, 3, 3, 1, -1, 0, -4, 0, 1, 0, -1, 0, 0, 0,
- -5, 0, 2, 1, 1, 1, 0, -1, -1, 2, 1, -2, -2, -1, 0, -1,
- 2, 4, 5, 3, 0, -1, 1, 2, 0, 0, 1, 0, -2, -2, -1, -1,
- -2, -2, -2, -2, -3, -2, -1, 0, 0, 0, 1, 0, 0, 0, 1, 2,
- 0, -2, -2, -3, -1, 2, 2, -1, 1, 0, 0, 0, 1, 5, 3, -2,
- -1, -1, 0, -1, 0, 2, 0, -5, -1, 0, 1, 0, 0, 2, 2, -2,
- 3, 1, -1, -1, 0, 1, 1, 2, 1, 0, 0, 1, 1, 1, 1, 1,
- -10, -8, -2, 1, 2, 1, 1, 1, -1, 1, 2, 1, 0, 0, 0, 0,
- -1, -1, 0, 1, 2, 2, 2, 1, -1, -1, -1, 0, -1, -3, -5, -4,
- 1, 1, 2, 1, 1, 0, 0, 2, -1, -2, -1, -1, -1, 0, 2, 4,
- -3, -7, -5, 0, 2, 0, 0, 0, 3, -1, -2, 1, 2, 1, 1, 2,
- 1, -2, -1, 1, 2, 1, 0, 1, 0, -1, 0, 3, 2, -1, -1, -1,
- 2, 1, 1, 0, 0, 0, 0, 0, -9, -7, -2, 3, 3, 2, 1, 1,
- 3, 2, 0, -2, -2, -1, 1, 1, 0, -1, 0, 0, 1, 1, 0, 0,
- -2, -1, 1, 1, 1, 0, 0, 0, 1, 2, 1, -2, -4, -3, 1, 2,
- 1, 2, 1, -2, -3, 0, 3, 1, -1, -1, 0, 0, 1, 3, 0, -4,
- 2, 0, -1, 1, 2, -2, -2, 3, 2, 0, -1, 2, 3, -2, -4, 1,
- 0, 1, 1, 1, 2, -2, -6, -2, -1, 0, 0, 0, 2, 0, -2, -1,
- -1, -1, 1, 2, 1, -2, -3, -2, 3, -1, -2, -1, -1, 0, 1, 2,
- 10, 4, 0, 0, -1, -2, -2, -1, 3, -1, -2, -1, 0, -1, -1, 0,
- -5, 2, 7, 1, -4, -2, 1, 0, -2, 2, 3, -1, -3, 0, 2, 0,
- 2, 1, 0, 0, 1, 1, -1, -2, 1, -2, -2, -1, -1, -2, 0, 0,
- 0, 3, -2, -7, -1, 3, 0, 0, 1, 3, -3, -5, 2, 3, -1, 0,
- 0, 2, -2, -2, 4, 2, -2, 0, -1, 1, -1, 0, 2, -1, -2, 1,
- 4, 0, -3, -4, -2, 1, 2, 1, 0, 0, 3, 5, 3, 1, -1, -2,
- 1, 1, 1, -1, -3, -1, 1, 1, 1, -1, -2, -2, 0, 0, -1, -2
-};
-
-/* 6x16-entry codebook for intra-coded 8x8 vectors */
-DECLARE_ALIGNED(4, static const int8_t, svq1_intra_codebook_8x8)[6144] = {
- 4, 4, 3, 2, 2, 1, 0, -1, 4, 3, 3, 2, 1, 0, -1, -1,
- 3, 3, 2, 2, 1, 0, -1, -2, 3, 2, 2, 1, 0, -1, -2, -3,
- 2, 2, 1, 0, -1, -1, -2, -3, 2, 1, 0, 0, -1, -2, -3, -4,
- 1, 0, 0, -1, -2, -3, -4, -4, 0, 0, -1, -2, -2, -3, -4, -4,
- 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3,
- 1, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1,
- -1, 0, 0, 0, 0, 0, 1, 1, -2, -2, -1, -1, -1, -1, -1, -1,
- -3, -3, -3, -3, -3, -3, -2, -2, -5, -4, -4, -4, -4, -4, -4, -3,
- -4, -2, -1, 0, 1, 2, 2, 3, -4, -2, -1, 0, 1, 2, 3, 3,
- -4, -3, -1, 0, 1, 2, 3, 3, -4, -3, -1, 0, 1, 2, 3, 3,
- -5, -3, -1, 0, 1, 2, 3, 3, -5, -3, -1, 0, 1, 2, 3, 3,
- -5, -3, -1, 0, 1, 1, 2, 3, -5, -3, -2, -1, 0, 1, 2, 3,
- 4, 4, 5, 5, 6, 6, 7, 7, 2, 2, 2, 3, 3, 4, 4, 4,
- 0, 0, 0, 0, 1, 1, 1, 2, -2, -2, -2, -2, -1, -1, -1, 0,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -1, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -2, -2, -2, -2,
- 5, 3, 1, -1, -2, -3, -3, -3, 5, 3, 1, -1, -2, -3, -3, -3,
- 5, 3, 1, -1, -2, -3, -3, -3, 5, 3, 1, -1, -2, -3, -3, -3,
- 5, 4, 1, 0, -2, -3, -3, -3, 6, 4, 2, 0, -2, -2, -3, -3,
- 6, 4, 2, 0, -1, -2, -2, -3, 6, 4, 2, 1, -1, -2, -2, -2,
- -1, 1, 3, 3, 2, 0, -3, -6, -1, 1, 3, 4, 3, 0, -3, -6,
- -1, 1, 4, 4, 3, 1, -3, -6, -1, 1, 3, 4, 3, 1, -3, -6,
- -2, 1, 3, 4, 3, 1, -3, -6, -2, 1, 3, 4, 3, 1, -3, -7,
- -2, 1, 3, 3, 2, 0, -3, -7, -2, 0, 2, 3, 2, 0, -3, -6,
- 10, 9, 8, 6, 6, 5, 4, 4, 6, 5, 4, 3, 2, 2, 2, 1,
- 2, 1, 0, -1, -2, -2, -2, -1, -1, -2, -3, -4, -4, -4, -4, -3,
- -2, -3, -4, -4, -5, -4, -4, -3, -2, -2, -3, -3, -3, -3, -2, -2,
- -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 1, 1, 1, 1, 1, 2,
- -2, -1, 1, 2, 4, 5, 7, 8, -3, -2, 0, 1, 3, 5, 7, 8,
- -4, -3, -1, 0, 2, 4, 6, 7, -5, -4, -2, -1, 1, 3, 5, 7,
- -6, -5, -3, -2, 0, 2, 4, 6, -6, -5, -4, -2, -1, 1, 3, 5,
- -7, -6, -5, -3, -2, 0, 2, 3, -8, -7, -5, -4, -3, -1, 1, 2,
- 11, 9, 7, 5, 3, 1, -1, -1, 10, 8, 6, 3, 1, 0, -2, -2,
- 9, 7, 5, 2, 0, -2, -3, -4, 8, 6, 3, 1, -1, -3, -4, -4,
- 6, 4, 2, -1, -3, -4, -5, -5, 5, 3, 0, -2, -4, -5, -6, -6,
- 3, 1, -1, -3, -5, -6, -7, -7, 2, 0, -2, -4, -6, -6, -7, -7,
- 5, 6, 7, 7, 7, 8, 8, 8, 3, 4, 5, 5, 6, 6, 6, 6,
- 0, 2, 2, 3, 4, 4, 4, 5, -2, -1, 0, 1, 2, 2, 3, 3,
- -4, -3, -2, -1, 0, 1, 1, 2, -6, -5, -4, -3, -2, -2, -1, 0,
- -8, -7, -6, -6, -5, -4, -3, -3,-10, -9, -8, -8, -7, -6, -6, -5,
- 6, 5, 3, 1, -1, -3, -6, -8, 6, 5, 4, 2, -1, -3, -6, -8,
- 6, 5, 4, 2, 0, -3, -6, -8, 6, 5, 4, 2, 0, -3, -6, -8,
- 6, 6, 4, 2, 0, -3, -6, -8, 6, 5, 4, 2, 0, -3, -6, -8,
- 6, 5, 4, 2, 0, -3, -6, -8, 6, 5, 4, 2, -1, -3, -5, -8,
- 11, 10, 9, 8, 7, 6, 5, 4, 8, 8, 7, 6, 5, 4, 3, 2,
- 6, 5, 4, 4, 2, 2, 1, 0, 3, 3, 2, 1, 0, 0, -1, -2,
- 1, 1, 0, -1, -2, -2, -3, -3, -1, -1, -2, -3, -4, -4, -5, -5,
- -3, -4, -4, -5, -6, -6, -7, -7, -5, -5, -6, -7, -8, -8, -8, -8,
- -14,-13,-12,-11, -9, -7, -6, -4,-12,-11,-10, -9, -7, -5, -3, -1,
- -10, -9, -7, -6, -3, -2, 0, 2, -8, -6, -4, -2, 0, 2, 4, 5,
- -5, -3, 0, 2, 4, 5, 7, 8, -2, 0, 2, 4, 6, 8, 9, 10,
- 0, 3, 5, 7, 8, 10, 11, 12, 3, 5, 7, 8, 10, 11, 12, 12,
- -19,-19,-18,-18,-17,-16,-15,-14,-15,-15,-14,-13,-12,-11,-10, -9,
- -11,-10, -9, -8, -6, -5, -4, -3, -6, -5, -3, -2, -1, 0, 1, 2,
- -1, 0, 2, 3, 4, 5, 6, 6, 4, 6, 7, 8, 9, 10, 10, 10,
- 9, 10, 11, 12, 13, 14, 14, 14, 12, 14, 14, 15, 16, 16, 16, 16,
- 22, 21, 19, 17, 14, 11, 9, 5, 20, 19, 17, 14, 11, 8, 4, 1,
- 17, 15, 13, 10, 6, 3, 0, -4, 13, 11, 8, 5, 1, -2, -5, -9,
- 9, 6, 3, -1, -4, -7,-11,-13, 4, 0, -3, -6, -9,-12,-15,-17,
- -2, -5, -8,-11,-14,-16,-18,-20, -8,-10,-13,-16,-17,-19,-21,-22,
- 17, 18, 18, 18, 17, 16, 16, 14, 16, 16, 15, 15, 14, 13, 12, 11,
- 12, 12, 11, 10, 9, 8, 7, 5, 7, 6, 6, 4, 3, 2, 1, -1,
- 1, 0, -1, -2, -3, -4, -5, -6, -5, -6, -7, -8, -9,-10,-11,-12,
- -11,-12,-13,-14,-15,-16,-16,-17,-16,-17,-17,-18,-19,-20,-20,-20,
- 0, 0, 0, 0, -1, -1, -2, -3, 1, 0, 0, 0, 0, -1, -2, -3,
- 1, 1, 0, 0, -1, -1, -2, -2, 1, 1, 1, 0, 0, -1, -1, -2,
- 2, 1, 1, 1, 0, -1, -1, -2, 2, 2, 1, 1, 0, 0, -1, -2,
- 2, 2, 1, 1, 1, 0, -1, -1, 2, 2, 1, 1, 1, 0, 0, -2,
- 0, -1, -1, 0, 0, 1, 2, 3, 0, -1, -1, 0, 1, 1, 2, 2,
- -1, -1, -1, -1, 0, 1, 2, 2, -1, -1, -2, -1, 0, 1, 1, 2,
- -1, -2, -2, -1, 0, 0, 1, 2, -1, -2, -2, -2, -1, 0, 1, 2,
- -1, -1, -2, -1, 0, 0, 1, 2, -1, -1, -1, -1, 0, 1, 1, 2,
- 3, 2, 2, 2, 1, 1, 0, 0, 3, 2, 2, 2, 2, 1, 0, 0,
- 2, 2, 2, 1, 1, 1, 0, 0, 2, 2, 1, 1, 1, 0, 0, -1,
- 1, 1, 1, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, -1, -1,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -2, -2, -2, -2,
- 5, 2, 0, 0, -1, 0, 0, 0, 4, 2, 0, -1, -1, -1, 0, -1,
- 4, 1, -1, -1, -2, -1, -1, -1, 4, 1, -1, -1, -2, -1, -1, -1,
- 4, 1, -1, -2, -2, -1, -1, -1, 4, 1, -1, -2, -2, -1, -1, -1,
- 4, 1, -1, -1, -1, -1, -1, -1, 4, 2, 0, -1, 0, 0, 0, -1,
- -2, -1, 0, 1, 1, 1, 1, 1, -3, -1, 0, 1, 1, 1, 1, 1,
- -3, -1, 0, 1, 1, 1, 1, 1, -3, -1, 0, 1, 1, 1, 1, 1,
- -3, -2, 0, 1, 2, 2, 1, 1, -4, -2, 0, 1, 2, 2, 2, 2,
- -5, -3, -1, 1, 1, 2, 1, 2, -5, -3, -2, 0, 1, 1, 1, 1,
- 3, 3, 1, 0, -2, -4, -4, -5, 3, 3, 2, 0, -1, -2, -3, -4,
- 2, 2, 1, 1, 0, -1, -2, -2, 1, 1, 1, 1, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 1, 1, 1, -2, -1, -1, 0, 0, 1, 2, 2,
- -3, -2, -2, -1, 0, 1, 2, 3, -3, -3, -2, -1, 0, 1, 2, 3,
- -3, -3, -3, -3, -3, -2, -2, -2, -3, -3, -2, -2, -2, -1, -1, -1,
- -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 2, 2, 2, 2,
- 1, 1, 1, 2, 2, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
- -8, -7, -5, -3, -2, -1, 0, -1, -4, -3, -1, 0, 1, 2, 1, 1,
- -1, 1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 3, 2, 2, 1, 0,
- 2, 3, 3, 2, 1, 0, 0, -1, 1, 2, 1, 0, -1, -1, -1, -1,
- 1, 1, 0, -1, -1, -2, -2, -1, 1, 1, 0, 0, -1, -1, 0, -1,
- -4, -3, -2, 0, 1, 2, 3, 3, -4, -3, -2, 0, 1, 2, 2, 2,
- -3, -3, -2, -1, 0, 1, 1, 1, -2, -2, -2, -1, -1, 0, 0, 0,
- 0, -1, -1, -1, -1, -1, -1, -1, 2, 1, 1, 0, 0, -1, -1, -2,
- 3, 3, 3, 1, 0, -1, -2, -2, 5, 4, 4, 2, 1, 0, -1, -2,
- 0, 0, 0, 0, 1, 2, 3, 3, 0, -1, 0, 0, 1, 2, 3, 3,
- 0, -1, 0, 0, 1, 2, 3, 2, 0, 0, 0, 1, 1, 2, 2, 2,
- 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 1, 0, 0, -1, -2,
- 2, 1, 0, 0, -2, -3, -5, -6, 0, -1, -1, -3, -5, -6, -8, -9,
- -2, 0, 1, 2, 2, 1, -1, -4, -2, 0, 2, 2, 2, 1, -1, -4,
- -2, 0, 2, 2, 2, 1, -1, -3, -2, 0, 2, 2, 2, 1, -1, -3,
- -2, -1, 2, 2, 2, 1, -1, -3, -2, -1, 1, 2, 2, 1, -1, -3,
- -3, -1, 1, 2, 2, 1, -1, -3, -2, -1, 1, 2, 2, 1, -1, -3,
- -1, 1, 1, -1, -3, -3, 0, 4, -1, 1, 1, -1, -3, -3, 0, 4,
- -1, 1, 1, 0, -3, -3, 0, 4, -1, 1, 2, 0, -3, -3, 0, 5,
- 0, 1, 2, 0, -3, -4, 0, 4, 0, 1, 2, 0, -3, -4, 0, 5,
- 0, 1, 2, 0, -3, -3, 0, 4, 0, 1, 2, -1, -2, -2, 0, 4,
- 6, 6, 5, 6, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 0, 0, 0, 0, 0,
- -1, -2, -2, -2, -2, -2, -2, -1, -3, -3, -3, -3, -3, -3, -3, -2,
- -3, -4, -4, -3, -3, -3, -2, -2, -2, -2, -2, -2, -1, -1, 0, 0,
- 0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6,
- 4, 1, -2, -3, -3, -1, 1, 3, 4, 1, -2, -4, -3, -1, 1, 3,
- 5, 1, -2, -4, -3, -1, 1, 4, 5, 1, -2, -3, -3, -1, 2, 4,
- 5, 1, -2, -3, -3, -1, 2, 4, 4, 0, -3, -4, -3, -1, 2, 4,
- 4, 0, -3, -3, -3, -1, 1, 3, 3, 0, -2, -3, -2, -1, 1, 3,
- -3, -4, -4, -4, -4, -4, -4, -4, -1, -1, -1, -1, -1, -1, -2, -2,
- 2, 1, 1, 2, 2, 1, 1, 1, 3, 3, 3, 4, 4, 3, 3, 3,
- 3, 3, 3, 4, 4, 4, 3, 3, 1, 2, 1, 2, 2, 2, 2, 2,
- -2, -2, -2, -1, -1, -1, 0, 0, -4, -4, -4, -4, -3, -3, -3, -3,
- -1, -2, -3, -3, -2, -2, -1, 0, 0, -1, -2, -2, -2, -1, 0, 1,
- 2, 1, -1, -1, -1, -1, 0, 1, 3, 1, 0, -1, -1, 0, 0, 1,
- 3, 2, 0, -1, 0, 0, 0, 1, 3, 1, 0, -1, 0, 0, 0, 1,
- 3, 1, 0, -1, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 1, 1, 2, 3, 4, 0, 0, -1, 0, 0, 0, 2, 3,
- 0, -1, -1, -1, -1, -1, 0, 1, 0, -1, -1, -1, -1, -1, -1, 0,
- 0, 0, -1, -1, -1, -2, -2, -1, 1, 0, 0, -1, -1, -2, -2, -1,
- 2, 2, 1, 0, -1, -1, -1, -1, 3, 3, 2, 1, 0, -1, -1, 0,
- 1, 0, 1, 0, 0, -1, -2, -1, 0, 0, 0, 0, -1, -1, -2, -1,
- 0, -1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0,
- -1, -1, -1, 0, 0, 0, 1, 1, -1, -1, -1, 0, 1, 1, 2, 3,
- -2, -2, -1, 0, 1, 2, 3, 4, -2, -2, -1, 0, 1, 2, 4, 5,
- -3, -1, 1, 0, 0, -1, 0, 1, -3, 0, 1, 0, -1, -1, 0, 2,
- -3, 0, 1, 0, -1, -1, 0, 2, -2, 1, 2, 0, -1, -1, 0, 2,
- -2, 1, 2, 0, -1, -1, 0, 2, -2, 1, 2, 0, -1, -1, 0, 2,
- -1, 2, 2, 0, -1, -1, 0, 2, -1, 1, 1, 0, -1, -1, -1, 1,
- -2, -2, -1, 1, 3, 4, 3, 1, -2, -2, -1, 0, 2, 3, 2, 0,
- -2, -2, -1, 0, 1, 2, 1, -1, -1, -1, -1, 0, 1, 2, 1, -1,
- -1, -1, -1, 0, 1, 1, 0, -2, 0, -1, -1, 0, 1, 1, 0, -1,
- 0, -1, -1, 0, 1, 1, 1, -1, 0, -1, -1, 0, 0, 1, 0, -1,
- -2, -1, 0, 1, 1, 1, 1, 1, -2, -1, 0, 0, 0, 0, 0, 0,
- -2, -1, -1, 0, -1, -1, -2, -2, -2, -1, -1, -1, -1, -2, -2, -3,
- -1, 0, 1, 1, 0, -1, -2, -2, 1, 2, 3, 3, 2, 1, 0, 0,
- 1, 2, 3, 3, 3, 2, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0,
- 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 1, 1, 0, 0, 0,
- -3, -2, -1, -1, -1, -1, 0, -1, -5, -5, -4, -3, -2, -2, -2, -1,
- 1, 1, 1, 1, 2, 1, 0, -1, 1, 1, 1, 2, 1, 1, 0, -1,
- 1, 1, 1, 1, 1, 1, 0, -2, 2, 1, 1, 1, 1, 1, 0, -2,
- 1, 1, 0, 0, 0, 0, -1, -3, 1, 1, 0, 0, 0, -1, -2, -3,
- 1, 1, 0, 0, -1, -1, -2, -4, 1, 0, 0, -1, -2, -2, -3, -4,
- 8, 7, 5, 3, 2, 1, 1, 1, 2, 1, 0, 0, -1, -1, -2, -1,
- -1, -1, -1, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, -1, -1, 0,
- 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
- -1, 0, 0, 0, 0, 0, -1, -1, -2, -2, -1, -1, -1, -2, -2, -1,
- 9, 4, 0, -2, -2, -2, -1, -1, 7, 2, -1, -2, -2, -1, 0, 0,
- 4, 0, -2, -2, -1, 0, 1, 1, 1, -2, -2, -2, -1, 0, 1, 1,
- -1, -2, -2, -1, 0, 1, 1, 1, -1, -2, -1, 0, 1, 1, 1, 0,
- -1, -1, 0, 1, 1, 1, 0, -1, 0, -1, 0, 1, 0, 0, -1, -1,
- 0, 1, 1, 1, 1, 1, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0,
- 2, 2, 2, 2, 1, 0, -1, -1, 1, 1, 1, 0, -1, -2, -2, -2,
- 0, 0, 0, -1, -2, -3, -2, -2, -1, -1, -1, -2, -2, -2, -1, 0,
- -1, -1, -1, -1, 0, 0, 1, 2, -1, -1, -1, 0, 1, 2, 3, 4,
- -1, -1, 0, 0, -1, -2, -3, -3, -1, -1, 0, 0, 0, -1, -1, -1,
- -2, -2, -1, 0, 1, 1, 1, 1, -2, -2, -2, 0, 1, 2, 3, 3,
- -1, -1, -1, 0, 1, 3, 3, 3, 1, 0, 0, 0, 1, 1, 2, 2,
- 2, 2, 1, 0, 0, -1, -1, -1, 3, 2, 1, 0, -1, -2, -3, -3,
- -1, -1, -1, -2, -2, -3, -4, -5, 0, 0, 0, -1, -1, -3, -3, -4,
- 1, 1, 1, 0, 0, -1, -2, -3, 2, 2, 2, 1, 1, 0, -1, -1,
- 2, 2, 2, 2, 1, 1, 0, -1, 2, 2, 2, 2, 2, 1, 0, 0,
- 1, 1, 2, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1,
- -2, 2, 3, 1, -1, 1, 1, -1, -3, 2, 3, 0, -1, 1, 1, -1,
- -3, 2, 3, 0, -1, 1, 1, -1, -4, 2, 3, 0, -1, 1, 1, -2,
- -4, 1, 3, 0, -1, 1, 1, -2, -4, 1, 3, -1, -2, 1, 1, -2,
- -3, 1, 2, 0, -1, 1, 1, -2, -3, 1, 2, 0, -1, 1, 1, -1,
- -1, -1, -1, -2, -2, -2, -2, -2, 1, 1, 1, 1, 0, 0, 0, 0,
- 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 2, 2, 2,
- -2, -2, -1, -1, -1, 0, 0, 0, -3, -3, -3, -3, -3, -3, -3, -2,
- -1, -1, -1, -1, -2, -2, -2, -2, 4, 4, 4, 4, 4, 3, 3, 2,
- -3, -3, -2, -1, 0, 1, 2, 5, -3, -3, -3, -2, -1, 1, 3, 6,
- -3, -3, -2, -2, 0, 2, 3, 5, -3, -2, -2, -2, 0, 1, 3, 5,
- -2, -2, -2, -1, -1, 1, 3, 5, -2, -2, -1, -1, 0, 1, 2, 4,
- -1, -1, -1, -1, 0, 1, 1, 4, -1, -1, -1, -1, 0, 1, 2, 3,
- 0, -1, 0, 1, 1, 0, -1, -1, 0, 0, 0, 1, 2, 0, -1, -1,
- 1, 0, -1, 0, 1, 0, 0, 0, 1, -1, -2, -1, 0, 0, 0, 0,
- 1, -2, -3, -1, 0, 0, 0, 1, 1, -1, -3, -2, 0, 1, 1, 2,
- 1, -1, -2, -1, 0, 1, 1, 2, 2, 0, -1, 0, 1, 1, 2, 2,
- 1, 1, 1, 1, 0, 0, 1, 2, -1, 0, 0, -1, 0, 0, 0, 1,
- -3, -2, -1, -1, -1, 0, 1, 1, -4, -2, -1, 0, 0, 1, 1, 1,
- -3, -2, 0, 0, 1, 1, 1, 1, -3, -1, 0, 1, 1, 1, 0, 0,
- -1, 0, 1, 1, 1, 0, 0, -1, 0, 1, 2, 2, 1, 0, 0, -1,
- -4, -4, -4, -3, -2, -1, -1, -1, -2, -2, -2, -1, 0, 0, 0, 0,
- -1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
- 0, 0, 1, 1, 2, 2, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
- 0, 0, 0, 1, 1, 1, 1, 0, -1, 0, 0, 1, 1, 1, 0, 0,
- 1, 2, 2, 2, 1, -1, -2, -4, 1, 1, 2, 2, 1, 0, -2, -4,
- 0, 1, 1, 1, 1, 0, -1, -3, -1, 0, 1, 1, 0, 0, -1, -2,
- -1, 0, 1, 1, 1, 0, 0, -1, -2, -1, 0, 0, 0, 0, 0, -1,
- -1, -1, 0, 1, 1, 0, 0, 0, -1, 0, 1, 1, 1, 1, 1, 0,
- 2, 2, 0, -1, -2, -1, -1, -2, 1, 1, -1, -2, -2, -1, -1, -2,
- 1, 1, -1, -2, -2, 0, 0, -1, 1, 1, 0, -2, -1, 1, 1, 0,
- 1, 1, 0, -1, -1, 1, 2, 1, 1, 1, 0, -1, -1, 1, 2, 1,
- 1, 1, 0, -1, -1, 1, 1, 1, 1, 1, 0, -1, 0, 1, 1, 1,
- 0, 0, -1, -2, -4, -4, -4, -4, 3, 3, 3, 2, 1, 0, 0, 0,
- 3, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1,
- -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0,
- -1, -1, 0, -1, -1, 1, 2, -1, 1, 1, 0, 0, 0, 2, 3, -1,
- 1, 1, 0, -1, -1, 1, 3, -1, 1, 1, 0, -2, -2, 0, 1, -2,
- 1, 0, 0, -2, -2, 0, 1, -3, 0, 0, 0, 0, -1, 1, 1, -3,
- 0, 1, 1, 0, 1, 2, 1, -3, -1, 0, 1, 1, 1, 2, 1, -4,
- -4, -3, 0, 1, 1, 1, 0, 0, -4, -2, 0, 1, 1, 1, 0, -1,
- -3, -1, 1, 1, 1, 0, -1, -1, -1, 1, 1, 1, 1, 0, -1, 0,
- 1, 2, 2, 1, 0, -1, 0, 0, 2, 2, 1, 0, -1, -1, 0, 1,
- 2, 1, 0, -1, -2, -1, 0, 1, 2, 2, 0, -1, -2, -1, 1, 1,
- 1, 1, 0, 0, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, -1, -1, -1,
- 1, 0, 0, -1, -1, -1, -1, -1, 2, 1, 0, 0, -1, -1, -1, -1,
- 5, 3, 2, 1, 0, 0, 0, 0, 6, 5, 3, 2, 1, 0, 0, 0,
- 4, 4, 3, 1, 0, 0, 0, 1, 3, 3, 2, 1, 0, 0, 0, 1,
- 2, 2, 1, 0, -1, -1, 0, 1, 0, 0, 0, -1, -1, -1, 0, 1,
- 0, 0, -1, -1, -2, -1, 0, 2, 0, -1, -1, -2, -2, -2, 0, 1,
- 0, -1, -1, -2, -2, -2, -1, 0, 0, 0, -1, -2, -2, -2, -1, 0,
- 0, 0, -1, -1, -1, 0, 2, 3, 0, -1, -2, -2, -1, -1, 1, 2,
- 1, 0, -1, -1, -1, 0, 0, 0, 1, 1, 1, 0, 0, 0, -1, -1,
- 1, 2, 1, 0, 0, -1, -1, -1, -1, 0, 0, 0, -1, -1, -1, -1,
- -3, -2, -1, -1, 0, 1, 1, 2, -4, -3, -1, 1, 2, 3, 5, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 0, 0, -1, 0, 0, 0, 1, -1, -1, -2, -2, -2, -1, -1, 0,
- 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3,
- 1, 1, 1, 1, 2, 2, 1, 1, -4, -3, -4, -4, -4, -4, -3, -3,
- -1, 0, 1, 2, 2, 3, 3, 3, -1, -1, -1, -1, 0, 0, 0, 0,
- 0, 0, -1, -2, -2, -3, -3, -2, 3, 2, 1, 0, -1, -2, -2, -2,
- 4, 3, 2, 1, 1, 0, 0, 0, 2, 2, 1, 1, 0, 1, 1, 1,
- 0, -1, -1, -1, -1, 0, 0, 1, -2, -2, -2, -2, -2, -1, 0, 0,
- 1, -1, 0, 2, 1, -2, -1, 1, 1, -1, 0, 2, 1, -2, -2, 1,
- 1, -1, 0, 3, 2, -2, -1, 1, 0, -2, 0, 3, 2, -2, -2, 1,
- 0, -2, 0, 3, 2, -2, -2, 1, 0, -2, 0, 3, 1, -2, -1, 1,
- 0, -2, 0, 2, 1, -2, -2, 1, 0, -1, 0, 2, 1, -2, -1, 1,
- 0, 1, 2, 2, 3, 3, 2, 2, 0, 1, 1, 2, 3, 3, 2, 1,
- 0, 0, 1, 2, 2, 2, 2, 1, -1, 0, 0, 1, 1, 1, 1, 1,
- -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1,
- -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -1,
- 0, 0, -1, -2, -1, 0, 3, 5, 0, 0, -1, -1, -1, 0, 2, 4,
- 1, 1, 0, 0, -1, -1, 1, 2, 1, 2, 1, 1, 0, -1, -1, 0,
- 0, 1, 2, 1, 0, -1, -2, -2, -1, 0, 1, 2, 1, 0, -3, -3,
- -2, -1, 1, 2, 2, 0, -2, -4, -2, -1, 0, 2, 2, 1, -1, -3,
- 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0,
- -1, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0,
- -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, -1, -1, 0,
- 0, 0, 1, 1, 0, 0, 0, 1, 3, 3, 3, 4, 3, 3, 3, 3,
- 5, 1, -2, -2, 0, 0, 0, -1, 4, -1, -3, -1, 0, 0, 0, -1,
- 3, -1, -1, 0, 1, 1, 0, -1, 2, 0, 0, 1, 1, 1, 0, -2,
- 1, 0, 0, 1, 1, 1, 0, -2, 0, -1, -1, -1, 0, 0, 0, -1,
- 0, -1, -1, -1, -1, 0, 0, -1, 2, 1, 0, 0, 0, 1, 0, 0,
- 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0,
- 1, -1, -1, 0, 0, 0, 0, 0, 2, 0, -1, -1, -1, -1, -1, 0,
- 3, 1, -1, -1, -2, -2, -2, -1, 4, 2, 1, 0, -1, -2, -2, -1,
- 2, 1, 0, 0, -1, -1, 0, 0, 0, -1, -1, -1, -1, 0, 1, 1,
- 0, 1, 2, 2, 2, 1, -1, -3, 0, 0, 1, 1, 1, 0, -1, -2,
- 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 1, 1, 0,
- 0, 0, -1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
- 0, 0, 1, 1, 2, 1, -1, -3, 0, 0, 0, 1, 1, -1, -4, -5,
- -2, -2, -2, -1, 0, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 0,
- 1, 1, 1, 1, 1, 0, -2, -3, 0, 0, 1, 1, 0, -1, -3, -4,
- -1, -1, 0, 1, 0, 0, -2, -3, -1, -1, 0, 1, 1, 1, 0, -1,
- 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, -1, 1,
- 0, 2, 0, -1, 1, 0, -1, 0, 0, 1, 0, 0, 2, 1, 0, 1,
- 0, 1, -1, 0, 2, 2, 0, 1, -1, 0, -1, -1, 2, 1, 1, 2,
- -2, -2, -3, -2, 0, 1, 1, 1, -2, -2, -3, -3, -1, -1, -1, 0,
- -3, -1, 0, 1, 2, 1, 1, 0, -3, -1, 0, 1, 2, 1, 1, 1,
- -2, 0, 0, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0,
- -2, 0, 0, 0, 0, -1, -1, 0, -2, 0, 0, 0, 0, 0, -1, -1,
- -3, 0, 1, 1, 1, 1, 0, 1, -5, -2, 0, 1, 2, 2, 1, 2,
- -2, -1, -1, 0, 0, 1, 2, 3, 0, 0, 1, 1, 0, 0, 1, 2,
- 0, 0, 1, 0, -1, -1, 0, 1, -1, -1, -1, -1, -2, -2, -1, 0,
- -2, -2, -2, -2, -2, -1, 0, 1, 0, 0, 0, -1, 0, 1, 2, 2,
- 2, 1, 0, 0, 0, 1, 2, 2, 2, 1, 0, -1, -1, -1, 0, 0,
- 0, 1, 1, 1, 1, 1, -1, -4, -1, -1, 0, 1, 1, 1, 0, -3,
- -2, -1, 0, 0, 1, 2, 2, -2, -1, 0, 0, 0, 0, 2, 3, -1,
- -1, 0, 0, 0, 0, 1, 2, 0, 0, 0, -1, -2, -1, 1, 1, 0,
- 0, 0, -1, -2, -2, 0, 2, 1, 0, 0, -1, -2, -1, 1, 2, 2,
- 1, 0, 0, 0, -2, -3, -2, -3, 0, 0, 1, 0, -2, -2, -1, -1,
- 0, -1, 1, 1, -1, -1, 0, 0, 0, -1, 1, 1, -1, -1, 0, 0,
- 0, 1, 2, 1, -1, -1, 0, 1, 1, 2, 3, 2, 0, 0, 1, 2,
- -1, 0, 2, 1, 0, 0, 2, 3, -2, -1, 0, 0, -1, 0, 1, 2,
- 1, 1, 0, -1, -2, -2, -1, 1, 1, 1, 1, -1, -2, -2, 0, 2,
- 1, 1, 1, -1, -1, -1, 0, 2, 0, 0, 0, 0, 0, 0, 1, 2,
- -1, -1, -1, 0, 0, 0, 1, 2, -1, -2, -1, 1, 1, 1, 0, 0,
- -1, -2, -1, 1, 2, 2, 0, -1, -1, -2, -1, 2, 2, 2, 0, -1,
- -1, -1, -1, -2, -1, -1, 0, 1, 0, 0, -1, -1, -1, 0, 1, 2,
- 1, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 1, 1, 1,
- 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1,
- 1, 2, 1, 0, -1, -2, -2, -3, 2, 2, 1, 0, -2, -3, -4, -4,
- -4, -2, 1, 1, 1, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0, 0,
- 0, 1, 1, -2, -2, -1, 0, 1, 2, 2, 1, -2, -2, -1, 1, 2,
- 1, 2, 1, -2, -2, -1, 1, 2, -1, 1, 1, -1, -1, -1, 0, 1,
- -2, 0, 1, 1, 0, -1, -1, 0, -2, 0, 2, 2, 1, -1, -1, 0,
- 1, 1, 0, 0, 0, 1, 0, 0, -2, -3, -3, -2, -2, -1, 0, 0,
- -3, -4, -3, -2, -1, 0, 0, 0, -1, -1, 0, 1, 2, 3, 2, 1,
- 0, 1, 2, 3, 3, 3, 2, 1, 1, 1, 1, 2, 1, 0, 0, -1,
- 0, 0, 0, 0, -1, -1, -1, -1, 0, -1, -1, 0, 0, 0, 0, 0,
- 1, 1, 0, 0, -1, -1, 0, 2, 0, 0, 1, 0, -1, -1, 1, 1,
- -2, -1, 0, 1, 1, 1, 1, 1, -3, -3, 0, 2, 2, 1, 1, 0,
- -2, -2, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1,
- 3, 1, -1, -3, -2, -1, 0, 1, 4, 2, -1, -3, -3, -1, 1, 2,
- 0, 0, 0, -1, -1, -1, -1, -1, 1, 2, 1, 0, 0, 0, -1, -1,
- 2, 3, 3, 2, 1, 0, -1, -1, 3, 4, 4, 2, 1, 0, -1, -2,
- 3, 3, 2, 1, 0, -1, -2, -2, 1, 1, 0, -1, -1, -2, -2, -3,
- 0, 0, 0, -1, -1, -2, -2, -2, -1, -1, -1, -1, -1, -2, -2, -1,
- 1, 2, 2, 2, 2, 1, 2, 2, 0, 1, 1, 1, 1, 0, 0, 0,
- 0, 0, 0, 1, 1, 0, -1, -2, 0, 0, 0, 0, 1, 0, -1, -4,
- 1, 0, 0, 0, 0, 0, -2, -5, 1, 0, 0, 0, 0, 0, -1, -4,
- 1, 0, -1, 0, 0, 0, -1, -3, 0, -1, -1, 0, 1, 1, 1, -1,
- -2, -1, 0, 0, -1, -1, -1, -2, -1, 0, 0, 0, -1, -1, -2, -2,
- 0, 1, 1, 0, -1, -1, -1, -2, 0, 1, 1, 0, 0, 0, -1, -1,
- 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 2, 2, 1,
- 1, 1, 0, 0, 1, 2, 2, 1, 1, 1, 0, -1, 0, 1, 1, 0,
- 4, 2, 1, 0, 0, 1, 1, 1, 4, 2, 1, 0, 0, 0, 0, 1,
- 3, 1, 0, 0, -1, -1, -1, 0, 1, 0, 0, -1, -1, -2, -1, 0,
- 0, 0, 0, 0, -1, -1, -1, 0, -1, -1, 0, 0, -1, -1, 0, 1,
- -2, -1, 0, -1, -1, 0, 0, 1, -2, -2, -1, -2, -1, 0, 0, 1,
- 0, 1, 1, 1, 2, 1, 0, -1, -1, -1, -1, 0, 0, -1, -2, -2,
- -1, 0, -1, 0, 0, -1, -2, -1, 0, 0, 0, 0, 0, 0, 1, 2,
- 0, 0, 0, 0, 0, 0, 2, 3, -1, 0, -1, -1, -1, -1, 0, 3,
- -1, 0, 0, -1, -1, -2, 0, 3, 0, 0, 0, 0, -1, -1, 1, 4,
- 2, 2, 0, 0, 0, 0, 0, 1, 1, 1, -1, -2, -1, -2, -1, 1,
- -1, -1, -2, -2, -2, -3, -2, 0, -1, 0, -1, -1, -1, -2, -1, 1,
- 1, 1, 0, 0, 1, 0, 0, 1, 2, 2, 0, 0, 1, 0, 0, 1,
- 2, 2, 0, 0, 0, 0, -1, -1, 2, 2, 0, 0, 1, 0, -1, -1,
- -1, 0, 1, 1, 0, -1, -1, -1, 1, 2, 3, 2, 1, 0, 0, 0,
- 0, 1, 1, 1, 0, -1, 0, 0, -2, -2, -1, 0, 1, 0, 0, 0,
- -2, -2, -1, 2, 2, 2, 1, 0, -2, -1, 0, 1, 1, 0, 0, -1,
- -1, -1, 0, 0, -1, -2, -1, -2, 0, 1, 1, 1, 0, 0, 1, 1,
- -3, -3, -3, -2, -1, -1, -2, -2, -1, -1, 0, 1, 2, 1, 0, 0,
- 1, 1, 1, 2, 2, 1, 0, 0, 1, 1, 1, 1, 1, 0, -1, 1,
- 1, 0, -1, -1, 0, 0, -1, 1, 0, -1, -1, -1, 0, -1, -1, 1,
- 1, 0, -1, 0, 0, -1, 0, 2, 2, 0, -1, 0, 0, 0, 0, 2,
- 1, 0, -2, -1, 0, 1, 1, 0, 2, 0, -1, -1, 0, 1, 1, 0,
- 1, 0, -2, -1, 0, 1, 0, -1, 1, 0, -1, -1, 0, 1, 0, -1,
- 0, 1, 1, 0, 1, 1, 0, 0, -2, 1, 2, 1, 0, 0, 0, 1,
- -5, 0, 2, 1, 0, -1, 0, 1, -6, -1, 2, 1, 0, -1, 0, 0,
- 5, 3, 0, -1, -2, -1, -1, -1, 1, 1, 0, -1, -1, 0, -1, -1,
- -1, 0, 1, 1, 2, 2, 1, 0, -2, -1, 0, 1, 2, 1, 1, 1,
- -2, -1, -1, -1, 0, -1, 0, 1, 0, 1, 0, 0, -1, -1, 0, 0,
- 0, 1, 1, 1, 1, 0, 0, 0, -3, -2, 0, 1, 1, 0, 0, -1,
- -1, 0, 1, 0, -1, 0, 2, 3, -1, 0, 0, -2, -4, -2, -1, 0,
- 0, 1, 1, 0, -2, -1, 0, -1, 1, 2, 3, 1, 0, 1, 1, 0,
- -1, 0, 1, 1, 1, 1, 1, 0, -2, -3, -2, 0, 0, 0, 1, 0,
- -1, -2, -2, 0, 1, 0, 0, -1, 3, 1, 0, 0, 1, 0, -1, -1,
- -2, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 1, 1, 1,
- -1, -1, -1, 0, 1, 1, 1, 1, 0, -2, -3, -1, 1, 0, 0, 0,
- 1, -1, -3, -1, 1, 1, 0, -1, 3, 1, -1, 1, 2, 2, 0, -1,
- 3, 1, 0, 1, 2, 1, 1, 0, 0, -2, -2, -1, -1, 0, 0, 0,
- 1, 0, -1, -1, 1, 2, 1, 0, 0, -1, -2, -1, 1, 2, 2, 1,
- -1, -1, -1, 0, 0, 1, 2, 0, -2, 0, 0, 0, 0, 0, 1, -1,
- -1, 0, 1, 0, -1, -1, -1, -1, 0, 1, 1, 2, 0, -2, -1, 0,
- 1, 2, 2, 2, 1, -1, -1, 0, 0, 1, 1, 1, 0, -2, -2, -1,
- 0, 0, -1, -1, -1, -1, -2, -2, 0, 0, -1, 0, 1, 2, 2, 1,
- 0, 0, -1, -1, 0, 1, 2, 2, 1, 1, -1, -2, -1, -1, -1, -1,
- 2, 2, 1, 0, 0, -1, -2, -2, 1, 2, 2, 1, 0, 0, -2, -2,
- 0, 0, 0, 0, 1, 1, 0, -1, 0, -1, -1, -1, 2, 3, 2, 1,
- 0, -2, 1, 2, -1, 0, 0, 1, -1, -2, 2, 3, -1, 0, 0, 0,
- 0, -2, 2, 3, -1, -1, 0, 0, 0, -1, 3, 2, -2, 0, 1, 0,
- 0, -1, 3, 1, -2, 0, 1, 0, 0, -1, 2, 1, -1, 1, 0, -1,
- 0, 0, 1, -1, -2, 0, 0, -1, 1, 0, 0, -2, -2, -1, -1, -1,
- 1, 1, 1, 1, 1, -1, -1, -2, 0, 0, 0, 1, 1, 1, 1, 1,
- 0, 0, 0, 1, 1, 1, 2, 3, 1, 0, 0, -1, 0, 0, 1, 2,
- 0, -1, -1, -2, -1, 0, 1, 2, -2, -2, -2, -2, -1, 0, 1, 1,
- -1, -1, -1, -1, 0, 0, 0, -1, 2, 2, 2, 0, -1, -1, -2, -4,
- -1, -2, -1, -1, 0, 1, 2, 3, -1, -1, -1, -1, 0, 1, 2, 3,
- 1, 0, -1, 0, -1, 0, 1, 2, 1, 0, 0, 0, -1, 0, 2, 2,
- 1, 0, -1, -1, -2, 0, 1, 2, 0, -2, -2, -2, -3, -1, 0, 1,
- 0, -2, -2, -2, -2, -1, 1, 1, 0, 0, 0, 0, 0, 1, 2, 2
-};
-
-/* list of codebooks for intra-coded vectors */
-const int8_t* const ff_svq1_intra_codebooks[6] = {
- svq1_intra_codebook_4x2, svq1_intra_codebook_4x4,
- svq1_intra_codebook_8x4, svq1_intra_codebook_8x8,
- NULL, NULL,
-};
-
-#endif /* AVCODEC_SVQ1_CB_H */
+++ /dev/null
-/*
- * copyright (C) 2003 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SVQ1_VLC_H
-#define AVCODEC_SVQ1_VLC_H
-
-#include <stdint.h>
-
-/* values in this table range from 0..3; adjust retrieved value by +0 */
-const uint8_t ff_svq1_block_type_vlc[4][2] = {
- /* { code, length } */
- { 0x1, 1 }, { 0x1, 2 }, { 0x1, 3 }, { 0x0, 3 }
-
-};
-
-/* values in this table range from -1..6; adjust retrieved value by -1 */
-const uint8_t ff_svq1_intra_multistage_vlc[6][8][2] = {
- /* { code, length } */
-{
- { 0x1, 5 }, { 0x1, 1 }, { 0x3, 3 }, { 0x2, 3 },
- { 0x3, 4 }, { 0x2, 4 }, { 0x0, 5 }, { 0x1, 4 }
-},{
- { 0x1, 4 }, { 0x3, 2 }, { 0x5, 3 }, { 0x4, 3 },
- { 0x3, 3 }, { 0x2, 3 }, { 0x0, 4 }, { 0x1, 3 }
-},{
- { 0x1, 5 }, { 0x1, 1 }, { 0x3, 3 }, { 0x0, 5 },
- { 0x3, 4 }, { 0x2, 3 }, { 0x2, 4 }, { 0x1, 4 }
-},{
- { 0x1, 6 }, { 0x1, 1 }, { 0x1, 2 }, { 0x0, 6 },
- { 0x3, 4 }, { 0x2, 4 }, { 0x1, 5 }, { 0x1, 4 }
-},{
- { 0x1, 6 }, { 0x1, 1 }, { 0x1, 2 }, { 0x3, 5 },
- { 0x2, 5 }, { 0x0, 6 }, { 0x1, 5 }, { 0x1, 3 }
-},{
- { 0x1, 7 }, { 0x1, 1 }, { 0x1, 2 }, { 0x1, 3 },
- { 0x1, 4 }, { 0x1, 6 }, { 0x0, 7 }, { 0x1, 5 }
-}
-};
-
-/* values in this table range from -1..6; adjust retrieved value by -1 */
-const uint8_t ff_svq1_inter_multistage_vlc[6][8][2] = {
- /* { code, length } */
-{
- { 0x3, 2 }, { 0x5, 3 }, { 0x4, 3 }, { 0x3, 3 },
- { 0x2, 3 }, { 0x1, 3 }, { 0x1, 4 }, { 0x0, 4 }
-},{
- { 0x3, 2 }, { 0x5, 3 }, { 0x4, 3 }, { 0x3, 3 },
- { 0x2, 3 }, { 0x1, 3 }, { 0x1, 4 }, { 0x0, 4 }
-},{
- { 0x1, 1 }, { 0x3, 3 }, { 0x2, 3 }, { 0x3, 4 },
- { 0x2, 4 }, { 0x1, 4 }, { 0x1, 5 }, { 0x0, 5 }
-},{
- { 0x1, 1 }, { 0x3, 3 }, { 0x2, 3 }, { 0x3, 4 },
- { 0x2, 4 }, { 0x1, 4 }, { 0x1, 5 }, { 0x0, 5 }
-},{
- { 0x1, 1 }, { 0x3, 3 }, { 0x2, 3 }, { 0x3, 4 },
- { 0x2, 4 }, { 0x1, 4 }, { 0x1, 5 }, { 0x0, 5 }
-},{
- { 0x1, 1 }, { 0x1, 2 }, { 0x1, 3 }, { 0x3, 5 },
- { 0x2, 5 }, { 0x1, 5 }, { 0x1, 6 }, { 0x0, 6 }
-}
-};
-
-/* values in this table range from 0..255; adjust retrieved value by +0 */
-const uint16_t ff_svq1_intra_mean_vlc[256][2] = {
- /* { code, length } */
- { 0x37, 6 }, { 0x56, 7 }, { 0x1, 17 }, { 0x1, 20 },
- { 0x2, 20 }, { 0x3, 20 }, { 0x0, 20 }, { 0x4, 20 },
- { 0x5, 20 }, { 0x3, 19 }, { 0x15, 11 }, { 0x42, 9 },
- { 0x14, 11 }, { 0x3, 14 }, { 0x2, 14 }, { 0x1, 15 },
- { 0x1, 16 }, { 0x1, 12 }, { 0x2B, 10 }, { 0x18, 11 },
- { 0xC, 11 }, { 0x41, 9 }, { 0x78, 8 }, { 0x6C, 8 },
- { 0x55, 7 }, { 0xF, 4 }, { 0xE, 4 }, { 0x34, 6 },
- { 0x51, 7 }, { 0x72, 8 }, { 0x6E, 8 }, { 0x40, 9 },
- { 0x3F, 9 }, { 0x3E, 9 }, { 0x3D, 9 }, { 0x3C, 9 },
- { 0x3B, 9 }, { 0x3A, 9 }, { 0x39, 9 }, { 0x38, 9 },
- { 0x37, 9 }, { 0x43, 9 }, { 0x46, 9 }, { 0x47, 9 },
- { 0x45, 9 }, { 0x44, 9 }, { 0x49, 9 }, { 0x48, 9 },
- { 0x4A, 8 }, { 0x79, 8 }, { 0x76, 8 }, { 0x77, 8 },
- { 0x71, 8 }, { 0x75, 8 }, { 0x74, 8 }, { 0x73, 8 },
- { 0x6A, 8 }, { 0x55, 8 }, { 0x70, 8 }, { 0x6F, 8 },
- { 0x52, 8 }, { 0x6D, 8 }, { 0x4C, 8 }, { 0x6B, 8 },
- { 0x40, 7 }, { 0x69, 8 }, { 0x68, 8 }, { 0x67, 8 },
- { 0x66, 8 }, { 0x65, 8 }, { 0x64, 8 }, { 0x63, 8 },
- { 0x62, 8 }, { 0x61, 8 }, { 0x60, 8 }, { 0x5F, 8 },
- { 0x5E, 8 }, { 0x5D, 8 }, { 0x5C, 8 }, { 0x5B, 8 },
- { 0x5A, 8 }, { 0x59, 8 }, { 0x58, 8 }, { 0x57, 8 },
- { 0x56, 8 }, { 0x3D, 7 }, { 0x54, 8 }, { 0x53, 8 },
- { 0x3F, 7 }, { 0x51, 8 }, { 0x50, 8 }, { 0x4F, 8 },
- { 0x4E, 8 }, { 0x4D, 8 }, { 0x41, 7 }, { 0x4B, 8 },
- { 0x53, 7 }, { 0x3E, 7 }, { 0x48, 8 }, { 0x4F, 7 },
- { 0x52, 7 }, { 0x45, 8 }, { 0x50, 7 }, { 0x43, 8 },
- { 0x42, 8 }, { 0x41, 8 }, { 0x42, 7 }, { 0x43, 7 },
- { 0x3E, 8 }, { 0x44, 7 }, { 0x3C, 8 }, { 0x45, 7 },
- { 0x46, 7 }, { 0x47, 7 }, { 0x48, 7 }, { 0x49, 7 },
- { 0x4A, 7 }, { 0x4B, 7 }, { 0x4C, 7 }, { 0x4D, 7 },
- { 0x4E, 7 }, { 0x58, 7 }, { 0x59, 7 }, { 0x5A, 7 },
- { 0x5B, 7 }, { 0x5C, 7 }, { 0x5D, 7 }, { 0x44, 8 },
- { 0x49, 8 }, { 0x29, 8 }, { 0x3F, 8 }, { 0x3D, 8 },
- { 0x3B, 8 }, { 0x2C, 8 }, { 0x28, 8 }, { 0x25, 8 },
- { 0x26, 8 }, { 0x5E, 7 }, { 0x57, 7 }, { 0x54, 7 },
- { 0x5F, 7 }, { 0x62, 7 }, { 0x63, 7 }, { 0x64, 7 },
- { 0x61, 7 }, { 0x65, 7 }, { 0x67, 7 }, { 0x66, 7 },
- { 0x35, 6 }, { 0x36, 6 }, { 0x60, 7 }, { 0x39, 8 },
- { 0x3A, 8 }, { 0x38, 8 }, { 0x37, 8 }, { 0x36, 8 },
- { 0x35, 8 }, { 0x34, 8 }, { 0x33, 8 }, { 0x32, 8 },
- { 0x31, 8 }, { 0x30, 8 }, { 0x2D, 8 }, { 0x2B, 8 },
- { 0x2A, 8 }, { 0x27, 8 }, { 0x40, 8 }, { 0x46, 8 },
- { 0x47, 8 }, { 0x26, 9 }, { 0x25, 9 }, { 0x24, 9 },
- { 0x23, 9 }, { 0x22, 9 }, { 0x2E, 8 }, { 0x2F, 8 },
- { 0x1F, 9 }, { 0x36, 9 }, { 0x1D, 9 }, { 0x21, 9 },
- { 0x1B, 9 }, { 0x1C, 9 }, { 0x19, 9 }, { 0x1A, 9 },
- { 0x18, 9 }, { 0x17, 9 }, { 0x16, 9 }, { 0x1E, 9 },
- { 0x20, 9 }, { 0x27, 9 }, { 0x28, 9 }, { 0x29, 9 },
- { 0x2A, 9 }, { 0x2B, 9 }, { 0x2C, 9 }, { 0x2D, 9 },
- { 0x2E, 9 }, { 0x2F, 9 }, { 0x30, 9 }, { 0x35, 9 },
- { 0x31, 9 }, { 0x32, 9 }, { 0x33, 9 }, { 0x34, 9 },
- { 0x19, 10 }, { 0x2A, 10 }, { 0x17, 10 }, { 0x16, 10 },
- { 0x15, 10 }, { 0x28, 10 }, { 0x26, 10 }, { 0x25, 10 },
- { 0x22, 10 }, { 0x21, 10 }, { 0x18, 10 }, { 0x14, 10 },
- { 0x29, 10 }, { 0x12, 10 }, { 0xD, 10 }, { 0xE, 10 },
- { 0xF, 10 }, { 0x10, 10 }, { 0x11, 10 }, { 0x1A, 10 },
- { 0x1B, 10 }, { 0x1C, 10 }, { 0x1D, 10 }, { 0x1E, 10 },
- { 0x1F, 10 }, { 0x20, 10 }, { 0x13, 10 }, { 0x23, 10 },
- { 0x24, 10 }, { 0x9, 11 }, { 0x8, 11 }, { 0x7, 11 },
- { 0x27, 10 }, { 0x5, 11 }, { 0xB, 11 }, { 0x6, 11 },
- { 0x4, 11 }, { 0x3, 11 }, { 0x2, 11 }, { 0x1, 11 },
- { 0xA, 11 }, { 0x16, 11 }, { 0x19, 11 }, { 0x17, 11 },
- { 0xD, 11 }, { 0xE, 11 }, { 0xF, 11 }, { 0x10, 11 },
- { 0x11, 11 }, { 0x12, 11 }, { 0x13, 11 }, { 0x1, 14 }
-};
-
-/* values in this table range from -256..255; adjust retrieved value by -256 */
-const uint16_t ff_svq1_inter_mean_vlc[512][2] = {
- /* { code, length } */
- { 0x5A, 22 }, { 0xD4, 22 }, { 0xD5, 22 }, { 0xD6, 22 },
- { 0xD7, 22 }, { 0xD8, 22 }, { 0xD9, 22 }, { 0xDA, 22 },
- { 0xDB, 22 }, { 0xDC, 22 }, { 0xDD, 22 }, { 0xDE, 22 },
- { 0xDF, 22 }, { 0xE0, 22 }, { 0xE1, 22 }, { 0xE2, 22 },
- { 0xE3, 22 }, { 0xE4, 22 }, { 0xE5, 22 }, { 0xE6, 22 },
- { 0xE8, 22 }, { 0xCB, 22 }, { 0xE9, 22 }, { 0xEA, 22 },
- { 0xE7, 22 }, { 0xEC, 22 }, { 0xED, 22 }, { 0xEE, 22 },
- { 0xEF, 22 }, { 0xF0, 22 }, { 0xF1, 22 }, { 0xF2, 22 },
- { 0xF3, 22 }, { 0xF4, 22 }, { 0xF5, 22 }, { 0xF6, 22 },
- { 0xF7, 22 }, { 0xF8, 22 }, { 0x102, 22 }, { 0xEB, 22 },
- { 0xF9, 22 }, { 0xFC, 22 }, { 0xFD, 22 }, { 0xFE, 22 },
- { 0x100, 22 }, { 0x5C, 22 }, { 0x60, 22 }, { 0x101, 22 },
- { 0x71, 22 }, { 0x104, 22 }, { 0x105, 22 }, { 0xFB, 22 },
- { 0xFF, 22 }, { 0x86, 21 }, { 0xFA, 22 }, { 0x7C, 22 },
- { 0x75, 22 }, { 0x103, 22 }, { 0x78, 22 }, { 0xD3, 22 },
- { 0x7B, 22 }, { 0x82, 22 }, { 0xD2, 22 }, { 0xD1, 22 },
- { 0xD0, 22 }, { 0xCF, 22 }, { 0xCE, 22 }, { 0xCD, 22 },
- { 0xCC, 22 }, { 0xC3, 22 }, { 0xCA, 22 }, { 0xC9, 22 },
- { 0xC8, 22 }, { 0xC7, 22 }, { 0xC6, 22 }, { 0xC5, 22 },
- { 0x8B, 22 }, { 0xC4, 22 }, { 0xC2, 22 }, { 0xC1, 22 },
- { 0xC0, 22 }, { 0xBF, 22 }, { 0xBE, 22 }, { 0xBD, 22 },
- { 0xBC, 22 }, { 0xBB, 22 }, { 0xBA, 22 }, { 0xB9, 22 },
- { 0x61, 22 }, { 0x84, 22 }, { 0x85, 22 }, { 0x86, 22 },
- { 0x87, 22 }, { 0x88, 22 }, { 0x89, 22 }, { 0x8A, 22 },
- { 0x8C, 22 }, { 0x8D, 22 }, { 0x8E, 22 }, { 0x8F, 22 },
- { 0x90, 22 }, { 0x91, 22 }, { 0x92, 22 }, { 0x93, 22 },
- { 0x94, 22 }, { 0x95, 22 }, { 0x96, 22 }, { 0x97, 22 },
- { 0x98, 22 }, { 0x99, 22 }, { 0x9A, 22 }, { 0x9B, 22 },
- { 0x9C, 22 }, { 0x9D, 22 }, { 0x9E, 22 }, { 0x9F, 22 },
- { 0xA0, 22 }, { 0xA1, 22 }, { 0xA2, 22 }, { 0xA3, 22 },
- { 0xA4, 22 }, { 0xA5, 22 }, { 0xA6, 22 }, { 0xA7, 22 },
- { 0xA8, 22 }, { 0xA9, 22 }, { 0xAA, 22 }, { 0xAB, 22 },
- { 0x7F, 22 }, { 0x8F, 21 }, { 0xAC, 22 }, { 0xAD, 22 },
- { 0xAE, 22 }, { 0xAF, 22 }, { 0xB0, 22 }, { 0xB1, 22 },
- { 0x53, 20 }, { 0x90, 21 }, { 0xB2, 22 }, { 0x91, 21 },
- { 0xB3, 22 }, { 0xB4, 22 }, { 0x54, 20 }, { 0xB5, 22 },
- { 0xB6, 22 }, { 0x8C, 21 }, { 0x34, 19 }, { 0x3D, 18 },
- { 0x55, 20 }, { 0xB7, 22 }, { 0xB8, 22 }, { 0x8B, 21 },
- { 0x56, 20 }, { 0x3D, 19 }, { 0x57, 20 }, { 0x58, 20 },
- { 0x40, 19 }, { 0x43, 19 }, { 0x47, 19 }, { 0x2A, 18 },
- { 0x2E, 19 }, { 0x2C, 18 }, { 0x46, 19 }, { 0x59, 20 },
- { 0x49, 19 }, { 0x2D, 19 }, { 0x38, 18 }, { 0x36, 18 },
- { 0x39, 18 }, { 0x45, 19 }, { 0x28, 18 }, { 0x30, 18 },
- { 0x35, 18 }, { 0x20, 17 }, { 0x44, 19 }, { 0x32, 18 },
- { 0x31, 18 }, { 0x1F, 17 }, { 0x2F, 18 }, { 0x2E, 18 },
- { 0x2D, 18 }, { 0x21, 17 }, { 0x22, 17 }, { 0x23, 17 },
- { 0x24, 17 }, { 0x27, 16 }, { 0x23, 16 }, { 0x20, 16 },
- { 0x1D, 16 }, { 0x25, 16 }, { 0x1E, 16 }, { 0x24, 16 },
- { 0x2A, 16 }, { 0x26, 16 }, { 0x21, 15 }, { 0x29, 16 },
- { 0x22, 15 }, { 0x23, 15 }, { 0x24, 15 }, { 0x1B, 15 },
- { 0x1A, 15 }, { 0x1D, 15 }, { 0x1F, 15 }, { 0x27, 15 },
- { 0x17, 14 }, { 0x18, 14 }, { 0x19, 14 }, { 0x1B, 14 },
- { 0x1C, 14 }, { 0x1E, 14 }, { 0x25, 14 }, { 0x20, 14 },
- { 0x21, 14 }, { 0x13, 13 }, { 0x14, 13 }, { 0x15, 13 },
- { 0x16, 13 }, { 0x17, 13 }, { 0x18, 13 }, { 0x19, 13 },
- { 0x1A, 13 }, { 0x18, 12 }, { 0x17, 12 }, { 0x15, 12 },
- { 0x14, 12 }, { 0x13, 12 }, { 0x12, 12 }, { 0xF, 11 },
- { 0x10, 11 }, { 0x12, 11 }, { 0x13, 11 }, { 0x1B, 11 },
- { 0x1A, 11 }, { 0xE, 10 }, { 0x13, 10 }, { 0xF, 10 },
- { 0x10, 10 }, { 0x11, 10 }, { 0x12, 10 }, { 0xD, 9 },
- { 0x14, 9 }, { 0x15, 9 }, { 0xC, 9 }, { 0x13, 9 },
- { 0xF, 8 }, { 0xE, 8 }, { 0x10, 8 }, { 0x11, 8 },
- { 0xC, 7 }, { 0x9, 7 }, { 0xA, 7 }, { 0x8, 6 },
- { 0x9, 6 }, { 0x9, 5 }, { 0x8, 5 }, { 0x5, 4 },
- { 0x1, 1 }, { 0x3, 3 }, { 0x7, 5 }, { 0x6, 5 },
- { 0xB, 6 }, { 0xA, 6 }, { 0xE, 7 }, { 0xF, 7 },
- { 0xB, 7 }, { 0xD, 7 }, { 0xB, 8 }, { 0xD, 8 },
- { 0xC, 8 }, { 0xF, 9 }, { 0x10, 9 }, { 0x11, 9 },
- { 0xE, 9 }, { 0x12, 9 }, { 0x17, 10 }, { 0x14, 10 },
- { 0x16, 10 }, { 0x15, 10 }, { 0x19, 11 }, { 0x18, 11 },
- { 0x17, 11 }, { 0x16, 11 }, { 0x15, 11 }, { 0x14, 11 },
- { 0x11, 11 }, { 0x19, 12 }, { 0x1A, 12 }, { 0x16, 12 },
- { 0x1D, 12 }, { 0x1B, 12 }, { 0x1C, 12 }, { 0x20, 13 },
- { 0x1C, 13 }, { 0x23, 13 }, { 0x22, 13 }, { 0x21, 13 },
- { 0x1F, 13 }, { 0x1E, 13 }, { 0x1B, 13 }, { 0x1D, 13 },
- { 0x24, 14 }, { 0x16, 14 }, { 0x1A, 14 }, { 0x22, 14 },
- { 0x1D, 14 }, { 0x1F, 14 }, { 0x15, 14 }, { 0x23, 14 },
- { 0x18, 15 }, { 0x20, 15 }, { 0x29, 15 }, { 0x28, 15 },
- { 0x26, 15 }, { 0x25, 15 }, { 0x19, 15 }, { 0x1C, 15 },
- { 0x1E, 15 }, { 0x17, 15 }, { 0x2C, 16 }, { 0x2B, 16 },
- { 0x1C, 16 }, { 0x21, 16 }, { 0x2D, 16 }, { 0x28, 16 },
- { 0x1F, 16 }, { 0x1B, 16 }, { 0x1A, 16 }, { 0x22, 16 },
- { 0x2D, 17 }, { 0x32, 17 }, { 0x2C, 17 }, { 0x27, 17 },
- { 0x31, 17 }, { 0x33, 17 }, { 0x2F, 17 }, { 0x2B, 17 },
- { 0x37, 18 }, { 0x2A, 17 }, { 0x2E, 17 }, { 0x30, 17 },
- { 0x29, 17 }, { 0x28, 17 }, { 0x26, 17 }, { 0x25, 17 },
- { 0x2F, 19 }, { 0x33, 18 }, { 0x34, 18 }, { 0x30, 19 },
- { 0x3A, 18 }, { 0x3B, 18 }, { 0x31, 19 }, { 0x3C, 18 },
- { 0x2B, 18 }, { 0x29, 18 }, { 0x48, 19 }, { 0x27, 18 },
- { 0x42, 19 }, { 0x41, 19 }, { 0x26, 18 }, { 0x52, 20 },
- { 0x51, 20 }, { 0x3F, 19 }, { 0x3E, 19 }, { 0x39, 19 },
- { 0x3C, 19 }, { 0x3B, 19 }, { 0x3A, 19 }, { 0x25, 18 },
- { 0x38, 19 }, { 0x50, 20 }, { 0x37, 19 }, { 0x36, 19 },
- { 0x87, 21 }, { 0x4F, 20 }, { 0x35, 19 }, { 0x4E, 20 },
- { 0x33, 19 }, { 0x32, 19 }, { 0x4D, 20 }, { 0x4C, 20 },
- { 0x83, 22 }, { 0x4B, 20 }, { 0x81, 22 }, { 0x80, 22 },
- { 0x8E, 21 }, { 0x7E, 22 }, { 0x7D, 22 }, { 0x84, 21 },
- { 0x8D, 21 }, { 0x7A, 22 }, { 0x79, 22 }, { 0x4A, 20 },
- { 0x77, 22 }, { 0x76, 22 }, { 0x89, 21 }, { 0x74, 22 },
- { 0x73, 22 }, { 0x72, 22 }, { 0x49, 20 }, { 0x70, 22 },
- { 0x6F, 22 }, { 0x6E, 22 }, { 0x6D, 22 }, { 0x6C, 22 },
- { 0x6B, 22 }, { 0x6A, 22 }, { 0x69, 22 }, { 0x68, 22 },
- { 0x67, 22 }, { 0x66, 22 }, { 0x65, 22 }, { 0x64, 22 },
- { 0x63, 22 }, { 0x62, 22 }, { 0x8A, 21 }, { 0x88, 21 },
- { 0x5F, 22 }, { 0x5E, 22 }, { 0x5D, 22 }, { 0x85, 21 },
- { 0x5B, 22 }, { 0x83, 21 }, { 0x59, 22 }, { 0x58, 22 },
- { 0x57, 22 }, { 0x56, 22 }, { 0x55, 22 }, { 0x54, 22 },
- { 0x53, 22 }, { 0x52, 22 }, { 0x51, 22 }, { 0x50, 22 },
- { 0x4F, 22 }, { 0x4E, 22 }, { 0x4D, 22 }, { 0x4C, 22 },
- { 0x4B, 22 }, { 0x4A, 22 }, { 0x49, 22 }, { 0x48, 22 },
- { 0x47, 22 }, { 0x46, 22 }, { 0x45, 22 }, { 0x44, 22 },
- { 0x43, 22 }, { 0x42, 22 }, { 0x41, 22 }, { 0x40, 22 },
- { 0x3F, 22 }, { 0x3E, 22 }, { 0x3D, 22 }, { 0x3C, 22 },
- { 0x3B, 22 }, { 0x3A, 22 }, { 0x39, 22 }, { 0x38, 22 },
- { 0x37, 22 }, { 0x36, 22 }, { 0x35, 22 }, { 0x34, 22 },
- { 0x33, 22 }, { 0x32, 22 }, { 0x31, 22 }, { 0x30, 22 },
- { 0x2F, 22 }, { 0x2E, 22 }, { 0x2D, 22 }, { 0x2C, 22 },
- { 0x2B, 22 }, { 0x2A, 22 }, { 0x29, 22 }, { 0x28, 22 },
- { 0x27, 22 }, { 0x26, 22 }, { 0x25, 22 }, { 0x24, 22 },
- { 0x23, 22 }, { 0x22, 22 }, { 0x21, 22 }, { 0x20, 22 },
- { 0x1F, 22 }, { 0x1E, 22 }, { 0x1D, 22 }, { 0x1C, 22 },
- { 0x1B, 22 }, { 0x1A, 22 }, { 0x19, 22 }, { 0x18, 22 },
- { 0x17, 22 }, { 0x16, 22 }, { 0x15, 22 }, { 0x14, 22 },
- { 0x13, 22 }, { 0x12, 22 }, { 0x11, 22 }, { 0x10, 22 },
- { 0xF, 22 }, { 0xE, 22 }, { 0xD, 22 }, { 0xC, 22 },
- { 0xB, 22 }, { 0xA, 22 }, { 0x9, 22 }, { 0x8, 22 },
- { 0x7, 22 }, { 0x6, 22 }, { 0x5, 22 }, { 0x4, 22 },
- { 0x3, 22 }, { 0x2, 22 }, { 0x1, 22 }, { 0x0, 22 }
-};
-
-#endif /* AVCODEC_SVQ1_VLC_H */
+++ /dev/null
-/*
- * SVQ1 Encoder
- * Copyright (C) 2004 Mike Melanson <melanson@pcisys.net>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * svq1 code books.
- */
-
-#ifndef AVCODEC_SVQ1ENC_CB_H
-#define AVCODEC_SVQ1ENC_CB_H
-
-#include <stdint.h>
-
-static const int8_t svq1_inter_codebook_sum[4][16*6] = {
- {
- -1, 1, -2, 0, 1, -1, -1, -1, -2, -1, 1, -1, -1, 0, -1, -1,
- 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, -3, 1, -1, 0, 1, -1,
- 1, -1, 2, 2, 1, 1, 2, 0, 0, 0, -1, 1, 1, 0, 0, 0,
- 1, -1, 0, 1, -1, 1, 1, 0, 1, 0, -1, 1, 1, 0, 0, 0,
- -2, 0, 0, -2, 0, 0, -2, 0, -2, -1, -2, -1, 0, 0, -1, 0,
- 1, 0, 1, -1, 2, 2, 1, 2, 2, 1, 0, 1, 1, 0, 1, 1,
- },{
- -2, 1, -1, -1, 1, 0, 1, -1, -1, -1, 1, -1, 0, -1, 0, -1,
- 0, 0, 0, -2, 0, 1, 0, -1, -1, 0, 2, -3, 1, -2, 3, -1,
- 2, 0, 2, 1, 1, -1, 1, 1, 0, 0, 1, 1, 2, -2, 1, 0,
- -2, -1, 2, -2, -2, 0, -3, 0, -1, 0, -1, 0, -1, 0, -2, -3,
- 1, -2, -2, -1, 1, -1, -1, 1, -1, 1, 1, 0, -2, 0, 1, 1,
- 1, 1, 2, 1, 0, 0, -1, 0, 0, 1, 0, 1, -1, 1, 0, 2,
- },{
- 0, 0, 0, -3, 1, 1, 1, -3, 0, -1, 0, -3, 1, -3, 0, -2,
- 1, 2, -1, -3, 0, -3, 1, -1, 0, -1, 0, 0, 1, 2, 1, 1,
- -1, 2, -3, 3, 1, 0, -5, 1, 0, -1, -3, 1, 0, 2, 0, -3,
- 4, 2, 0, -2, 1, -2, 3, -2, 1, 1, 0, -1, 2, 5, 3, 1,
- -1, 0, 2, -3, -2, 0, 0, -2, 2, -3, -1, -1, 2, 1, 0, -2,
- 3, -1, 1, -1, 2, 4, 0, 1, 0, 1, 0, -1, -3, -2, -1, 0,
- },{
- 0, 2, -1, -1, 2, -4, -2, 3, 0, -1, -5, 1, 0, 1, 0, 6,
- -2, 2, 0, 1, 1, -1, -1, -2, 1, -2, -1, 0, 2, -2, -2, -1,
- -4, 2, -1, -3, -1, -2, 2, -1, 2, -1, 2, 0, 3, -3, -3, 0,
- -3, 0, 0, -2, 4, -4, 0, -1, 4, 0, -2, -2, 3, -2, 0, 4,
- 5, 0, 1, 0, -3, 3, 3, 2, 0, 0, 1, 2, -5, -2, -3, 0,
- -3, 2, -2, 2, -2, 4, 7, -3, 4, 2, 3, 2, -1, 0, -3, 1,
- }
-};
-
-static const int8_t svq1_intra_codebook_sum[4][16*6] = {
- {
- 0, 0, 0, -1, -1, -1, -1, -2, 0, -1, -1, 0, -1, 0, 1, 0,
- 1, 0, -1, 1, 0, 0, -1, 1, -1, 0, 0, 0, -1, 1, 0, 0,
- -1, 0, 0, 1, -1, 1, 0, -1, -1, 0, 1, 1, 0, 0, -1, 1,
- 0, 1, 0, 0, 1, -1, 0, 0, 0, -1, 1, 0, 1, 0, -2, 1,
- 0, -1, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0,
- 0, 1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, -1, 1, 1, -1,
- },{
- -1, -2, 0, -1, 1, 0, -1, 0, -1, -4, -1, -2, -1, -2, 1, -2,
- 0, 0, 4, -2, -1, 1, 1, 0, 2, 1, 1, 0, 2, 0, 0, 0,
- 1, 1, 0, -1, -1, -1, 1, 0, -1, -3, -3, 1, -1, 1, -2, -1,
- 1, -1, 0, 1, 2, 1, -1, -1, 1, 1, 1, 2, 1, 0, 1, -2,
- -2, 0, -1, -2, -2, 0, -1, -1, -1, 0, 1, 0, -1, -1, 0, -1,
- 0, 2, 1, 2, 2, 1, -1, 1, 0, 2, 0, -1, 1, 0, 0, 0,
- },{
- -2, 0, -1, -1, 1, 1, -2, 0, -2, 0, 1, -2, -2, 1, -1, -1,
- 3, -2, 0, -3, -4, -3, 2, 1, 0, 3, -2, 2, 3, 2, 2, -1,
- -3, 1, 0, 1, 0, 0, 0, 1, -2, 1, -2, -2, -1, -2, -2, 2,
- 0, -4, 0, 2, -1, 0, 2, 2, 2, 1, 0, -1, -1, 1, -3, 2,
- 2, 1, 0, 3, 1, -1, 1, 3, 1, 0, 1, 1, 2, -1, 1, -1,
- -2, -1, 0, -1, 1, -1, 1, -2, -2, -1, -1, -3, 1, -4, -3, 1,
- },{
- -2, 0, -2, 3, -1, -1, 0, 2, 2, -1, -3, 2, 1, 0, -2, -1,
- -3, -2, -2, 1, 2, -3, 0, 1, -5, -2, -3, 0, -2, -1, 2, 0,
- -1, -1, 0, -2, 1, 3, -7, -2, -2, -1, 2, -1, 0, 3, 1, 3,
- 1, 0, 0, 1, 2, 3, 1, 2, 0, -2, -2, 1, 1, 2, 2, 3,
- 4, 1, -1, 2, -2, 4, 0, 0, 0, 4, 2, 0, -2, -2, 2, -4,
- -1, 5, -2, -2, -3, 2, -3, -1, 3, -3, 0, 4, 3, 0, 1, -2,
- }
-};
-
-#endif /* AVCODEC_SVQ1ENC_CB_H */
+++ /dev/null
-/*
- * copyright (c) 2008 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_SYNTH_FILTER_H
-#define AVCODEC_SYNTH_FILTER_H
-
-#include "fft.h"
-
-typedef struct SynthFilterContext {
- void (*synth_filter_float)(FFTContext *imdct,
- float *synth_buf_ptr, int *synth_buf_offset,
- float synth_buf2[32], const float window[512],
- float out[32], const float in[32],
- float scale, float bias);
-} SynthFilterContext;
-
-void ff_synth_filter_init(SynthFilterContext *c);
-void ff_synth_filter_init_arm(SynthFilterContext *c);
-
-#endif /* AVCODEC_SYNTH_FILTER_H */
+++ /dev/null
-/*
- * Generate a file for hardcoded tables
- *
- * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_TABLEPRINT_H
-#define AVCODEC_TABLEPRINT_H
-
-#include <stdint.h>
-#include <stdio.h>
-
-#define WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, ...)\
-void write_##name##_array(const type *data, int len)\
-{\
- int i;\
- printf(" ");\
- for (i = 0; i < len - 1; i++) {\
- printf(" "fmtstr",", __VA_ARGS__);\
- if ((i & linebrk) == linebrk) printf("\n ");\
- }\
- printf(" "fmtstr"\n", __VA_ARGS__);\
-}
-
-#define WRITE_1D_FUNC(name, type, fmtstr, linebrk)\
- WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, data[i])
-
-#define WRITE_2D_FUNC(name, type)\
-void write_##name##_2d_array(const void *arg, int len, int len2)\
-{\
- const type *data = arg;\
- int i;\
- printf(" {\n");\
- for (i = 0; i < len; i++) {\
- write_##name##_array(data + i * len2, len2);\
- printf(i == len - 1 ? " }\n" : " }, {\n");\
- }\
-}
-
-/**
- * \defgroup printfuncs Predefined functions for printing tables
- *
- * \{
- */
-void write_int8_array (const int8_t *, int);
-void write_uint8_array (const uint8_t *, int);
-void write_uint16_array (const uint16_t *, int);
-void write_uint32_array (const uint32_t *, int);
-void write_float_array (const float *, int);
-void write_int8_2d_array (const void *, int, int);
-void write_uint8_2d_array (const void *, int, int);
-void write_uint32_2d_array(const void *, int, int);
-/** \} */ // end of printfuncs group
-
-/** Write a standard file header */
-void write_fileheader(void);
-
-#endif /* AVCODEC_TABLEPRINT_H */
+++ /dev/null
-/*
- * TIFF tables
- * Copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * TIFF tables
- * @file
- * @author Konstantin Shishkov
- */
-#ifndef AVCODEC_TIFF_H
-#define AVCODEC_TIFF_H
-
-#include <stdint.h>
-
-/** abridged list of TIFF tags */
-enum TiffTags{
- TIFF_SUBFILE = 0xfe,
- TIFF_WIDTH = 0x100,
- TIFF_HEIGHT,
- TIFF_BPP,
- TIFF_COMPR,
- TIFF_INVERT = 0x106,
- TIFF_FILL_ORDER = 0x10A,
- TIFF_STRIP_OFFS = 0x111,
- TIFF_SAMPLES_PER_PIXEL = 0x115,
- TIFF_ROWSPERSTRIP = 0x116,
- TIFF_STRIP_SIZE,
- TIFF_XRES = 0x11A,
- TIFF_YRES = 0x11B,
- TIFF_PLANAR = 0x11C,
- TIFF_XPOS = 0x11E,
- TIFF_YPOS = 0x11F,
- TIFF_T4OPTIONS = 0x124,
- TIFF_T6OPTIONS,
- TIFF_RES_UNIT = 0x128,
- TIFF_SOFTWARE_NAME = 0x131,
- TIFF_PREDICTOR = 0x13D,
- TIFF_PAL = 0x140,
- TIFF_YCBCR_COEFFICIENTS = 0x211,
- TIFF_YCBCR_SUBSAMPLING = 0x212,
- TIFF_YCBCR_POSITIONING = 0x213,
- TIFF_REFERENCE_BW = 0x214,
-};
-
-/** list of TIFF compression types */
-enum TiffCompr{
- TIFF_RAW = 1,
- TIFF_CCITT_RLE,
- TIFF_G3,
- TIFF_G4,
- TIFF_LZW,
- TIFF_JPEG,
- TIFF_NEWJPEG,
- TIFF_ADOBE_DEFLATE,
- TIFF_PACKBITS = 0x8005,
- TIFF_DEFLATE = 0x80B2
-};
-
-enum TiffTypes{
- TIFF_BYTE = 1,
- TIFF_STRING,
- TIFF_SHORT,
- TIFF_LONG,
- TIFF_RATIONAL,
-};
-
-/** sizes of various TIFF field types (string size = 100)*/
-static const uint8_t type_sizes[6] = {
- 0, 1, 100, 2, 4, 8
-};
-
-#endif /* AVCODEC_TIFF_H */
+++ /dev/null
-/*
- * Duck Truemotion v1 Decoding Tables
- *
- * Data in this file was originally part of VpVision from On2 which is
- * distributed under the GNU GPL. It is redistributed with ffmpeg under the
- * GNU LGPL using the common understanding that data tables necessary for
- * decoding algorithms are not necessarily licensable.
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVCODEC_TRUEMOTION1DATA_H
-#define AVCODEC_TRUEMOTION1DATA_H
-
-#include <stdint.h>
-#include <stdlib.h>
-
-/* Y delta tables, skinny and fat */
-static const int16_t ydt1[8] = { 0, -2, 2, -6, 6, -12, 12, -12 };
-static const int16_t ydt2[8] = { 0, -2, 4, -6, 8, -12, 12, -12 };
-static const int16_t ydt3[8] = { 4, -6, 20, -20, 46, -46, 94, -94 };
-static const int16_t fat_ydt3[8] = { 0, -15, 50, -50, 115, -115, 235, -235 };
-static const int16_t ydt4[8] = { 0, -4, 4, -16, 16, -36, 36, -80 };
-/* NOTE: This table breaks the [+,-] pattern that the rest of the
- * tables maintain. Is this intentional? */
-static const int16_t fat_ydt4[8] = { 0, 40, 80, -76, 160, -154, 236, -236 };
-
-/* C delta tables, skinny and fat */
-static const int16_t cdt1[8] = { 0, -1, 1, -2, 3, -4, 5, -4 };
-static const int16_t cdt2[8] = { 0, -4, 3, -16, 20, -32, 36, -32 };
-static const int16_t fat_cdt2[8] = { 0, -20, 15, -80, 100, -160, 180, -160 };
-static const int16_t cdt3[8] = { 0, -2, 2, -8, 8, -18, 18, -40 };
-
-/* all the delta tables to choose from, at all 4 delta levels */
-static const int16_t * const ydts[] = { ydt1, ydt2, ydt3, ydt4, NULL };
-static const int16_t * const fat_ydts[] = { fat_ydt3, fat_ydt3, fat_ydt3, fat_ydt4, NULL };
-static const int16_t * const cdts[] = { cdt1, cdt1, cdt2, cdt3, NULL };
-static const int16_t * const fat_cdts[] = { fat_cdt2, fat_cdt2, fat_cdt2, fat_ydt4, NULL };
-
-static const uint8_t pc_tbl2[] = {
-0x8,0x00,0x00,0x00,0x00,
-0x8,0x00,0x00,0x00,0x00,
-0x8,0x10,0x00,0x00,0x00,
-0x8,0x01,0x00,0x00,0x00,
-0x8,0x00,0x10,0x00,0x00,
-0x8,0x00,0x01,0x00,0x00,
-0x8,0x00,0x00,0x10,0x00,
-0x8,0x00,0x00,0x01,0x00,
-0x8,0x00,0x00,0x00,0x10,
-0x8,0x00,0x00,0x00,0x01,
-0x6,0x00,0x00,0x00,
-0x6,0x10,0x00,0x00,
-0x6,0x01,0x00,0x00,
-0x6,0x00,0x10,0x00,
-0x6,0x00,0x01,0x00,
-0x6,0x00,0x00,0x01,
-0x6,0x00,0x00,0x10,
-0x6,0x00,0x00,0x02,
-0x6,0x00,0x00,0x20,
-0x6,0x20,0x10,0x00,
-0x6,0x00,0x02,0x01,
-0x6,0x00,0x20,0x10,
-0x6,0x02,0x01,0x00,
-0x6,0x11,0x00,0x00,
-0x6,0x00,0x20,0x00,
-0x6,0x00,0x02,0x00,
-0x6,0x20,0x00,0x00,
-0x6,0x01,0x10,0x00,
-0x6,0x02,0x00,0x00,
-0x6,0x01,0x00,0x02,
-0x6,0x10,0x00,0x20,
-0x6,0x00,0x01,0x02,
-0x6,0x10,0x01,0x00,
-0x6,0x00,0x10,0x20,
-0x6,0x10,0x10,0x00,
-0x6,0x10,0x00,0x01,
-0x6,0x20,0x00,0x10,
-0x6,0x02,0x00,0x01,
-0x6,0x01,0x01,0x00,
-0x6,0x01,0x00,0x10,
-0x6,0x00,0x11,0x00,
-0x6,0x10,0x00,0x02,
-0x6,0x00,0x01,0x10,
-0x6,0x00,0x00,0x11,
-0x6,0x10,0x00,0x10,
-0x6,0x01,0x00,0x01,
-0x6,0x00,0x00,0x22,
-0x6,0x02,0x01,0x01,
-0x6,0x10,0x20,0x10,
-0x6,0x01,0x02,0x01,
-0x6,0x20,0x10,0x10,
-0x6,0x01,0x00,0x20,
-0x6,0x00,0x10,0x01,
-0x6,0x21,0x10,0x00,
-0x6,0x10,0x02,0x01,
-0x6,0x12,0x01,0x00,
-0x6,0x01,0x20,0x10,
-0x6,0x01,0x02,0x00,
-0x6,0x10,0x20,0x00,
-0x6,0x00,0x10,0x02,
-0x6,0x00,0x01,0x20,
-0x6,0x00,0x02,0x21,
-0x6,0x00,0x02,0x20,
-0x6,0x00,0x00,0x12,
-0x6,0x00,0x00,0x21,
-0x6,0x20,0x11,0x00,
-0x6,0x00,0x01,0x01,
-0x6,0x11,0x10,0x00,
-0x6,0x00,0x20,0x12,
-0x6,0x00,0x20,0x11,
-0x6,0x20,0x10,0x02,
-0x6,0x02,0x01,0x20,
-0x6,0x00,0x22,0x11,
-0x6,0x00,0x10,0x10,
-0x6,0x02,0x11,0x00,
-0x6,0x00,0x21,0x10,
-0x6,0x00,0x02,0x03,
-0x6,0x20,0x10,0x01,
-0x6,0x00,0x12,0x01,
-0x4,0x11,0x00,
-0x4,0x00,0x22,
-0x4,0x20,0x00,
-0x4,0x01,0x10,
-0x4,0x02,0x20,
-0x4,0x00,0x20,
-0x4,0x02,0x00,
-0x4,0x10,0x01,
-0x4,0x00,0x11,
-0x4,0x02,0x01,
-0x4,0x02,0x21,
-0x4,0x00,0x02,
-0x4,0x20,0x02,
-0x4,0x01,0x01,
-0x4,0x10,0x10,
-0x4,0x10,0x02,
-0x4,0x22,0x00,
-0x4,0x10,0x00,
-0x4,0x01,0x00,
-0x4,0x21,0x00,
-0x4,0x12,0x00,
-0x4,0x00,0x10,
-0x4,0x20,0x12,
-0x4,0x01,0x11,
-0x4,0x00,0x01,
-0x4,0x01,0x02,
-0x4,0x11,0x02,
-0x4,0x11,0x01,
-0x4,0x10,0x20,
-0x4,0x20,0x01,
-0x4,0x22,0x11,
-0x4,0x00,0x12,
-0x4,0x20,0x10,
-0x4,0x22,0x01,
-0x4,0x01,0x20,
-0x4,0x00,0x21,
-0x4,0x10,0x11,
-0x4,0x21,0x10,
-0x4,0x10,0x22,
-0x4,0x02,0x03,
-0x4,0x12,0x01,
-0x4,0x20,0x11,
-0x4,0x11,0x10,
-0x4,0x20,0x30,
-0x4,0x11,0x20,
-0x4,0x02,0x10,
-0x4,0x22,0x10,
-0x4,0x11,0x11,
-0x4,0x30,0x20,
-0x4,0x30,0x00,
-0x4,0x01,0x22,
-0x4,0x01,0x12,
-0x4,0x02,0x11,
-0x4,0x03,0x02,
-0x4,0x03,0x00,
-0x4,0x10,0x21,
-0x4,0x12,0x20,
-0x4,0x00,0x00,
-0x4,0x12,0x21,
-0x4,0x21,0x11,
-0x4,0x02,0x22,
-0x4,0x10,0x12,
-0x4,0x31,0x00,
-0x4,0x20,0x20,
-0x4,0x00,0x03,
-0x4,0x02,0x02,
-0x4,0x22,0x20,
-0x4,0x01,0x21,
-0x4,0x21,0x02,
-0x4,0x21,0x12,
-0x4,0x11,0x22,
-0x4,0x00,0x30,
-0x4,0x12,0x11,
-0x4,0x20,0x22,
-0x4,0x31,0x20,
-0x4,0x21,0x30,
-0x4,0x22,0x02,
-0x4,0x22,0x22,
-0x4,0x20,0x31,
-0x4,0x13,0x02,
-0x4,0x03,0x10,
-0x4,0x11,0x12,
-0x4,0x00,0x13,
-0x4,0x21,0x01,
-0x4,0x12,0x03,
-0x4,0x13,0x00,
-0x4,0x13,0x10,
-0x4,0x02,0x13,
-0x4,0x30,0x01,
-0x4,0x12,0x10,
-0x4,0x22,0x13,
-0x4,0x03,0x12,
-0x4,0x31,0x01,
-0x4,0x30,0x22,
-0x4,0x00,0x31,
-0x4,0x01,0x31,
-0x4,0x02,0x23,
-0x4,0x01,0x30,
-0x4,0x11,0x21,
-0x4,0x22,0x21,
-0x4,0x01,0x13,
-0x4,0x10,0x03,
-0x4,0x22,0x03,
-0x4,0x30,0x21,
-0x4,0x21,0x31,
-0x4,0x33,0x00,
-0x4,0x13,0x12,
-0x4,0x11,0x31,
-0x4,0x30,0x02,
-0x4,0x12,0x02,
-0x4,0x11,0x13,
-0x4,0x12,0x22,
-0x4,0x20,0x32,
-0x4,0x10,0x13,
-0x4,0x22,0x31,
-0x4,0x21,0x20,
-0x4,0x01,0x33,
-0x4,0x33,0x10,
-0x4,0x20,0x13,
-0x4,0x31,0x22,
-0x4,0x13,0x30,
-0x4,0x01,0x03,
-0x4,0x11,0x33,
-0x4,0x20,0x21,
-0x4,0x13,0x31,
-0x4,0x03,0x22,
-0x4,0x31,0x02,
-0x4,0x00,0x24,
-0x2,0x00,
-0x2,0x10,
-0x2,0x20,
-0x2,0x30,
-0x2,0x40,
-0x2,0x50,
-0x2,0x60,
-0x2,0x01,
-0x2,0x11,
-0x2,0x21,
-0x2,0x31,
-0x2,0x41,
-0x2,0x51,
-0x2,0x61,
-0x2,0x02,
-0x2,0x12,
-0x2,0x22,
-0x2,0x32,
-0x2,0x42,
-0x2,0x52,
-0x2,0x62,
-0x2,0x03,
-0x2,0x13,
-0x2,0x23,
-0x2,0x33,
-0x2,0x43,
-0x2,0x53,
-0x2,0x63,
-0x2,0x04,
-0x2,0x14,
-0x2,0x24,
-0x2,0x34,
-0x2,0x44,
-0x2,0x54,
-0x2,0x64,
-0x2,0x05,
-0x2,0x15,
-0x2,0x25,
-0x2,0x35,
-0x2,0x45,
-0x2,0x55,
-0x2,0x65,
-0x2,0x06,
-0x2,0x16,
-0x2,0x26,
-0x2,0x36,
-0x2,0x46,
-0x2,0x56,
-0x2,0x66
-};
-
-static const uint8_t pc_tbl3[] = {
-0x6,0x00,0x00,0x00,
-0x6,0x00,0x00,0x00,
-0x6,0x00,0x00,0x01,
-0x6,0x00,0x00,0x10,
-0x6,0x00,0x00,0x11,
-0x6,0x00,0x01,0x00,
-0x6,0x00,0x01,0x01,
-0x6,0x00,0x01,0x10,
-0x6,0x00,0x01,0x11,
-0x6,0x00,0x10,0x00,
-0x6,0x00,0x10,0x01,
-0x6,0x00,0x10,0x10,
-0x6,0x00,0x10,0x11,
-0x6,0x00,0x11,0x00,
-0x6,0x00,0x11,0x01,
-0x6,0x00,0x11,0x10,
-0x6,0x00,0x11,0x11,
-0x6,0x01,0x00,0x00,
-0x6,0x01,0x00,0x01,
-0x6,0x01,0x00,0x10,
-0x6,0x01,0x00,0x11,
-0x6,0x01,0x01,0x00,
-0x6,0x01,0x01,0x01,
-0x6,0x01,0x01,0x10,
-0x6,0x01,0x01,0x11,
-0x6,0x01,0x10,0x00,
-0x6,0x01,0x10,0x01,
-0x6,0x01,0x10,0x10,
-0x6,0x01,0x10,0x11,
-0x6,0x01,0x11,0x00,
-0x6,0x01,0x11,0x01,
-0x6,0x01,0x11,0x10,
-0x6,0x01,0x11,0x11,
-0x6,0x10,0x00,0x00,
-0x6,0x10,0x00,0x01,
-0x6,0x10,0x00,0x10,
-0x6,0x10,0x00,0x11,
-0x6,0x10,0x01,0x00,
-0x6,0x10,0x01,0x01,
-0x6,0x10,0x01,0x10,
-0x6,0x10,0x01,0x11,
-0x6,0x10,0x10,0x00,
-0x6,0x10,0x10,0x01,
-0x6,0x10,0x10,0x10,
-0x6,0x10,0x10,0x11,
-0x6,0x10,0x11,0x00,
-0x6,0x10,0x11,0x01,
-0x6,0x10,0x11,0x10,
-0x6,0x10,0x11,0x11,
-0x6,0x11,0x00,0x00,
-0x6,0x11,0x00,0x01,
-0x6,0x11,0x00,0x10,
-0x6,0x11,0x00,0x11,
-0x6,0x11,0x01,0x00,
-0x6,0x11,0x01,0x01,
-0x6,0x11,0x01,0x10,
-0x6,0x11,0x01,0x11,
-0x6,0x11,0x10,0x00,
-0x6,0x11,0x10,0x01,
-0x6,0x11,0x10,0x10,
-0x6,0x11,0x10,0x11,
-0x6,0x11,0x11,0x00,
-0x6,0x11,0x11,0x01,
-0x6,0x11,0x11,0x10,
-0x4,0x00,0x00,
-0x4,0x00,0x01,
-0x4,0x00,0x02,
-0x4,0x00,0x03,
-0x4,0x00,0x10,
-0x4,0x00,0x11,
-0x4,0x00,0x12,
-0x4,0x00,0x13,
-0x4,0x00,0x20,
-0x4,0x00,0x21,
-0x4,0x00,0x22,
-0x4,0x00,0x23,
-0x4,0x00,0x30,
-0x4,0x00,0x31,
-0x4,0x00,0x32,
-0x4,0x00,0x33,
-0x4,0x01,0x00,
-0x4,0x01,0x01,
-0x4,0x01,0x02,
-0x4,0x01,0x03,
-0x4,0x01,0x10,
-0x4,0x01,0x11,
-0x4,0x01,0x12,
-0x4,0x01,0x13,
-0x4,0x01,0x20,
-0x4,0x01,0x21,
-0x4,0x01,0x22,
-0x4,0x01,0x23,
-0x4,0x01,0x30,
-0x4,0x01,0x31,
-0x4,0x01,0x32,
-0x4,0x01,0x33,
-0x4,0x02,0x00,
-0x4,0x02,0x01,
-0x4,0x02,0x02,
-0x4,0x02,0x03,
-0x4,0x02,0x10,
-0x4,0x02,0x11,
-0x4,0x02,0x12,
-0x4,0x02,0x13,
-0x4,0x02,0x20,
-0x4,0x02,0x21,
-0x4,0x02,0x22,
-0x4,0x02,0x23,
-0x4,0x02,0x30,
-0x4,0x02,0x31,
-0x4,0x02,0x32,
-0x4,0x02,0x33,
-0x4,0x03,0x00,
-0x4,0x03,0x01,
-0x4,0x03,0x02,
-0x4,0x03,0x03,
-0x4,0x03,0x10,
-0x4,0x03,0x11,
-0x4,0x03,0x12,
-0x4,0x03,0x13,
-0x4,0x03,0x20,
-0x4,0x03,0x21,
-0x4,0x03,0x22,
-0x4,0x03,0x23,
-0x4,0x03,0x30,
-0x4,0x03,0x31,
-0x4,0x03,0x32,
-0x4,0x03,0x33,
-0x4,0x10,0x00,
-0x4,0x10,0x01,
-0x4,0x10,0x02,
-0x4,0x10,0x03,
-0x4,0x10,0x10,
-0x4,0x10,0x11,
-0x4,0x10,0x12,
-0x4,0x10,0x13,
-0x4,0x10,0x20,
-0x4,0x10,0x21,
-0x4,0x10,0x22,
-0x4,0x10,0x23,
-0x4,0x10,0x30,
-0x4,0x10,0x31,
-0x4,0x10,0x32,
-0x4,0x10,0x33,
-0x4,0x11,0x00,
-0x4,0x11,0x01,
-0x4,0x11,0x02,
-0x4,0x11,0x03,
-0x4,0x11,0x10,
-0x4,0x11,0x11,
-0x4,0x11,0x12,
-0x4,0x11,0x13,
-0x4,0x11,0x20,
-0x4,0x11,0x21,
-0x4,0x11,0x22,
-0x4,0x11,0x23,
-0x4,0x11,0x30,
-0x4,0x11,0x31,
-0x4,0x11,0x32,
-0x4,0x11,0x33,
-0x4,0x12,0x00,
-0x4,0x12,0x01,
-0x4,0x12,0x02,
-0x4,0x12,0x03,
-0x4,0x12,0x10,
-0x4,0x12,0x11,
-0x4,0x12,0x12,
-0x4,0x12,0x13,
-0x4,0x12,0x20,
-0x4,0x12,0x21,
-0x4,0x12,0x22,
-0x4,0x12,0x23,
-0x4,0x12,0x30,
-0x4,0x12,0x31,
-0x4,0x12,0x32,
-0x4,0x12,0x33,
-0x4,0x13,0x00,
-0x4,0x13,0x01,
-0x4,0x13,0x02,
-0x4,0x13,0x03,
-0x4,0x13,0x10,
-0x4,0x13,0x11,
-0x4,0x13,0x12,
-0x4,0x13,0x13,
-0x4,0x13,0x20,
-0x4,0x13,0x21,
-0x4,0x13,0x22,
-0x4,0x13,0x23,
-0x4,0x13,0x30,
-0x4,0x13,0x31,
-0x4,0x13,0x32,
-0x4,0x13,0x33,
-0x2,0x00,
-0x2,0x10,
-0x2,0x20,
-0x2,0x30,
-0x2,0x40,
-0x2,0x50,
-0x2,0x60,
-0x2,0x70,
-0x2,0x01,
-0x2,0x11,
-0x2,0x21,
-0x2,0x31,
-0x2,0x41,
-0x2,0x51,
-0x2,0x61,
-0x2,0x71,
-0x2,0x02,
-0x2,0x12,
-0x2,0x22,
-0x2,0x32,
-0x2,0x42,
-0x2,0x52,
-0x2,0x62,
-0x2,0x72,
-0x2,0x03,
-0x2,0x13,
-0x2,0x23,
-0x2,0x33,
-0x2,0x43,
-0x2,0x53,
-0x2,0x63,
-0x2,0x73,
-0x2,0x04,
-0x2,0x14,
-0x2,0x24,
-0x2,0x34,
-0x2,0x44,
-0x2,0x54,
-0x2,0x64,
-0x2,0x74,
-0x2,0x05,
-0x2,0x15,
-0x2,0x25,
-0x2,0x35,
-0x2,0x45,
-0x2,0x55,
-0x2,0x65,
-0x2,0x75,
-0x2,0x06,
-0x2,0x16,
-0x2,0x26,
-0x2,0x36,
-0x2,0x46,
-0x2,0x56,
-0x2,0x66,
-0x2,0x76,
-0x2,0x07,
-0x2,0x17,
-0x2,0x27,
-0x2,0x37,
-0x2,0x47,
-0x2,0x57,
-0x2,0x67,
-0x2,0x77
-};
-
-static const uint8_t pc_tbl4[] = {
-0x8,0x00,0x00,0x00,0x00,
-0x8,0x00,0x00,0x00,0x00,
-0x8,0x20,0x00,0x00,0x00,
-0x8,0x00,0x00,0x00,0x01,
-0x8,0x10,0x00,0x00,0x00,
-0x8,0x00,0x00,0x00,0x02,
-0x8,0x01,0x00,0x00,0x00,
-0x8,0x00,0x00,0x00,0x10,
-0x8,0x02,0x00,0x00,0x00,
-0x6,0x00,0x00,0x00,
-0x6,0x20,0x00,0x00,
-0x6,0x00,0x00,0x01,
-0x6,0x10,0x00,0x00,
-0x6,0x00,0x00,0x02,
-0x6,0x00,0x10,0x00,
-0x6,0x00,0x20,0x00,
-0x6,0x00,0x02,0x00,
-0x6,0x00,0x01,0x00,
-0x6,0x01,0x00,0x00,
-0x6,0x00,0x00,0x20,
-0x6,0x02,0x00,0x00,
-0x6,0x00,0x00,0x10,
-0x6,0x10,0x00,0x20,
-0x6,0x01,0x00,0x02,
-0x6,0x20,0x00,0x10,
-0x6,0x02,0x00,0x01,
-0x6,0x20,0x10,0x00,
-0x6,0x00,0x12,0x00,
-0x6,0x00,0x02,0x01,
-0x6,0x02,0x01,0x00,
-0x6,0x00,0x21,0x00,
-0x6,0x00,0x01,0x02,
-0x6,0x00,0x20,0x10,
-0x6,0x00,0x00,0x21,
-0x6,0x00,0x00,0x12,
-0x6,0x00,0x01,0x20,
-0x6,0x12,0x00,0x00,
-0x6,0x00,0x10,0x20,
-0x6,0x01,0x20,0x00,
-0x6,0x02,0x10,0x00,
-0x6,0x10,0x20,0x00,
-0x6,0x01,0x02,0x00,
-0x6,0x21,0x00,0x00,
-0x6,0x00,0x02,0x10,
-0x6,0x20,0x01,0x00,
-0x6,0x00,0x22,0x00,
-0x6,0x10,0x02,0x00,
-0x6,0x00,0x10,0x02,
-0x6,0x11,0x00,0x00,
-0x6,0x00,0x11,0x00,
-0x6,0x22,0x00,0x00,
-0x6,0x20,0x00,0x02,
-0x6,0x10,0x00,0x01,
-0x6,0x00,0x20,0x01,
-0x6,0x02,0x20,0x00,
-0x6,0x01,0x10,0x00,
-0x6,0x01,0x00,0x20,
-0x6,0x00,0x20,0x02,
-0x6,0x01,0x20,0x02,
-0x6,0x10,0x01,0x00,
-0x6,0x02,0x00,0x10,
-0x6,0x00,0x10,0x01,
-0x6,0x10,0x01,0x20,
-0x6,0x20,0x02,0x10,
-0x6,0x00,0x00,0x22,
-0x6,0x10,0x00,0x02,
-0x6,0x00,0x02,0x20,
-0x6,0x20,0x02,0x00,
-0x6,0x00,0x00,0x11,
-0x6,0x02,0x10,0x01,
-0x6,0x00,0x01,0x10,
-0x6,0x00,0x02,0x11,
-0x4,0x01,0x02,
-0x4,0x02,0x01,
-0x4,0x01,0x00,
-0x4,0x10,0x20,
-0x4,0x20,0x10,
-0x4,0x20,0x00,
-0x4,0x11,0x00,
-0x4,0x02,0x00,
-0x4,0x12,0x00,
-0x4,0x00,0x21,
-0x4,0x22,0x00,
-0x4,0x00,0x12,
-0x4,0x21,0x00,
-0x4,0x02,0x11,
-0x4,0x00,0x01,
-0x4,0x10,0x02,
-0x4,0x02,0x20,
-0x4,0x20,0x11,
-0x4,0x01,0x10,
-0x4,0x21,0x10,
-0x4,0x10,0x00,
-0x4,0x10,0x22,
-0x4,0x20,0x20,
-0x4,0x00,0x22,
-0x4,0x01,0x22,
-0x4,0x20,0x01,
-0x4,0x02,0x02,
-0x4,0x00,0x20,
-0x4,0x00,0x10,
-0x4,0x00,0x11,
-0x4,0x22,0x01,
-0x4,0x11,0x20,
-0x4,0x12,0x01,
-0x4,0x12,0x20,
-0x4,0x11,0x02,
-0x4,0x10,0x10,
-0x4,0x01,0x01,
-0x4,0x02,0x21,
-0x4,0x20,0x12,
-0x4,0x01,0x12,
-0x4,0x22,0x11,
-0x4,0x21,0x12,
-0x4,0x22,0x10,
-0x4,0x21,0x02,
-0x4,0x20,0x02,
-0x4,0x10,0x01,
-0x4,0x00,0x02,
-0x4,0x10,0x21,
-0x4,0x01,0x20,
-0x4,0x11,0x22,
-0x4,0x12,0x21,
-0x4,0x22,0x20,
-0x4,0x02,0x10,
-0x4,0x02,0x22,
-0x4,0x11,0x10,
-0x4,0x22,0x02,
-0x4,0x20,0x21,
-0x4,0x01,0x11,
-0x4,0x11,0x01,
-0x4,0x10,0x12,
-0x4,0x02,0x12,
-0x4,0x20,0x22,
-0x4,0x21,0x20,
-0x4,0x01,0x21,
-0x4,0x12,0x02,
-0x4,0x21,0x11,
-0x4,0x12,0x22,
-0x4,0x12,0x10,
-0x4,0x22,0x21,
-0x4,0x10,0x11,
-0x4,0x21,0x01,
-0x4,0x11,0x12,
-0x4,0x12,0x11,
-0x4,0x66,0x66,
-0x4,0x22,0x22,
-0x4,0x11,0x21,
-0x4,0x11,0x11,
-0x4,0x21,0x22,
-0x4,0x00,0x00,
-0x4,0x22,0x12,
-0x4,0x12,0x12,
-0x4,0x21,0x21,
-0x4,0x42,0x00,
-0x4,0x00,0x04,
-0x4,0x40,0x00,
-0x4,0x30,0x00,
-0x4,0x31,0x00,
-0x4,0x00,0x03,
-0x4,0x00,0x14,
-0x4,0x00,0x13,
-0x4,0x01,0x24,
-0x4,0x20,0x13,
-0x4,0x01,0x42,
-0x4,0x14,0x20,
-0x4,0x42,0x02,
-0x4,0x13,0x00,
-0x4,0x00,0x24,
-0x4,0x31,0x20,
-0x4,0x22,0x13,
-0x4,0x11,0x24,
-0x4,0x12,0x66,
-0x4,0x30,0x01,
-0x4,0x02,0x13,
-0x4,0x12,0x42,
-0x4,0x40,0x10,
-0x4,0x40,0x02,
-0x4,0x01,0x04,
-0x4,0x24,0x00,
-0x4,0x42,0x10,
-0x4,0x21,0x13,
-0x4,0x13,0x12,
-0x4,0x31,0x21,
-0x4,0x21,0x24,
-0x4,0x00,0x40,
-0x4,0x10,0x24,
-0x4,0x10,0x42,
-0x4,0x32,0x01,
-0x4,0x11,0x42,
-0x4,0x20,0x31,
-0x4,0x12,0x40,
-0x2,0x00,
-0x2,0x10,
-0x2,0x20,
-0x2,0x30,
-0x2,0x40,
-0x2,0x50,
-0x2,0x60,
-0x2,0x70,
-0x2,0x01,
-0x2,0x11,
-0x2,0x21,
-0x2,0x31,
-0x2,0x41,
-0x2,0x51,
-0x2,0x61,
-0x2,0x71,
-0x2,0x02,
-0x2,0x12,
-0x2,0x22,
-0x2,0x32,
-0x2,0x42,
-0x2,0x52,
-0x2,0x62,
-0x2,0x72,
-0x2,0x03,
-0x2,0x13,
-0x2,0x23,
-0x2,0x33,
-0x2,0x43,
-0x2,0x53,
-0x2,0x63,
-0x2,0x73,
-0x2,0x04,
-0x2,0x14,
-0x2,0x24,
-0x2,0x34,
-0x2,0x44,
-0x2,0x54,
-0x2,0x64,
-0x2,0x74,
-0x2,0x05,
-0x2,0x15,
-0x2,0x25,
-0x2,0x35,
-0x2,0x45,
-0x2,0x55,
-0x2,0x65,
-0x2,0x75,
-0x2,0x06,
-0x2,0x16,
-0x2,0x26,
-0x2,0x36,
-0x2,0x46,
-0x2,0x56,
-0x2,0x66,
-0x2,0x76,
-0x2,0x07,
-0x2,0x17,
-0x2,0x27,
-0x2,0x37,
-0x2,0x47,
-0x2,0x57,
-0x2,0x67,
-0x2,0x77
-};
-
-static const uint8_t * const tables[] = { pc_tbl2, pc_tbl3, pc_tbl4 };
-
-#endif /* AVCODEC_TRUEMOTION1DATA_H */
+++ /dev/null
-/*
- * DSP Group TrueSpeech compatible decoder
- * copyright (c) 2005 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_TRUESPEECH_DATA_H
-#define AVCODEC_TRUESPEECH_DATA_H
-
-#include <stdint.h>
-
-/* codebooks fo expanding input filter */
-static const int16_t ts_cb_0[32] = {
- 0x8240, 0x8364, 0x84CE, 0x865D, 0x8805, 0x89DE, 0x8BD7, 0x8DF4,
- 0x9051, 0x92E2, 0x95DE, 0x990F, 0x9C81, 0xA079, 0xA54C, 0xAAD2,
- 0xB18A, 0xB90A, 0xC124, 0xC9CC, 0xD339, 0xDDD3, 0xE9D6, 0xF893,
- 0x096F, 0x1ACA, 0x29EC, 0x381F, 0x45F9, 0x546A, 0x63C3, 0x73B5,
-};
-
-static const int16_t ts_cb_1[32] = {
- 0x9F65, 0xB56B, 0xC583, 0xD371, 0xE018, 0xEBB4, 0xF61C, 0xFF59,
- 0x085B, 0x1106, 0x1952, 0x214A, 0x28C9, 0x2FF8, 0x36E6, 0x3D92,
- 0x43DF, 0x49BB, 0x4F46, 0x5467, 0x5930, 0x5DA3, 0x61EC, 0x65F9,
- 0x69D4, 0x6D5A, 0x709E, 0x73AD, 0x766B, 0x78F0, 0x7B5A, 0x7DA5,
-};
-
-static const int16_t ts_cb_2[16] = {
- 0x96F8, 0xA3B4, 0xAF45, 0xBA53, 0xC4B1, 0xCECC, 0xD86F, 0xE21E,
- 0xEBF3, 0xF640, 0x00F7, 0x0C20, 0x1881, 0x269A, 0x376B, 0x4D60,
-};
-
-static const int16_t ts_cb_3[16] = {
- 0xC654, 0xDEF2, 0xEFAA, 0xFD94, 0x096A, 0x143F, 0x1E7B, 0x282C,
- 0x3176, 0x3A89, 0x439F, 0x4CA2, 0x557F, 0x5E50, 0x6718, 0x6F8D,
-};
-
-static const int16_t ts_cb_4[16] = {
- 0xABE7, 0xBBA8, 0xC81C, 0xD326, 0xDD0E, 0xE5D4, 0xEE22, 0xF618,
- 0xFE28, 0x064F, 0x0EB7, 0x17B8, 0x21AA, 0x2D8B, 0x3BA2, 0x4DF9,
-};
-
-static const int16_t ts_cb_5[8] = {
- 0xD51B, 0xF12E, 0x042E, 0x13C7, 0x2260, 0x311B, 0x40DE, 0x5385,
-};
-
-static const int16_t ts_cb_6[8] = {
- 0xB550, 0xC825, 0xD980, 0xE997, 0xF883, 0x0752, 0x1811, 0x2E18,
-};
-
-static const int16_t ts_cb_7[8] = {
- 0xCEF0, 0xE4F9, 0xF6BB, 0x0646, 0x14F5, 0x23FF, 0x356F, 0x4A8D,
-};
-
-static const int16_t * const ts_codebook[8] = {
- ts_cb_0, ts_cb_1, ts_cb_2, ts_cb_3, ts_cb_4, ts_cb_5, ts_cb_6, ts_cb_7
-};
-
-/* table used for decoding pulse positions */
-static const int16_t ts_140[120] = {
- 0x0E46, 0x0CCC, 0x0B6D, 0x0A28, 0x08FC, 0x07E8, 0x06EB, 0x0604,
- 0x0532, 0x0474, 0x03C9, 0x0330, 0x02A8, 0x0230, 0x01C7, 0x016C,
- 0x011E, 0x00DC, 0x00A5, 0x0078, 0x0054, 0x0038, 0x0023, 0x0014,
- 0x000A, 0x0004, 0x0001, 0x0000, 0x0000, 0x0000,
-
- 0x0196, 0x017A, 0x015F, 0x0145, 0x012C, 0x0114, 0x00FD, 0x00E7,
- 0x00D2, 0x00BE, 0x00AB, 0x0099, 0x0088, 0x0078, 0x0069, 0x005B,
- 0x004E, 0x0042, 0x0037, 0x002D, 0x0024, 0x001C, 0x0015, 0x000F,
- 0x000A, 0x0006, 0x0003, 0x0001, 0x0000, 0x0000,
-
- 0x001D, 0x001C, 0x001B, 0x001A, 0x0019, 0x0018, 0x0017, 0x0016,
- 0x0015, 0x0014, 0x0013, 0x0012, 0x0011, 0x0010, 0x000F, 0x000E,
- 0x000D, 0x000C, 0x000B, 0x000A, 0x0009, 0x0008, 0x0007, 0x0006,
- 0x0005, 0x0004, 0x0003, 0x0002, 0x0001, 0x0000,
-
- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
- 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
-};
-
-/* filter for correlated input filter */
-static const int16_t ts_230[8] =
- { 0x7F3B, 0x7E78, 0x7DB6, 0x7CF5, 0x7C35, 0x7B76, 0x7AB8, 0x79FC };
-
-/* two-point filters table */
-static const int16_t ts_240[25 * 2] = {
- 0xED2F, 0x5239,
- 0x54F1, 0xE4A9,
- 0x2620, 0xEE3E,
- 0x09D6, 0x2C40,
- 0xEFB5, 0x2BE0,
-
- 0x3FE1, 0x3339,
- 0x442F, 0xE6FE,
- 0x4458, 0xF9DF,
- 0xF231, 0x43DB,
- 0x3DB0, 0xF705,
-
- 0x4F7B, 0xFEFB,
- 0x26AD, 0x0CDC,
- 0x33C2, 0x0739,
- 0x12BE, 0x43A2,
- 0x1BDF, 0x1F3E,
-
- 0x0211, 0x0796,
- 0x2AEB, 0x163F,
- 0x050D, 0x3A38,
- 0x0D1E, 0x0D78,
- 0x150F, 0x3346,
-
- 0x38A4, 0x0B7D,
- 0x2D5D, 0x1FDF,
- 0x19B7, 0x2822,
- 0x0D99, 0x1F12,
- 0x194C, 0x0CE6
-};
-
-/* possible pulse values */
-static const int16_t ts_562[64] = {
- 0x0002, 0x0006, 0xFFFE, 0xFFFA,
- 0x0004, 0x000C, 0xFFFC, 0xFFF4,
- 0x0006, 0x0012, 0xFFFA, 0xFFEE,
- 0x000A, 0x001E, 0xFFF6, 0xFFE2,
- 0x0010, 0x0030, 0xFFF0, 0xFFD0,
- 0x0019, 0x004B, 0xFFE7, 0xFFB5,
- 0x0028, 0x0078, 0xFFD8, 0xFF88,
- 0x0040, 0x00C0, 0xFFC0, 0xFF40,
- 0x0065, 0x012F, 0xFF9B, 0xFED1,
- 0x00A1, 0x01E3, 0xFF5F, 0xFE1D,
- 0x0100, 0x0300, 0xFF00, 0xFD00,
- 0x0196, 0x04C2, 0xFE6A, 0xFB3E,
- 0x0285, 0x078F, 0xFD7B, 0xF871,
- 0x0400, 0x0C00, 0xFC00, 0xF400,
- 0x0659, 0x130B, 0xF9A7, 0xECF5,
- 0x0A14, 0x1E3C, 0xF5EC, 0xE1C4
-};
-
-/* filters used in final output calculations */
-static const int16_t ts_5E2[8] =
- { 0x4666, 0x26B8, 0x154C, 0x0BB6, 0x0671, 0x038B, 0x01F3, 0x0112 };
-static const int16_t ts_5F2[8] =
- { 0x6000, 0x4800, 0x3600, 0x2880, 0x1E60, 0x16C8, 0x1116, 0x0CD1 };
-
-#endif /* AVCODEC_TRUESPEECH_DATA_H */
+++ /dev/null
-/*
- * TwinVQ decoder
- * Copyright (c) 2009 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_TWINVQ_DATA_H
-#define AVCODEC_TWINVQ_DATA_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-/*
- * The bark_tab_* tables are constructed so that
- *
- * /i-1 \
- * |-- |
- * bark |\ bark_tab[j] | == i
- * |/ |
- * |-- |
- * \j=0 /
- *
- *
- * for some slightly nonconventional bark-scale function
- */
-static const uint16_t bark_tab_l08_512[] = {
- 7, 8, 7, 8, 8, 8, 8, 8, 8, 9,
- 9, 10, 10, 11, 11, 12, 12, 14, 15, 16,
- 18, 19, 21, 24, 27, 30, 35, 40, 46, 53
-};
-
-static const uint16_t bark_tab_l11_512[] = {
- 6, 6, 6, 6, 6, 6, 7, 6, 7, 7,
- 8, 8, 8, 9, 10, 10, 11, 13, 13, 15,
- 17, 18, 21, 25, 27, 33, 38, 45, 54, 66
-};
-
-static const uint16_t bark_tab_l16_1024[] = {
- 9, 9, 8, 9, 10, 9, 10, 10, 10, 12,
- 11, 13, 13, 14, 16, 17, 19, 20, 24, 26,
- 30, 35, 40, 48, 56, 68, 83, 102, 128, 165
-};
-
-static const uint16_t bark_tab_l22_1024[] = {
- 6, 7, 6, 6, 7, 7, 7, 7, 7, 8,
- 9, 8, 10, 10, 11, 12, 13, 15, 16, 18,
- 21, 24, 27, 33, 38, 46, 55, 68, 84, 107,
- 140, 191
-};
-
-static const uint16_t bark_tab_l22_512[] = {
- 3, 3, 3, 4, 3, 3, 4, 3, 4, 4,
- 4, 5, 4, 5, 6, 6, 7, 7, 8, 9,
- 10, 12, 14, 16, 20, 22, 28, 34, 42, 53,
- 71, 95
-};
-
-static const uint16_t bark_tab_l44_2048[] = {
- 5, 6, 5, 6, 5, 6, 6, 6, 6, 6,
- 7, 7, 7, 8, 8, 9, 9, 10, 11, 11,
- 13, 14, 16, 17, 19, 22, 25, 29, 33, 39,
- 46, 54, 64, 79, 98, 123, 161, 220, 320, 512
-};
-
-static const uint16_t bark_tab_m08_256[] = {
- 6, 5, 6, 6, 6, 6, 7, 7, 8, 8,
- 9, 10, 11, 13, 15, 18, 20, 25, 31, 39
-};
-
-static const uint16_t bark_tab_m11_256[] = {
- 4, 5, 4, 5, 5, 5, 6, 5, 7, 7,
- 8, 9, 10, 12, 15, 17, 22, 28, 35, 47
-};
-
-static const uint16_t bark_tab_m16_512[] = {
- 7, 6, 7, 7, 7, 8, 9, 9, 10, 11,
- 14, 15, 18, 22, 27, 34, 44, 59, 81, 117
-};
-
-static const uint16_t bark_tab_m22_256[] = {
- 3, 2, 3, 2, 3, 3, 4, 3, 4, 5,
- 5, 7, 8, 9, 13, 16, 22, 30, 44, 70
-};
-
-static const uint16_t bark_tab_m22_512[] = {
- 5, 5, 5, 6, 5, 7, 6, 7, 9, 9,
- 11, 13, 15, 20, 24, 33, 43, 61, 88, 140
-};
-
-static const uint16_t bark_tab_m44_512[] = {
- 3, 2, 3, 3, 3, 4, 3, 5, 4, 6,
- 7, 8, 10, 14, 18, 25, 36, 55, 95, 208
-};
-
-static const uint16_t bark_tab_s08_64[] = {
- 3, 3, 3, 3, 4, 5, 6, 8, 12, 17
-};
-
-static const uint16_t bark_tab_s11_64[] = {
- 2, 3, 2, 3, 3, 4, 6, 8, 12, 21
-};
-
-static const uint16_t bark_tab_s16_128[] = {
- 3, 4, 4, 4, 5, 7, 10, 16, 26, 49
-};
-
-static const uint16_t bark_tab_s22_128[] = {
- 3, 2, 3, 4, 4, 6, 9, 14, 26, 57
-};
-
-static const uint16_t bark_tab_s44_128[] = {
- 1, 2, 1, 2, 3, 4, 6, 10, 23, 76
-};
-
-
-/**
- * TwinVQ codebooks. They are coded in a struct so we can use code such as
- *
- * float val = tab.fcb0808l[get_bits(gb, 12)];
- *
- * without risking a segfault on malformed files.
- */
-static const struct {
- float lsp08[504];
- int16_t fcb08l[640];
- int16_t fcb08m[320];
- int16_t fcb08s[320];
- int16_t shape08[1280];
-
- int16_t cb0808l0[1088];
- int16_t cb0808l1[1088];
- int16_t cb0808s0[1152];
- int16_t cb0808s1[1152];
- int16_t cb0808m0[1024];
- int16_t cb0808m1[1024];
-
- int16_t cb1108l0[1728];
- int16_t cb1108l1[1728];
- int16_t cb1108m0[1536];
- int16_t cb1108m1[1536];
- int16_t cb1108s0[1856];
- int16_t cb1108s1[1856];
-
- int16_t fcb11l[640];
- int16_t fcb11m[320];
- int16_t fcb11s[320];
- int16_t shape11[1280];
- float lsp11[1312];
-
- int16_t cb1110l0[1280];
- int16_t cb1110l1[1280];
- int16_t cb1110m0[1152];
- int16_t cb1110m1[1152];
- int16_t cb1110s0[1344];
- int16_t cb1110s1[1344];
-
- int16_t fcb16l[640];
- int16_t fcb16m[320];
- int16_t fcb16s[320];
- int16_t shape16[1920];
- float lsp16[1400];
-
- int16_t cb1616l0[1024];
- int16_t cb1616l1[1024];
- int16_t cb1616m0[960];
- int16_t cb1616m1[960];
- int16_t cb1616s0[1024];
- int16_t cb1616s1[1024];
-
- int16_t cb2220l0[1152];
- int16_t cb2220l1[1152];
- int16_t cb2220m0[1088];
- int16_t cb2220m1[1088];
- int16_t cb2220s0[1152];
- int16_t cb2220s1[1152];
-
- int16_t fcb22l_1[512];
- int16_t fcb22m_1[640];
- int16_t fcb22s_1[640];
- int16_t shape22_1[1152];
- float lsp22_1[1312];
-
- int16_t cb2224l0[960];
- int16_t cb2224l1[960];
- int16_t cb2224m0[896];
- int16_t cb2224m1[896];
- int16_t cb2224s0[960];
- int16_t cb2224s1[960];
-
- int16_t fcb22l_2[512];
- int16_t fcb22m_2[640];
- int16_t fcb22s_2[640];
- int16_t shape22_2[1152];
- float lsp22_2[1312];
-
- int16_t cb2232l0[768];
- int16_t cb2232l1[768];
- int16_t cb2232m0[704];
- int16_t cb2232m1[704];
- int16_t cb2232s0[704];
- int16_t cb2232s1[704];
-
- int16_t cb4440l0[1088];
- int16_t cb4440l1[1088];
- int16_t cb4440m0[1088];
- int16_t cb4440m1[1088];
- int16_t cb4440s0[1152];
- int16_t cb4440s1[1152];
-
- int16_t fcb44l[640];
- int16_t fcb44m[640];
- int16_t fcb44s[640];
- int16_t shape44[1152];
- float lsp44[1640];
-
- int16_t cb4448l0[896];
- int16_t cb4448l1[896];
- int16_t cb4448m0[896];
- int16_t cb4448m1[896];
- int16_t cb4448s0[960];
- int16_t cb4448s1[960];
-} tab = {
-.cb0808l0 = {
- 96, -12592, -12443, 425, 182, -456, -341, -843,
- 615, 689, 982, 1470, -518, 231, -538, 282,
- 409, -600, -303, -29, 51, -4, -115, 79,
- -27, 450, -937, -461, -554, -159, 426, 710,
--29106, -2148, 99, 3426, 1838, 12427, 585, -2080,
- -2524, -474, 1572, 718, 578, -344, 188, 328,
- 12125, 112, 654, -1232, -1644, 288, 553, 1513,
- 966, 1012, 49, 631, -111, -238, -116, -182,
- -21, -46, 334, 11013, -454, -261, 12, 21,
- 52, -20440, -295, -502, -516, -329, -230, 465,
- 59, 270, 971, -127, 505, -194, 43, -30,
- 300, 38, 665, -613, 33, -172, -153, 323,
- -166, 54, 399, 109, 186, -1765, -222, 138,
- 16, 204, 30111, 208, -564, -612, 156, -146,
- -345, 321, -138, 202, -184, 93, 710, -15945,
--13401, 234, -1113, 146, -9, 56, -628, -834,
- -1268, 872, 61, -1184, -126, -205, 145, -109,
- -8248, 113, -146, 1288, 9142, 857, -782, -686,
- -256, -650, 1061, -202, 12, -709, -88, 273,
- 497, 150, -59, -8807, 240, 532, 16, 1482,
- 11012, -444, 1918, -1786, 1934, 172, 598, -1324,
- 5638, -3166, 492, -545, -770, 1067, 0, -356,
- -421, 1684, 273, -502, 316, 1116, 807, -529,
- -831, -13379, -420, 236, 470, -2590, -193, -47,
- 580, -1613, 798, 27, -16, -12768, -893, 256,
- 0, 1659, 1463, 544, 196, -30444, 314, -421,
- 508, -276, -173, 414, -380, -371, -40, -121,
- 375, 432, -438, 1, -350, -280, 1198, -373,
- 452, 100, -68, 9053, 165, 770, 73, 291,
- 717, 515, 596, -323, -4, -2, 803, 738,
- 2605, 30, 73, 455, 11280, 1534, -283, 1502,
- -9126, -4760, -570, 483, -179, -8628, -1639, 322,
- -56, 6149, -3330, 114, 4598, -1976, -34, -56,
- 840, 753, 12292, -7100, -492, 320, -412, 908,
- 1186, 444, 6546, -788, 5394, 697, 13105, 194,
- -394, 294, 2639, 12, -1009, -1426, -36, 2106,
- -252, -31979, -66, 341, 996, 298, 105, 6,
- 10, 106, -498, -244, -105, -574, 16, -206,
- 24, -2067, -381, 10265, -103, -762, -785, -2036,
--11927, 16, -710, -35, -270, -99, 4, 772,
- -272, -186, -328, -14936, -57, -1357, -175, -606,
- 220, 918, -11, 398, -189, -278, 138, 429,
- 509, -701, -43, -42, -630, -560, 11736, -528,
- 10286, -633, -870, 423, 550, -888, 297, -170,
- 258, 2234, 486, 292, -446, -11858, 10008, 52,
- 1203, -164, 810, -1527, -604, -883, -588, -96,
- 332, 148, -180, 223, 356, 285, 434, -57,
- -172, -520, -432, -72, 294, -93, -134, 316,
- 30647, -351, 278, 84, -439, 589, 105, 1001,
- 297, 660, 196, 171, 178, -90, -55, 1172,
- 21100, 227, -288, 372, 162, 458, -555, -1329,
- 380, 366, -104, 105, 674, -378, 1328, 283,
- -1928, 549, 762, 454, 55, 606, 12499, 24,
- 435, 23, 29, 6170, 1129, -95, 97, 569,
- 132, 491, 164, -288, -1011, -134, 1234, -427,
- -254, -524, 226, -14114, 328, -70, 1666, -189,
- -2352, 1097, 619, 632, -981, 745, 587, -27,
- -200, -871, 50, 470, -246, 2610, 581, 254,
- 9893, -586, 880, -11894, 386, 1135, 117, 1072,
- 116, -830, -160, -1002, -699, -66, -230, -260,
- 112, 106, 221, 297, -47, 7642, 170, -330,
- -599, -51, -476, 33, 475, 624, 6199, -350,
- -406, 184, 906, -528, 382, 401, 348, 26,
- -186, 33, -130, -62, -50, 1268, -132, -109,
- 1164, -354, 675, 3, -402, -244, 644, 648,
- -132, -4, 45, 20386, -136, 568, 126, 376,
- 14476, -376, 267, 13518, -260, 111, 1014, 758,
- 439, 551, -164, 207, 128, -416, 616, 690,
- -9460, -1856, 1123, 826, -265, -762, 1596, -632,
- 52, -622, -894, 367, -433, -100, 1873, 756,
--17436, 168, -541, 550, 145, -5612, -1057, -1344,
- -656, -194, 216, -500, -245, 246, 64, 688,
- 727, 12538, -5492, 252, -908, -424, -532, -659,
- -277, -230, -736, -183, 35, -228, 200, -12,
- -248, -60, -493, 433, 446, 366, -644, 92,
- -324, 29, 833, -21542, -977, 94, 379, 49,
- -1058, 248, -178, 85, -961, -1198, -48, 467,
- -242, -10202, 1556, 11263, -716, 814, -1686, 3594,
- -27, 694, -802, 390, 4144, -663, 44, -546,
- 312, -28, -484, 981, -307, 496, 408, 203,
- 12543, 296, -1240, 159, 846, -957, -1493, -618,
- 1593, 11868, 2616, 1954, 412, -922, -1320, 3325,
- -254, -1892, 607, -2223, -8745, -1486, 17, 343,
- -50, -562, 22011, -350, -491, -70, -60, 617,
- 768, -346, 387, 660, 1409, 222, 616, 173,
- -1323, 4017, -207, -525, -13243, 11, 440, -614,
- -280, 549, -670, -79, 459, 560, -102, -214,
- -54, -1201, 230, -526, 857, 1044, -369, 2470,
--11010, -12586, 243, -205, 838, -920, 348, -738,
- 1319, 86, -78, -428, -1909, -155, 2, 508,
- 711, -292, 1699, 225, -101, -163, 540, 9692,
- 235, -183, -38, 198, -466, -204, -8957, -914,
- -299, 193, 10, 723, 643, -533, -1418, 323,
- 20, 334, -886, -331, 368, 130, -30233, -152,
- -14, 637, 132, -232, -149, -430, 64, -243,
- -376, 370, 388, 196, -1098, 117, -794, -16,
- -274, 348, 464, -28156, 184, 322, -101, 2,
- -27, -183, 610, 256, -160, -573, -226, 588,
- 1613, 1028, 9518, -2151, -1602, -528, -356, -116,
--11511, 1828, -2206, -47, -757, -1479, -1429, -14717,
- 1686, 253, 802, 462, -37, -916, -289, -401,
- 13383, 353, -74, 114, -189, 636, 434, -639,
- 1013, 234, 11752, 219, 1464, -132, -12838, 125,
- -592, -40, -162, -1772, 506, 479, 422, 36,
- 15, -960, 799, 517, 1311, -409, 748, 729,
- 446, 11029, -13039, 1257, -651, -13, -742, 1416,
- -388, -274, -795, 163, -572, 74, 430, -90,
- -126, -74, -598, 140, 125, -20, -20332, 208,
- 37, 19, -174, -209, 305, 28, -402, 28,
- -315, -1, -134, 440, -832, 79, -635, -304,
- 8, -32768, 625, 470, -1224, -351, 546, -1171,
- -706, 652, 31, 7484, -448, 916, 1244, -379,
- -300, 68, 868, 607, 247, 70, -984, 14314,
- 21, -350, -82, 368, 456, -742, 472, 34,
- 782, -498, -879, 700, 417, 216, 415, -161,
- -181, -608, 1570, 862, -96, -114, 8095, -26,
- 168, -363, -804, -36, -770, 139, -171, 6645,
- -1425, 4826, -5288, 1358, -11747, -64, 650, -3206,
- -1692, 789, -2047, -279, 916, -1648, 1164, 2044,
- -144, -717, -392, -216, 372, 348, 1052, -175,
- 668, 308, -15, 29112, -406, -774, 365, -1006,
- -526, 1076, 59, -672, -87, -106, 174, 96,
- 615, 462, -43, -496, 112, 149, -56, -182,
- -268, -32768, -205, -676, 165, -1210, -325, 7964,
- -44, 546, -699, 285, -418, 355, 238, 550,
- 67, 425, 384, -950, -330, -208, -452, 212,
- 11610, -190, 37, -907, -11137, -982, 585, -783,
- -864, 164, -24, -514, -211, 2, -510, -580,
- 595, 128, 100, -229, -55, 290, -539, 40,
- -7786, -270, 295, -508, 562, -1196, 218, 33,
- 3788, -8954, -1082, 297, -906, -322, 123, 1162,
- -343, -11655, 88, -28, 1173, 9, -99, 36,
--11987, 356, 12630, 767, -183, -983, -559, 186,
- 1148, 530, -440, 1230, -456, -133, -424, 35,
- -357, 418, 1457, -687, 740, -242, 17855, -368,
- -1057, -262, -646, 406, -712, -1058, -84, 454
-},
-
-.cb0808l1 = {
- 982, -26, -721, 359, 509, 13290, 2391, 727,
- 325, 328, 269, -156, 346, -242, -31, -356,
- 741, 396, -98, 108, 35, -237, -29684, 196,
- -69, 462, -339, 24, -1221, 352, -658, 396,
- 243, -1658, -458, -1153, 5, -662, -47, 18,
- -572, -567, -2084, -980, -210, 150, -396, 14836,
- -210, 0, -162, -539, 588, -868, 248, -8576,
- 1020, 526, 1056, 262, -149, 818, -1353, -1120,
- 767, -738, -634, -14742, -105, 811, 1718, -116,
- -64, 307, 920, -1244, 2388, 10213, -4505, -250,
- 617, -1725, -645, 1258, 1146, -590, 707, -12,
- 372, 1794, 1012, -149, 404, -978, -306, 168,
- -1536, 89, 142, 938, -19891, 973, -481, -419,
- -904, -455, -1821, -1617, 654, -2022, 1906, -497,
--11346, -330, -11679, -14, 1, 535, -377, 1057,
- -214, -213, 430, -13, -3379, -11250, 911, -716,
- -240, -10, 260, 132, -611, -64, -594, -8540,
- 837, -3717, -1154, 906, 10623, -502, -167, 67,
- 119, 13501, -1469, 213, -1048, -1403, 432, -1079,
- 45, -230, -730, -203, -595, -1150, -460, -97,
- 395, -304, 27816, -300, -16, 153, -671, 551,
- 436, -956, -182, 194, 113, -5504, 194, 263,
- -332, -517, -244, -396, 540, 56, -371, 446,
- 147, -66, 7, -306, 1440, -308, 327, 645,
- 597, -6642, 72, 392, -138, -50, -144, -262,
- 504, -230, 114, 2076, 8175, 1188, 290, -872,
- 202, 69, 82, -281, -126, -291, -158, -152,
- -45, 239, 153, -516, -422, -691, 801, 28,
- 496, -298, -11118, 10430, -227, -851, 214, -801,
- 538, 834, -137, 942, 573, 405, 1308, 2234,
- 300, 1269, 12361, -752, 2177, -743, 60, 464,
- 946, 302, -422, 116, -1200, -110, -843, 284,
- -578, 732, -308, 153, -64, 156, 225, -29232,
- -452, -466, -130, 888, 240, 305, -83, 236,
- 208, 417, 1530, 294, 594, 351, 508, 137,
- -7274, -184, 201, 44, -635, -891, -652, -596,
- 380, -652, -8670, -76, -3746, -732, 262, -1860,
- -1030, 1366, -279, 444, 911, 209, 330, 251,
- -208, -747, 65, -10154, -204, 12960, -325, 347,
- -465, -730, -727, 385, -89, -763, -427, 868,
- -39, -859, 34, -29, -388, -1324, -218, 2051,
- -1593, 5511, 10507, -8516, 2254, 5847, -1474, 1994,
- 4704, -1876, 880, -3810, -489, -946, -1225, -1104,
- 125, 139, -668, 2232, -537, 179, -215, 63,
- 144, 72, 1198, 9750, 248, -709, 308, 10552,
- -434, -462, 13569, 1096, -491, -262, 804, -1599,
- 679, 569, 604, 1326, 213, -2026, 324, -2612,
- -373, -12818, -20, 38, -171, 316, 15516, 306,
- 763, 97, 91, -832, 23, -437, -390, 505,
- -1226, 2518, 106, -2065, 315, 86, 523, 172,
- -1012, -13851, 3358, 2610, -381, -194, 1200, -4106,
- -1298, -3637, -1534, 780, 1367, -544, -770, 1690,
- 1047, -54, 2136, 12502, 32, 6689, 706, -1172,
- 846, -4853, 2146, 2548, -39, -465, -596, 177,
- 213, 421, 28, -388, 11, 69, 31, -83,
- -28, -166, -150, -19836, -323, 3, 659, 783,
- 390, 139, -138, 31, -111, 453, -80, 432,
- -519, -259, 686, 11431, 163, -13179, 554, 40,
- -379, -120, -692, 340, 169, 120, -476, 643,
- 778, 501, -128, 543, 1275, -134, 20568, 201,
- 401, 512, -362, -210, -269, -812, 112, 75,
- 149, -547, -494, -418, -100, -13621, -1002, 1176,
- 1634, -395, -4289, -1531, -47, 850, -1102, 13558,
- -403, 683, -164, -2215, -1180, -1750, 344, 630,
- -968, 669, 540, 26, -594, 192, -17, -336,
- 19645, 1133, 18, -56, 418, -426, -1535, 409,
- 732, 186, 268, -20422, -22, 62, -621, 722,
- 440, 96, -307, -128, 480, 5, 87, 668,
- -361, -599, -22, 652, -176, -114, 214, -12233,
- -698, 232, 608, -126, -714, -488, -228, 929,
- -1582, -19845, 245, -460, 124, 57, 328, -436,
- -158, 236, -196, -534, 209, 69, 229, 210,
- -251, 1100, 583, 415, 210, 189, -219, 1242,
- 19482, -105, 190, -374, -43, -232, 253, 561,
- -297, -376, -1077, -308, 13486, -12462, 64, -190,
- -298, -643, 460, 232, -987, -478, 1596, 168,
- -722, 616, -873, -98, -948, 231, -1102, 11915,
- 746, -495, 1248, 1203, 11067, -32, 160, -94,
- -24, -153, -209, -1453, -1059, -313, -922, 1143,
- -538, -1348, -323, 679, -54, -232, -470, 2075,
--19135, 628, -774, 35, 247, -86, 721, 512,
- 1305, 850, 9760, 248, -2404, -220, 6, -73,
- -1370, 567, 1432, -2529, -1508, 14358, -992, -1111,
- -940, -111, 968, -530, 576, 102, -1045, 453,
- 180, -94, -7936, -310, 512, 996, -32, -1062,
- -150, -26, -6687, -181, -336, -1510, 616, 70,
- -332, -175, 624, -546, 171, 364, 1011, 68,
- -284, -368, 711, 46, 73, -34, -419, 404,
- 28270, 283, -324, 335, -131, 316, 212, -27,
- -342, -1062, 470, 1269, 454, 286, -1928, -1674,
- -739, -389, 1073, -6172, -317, -586, -194, -182,
--13034, -848, 4596, -659, 709, -630, -310, 400,
- 344, -276, 430, 876, -2047, -1012, -1672, -180,
- 64, 22005, -736, 829, 266, 182, 436, -112,
- -36, 131, 252, -63, 154, 368, 107, 93,
- -42, -32768, 0, 200, -230, 271, -1776, 4329,
- 986, -553, 481, 1888, -2770, 848, -6305, 264,
- 12244, 1610, -640, 1348, -2742, -2078, 907, -1115,
- 370, -16539, -1571, -176, 24, -515, 234, 954,
- 605, 613, -154, 463, 535, -160, 684, 470,
- 827, 10458, 150, -669, -6684, 339, -542, -730,
- -351, 984, 212, 116, -7, 62, 926, 2175,
- -185, -552, 489, -209, 5247, 38, 366, 53,
- 16, 263, -142, -535, -224, 338, -174, -125,
- 113, -12750, 400, -410, 281, -12, 744, -173,
- 486, -12159, -107, -183, -484, 2, 150, 1,
- -239, 7, -399, -608, -873, 698, -1623, 701,
- -773, 272, -832, -94, -921, 885, 13588, 178,
- 192, 148, 1346, 44, 59, -275, -14, -328,
- 212, 133, -223, 300, -394, -275, -43, -76,
- -47, 322, -208, 21713, 484, 329, 1860, 40,
- -916, 502, 130, 477, 1754, 503, 7984, -338,
- -323, -230, 354, 928, 430, -89, -94, 108,
- -543, 365, -130, 70, 902, -131, 58, 469,
- 580, -30949, 36, 232, -410, -451, 104, -8698,
- 113, -1682, -42, -279, -92, -280, -477, -386,
- -531, 832, 80, -15002, -56, 93, 164, -721,
- 8388, -412, -2396, 584, 1004, -310, -2229, -304,
- -383, 275, 1062, 1266, 297, -70, -909, 891,
- 131, -1046, 539, 32502, 1000, -21, -229, 138,
- 1528, -175, 546, 326, 168, -320, 716, -291,
- -298, -227, 1094, -59, -12561, 12943, 786, 600,
- -206, 889, -761, 54, 332, -1253, -597, 357,
- -1124, -50, -168, 1172, 2266, 75, -174, 583,
- 408, -157, 14666, 378, 302, -5, 48, 109,
- 28, -21, 1044, 529, -859, -1182, -202, 1984,
- 308, 402, 66, -1139, 2595, -380, 1119, 309,
- 482, -10705, 100, -4591, 11646, -1364, -365, 9521,
- -318, -23, 1076, -135, -2742, -833, 78, 910,
- 96, -20, -599, 46, 855, -1265, 4748, 2394,
- -250, -9096, -962, 191, -346, 348, 342, 1909,
- 15330, 266, 540, 271, 2986, 1356, 1542, -1019,
- -895, 737, 281, 684, -538, 10414, -922, 287,
- 679, 204, -11142, -2321, -346, -1572, -250, -315,
- -604, 1336, 311, 1317, -1111, 409, -104, -221,
--14125, -1511, -990, 705, -808, 587, 676, 348
-},
-
-.cb0808s0 = {
- -7488, -1327, -5244, -2049, -3736, -45, 446, 1558,
- -755, -6052, 6034, -4326, 740, -348, 12369, 2115,
- -662, -685, -6592, 10176, 8575, -1035, -2752, -4453,
- -283, 1547, 4776, -2932, 700, 3425, -3905, 1073,
- 2356, -7094, -1705, -435, 4840, -1944, 1188, 780,
- -3963, -6170, -1726, 4759, -4356, -2124, -1686, 321,
- -901, 1414, -923, -2678, -1198, -14777, -2038, -3528,
- 123, 11216, 1904, -1914, 7588, 2744, -4265, -4886,
- -3530, -1495, -1709, -5857, 3829, 2196, -4842, -817,
- -874, -5649, -2181, -3871, 3774, -1368, 322, -1126,
- -996, -3873, 13698, -9369, -848, 3797, -667, -1083,
- 2429, -3351, -1672, -3562, -1590, -3507, 552, 6610,
- -4137, -10061, -5452, -6142, -1454, 1726, -1298, -4479,
- 6126, 1626, -2791, 1584, 1300, 5726, 2584, 11109,
- 696, -3344, -2418, 9029, 4346, -3554, 1393, 144,
- 2051, 8916, 6174, 5170, 376, 9778, -2298, -4119,
- 3733, -35, -2673, 2222, 1383, 2046, 2859, -16131,
- 1637, -1195, -662, 2800, -2241, 3801, -5062, -978,
- 5670, -5449, -79, 3479, 606, 3766, -1325, -265,
- 907, -745, 1005, -14528, -4227, -3955, -7194, 3690,
- 2166, -2520, 11555, -511, 5900, -388, -3854, -3440,
- 2136, -868, -2986, 722, 1286, -4027, 10382, -1646,
- 5193, 2539, 1239, 7819, -67, 3382, -3297, -46,
- -3808, 830, 1313, -2188, -4346, 5922, -1057, -6294,
- 14317, 2001, 968, 4150, -4121, 1412, -302, -8401,
- -1388, 10649, -9513, 1042, 840, -4606, 2098, 1166,
- 1472, -802, -2810, 420, -561, -325, 2652, -2866,
- 1334, 4878, 958, 83, 456, 1203, -7594, 14590,
- -1210, 2202, -1954, -1938, -3413, -1096, 6036, -1675,
- -1320, -4485, -10665, 10026, -2484, -3273, 4753, -275,
- -3542, 924, 1262, 7348, -2959, -749, -408, 4594,
- 4876, -491, 3409, 4616, 110, 557, -1378, -1616,
- -4532, 1699, 1412, 579, -494, 716, 197, -23346,
- -2284, 156, 1096, -151, -1827, 688, -322, 2371,
- -7909, -1324, -1683, 7861, 7074, -451, 258, 9088,
- 1900, 8660, 840, 3491, -3275, 3029, -475, -2122,
- -5725, -8668, -6069, -3458, 4240, -3007, -5463, 9395,
- -2686, 4718, -717, 42, -1802, 3122, -3197, -5212,
- -1572, -243, -451, 8213, -2199, -3372, 4110, -8176,
--10525, -5551, 4312, 682, 2069, 1985, -3713, -6780,
- 1193, 2831, -2228, 486, -3667, -789, -1691, 4567,
- 464, -2114, -2340, -1881, 1921, 1602, 18418, 1535,
- -567, 228, -9359, -6027, -267, 3628, 32767, 1423,
- -74, -2817, 2112, -128, -1516, -2446, 1673, 2812,
- -1582, 2125, 618, 2569, 2714, -1710, 340, 3255,
- 848, 3379, -2317, -2361, -1823, 412, -2496, -18164,
- -1224, 2552, -3040, 144, -597, 7716, 4916, -2867,
- -2172, 2120, -2776, 675, -11985, 1692, -1384, -3588,
- 4310, 1020, -4215, -251, -7090, -1916, 1914, -2804,
- 6189, -6732, -1370, -3704, 450, -2652, 6553, -38,
- 10348, 1244, -2246, -3729, -2158, -1340, 2357, 3118,
- 9378, -1727, 3150, -3867, 1277, -15, 769, -2352,
- -411, 1428, -14032, -1029, 2828, -1894, 6084, -36,
- 518, 13159, 1095, -1185, -3207, -555, -3256, -76,
- 3884, 3394, 1010, 1946, 160, -4863, 4714, -7087,
- -3985, 5602, 3350, 7822, -5729, -7701, 9296, 3067,
- 3582, 5256, 13629, -4012, -2206, -3867, -664, -104,
- 4397, -7862, 36, 955, -38, -973, 3458, 5004,
- 364, -9116, -2764, -2168, -1892, -7632, -4834, -5788,
- -3565, -1245, -4544, 6552, 4601, 2342, 6625, 1040,
- 2154, -6985, 5838, -1912, -3439, 1189, -2422, -555,
- 3286, -14872, -776, 1228, 2434, 120, 13673, 904,
- -1354, 645, -1550, -1377, -1888, 1416, -679, -1685,
- 1731, 2404, -5786, 3285, -193, -123, 1973, 3663,
- -1388, -14961, -3597, 5555, -1420, 284, 1527, -2575,
- 1941, 871, 3900, -2168, -12763, 2970, -408, -3131,
- -6426, 1892, 782, 6768, -284, 1034, 9785, 6029,
- -3873, -4102, -4349, 2548, -3686, -5622, 4769, -351,
- 8178, -7253, 3687, 624, -4386, 4028, -2780, -1938,
- -4061, -1872, -1264, 7300, 760, 8530, -821, -874,
--14225, -1143, -5400, -850, -2537, 478, 1668, -1244,
- -362, 877, 3481, -1338, -5218, 2091, 3996, -577,
- 390, 8626, 820, 181, -988, 5604, 9694, 1112,
- -3064, -266, 1234, -486, 1264, -2173, -13671, 3729,
- -3212, 2548, 1745, -9363, 8065, 3713, -3343, -4847,
- 2808, -4716, -2175, 25, -5718, 4056, 1855, 4663,
- 2324, -1166, 543, 2, 3931, -3196, 2771, -920,
- -2907, -746, -1241, -306, 2793, -22, -2642, 3048,
- 3256, 1804, -1310, 17876, -1816, 56, -1694, -465,
- -534, -2274, 6139, -2247, -2515, -1077, 3305, 1519,
- 273, 1128, -1637, 2561, -1534, 874, -22808, -1119,
- -2551, -10344, -2229, -3510, 194, 2594, 1737, 4713,
- 13767, 3532, -311, 8097, -1012, -841, -4360, 793,
- -267, -206, 12905, -2683, -6424, 196, 7098, -1690,
- -690, 1236, -2882, -2668, -2020, 8291, -2714, -4607,
- -923, -2077, -2878, 1687, -10457, -1575, 2172, -3974,
- 5795, 1748, -1852, -5143, 4763, -5097, -2840, -1851,
- 2634, 5970, 180, -3326, -1655, 1226, 375, 5137,
- -2678, -5246, 4327, -3670, 9956, -1976, 2189, 2952,
- -6785, -697, 1129, -5768, -5819, 6532, 3650, -1711,
- 3857, 47, -9618, -1941, 2524, -1244, 7242, 11646,
- -64, 2304, 201, -3707, -700, 149, 2692, -805,
- 3978, 2738, -977, -1004, -5776, 12779, 7454, -353,
- -4731, -3866, 7076, 146, -3302, 3065, 1955, -343,
- -1459, -426, -5906, -1318, 500, -1014, -1002, -2090,
- -2924, -20521, 2610, 1581, 397, -3380, -2885, 510,
- -1147, 3398, 1914, 99, -119, 144, -3128, 2445,
- 1791, 397, 3734, -80, -3410, -3798, -1142, -1515,
- -2615, -1540, 5193, 2187, 940, 4969, -2334, -16589,
- 325, -2186, -4567, 5121, -894, -6848, -6002, 1832,
- -568, 8259, 833, 3420, -4459, -748, 3442, 4358,
- -3041, -10203, 9303, -1511, -4821, 1950, -966, 3573,
- 453, 705, 16238, -901, -163, -2866, -104, -1767,
- -1779, -1249, 3251, 1975, 1254, -838, -390, -3150,
- 1020, 2526, -2025, 662, -2817, -1338, -855, -3442,
--21123, 241, -134, -952, -588, 2572, 2080, 8153,
- 114, 9732, -6774, -5266, -2462, 2286, -599, -426,
- 1396, -7051, -1228, 312, -4495, -2525, 4649, -1305,
- -1106, -2366, 2232, 4065, -18674, -1295, -3259, -1004,
- -5136, 206, 1177, -5130, 2394, 2518, -1381, 2564,
- -138, 4341, 16988, 2546, 6782, -3433, 850, -970,
- -255, 1308, 2228, 1704, -1283, 1452, -2608, 1487,
- 3106, -2267, -2998, -6814, 1654, 21195, 1555, 968,
- 154, 124, -1258, 714, -407, 44, 247, 992,
- 2228, 2824, 1435, -341, 1212, -1612, 6126, 1636,
- -8368, 578, -5418, 217, -191, 204, -7147, 5110,
- 3766, 5055, -5979, 6683, 368, -3597, -4595, 7630,
- -3611, -2384, 1369, 6995, -3299, -53, 2036, -4654,
- 4259, 9618, -1012, -2964, 4397, -2112, 11885, -1648,
- -942, -3474, -544, -1410, -1958, -1535, 2981, -1591,
--16787, 335, 4609, -1990, 3821, -645, 1842, -64,
- -3485, 3202, -374, -58, -1410, 7304, -1958, -2142,
--11412, -2533, 513, -6149, -6679, 2152, 3153, 5102,
- 2216, -1361, 2260, 4863, -7031, 1538, -5250, -2511,
- 96, 3339, -3447, -3708, 7168, -4168, 838, -3134,
- 3228, -1531, -5598, 14125, 208, -2150, 819, -1085,
- 12282, 6714, -2778, -9252, -5117, -6623, -1711, -4253,
- -6306, -1292, -1370, -1027, -908, -2863, -1832, 4645,
- -722, -284, -161, -5106, 7110, -12494, -1514, -5453,
- -3308, 3520, 1101, -1096, -2325, -746, -33, 2645,
- -4458, -797, -684, 1514, 1716, -6204, 6580, -3427,
- -650, -10493, 4868, 5833, -2385, -274, 1530, 3892,
- -1940, -1415, -2389, -11499, -2064, 937, -333, 1361,
- -1583, 5458, -2296, -3263, -8344, -4236, -6357, -2372,
- -3115, 1336, -2184, 194, -4262, -7838, 6946, 4535,
- 749, 7332, 67, -327, 273, 3211, -1825, -357,
- 7039, 3346, 6282, 488, -3940, 10196, 6463, 327,
- 4407, 909, 889, -4943, -622, -4049, 2532, 1870,
- 652, 1778, 663, 3063, -1012, -1390, 4162, 20486,
- -86, 3166, 325, -1912, 511, -634, 1262, -4719,
- -1490, 6767, -3314, -125, 4490, -10334, 5386, 9932,
- 781, 290, 2198, 1695, 3790, -1878, 7760, -300,
- 2021, 5508, 2200, 232, 7138, 1370, -3268, 3496,
- 13934, -1230, -2303, 958, 141, 3348, -2867, -987
-},
-
-.cb0808s1 = {
- 9313, 734, 6610, -3629, -12020, 5317, -244, -1858,
- 2, -1812, -6486, 892, 926, -236, 1016, -1249,
- -469, -238, -1908, -10594, -4704, -907, -7746, 3847,
- 564, -5956, 3395, 371, -5136, 4001, 1180, 769,
- -555, -1872, -2943, -1744, 8620, 1485, 9901, -1392,
- 3425, -7940, 151, 376, 1984, 3031, 3815, -974,
- 537, -7038, 1964, -5625, 4457, -10214, -1787, -2768,
- -8514, 176, -3692, 6441, 3148, 602, -2000, 13769,
- -2792, 1104, -2067, -6219, 1515, -288, 3240, -5490,
- 11589, 3742, -2343, -1752, 3701, 7525, -1676, 845,
- 6895, 2884, 3540, 2454, 1010, 2454, -5761, 2035,
- 3369, -9628, -862, -7060, 1802, 5676, 2396, 2757,
- 5891, -701, -11896, -4061, 7932, -272, 2562, 83,
- 560, -5180, -2223, -356, -3343, 2874, -1370, -7612,
- 1773, 2006, -4258, 5312, 342, 8196, 4939, 519,
- 3568, 4420, 2768, -11872, -3021, 1893, 1690, -5483,
- -8129, 7540, -116, -2064, -4473, 1141, 1930, 656,
- -7728, -2742, -3276, 2782, 2860, -6082, 5198, -4751,
- -486, -789, -16932, -566, 5116, 1196, 832, 4282,
- 78, 3088, 2768, 2125, 1027, 1712, 310, 808,
- -1595, -106, 3174, 4598, -2945, 1551, -7688, 620,
- -1640, 339, 4538, 3339, 532, -351, 260, 249,
- -2135, -543, -18362, -648, -3871, 5514, -1782, -11301,
- -374, -2078, 1610, 50, -4439, -2546, -3058, 839,
- -9221, 2618, 1790, 103, -1061, -363, 285, -3542,
- 503, -437, 30, 1382, 75, -2852, -1028, 3095,
- 4318, -2316, 739, 801, -22765, 2162, 913, 1698,
- 149, 2049, -313, -803, 3393, -1476, 4396, -4003,
- 854, -1344, 1062, 10009, 6332, -8522, -2616, -9904,
- -390, -3146, -2951, 4222, 5538, 495, 3776, -13684,
- 4687, -2187, -905, 4997, 6209, 4775, -1234, 1956,
- -4607, 3006, -370, -670, -12448, -5802, 8151, 140,
- 1485, -6340, 2139, 1231, 22, -212, 2090, -676,
- 2366, -701, -4113, 365, 2970, -577, 918, 7324,
- -709, 2035, 5162, 7232, -13287, -3259, -908, -1900,
- -4255, -2590, 318, 4891, 696, -40, -1647, 1572,
- -1221, 4896, 5241, 49, -2083, -5068, 7645, 8978,
- 1628, 2895, -4930, -8068, 2266, 2025, -1868, 3250,
- 2642, -785, -14571, 9979, 3481, -2246, 1154, 2646,
- 2616, -2033, -2936, -1300, 2490, 879, -1237, -1228,
- -724, -1780, 524, -6619, -3339, -2526, 3533, 844,
- 2946, 2208, -3522, -12411, -3062, 2380, 448, 604,
- -4708, 2403, 1914, -58, 149, -3704, -2019, 4246,
- -7020, -3197, -712, -2219, 10036, -2776, -3166, 2648,
- 2947, 3386, 6445, 1587, -268, -536, 1895, -9005,
- 10791, -982, 8215, 6414, 5166, 4751, 160, 3050,
- -865, 6216, -1187, -7077, 1640, 5078, 4354, 1762,
- -3869, 1174, -149, 1078, 1884, 5149, 15091, -432,
- -2441, -1102, -1194, 1078, -1535, 8289, -2702, 4007,
- 694, 72, 685, 2816, 13244, -422, -7094, 432,
- 2044, -12004, -276, 2174, -908, -4784, 5725, -250,
- 22, 5116, -2, 2686, 955, -8509, -7697, -3735,
- 672, -1202, 4299, 4284, 12352, -2362, 5757, 1317,
- 4293, 508, 3050, -524, 1097, 3346, -537, -2440,
- -1596, -5659, 4188, -625, 1659, 3061, 2791, 1712,
- -2991, 966, -16903, 610, -3314, 4160, -3750, 580,
- -3407, -340, -11829, -520, -1625, 2905, 674, -147,
- -5284, -4278, -5021, 4635, 6299, 2207, 2595, -7811,
- -68, 4107, 4314, -1540, -11044, -2214, -803, 232,
- -7602, -95, 1130, 4991, -361, 1675, 4487, 3607,
- -6192, -130, 137, -1440, 2826, 178, -13834, -984,
- 1149, 1230, 1587, 1571, 3286, 5293, -2259, 2021,
- -6211, -7608, -2710, 2502, 4315, -539, -8530, -746,
- -654, -4003, -5917, -3728, 4522, -10350, -1266, 210,
- 5078, -2988, -3866, 3919, 969, -1063, -6300, -4584,
- -2420, -2094, -884, 2338, -3150, 5461, -1145, -734,
- 1644, 2183, 19114, -1144, -2313, -404, 1236, 3583,
- 134, 1802, -4088, -2795, 681, 3738, 1831, 16571,
- 917, -2290, -3648, -1588, -158, -528, -792, 394,
- -7432, 2446, 402, -391, -73, -1398, 1286, -6503,
- 5216, 1094, -939, 1673, -2038, 15842, -1971, 4160,
- -1664, 7231, 642, 5770, 4209, -1839, 220, -266,
- 165, 2055, 5222, -3344, -6544, 5412, 1514, 586,
- 1591, -15256, -2715, 941, 1308, -9170, -2863, 4935,
- -2913, -1291, 2791, 7967, 14, -1101, 3774, 3580,
- 848, 1337, 1138, -2839, -3564, -5300, 12429, 14,
- 1466, -7114, 1198, -3474, -237, -2577, -1305, 445,
- 1069, -174, 1684, 3902, 229, 5842, -690, 978,
- -754, 1182, -859, 21078, -185, 710, 797, -2155,
- 367, -2168, 1002, 3805, -924, 468, -2322, -3590,
- 1608, 3387, 18, 1536, -858, 642, -7964, 17689,
- 9843, -4878, -3003, 7373, 5934, 4286, 10484, -63,
- -4629, 974, -2227, 2602, 3810, 1905, -1668, -2130,
- 2020, -2360, 2853, 612, 5070, -1248, -868, -497,
- 3478, -1937, -3006, -645, 3589, 3019, -3293, 16469,
- -5243, -2918, 1788, -2569, 3717, -9630, -1352, -3870,
- -416, -4190, -8863, -6888, -498, -814, -783, -4625,
- 5841, 1562, -2173, 481, 280, 816, 4742, -9962,
- 11799, -2029, -2460, 4972, -600, -1452, -1901, -2122,
- 3130, 2686, -819, -2366, 866, -2093, 1052, -58,
- 284, 3830, -4738, -4114, -1321, 1307, -2820, 4915,
--11701, 522, -1982, 7024, 8403, 1762, -46, 532,
- 5097, 5013, -615, 3086, 2089, 6899, -1107, -4047,
- -2903, 5356, -4802, -965, 6706, 3895, 9022, 1388,
- 10971, 5927, -2954, -965, -3473, -5177, -2654, 3418,
- -5315, -16695, -6587, -416, 404, 1230, -2586, -3292,
- 1390, 14, -481, -4446, 1335, 109, 1060, 3958,
- 1275, -5655, 1253, -2411, 207, -12550, 6208, -2447,
- -3415, 2503, 848, 3094, 9336, 2647, 2455, 2238,
- 2356, -2132, 5347, 915, 2227, -103, 5832, -2504,
- 7562, 9568, -6100, 4091, 2668, -1722, 287, 6763,
- 4058, -387, -2060, 5522, 3184, 4766, -158, 650,
--11284, 11841, 6230, -4232, 5308, 3174, 4926, -2970,
- -4761, -980, 117, 1944, -1974, -5484, 6534, -266,
- -7222, 924, -2654, -588, 9609, -2337, 1892, -2110,
- 5088, 1856, 7964, -4029, -940, 1429, 805, -4705,
- -1362, 892, -189, -8354, 3259, 194, 767, -2877,
- -4165, -990, 12185, -160, -2002, -1384, -5388, -1604,
- 226, -6353, -4157, 1773, 2360, -4356, -730, -5462,
- -4054, -15669, -1528, -394, 4101, -203, 2792, -787,
- 3391, -299, 6384, -1630, -7186, -12765, 4618, 934,
- -401, 2790, 2284, -4932, -1260, -6009, -2590, -2285,
- -1289, 3366, -4192, -4462, 32767, -3135, -1888, 67,
- -2874, 150, 4760, -1571, 584, -2187, 358, -1733,
- -1286, -4573, -2003, 1872, 940, -1942, -255, -8856,
- -1320, -3348, 4854, -509, 2836, -14, 2490, -1537,
- 882, 1188, -3132, -15209, -1633, -44, -2827, 368,
- -1099, -1073, -467, 6318, 5863, 2840, -5200, 569,
- -2984, 6587, 9596, -4924, 457, 4879, -4449, 3528,
- 1868, -3894, -3905, 15420, -2590, -599, -4975, 3892,
- -1454, -616, 1890, -2700, -3268, -1386, -1065, -3078,
- -2454, -1902, 4726, -34, -4218, 1619, -3074, 5540,
- -6392, -3570, 2687, -8742, 333, -106, 2326, -1737,
- -3775, 397, -3553, -6632, -6066, 9567, 2904, -889,
- 1136, 1295, 19390, -268, -3127, -180, 1696, -814,
- -775, -4914, -456, -758, -866, 1102, -3740, -374,
- 469, -6902, 1440, -10243, -6221, -4797, -3074, -1142,
- 297, 5069, -1547, 5474, 716, -454, 3806, 4100,
- 2901, -2169, -744, 5032, -5586, -2986, 2286, 2414,
- 7860, -2672, -46, -10046, 5348, -1018, 1016, 9142,
- 4543, 5587, 2228, -2684, -4594, -2457, -1850, -3651,
- -1806, 4826, -11686, 1940, -3529, 1078, -5234, -2420,
- -83, -2322, -5134, -775, 677, -9257, -864, -915,
- 4494, 411, -4820, 5999, 4472, 5823, -4597, 3121,
- -1868, -1539, 2338, -4249, 1154, -13422, 791, -1235,
- -1240, 364, 177, -1508, -2527, -2949, -2062, 118,
- -3115, 293, -1927, 18644, -1100, 152, -2528, 1914,
- -1380, -1624, 302, -831, -920, 320, -879, -1252,
- 813, -11, 6960, -522, 3092, -119, 1486, 3068,
- 6690, -3079, 13305, 6342, 937, 1632, -1026, 1896,
- -2335, -3961, 5510, 2782, 187, -2448, -1251, 756,
--15856, 3179, -1155, 808, -1748, -6593, 1494, -3122,
- -98, -3808, 491, 1752, 3188, 2158, -1924, 763,
- 1165, 148, -3161, -1284, 18082, -195, -1125, 845
-},
-
-.cb0808m0 = {
--18656, -461, 236, -1122, -796, -101, 851, -3748,
- 1374, -8549, -3366, -1482, 1026, 2046, 4394, -521,
- 232, -486, -1656, 32767, 1954, -1183, -130, 392,
- 194, -868, 2883, -168, -1674, -910, -34, 819,
- -1105, 1628, -4871, -585, -1170, -572, 451, 3911,
- 10770, -35, -4126, 7124, 7110, -860, -3914, -3294,
- 272, -647, 220, 11965, -3378, 2726, 1990, 1624,
- -3689, 9884, 2394, 3096, -518, 5169, -4018, 3108,
- 168, 1256, -410, -3851, -11176, -10479, 2042, 1421,
- 1488, -992, -1562, -653, -1191, 2246, 467, 4732,
- 154, 729, 7244, -18, 1313, -51, -1824, 1218,
- 1473, -6763, -11270, -4295, 4118, 1043, -5782, 1370,
- 46, -11027, 4086, -1501, -11, -621, 464, 781,
- 13680, 257, 554, 3119, 750, -1857, 1046, -1252,
- -512, 739, 14811, 12642, 3841, 2824, 163, 1620,
- 39, 4766, 1411, -2197, 525, 658, 419, 5,
- 92, 1544, 290, -2038, 10603, -5764, -3335, -6629,
- -2579, 4020, -3107, 2779, 849, 5678, 260, 2804,
- 99, 1339, 544, 1438, -450, -598, 764, 1568,
- -1034, -4560, 2604, -18205, 1644, 1003, -675, 3217,
- -334, -832, -1452, 322, 608, 300, -4776, -812,
- -36, 627, 1654, -248, -838, 21571, -89, -1626,
- 530, -1151, 9440, 522, -6138, 2213, -10095, -562,
- 1000, 5037, -122, -3, 7064, 397, -2118, 362,
- 15791, -1047, -15010, -1527, -1356, -2805, -560, -3148,
- 266, -45, 1324, -3312, -1772, 2382, 189, 6537,
- 124, -1272, 156, 588, -2678, -3106, 2828, -3684,
- 689, 3884, 4650, 192, -323, -5426, -722, 11486,
- -607, 3591, 4299, 2117, 362, -9114, 11700, -3391,
- 2357, 7639, 2197, 4350, 2970, -2525, 169, -6112,
- 91, 1520, -19, 1558, -4588, -837, -8163, 897,
- -7992, 2080, -3102, 774, -10592, -314, -137, -524,
- 87, -799, -111, 74, 1312, 862, 266, 243,
- 199, -288, 1205, -829, 1650, 2880, -24776, 3867,
--13101, 597, -9778, -2084, -3089, -1112, 548, -638,
- 3727, -446, 4877, 2099, 68, -2736, -4914, -7103,
- 263, -9228, -782, -2109, 1088, -1881, -1424, -30,
- -1353, 586, 4085, -3573, -11921, 2366, 516, -1028,
- 834, -234, 2150, -15893, 2305, -3619, -2567, -8366,
- 610, 2946, -2383, 2293, 946, -3550, -6770, -1481,
- -758, -864, -232, 2855, 40, -2330, 2069, -345,
- 1801, -589, -1241, 647, 6988, -2625, 14308, 2801,
- 759, -2740, -680, 964, 365, -506, 22268, 1766,
- -202, -2751, -293, 3754, 1280, -521, -3355, 4615,
- 594, -1783, -39, -46, 48, -2638, -551, 2548,
- -1880, 3730, -1726, 939, -345, -7, -1630, -23405,
- -1002, 5655, 2100, 440, 1682, 1020, -594, 344,
- 1511, -1286, 5518, 473, -11398, -4552, 720, 4701,
- 7726, 126, -1953, -484, -1648, -1766, 1589, 996,
- -688, -381, 1678, 1498, -528, -860, -667, -823,
- 32767, -463, -243, -1242, 1074, 2460, -1411, -459,
- -1533, 1462, -2603, -784, -391, 338, 3444, 2170,
- -924, 949, 1972, 1520, -3062, -671, 12908, 2636,
- 2805, 722, -12016, -26, 616, 1192, 1193, -1028,
- -128, -22850, 191, 408, -3105, -592, -440, 1264,
- -2580, 847, 850, 2300, -278, 126, 2214, -2693,
- -21, -194, -594, -533, 45, 570, 38, 636,
- 1276, 171, 29846, 648, 911, -358, 300, 602,
- 413, -10167, -54, -1353, 42, -1770, 491, -12154,
- -1808, 26, 425, 2009, 910, -8134, 362, 2001,
- -114, -2586, -1049, -249, -312, 160, 1677, 27043,
- -44, 160, 834, 243, -606, -272, -979, -1605,
- 105, -491, 754, -230, 2442, 24, -5139, -395,
- -3562, 14436, -1208, -3232, 2555, -12980, -906, 429,
- 217, -432, -1263, -244, -225, 912, -64, 780,
- 1101, 854, -240, 308, -28630, 518, 32, 976,
- -8642, -3041, 1801, -742, -1513, 128, -3189, 857,
--14277, -1802, 1229, -68, -565, 65, 4094, 1614,
- -8254, -1153, -640, 16225, 3508, -1383, -3882, -347,
- 1346, 3845, 2665, 2340, -1862, -5318, 1402, -1352,
--21682, -694, -1182, 286, -806, 2133, 1848, -532,
- -3750, 7564, 1054, 284, -3742, 2559, 2748, 3408,
- -1544, -342, -22578, 1225, 958, 2559, 267, 378,
- -3608, -1404, -1669, -13, 1135, 153, -625, 1436,
- 211, 556, 739, 1094, 10452, 850, 5128, 11469,
- 121, 4937, -3643, 1371, -373, -6686, 229, -3256,
- -75, 1304, -1023, -452, 288, 12709, 13572, -501,
- 1840, -1044, -2014, -4077, -2726, -1010, -3826, -629,
- -466, -923, -847, 5784, 898, -12036, 1253, -1741,
- 1546, -3710, 2782, -3430, -1810, 263, -8254, 3126,
- 55, -376, 202, 968, -1686, 944, -15300, -2664,
- 1393, 783, -11080, 1714, -1666, -1064, -4859, -2344,
- 334, 1313, -1209, 877, -1828, -2130, -3057, 340,
- 8030, -3222, 11622, -5620, 1469, 3340, 2862, -3945,
- -868, 351, -1314, 2277, -2346, 12384, 996, -2460,
- 1810, 703, -2158, 3168, -9887, 8754, 3503, -1414,
- 445, 850, -30, 2389, -617, 3271, -1606, -5633,
- 2993, 10009, 5704, -11589, 4278, 1304, -2418, 479,
--16596, -12349, 2915, 327, 895, 1278, 1412, -310,
- -653, -1287, 880, -4294, 38, 2179, -2074, -1810,
- 198, -1544, -8008, 2456, -2821, -3223, -3713, 11763,
- -2081, -141, 4833, 1652, 3598, 551, -1655, -1154,
- -60, -302, 739, -1494, 2595, -1006, 2665, 10834,
--11270, -2996, -636, -446, 1816, -1539, 4149, -184,
- -100, -55, 265, 2207, 639, -162, -2210, -626,
- 605, -21149, 2163, -970, -330, -4655, 3396, -3092,
- -544, -650, -304, 93, -1484, -888, -8982, 1871,
- 1701, -1423, 1671, -11, -1287, -14292, 592, 1040,
- -622, 13202, -660, -12745, -2836, -1832, 3481, 1546,
- 235, -646, 2132, -602, 2391, 1534, 3599, -4932,
- -296, -1855, -2075, -2646, -219, -10248, 1161, 5955,
- 6954, 9109, 3498, -5932, -1787, 373, 1234, 1244,
- -813, -76, 9083, -5120, -499, -1774, -2150, 10601,
- -170, 1160, 982, -597, 95, 151, -534, 6554,
- 840, -958, -720, 2066, -50, -2877, -74, -2068,
--24760, -725, -357, 1273, 1941, 2525, 46, -819,
- -230, 1030, 2291, -287, 1092, -2315, 427, -19,
- 448, 1698, 9797, 10962, 3034, 2622, -2652, -1128,
- -194, -180, -1176, -1794, -22248, 244, -3, -1856,
- -1054, -2751, -459, -62, -433, -2274, -1790, -192,
- -720, -421, 55, -721, 1960, 1094, 2500, -2353,
- -480, -784, -1221, -505, 1738, -9960, -10772, -13657,
- 122, 387, -667, -454, 988, 30780, -757, -2319,
- 878, 962, 753, 1306, 716, -771, 539, -705,
- 508, 1915, 2114, 937, 447, 935, -1432, -1143,
- 4435, 11759, -2442, -53, -10601, 1979, 5419, -2296,
- -172, -5987, -1168, -2012, 2257, -1451, 97, -1253,
- 5548, 884, -14448, 3134, 2549, 172, 5404, 869,
- -83, 597, -12416, 762, -1035, -805, -1369, -804,
- 664, 9644, -4329, 1130, -1526, -2900, 628, 620,
- -6436, -2370, 2107, -11836, 37, 864, 2105, 314,
- 216, -529, 810, 3141, 3716, 7019, -2653, 1466,
--14940, 13128, 1218, 2287, -145, -443, -923, 476,
- 2411, 5428, -611, 2212, 1450, -3042, -4750, 3562,
- 587, -15378, -15151, 600, 1029, -2353, -934, 1986,
- 1444, -2171, 1020, -700, -1508, 195, -2466, -798,
- 16460, -2164, 520, 2711, -13832, -2024, -871, -5268,
- 3556, 117, -416, -8, 2128, -1570, 2052, -3169
-},
-
-.cb0808m1 = {
- 16492, -295, 2556, 1303, -440, 7584, 3305, -3422,
- -1196, -1809, 2142, -1292, 1048, 314, 1945, 578,
- 1080, -255, 1109, 617, 1597, 198, -29081, -243,
- 54, -33, 76, -418, 1332, 475, 1495, 1554,
- -782, 308, -1286, 1044, 300, 1544, 646, 9441,
- 2577, -11140, 1421, 1107, -483, -590, 625, 8544,
- 446, -1814, 1714, 685, 9620, -4981, -3100, -724,
- 8439, -2333, 506, 3557, -1160, -2199, -659, 4107,
- 8620, -1406, -3745, 1729, 10756, 868, -82, 2584,
- -3140, 3632, 2617, 3880, -1175, -163, 1864, -980,
- 551, 201, -433, -1464, 708, 1926, -8471, 3870,
- -2376, 15567, 2112, 753, -2450, 72, 1131, 2932,
- -139, 6392, 1547, 3, 625, -823, -1750, 811,
- -977, -1389, 1300, 1184, 399, 4684, 196, 3679,
- -1672, -218, -11023, 98, 492, 4072, 1213, -2004,
- 3602, -1787, 1288, -9442, 4157, -4267, 3509, 5317,
- -574, -11094, 1078, 6240, 1593, -12773, 408, 3960,
- 1116, 1517, -816, -577, -696, 554, 1645, -936,
- 83, -20255, -754, 1460, 1110, 1412, -757, 377,
- 2373, -1608, -1414, -1028, -3152, 1534, -4145, 2274,
- -286, -7058, 2286, 4013, 2515, 2681, -5602, 0,
- -1740, 257, 756, 11496, 954, 4513, 3968, 4851,
- 278, -511, 829, 2853, -9743, -3723, -1550, -444,
- 4256, -679, -11411, -4290, -1470, -4191, -952, -239,
- -198, 1361, 9527, 1481, -981, 1403, 991, -255,
- 9326, 1832, -1936, -135, 1123, 2756, 1932, 2543,
- 795, 12612, 2429, -498, -13185, 3812, -1628, 196,
- 1822, 4333, 2760, -676, -2902, 1244, -1974, -7046,
--12216, 1503, -2176, 1916, 365, 636, -11348, -5030,
- -3319, -3794, -1016, 1157, -4158, 3424, 344, 4494,
- 812, -3074, 4356, 293, -3463, 1232, 1746, 2696,
- -8269, -961, -4316, 130, -4278, -14007, 3025, -2703,
- 179, -10176, 1511, -1460, -1100, -1171, -1575, -2596,
- -2026, -11400, 2689, 1480, 743, -1669, 2728, 742,
- -60, 11452, 84, -662, 1424, -15103, -410, 2141,
- -1664, -1378, -122, 97, -358, -820, 382, -3865,
- 374, 1698, -21, -752, 595, -8771, -731, 9368,
- 1698, -2586, -6790, -2507, -1776, 4993, -3867, -2807,
- -190, 14465, -13938, 3095, -1198, 374, 1682, 1888,
- 286, -576, -2094, 454, -690, 1396, -1139, -422,
- 405, 238, 1718, 2048, 13448, -151, -247, 202,
- -900, -5630, 3121, -10988, -1615, 1955, -3901, 3360,
- 1429, 3928, 1951, -1099, -435, 1572, 1500, 19176,
- 731, -439, 3686, -3039, 244, -4270, -34, 1289,
- 296, -406, 2216, -1400, -1946, 264, 1536, 2992,
- 54, 892, -181, -1545, 278, 24923, 989, 1301,
- -1279, -188, -198, -661, 612, -1520, 2355, -12972,
- -694, -560, 1364, -2988, -6236, 2555, -6630, 1423,
- 440, -598, -1092, 304, -2529, -1698, -909, 2560,
- 844, 768, -2988, -661, 18432, 1158, -639, 5070,
- 11015, -14, 2313, 756, -1941, -10986, -490, -5235,
- 2646, 2406, 170, -546, 337, 6499, -4450, 5598,
- 299, -504, 14322, -972, 9356, -2056, 8812, -1599,
- -1931, 2084, 119, -983, -305, 1437, 403, 2651,
- -159, 229, 209, 1438, -1789, -1159, 1017, 416,
- 408, 454, 858, -652, -1554, 1198, 18278, 122,
- 433, -165, 162, -10532, 11563, 4754, -2022, 4246,
- -1396, -2417, -1796, -1496, -1279, 3877, -1217, -770,
- 983, -609, 1766, -184, -5664, 546, 7948, 1978,
- -250, 4350, 3498, 2797, 802, 846, -12628, -1092,
- -240, 781, -11252, -955, 9944, -222, 1177, 1262,
- -534, 1790, -7396, 1452, 4251, 303, -3714, -2295,
- -290, -227, 672, 22690, -622, -466, 1599, -496,
- 326, 871, -1948, 148, 449, 214, -2175, 713,
- 394, 1921, -28716, -786, 1083, -641, 1232, -246,
- 1572, 1575, -879, -2962, -57, 369, 1633, -1457,
- 1194, -1222, 304, -955, 104, -1249, -935, 135,
- -758, 3483, -1190, 1457, 1130, -1284, -3709, 18042,
- 6, 25, 1233, -328, 347, -512, 2071, 328,
--18037, 4582, 3841, -434, -745, 332, -576, 3006,
- 336, -11505, -646, 3509, -996, 1270, 2041, 1353,
- 1193, 2976, 11569, -3165, 1450, 4351, 2522, -10022,
- -6, 12602, 874, 518, 475, 1251, -3290, -2674,
- 4802, -11794, -946, -426, -2846, 1619, 1105, -1022,
- -1, 1759, 646, 10347, -2937, 13505, 1104, 614,
- 1149, -800, 2377, -115, 792, -948, -2431, -1779,
- -1142, 809, -3130, 447, -15516, 313, 11235, -1346,
- -2426, -2737, -1738, 2236, 1094, 802, 1323, 3612,
- -213, 1383, 2800, 10394, 1210, -2360, -10203, -1991,
- -102, -2669, 2303, -2184, 1830, -1158, -5633, -4083,
- -252, 311, 612, -331, -2786, -12421, 9994, -6006,
- -4996, -954, 1014, -1147, 860, 1252, 1114, -2069,
- 266, -230, -591, -4442, 230, 20603, 1386, 1130,
- -1468, -3600, 2168, 836, -1754, -511, -542, 216,
- 26, 3476, 1165, -4293, 3098, -245, -579, 1830,
- 2248, 5326, -18357, 397, 5466, 734, 3920, -3678,
- 319, -1062, -610, -7509, -1064, 1456, -5729, 1088,
- 9099, 2266, 241, 201, -10017, -1545, -2799, 1491,
- 27098, -60, -1736, 1387, 859, -1474, -79, -1122,
- -971, -1302, 906, -1133, -2659, -296, 1344, -2698,
- -448, -1476, -212, -1585, 1310, 14353, -2165, -2229,
- -656, 5219, -3266, -1850, 7942, 4997, -2295, 519,
- 608, -9498, -1700, 1770, -15308, 1286, -2914, 2252,
- -717, 2136, 2478, -3747, 2362, -5, -237, 2334,
- 701, -774, -672, -20, -599, 623, -700, -713,
- -979, -29926, -1090, 848, -141, 1273, -711, 1782,
- -221, -103, 170, -185, -1059, 3066, 1321, 1182,
- 3641, -217, 1959, 11806, 2390, -10312, -2575, 1612,
- 596, -352, 2197, -2041, 2385, -898, -9363, -1144,
--10896, 20, -7842, -1047, 3687, 2147, 2584, -249,
- -72, 32767, 1936, 446, -889, -845, -896, 1269,
- 448, 327, -3411, 4, 702, -1900, -646, 799,
- -770, 662, -911, -856, 287, 1667, -108, -64,
- 16, 1578, -2059, -27327, 112, -188, 2504, -692,
- 250, 360, 564, 868, 4147, 1340, 18080, -3584,
- 445, 364, -2623, -412, -2918, -116, 2611, -2396,
- -44, 10934, -1512, -1166, 239, 913, 190, -14681,
- -767, 2610, 2931, -2389, 3590, -1680, 6287, -531,
- -616, 1317, -1034, -900, 871, -329, 467, 1200,
- -1914, 1108, 3150, -6878, 544, -14411, 2807, 5427,
- 13361, 1448, -1753, 524, -5851, 1467, -1866, 6888,
- -8742, 1372, -1515, 4883, -2248, -1042, 4628, 10768,
- 149, -358, -1287, -1289, 32767, -1137, 941, -2112,
- 451, -1436, 174, 294, 475, -3667, 1610, 1641,
- -599, 626, 2058, 671, 1626, -985, -123, 2040,
- 421, 1797, 18448, 2538, -359, -5042, 3096, -1136,
- -320, 1823, 30, -12002, -1297, -850, -418, -1497,
- -1761, 5073, 10944, 212, -4713, -1614, -1752, -2135,
- 483, 1043, -1989, -293, 39, -1049, 67, -7482,
- 712, -5358, 896, 12460, -1744, -1793, 1538, 3577,
- -6, 418, -72, 1072, 1367, 1080, 3564, 1468,
- 482, -1298, -6442, -299, -12934, -757, -4199, 3842,
--11331, -1216, -206, 1598, -1135, -3240, 3294, -286,
- -540, 777, 1188, -1189, 4516, 2638, 2071, 9702,
- -900, 1002, 18707, -705, -1856, 1185, -4832, -1694,
- -3502, -2324, -2826, -4600, 1996, -3110, 110, 117,
- 405, -16854, -510, -14725, 1699, 1922, -2117, -2718,
- 45, 1064, 507, -1781, 2106, -2310, 1239, 5860
-},
-
-.cb1108l0 = {
- 2354, 8016, 12528, -947, -348, 1760, 2054, -3960,
- -2125, -3578, 3932, 1647, -3316, 6053, 392, -3128,
- 3209, -2445, 463, -2835, -1555, 1259, 296, -1465,
- 1839, -4811, 420, -215, 469, -1013, -272, 185,
--27061, -1154, 8, 298, 259, -953, -555, 472,
- 617, -1127, -673, 982, -398, -1681, 328, 882,
- 614, 800, 431, 84, 880, -240, 15758, -14324,
- 1301, 1578, 932, -694, -1456, 2435, -1651, 1464,
- 227, 1527, 527, -128, 698, 2405, -726, 1489,
- 1016, 1938, -1897, -1478, -238, 932, 2507, -519,
- -1147, 557, 2334, 700, -12914, 14861, 158, 255,
- 1195, -883, 3359, -1045, 2095, 520, 249, 926,
- 789, 1392, -185, -1654, 902, 9, -2166, -1916,
- 543, -2126, 2842, -332, 1356, -344, 436, -404,
- -174, -489, 858, 258, 229, -45, 327, -316,
- -1176, -454, 115, -220, -458, -194, 271, -530,
- 1572, -574, -25068, 167, 601, -1027, -1705, -3144,
- -4231, -1636, -1012, -1002, -519, -825, -458, 945,
- 546, 193, -17909, -156, -1067, 826, 338, 1152,
- 562, -506, 848, 239, 188, 656, 97, -174,
- -59, 242, 1946, -67, 745, 2043, 424, -192,
- 574, -524, 1553, 566, 1480, -747, 487, -20623,
- 872, -1089, 1034, 1357, 919, 153, 154, 498,
- 54, 555, -989, 707, -85, -21, 700, -1424,
- 90, 655, -399, 123, -709, 117, 438, 330,
- -720, 190, 812, -138, 460, -32768, -162, -410,
- -327, -122, -1208, -554, -502, -178, -309, 373,
- 4295, -945, -5502, -2752, -6615, -1241, 1278, -1315,
- -7683, -986, -419, -50, 2384, -4640, -6246, -11804,
- -308, -446, 3486, -4824, 1736, -590, 960, 195,
- 593, 164, 3355, 1655, 1233, 66, -787, -347,
--13751, 74, -1209, -812, -4098, -102, 910, -1659,
- -2036, -3147, -2075, -2605, -1240, 4499, 1727, -9484,
- 549, 728, 3411, 1958, -4439, -1064, 5690, -1600,
- -1984, 1695, -588, 4815, -138, -3380, -512, 1553,
- 1978, 4310, -730, -402, 828, 2124, 14216, -222,
- 2757, -8686, 523, 2516, 1017, 790, -136, -470,
- -252, -717, 808, -1113, 13766, -114, -1182, 3053,
- -5238, -2231, 1720, -511, -987, 1592, -1257, -2578,
- 1777, 1075, 2367, -227, 2330, -672, -2620, -1449,
- 2122, 362, 1249, 1338, -327, -21631, -1540, 24,
- -2356, -656, 1981, -92, -207, -2188, 34, -457,
- -1291, 1231, -460, -128, -396, 593, -671, -1513,
- 136, -335, 560, -1121, 490, 1008, 948, 8629,
- -3344, 467, 881, -5731, 1120, -300, -1432, 1227,
- 1558, 990, -1078, 214, -922, -81, 1120, -15586,
- -1176, 1203, -1911, 151, 1484, 1555, -421, -420,
- -428, -762, 292, -59, 1075, -649, -841, 494,
- 194, 27, -768, -356, 54, 163, -73, 293,
- -1717, -392, 750, 234, 751, -111, 26858, 911,
- -389, 451, 442, 260, -117, 270, 19, -2429,
- 618, -962, 378, 10, -1954, -1336, 525, -258,
- -693, -4155, 10265, 2924, -1361, 3197, 10199, 6870,
- -2608, -5792, 619, -1994, -2035, -701, 2598, 465,
- -575, 311, 175, 162, -1191, 162, -157, -147,
- 325, 551, 536, -188, -290, -165, 343, 14,
- -268, -27113, 278, 127, -233, -68, 606, 125,
- 665, 438, -442, 2510, 800, -1991, -641, -386,
- -1574, 78, 946, 189, 106, -2249, -268, -1708,
- -1192, 986, 3076, 1807, 21, -5884, -964, 256,
--15916, -1320, -2867, -3562, 491, 3502, -337, -1542,
- 496, -3182, 1676, -2371, -4264, -2053, 14342, -5674,
- 1744, 1813, -3731, -3761, 1350, 1783, -438, -920,
- 2366, 1438, -687, 512, -1934, 323, -3158, 1775,
- 1964, -6742, 10162, 7763, 1469, 1967, 851, 2742,
- 7413, -3338, 742, 1854, 310, -192, -936, -1770,
- -775, -976, -1532, -1436, -670, -4032, 1194, -1336,
- -4369, 332, 604, 962, -27563, -972, 842, -743,
- 275, 713, -251, -799, -1190, 372, -213, -423,
- 202, 1189, -31, 1084, -974, 756, -148, -1669,
- 640, -549, -339, -1506, -112, -598, -870, 410,
--13307, 13141, -1911, 2308, -92, -776, 221, 1503,
- 1578, 803, -308, -1672, -404, -83, -3517, -1327,
- -606, -2426, -61, -513, 318, -1805, 2049, 1887,
- -777, 1268, -542, -116, 3550, -18840, -2986, -979,
- 2653, -2875, -922, -10520, 804, 107, 3234, -1270,
- -608, 1042, 3599, 965, -342, -2096, -267, 1704,
- -3939, 791, 2180, -985, 816, -716, -2661, 99,
- 1523, 11902, -1782, 775, -12517, 3244, -3762, 2046,
- -278, 1539, 2895, -2425, -10, 990, 1484, -1377,
- -3399, -984, 3171, 1513, 696, -785, 155, -1072,
- 414, 2016, -1932, -3124, -1126, 68, 3855, 1360,
- 4074, 17596, 1714, -596, 4000, 1656, 230, -258,
- 2266, 843, -1720, 4624, -714, 854, 696, 636,
- -1357, 350, -1256, -523, 168, -9933, -766, 198,
- 2680, 8060, 2168, -2789, -14255, 1444, -520, 169,
- 1032, 1478, 294, -644, -320, 856, 1282, -216,
- -1000, -925, 2, -890, 679, -629, 1152, -1329,
--13941, -16385, -1050, -1022, 106, -1151, -41, -709,
- 1771, -882, -729, -1420, 1544, -120, 386, -838,
- -2744, 1559, 904, 273, -4221, -1065, -312, -1046,
- 234, 830, 387, 172, -956, -332, 360, 408,
- 125, 90, 348, 915, -264, 911, 263, 124,
- -620, -612, 220, 164, 202, 124, -30252, -159,
- 1006, -320, 283, -1641, -1312, -9057, 5525, 7520,
- -2884, -12194, 2771, -1164, 1842, 1261, -582, 766,
- 2498, 393, 953, -617, -756, -323, -1862, 1195,
- -1326, -436, -965, 366, -6727, -1226, 9014, 400,
- -1258, -812, -279, -404, 1621, 86, 1622, -16,
- 96, -515, -257, -39, -134, 1843, -294, -491,
- -908, -120, -720, -1162, -1555, 405, -134, 528,
- 23596, -77, 183, -444, 2077, 955, 649, 2246,
- 3236, 735, -1202, 7954, 9440, 6134, -7267, 28,
- -3398, 500, 4965, -1230, 306, 357, 2942, -906,
- -4733, 903, -3945, 4447, 1046, -1125, 465, 1183,
--12710, -1018, -11302, 5177, -219, -6232, 1552, 2061,
- -1372, -1290, -822, 295, 814, -3003, -527, -614,
- -856, 802, 167, 1178, -494, -1625, 754, -1550,
- 682, -1286, -480, -694, 86, -67, -1429, -1235,
- -559, -311, 322, -308, -56, 296, -158, -24,
- -748, -197, 26954, 1054, 209, -226, 165, 681,
- -131, 341, 341, 1510, 615, 907, -264, 1355,
- 388, 198, -5, 418, -783, 28539, 82, -559,
- -459, -344, 279, -114, 966, -529, -423, 286,
- -418, -766, 42, 186, 461, 418, -688, 2937,
- 2793, 146, 1709, -665, 2022, 293, -1522, -2740,
--15926, -600, -1503, -1732, -2827, -1027, 1702, 252,
- -643, 470, -815, 858, -1954, 1190, 1847, -16,
- 266, 29, 486, 25985, 139, 220, 433, -330,
- 168, -362, -562, 180, 906, 386, -845, 664,
- 1064, -616, -1498, -335, -164, -930, -854, -869,
- -101, -204, 835, 117, -16034, -4478, 2634, 1629,
- -1873, -1156, -373, -526, 2537, 967, -2433, -857,
- 1264, -1670, 113, 845, 7654, -1343, 5245, -1605,
- 2236, -1190, -48, 3340, -1981, -1606, -1369, -227,
- -727, -570, 1136, 1868, 667, 92, -144, 531,
- 949, -1086, 530, 1764, 302, 190, -28036, 182,
- 825, 229, -656, 585, 444, 200, -1195, -1855,
- -387, -781, 1156, 692, -1164, -517, -464, -275,
- -328, 218, -970, 174, -384, -561, -38, -720,
- -140, 1021, -271, -57, 463, -25313, -342, -40,
- 26, 159, -854, 916, -1532, -1033, 265, 105,
- -719, -588, 96, -435, -296, -226, 224, 357,
- 30, 576, -66, -30037, -72, 374, 32, 256,
- 304, -852, -706, 248, -741, -379, 980, 629,
- 1344, 3858, -2211, -153, -3914, -3775, 1570, 718,
- -1042, -1338, -4409, 1338, 5118, 5186, 3619, 2142,
- 9081, -2784, 4169, 3598, 6621, 4562, -170, -614,
- 1196, -1174, 5024, 721, -71, 267, 4, 25598,
- -369, 356, 331, 1099, 377, -356, -938, 1161,
- -863, 1107, -132, 222, 148, 1410, 908, 60,
- 377, 1280, 468, 690, 454, 247, -4552, 6122,
- -267, 2973, -5932, -6424, -4983, -4193, -3386, 1691,
- 1349, 1419, -3730, 300, 12150, -2927, 1588, -34,
- -2435, -271, -961, -1744, 1881, -73, -453, -788,
- -798, 9166, 2744, 858, 342, 991, -287, 822,
- -37, 1156, -1493, 723, -14127, -1755, 2029, -933,
- -1276, 632, -5249, 464, -272, 1149, -290, 4693,
- -728, -1475, 841, 10, -283, 92, -268, -295,
- 358, 160, 405, 2, -381, 679, 716, -190,
- 128, 275, 255, 123, -412, -453, -273, 26,
- -174, -340, 644, -376, 27584, -25, 66, 3107,
- -1707, 911, 500, -1029, 1029, -1557, 9020, -398,
- -2512, -582, 1131, -16696, -429, -1284, -3, 2320,
- -532, -302, -174, -146, -413, 2152, 1009, 42,
- 402, -1471, 157, 5742, -782, -229, 2379, 646,
- 2842, -1776, -463, -2749, -3617, -1710, -12281, -566,
- 263, -3174, -2337, 9590, -1150, 2465, 4577, 2064,
- -648, -2175, -1877, -674, -634, -338, 343, -1492,
- 878, -530, 1072, 13670, -4542, 746, 9704, -4188,
- -7076, 1179, -740, -589, -876, 268, -1080, -986,
- -4584, 2692, 3032, -2067, 230, -3533, 944, -4950,
- -1908, 1452, -255, -698, 1460, -606, -250, -154,
--22303, -945, 1626, -588, -482, -1549, -129, 978,
- -631, -722, 1094, 1771, -311, 532, -508, 696,
- -1128, 1270, 854, -84, 4290, 414, 3351, 1061,
- 931, -2936, -9606, -35, 2514, -1095, 567, -452,
- -8520, 4037, -431, 2744, -2276, 2647, -1188, -454,
- -400, -3698, -315, 11558, -667, 512, 162, -395,
--13015, -11, -1944, -890, -14358, -3850, -4296, 1310,
- -580, -248, 1305, 402, -1049, 115, 2085, -1797,
- -1172, -321, -919, -313, -512, -131, 1619, 576,
- 499, -2024, 130, 14, -76, -6324, 495, 2445,
--16757, -2348, -2706, -1906, 2377, -2252, -619, -2579,
- 643, -661, -1276, 935, 893, 992, -2204, -2451,
- -395, -508, 1163, -216, -13034, -718, -1018, -1675,
- -698, 710, -257, 2658, 1178, 2046, -2270, -2588,
--14442, -1142, -1026, 2247, -536, 314, 123, -1175,
- -673, 1576, -2600, 5, 964, 619, -1714, -14811,
- -1502, -1646, -1151, -93, -11652, -222, 343, -2203,
- -351, -928, -289, 2679, 2101, 742, 747, -2245,
- 146, -1828, -2728, 1058, 1048, 3046, 242, 4432,
- 246, 350, -13419, 768, -805, 1819, 14332, 1316,
- -370, 391, -1421, -1426, -355, -812, -64, 196,
- -2917, 1097, -1550, -1246, 436, -62, -813, 1350,
- 555, -2236, -1589, 980, -1483, 10122, -2434, 7236,
--15225, 1513, 2090, -1224, -83, -2821, 664, 658,
- -3242, -1031, 1509, 2667, -160, -1315, 1060, 891,
- 432, -1311, -2503, 1304, 1295, 1745, -722, -2496,
- -4409, -3360, -2776, -2793, -4921, 12616, -1031, -443,
- 1495, -2416, -4640, 4508, -2944, 2608, 1323, -394,
- -415, -2111, -2065, 1030, -3636, -1338, 2916, -3007,
- -3680, -3152, -115, 577, 2742, 785, -4429, -1945,
- -304, -4883, -133, -3136, -1927, -576, 618, 1780,
- 2568, -2102, -158, -3986, -1187, 280, 655, 162,
- -1352, -5730, 15372, -1314, 1553, 274, -2873, 4221,
- 4610, -4143, -13699, 2760, -1255, -238, 1487, 1583,
- 1422, -2272, 4734, -6368, 795, -406, 1498, 1588,
- -500, -2744, -875, 2080, 1901, 960, 344, 979,
- -258, 952, 2526, -11785, 893, 669, 1361, 518,
- -1368, 3854, 2539, 623, -1835, -4177, 2686, -2956,
- -2804, 1121, -8890, 1377, 1125, -3990, 140, 3594,
- 1757, 2271, 366, 1723, 2150, 13557, -1768, -1433,
- -6632, -578, 3266, 2509, 7142, 680, 1532, 1318,
- -1123, 5668, 1283, -412, -5404, 2893, -2647, -2695,
- -1412, 340, -650, 863, 1895, 2867, 384, 626,
- 856, 508, 1365, -295, 960, -26080, 234, -4,
- 239, -412, -6, -765, 736, -30, 136, 912,
- 538, -792, 413, 871, -437, 305, 30, -194,
- 1105, -1113, 3550, -4854, 449, -549, -7626, 3706,
- -3698, 1778, 1441, 2240, 73, 513, -3383, -2346,
- -1372, 3955, 2973, 1175, -6087, 5071, -2135, 8552,
- 4961, -1201, -1458, -2627, -730, 515, -756, 476,
- -1104, 2115, -1276, 498, 336, -451, 809, -1030,
- 556, -211, -70, -93, 89, -755, 296, 872,
- -282, 380, -298, 2774, 660, 1339, -545, 429
-},
-
-.cb1108l1 = {
--13570, -9232, -673, 267, -819, 1633, -33, 623,
- -850, -4376, -1135, 999, -262, 1928, 695, -1751,
- -2793, 772, 5064, -1158, 280, -2144, 1313, 888,
- -2482, 469, 2996, -1406, 12525, -1200, -1202, 939,
- -3, 847, 818, -924, 135, -1308, -12000, -544,
- -592, -3914, 441, 3372, 3188, 1314, -1836, -706,
- -844, -1319, 1029, -1754, 172, 2468, -903, -889,
--14602, -2054, 11694, -1980, -730, -1661, 214, 1243,
- -337, -646, -95, 1432, -854, -236, 88, -2,
- 514, -1643, -84, 3561, 302, 770, -1248, 480,
- 664, 738, 1728, -1783, -2227, -702, -3582, -16641,
- 1713, 1506, 660, -2471, 2061, -48, -3161, 1697,
- 900, -1477, 558, 287, -5515, 1023, -1972, 999,
- -1856, -3022, -228, 711, 1270, 2644, -648, 1064,
- 3899, -1205, -754, 1080, 1262, 18, 860, 2274,
- 655, 494, -221, -15647, 1334, -473, -1648, -341,
- 3541, 3109, -1671, 639, -2491, 185, 477, -388,
- 5198, -5680, 812, 700, 2180, -536, -19468, -2508,
- 2592, 2901, 32, -1165, 1500, -422, -790, -1914,
- 971, 111, 1226, -1302, 541, -3862, -832, 642,
- 305, -3870, 8921, 570, 180, 1734, -1572, -891,
- 17672, -756, 702, 2740, -647, 2122, 102, -1371,
- 461, 454, 204, -307, -1248, -2330, 1353, -1783,
- -1939, -601, 512, 2118, -2178, 254, 1190, -1252,
- 923, 1166, 360, 320, 320, 1210, -142, -416,
- 1260, -205, 1403, -1025, 19252, 328, 58, 21,
- -1044, 1786, 2153, 697, -436, -1617, -869, -493,
- -2419, -3102, 1995, 1519, -1799, -153, 2689, -665,
- -1371, -915, 18486, 941, -2612, -1057, 1076, -3351,
- -48, -1478, 575, 728, 130, -168, 40, 898,
- 2141, 1518, -965, -1910, 896, 838, 1220, 416,
- -1494, 1404, -126, 21472, 604, 1740, 102, -812,
- -796, -734, 1082, -507, -468, -1732, 1171, 252,
- 359, 436, -765, 791, 726, -810, 1838, -1798,
- 5662, -2362, 1275, -2829, -4041, 1398, 2681, 480,
- 13740, -752, 2252, 1306, -1026, 1834, 54, 9993,
- 559, 1370, 711, 1918, -1757, 646, 16, -3262,
- 2676, 1751, -2595, 4782, -1050, 2401, -15131, 1100,
- 386, 708, -359, 455, -25, -950, 241, -482,
- 268, 2327, -2766, -142, -1992, -566, -36, 990,
- -6302, 3245, -1394, -1579, 760, -757, -2115, -8542,
- -2945, -800, -4027, -3102, -1319, -1989, -1787, -426,
- 590, 1031, 467, 31, 2674, 1686, -14352, 1174,
- -1446, -813, -1267, 2919, 2052, -1574, -753, 3369,
- -1090, 3830, 2042, 11376, 1140, 895, 1130, -720,
- -1284, -2277, 49, -724, 397, 13201, -985, 1599,
- -365, 1517, -496, 978, 2152, 1391, 1777, 3032,
- -936, 280, 1719, -4551, 4874, -941, -160, 956,
- -676, -229, -548, 183, -16606, -855, -3433, 1248,
- -578, 2254, -532, 3081, -1406, -1859, -605, 1809,
- -1001, -114, -1222, 3890, -609, 3114, -2430, -2142,
- 440, 1780, 1606, -4211, 1047, -456, 8280, 9,
- 5866, -1718, -932, -13049, -562, 3097, -583, -21,
- -1972, 1254, -172, 527, 2282, 5064, -5391, 1074,
- 357, 1845, 24, -996, 100, -50, 1098, 2905,
- -417, -937, -439, 247, 18502, -2380, -2088, -402,
- -580, 83, -282, -70, 969, 540, -219, -1132,
- -1701, -195, -3030, -2748, -1974, -1304, -1909, 1080,
- 1042, 1124, -128, 5816, 2303, 2840, -2420, 35,
- 16550, 721, -2079, -1489, 1023, -654, 2025, 1479,
- -185, -2449, 500, 3034, 2663, 3911, 1203, 998,
- 594, -533, -163, -262, 739, 13, -426, 182,
- 394, 350, -30055, -371, 150, -430, 147, -1122,
- 43, -390, 298, 831, -194, 158, -114, -257,
- -1346, -585, 206, -456, 478, -502, -1710, -1719,
- -581, -536, 45, -861, 825, 1093, -255, -685,
- 38, -20, 419, -594, 10, -1408, -526, -19191,
- 196, -1496, 255, 1844, -8759, -3565, -1009, -926,
- -818, -1195, 236, 2898, -182, 14344, -1384, 1064,
- 1181, -1846, 543, -583, 170, -3305, -1187, -2406,
- -40, -1051, -1071, -28, 1482, -1060, -1057, 3028,
- -2023, 913, 1052, 980, -5158, 4642, -14067, 3920,
- 1450, -4497, -1591, 842, -2222, -392, -42, -3546,
- -258, -3566, 2595, 225, -2696, 4624, 2283, 1483,
- -1506, 2164, 151, 380, -3207, -1086, -10594, 2005,
- 2379, -2567, -925, -363, -1261, 13174, -73, 1168,
- 2215, -1721, 726, 525, 1048, 322, -827, 2117,
- 3890, 1346, -3512, 2243, 638, 2259, -1371, -2260,
- 10590, 851, -1247, -894, 1871, -882, -1955, 3822,
- -3654, -1730, 906, 2074, -548, 885, -2501, -1316,
- -3275, -10694, 2031, 1077, 3013, -1105, 2951, 1907,
- 1218, 194, 1860, -1662, 178, 915, 1092, 809,
- -451, -610, -728, 799, -129, -101, -905, -2,
- 2470, 1292, -137, 544, -18795, -1081, -300, -59,
- 282, -329, -544, -1324, 2155, 9326, 462, -388,
- -303, -2940, -608, -13652, 532, -1350, -1026, 1330,
- 5559, -333, 4961, 707, -1832, 1070, 2483, -2016,
- -315, 2197, 849, -348, 379, -2179, -15691, 903,
- 3192, 3888, 396, 4610, 3261, -2589, -4903, -643,
- 3604, -1380, 1524, -2155, 469, -3528, -790, 429,
- -3862, 1797, -104, 2364, -1162, -1559, 1011, 1849,
- -235, -1952, -2088, 1436, 2502, -3862, -1704, -14859,
- -2863, 710, 624, 4373, -6302, -616, -807, -1577,
- -2492, -620, -917, 948, 4957, -848, -863, 514,
- -2210, 2162, -753, -15168, -2068, 12472, -2611, -723,
- 2797, -8573, -2270, 978, -2597, 2215, -684, 2535,
- 3114, -261, -178, 2385, -4869, 1161, -32, -1469,
- 2074, -1407, 3226, -992, 4546, -3158, 1044, 463,
- -5285, 4, -1396, -1395, 1770, -1767, -860, -6,
- -2242, -1548, -667, 587, -982, -2246, -1312, 1550,
- -542, 5302, -716, 135, -15895, 3382, -478, 1279,
- 615, 3365, 1620, -12613, -230, 3101, 3230, -1307,
- 2860, 628, 647, -3595, -214, -1631, 2783, 748,
- 1088, -57, -6014, 2496, 359, 719, 1476, -750,
- -1644, -2125, 3913, -3788, 565, -1118, -1411, 1377,
- -1020, -246, 18851, -1438, -1150, -1492, -681, -798,
- -776, 960, 911, -1449, 336, -1114, -2111, -877,
- -532, 668, 1018, 1098, 408, 2032, -607, -656,
- -5997, 3089, 2462, -18368, -1027, 78, -4066, 439,
- -845, 1476, 290, 490, -452, 1638, -3381, 80,
- 1699, 458, 260, 1215, -516, 1883, -62, 35,
- -2540, -1703, -1042, 1751, -422, 1222, 207, -104,
- 1112, 151, -473, -522, 26426, 562, 884, -2201,
- -281, 238, -839, 1037, -588, 81, -109, -2,
- -32, 75, 654, 489, 524, -388, -1408, -906,
- -1193, -936, -273, -40, -100, -662, -522, -145,
- 119, 614, -922, -25329, -180, -668, -574, 161,
- -448, 173, 750, -609, -812, -125, 814, 572,
- 2602, 20372, 244, 1820, 724, 515, 932, -1290,
- -712, -990, -305, -13, -763, -1157, 481, -764,
- 320, 624, -620, 642, -1494, -568, -601, -655,
- -790, -1348, 334, -1302, 382, 782, -1122, -641,
--23549, 180, 463, -634, -666, 599, -356, -1071,
- 816, -576, 1208, 912, -377, 624, 1049, 42,
- -95, 370, 1932, -167, -275, 142, -159, -410,
- 595, -562, -632, 748, 1192, 614, -41, -18,
- -156, -61, 1280, -686, 363, 759, 756, -19362,
- -614, 2151, -1185, 169, 327, 1494, 782, -1313,
- -134, 841, 218, -76, -2980, 202, 80, 281,
- 89, -61, -1678, 59, -125, 195, 320, -1310,
- -56, 806, 47, -65, 249, 18432, -666, -506,
- -204, -194, -560, -416, -3641, 330, -268, 842,
- 10600, -176, 424, -1744, -3609, -1682, -844, -309,
- -538, 435, 14251, -1281, 373, 2748, -702, -1358,
- -766, 3480, -679, 4039, 529, -5698, -38, -813,
- 1203, 4734, 318, -1044, -5109, 2187, -3474, 415,
- 2436, -3021, -1628, -456, -1451, 3406, -1798, 1001,
- -8648, 468, 1188, 497, 4628, -948, -4073, -11894,
- -2750, -738, 1520, -4070, -810, -5755, -1370, 2978,
- 4460, 917, 1221, -324, -1166, 2339, -1221, -2048,
- 714, 6884, 3096, 6998, 13, -275, -3879, 790,
- 104, 1383, 2056, 1957, -9216, -430, -199, 261,
- 764, -109, -210, 795, 884, -334, 1546, -272,
- -35, 738, -268, -13, -448, 645, 97, 76,
- 1284, -343, -654, 112, 643, 22846, 634, -597,
- -621, -784, -380, 951, -452, -685, 140, 688,
- -770, 247, -679, -228, -26856, 311, -546, -444,
- 606, 69, -195, 18, -220, -334, -42, 543,
- -28, 492, 766, 208, -1206, -554, 213, -1112,
- -1675, -608, 382, 2011, 5077, -17442, 1367, -702,
- -856, -416, -1728, -1987, 2966, -1952, 38, 152,
- 712, 210, -589, 3029, -1189, -2016, -8071, 10746,
- -2143, -556, -1964, 162, -504, 995, 982, -2565,
- -634, -985, -1668, 444, -2098, -411, 488, 1397,
- -1134, 1888, -920, -279, 15057, -757, -1258, -3040,
- -890, -105, -670, -490, -238, -2419, -1302, 915,
- -784, -929, 1653, -89, 1076, 445, 2538, -1424,
- 19175, -91, 437, 752, 254, 935, 854, -1666,
- -86, -543, 1053, 664, -155, -485, -3994, -50,
- 50, -58, -2626, 1801, -314, -16052, -1831, 1009,
- 2344, -3030, -938, 1761, -1283, -150, -425, -6660,
- -900, 1374, 803, 549, -2683, 837, 483, -655,
- 4610, 1259, -45, 834, 1103, -3250, -3604, -2882,
- -2463, -5331, 11312, -1653, -3505, -1855, -4962, 8579,
- 2370, -2474, 501, -1282, 985, -924, 3452, 456,
- -242, 3878, -2095, 2994, 7076, -459, 2574, 16116,
- 8277, -88, 572, -38, 0, 1664, -553, 1820,
- -2096, 1076, 415, -420, 1900, -1696, -130, 298,
- -1555, 201, -404, -1831, -932, 844, 9606, -497,
--16304, 3278, 918, -523, -1573, 2488, -813, 147,
- 1540, 3795, 1390, 1061, -78, -10, 574, 2620,
- -1143, -512, -582, -1496, 736, -4323, 786, -2873,
- -1342, 3932, 14508, 12635, -899, 1730, -673, 386,
- -676, 2787, -2780, -2960, 375, 475, -2188, 2250,
- 851, 788, 268, 1264, 2973, -94, 1062, 1006,
- -697, 669, -635, -986, -4848, -1486, -6, -3914,
- 6267, -1560, 8, -503, 5273, -3545, 69, 15146,
- 2263, -1490, -548, 1740, 1636, -892, -895, 769,
- -471, 226, 6497, -2466, -2037, -1068, 1075, -902,
- 13668, -1213, 12424, -3523, -124, -1090, 972, -1134,
- -494, -2568, 881, -3081, 369, -254, -618, -914,
- 443, -1254, 658, 1322, 546, -14, 778, -116,
- -378, -802, -268, 48, 1140, 25942, 503, -637,
- -871, 1050, 298, -187, 387, -406, 343, 212,
- 110, 723, 695, -47, -50, -568, -66, 347,
- -1588, 20, 701, -485, -98, -787, 4502, 1046,
- -1628, -2526, 185, 1016, -256, -700, -403, -154,
- 103, -752, -689, 2084, -1463, 2294, 360, 17590,
- -698, -1262, 788, 116, 755, 751, -440, -610,
- -469, 1235, -2314, 1240, -308, 553, 1065, 24442,
- -733, 667, 4, -484, 93, -263, -361, -278,
- -1524, 176, 1311, 1561, 435, -436, -1079, 260,
- -366, 472, -1049, 647, 158, 302, -931, -36,
- -990, 736, -444, 1077, -1560, -251, 148, 1000,
- 1096, -300, -224, -307, -17646, 39, 206, 74,
- 505, -3051, -1285, -793, -724, 718, 324, 803,
- 874, 6062, -2235, -3321, -550, 9264, 3483, -4172,
- -4024, -471, 858, 2682, -1078, -1922, 2088, 1135,
- -878, 545, 2205, 836, -1088, 547, 12461, 2222,
- -828, -3841, 4797, -2360, -2510, -4029, -2213, 13736,
- 1032, -958, 1895, 264, -1499, -2066, -241, 1324,
- -224, -792, 776, 2130, 2600, -2276, -4239, 3260,
- 1610, -1620, -1220, -2752, 979, -2028, 19626, -2146,
- 684, -729, -235, -289, 588, -600, 245, -879,
- -816, 413, -87, -1158, -246, 69, 970, -111,
- 500, 1097, 1087, -138, -1356, 30, -434, -452,
--22802, 177, 492, 206, -257, -854, 1445, 37,
- 1384, 97, -258, 811, -222, 53, 548, 1744,
- 124, -1031, 1076, 186, 453, -173, 1180, -2235,
- 583, -392, -1542, -726, 2937, -3635, -856, 1446,
- 7796, -2779, -962, -2277, 1651, 1960, -1460, -1277,
- -9794, -288, 2459, 2350, -2521, 84, 578, 2286,
- 480, 1620, 6421, -200, 170, 1513, 198, -1001,
- -491, -1000, 161, -482, 607, 214, 743, -292,
- -394, -192, 92, 73, -415, -316, 593, -42,
- -346, 456, 44, 950, 129, -189, 806, -221
-},
-
-.cb1108s0 = {
--32768, -828, 9569, 331, 6938, 3122, -1008, 2847,
- 646, -5690, 1712, -795, -4406, 1368, 307, -526,
- -2206, 26, -210, 1358, 746, 1920, 667, 3866,
- -413, -720, -4328, -2475, -1189, -863, -3809, -5052,
- -8567, 2859, 1915, 4895, 12440, -13002, 2757, -5969,
- 4054, 1100, -9430, 4930, 10266, -1522, 7092, -8778,
- -1968, 4325, 8440, 3888, -1966, -688, -2455, 2966,
- -2380, 1682, 4956, -2310, -3706, 404, 6774, 17562,
--12437, -2667, 4864, -9411, -6436, -9316, -903, -5526,
- 3463, -1690, -5250, -12568, 2338, -1310, -3019, 776,
- -641, 3483, 54, -10732, -3878, -691, -17615, 4530,
- 10267, 7830, 8488, -12624, -4514, -17183, 7070, 3115,
- 4176, 383, -4558, 410, 6379, 6242, 4702, 4853,
- -217, 446, -3811, -2396, 244, -2120, 3275, 5122,
- 180, 4523, 8680, -1868, -6164, 2636, -5056, -4039,
--11618, 4014, 11349, -2616, 8240, -5119, 1988, -2552,
- 6060, 3206, -662, 2686, 1116, -10447, -3004, 650,
- 7811, -12148, -327, 856, -916, -397, -600, 4621,
- 3011, 5539, 5417, -2374, 9667, -4714, 7821, -2819,
- 573, 4492, 1882, -26770, 1486, -6963, 1103, 2515,
- 8196, 1849, -7492, -5243, 2106, -5290, -11000, -1410,
- -3448, -8548, -4536, -7730, 3083, 6109, -14458, -8624,
- -381, 7840, 4694, -3906, 8223, 3315, 5849, 13112,
--13132, 6081, 11801, -7624, -376, -6372, -6817, 6834,
- 1760, -1435, 1072, 3505, -1494, -709, 5786, 454,
- 1807, 2650, 7728, 1357, -1002, -5366, -2368, 2052,
- 333, 6312, -336, 8274, -1653, -4309, -6630, 2841,
- 2448, 8398, 5376, -7248, -1474, -1842, -4119, 838,
- 501, -4206, 4052, -1250, -20943, -3338, -592, -2973,
- 7057, -128, -3235, -4313, -2510, -11313, -4925, 3103,
- 1448, -5186, -1322, -16815, 1956, -7950, 2641, -2890,
- 4396, 2322, -1381, -1911, 448, 2543, 3535, 782,
- 3719, -624, 1610, -2843, 7583, 1794, 700, 3107,
- 4528, 5461, 2540, -1074, 5976, 741, 576, 4426,
- 4400, -4920, 5724, -3734, -1186, 10645, 1100, 10537,
- 2828, 11670, -8391, -32572, -9405, -6807, -875, 2277,
- 736, -4546, -18693, 1204, -1083, 3422, -3328, 6013,
- -2992, 5812, 2744, -11668, -2519, -2384, -3635, 6532,
- 6874, -2820, -5222, -12261, -14266, -6663, -1150, -2032,
- 2099, 4642, 1638, -4162, -644, 249, -3133, 11830,
--10712, 12370, 4818, -1924, -5639, -6448, 2455, -4898,
- -613, 1760, 2393, 1414, 7039, -7018, 5901, -2900,
- 3786, -3230, -3718, 3514, -4040, -4676, 6367, -1449,
- -2758, -2888, 4066, -7140, 408, -7656, 3156, 19919,
- -1858, 6671, 352, -3355, 3074, 5524, -1429, 1954,
- -6664, -10082, 4405, -1598, -806, 1779, -6913, 7062,
- 5064, 6518, -1042, 3400, -5530, -1192, 590, -3298,
- -772, 571, -6239, 9810, -12380, 1302, 1344, -3430,
- 3830, 4106, 5792, -6196, 224, -2604, 3954, -12551,
- -5539, -8306, 1801, -4521, 3578, -4349, -5716, 4960,
- 3620, 1516, 5779, 5550, -3710, 3329, 10542, 4198,
- 5148, -3291, 196, 6232, 6943, -1303, -10306, 1862,
- 6547, -1544, -2996, 2868, -4389, -6894, 28557, -13130,
- 1397, -2331, -4076, 2870, 3592, 6613, 265, -4790,
- -3514, -3152, 8710, 230, 3142, -1264, 1822, -769,
- 6168, -1792, 2189, 2660, -2664, 3402, -533, -3100,
- -476, -1164, 6092, -2930, 3372, -5895, 8507, -918,
- -4716, -1582, 23959, 1506, 2360, -117, 2029, -452,
- -6575, 964, -13132, -2838, 3800, -3355, 3168, 5230,
- 11116, 826, -1711, -3546, 7398, -4092, -2884, 743,
- -1784, -3824, -3437, 1050, -3306, 928, -5109, -7999,
- 1581, 8609, -4662, -3594, -1618, 9929, -3982, -5591,
- -8789, -1444, -12011, 1304, 12668, -5138, 10837, -7951,
- -4089, 3921, -5375, -2486, -2590, 11398, -80, 7734,
- -4547, -11286, -7098, -7758, 5303, 7380, -11266, -11138,
- -8676, 30, 6328, 597, 7852, 3144, -3933, 15142,
- 3954, 12197, -507, -1667, 5517, -4187, 709, -1330,
- 2094, 4739, 1341, 8276, 8544, -10107, -10151, 3641,
- 771, 4798, 4839, -3254, -9246, -7304, 14850, -18155,
- 3068, 4993, -4930, 10985, 6270, 8528, 5904, -13010,
- -7824, 1300, -706, -156, -4228, 302, 9962, -3087,
- 4472, 4541, 13179, -6576, -2541, 8284, -51, 5366,
- -4369, 289, 3890, -3671, 1894, 21820, -3031, 5336,
- -8412, 2487, -1211, -6759, 1292, 3749, -8904, 638,
- 6863, 154, 1145, -684, 6648, -3874, 2005, 4670,
- 4408, 4191, 3984, 632, 2957, -1532, -3974, -2576,
- -1636, -3714, -136, -4946, 3900, 367, 27072, 1864,
- 1426, -3321, 860, -1768, -2009, -3436, 2666, -9899,
- -1328, -2330, -3078, -3258, -4600, 5604, -5248, 1703,
- 4403, -4781, -8275, 6717, -3860, 10980, -10634, -8360,
- -2291, 20311, 7602, -4028, 483, -4886, 2677, -4921,
- 6065, 5393, -2145, 6201, -472, 1796, 2869, -3578,
- 3053, -2342, -3193, -2589, -3215, 1322, 536, -164,
- -314, 4800, -1903, -1338, -11833, -23399, 5562, 4440,
- -1864, 2520, -4251, -1464, 5053, -8553, -3852, -5932,
- -849, -7113, -3493, -5338, -1671, 1496, 4504, -1830,
- 5716, -210, 1397, -2060, 2242, -583, 2604, 5355,
- 13938, 13150, 1346, 2649, -1527, -4568, 8891, 7399,
- -6492, -10371, -4885, 13056, -8262, -1267, -2959, -868,
- 5941, 299, -601, 8834, 1436, 5404, 1914, -3775,
- 980, 8848, -2270, -1952, 6902, 8642, -25725, 9556,
- 14540, 1998, -13157, 308, -13844, -10126, -2147, 8296,
- 1772, 1094, -9712, -8560, -7552, 5527, -1446, -1097,
- -5798, -17270, 2860, -210, 2136, 175, 729, 11775,
- -5154, -4202, 13342, 3977, 14494, -5659, 9105, -11067,
- -3694, 4794, -593, 6817, 1875, -4975, 3663, 4141,
- -8317, -8932, 2127, -4176, 1136, -148, 7640, 8127,
- -744, 2354, 389, 1600, -6475, -4558, 10735, 11407,
- 3896, 13098, 1814, 5191, -3850, 2629, 18430, 8343,
- 4630, -4624, -702, -3834, -2276, -2894, -1556, 1437,
- 424, 5652, -6260, 2387, -5845, 7496, 10657, -2754,
- 4806, 1169, 1308, -4114, -5347, 15076, 5686, 7287,
- 3004, -6254, 5186, -14096, 10323, -1974, -9355, -5544,
- -986, -5998, 261, 4494, 2467, -1911, -603, -4548,
- -1344, 1995, -1603, 10464, 5222, 3714, -5342, -8039,
- 12530, -26465, -1813, 4044, 746, 8123, -12078, -4703,
- 2971, -4487, 2556, 3904, -2518, 1504, 5774, 5431,
- 1120, -934, -5202, -6826, -8774, 7156, -2392, 10643,
- -2918, -4298, 3361, -3758, -894, 5828, -203, -4905,
- 6480, 11771, -19830, -17545, -4920, -17263, 10066, 10125,
- -8980, -19719, 23554, 27907, 2607, -7014, 6128, -23759,
- -4802, -7099, 874, 13103, 21667, -8475, -12938, -13122,
- -3694, -18860, -3518, -3586, 12658, -793, 10661, 6925,
- -730, -11373, -7845, 94, -2627, -6044, -2213, -4381,
--10198, -5816, -56, -4349, 3722, 3911, -1719, -2513,
--13290, 3218, 105, 1876, -76, -1107, 2563, 4520,
- 10288, 5862, -7738, 6180, 9863, 1380, 6756, 2632,
--18798, 9314, 7190, -7454, 432, -15141, 8462, 2128,
- -2386, -2710, 292, -751, -3125, 6147, 4941, 3146,
- 3046, 120, 321, -5884, 5105, -4300, 6264, -317,
- 1667, -694, 7950, 5639, -3284, 1089, -6456, -14694,
- -3527, -1104, 4313, -20858, 7920, -10782, -13536, 933,
- 4523, 2640, 2118, 97, -614, 9834, -9515, 232,
- 5086, -6720, -1529, 568, 3139, -3665, -8567, -13771,
- 6274, -4370, -5653, -8920, -7667, -9391, -6653, 12489,
- -3666, -5103, -12324, 4796, -540, 10396, 3668, -3467,
- 7124, -4398, 87, -12139, -204, 1213, -2190, 11948,
- -2641, -2434, -5647, 2819, 3148, 3558, -6455, 3705,
- 1644, -3090, -4225, -5998, 112, 17789, -7220, 2166,
- 4153, 4516, -1100, -1667, -1402, -8837, 6344, -1586,
- -3451, 2357, 616, -392, -8163, -11579, 6160, -2783,
- 7895, 11321, -11847, 8070, 5231, -6496, -3172, -3470,
- -2960, -11437, 465, -470, -2568, 11197, -9417, -4117,
- -1162, -1893, -2361, 551, 14478, 3510, -1372, 3117,
- -8236, -2904, 14556, 3191, 200, 2166, -13974, 2718,
- 3946, 2444, 1982, 5320, 2087, -2222, 1573, 742,
- -8828, -3917, -11080, -241, -8472, 6119, 290, -2364,
- -3163, 1923, -1964, -582, 2564, -5566, -6411, 2069,
- 7392, 9115, 25316, 1504, 2540, -814, -1746, 566,
- -1580, -2290, 170, 698, 105, 9567, -6714, -584,
- -4934, -379, -491, -978, 4580, 1180, -3355, 1882,
- -4343, 4817, 1503, 9968, -8878, -4908, 3419, -4818,
- -2254, 6694, -4368, -10849, -5093, 4510, -3129, 152,
- 1926, -4490, 1510, -17764, -6699, 962, 3474, 4981,
- 25, -7128, 1432, 5386, 3108, -4545, 1092, 1663,
- -1363, 3076, -8916, 6158, 244, -1181, -825, -933,
- -5570, 17221, -535, -2892, -5031, -1297, -3010, 5840,
- 678, 748, 3944, 1630, -3648, -5457, -2618, 876,
- 6655, -2834, 2597, -6667, 1330, -40, -4423, 6257,
- 743, 6083, -584, -3742, -1401, 1779, -5166, 4559,
- 5558, 8588, -6476, 7521, -1561, 4950, -778, 3564,
- 11403, -1010, -3151, -14151, -1020, 2595, -3278, 24555,
- -4859, -909, 2314, 1301, 2098, -5664, 3938, -4050,
- -203, 3368, -2580, 3061, -9266, -6263, -6748, 3890,
- 1950, -329, 1050, -1106, 588, 23705, -661, 6913,
- 722, -5820, 2147, 3789, -1689, 661, 5389, -8519,
- 1152, 3800, 7160, 5234, 1343, 3218, -2900, -391,
- -4258, 5084, -4783, 7262, -10013, -811, -5252, 6474,
--17338, -2388, -2596, -8715, 5836, 9523, 639, 4652,
- 3071, 3114, -1648, 1563, -931, -10143, 4394, -2838,
--11900, -1012, 841, -5812, -3048, -2715, -196, -5794,
--20022, 1949, 3464, -770, 2200, -3564, 1975, -6242,
- -1937, 3954, 5678, -2744, 1888, -3825, 5770, 3869,
- 8315, -7386, 1318, 1302, -5534, -4554, 924, -3804,
- -4292, -22757, -7972, -7469, -3543, 7858, -10125, -2637,
- -4765, -10644, -5944, 1159, -3293, 4363, -1219, -12248,
- 5060, -7232, 6947, -1609, -3037, -5084, 6580, 15873,
- 5336, 7295, 2386, 2961, 4655, 9714, 5080, 11635,
- 1790, 2897, 687, -914, -692, -6653, -8562, -1412,
- 244, 4478, 1650, 7175, 1046, -6689, 3693, -3520,
- 6046, -1336, 1976, 16822, -1176, 792, -1733, 8286,
- -7359, -2402, -8536, 1392, -3271, 6580, -4939, 1562,
- 595, -4237, 4872, 4266, -1798, -6589, 7457, 4207,
- 9978, -3996, -2236, -3078, 1861, 10101, -2394, -3250,
- -7619, -7082, -14305, 5664, -1337, -11019, -3839, 10190,
- 7249, 3086, -1782, 24, -3566, 10769, -4102, -6408,
- -688, -8987, 3018, -5942, 7478, -368, -7931, -3018,
- 6766, -78, 5705, -3264, -1100, 4850, 4518, -28,
- -6276, 4905, 7094, -4394, -2846, -88, 434, 2039,
- 352, 9827, 12372, 1207, -8561, -4476, 1496, -4927,
- 2087, -6730, 1134, -81, 57, -8701, -2918, 3953,
- -2844, -1842, 4804, -5315, -401, 7060, -16397, -4802,
- -9849, 17542, -11715, -12432, -6676, 9323, -13189, -5761,
- 8054, -620, -7431, 3726, 17790, 7880, 251, 2983,
- 3736, 7118, 17197, 8613, 1445, -15290, -16184, 11084,
- -4971, -5922, -1893, 9067, 9321, -8139, 714, 182,
- -3138, 7258, -1874, -2781, 10800, 2915, 5316, -5206,
- -2581, 10219, -484, 862, 119, 6628, 1514, 3883,
- -880, 7586, -2573, 3279, 3801, 4492, -3850, 9416,
- -38, 7518, -574, 4052, -1136, -668, 9672, -9536,
- 2551, -4223, -1074, -3616, 8446, 158, 3262, 7965,
- 1311, -8634, -6786, 700, 4973, 917, -754, -1156,
- 6054, 2067, 10757, 421, 1030, 11351, 2149, -4286,
- 12075, 4593, 1193, -5290, -8566, -2965, 6824, -6238,
- 2392, -3395, 5350, -2789, 7529, -1873, 3032, -1494,
- -2703, -18535, 1583, 9539, 2556, -4422, -6079, -2699,
- -7860, -4573, -8236, 4281, -1079, -17578, -2840, 7468,
- 4675, -5002, -1268, -1529, -8222, 8285, -766, -4314,
- 6048, 11507, 5046, -2444, 3186, 1732, 7872, 6598,
- 2828, -2920, 8278, 13263, -10204, 1334, -5552, 10532,
- 5412, 2554, -10076, 1128, -3959, -3210, 4091, 1824,
- 4984, 5558, -2204, 2080, -3802, 6614, -7380, 3612,
- -4624, 6366, -1795, 4038, 6227, -4312, -4910, -2127,
- 15077, 4144, -16885, 3757, 2303, -670, 5625, -2590,
- -2594, 2491, -3174, 4199, 1152, -1532, -7308, -8578,
- 6431, 2975, 6032, 3037, -7451, -2643, 5503, -7856,
- -2451, 5309, -3678, 8145, 1864, -8341, -15575, 7716,
--10337, 8935, 12350, -10418, -4092, 734, 10400, 10934,
- 5724, 1778, 5836, -3203, -10700, 2766, 4178, -18135,
--16589, -5465, -5005, 7239, 25480, 7310, -6408, 6142,
- -7748, -1423, -4318, -321, -2899, 3728, -3184, -3578,
--11598, -1223, -8554, 656, -3945, -4084, -724, 301,
- 9539, 9695, -1799, -2602, -1379, -5282, -4709, 11858,
- 9562, -7508, 4886, 896, 5780, -160, -12724, -9598,
- 1220, -5411, -5072, -6476, -11763, -104, 9311, 5230,
- 591, 4342, 263, 13198, -17801, -1892, 2619, 18194,
- -2080, 16536, 18497, -25926, 25541, 66, -6648, 1627,
- 2794, -3790, 9424, 1387, 20702, 5260, 5211, 1702,
- 1019, -11143, -6501, -18711, 10869, -4204, 4994, 1722,
- 8569, 3670, 4386, -16874, 8876, -2297, -2743, -4562,
- -9207, 8033, -346, -3586, -9451, 3242, 1552, 4278,
- -6787, 7118, 3630, 4602, -7371, -12789, -10424, -14922,
- -3010, 1885, 4144, -4490, 4074, 7796, -1201, -7244,
- 2675, 1221, -7060, -12828, -3520, 1983, -4615, 8207,
- 1606, 517, 3646, -7252, 816, -3690, -674, 13100,
--16254, 4727, -8184, -968, -5366, -2288, -20260, 1174,
--19384, -4199, -5292, 582, -13118, 1836, 1698, -2034,
--14601, 6642, -10530, 482, -851, 9968, 7050, -13366,
- -8354, 4740, -20050, -193, -1881, -1205, -4042, 7067,
- 12872, 5846, -4792, -1833, 2504, -3222, -1607, 2634,
- 4587, 6761, 1549, 1124, 9427, 3978, -8305, 7524,
- 2507, -5744, 3238, 5238, -3664, 694, -28496, -1674
-},
-
-.cb1108s1 = {
--10979, 8698, -630, 4660, 3060, -7292, 10140, 11942,
- 1448, -5820, -3144, 3100, 10575, 6888, 3505, 9996,
- 2787, -484, 8057, 1503, 6329, 3074, 3954, 9419,
- -736, 2333, -1858, 3264, -4026, 16130, -14501, -5284,
- -472, 850, -7258, 1542, 1473, -2348, -7055, -9574,
- -2275, -4383, 7542, -360, -2945, -3878, 28, 809,
- 600, 2246, 587, -1779, -3456, -737, 3242, -2523,
- -1862, 6127, 899, 1070, -15614, 10990, -3084, 9546,
- 7339, 8899, -1490, -10379, -9193, -3857, 8289, 7261,
- 12489, 7814, -6458, 1223, 15486, -10960, -1880, 4922,
- -7819, -527, -2370, 3687, 1358, 10367, -14266, -1496,
- 1060, -9325, -5582, -3947, -17536, 1470, 4878, 10793,
- 2904, -2566, -4995, 6549, 6141, 11048, 3177, -494,
- 9087, 797, -2575, -5616, 1197, 2966, -11287, 4658,
- -504, 4571, 1814, 18830, 26254, 2399, 8750, 2656,
- 8206, -12987, -9119, -1027, -457, 1228, 6137, 2322,
- 1732, -5694, -892, -249, -178, -7009, -4368, 402,
- -5564, -5183, 2470, -4745, 2788, -3255, -5181, -706,
- 40, -4915, 8926, -3633, -2455, 15054, 5376, -867,
- -7270, -979, 7053, -7433, 13749, 5039, -2234, 8474,
- 7031, -3917, 5127, -7602, 580, 12067, 2252, 149,
- 86, -582, -5729, 2193, 4178, -9195, -11824, 3897,
- 1298, -1044, 6450, 1885, -19562, 6205, -4610, -2544,
- 5192, -4885, 5021, -2373, -102, 7358, -2434, -3512,
- -4048, 3070, 45, -1344, 202, -2189, 448, 1172,
- 2939, -547, 1003, -6370, 3643, -1157, 3932, -6044,
--12882, 1959, -1574, 2574, 14854, -16317, -6627, 505,
- 1102, -9361, -8087, 7525, -1466, 284, 3756, -383,
- 5147, 5060, -474, 531, -6144, -1872, -1206, 527,
- -4861, -12410, 7508, -7226, 5046, -12233, -4153, 4628,
--14402, -5265, 534, 1528, -13408, -62, -18757, -1280,
- -9301, -10254, -8990, -6335, -7724, -3394, 1951, -13271,
- -1389, -5274, -4616, -9643, -10295, 1332, -5618, -10737,
- -7536, -9314, -7006, -760, 7694, 2955, -404, -2800,
- 15250, -3828, 5994, 5408, 8411, 16568, -7280, -6901,
- -222, -1554, -862, -1871, 939, -3678, -4348, -3200,
- 3220, 1614, 8598, 8162, 1749, -7378, -1658, 931,
- 3870, 9183, 1509, -5068, -17, 5733, -8121, 2769,
- -3195, -3296, 8940, 2828, -2470, -2448, 7413, -2851,
- -1058, -4505, -9653, -5074, 73, -3286, -4014, -1760,
- 2562, 13690, -3464, 5438, -3394, 16997, -2944, 291,
- 4224, 1175, -2237, -6894, -5479, -1291, 3390, 5455,
- 898, 3461, -7914, -4785, 1879, 1059, -3721, -5796,
- 5054, -3931, 6315, -2460, 1909, 573, -3373, 3052,
- -178, 986, 572, -5976, 5781, -4928, -10539, 580,
--18727, 757, 1759, -4049, 2232, 1890, 4115, 699,
- -2934, 4926, 2391, 10848, 5103, 4340, -1518, 2288,
- 2283, 8886, -5131, -4429, -4384, -3265, 11933, 3993,
- 11474, 3721, 1532, 976, 6112, 1954, -2360, -1783,
- 2080, -6356, 2482, -4646, -1992, 1590, 1790, 3290,
- -2312, -564, 508, -1688, -7522, -9263, 3059, 1883,
- -3005, -1303, -9146, 10282, 1333, 4692, -2083, -15792,
- 2208, 1128, -11574, -7149, -1126, -4995, 18963, -6262,
- 5045, 2179, -822, -1249, 10092, -338, 5744, 1635,
- 2535, 6114, -1339, -8337, -4370, 4288, 2468, 3051,
- 12491, -9554, -4034, 522, -1085, 5852, -2759, 4918,
--10717, -194, -11376, 3059, 12075, 1037, 5260, 816,
- 5918, -1987, 7924, -6022, -10374, 11607, 25035, -11598,
- 16894, 2458, -5461, -2039, 385, 6002, 7574, 1229,
- -834, -1032, -7453, 2694, -1447, 3632, 4215, 3541,
- 2936, -3294, 1001, -6451, -4595, -11682, 7880, 2261,
- 3786, -2849, 2276, -826, 3742, 7586, -334, 2837,
- -2331, -12849, 1170, -1150, -5253, -997, -8996, 8124,
- 2234, 904, -2294, 3144, 7352, -5452, 1536, -8800,
- 1886, -18282, -9787, -8066, -12066, 1536, 4460, -1345,
- 1418, 7471, 13451, -7299, 5507, 6795, -184, 8905,
- -2040, -4933, 4998, 7317, -6667, -5134, 9094, -8561,
- -2534, 3422, 2278, 3118, 205, 5811, 2247, 5946,
- 1078, -2105, -6946, 170, -1625, -4734, -1447, -4329,
- -4553, -2230, -8738, -15289, 7311, 6665, 5047, 1984,
- 11896, 13922, -10490, -9313, 1424, -2991, 1408, 335,
- 8914, 3773, 8814, 7917, -4560, -114, -624, 8984,
- -1598, -580, 3233, 590, -2172, -3162, -3985, 5394,
- 13842, -11625, 73, 12826, -1204, 5119, 10304, -10006,
- -2695, 1318, 156, 84, -760, -4638, -3804, 3041,
- -782, -2994, -3113, 637, -3256, -5831, 452, -1204,
- 1614, -11626, -4769, 10612, -8710, -20019, 10542, -4279,
- 6912, -1429, 3812, 2844, 3903, -11622, -8954, 180,
- 3898, 3858, 119, 1385, 4038, -5899, -969, -5454,
- 13305, -6748, 5934, 8027, -7348, -3797, -29781, -4956,
- 2037, -2331, -3292, 8254, 6597, 4446, -7848, 6250,
- 1400, -1182, -4966, -3490, -1410, -2286, 3334, 350,
- 9271, 2987, -934, -5702, -3881, -97, -671, 5108,
- -133, 1302, 11630, -8858, -3027, -42, 3682, -1507,
- 3992, 5641, 2778, -8698, -2509, -1360, 77, 2116,
- 98, 2853, -6334, 5915, -1214, -2721, 8921, 1380,
- -4158, -4315, -4740, -21049, 7044, 866, 2094, -9442,
- 9003, -5147, -4897, 3407, -11558, 4280, 4508, 6697,
- 1612, 1508, 8547, -14257, -151, -9530, -7250, 11321,
--14430, -4944, -2488, 1349, -248, -1490, 1749, 3970,
- -5830, 20767, 4642, 3236, 36, -17079, -11099, 5996,
--10759, -39, 7822, -7527, -1431, 179, -3841, 2298,
- 1407, -241, -2303, 9244, -3626, 6609, 1959, -518,
- 368, 1678, -5334, -5849, -4986, -2363, 607, 2809,
- -1006, -7695, 10022, 2216, -8992, 4282, 807, 14707,
- 9528, -11065, 3014, 3157, 5597, 1139, -1298, -3642,
- 7839, 860, -4336, 2624, -4171, 1791, -2825, 5362,
- -529, 1494, 337, -4487, -671, 5360, 3283, 4933,
--14692, 4033, -4365, 2713, -6903, -1784, -10862, 6173,
- 5278, 14859, -852, 10020, 12304, 8898, -3089, 9183,
- 1841, 8276, 4929, -261, -1264, 615, 3615, 14535,
- 6557, 519, 4228, 7382, -1805, -4529, 4992, 4277,
- -342, -9610, -5193, -7022, -23264, 2402, -740, 2875,
- -5052, 1983, 4987, 3336, -3806, 1335, -2868, 846,
- 7652, 936, 3510, -4570, -3010, -8805, 6177, -4413,
- 5879, -15204, -1632, 13416, -4543, 3838, -9293, 1744,
- 920, 15544, 3820, -5852, 3935, 2357, -6486, 1932,
- 12044, -6374, -2545, -2389, 2755, -8073, -8203, 4659,
- 4286, 16128, -987, 434, -4495, -4428, -4816, -10329,
- -4529, -13408, -13283, -1136, 4002, -1271, 3547, -5274,
- -5577, 701, -365, -2764, 370, -369, 2611, -832,
- 3862, 4604, -7786, 11170, -1453, -1568, 10758, 168,
- 402, -1985, 1436, -8858, 10080, -8559, 3998, -4310,
--13478, -3104, -11458, 506, -18194, -3724, -6768, 7960,
- -4213, 1121, -1658, -1141, -1874, -383, -5090, 748,
- -1032, -1207, 1046, -1865, -2387, 2126, -3672, 6733,
- -2794, 3797, 15562, -11989, 170, 6129, 658, 929,
- 4800, -4296, -955, -2189, -188, 3180, -118, -766,
- -2182, -6928, -2254, 6615, -4422, 6324, -31, 3742,
- -5832, -5022, 4671, 1574, -6309, 288, -2768, -2492,
- -4818, -5192, -248, -3236, -429, 120, 1182, -10486,
- -2964, -3713, -5978, 11817, -20052, -6525, 2054, -879,
- -602, -2843, 7244, -1372, 417, -172, 3322, -6556,
- -7021, 5842, 7357, -2799, 3660, 7579, 4682, -2242,
- 73, -9247, 21061, -2060, -3614, 2486, 4793, -2959,
- -510, -74, -5982, 2274, -4147, 3260, 1994, -1678,
- -7494, -13624, 2560, -7375, -896, -4945, -2838, -11096,
- -1969, 5879, 444, -3220, 14630, 4915, -2376, -8475,
- 9854, 11380, 11060, 1534, -14413, 4366, -9544, -10646,
- -7654, -17916, 3481, -3240, 1776, -2436, -8403, 3679,
- -1914, 12537, -5540, -5294, 5995, 5968, -2609, -16882,
- 789, -9506, -10075, -12142, -7580, -7090, -2046, 11065,
- 7617, -3503, -2013, 3516, 6347, -195, -3119, 2444,
- 14, -4998, 767, 4976, -3974, 9038, 579, 1804,
- -8206, 32767, -5633, 1018, 13388, 996, -12737, -3179,
- -2058, 13663, 1274, -4475, 7386, -1698, 17927, -6118,
- 15942, -2922, -3434, 5903, 6333, -9149, 14140, -1488,
- 2999, 1151, 2361, -1935, -10243, -11566, -5319, 965,
- 5146, 3652, -441, -2173, -3484, 3685, -13595, -1703,
- -78, -1408, 18517, -3788, -3266, 3162, 996, 19950,
- -8560, 4989, 6593, -5329, 2950, -13896, -3524, 5590,
- 4055, 6084, 2493, 12659, -5786, 4858, 7252, -7111,
- -7318, 5411, 7393, -8714, -3454, -1562, 1919, -49,
- -680, 7285, -398, -2956, 7100, 5563, -538, 1719,
- -16, -3824, 437, -6842, 1504, 5694, 1214, 3209,
--15562, -4365, 9329, -25577, 1425, -2598, -8389, -6891,
- -3275, 3304, -3993, -6391, -934, 7862, 4844, -134,
- 9890, -4646, 2468, -9901, -4111, -3080, -5056, 476,
--13099, 1447, 205, -2424, 7098, -12075, -4646, -13725,
- 8367, -2910, -8461, 1387, 3553, -10228, -2771, 4698,
- -6483, 12234, -8086, 3329, 2374, 452, -1805, 5083,
- 2014, 164, 7143, 81, 6062, 2838, 5318, -4982,
- 1440, 2014, -3273, -6658, -798, -3204, 1398, -599,
- -5834, 2070, 4644, -17238, 390, -1684, -4932, 8961,
--12217, -3079, 6574, 1387, -5991, -7803, 1285, 7439,
- -395, -3048, 2038, -847, -690, -5127, 2228, -4180,
- -3499, 530, -584, 9884, -323, 446, -15644, -9162,
- -1683, 3643, -3578, 2634, 496, 8097, 109, 1056,
- 1422, 5452, 6517, -449, -2389, 302, 6827, 1507,
- -3106, -7188, -4909, -441, 12955, -3933, -5322, 5155,
--23171, -2780, -2655, -4048, 12844, -3709, 6555, -5700,
- 3780, -6566, -4415, 11091, 11291, 6443, 9146, -796,
- -1420, 5600, 12098, -5790, 6619, -10474, -12177, -5890,
- 21700, 11148, 3427, 3130, -5727, 14646, 13953, -2721,
- 1404, -3102, -4693, 4762, 1757, 2533, 3998, -530,
- -758, 5301, -1426, 8948, -720, 6877, -3863, 2396,
- 5266, -685, 890, -7188, 2742, -270, 8125, -804,
- 32292, 6964, 8599, -3466, -1080, -8423, 2070, -295,
- -157, -5432, 152, 2478, -3738, 1104, 1500, -5290,
- -2463, -6386, -2537, -2331, -3290, -2398, 159, 6588,
- -2547, -2424, -2184, 8316, 5670, -5608, -2600, 2659,
- 166, 14828, 2622, -10490, -16378, 64, 434, 4576,
- -3010, 2479, -6798, 3431, 360, -1067, 3421, 664,
- 4029, -4050, -240, 3875, 672, 3587, 501, 2494,
- -48, 9997, 3259, 8551, -7624, 17342, 10765, 4328,
- -3721, 1729, -2844, -6330, 5114, 15589, -261, -7554,
- 2708, 7260, 5852, -8736, 436, -6160, -588, -5919,
- 5752, 3127, -4558, 540, 74, -4048, 3735, 7873,
- -2869, -544, -111, 5182, 1032, 2315, -159, 5105,
- 4106, -494, 678, -4756, -3865, -7389, -2492, 7193,
- 5146, -7926, 12043, 11137, 1719, 2307, -5476, 12679,
- 7996, 726, 933, 3222, 7515, 678, -5858, -2716,
- 1503, -3014, -2125, 4982, -4984, 467, 986, 5450,
- -1472, 5314, -1285, 218, -3411, 4511, 8047, 4268,
- -8307, -10587, 17200, 3303, 7553, 5361, 1108, -7982,
- 8240, -5856, -3376, -3952, -2884, 4401, -7252, 4078,
- 7538, 3420, -13834, -1139, 10742, -2536, 636, 7758,
- 4282, -3505, 1190, -7382, -8164, 5306, -408, -5005,
- 2776, 7806, 4781, -7903, -2370, 13884, 542, 5643,
- 6948, 6471, 2699, 815, 4454, 1882, 2290, -3856,
- -3086, 8215, 3234, 4444, -1580, 2835, -3083, 6706,
- 7409, 4626, 2658, 2308, 7965, -1034, -2584, 344,
- 704, 12280, 10344, -8032, -4410, -6168, 6860, 7977,
- -5630, -6680, -5001, -6199, -10378, -1764, -3322, -4284,
- -1048, 2721, -11738, -11800, -7975, 2754, 3424, -7641,
- -2245, -4945, -194, -1948, -2850, 4111, -21846, -8750,
- 4306, 24494, 10428, 26998, 4976, -2701, -3283, -723,
- -1539, 6758, -9730, -3517, 6401, -4546, -410, -9900,
- -4947, 6996, 10983, 5110, 19948, -78, -1794, 11051,
- -14, 316, 6447, -20430, 9363, 9062, -2134, 13711,
- 6448, 6655, -5232, 4610, -10352, -3042, -8713, 5777,
- -2438, -2602, -7293, -755, 6736, 2960, -3676, -2882,
- -9806, 1342, 1242, 2122, 2749, 631, 6502, 2266,
--12996, 13620, 19762, 8096, 702, -4394, -8668, -1460,
- -3228, -173, -6239, 4643, -1916, 4098, -2234, 1202,
- 1763, 6170, -6320, 12984, -5936, 8301, 6021, 2191,
- 466, -4044, -1913, -3458, 8197, -3249, -5935, 2383,
- -4241, 4977, -4415, 704, 3488, -8356, 10229, 562,
- 14, -4828, -3890, -7599, -4208, -3166, 1132, -16584,
- -506, 1397, 6266, 3307, 5782, 2349, 3257, -3017,
- 7814, 1216, 7440, -10096, 12698, 944, 1221, -1683,
- 152, 6020, -7910, 3897, -6954, -9439, -9838, -3860,
- -5383, -4228, -1980, -4045, 7442, -5504, 2145, 636,
- 2857, -4538, -820, 4275, -2104, 5076, 5191, -363,
--23254, 1962, -66, 7550, 88, 8721, -1361, 7733,
- -2661, 5282, -5112, -24, -975, -3200, -2235, 5144,
- 213, -6340, -3974, 1266, -2383, 2432, -124, -233,
- -3504, 10604, 806, -918, 11601, 19332, 206, 7456,
- -8885, -9692, 3087, 3685, -2183, -7538, 11970, -5098,
- -7364, -1173, -3099, 6532, -6850, 4622, -828, 390,
- 467, -5364, 4442, -1878, 8949, -4340, -261, -2720,
- 6659, 16184, -6552, -3736, -15416, 15774, -306, -4240,
- -1807, -10304, 11073, 2743, 3974, -5557, -3499, 5315,
--10742, -378, -4517, -5949, -7664, -2830, -6510, -6096,
- 2052, 3425, 1971, -3328, 5326, -1362, 1806, -14286,
--12774, 6058, -3365, -735, -2586, -18658, 6664, 9502,
- -1590, 323, 6445, -17766, 14694, -9786, 3696, -4547,
- 1601, 3645, -584, 910, 2516, 8197, 3898, 4306,
- 631, -2020, 4309, -765, -6591, 2083, 8969, -1474,
- -27, 9130, -5808, 8492, -135, 2230, 2296, -4509,
- 4600, 4951, 1930, -2564, -5889, -1338, -11737, 6387,
- -3649, -5447, -2462, -4751, -1012, 3523, -3504, -9510
-},
-
-.cb1108m0 = {
- -2417, 4623, 2916, -4257, 120, -10323, 1198, -10252,
- -117, 8767, 3160, 2323, 1162, -650, 2237, -4171,
- 2386, 432, 1627, -7255, 38, 124, -3658, -1558,
--11711, 10, 8146, 1700, -1975, -16731, 2397, 1056,
- -2502, -2660, -2731, -2477, 1488, 1220, 4880, -1156,
- 1805, -3, -3009, -6233, -2216, 3440, -3082, 2124,
- 70, -2461, 1125, 1919, 11949, -2506, -622, 2209,
- -702, 2685, 9183, -510, -2806, -1129, -1823, -1746,
- -3600, 2298, -3360, 10793, -1714, 1662, -62, 395,
- 14142, -261, -144, -9896, 11481, -884, -2197, 352,
- -326, -453, -1984, 2027, -1466, 3290, 94, 3481,
- 2533, 4401, 5492, 3803, 247, -896, -1688, -3166,
- 1130, -1125, -1973, 322, 867, -1936, 714, -880,
- 8, 2313, 23418, -1682, -677, 384, -2140, -386,
- 920, -2523, -495, -1494, 3027, -707, 1172, -1403,
- 2177, -2137, -885, -1035, -1637, 375, 2452, -3709,
- -1171, 2069, 1095, -1937, -686, -956, 2034, 3410,
- -3075, -359, -598, -2084, 18550, 1781, -45, 1400,
- -1580, -13180, -609, -1376, -3145, -248, 5661, 6886,
- -3915, -194, 9876, 1065, 3879, -1726, -837, -660,
- -7467, -3055, 3516, 283, -1604, -625, 1165, 3023,
- -1531, -1825, 1430, -561, -881, 1346, -129, -1817,
- 851, -32768, -294, -188, -116, -646, 1176, 630,
- 903, 417, -2487, 352, -789, 571, -127, -2054,
- -2112, 418, 1631, 266, -270, 362, -2765, -1198,
- -182, 3586, -1272, 1470, -66, -18384, -1230, 823,
- 1171, 1350, 1101, 1410, -3730, 1535, -101, -3234,
- 2315, -34, -458, 1361, -16497, -990, 1438, 2542,
- -1193, 586, -1708, 2689, 2741, 6010, 4209, -5974,
- -628, 1556, 2238, 6134, -3040, -2937, 2188, -1660,
- 1137, 1316, -2650, 905, -502, -93, -1177, -31964,
- -1170, 1504, -1284, -104, 168, 55, 3478, -161,
- 2818, -484, -32, -1536, 1218, -854, -351, 4465,
- 16922, 681, 4198, 419, -414, 6824, -3906, 11598,
- 75, 4904, 1374, 64, -2692, -3759, 3065, -1397,
- -202, -347, -2466, 96, 1035, -765, -258, 3711,
- 1437, -18250, 566, 976, 2483, 4, -1096, 1906,
- 3745, -2621, -2756, 1864, -560, 98, 821, -4094,
- 5349, 1369, -5245, -2170, 2932, -1052, 3932, -413,
- -400, 31206, 1125, 1631, 43, -764, 1666, 780,
- 2036, -564, 64, 1311, -202, 843, -2030, 856,
- 1766, -3163, -1158, -626, 316, 127, 1783, 1918,
- 3384, -2887, -5885, 1763, 4910, -248, 17100, -3022,
- -1880, -2927, -1287, -3308, -1767, -2622, -1460, -250,
- 3597, -4526, 946, -1533, 1059, -8, -807, -1283,
- 1436, -11184, 643, 398, -1565, 1983, -60, -9862,
- 1219, 322, 3132, -2043, 1138, 6258, -3540, 790,
- -923, -4692, -1401, 2733, -8918, 4905, 6181, 192,
- 82, -1094, 4, -634, -1323, -2865, 1036, 1484,
- -2461, -937, 414, 221, 2179, -438, 1273, -2690,
- 18442, 2781, 1788, 2264, -1230, 4284, -4708, 1190,
- -4810, -975, 230, -3728, 2504, 3602, 3488, 88,
- 1322, 487, 2965, -3731, -2341, 5937, 8545, 1716,
- 7308, 9017, 6426, 727, 3992, -4584, 388, 3714,
- 1164, 18, 445, 1253, 398, -1989, -824, -430,
- 745, -5447, 2176, -1986, -3963, 2861, 194, 17739,
- 1891, -5368, 4172, 125, 530, -2766, 1179, 401,
- 1759, -1609, 31234, 910, 1100, 1036, -948, -1101,
- -614, 1768, -344, 840, -696, -842, 320, -1444,
- -2560, -3199, 58, -2172, 1375, -3002, -821, -863,
--12096, -2484, -677, -2130, 4450, 3568, -3192, -1114,
- -3218, 3121, -503, 5570, -561, 3896, 10566, -3065,
- -2768, 1398, 1719, -2708, 1952, -142, 4777, -978,
- 2238, -5780, -430, 1228, -1298, -2923, 4353, -1621,
- -2368, -2908, -8012, 4398, -502, 518, -6964, 622,
- -377, 3758, 6598, 4438, 6849, -7696, 470, 3585,
- 466, -14664, 3438, 14706, -1944, -2544, -785, 3653,
- 1274, 443, -694, 1968, -3499, 2855, -3930, -1210,
- -528, 1931, 3849, -772, -2659, 4499, -3624, -540,
- -1645, -949, -382, 979, 595, 165, 429, -80,
--20468, 1040, 544, 2545, -5010, -2122, -2840, -335,
- -405, 404, -50, -2996, 1226, 519, -1046, 3745,
- -2317, 6211, -14500, 9754, -5802, 5230, -3112, 1506,
- 3741, 664, -902, 197, 2476, -3618, 2040, -1066,
- 2338, -257, -2580, -293, 2740, -576, 2050, -865,
- -3666, -2090, -1831, -32056, 658, 1549, 1602, 1728,
- -534, 390, -1517, -627, -4025, -797, -2351, 2759,
- -102, 2574, -56, 796, -232, -886, 1639, -2773,
- 1007, 830, 5880, -2220, 762, -3834, -2865, -415,
- 584, -3498, -4546, -16108, 344, -4072, 551, -5435,
- 2007, -1418, 3838, -1662, 1981, 3545, 1424, 769,
- 2135, 1705, -15076, -636, 283, 3386, 97, -1048,
- -3933, 204, -8616, -556, -2936, 4241, 5100, 1777,
- 98, 719, 6202, -1496, 708, 2160, -2396, 4060,
- 1513, 2253, -46, -1823, -132, 709, -756, -944,
- 575, 1070, -1583, 587, -24575, -1989, 874, -568,
- 1040, 1116, -4002, 3196, 2826, 117, 1590, 2456,
- 938, 112, -938, -1268, 5056, -2851, 2995, 2559,
--13121, -8374, 3593, -6684, 3663, 766, 747, 1016,
- -921, 2241, -1942, 4269, -3312, -1012, 2340, 2781,
- -3881, 2532, -1976, -1436, -3219, 420, 22088, -742,
- -640, 3270, 1446, 1935, 1279, 1913, 1377, -3297,
- -751, 4209, -1052, 2381, 2938, -1330, 2154, 2784,
- -2420, 1270, 2334, -526, 1480, -435, 2206, 252,
- -510, -1018, -1469, -1294, -950, 424, 1058, -2317,
- -846, -20737, -1877, 88, -431, -1268, 116, -378,
- -2326, 3115, -246, 30, -4725, 648, 2084, 14286,
- -817, 2496, -1947, -4869, -9703, 1505, -2476, -2108,
- 747, -449, 3002, -5464, -514, 1805, 2559, 2494,
- 12782, -1232, 12091, 2118, 3996, 2592, 1058, 510,
- -1384, -3050, 2533, -408, 5219, 3044, 3242, -185,
- 2654, -3723, 16, -1723, 1823, 6144, -4806, 182,
- 1772, 4841, 16390, -96, 2505, -7713, -5244, -3316,
- -6776, 1448, -1470, 4238, 294, 889, -2372, -6281,
- -2423, 5423, 2119, 2897, 1378, 817, -993, -1599,
--14662, 3014, -3397, -6182, -245, 4897, 5116, 2285,
- -2863, 1174, 415, -6777, 3863, -6009, -4722, -119,
- 606, -2247, 4447, 1064, -1935, 2705, -2629, -1144,
--11980, 3805, 882, 1634, 5446, -4300, 643, 3436,
- 7632, 592, 998, 674, -2647, 4644, -6854, 1368,
- -146, -3395, 10599, 1369, 3852, 1689, 2437, -3937,
- 3405, 2517, 1895, -14092, -1142, 2570, 10163, 1608,
- -2445, 850, -1678, 3112, -3465, 3138, 4413, -1973,
- -4151, 1163, 1822, -3819, -1568, -407, -2642, 424,
- 365, -3599, 164, -1448, 1062, 1536, 1590, -1982,
- 200, 18572, -230, -638, -1253, 1650, 2280, 4945,
- 4527, -2353, -4216, 3752, -3807, 3686, -4816, 2382,
--14833, 1306, 17246, -739, 2012, 3521, 1473, -1436,
- 1514, -142, -461, 1038, 2462, 971, 1354, 1272,
- 1787, 2420, -922, 3364, 2250, 497, 1349, 2795,
--32768, 425, 1874, -72, 2461, 389, -306, -1180,
- -646, 251, 299, -2735, 577, 1055, 1826, 1620,
- -1214, 1422, -901, -1273, -2367, -1241, 366, 521,
- -433, 55, 4000, 3035, -1390, 2505, 1786, -15397,
- 413, -5916, -234, 3559, -6776, -5068, 2251, 36,
- -180, 596, 5744, -2450, -1276, -4786, -1872, 24,
- 252, 464, 2833, -136, -25600, -33, 873, 2646,
- 1471, -1336, -1330, -276, 1778, -242, -951, 1580,
- -79, -858, -927, -4310, -604, 7568, -1713, -948,
- 192, -260, -1334, -1116, -705, 638, 132, 1186,
- -952, 1157, 428, 2039, 1568, 1778, 22453, -2190,
- 2176, 1674, -3996, 1294, 1162, 274, 415, -2877,
- 464, 505, -1842, -1066, -2241, -761, -291, 8,
- -987, -104, 796, -32768, 1302, -809, 571, 1214,
- 455, 686, 656, -1752, 886, -790, 644, -1114,
- 2358, 11452, -4398, 1334, 13095, 3230, -1818, 4053,
- -1990, -1093, 878, 3796, 2712, -1523, -1229, 1077,
- 960, 1250, -75, -3233, -7734, 2783, 8430, -327,
- -1428, -1687, -4092, 269, 3161, -569, -1267, 1774,
- 2772, -2033, 171, -520, 1551, 3719, -3364, -220,
- 1904, -1282, -2008, -818, 4261, -886, -19201, -3454,
- -478, -2645, -2601, -2124, -3977, 2960, 1563, -432,
- -989, 2682, 1734, -9085, 4614, -4454, 2535, -7201,
- -220, -10022, -431, -7907, 889, -9658, 6653, 762,
- -1827, 5886, 862, -1836, -430, -16363, 5709, 851,
- 1814, 304, 5045, 1685, -1004, 5108, -5936, -3143,
- 940, 1832, -270, -674, 1441, -241, 3222, -551,
- -434, -69, -3584, 349, -1354, -12080, 3639, 5219,
- 7583, -1023, 2078, 3263, -5807, -873, 4085, -5153,
- -3623, -436, -4717, -1803, -6274, -2049, -247, 2516,
- 1922, 10204, 2194, -1574, -535, 656, 1638, -3091,
- 1156, 1377, -1220, 4956, -221, 4984, -1154, 4603,
- -1618, -5655, -2583, 13494, -2442, -3968, 3086, 1098,
- -1625, -13781, -12826, 2659, 3604, -702, -1900, -3508,
- -6283, 2320, 1979, -2823, -4890, -1728, 2, -4402,
- -437, 1932, -3272, 2853, -3018, 840, -632, -6691,
- -484, 9579, 1008, 11677, -2814, -2029, 8048, -1170,
- -7366, -2664, 3349, 1319, -1160, -1864, 606, 1568,
- 5428, -4763, -2470, 2145, 1798, -502, -1538, -3736,
- -1376, 1330, -3567, -78, 478, -743, 890, -800,
- -44, -1832, -1761, -1022, -996, -846, 1188, -1042,
- -3202, -2439, 1602, 3601, 564, 18338, -17, 1327,
- -387, -1998, -1260, 3352, 849, -4780, 1932, -56,
- 2625, 10753, -1676, -10536, 2980, 1542, 1177, -3113,
- -859, 522, 3092, 9588, 2882, -4540, -1406, -5183,
- 50, -4245, 3649, -420, -3612, -5290, -1919, 14559,
- -2605, 1169, -2009, 10760, -2372, 339, -2538, 4476,
- 3001, -4570, -3158, -3465, 2873, 650, -2099, 76,
- 1166, -1469, -2769, -391, 4215, -630, -1448, -1796,
- -1573, 5914, 807, -1580, 2072, 99, 580, -2999,
- 1079, -202, 17940, -1233, -4909, 1079, 390, -891,
- 1834, -2155, -2642, -1703, 1856, -14125, 2081, 3178,
- -2480, -4342, -11991, -2050, 1046, 2412, 436, 1046,
- -2291, -1718, -3087, 1710, -963, -1914, -3423, 6190,
- -1238, -4333, 115, -10550, -2742, -919, -4849, 1502,
- -3054, -3304, 2300, -1850, 2337, -6643, 1995, -1279,
- -238, 738, -124, 13593, 252, -1424, -165, 2786,
- -1717, -838, -11244, -10971, -902, -3330, -2580, -2735,
- -171, 4041, -2149, 2502, 6726, -738, -4235, 368,
- 6144, -1718, -8620, -1888, 112, -282, -19, 4126,
- 10797, 610, -3097, 7783, -2974, -2058, -3558, 470,
- -5914, 10322, -20, 85, -1652, 6111, -1398, 2613,
- 3733, -3716, 1930, -4325, -1199, -921, -446, 1095,
- 1006, 910, -2323, -351, 808, -32768, 274, 1346,
- 105, 2360, -1184, 2249, -970, 153, 3180, 1307,
- 2207, -962, 2209, -921, 1504, -117, -2111, -3734,
- 5738, 8014, 76, 1566, 3013, -462, -3600, 3939,
- 4862, 1038, 4312, -790, -426, -1656, 20, -10568,
- -6389, -6597, 4230, 2910, 2504, -2962, 256, 814,
- -488, 824, -355, 3574, -1890, -2657, -767, 2730,
- -1087, -2538, -3522, -4067, 6249, -3354, 13923, 4070,
--11004, 4703, 909, -5968, -5483, -4242, -780, -2489
-},
-
-.cb1108m1 = {
- 752, -4098, 7726, 592, -9487, 2004, 318, -4322,
- 6989, -3350, -478, -4308, 2023, 753, -7081, -3934,
- -866, 6267, -5710, 2100, -8467, 100, -4654, -6773,
- 4271, 10728, 11618, 1128, 12733, 1471, -5518, -1162,
- -2159, -402, -632, -4720, -28, -1412, -1037, 897,
- -1242, -1735, -2632, -3460, 3389, -582, 206, 325,
- -2547, 46, 1340, -4424, -13408, -4918, -2832, 1454,
- 2127, 1276, 2292, -3973, -3230, -7810, 542, 4227,
- 2673, -8490, -902, 1361, -1398, -1986, -991, -680,
- 602, -2887, -557, 2656, 3214, 1794, 31241, 1462,
- -1457, -3750, -1923, -2381, 1313, -128, -172, -647,
- -574, 1045, 2438, 1662, 503, 288, 1535, -1016,
- 2487, -820, 4692, 2799, -31949, 166, -1655, -2192,
- -636, 1357, -2361, -459, -1752, 2782, -293, -144,
- 1900, 685, 1766, 1900, -347, -4488, 590, 915,
- 798, 1133, -4494, -1388, 75, 884, 13088, -2392,
- 679, -315, -7520, 1086, 3873, 3297, -812, -626,
- -9443, 2548, -6417, 1619, 7196, -57, 5, 3594,
- -1922, 184, 2784, -261, -3310, 2779, 174, 2814,
- -965, -2912, -1835, 425, -4285, 896, 2001, 3717,
- 775, -1192, 22365, -175, 1522, -711, -1135, 5123,
- -517, 870, 4323, 585, -437, 260, -1737, -1984,
- 2522, -2539, -973, -8812, -16173, 4678, -4107, 130,
- -7832, 1140, 2792, 3394, -692, -4105, -299, 1488,
- 1246, 604, 2796, -3767, 579, 188, -1544, 86,
- 424, 1204, 4441, -1000, 15227, 3459, -3444, -1631,
- -2177, 3497, 1684, 925, 2872, -3905, 5729, 647,
- 913, -758, -547, 566, 1787, 792, -1509, -1641,
- -926, -1515, -116, 1266, 481, -3944, 28526, -2279,
- 5577, 1026, 4082, -605, 696, 1094, -478, 5732,
- 7247, 1461, 1521, -234, -42, -878, 270, -554,
- 3702, -71, 1362, 7719, 305, -13654, -4985, -1072,
- -2044, 6851, 438, -8435, 923, -537, 1511, -1003,
- 2056, -2299, -15578, 503, 1944, 3188, 2318, 1761,
- 1290, -2322, -568, -1591, -2746, -1966, -9784, 1514,
- -5596, 4070, -181, -3006, -1903, -240, -1143, 393,
- -1530, -822, 520, 989, -1600, -3374, 946, 678,
- 86, -1957, 1947, 1188, 356, 719, -2874, -2245,
--19010, 547, 9067, 439, -2384, 847, -3307, -116,
- -1114, -445, -3505, -967, -1252, 4880, 625, 1478,
- -2970, -2275, 1337, 422, 3870, -1906, -1033, 1724,
- -532, 1734, 1011, -21848, -477, -251, -615, 770,
- 7520, 1030, -4372, -446, -3156, -2314, 172, 901,
- 70, 1837, 1205, -1344, 2933, 1080, -1290, 1353,
- 10205, 1158, 11135, 560, -3480, -2376, 7539, -5418,
--14092, 2138, -253, -9344, -1907, 2177, 687, 2772,
- -2730, -546, -4180, 2021, -577, 2530, -3822, -7080,
- 971, 2083, -1220, 203, 3187, 3705, -752, -2591,
- -704, -17469, -1168, -214, 2518, 308, -585, 1117,
- -1893, 2488, 1856, -23, 2418, -2922, 1960, 235,
- -1629, -8277, 1088, 2032, 874, 2763, -1867, 60,
- 1684, 834, -2676, 1574, -3098, 3250, -3723, -126,
- 59, -787, 2710, 930, 1384, 475, -3915, -1162,
- 1640, -16818, 2356, -70, 761, 4151, -778, 523,
- -183, 19374, -4223, -1379, -1667, -1690, -512, 8742,
- -34, 3816, -678, 2749, 2418, -341, -1216, 4280,
- -2208, -264, -2884, 4679, -821, 1824, -6724, -1528,
--12042, -9908, 935, 4338, -116, 612, 6, -161,
- 1935, 1600, -442, 4059, 2510, 2186, -7678, 3600,
- -2460, -1072, -122, -1817, -246, 2786, 9079, 525,
- -226, 2628, -2549, 1459, 4533, 1111, -17410, 4529,
- -2545, -3272, 403, -2758, -1876, 2734, 2136, -6171,
- -2055, 1163, -2820, 2992, 2978, 1458, 1572, 2508,
- 13576, -1545, 14861, -796, -6444, 4022, -4358, -529,
- 3439, -2630, -2457, 3030, -2972, -398, 471, 2547,
- 1127, 1344, 202, 420, -1858, -589, 594, 1478,
- 5590, 1682, -1560, -378, -2198, 400, 2231, 566,
- -80, -2042, -4557, -2309, 8743, -4258, 1291, 11770,
- 718, 2342, 2912, 5170, 2470, 6832, 833, 4990,
- 2009, -1258, -898, -1414, 1214, 670, -2104, -5068,
- 788, -18997, -743, -864, -356, 1592, -5786, 652,
- 4952, -2319, -1097, 2177, -1654, 2879, -1645, -172,
- -1581, -3062, -805, -1065, -2222, 20857, -1146, 864,
- 1690, -1794, 855, 307, 2320, 3618, 6184, -4129,
- 187, -2423, 4946, -3072, -213, -2621, -2026, -5793,
- -986, -1597, 2125, 1474, 1766, 360, -4652, -1030,
- 1546, -1085, -253, 1016, -96, -1608, -7017, -4855,
- 1295, -271, 3751, 341, 19804, -2006, 2322, -2298,
- 353, -2077, -764, 212, 150, -1140, 564, -614,
- 268, -2023, -332, -699, -937, 1684, -1617, -22863,
- 1202, -144, 62, 373, -598, 184, 987, 3721,
- -611, 86, 3676, 362, -652, -214, -311, -694,
- -1973, 2351, -733, -1601, -1189, 28227, -154, 10,
- -347, 3400, 1333, -1695, -773, 1362, -447, -2999,
- -626, -1776, 2474, 2195, -1041, -797, 1828, 62,
- 3397, -1779, -2924, 1740, -1694, 4083, 15100, 3871,
- -7821, -108, 292, 998, 3141, 5813, -918, -1290,
- -902, 895, -1336, -50, 2014, -2066, 2383, 68,
- 31769, -334, 1243, 1981, -715, 125, -380, -1272,
- 1068, -357, -1734, -1138, -630, 1042, 688, -438,
- -558, -2460, -2894, 4196, -1004, -2177, -2291, -4701,
--13990, 747, -5558, -2754, 1950, -2780, 8414, -1286,
- -946, 220, -2507, -192, 3726, -1361, 1296, -2215,
- 872, 8270, -2797, -6732, 1256, -1957, -2916, 107,
--14847, 1868, 4638, 1292, -1006, 5285, 2947, -5028,
- 942, 153, 420, -1152, -391, 3612, 4621, 172,
- 762, -876, -3561, -14406, -552, -2570, -4448, -15704,
- -806, -928, 3380, -686, -2604, -3895, -714, -626,
- -1763, 1144, 485, 34, -1922, 1528, -213, 5050,
- -804, 185, 96, 3320, -621, -329, -1444, 864,
- -1684, 16583, 1872, 3327, 2146, 1132, -8216, 73,
- 6524, 1623, -4147, -4985, 1450, -646, -7189, 4524,
- -1596, 2120, 3913, 680, 2094, 1660, 752, -1221,
- 2414, 3986, -10314, 2096, 129, -5458, 634, -5426,
- -594, -9731, 2083, -2284, -5085, -4777, -1323, -1740,
- 6157, -841, -126, 247, -1163, -7005, 3863, -764,
- -1552, 1356, 10788, -745, -12481, -73, 5234, -3220,
- 2979, 635, 3372, -540, -36, 2887, 5221, 931,
- -1724, -4824, 780, -49, 120, -739, 890, 714,
- -1438, -458, -1861, -16732, -1858, -13282, 2182, -6796,
- -3307, 556, -2968, 542, -2358, 1463, -3536, 1866,
- 2833, -1369, -1576, -2825, 3561, -1625, 1858, -1052,
- -1079, 1302, -2049, 19052, -1188, -4137, 1592, -4705,
- 1082, -1168, 2355, 649, -1900, -2582, 1000, -3065,
- -2399, 3625, 1062, 860, 2586, -2645, 14755, 3147,
- 5002, -6720, 1728, -2114, 5090, -2838, 3020, -5048,
- 4182, 2237, 706, -4945, -86, -1908, -1207, 135,
- 675, -200, -22134, 1492, 2490, -1324, -1135, -842,
- 1457, 185, 1342, 3516, -882, 1069, 1159, -52,
- 1844, -1186, 554, 3860, 1824, -2136, -881, -1281,
--13259, -705, -90, 2150, 573, 2787, 1068, -1968,
- 121, 805, 4382, -1033, -9220, -744, -1446, 7180,
- 257, -5983, -1643, -6198, 1854, -3524, 1060, -118,
- 56, -843, 2832, -98, -3493, 368, 6, -1877,
- -3615, -1954, 17971, 962, 1532, -1754, 3776, 661,
- -2025, -60, -1013, -1222, -3062, -69, -4933, 3064,
- -1176, 213, 477, 1081, 1679, -2328, 1984, -21759,
- -881, -54, -1101, -1092, 598, 1648, -3384, -213,
- 379, -1318, -1972, 630, -536, -1970, -461, -356,
--22416, -1855, -113, 876, -2809, -587, -2323, -56,
- 2177, -797, 1649, -4069, 1350, -2075, 101, -1384,
- 1703, 1085, 471, 8093, 1020, -4112, 970, 866,
- -1456, -341, 1418, -12938, 379, 9787, 1814, 2337,
- -1705, 9913, 1026, 1962, -744, -2900, -1690, 1534,
- -959, -629, 2330, 3735, 4742, -3139, -2135, 2298,
- -2765, -1389, -3634, 27139, 671, 2208, 494, 1015,
- -1197, -239, -321, -1145, -679, -637, -3116, 544,
- -952, 882, 396, 1087, -3163, -2684, 759, -725,
- -2186, -542, 2545, 3669, 24, 1689, 10473, 1836,
- -419, 322, 2475, 1908, -1346, 50, -6401, -3644,
- 552, 2348, 1327, 11853, 2467, 5493, 1544, 464,
- 1796, -2801, 8217, 1014, -2103, 3764, 8091, 170,
--12422, 1708, -2438, -1873, 1970, 2160, -5027, -647,
- -118, 2830, 2379, -1091, -5723, 124, 3017, 417,
- 55, 1376, -1079, 7122, 3086, 17847, 2468, 3273,
- -599, 3302, -922, -2073, -1696, 805, 2022, -1899,
- 3188, 1425, -4364, -140, -3760, 437, 1393, -1298,
- 17166, -1283, -2904, -692, 518, -404, 944, -1990,
- -968, 1323, 2376, -11708, 2187, 3164, -559, 2212,
- 1598, -1741, 360, 633, 3075, -660, -1012, 778,
- 565, -2020, -123, 5, -2217, -2967, 374, 272,
- 336, -1725, -408, -2270, -2645, -1044, -517, 1911,
- -386, -4439, -7603, -1000, 7660, 589, 14931, 2901,
- 11998, -13102, -1919, 3904, 86, 1617, 7324, 3078,
- 1714, 4636, -2504, -194, -3274, -710, 33, -1965,
- -2298, 2513, 726, 75, 67, 884, 2104, 4110,
- 1936, 10387, 2722, -1970, -12496, 4799, 3086, -2938,
- 1719, -2138, -338, -1124, 971, -4200, 480, -3361,
- 6220, 5954, 1830, 1001, 2996, 4166, -2854, -437,
- -1430, 1072, -312, -12949, 3113, -2479, -2034, 6956,
- 2805, 2128, 856, -8803, -4709, -1274, -120, 1252,
- 3898, 6526, -3914, -2276, 2754, -2604, -3038, 4136,
- 2598, -2172, 4861, -2457, 2, -2693, -808, 3527,
- -1184, 392, -2202, 2406, 960, -1064, -2589, 1161,
- 2418, 728, -466, -4865, 211, 14720, -2093, -1977,
- 85, -12618, -2073, -3028, -1067, 1734, -2491, 9506,
- -422, -2718, -2966, 3883, -2852, 336, 1306, -2297,
- 2009, 2589, 3071, 192, -1239, -10553, 2, -1174,
- -3036, 9939, -27, -1278, 1448, 18655, 761, 931,
- 445, -94, 206, 448, -1865, 232, -4353, 4596,
- -260, -976, 594, 648, 796, -1376, -1186, 3056,
- 3171, -5675, 6179, -1287, 16934, -1478, 1090, 577,
- 8075, 1119, 2943, -3208, 1852, 1986, 6003, 901,
- -962, -3196, -1907, 392, -2605, 2796, 4082, -456,
- -3109, -1219, 123, 2470, 174, -1254, -1350, -4919,
- 1271, 12302, -1154, -6317, -3346, -1315, -144, 1214,
- -49, 3491, -1029, -2043, -8373, 4197, 4971, 9808,
- 9732, 700, 2247, -2755, -2034, 3260, 839, -10554,
- 1661, 11484, -3180, -1909, 1089, -813, 3116, -2103,
- -3726, -4514, 663, 1152, 3902, 4862, 2739, -3828,
- 707, 2712, -8009, -832, -16492, -1472, -2422, -5593,
- 322, -1894, 2810, 109, -1788, 2050, 3539, -3112,
- -6178, 2487, 2102, -135, 3163, 2096, 4123, -310,
- -1090, -2, -2662, -17087, 1373, 1448, 162, 527,
- 655, -2248, -3530, 194, 1305, 7590, -5515, 1225,
- 1607, -3816, 2185, -2679, -4486, -582, 4981, -1675,
- 147, 14790, 119, 11771, -1228, 1012, -6133, -2247,
- -3913, 1348, -1846, -513, -6386, -749, 6726, 745,
- -809, -799, 3224, 43, -2230, 2598, 2994, -1590,
--11198, -14476, -256, 695, 877, -3680, -2734, -1448,
- 1336, -1633, 3327, 3497, 2956, -782, 2958, -1866,
- 2876, 2003, -856, 1282, 5068, 391, -10539, 1703
-},
-
-.cb1110l0 = {
--14944, -14950, -73, -1141, 1532, -575, -620, -816,
- 1185, -1597, -2651, 1426, -1458, 1317, -1320, -19,
- -209, -352, -163, 912, -85, -180, -546, -1121,
- -435, -345, 229, 364, -850, 632, -426, -359,
--32768, 278, -1021, 310, -31, -355, -442, -234,
- 415, -202, -10393, 1645, -378, -2270, 837, -1857,
- 556, -935, -1344, 3016, 3452, 1597, 1378, 466,
--13740, -878, 1475, 237, -1301, 9756, -592, 23,
- -192, 335, -58, 285, 376, 40, 24, 292,
- 426, -1962, -798, 745, 1379, -34, 397, -14748,
- -6285, 7343, -6374, 4442, -14800, 1878, -24, 1606,
- -728, -476, 1754, -1052, 911, 3139, -1444, -222,
- -1968, 1858, 1330, 244, 213, 935, -92, -348,
- 155, 418, 29128, 236, -190, -226, -309, -178,
- -690, 46, 716, -534, 147, -630, -75, -826,
- 37, 4745, -1056, 2400, 1398, 1494, 460, -221,
- 2908, -656, -15611, -2940, 2342, -98, 581, -3144,
- -471, 3772, 2057, 1583, 13738, -139, 330, 1175,
- 429, 63, -14544, -374, 1439, -1226, -422, -690,
- 816, 1279, -592, 1642, 700, 1338, 0, -714,
- 46, 377, -188, -366, -197, -637, -622, -262,
- -69, -637, -1266, 257, 620, -1040, 324, -19064,
- -602, -463, -1329, 513, 2699, -421, -1918, 2250,
- -404, 403, -1514, 134, 147, 3, 426, 605,
- 276, 561, -26, -294, 630, -500, -480, -133,
- -712, -1144, 238, -633, 173, -29164, -1182, -274,
- -138, -271, -232, 30, 706, -168, -848, 704,
- -2132, -248, -108, 669, 1165, 234, 1243, -12201,
- 2208, -1971, -829, 10305, -3964, -1502, -409, -3918,
- 4520, -2259, -797, 2235, -5560, -1710, -2472, 280,
- -1747, -980, -4529, -5208, -1813, 330, 890, -6220,
- -710, -5583, -4704, -913, 2920, -12484, -4340, 334,
- -1303, 283, -740, -1261, 3556, 3210, -11640, -14438,
- -2557, -795, 747, 546, -2488, 1891, 485, 725,
- 338, 1579, 2092, 2354, 284, 2812, 490, 1442,
- 187, -2699, 1196, -1783, 1228, 2364, 13364, 258,
- 2102, -6163, -200, -5475, 2804, -576, 6878, -2852,
- 2246, 1186, 584, -136, 5258, 3825, 3045, -1661,
- -5246, 2548, -5054, -4383, -1542, 12912, -1580, 1268,
- -1415, -2012, 1021, -2106, 979, 2390, 3411, -1076,
- -439, 5416, 1333, 440, 3422, -13384, 2540, 2544,
- -3668, -2308, 1042, 589, 4166, 5090, 1539, -3447,
- 7003, -4396, 319, -590, 481, -471, 22260, -1936,
- -297, 1302, 1163, 937, -164, 847, 768, 827,
- -430, 792, 472, -1557, 712, -602, -1007, -278,
- -974, -3198, 10560, -2124, 335, -1206, 629, -13712,
- 12, -1673, -691, -666, -2890, 826, 1792, -1547,
- -2016, 807, 1810, 841, -814, 1214, 760, -1056,
- 404, -94, 144, 297, -584, 106, 116, -132,
- 236, -507, 86, 853, -670, 413, 32767, 730,
- 10835, -502, 1297, -3857, -1035, -1602, -164, -1721,
- 1468, 507, 1064, 1478, 4323, -760, -882, -4331,
- 2564, -10933, 3000, 2101, -2492, -72, 12636, 2743,
- -1113, -8334, 6720, 2348, 491, -23, -1065, 1506,
- 2090, -1731, -1997, 675, 425, 8165, 695, 2285,
- -433, 515, -465, -347, -1006, 357, -55, 57,
- 481, -31494, -816, 60, 76, -439, -328, -217,
- 265, 123, 839, 218, 1355, 243, -878, -12819,
- 5168, 318, 1376, -2931, 12689, -83, -220, 2848,
- -770, 150, 1631, 1955, 1552, -1371, -3053, 1752,
- -7250, -24, -514, -5568, -1529, -112, 419, -1136,
- -672, -1847, -1136, 90, 453, 4810, 13012, -2355,
- -2477, 1393, 451, 3390, 12, -2228, 1840, -2543,
- -2404, -2969, 186, -444, 204, -265, -11467, 2204,
- 1821, 3591, 67, 8821, 4015, -183, -5902, -1468,
- 11394, 3062, -128, -476, 2495, -2888, 13482, 686,
- -1320, 371, -884, 1829, -1810, 337, -1124, -1442,
- 432, 1950, -1203, 663, -10445, 2310, 766, 137,
- 4418, 2821, 135, 116, -12164, -3592, 686, 2310,
- 1229, 1930, -1756, -1309, 1439, -3741, -305, 1547,
- -9940, 3198, 1333, 2403, -2847, -3892, -259, -1766,
- 881, 14310, -1711, -840, 2259, 3027, -1527, 1156,
- 2904, -75, -728, 1536, -127, 152, -3240, -726,
--11914, 1037, -851, -1893, -748, -3294, -1114, 6072,
- 103, -1539, 4573, -1637, 5242, 2705, -9890, 254,
- -1565, -407, 1818, -23004, 1110, 119, 256, -707,
- -451, -679, 374, -935, -669, 403, -10, -594,
- -525, 1403, -1016, -553, 595, -169, 2523, -82,
- 947, 11572, -1166, 11668, -4962, 842, -860, 89,
- -3308, -640, 558, -851, 622, -1002, -4933, 2762,
- 1991, -121, 1401, -111, -49, 868, 135, -1392,
- -279, -560, 412, -241, 1414, -802, -1256, -298,
- 447, 17738, -320, -1150, 1650, -398, 5626, 6076,
- -8919, 455, 12716, -2094, 157, 1361, -1515, 1494,
- -6210, -553, -1785, -424, -3049, -4066, -1188, -732,
- 1992, -1926, 1495, 1085, -22434, 1187, 391, -1512,
- 747, -313, -502, 1331, 456, -323, 246, -581,
- 56, 1448, 2071, 535, 782, 520, -136, -290,
--12350, -11858, -456, 2340, -310, 22, 2210, -2531,
- -392, -898, 3919, 1354, -332, -4255, 169, 425,
- -476, 2577, -1172, 1984, 266, 514, -516, 2481,
- 81, 2103, -710, 273, 1405, -14811, 5858, 3621,
- -982, 345, 2044, 158, -2050, -602, 954, 342,
- 239, 157, -317, -35, -260, 307, -31972, 228,
- -77, 225, -154, 643, -883, -518, 32, 372,
- 208, -22488, -458, 530, 104, 254, -775, -1264,
- -571, 900, -263, -323, -296, 962, 520, 548,
- -2196, 42, 1408, -211, -16117, 2052, 12656, -822,
- 507, 321, -772, -786, -144, -3539, 892, -3430,
- 19, -1831, 1161, 1836, 988, -1134, -704, -2994,
- 692, 765, 457, 1624, 502, 13, 364, 337,
- 32108, 1517, -225, 189, 141, 985, -572, 262,
- -146, 31, 236, 269, -278, -1686, -13968, 1247,
- -1009, 1046, 13467, 1276, -268, 307, -1383, 1544,
- 136, 949, 70, 446, 1391, -2188, 745, -374,
--14231, -712, -15202, -533, -108, -2244, -1232, 450,
- -895, 1086, -782, -1082, -718, -660, 796, -2095,
- 2722, -468, -1717, 147, -23566, 377, -220, -1731,
- -1416, 486, -241, 266, -802, -322, 1066, -544,
- -167, 520, -1297, -100, 622, 670, -188, 711,
- 32, 1155, 628, 350, -112, -154, -1048, -44,
- 36, -454, 304, 32767, 356, 462, -1194, 549,
- 138, 0, 1044, -119, 195, 1098, 521, 3294,
- -3776, -224, 4297, -1256, -303, 2107, 300, -13283,
- 2933, -3194, -1408, -4152, 4195, 287, -932, 1247,
- 13453, 277, 418, -598, 87, 1132, -80, -405,
--13400, 656, -1310, -1447, -3974, 1719, 313, 500,
- 1078, -114, 1449, -293, -120, -4754, 5583, 235,
- -5140, -865, -484, 15572, 336, -1854, -154, -454,
- -1475, -726, -3718, -4048, 1575, 480, 1094, -2209,
- -3202, 420, -564, -48, 964, -2667, 2172, -1666,
- 112, -730, 203, 3618, -15857, -4853, 48, -1084,
- 1512, -937, 3353, -453, 223, 2267, 139, 190,
- 1959, -720, 4389, 681, 10383, -112, 12390, -882,
- 1695, 3539, -169, 3131, -122, 3627, 252, 185,
- -523, 112, -219, 214, -182, -102, 118, 230,
- -60, -801, -25, 42, -279, 262, -32358, 344,
- -542, 382, -223, -404, 1201, -2646, -163, -803,
- 3041, -1009, 3818, 756, 5834, 14249, -1828, 139,
- -218, -658, -1314, -4980, -3322, -1461, -1598, -91,
- 2464, -954, -5203, -791, 1339, -13598, 594, 702,
- -388, -1115, -2377, -370, -3658, -3322, 1871, 2513,
- 2910, 4095, -2195, 4291, 886, -567, 1182, -302,
- -672, -21, -268, -29244, -199, -1024, -1284, 485,
- 1432, -1086, 119, 1030, 418, -643, -1165, 1847,
- -30, -844, -909, -416, -604, -609, -289, -391,
- -238, -94, -391, -810, 413, 356, 954, -1935,
- 30996, 441, 138, 1381, 1130, -2313, 558, -203,
- -248, -951, 408, 1815, 256, -429, -892, -695,
- 1138, 439, -760, -63, 6498, 570, 15252, -3397,
- 170, 935, 338, 1, -528, 524, -541, -281,
- -3, 499, -333, 685, 436, 32176, 389, -153,
- 572, 256, 53, 16, -902, 724, 2849, 2503,
- 80, 667, -1867, 742, 15205, -8715, -2588, -476,
- -450, -733, -891, 1178, -1751, -1630, -114, 144,
- -138, 10145, -188, -1608, -131, -247, -544, 9774,
- -610, -2868, -3472, 345, -9294, 3724, 2634, -5124,
- -392, 2551, -649, 782, -18, -160, -351, 12074,
- 13865, -1294, 1262, -3135, -2861, 18, 753, 167,
- 620, -2432, 1998, 740, 1902, 400, -206, 3518,
- -3563, -632, 72, -1810, 1520, -827, -572, 1604,
- -613, 3704, -736, 11100, 12702, -3189, -792, -3552,
- 1621, 1841, 1236, 1215, -457, 9542, 9278, 2633,
- -8801, 862, 1741, -4840, -2620, 616, 324, 2152,
- 3632, 880, -472, 1927, -3456, -2105, -965, 3426,
- -1893, 3095, -1152, -3542, 182, 998, -386, 1202,
- 481, -1951, -510, -931, 1688, 151, -13664, -3894,
- -973, -906, 1524, 9576, 2607, 12497, -819, -5214,
- 5936, -634, -610, -4148, -421, -486, -1864, -306,
- 2421, 724, -219, -1304, -2106, -504, 6762, 5266
-},
-
-.cb1110l1 = {
- -2972, -1201, -1388, -1762, 340, 21127, -999, 126,
- 111, -1224, -1738, 311, -712, -450, -114, -648,
- -752, -172, 67, 375, -967, -1032, -10763, -1885,
- -2223, -3258, 480, -228, -143, -1299, 13128, -3062,
- 1418, 6, -649, -1816, -288, 767, 345, 876,
- -491, 948, 540, -167, 1969, -1883, -455, 20584,
- -656, 114, 308, 279, 1105, -594, 1332, 255,
- -356, -186, -540, 1898, -873, -477, 1404, 30475,
- 370, -322, -337, -206, -440, -894, -54, -466,
- -640, -408, -256, -560, -1503, 626, -573, -1684,
- 419, 407, 2076, 5022, 3143, -1135, -12118, -12082,
- -1462, -2060, -5432, -1092, 1575, 1958, -968, 122,
- 958, -5312, 677, -1952, -12276, -1594, 1211, -1094,
- 1992, -11032, -2993, -834, -1297, -1139, 312, -1546,
- -4253, 1191, 21, 2771, 639, -2514, 6623, 746,
- 1830, 2967, 1688, -14893, 7988, 4099, -97, 1165,
- -2350, 65, -1308, 1834, -2084, 1683, 5118, -1633,
- -10, -5282, 403, -1489, -264, 398, -2420, 12854,
- -1498, -2642, -1486, 826, 699, -2213, -2296, 11849,
- 478, -2202, -561, -250, 199, -2433, -948, -402,
- 433, 403, 13031, -124, -180, 1499, -643, 527,
- 11368, 5833, 938, 3202, -452, 2875, -1163, -117,
- -2047, -1068, 211, 3122, -236, 13548, -702, 352,
- -312, -1901, -2145, 2334, -12100, -76, -419, 362,
- 3501, -220, -3086, 572, 1537, 3240, -1489, -1012,
- 640, -513, 930, 390, 31019, 724, -78, -706,
- 183, -157, -122, -847, -1156, 301, 508, -456,
- 321, 317, 1300, -512, -1743, 10190, -294, -116,
- 4183, 1374, 13360, -1339, 1832, 2547, -702, -2782,
- -1464, 1176, -1287, 2256, 2169, 836, 2096, -248,
- 1777, 11306, -211, 265, -3834, 336, 1936, -586,
- 633, 1037, -1915, 12862, 930, -273, 2333, -3239,
- 429, 374, 2518, -671, 570, -2208, 385, -284,
--15613, -1752, 1341, -531, -744, -1111, 290, -2302,
- -1012, -2933, -366, -30, -4595, 1400, 560, 48,
- 15739, -945, 411, 1876, 2441, -2144, -1222, 12448,
- 54, -726, -2743, 2548, 2100, 1307, 408, -198,
- -1802, -63, -1919, 933, -329, -528, -15918, 1704,
- 3028, 217, 606, -2804, 2052, 9320, 592, 969,
- 6836, 647, -671, 584, -1, 3564, -2575, 436,
- -2195, 414, -201, 1099, -772, -220, -578, -467,
- 125, -934, 271, -21476, 288, 215, 216, 476,
- -560, 768, 1142, -169, -1112, -14096, -14436, 2769,
- -1464, -61, 1373, -3539, -1067, 1175, -1549, -861,
- -332, -1876, 3159, 340, 1711, -2453, 457, 2536,
- 1114, -2278, 2464, -3253, -466, 12291, 12484, -2868,
- -800, 1142, -4244, -178, 3781, 1542, -663, 1976,
- 3105, 145, -100, -1774, -1039, 1627, 15540, 4194,
- 5392, 741, 1816, -544, -9100, 4255, -1083, -1266,
- 2580, -4200, 1934, 1721, 129, 2276, -2704, -1341,
- -1310, -11926, -1478, 199, 755, 619, 4231, -478,
- -1627, -1242, 1842, 13170, -2416, 778, 192, 273,
- 782, 774, 2188, -838, 3139, -1532, -1639, -1073,
- -596, 770, -353, -53, 82, -322, -20584, -344,
- -443, 158, -144, -554, 50, 954, -145, -336,
- -2050, 596, -950, -2690, 13908, -13783, 4792, 879,
- 584, -2987, 967, 192, -585, -783, -1341, -3108,
- -1622, 2478, -1362, -1470, -1556, -430, -110, -736,
- -8097, 2073, 964, -417, 1669, -5425, -7846, 536,
- 12883, -1690, 1143, -242, -438, -2274, 57, 302,
- -574, 637, 2816, -1642, 2166, -172, 893, 421,
- -614, -565, -338, -526, -1085, -939, -1138, -991,
- 1919, 1720, -18845, -1950, -342, 1930, 321, 184,
- -956, -374, -462, -216, -6, 26, 386, -50,
- 603, -720, 634, -252, 261, -860, 218, 22846,
- 11544, -459, -946, 452, -102, -1203, -1802, -1105,
- -310, 787, -220, -1113, -2043, 650, 13767, -3638,
- -296, -902, -413, 252, -816, -172, -505, -1335,
- 890, 768, -523, 808, -331, 20000, -264, 1763,
- 133, -1, -464, 949, -954, -147, 1780, -190,
- 30, -7422, -4615, -1006, -470, -742, 500, 7509,
- 1500, 1550, -3614, 810, 2595, 1506, -12926, 3588,
- 402, -2547, 1505, 65, 4, 3382, -2201, -2441,
- -1521, -5450, -3820, 282, 5212, 1186, -1056, -2334,
- 988, 12987, 390, 4141, -2680, 1663, -8034, -1792,
- -225, -674, -7147, 13254, 1631, 10163, -3332, -7,
- -675, -735, 772, -2299, -326, 1641, -1174, -1911,
- 82, 776, 891, -445, 18590, 238, 1417, -2372,
- -9718, -2682, 600, -1401, 604, -1791, -22, 1546,
- -1764, 525, -1355, 348, 3260, 1115, 204, 524,
- 225, -12776, -679, -15595, -1188, 1078, 82, -859,
- 28, 819, -1220, 563, 2309, 331, -1158, -2010,
- -264, -383, 1732, -424, -2742, -775, -329, 132,
- 391, 1261, 1033, -9812, -11829, 2433, 2690, 606,
- -2724, 7216, -296, -1834, -1694, 456, -4732, -400,
- -3192, 1428, -316, -13674, -2702, 2320, -6548, -2025,
- 1222, 1749, 4005, 2924, -3539, -5104, -2333, -1438,
- 2598, 62, -757, 760, 343, 154, -31947, -534,
- 1296, 697, 88, 345, -577, -500, -174, -326,
- -198, 272, 157, -815, -636, -1163, -867, -273,
- 1054, 774, 1624, 989, 107, -1088, -673, 2143,
--22962, -566, 151, 72, -27, 1034, -444, 501,
- 1905, -1455, 21, 289, -10670, -789, -2421, -2686,
- -327, 804, -3009, 907, 960, 1379, -43, -552,
- 2203, -1406, -911, -11094, -529, 4458, -4152, -70,
- 3162, -12546, 326, 874, 1426, 3019, 2315, 104,
--12516, -1591, -2877, 772, 1982, 1160, -4491, 3417,
- -1524, -2139, 130, 930, 9359, -18308, -376, 4090,
- -468, 156, -216, 60, -643, -3440, 256, -835,
- -2389, 1660, -542, -1628, 4270, 3574, -3136, 433,
- 1069, 30024, 561, 268, 790, 294, 207, -1552,
- -736, -97, -215, -98, 690, 686, -202, -736,
- -453, 655, 511, -156, 1006, 361, 1424, -1254,
- -361, -1253, -1419, -290, 78, 555, 565, -488,
- -923, -18193, -630, -908, 188, 925, -1684, 241,
- -319, -14478, 17007, -1415, 274, 592, 1344, 1784,
- -731, 344, 992, 141, 290, 481, 628, 623,
- -1166, -2092, 140, -1056, 13736, 754, 1980, -238,
- 2132, -1372, -2216, -12057, -1662, 66, 1742, 2209,
- -962, -1574, -3044, 173, -3066, 183, -4476, -1016,
- 6160, 780, -1193, -3334, 179, -371, 244, 160,
- -686, 669, 330, 426, 65, 159, -664, -186,
- 479, -742, 54, 605, 32603, -941, 370, -91,
- 856, 825, 1042, 374, 651, 313, 734, -240,
- -49, -685, -1994, -604, -875, 44, -884, 886,
- 13012, -1506, -4317, -1926, 3050, -1027, -482, -40,
- 137, -2560, 1366, -11812, 2112, 2266, -2690, -1339,
- -700, -243, 2322, -1042, 4635, -3210, 4281, 47,
- 670, 9218, 1165, 814, -62, -2276, 12987, -714,
- 2481, 1355, 896, 2840, -1664, 2048, -345, 2285,
- 1754, -669, 2284, -288, -575, 944, -1528, 44,
- 1071, -706, -543, -1347, 880, 257, 1364, 1444,
--17896, 99, 1539, 1813, -611, 355, -2290, 980,
- -787, 132, 300, 2353, 204, -798, -296, -594,
- 895, 842, 18755, 1129, 79, -189, 515, 882,
- -286, 109, 305, 374, 1323, 861, -18, -78,
- 294, -320, 674, 504, -159, -549, -95, -32403,
- -90, 658, 1082, 1611, -137, -74, 1160, -794,
- -55, 822, 2627, 1203, -3540, 9829, -7860, -9063,
- -4015, -894, -2218, 729, -879, -1869, -2446, 4050,
- -488, 13211, -290, -820, 371, 14196, 866, -891,
- 218, -1838, 2162, 1144, -186, 512, 1416, 546,
- 3298, -1253, 128, 1202, 557, -1967, 680, 545,
- -139, -3008, 18453, -3322, -137, 163, 1377, 1116,
- 2572, -1577, -1846, 651, -1319, 796, -862, 331,
- 4383, 2453, -1894, 3264, 14137, 842, -3087, 3740,
- -1100, -2400, -1364, 2406, 417, -2393, -868, -3158,
- -9712, 3480, -1403, 1896, 201, 1285, -593, -11718,
- 99, -539, -186, 45, -2266, -12228, -2658, 2802,
- -1198, 1022, -3840, 1401, -1918, 1655, 1725, 96,
- -205, -913, 1629, 568, -1285, 1264, -1160, 594,
- 223, -336, -1436, -472, -19792, 553, 1494, -195,
- 570, 282, -653, -54, -1115, 153, -484, 141,
- -188, -278, -173, 464, 13, -634, -42, 390,
- -464, -246, 622, 1229, -692, 29175, -574, 1150,
- -135, 2685, 2452, 63, -962, -918, -1657, -1978,
- -172, -677, -3414, 1345, -3964, 2875, -1412, -654,
- -3000, 10739, 11348, -2232, 516, 8303, -189, 2564,
- -150, -373, 903, -275, 2394, -1135, 508, 424,
- -1704, -2222, -3789, 1938, 216, -12702, 2488, -1364,
- -2175, 1114, -819, -2756, 1564, 952, 36, 609,
- -933, -1568, 110, 143, -1575, -4236, 528, 15042,
- -1920, 348, -2623, 5217, 1911, -1088, 259, -590,
- 364, 2081, -3585, 662, 249, -119, -111, 778,
- 2167, 11, 2500, 7182, 14452, 4388, 4121, 3623,
- 1598, 532, -507, 877, 3830, 372, -2184, -2810,
- 11748, -2095, -1079, -3070, -768, 2901, -3587, -2572,
- 10008, 563, -4588, 1026, 1117, 1879, -12004, -416,
- 317, 2032, 1800, 1058, -84, -296, -1748, 2588,
--11019, -1627, -3264, 2480, 96, 2146, -2672, 2418
-},
-
-.cb1110s0 = {
--32746, 360, -2774, -672, -1808, -14, -1037, -1327,
- 1409, -2215, 172, 1557, 945, 2031, -702, 1844,
- -1106, 472, 2603, -978, 2782, -5691, 1473, -5668,
- 7129, 6600, -2160, 108, -1844, 2062, -2395, -740,
- 1690, -45, -725, 77, 7236, -12903, -3356, -764,
- 1870, 720, -2201, 790, 9950, -3694, -5340, -4031,
- 4115, 6863, 2352, 1484, 3606, -4855, 714, 4104,
- 6240, 7261, -6855, 4919, -2847, 6701, 7469, -616,
--11442, -1935, 9157, -4072, 133, -5976, 2455, -9360,
- -2898, -4353, -7721, -3098, -3505, 2568, -5432, -576,
--10072, 250, 2173, -4196, -4322, 2688, 5220, -6026,
- -346, 11678, 2071, -7344, -2182, -530, -180, -2568,
- 1524, -1617, -8825, -4845, 2794, -2813, -2669, -2423,
- -2709, -8985, 2105, -4629, 708, 2040, -5680, -2470,
- -7277, 6841, 6523, 4196, -6788, -1982, 3844, -5000,
- 156, 1930, 1780, -3824, -286, 3908, 1703, 7304,
- 1145, 144, 1180, 7145, 3175, -13823, 6580, -3066,
- -6321, -9739, 4432, -1145, 2923, -2636, 3838, -7037,
- -3913, 1262, -1398, 363, -141, -886, -5667, -212,
- -2118, -2717, 2724, -18802, -2098, -155, -1399, 782,
- 797, 766, 2613, 5374, -3767, -1711, 624, 693,
- 2544, -6153, 7179, 6835, -762, 5061, 655, 2600,
- 9208, -7030, 7047, 1654, -3404, 176, -5486, 1374,
--15378, -487, 7456, -1954, 2404, -2994, -1608, 2362,
- -498, -7952, -6143, -3996, 1596, -3013, 1181, -1534,
- -5265, 220, -2677, 1047, -4629, -15066, 3966, -446,
--11713, -5694, -393, -250, -1336, -7394, 1508, 6239,
- 3788, 6273, 6215, 822, 2657, 8057, 8391, -658,
- -2561, -11587, -2589, -6702, -9227, -1016, -2220, -9702,
- 5988, 1859, -6100, -4594, 221, 2529, 2217, 8273,
- 1804, -6128, -2859, -8259, -4707, -2494, 1913, -352,
- -4561, -289, -1801, -994, -4445, -1001, 5422, 10868,
- -7366, 1679, -5195, -6859, 2982, -406, 2400, 4520,
- -3611, -1892, 4900, -3504, 771, 2774, -772, -1929,
- -7354, 375, 628, 4522, 1069, -969, 8083, -155,
- 3178, -1138, 1752, -17288, 4390, -2483, -2071, -1353,
- -1155, -456, -2683, 6798, -1908, 1797, -6657, -2770,
- 5610, -14518, 5922, -3964, -938, -853, 1416, -1077,
- -4562, -160, 5820, -3031, 5091, 1987, -2746, -3779,
- 238, -264, -3074, -11718, 9370, 9806, -6302, 3979,
- -2938, 4034, 393, -1399, -4466, 2181, 756, 394,
- 2264, -3664, 78, 470, -3228, 3942, -1714, 708,
- 4988, 1938, -2722, 4555, -5054, -1026, 19312, 354,
- 107, -5357, -4364, 597, -2566, -2812, -2278, -446,
- 1384, -371, -2566, -388, -3964, -8989, 9136, 3389,
- 8440, -5570, -1262, -5874, 2056, -5973, -185, 4540,
- -4924, 154, -3653, -1113, -3048, 7099, -2734, 2940,
- -6704, 1543, -8120, 10134, -9485, -6645, 4816, -442,
- -32, -2430, 4932, -6129, -5050, 6120, -2147, -6910,
- -1342, 1075, -2458, 50, -4747, -3080, 1886, 1490,
- 18972, 48, 787, 2441, -405, 1668, -1399, 2202,
- 2175, -3592, 1548, -2728, -4864, 504, 383, 376,
- -1073, 2142, 504, -3114, 6378, -5516, 13462, 196,
- 1840, 7087, 792, -3583, 302, 1012, -5504, 270,
- 3354, -4486, -2312, -2522, -2872, -3899, -2261, 5211,
- 1417, -3075, -151, -985, -772, -1630, 164, 659,
- 1496, -349, -621, -32, -2982, -1720, -3475, -7370,
- -1541, 1122, 20474, 1726, 4474, -3228, 7024, 3265,
- 522, -2193, -2113, 5388, 1912, 5929, 11768, -1162,
- 2600, 4048, 652, 3360, -3215, 376, 10028, 6054,
- -3814, -1155, 93, 4512, -3581, -4037, 7484, -1481,
- 2797, 2635, -12275, -2780, -6235, 5739, 2687, 376,
- 5984, -2547, -8834, 4332, 2752, 1942, 1002, -3312,
- 5251, -86, -7794, 918, -2413, 3131, -3316, 2095,
- -4569, -15382, -5534, 1290, 5179, 2928, 3034, 2365,
- 270, -7476, -3024, 6910, 1355, -6262, -2040, 10490,
- 1432, 12284, 1125, -3160, 4518, 973, -2351, -1726,
- 1967, 1488, 382, 3559, -3742, -2908, -944, -1662,
- 682, 902, -4360, 5026, -4252, -1212, -3269, -6024,
- -3788, 9128, -2638, -1625, 315, 3087, -3265, -10441,
- -7207, -4078, -3266, -7543, -5223, 5460, 2496, -9258,
- -227, 4048, 860, -520, 13616, -3458, 3837, 809,
- -104, -4062, -4846, -136, -1631, 13977, -1136, 3380,
- 1099, -4022, 1831, 3360, -9034, -52, -516, 10144,
- 5074, 4866, 8282, -972, 2496, 2336, 8766, 2881,
- 2417, -5588, 3064, 3934, -4202, 627, -986, 1750,
- 958, -2348, 5006, -2597, -90, 133, 23271, 2431,
- -3984, 1894, -2094, -1816, 5007, -3164, 2526, -1862,
- 2651, 1809, 7173, 3410, 154, 14930, 3032, -5314,
- 44, 8868, -543, -2158, 5341, 258, -8188, 3772,
- 2804, 7544, 8339, -3560, -63, -735, 1300, -4308,
- -1085, -4986, 1564, -6744, -2605, -310, 1275, 1166,
- -640, 4814, 4373, 3103, -1242, 6049, -4786, 597,
- 182, 2371, 6950, -2265, 389, -14669, -1942, -2733,
- -485, -865, -597, -1376, 1626, -3956, -1244, 1532,
- 3918, -3311, 1574, -88, -20573, -5471, -71, -1731,
- 1436, 2428, 3982, -4576, -914, 5460, -4973, 1650,
- -2364, -2486, 3212, 5424, -2501, 4595, -937, 728,
- -5140, -9948, 1437, 10560, -5704, -264, -2752, 949,
- 5229, -1445, 430, 827, 4103, -1999, -4625, -4171,
- -8769, -8927, 7161, 4539, 6968, 5975, -4626, -2793,
- 10080, -10386, -2479, 1724, 2992, 354, 3650, 3328,
- 4490, -1931, 7348, 7283, -3304, 4446, -1698, -1224,
- -3002, 4340, 1041, 607, -454, -4261, -18071, -1199,
- -3902, 570, 5808, 5582, 6710, 235, -205, -4288,
- 3472, -686, -103, -3658, -436, -9680, -190, 275,
- -919, 2522, -2087, 9096, 5060, -6450, 10282, 3344,
- -8167, -7688, 11881, 3101, -1280, -9942, -11741, 2213,
- 712, 3976, -4218, -5285, 2797, 2996, 4006, 2053,
- 2344, 6200, 141, 2616, -3981, 6970, -4194, -1621,
--13724, 7772, 2800, 2220, 445, -266, 4030, 444,
- -228, 2642, 1617, -2511, 1699, 8740, 3438, -2063,
- -2093, 1806, 950, -7112, -1513, -2886, -8789, 870,
- 3456, -4126, -3330, 541, -10173, -1789, 3156, 4466,
- -5965, 479, 5177, -2806, 2506, -1646, -3609, 1617,
- -7373, -3146, -2389, 3601, 7850, 89, -3373, 4670,
- -4180, -3186, 3056, -1691, 1314, 9234, -7799, 1323,
- -4360, -9866, -1930, 8091, -13452, 8503, 1980, 11247,
- 7688, -5953, -4165, -3192, 540, 1631, 131, 2250,
- 5330, -146, -8724, -3148, 2834, 1148, -3886, 374,
- -1836, -3898, 9649, 1119, 10221, 128, 8868, -7301,
- 2601, 1252, 2340, -3789, 4682, 181, 4434, -1740,
- 4368, 879, -620, 2046, 1842, 844, -925, -2506,
- -3344, -8820, -722, -451, 521, 903, -1286, -3059,
- -5308, -4759, -2706, -1429, 2762, 927, -1459, -7274,
--12028, 8838, 3987, 2406, 8626, -3128, 6505, -4322,
- -197, -2464, 2738, -46, 161, 13919, 2252, 2059,
- 981, 204, 1161, 4910, 683, -4311, 2081, -1932,
- 1119, -6067, -5325, 8528, -4704, -5522, -6183, 5744,
- -3407, -2021, 2688, -3230, 2490, -976, -500, -7834,
- 2064, 3191, 4740, 3686, 1762, 2604, -2442, -5720,
- -7550, 457, -3478, -8097, -6510, -9105, 8031, -4895,
- 500, -2436, 1483, -4415, -2023, -3768, -2497, -1911,
- 789, 566, -969, -4204, 6128, -5076, 2664, -4222,
- 6755, 1774, 6881, 64, 1205, -9243, 4782, 4432,
- 5193, -2258, -4787, -7433, 1755, -794, 1297, -7535,
- 12773, 9124, 806, 2348, -8112, 7874, -4348, -1410,
- -350, -2528, 576, 661, 272, 4598, 691, 1913,
- -3349, -1881, -1854, -779, -821, 8444, 60, 2570,
- -1813, -1354, -4512, -5471, 4728, 3289, 2617, -9326,
- -6670, -859, -2713, -9839, 4676, -2657, 3106, -1393,
- 10278, -3069, -2253, 1015, 2246, -2227, 16, -388,
- 7962, 1493, -3122, -2707, 7982, -6106, -1462, -1665,
- -1302, 2347, 3640, -15122, -2211, 417, 6819, 959,
- -2876, -6868, 11060, -2329, -302, 1595, -4610, 9514,
- 12677, -4614, -2899, -141, -4857, 1447, 6400, -2894,
- 1696, -2888, 1889, 3489, 2775, -504, -6597, -5258,
- -7256, -379, -1249, -136, 3118, -3537, 3295, -3458,
- 2103, -399, 15281, -222, -1809, 172, 2257, 1947,
- 707, 3562, -5691, 3575, -2210, 5750, 815, 4059,
- -16, 1306, -13308, -1733, -1338, -3477, 5247, -1950,
- -5148, -678, 8074, 1740, 290, 2033, 4639, -4240,
- -536, -5214, -1366, 2491, 501, -59, -4480, 430,
- -285, -5947, -755, -14559, 5696, 6960, 4462, 2317,
- 6414, -13174, 4962, -899, 5924, 11100, 5303, -970,
- -2528, -6239, 2253, 2236, 553, 458, -2229, 8016,
- -7082, 2869, -4209, -4460, -6536, 3557, -1766, 7815,
- -655, -6029, -5250, -1627, 2646, -3466, -3584, 901,
- 10305, -895, -427, 949, -2776, 3436, 769, -4131,
- 9019, -4898, -3562, -7978, -359, 1358, -1528, -3095,
- 5840, -6214, 2591, -2086, 9480, 640, 2858, 216,
- -3625, 5740, -7008, -1097, -2091, -143, 4832, 6210,
- -1358, 3998, -714, 835, -4004, 3664, 1980, 1240,
- 2902, 510, -1565, 427, -2052, -4208, -1505, 1187,
- -1229, 3732, -932, -1014, 4784, 18474, -5111, 3047,
- -54, -1547, -3892, 8612, 274, 1446, -3548, -7689,
- -423, 1192, -4508, -10403, -8735, -446, 444, -6353,
- 4008, -1462, -8906, -1161, -2395, 2442, 2204, -5472,
--17376, 2471, -689, 1394, -3657, -2119, -769, 2872,
- 1393, -2701, -3536, 3650, -378, 859, -3338, 1412,
- 3010, -3243, -335, -3619, -511, -1931, -7126, -5018,
- -9332, -4440, 1906, -2265, 1386, 8072, -6576, -1300,
- 5458, -4894, 630, -7146, 2263, 810, 2968, 1124,
- -2219, 2292, -3914, -1836, -6683, 1511, -2755, 1396,
- 2425, -23842, 2249, -53, -891, -1678, -1766, -1788,
- 502, -4210, 211, 10376, -5507, 837, -6196, 2132,
- -472, -10153, 7234, -1456, -148, 4886, 2427, 2371,
- 1234, -962, 6298, 1016, 1735, -566, -878, -8071
-},
-
-.cb1110s1 = {
- 2525, 12164, 4861, 9505, -7371, -414, 3002, 576,
- -347, -998, 2861, -804, 3034, 810, -788, -539,
- -2092, 4970, 1828, -2869, -2802, 6649, 3673, -193,
- -4034, 722, 1642, 3792, 8770, 10428, -3303, -3849,
- -4520, -234, -4190, -1219, -1300, -4128, 8384, -1150,
- 1578, -6174, -1072, -4871, -8180, -6698, 3806, -7386,
- -2545, 1052, -550, -1148, -1308, -8834, -2654, 1982,
- 8716, 6579, 1360, -2404, 1893, 2680, 3801, 11097,
- 1455, 2453, -7585, -7503, -12710, -420, 2023, -656,
- 1124, 2872, 9676, -4309, -202, 1458, -6526, -534,
- -1535, 924, 3068, -1142, 5073, 1284, -5632, 869,
- -1637, -2898, 4900, -10202, -10488, -1097, 1890, 11006,
- -44, 1368, -1979, 6507, 316, 961, 8, -4085,
- 2561, -2034, -1077, 2594, -465, -5134, -868, 54,
- -6694, 9608, -3516, 7165, 11011, 9542, 4780, -2800,
- -1130, -1714, -2684, -369, 4746, -2688, 4146, -7652,
- 984, -3263, -276, -9134, -2848, -3983, 9994, 3608,
- 3234, -596, 263, 3102, -178, -2264, 3820, -4293,
- -5752, -3577, -3914, 1095, -1562, 22110, 4610, 69,
- -2999, 254, 2178, -2901, -1203, -1292, 2642, -3254,
- -1389, 2955, 1340, 542, 810, 1369, 3208, -795,
- -3272, -2717, -1129, 8781, -6854, -3028, -616, 729,
- 529, -6946, 1621, 9574, -14909, 5398, 854, -774,
- -9978, -5417, -2516, -4683, 5715, -66, 3336, -5040,
- 640, -7566, 3494, 7016, -2269, 1376, -13994, 6448,
- -3948, -1697, -3988, -6559, 2376, 4231, -3131, 2045,
- -2417, -5919, -7016, -1695, 9046, -7966, 5187, -2553,
- 1402, -2351, -220, 5931, -1823, -2270, 584, -3784,
- 2924, 6166, -3035, 2370, 4923, -1080, 682, -7899,
--10827, -1824, -908, 1568, -3565, 4033, -4266, -1948,
- 923, 5488, -203, -2396, -907, 2783, -3278, 1415,
- 7710, -190, -5208, -2279, 1266, -1132, -3392, 10251,
- -1064, 11283, 2162, 2213, -5088, 4479, -4658, -1803,
- 1534, -4233, -4073, 6938, 3966, -4878, -332, 5961,
- 9217, 488, 6520, 4430, 7988, 9383, -2586, 1206,
- -6983, -873, 1251, 1849, 5945, -2144, -2032, -1852,
- 416, 3720, 2419, 8462, 3173, 11524, -2894, -5517,
- -211, 17830, 3170, 1098, -721, -2066, -1956, -3097,
- -1061, 2815, 447, 701, 449, -485, 2609, 1239,
- 2257, -1760, 3091, 7538, 3710, -2689, -3092, 6903,
- -2457, 3271, 6355, -1486, -828, 1994, -3575, 3949,
- 3185, 2606, -4912, -16039, -8833, 1831, 2580, 1993,
- -1117, -3408, -7590, -7278, -141, 2696, 805, 1896,
- 308, 378, 9308, 2894, -4324, 1042, 837, 4716,
- -4702, 2493, -5173, 8616, -468, -14829, 3759, 3251,
- -4237, -1340, 5224, 2099, -764, -8263, -1699, 76,
- -1464, 2115, -582, 3286, -3653, 1017, 1696, -1414,
- -668, -9748, -5730, 2413, -1270, -6070, 17002, 2164,
- -5440, 1801, -2123, 800, 2135, 4801, -887, -2141,
- -647, -4846, -463, -577, -1846, -555, -1929, 2046,
- 8272, -8399, 3886, -5950, -4202, -12600, -2805, 477,
- 65, 6140, 1089, -4737, 8967, 1952, -1968, -3660,
- 6641, 850, -3304, -1775, 4010, 10819, 14365, -696,
- -1331, -1724, -237, -3611, 244, 3005, 4349, -182,
- -4124, 2466, 2746, -61, 3391, -1392, 3788, 1582,
- 3723, 7140, -2207, -3678, -2675, -252, -7476, 9426,
- -6196, 3226, 3554, -6326, -4284, 6346, -4432, 5199,
- -2633, -2499, 1200, -1140, -3910, 6624, 16732, 5946,
- -766, 2630, -1200, 1988, 5510, -1199, 4126, 1287,
- 454, -1795, 2664, 5001, 1058, 500, -437, 2992,
- -2012, -160, 796, -4846, -6572, -10088, 603, 483,
- -4510, -12799, 3502, -1784, 3510, -3956, 6038, 9044,
- -6029, 7170, -1608, 120, 914, -200, 3939, -6274,
- 3020, 6235, -2754, 5368, -1693, -6028, 386, -2006,
- 1898, -11704, -9973, -525, -2624, 1799, 4140, 3248,
- -57, -3731, 3764, 5582, -3830, -2484, -2066, 1517,
- -900, -8250, -8191, 2676, 1147, 6752, 6908, 1196,
- -2634, 3408, 2980, -1042, 3971, 632, -4946, -5690,
- 133, 2445, -446, -1294, -777, 3356, -5628, -6020,
- -8042, 5069, -1421, -2701, -15117, 3074, -912, -2574,
- 2643, 5252, -2118, 3849, -3793, -850, 4170, 6240,
- -697, 6976, -3752, 1155, 7769, -8912, -7728, 4224,
- -2362, -3760, 3688, 2402, -3411, -3165, -2550, -8,
- -209, -334, -837, 5688, 3425, -4564, 9999, -4780,
- 3093, 4346, -5556, 1636, 1755, -14696, 1810, 6547,
- -60, 4054, 10539, 6118, -4414, 1760, 3581, -841,
- 4471, -23, 180, 259, -4439, -13230, -1326, 1913,
- -621, -1641, -2882, -4934, 516, -3886, -4468, -110,
- -4526, -5157, 7550, -4449, 813, -4364, 1768, -8829,
- 2003, -1372, 1873, -209, 1539, 1076, -12408, -1464,
- -1878, 1563, 2020, 704, 1425, -275, -3718, 4618,
- -1120, -5057, -3590, 4022, -1977, 620, 143, -2507,
- 3697, -3263, 616, -3002, -3347, 21051, -4398, 364,
- -1924, 284, -2724, -2297, 4916, 2702, 4866, 4293,
- -2781, 1094, -1525, -562, 5487, -2098, 4658, 1362,
- -597, -3426, 3173, -5174, 3922, -3844, 1482, 4711,
- 5853, 1490, 5499, -17537, 956, 544, 268, -4782,
- -504, -4003, -911, 599, 1746, -7322, 1907, 1990,
- 16985, 3171, -2645, 1040, -7239, 5618, 304, 3606,
- -3377, 3630, 7319, 108, -496, 1026, 3062, -392,
- 2366, 1948, -530, 806, 2700, -2676, -2717, 5238,
--16008, -823, -264, -1560, -1014, -760, -3684, -330,
- 5644, -1668, -10239, -2583, 7411, -593, 2193, -1479,
- -2892, 3834, -3625, -12234, -1103, 1868, -5121, 3879,
- 2748, 1936, 2026, 4572, -6037, 3310, -8678, 11724,
- 5290, -2316, 4131, 834, -3915, 869, -1734, -5752,
- 1255, 9534, -3625, -115, -5912, -125, 2298, -1494,
- 5910, -496, -2719, 1320, 3175, -3012, -3906, 4602,
- -4760, -5918, -2568, 6632, -8802, -5876, 6358, 2349,
- 207, 5191, 8369, -5932, 2710, 7950, 3673, -2592,
- 1311, 8384, -4360, 8614, -5662, 1180, 2147, 1044,
- 1591, -5555, -1597, 4418, 38, -1579, 4675, -1725,
- -1693, -6470, 3066, -7601, -12822, 524, -2986, -3406,
- 8860, -1266, -930, 4316, 1171, -2908, 199, -1785,
- -2851, -3588, 3072, -3585, -2668, -1123, 1508, 460,
- 6780, -19480, 2854, -1574, 1004, 5074, 1907, -1988,
- 1177, 74, -1436, 2224, 1232, -3008, -3454, -862,
- 604, -653, 2778, 2349, 3242, 8426, -430, 3684,
- 4814, -1886, 5118, 1487, 442, -2322, -900, -2854,
- -234, -10350, -7922, -745, -1490, -5638, -6014, -4079,
- -2979, -351, 9493, -2274, -11362, -8166, -7364, 8261,
- 1554, -1722, 4651, -831, 2276, 1502, 2600, 1266,
- 4456, -4145, -3837, -3584, 4242, 4058, -2395, -6971,
- 4486, 3233, 6226, 1306, -11506, -6223, -5132, 1537,
- -4407, 1510, 5732, 2808, 5817, -4972, -2900, 897,
- -2441, -1819, 5651, -6988, -10063, -2288, -5820, -1250,
- 925, 3120, 6125, -9901, -137, 3684, -6601, 1077,
- 3272, 21, 3341, -838, -3643, -1727, -4417, 660,
- -6551, -184, -8125, -1780, 5232, 6077, -7968, 6423,
- 3823, 3026, 4555, 464, 3318, -5504, 837, -3571,
- 3853, -2277, -1864, -742, -5380, 6096, 6856, 1076,
- 877, -642, 1926, -4712, -14482, -3323, -2672, 7485,
- -2116, -3932, 2233, -3270, 326, 2221, 132, -1893,
- -748, 453, 3597, -2308, -4371, 5632, 3609, -1033,
- -444, -2591, 17359, -3120, -2604, 3157, -370, 9242,
- -1606, 2675, -853, 1475, -416, -3280, -1159, 191,
- -3670, 282, 4282, -957, -2978, 3564, 91, -20520,
- -3046, 1248, 1277, 3368, 1118, 311, -598, 1406,
- -2377, -1444, 1417, -3626, 167, -6440, 3341, 629,
- -2523, 4398, -1187, 4322, -383, 1934, -3298, -8530,
- 2195, 5220, 510, -1256, -6932, -1061, 5141, -16242,
- -1390, -546, -3760, -2029, -929, -6044, -3503, 312,
- 8478, 701, 8865, 4715, 1987, 1342, 1400, -71,
- -5229, -1547, -8827, 2349, 12836, -1479, 4621, 6003,
- -6749, -3184, -5667, -2930, -1074, 3204, 330, 4692,
- 2872, -10808, 75, -1260, 18003, 4100, -1462, 1391,
- -1667, -2039, -687, -4806, 5913, 2682, 7730, 7034,
- 2703, 1666, 120, 1601, 2123, 1402, -4702, -11229,
- 7875, -5591, 4634, -2274, 3015, -597, -7520, -1095,
- -4814, -173, 5562, 1533, 2807, 8466, 5195, 7806,
- 2585, -2877, 6938, -3942, 402, -3825, 4162, 9149,
- -6423, 2447, 7041, 2932, -9813, 2124, -58, -3,
--12856, -7973, 1484, 907, 180, 8042, -2124, 4356,
- -4117, 1126, -9706, -2101, 3957, -1877, 1139, 7148,
- 3707, -1341, 4509, -1220, 4570, -1650, -6504, 7036,
--10268, -328, 4678, -12205, 5062, 6089, -496, -7740,
- 2207, 4489, -205, 1386, -2695, -1442, 4730, 892,
- 12061, 3818, -3305, 4431, 9300, 3470, 4608, 4315,
- 892, 866, -1714, 1529, 2569, -11398, -3068, -282,
- 1626, 587, -1568, -1630, -220, -2033, 7141, -2732,
- -3541, 3404, 15514, 1883, -2697, -926, 5972, 6485,
- -6794, 2111, 2490, 1201, 5467, -2352, 3264, -97,
- 2400, -728, -3364, 3417, 1481, 2862, 462, 2855,
- -5233, 5740, 7208, -10508, -3254, 1450, -1270, -293,
- 3400, -6978, 10035, -1213, 4308, 2641, 8579, 8518,
- -2919, -351, -459, -2069, -617, 638, -1347, 107,
- 6009, 2035, -280, 2009, 3280, -1236, -14960, -5177,
- -2440, 965, -2646, -2095, 5274, 1825, 3705, 3831,
- -446, -4018, 7178, -2415, 4344, 1850, -509, -500,
- 1056, -4374, 5709, 1336, 3352, 7915, -2302, 12209,
--14362, 6429, 1423, 2912, 6474, -1599, 1116, 2280,
- -1738, 3108, -5792, -3554, 623, -1110, -6114, 4488,
- 8941, -3176, 13670, -3320, -327, -2657, -7349, 3782,
- -1481, 5737, -200, 2968, -9474, 5752, 5056, 4688,
- -5352, -432, -906, -3832, -8519, -7, 3667, 3583,
- 6250, 8724, 10737, 9371, 950, -1630, -10740, 5788,
- 4111, -2910, 437, -2482, 1910, 185, -2168, -3155,
- -3515, -1754, 4978, 4298, -6921, 476, -2778, 546
-},
-
-.cb1110m0 = {
- 3666, -1078, -175, 1370, 2491, -10050, -685, -7617,
- 4002, 11104, 903, 5948, 2821, 3050, -2465, 1151,
- -848, -2139, 12321, -1408, -1469, 2046, -2693, 2479,
- -3498, 3077, -3822, 1841, -2404, -11172, -407, -3062,
- -1725, -5475, 597, 1924, -197, 434, -1648, 2678,
- -2462, 1148, 599, 1284, -13171, -949, -6508, 754,
- 7466, 5924, 1411, -536, 10825, 588, 297, -310,
- -593, -896, 784, -242, 716, 501, -52, 4043,
- -755, -690, 2630, 17762, -2159, 2126, 954, -1316,
- 11129, 1570, 387, -2639, 13953, -311, 5231, -2297,
- -3612, -678, -1117, 690, -279, 2403, -1541, 493,
- -1692, -2048, -771, -933, 423, 700, 840, 739,
- 1956, -944, 612, -2678, 101, 245, -786, 850,
- 269, 1355, 21773, 463, -2589, 596, -519, 788,
- -43, 1220, 10674, 4847, 1192, 335, 875, -106,
- 10644, 2600, 5391, -262, 2296, -5928, -1072, -122,
- 2504, 1313, 1117, -981, 350, 375, -810, 8,
- 1462, -2020, -2368, 8, 22663, 1537, 87, 908,
- 832, -4884, 312, 620, 1042, -4444, 660, 1582,
- -2710, -2954, 10012, -9580, 8102, 5696, -1371, -3035,
- -3347, 402, 218, 1096, -1924, 88, -2270, 4175,
- -1083, -497, -2437, -3332, -824, 212, -2362, 4600,
- -7800, -11501, 7795, 236, -1336, -12920, 705, 4532,
- -1488, 11746, -3213, -2650, 2524, -2638, -128, -328,
- 3402, 453, -242, -2500, 2224, 708, 450, -3014,
- -132, 1251, -131, -831, -710, -21985, 222, -2132,
- -3261, 490, -3020, -860, 2550, 892, -623, -3666,
- -664, -131, 2018, 2817, -12005, 496, -610, -7238,
- -3909, -2867, 6872, 1903, 848, 6644, 3812, -5686,
- -4055, -377, -2096, -10247, -1068, 1486, 415, -253,
- -2186, 1050, 771, -6856, 1044, 7466, 2953, -7514,
- 1601, 7015, -1778, -1622, -3364, -1755, 2835, 176,
- 2700, 991, 2560, -554, 4867, 1571, -5610, 2610,
- 12438, -3751, -9964, -2753, 4856, -2595, -5423, 10025,
- 812, 687, 2715, 4013, 3086, -12039, 328, -3992,
- 4044, -3920, -111, -553, -1720, 2454, 1706, -1365,
- 804, -32329, -471, 897, -4670, 780, -3680, -1409,
- -2630, 20, 184, -157, -290, 2794, -546, -160,
- 1564, 1146, 628, -4787, -239, 11233, -492, 1955,
- 608, 9273, -3220, 3830, 390, -5982, -3342, -3384,
- 2356, 1820, -3473, 979, -40, -20190, 47, -200,
- 5106, -381, 1824, -197, 2280, 2434, -2633, -1409,
- -1109, -1072, 857, 1554, 7459, 6, 12130, -1078,
- 1038, -300, -13748, 3201, -762, 2670, -1051, -445,
- 914, -172, -558, 2634, -1158, 3129, -74, -3415,
- 1086, -8892, 118, -647, 285, 186, 3022, -5077,
- 1342, 3453, -7991, -65, 4690, 944, 3717, -1909,
- -9783, -367, -1699, -772, -32768, 1286, -408, 340,
- -340, 430, 1274, 596, -109, -727, 276, -946,
- 139, 1804, -1050, -3562, -1392, -1179, 257, 1639,
- 25708, 2278, 2415, 2174, 153, 126, -60, 592,
- 994, -334, -268, 1826, -306, -2241, 2774, -3188,
- 758, -450, 8023, 542, 6819, -1712, 14195, -2198,
- 281, -12, -590, -1153, 4568, -3676, 1973, -5221,
- -1839, -603, 3324, 2492, -3070, -846, 123, -1184,
- 667, -10886, -65, -2615, 971, 10219, -1245, 7378,
- -2122, -2306, 571, -2298, 1958, -4356, -9210, 4321,
- 2805, 1888, 11129, 1282, -5819, -2528, -873, 1123,
- -5968, -2644, -5515, -2151, -944, -7712, -2007, -2260,
- -1920, 2100, -325, 153, 1050, 10, 1462, 650,
--12559, 3530, 754, 4493, 1528, -6991, -4842, 1483,
- -2408, 2785, -1651, -830, 1433, -2464, 18899, -1891,
- -3137, 996, 2485, 3056, -1061, -4015, -2282, 1356,
- -2572, -490, 1209, 1137, 4, -636, -1282, 1001,
- -1190, -172, -14049, -4256, -1972, 2225, -4738, -1054,
- 5254, 8113, 4294, 36, 11765, -3993, -1084, 3864,
- -3016, -10356, 353, 2963, -1228, 536, 609, -343,
- 1246, 3617, -3667, 4794, -20360, 473, 725, -1246,
- -1649, 1900, -2589, -2869, -2550, -886, -1164, -1876,
- 307, 3784, -4782, -476, -700, 2118, -1860, 1533,
- -5013, 2356, 3305, 3338, -14312, -1278, -322, 1950,
- -954, -1990, 1438, 3358, 7479, 3046, -6677, -3078,
- 1717, 3113, -12484, -1302, -221, -510, 10423, -3497,
- 4170, -3606, 6983, -2902, 458, 667, 566, 2415,
- -403, -2898, -44, -1832, -110, 1799, 1172, 7,
- -1534, 90, 686, -26902, 1601, -822, 658, 182,
- -151, 345, 1488, 1416, -272, 1560, 9774, 2084,
- 16, -14344, 1428, 514, 2658, -1312, 2095, 454,
- -1783, -2056, 4529, 1154, -2239, 956, 668, -1396,
- -2898, 405, -12659, -12556, -650, -587, 3461, -2470,
- 0, -3156, 3186, -4104, 1729, 1438, -1842, -422,
- 4476, 1945, -932, -1439, -702, -1398, 3349, 1876,
- -999, -2086, -17879, -432, 4036, -2299, 1133, 88,
- -2221, -2730, -938, -998, -132, -426, 2084, 2060,
- -1134, -313, 402, -538, -2593, 2022, 725, 1566,
- -2070, 21622, 1767, -424, -32672, 205, -1239, -3253,
- 198, -1257, 2342, -1918, 1505, 452, 1348, -604,
- 978, 1079, -4, 2476, -1247, -146, -861, -1928,
--12222, -13042, -1384, -1971, -1428, 1224, -639, -83,
- 1034, 3488, -2310, -565, 74, -335, 2774, 602,
- 872, -2132, -147, 2160, 244, 162, 12600, 628,
--10194, -1296, 1068, -1824, -4945, 3194, 2066, -895,
- -784, 2347, -1982, 73, 1030, 12589, -62, -2272,
- 3827, -1776, 2546, -1417, 3310, 4726, -3078, -548,
- -8522, 1632, -6667, 1008, 1128, 805, 954, 616,
- 499, -31526, -1327, 790, -190, 1058, -1157, 1432,
- -16, 411, -3180, 827, 327, 914, 1716, 1442,
- 1052, -1635, -1805, -4145, -13678, 3597, -2273, -5920,
- 3592, 1136, -211, 717, 3901, -5132, 3036, -601,
- 12976, 1633, 10316, -1674, -468, 905, 2331, 841,
- -247, -6053, -593, -3281, 4291, 5159, -1053, -1814,
- 2613, 2221, 1146, 871, -421, -542, 923, -3567,
- -1138, 10051, 10860, -6121, -661, -5677, -890, -266,
- 2100, 6223, -70, -2658, -78, 3424, 714, 2138,
- -1355, -981, 1990, 772, 938, 1311, -1963, 924,
--22516, 260, -341, 1251, -1578, 23, 1375, 1068,
- 2688, -3965, 713, -5342, -257, 37, -6034, -276,
- 228, -1240, -7171, -3402, -14677, 1708, -317, -2880,
- 874, 1466, 524, 2091, 565, -4220, -265, 52,
- -3373, -220, -3175, 2646, 448, -1628, -1986, 2200,
- 3722, -15752, 7120, -2036, -2170, -627, -1079, -4060,
- 2257, -925, -3418, -13488, -1308, 3476, -783, -3924,
- -820, -860, 2418, 2982, -8753, 9001, 294, -11915,
- -969, 3329, -761, 1459, -5308, 1811, 379, 306,
- 632, -2732, 2512, 1188, -3470, -2167, -572, -2274,
- -1657, 24074, -159, -138, -1826, -2527, -3117, -906,
- -1770, -1182, 1240, -3064, 2313, -790, 336, -3843,
--13384, -423, 13066, -14, -1908, -32, 2607, 487,
- -2426, 195, 135, 2742, 1540, -1034, 856, -2288,
- -287, -774, 497, 1760, 191, 178, 298, 38,
--30898, 801, -1456, 2311, 1272, -1845, 334, -933,
- 183, -1614, 739, 1881, -13548, -13589, 1496, -2075,
- -1281, -1510, 108, 3683, -1120, 752, -980, -277,
- -1289, 2016, -290, 1838, -321, -139, -881, -12391,
--14713, 1906, 990, -3202, 2320, 749, 1872, -2545,
- -1457, -1727, 734, -327, -316, 1062, -3149, -2959,
- 2210, 912, 952, 1926, -8918, 1098, 594, -1439,
- -1402, 11097, 3482, -472, 219, -3845, -662, 9715,
- 3928, 1254, -2009, 12375, -1724, 13938, 1892, -1390,
- 686, 2174, 1010, -1297, -199, 1855, 463, 2601,
- 4408, 1978, 1679, -1614, -3, -11965, 16220, 828,
- 1497, -747, -484, 519, -1804, -3814, 3287, 2104,
- 1149, 478, -3918, 1504, 2376, -316, -520, -1449,
- -3918, 664, 2772, -16434, 334, -540, -778, -2812,
- -6026, -4392, -2446, 3479, 3742, -624, 3895, 1145,
- -344, 333, 11898, -2725, 12873, -1145, -1807, -279,
- -452, -1581, 548, -5180, -2012, 3411, 1188, -1407,
- -4016, -468, 1904, -1724, -11390, -30, 14402, 1610,
- -2138, 1249, 346, 6097, -1433, -655, -174, 3652,
- 4010, 954, -1458, -354, -1872, -2689, 880, -846,
- -1304, -1725, 1750, -1186, 1520, 499, -583, 18201,
- -1083, -3323, 3072, -5440, -182, 1065, -1112, -984,
- 2501, -529, 613, 2054, 460, -5245, 2827, -1445,
- -2403, -12898, 1504, -8428, -1035, -4620, 1704, -2586
-},
-
-.cb1110m1 = {
- 1442, 12425, -2072, 741, -3624, 12979, 2031, -364,
- 3750, -5082, -1968, 146, 670, -3988, -831, 3962,
- 397, 6213, -1178, 816, -88, -432, -9620, 11572,
- 194, 289, -1958, -2115, -871, 5372, -3145, 3612,
- 1644, 826, 525, -2545, -514, -537, 2485, -1014,
- 1276, 541, -936, -302, -1172, 183, 827, 23939,
- 1120, -346, -313, 2759, 3934, -3082, -2260, -906,
- -967, 1496, 102, -2782, 323, -1109, -37, 2554,
- -2920, 998, -930, -1952, -1138, 1842, -1593, 17345,
- -1214, -1065, 2182, -1169, 11745, 278, 8310, 1491,
- -564, 1169, 8406, 1359, -1249, -2094, -1365, 4069,
- 1828, 897, 1258, 1083, 4319, 610, 766, 2273,
- 4057, 621, 338, 1317, -20941, 548, -2012, 563,
- 1102, -27, 3007, 1129, -1068, 1282, -2939, 2983,
- 1958, 1800, 1912, 1728, -606, 1804, -4768, 5068,
- -1365, 4543, 399, -14152, -6206, 6187, -2205, 1174,
- -1892, -3284, -206, 2872, -2622, -43, 11268, -104,
- 292, -1836, -6276, 725, 2066, -604, 11382, -448,
- 742, 2854, -910, -838, -1802, 3678, -397, -530,
--10647, 2356, 12161, 1506, 2649, -3335, 3128, 2169,
- 5942, 2152, 14124, 428, 187, 248, 1592, -44,
- -59, -2934, 1883, -923, 2673, -847, 150, -2142,
- -7620, 11078, -595, 6490, -13673, 948, 219, -1314,
- -3080, 1339, 11020, 1362, 247, -1863, 1069, -3786,
- 1706, 1064, 320, 4535, 136, 3795, 1465, -1356,
- -449, 13, -421, 1769, 20470, 2181, -371, 2444,
- -744, 2263, -155, -688, -236, -4481, 1551, 2812,
- 2476, -1436, -470, -272, 2276, 594, -858, -978,
- 1122, 2468, -9350, -353, -1020, 494, 13167, 1770,
- 1734, -70, -4630, 12358, -818, -979, -3931, 1000,
- -4343, 2570, 5567, 3322, 2930, -236, -4796, 6987,
- -1658, 4291, 1118, 1710, -2050, -13566, -2, -23,
- 2104, 1101, -316, 1906, 1643, 340, 5940, 3180,
- -837, 1978, -10514, 1466, -6936, 3600, 1205, 957,
- -211, -8272, 1611, 5330, -5217, -2264, -5681, -3085,
- -9201, -62, 3366, 1370, -9494, 244, -5516, 1210,
- 2930, -432, -1265, 376, -1910, -1016, -845, 3228,
- 1094, -3168, 634, -265, -3426, 4367, -4004, -277,
--15081, 3998, 9671, 3418, 691, 9124, -2723, 1939,
- 2311, 581, -4980, 3381, -1502, 878, -1037, 1496,
- 3002, 904, -5388, -3300, 263, 1277, -694, 766,
- 1781, 1134, 250, -32602, -285, 210, 2550, -383,
- 908, 302, 292, -352, 2615, -97, -1863, 1908,
- 2685, -502, -3767, 416, 990, -602, -1533, 43,
- 1288, 1326, 16638, 433, -1204, 1850, -1609, 1407,
- -7196, 2319, 5770, 1584, 1150, -634, -1686, 1359,
- -1396, 438, 246, 186, -11262, -1194, -3790, -3267,
- 2692, 755, 142, 16276, -2338, -1341, 10433, 38,
- -1510, -2520, -3205, 913, 3783, -1622, -4744, 1891,
- 2502, -8, -2962, 2091, 14986, 1270, 2931, 682,
- 1073, -10215, 1606, -1010, -822, 1168, -1403, 254,
- 1156, 3206, 3958, 1739, -402, -654, -4862, -1869,
- 2643, -2858, 658, -910, -2548, 5428, -1992, -208,
- 1950, -15526, 520, -4212, 3182, 4160, 1524, -2916,
- 586, 3213, 675, 185, -629, 669, -838, 502,
- -4065, 353, -4072, -1832, -2108, 5034, 2484, 15386,
- -2102, 4988, 70, 1011, 2568, 1360, -2821, 3352,
--11074, -2686, 611, 460, 1811, 3093, 34, -9140,
- -1163, 26, -875, 2510, 1134, -1322, 2274, -960,
- -823, -510, 1092, 1490, 1466, -1978, 32767, -2379,
- -1019, -633, -1306, -242, 2050, 1336, -2668, -2195,
- -442, 8, 2292, 4344, -2439, -1472, 1035, -14443,
- -1820, 6309, -2096, 45, 3617, 1561, 1252, 2828,
- 10682, -894, 10841, 2373, -101, 913, 2160, 2653,
- 2960, -4433, 1193, 4892, -2123, -7911, 991, -2643,
- -1364, -3641, -9736, 444, 869, 2990, 926, -1220,
- -1676, 7492, 4376, -3742, -6964, 4531, 7522, -2686,
- 164, 1070, -7305, 1863, 542, 146, -800, 18492,
- -4849, -3876, 2162, 5111, 2606, 4243, -3035, -2990,
- -1710, -426, -5315, -2332, -1020, -268, -1242, -39,
- -1684, -32768, 1288, -726, -1768, 304, 702, -2969,
- -700, 586, 1541, -1099, -348, -2816, -2181, -1260,
- -1658, 2278, 323, -1548, 2513, 11816, -2416, -5837,
- -118, 6770, 3360, -4097, -264, -1270, 1064, -9862,
- -3669, -56, 603, -1475, 1464, -9553, 6, -3091,
- 5331, -396, 892, -2774, -4674, 3667, -9982, -5160,
- -1146, -4026, -2032, 2936, 1805, -1026, 1065, -420,
- -572, 1756, -479, -583, 30760, -732, 750, 270,
- -1541, 28, -1114, -96, -264, 1167, 548, 570,
- 84, -1981, -2110, -1136, 358, -6337, -257, -14658,
- 1144, -9032, 322, -3730, -3086, -1351, -3320, -4116,
- -396, -129, -3202, 1403, -347, 2400, -371, 532,
- 1555, -2760, 1078, 804, -1314, 21956, 2231, -2808,
- -1947, 838, 12428, -14514, -384, -1554, -675, -885,
- 1358, 1612, -3266, -98, 1876, -447, 2241, 3375,
- -1765, 2792, 674, -1513, -1132, -3696, 11368, -1916,
- -2778, -466, -377, 2090, 3897, 5422, -2550, 2360,
- 3279, 8657, 990, -2128, 2592, -970, -2397, -269,
- 22742, 694, 310, -2433, 920, -690, 1478, 1370,
- -450, 445, -1379, -1244, 2374, 1400, -1040, -5692,
- -1700, -1630, -4068, -1193, -719, -2953, -3562, 264,
--13247, -4629, 5, 3245, -5724, 2449, 3190, -5375,
- -3560, -3834, 1271, 1568, -762, 2938, 782, -1390,
- 243, -466, 1376, 974, -1646, -1784, 249, -514,
--13543, 1904, 10778, -772, -155, 7838, -30, 3634,
- -473, -9100, -112, -3990, -840, 1495, -2346, -326,
- 3655, 1292, -292, -10972, 3431, -262, 171, -9775,
- -985, 578, 312, -2553, 3375, -8316, 1410, -1326,
- 2459, -3116, 1079, 7194, 2720, 1998, 2742, 4672,
- -1589, -8932, -124, -652, -72, 2409, -926, -3661,
- -3762, 14832, -1350, -2234, 1258, -1604, 169, 103,
- 1263, -400, -765, 144, 824, 855, -13344, -1629,
- 1977, 2995, -1964, -650, -219, -11607, -6062, -792,
- -1243, -1438, 1757, 1436, -3739, 812, -856, -9603,
- -2428, -11372, 3273, -2318, -8263, 1551, -2054, -3646,
- 3149, 2255, 594, -412, -3030, 1558, 694, -1211,
- 618, 3256, 6526, -1572, -9054, 6655, -3208, 3616,
- 2162, 3137, 4254, 4610, -10040, 1188, 335, -615,
- 640, -1990, -314, 6014, -2392, -2174, 343, 6730,
- -1320, 183, -97, -3566, 2988, -13343, -1573, -9070,
- 428, 2839, 6728, -1109, -1113, -1102, 5012, 1308,
- -3943, 3207, 764, -2928, 1144, -3044, 4033, 1846,
- 6460, -4165, 8509, 9824, 15708, -642, 748, 124,
- -406, 13033, 807, -299, 1319, 1499, -1206, -1102,
- -3129, 3795, 47, -2483, -2470, 2287, 4028, 1656,
- -364, -1712, -1568, -3940, -2770, -13688, 796, 3380,
- 363, 1673, 1160, -3934, 2884, -5060, 832, 4799,
- 364, -3030, -10596, -1805, -3256, -2492, -1831, 1088,
- 11108, 3236, 5128, 3052, 4486, 84, 2078, 200,
- -4071, 1713, 1539, 24597, -1019, 32, -48, 82,
- 81, 1171, -1261, -1783, -1693, 2194, 1714, -225,
- -1989, 402, 2611, -708, -15901, 222, -507, 12855,
- 1162, -1536, -2884, 1911, -1256, -926, -1875, -1448,
- -2730, 3059, -1231, 1680, 1824, 1288, -215, -9,
- 40, -957, 27662, -1844, -1927, -846, -1144, -439,
- -3507, -2844, -1880, 637, 1042, 237, 1007, -387,
--11913, -2584, -142, 624, -494, 1439, 2225, -13017,
- -1901, -1253, -1071, -7083, -2154, 814, 3867, 1130,
- -2611, -2260, 1548, -12389, -1018, 102, 1178, 1058,
--14863, 2020, 4094, -1259, -861, -886, -3119, 2638,
- 1725, -1364, -2086, 183, 507, -978, -3086, -14966,
- 759, -1341, -70, 8538, 2974, -140, 2509, -4460,
- 2724, -1372, 491, -6138, -345, -2170, -1187, -330,
--11090, 15657, -300, 2105, 496, -2093, -447, 2000,
- 3451, 1482, 758, 4142, 562, -4042, 1491, 3183,
- 1685, -2729, 1611, 11698, 14918, 25, 842, -2766,
- -667, -1564, -2619, 646, 1391, 862, -909, -2141,
- -589, 1468, -755, 1324, -765, 634, 195, -19622,
- -1006, -1161, 2434, -1808, 4168, 4108, -2580, -635,
- -2533, -2170, -3701, -1047, -363, 769, 5064, -8,
- -654, 2346, 752, 13736, -4056, 7, 5492, 7326,
- -4894, -3860, 3325, -3947, 4721, 5557, -3699, 194,
--12957, 1052, -1317, -2642, -2931, 1050, -3951, 2392,
- -9683, 2519, 2880, -3700, -1820, 831, 4370, -1177
-},
-
-.cb1616l0 = {
- -185, -20290, 476, -272, 31, -638, 806, -61,
- 220, 176, 178, -788, -441, -333, -360, -263,
- -116, -512, 9794, -727, 8904, 1192, -277, 756,
- -670, 795, -311, 240, -617, -675, -970, 756,
- 857, 529, -166, 674, 890, -522, 837, 79,
- -618, -1308, -13832, 744, 5422, 2688, 531, 398,
- 1500, -1965, -209, -346, 613, 2147, 10053, -1398,
- 189, -108, 471, -1202, 999, 178, 762, -601,
- 1116, 9468, -281, 763, -1204, -822, -20, -160,
- -806, 14720, -269, 143, -1362, -532, -788, -1532,
- -405, 85, -271, -4959, 276, -34, -28, -66,
- 112, -188, -582, -678, 128, 680, 982, 596,
- 12154, -10468, -167, -380, 734, -296, 282, -223,
- -86, -342, -812, 514, 387, -418, -364, -1216,
- 14, 373, 357, 10897, 11235, -714, 206, -618,
- -607, 596, 190, 726, 496, -300, 95, 1022,
- -153, 212, -540, 252, 281, 238, -234, 28,
- 24, 184, 32767, -627, 569, 323, 486, 544,
- -348, -589, -284, 238, 228, 475, 83, -7753,
- 182, 745, 400, -633, -207, 137, 382, 90,
- 78, 715, 448, 463, 937, 10203, -12047, -667,
- -370, -1516, -360, 94, 832, 1027, 1013, 92,
- -5446, 834, 302, 764, -94, -462, 8095, 1057,
- 308, -635, 308, -877, -946, -616, 51, 1090,
--13351, 490, -819, 15182, -384, 411, -546, -242,
- 460, -323, 76, 277, 1582, 900, -1119, 345,
- 1316, 1138, 2020, 1612, -148, 812, 1241, -10350,
- -9495, -965, -69, 1967, -168, -128, 1042, 447,
- 491, -133, -5083, -450, -164, 50, 326, 269,
- -283, 226, -40, -334, -110, 60, -47, 169,
- 9166, 1188, -942, -14, 2112, -230, 634, -741,
- -214, -336, -606, 3102, 59, 216, 1805, -1176,
- 211, -8, 564, 156, -261, 300, 597, -21842,
- 66, -232, -506, -1126, 1057, 603, 1448, -391,
- 249, -9445, -10240, 694, 167, -1158, -645, -385,
- -209, 330, 519, -345, -600, 192, 78, -229,
- 208, -9053, -383, 10646, -264, 84, 295, -148,
- 87, 1292, 257, 1080, -564, -2395, -1200, -484,
- -48, -513, -383, -11, -516, -17356, -1172, -218,
- 124, -327, 31, 328, -80, 231, 58, -951,
- 560, -501, -392, 30528, -56, 382, -515, -50,
- -155, 338, 0, -414, -899, 95, 11, 378,
- -350, 459, 673, 76, 86, 379, 32222, 143,
- -48, 425, -394, -60, -348, 450, -489, 220,
- 56, 1129, -125, 322, 168, -16, 322, -293,
- 294, -38, 328, 141, 692, -82, -160, -32768,
- -140, -1543, 1079, 1052, -924, -569, 168, -1782,
- 815, 706, -1318, -3436, 2860, 10922, 236, 10311,
- 882, -1911, 11, 1638, -189, 245, -858, 11060,
- -826, 696, 224, 1707, 1766, 472, 10832, -265,
- -161, 163, 478, -258, -284, -86, 496, 425,
- -71, -10344, -141, 425, -1457, 1145, -63, -713,
- -583, -327, 628, 368, -18, -1746, -525, -338,
- -110, -359, 92, -233, -21328, 460, -275, -98,
- -58, 51, 208, 56, -1145, -51, -242, 65,
- 76, 214, 141, 28, -86, 26, 925, 193,
- 9980, -326, 11342, 176, -534, -303, 130, -1575,
- 189, -496, -699, 381, 411, 644, 229, -147,
- 694, -1998, 523, -1576, 8028, -10385, -1924, 1174,
- 608, 2402, 575, -1753, 437, -816, 1267, 147,
- 1448, -614, 865, 1076, -156, 5000, 2020, 2021,
- 10283, -460, -2381, -3226, -3991, 4904, -284, 105,
- -268, 1049, 203, -646, 732, 6490, -128, 932,
- 10, -866, 74, -64, 834, 204, 159, -162,
- -170, -110, -28908, 52, -512, -72, 327, 615,
- 534, -484, 131, -262, 31, -407, 284, 33,
- 11118, -170, 318, 12848, -1126, -659, 500, 310,
- -403, -234, 237, -544, 1232, -243, -1178, -965,
- -117, 108, -1304, 11728, -2254, 1231, -1077, -136,
- -632, -103, -256, -1644, -300, 1680, -1175, -956,
- -43, 1718, 175, 144, 275, -802, -223, 1116,
- 321, -871, -1174, -1175, 1008, 255, 31172, 28,
- -621, -222, -12473, -10995, -712, 247, 1762, 418,
- -181, 90, 92, -406, -435, -105, -596, 2262,
- -116, -1574, -3402, 6796, 7944, 973, -2661, 2260,
- 621, -6984, 382, -1375, -2604, 1550, -1453, 1133,
- 966, 403, 284, -72, -36, 174, 457, -90,
- 38, -437, -476, -370, 469, 32767, -267, 350,
- 694, -169, -782, 2110, -620, -782, -669, -6478,
- 10550, -3294, 485, 177, 553, -3232, 1628, 2335,
- -870, -360, -1112, 2197, -474, -5113, 3346, 878,
- 566, -3823, -1175, 357, 10509, 1077, -514, 1012,
- 38, 59, 669, 654, 349, -1046, 355, 192,
- 57, 95, 11869, -702, 10201, 204, 45, -608,
- -444, 921, -1070, -316, 1286, -2566, 2026, -127,
- -79, -954, 93, -1288, -10024, 693, 8820, -366,
- -84, -6378, 1682, -627, 386, 254, 503, -152,
- -336, 38, -341, 373, -85, 1088, -1707, 119,
- -242, 242, -326, -162, 109, 70, -114, -831,
- -279, -32768, 62, 58, 214, 136, 194, -103,
--10047, -610, 91, -310, 12059, 346, -656, 986,
- 478, 364, 1777, -173, -663, -103, 1011, -373,
- 200, 1632, -13098, 3651, 418, 478, 68, -217,
- 169, 78, -1176, -1191, -1664, -328, 152, -1053,
- 547, 527, -10435, -176, 11131, -137, -36, 1062,
- 33, 71, -730, 2080, 2061, -372, -637, -84,
- 744, 109, -357, 550, 309, -239, -134, 135,
--20461, -177, -690, -488, -36, -415, 275, 64,
- 378, 11250, -802, -569, -200, 1499, 13103, -1090,
- -175, 189, -162, -751, 1052, -949, -98, 1249,
- 479, -1304, 3293, 771, 1642, -381, 1423, 2258,
- 1184, 4806, -10950, -3873, 348, -815, -5315, -3306,
- -3307, 2337, 776, -125, -48, -435, -155, -30,
- 294, 116, 96, -47, 1022, -391, -183, 252,
- 826, -32, 293, -1369, 18310, -146, 239, -266,
- 34, -154, -704, -498, -135, 228, -563, -210,
- -158, -514, -201, -571, -341, -428, 74, -152,
- 297, -162, -644, -216, -252, -13810, 705, 464,
- 21097, 74, -169, 792, 12, 131, 320, -398,
- -446, 44, -362, 388, -22, -13, -209, 1205,
- 9341, 590, -683, -351, 177, -1618, 495, 14,
- -319, 755, 11352, 249, -989, 1574, -922, -364,
- 366, -10348, 337, -558, -124, 12056, 102, 802,
- -548, -254, 1532, 7, -282, -459, -839, 171,
- -4445, -1610, -1515, -37, 970, 306, -881, -238,
- -154, -58, 27, 435, 166, 571, 225, -844,
- -9967, -192, -874, -459, -1283, -1431, 1552, -38,
- -686, -207, 709, 11982, -383, 1922, -92, -60,
- 708, -900, 867, 39, 1470, 517, -182, -456,
- 90, 1026, -192, 9988, 942, 48, 789, 981,
- 74, -692, -1283, 1239, 1625, -1121, -286, -1115,
- 294, 13228, 980, 312, -745, 11711, 1055, 1052,
- -907, 201, 688, 364, 1171, 96, -591, -981,
- -246, 875, -352, 677, 881, -397, 12890, 10,
- 0, 412, 76, 464, 275, -721, -28, -197,
- 104, -238, -372, -272, 490, 1426, 963, -13232,
- -1190, 790, 161, -321, 1138, 646, 359, -183,
- -659, -129, 348, -22703, 1016, -147, 26, -80
-},
-
-.cb1616l1 = {
- 292, 310, -255, 305, 69, 25001, -16, -668,
- 210, 17, -12, 45, -758, -76, -544, -882,
- 61, 26, -1682, -8820, 154, -11775, 64, 472,
- -464, 245, 478, -1560, 869, 2192, 98, 645,
- -95, -9369, -594, -635, -11132, 900, 1606, -904,
- 841, 2570, -1464, 961, 1056, 669, 461, 3307,
- -157, -644, 121, -694, 170, 116, 393, 1507,
- -233, -654, -162, 108, 98, 17471, 347, -11344,
- -701, -284, -246, -337, -1903, 14, 9865, 453,
--11318, -3662, 2373, 1106, -1424, -1709, -2743, -860,
- 11008, 1579, -38, -1381, 467, -487, -1306, 369,
- 426, -424, 128, 1078, 1085, 683, 12552, 792,
- -184, -278, 186, 2006, 363, 310, -75, 862,
- 377, 490, -256, -1568, -124, -10785, -1456, -524,
- -1259, 517, -1844, 914, 769, 945, 739, -1053,
- -691, 177, 96, -1070, -162, -707, -594, -9885,
- 103, 452, -734, -6774, -753, 192, 88, -292,
- 201, -532, 231, -281, -691, -1232, -1768, -753,
- 369, 1556, -139, 668, 941, 264, 10372, 9740,
- 976, 2519, -88, 941, 446, -130, 2131, -631,
- 325, 285, 176, -236, -634, -91, 112, 32767,
- -233, -726, 156, 881, -217, -497, -236, -1106,
- 283, 164, -328, -629, -27442, -17, 176, -338,
- -192, 538, -773, 634, -180, 872, -190, -530,
- 586, 6994, 3060, -336, 736, -1268, -1142, -69,
- -1359, -1047, -975, -86, 12489, 1162, -509, -478,
- 717, -514, -502, -1755, 11064, 7668, 340, 230,
- -127, 1490, -63, 680, -297, 125, 1700, 2505,
- 3, -2043, 255, 1547, 569, -2483, 733, -896,
- 881, 4780, 1544, -13442, 1328, 1937, -4448, -384,
- 749, 173, 7350, 156, -144, 52, -527, -34,
- -3, -173, 118, -528, -75, 39, 42, -874,
--14636, 474, -413, -106, -115, -431, 54, 722,
- 156, -468, 369, 149, -68, -791, 1318, 2150,
- 69, 454, 19032, 3, 111, -40, 349, 88,
- 385, -54, -395, -224, -519, 0, -219, 179,
- -253, -11379, 11005, 1857, -126, -248, 304, -616,
- 351, 324, 500, 1494, -1390, 2349, -1257, -1114,
- -213, 8156, -2066, 9746, 763, -848, 349, -7,
- 723, -966, 469, 91, -252, 1336, 579, 1816,
- 1372, -941, 364, 276, -33, 7, -425, -433,
- -21, 546, -671, -31271, -926, 101, 147, 302,
- -552, 224, 568, -2386, 519, -458, 13171, -1464,
- 1161, 639, -10, -877, 331, 3372, -72, 5158,
- -706, 906, 2668, 1008, -2732, 3264, 105, 630,
- 673, -1948, -196, -13130, 1726, 737, 4829, 93,
- 654, 2175, 3858, -5, 245, -471, 369, 5435,
- 356, -12934, 61, 1984, 975, 706, -2454, -642,
- -93, -780, -443, -1487, -460, 1112, 385, 309,
--10268, 197, -1692, -1870, 50, -1934, 5380, -1193,
- 775, -493, -992, -557, 2952, 408, 4616, -1341,
- 10774, 5305, 854, 3031, 67, 617, 2436, -2072,
- -1469, 804, -578, 243, 264, 9150, 200, 10753,
- -350, 182, -52, -406, 508, -761, -161, -1142,
- 25, 484, 127, 126, 477, -341, 110, 371,
- 32767, 1090, 678, 175, 146, 1020, -897, 878,
- -137, -507, -534, 658, 678, 505, -753, -207,
- 391, 60, -23279, -772, -1323, -1578, -3, 196,
- -749, 220, -482, -785, 456, 38, 1034, -579,
- -58, -1539, 421, -746, 238, 1531, 21290, 586,
- -441, -276, 1512, 553, -1407, -276, 60, -1068,
- 299, 650, -25, 12590, 2058, 925, -295, -1744,
- 5152, 4935, -419, 272, -383, -665, -194, -255,
- 574, -267, 541, 1031, -282, -648, 622, -1464,
- -28, -269, -533, -80, -476, 282, -336, 125,
- 104, 464, -8948, 849, 171, 1518, -296, 51,
- -27, 3097, -5103, -412, -494, -194, -713, -1277,
- 102, 1740, -445, 3432, 1180, 6404, -10908, -970,
- 31, 142, -242, -79, -78, -76, 124, 1031,
- 83, -55, 1522, -613, -32768, -394, 1306, 287,
- 701, -4725, -1085, 415, -122, -538, -675, 82,
- 116, -728, -99, 500, 659, -329, 292, -106,
- 9243, -340, -11933, -498, 341, -825, -401, -402,
- 142, -13, -309, -722, 141, 0, -681, 494,
- 671, -1210, 1466, -1335, 11743, -280, 1616, -11481,
- 52, 317, 902, -653, -967, -494, -162, -685,
- -438, 756, 81, -207, 577, -7476, -353, 918,
- -31, -107, 181, 523, -46, -752, 373, -908,
- -1808, -916, 632, 1508, -35, -6943, 64, 13072,
- -655, 163, 1221, -1655, -2568, -446, -401, 470,
- -622, -944, 3744, -458, 203, 125, 238, 5196,
- 21, 12193, 1095, 1091, -787, -1157, -980, -1154,
- 7707, -29, 106, 1226, 696, -974, -379, -537,
- 56, 95, -477, -528, -11245, -1014, 140, 380,
- 89, 540, 84, -619, -322, -572, -240, -26,
- 727, 310, 43, -790, -31, -24318, 110, 618,
- 44, -108, 89, -191, -33, -201, -490, 43,
- -136, 1366, -2, 162, -832, 469, -140, -278,
- 600, -15775, -1699, 184, 1825, 728, -1803, -876,
- 152, 60, -813, 3063, -929, 972, -282, 718,
- 8426, -888, 1383, -664, 571, 958, 982, 236,
- -548, 66, 1898, -274, 10715, -1693, 79, -1254,
- 296, 609, 682, -1074, 272, 157, -18972, 377,
- -12, 438, 536, -672, 292, 719, -464, 1106,
- -296, -812, 6, -334, 67, 678, 382, 678,
- 301, -22165, 184, 80, -671, -86, 139, -298,
- 416, -610, 1057, 15, -230, 376, -768, 643,
- 58, 27, 178, -742, 60, -500, 485, -19923,
- -1016, 717, 1126, 287, 2171, -388, 1453, -21,
- -268, -1555, -263, 713, 1709, -1103, -10699, 1788,
- -8, -501, -892, 11476, -2006, 466, 8070, -286,
- 163, 35, 494, 76, 1428, -2249, 100, -1542,
- 319, -214, -701, 10130, -294, -11962, -656, 227,
- -512, -1014, 213, -600, -720, 63, -180, 1286,
- 1063, -9671, -1056, 1269, 1484, 20, 790, 29,
- -9906, -373, 608, 361, -659, 43, -1034, -96,
- -219, -65, 392, -19615, -464, 212, 820, -182,
- -227, 463, 301, 642, -219, 386, -1170, 108,
- -5583, 422, -507, 530, -1058, -131, 20, -14487,
- 101, -14, -415, 32, -1133, -917, 944, -832,
- 580, 2509, -959, 470, 1184, 432, -1238, 193,
--13382, 2329, 1993, 1035, 80, 3139, -553, 1683,
- 390, 1480, 642, 564, -11173, 422, -984, -559,
- -686, 168, -777, -810, -1278, -427, -96, 1691,
- 29172, -435, -50, -968, 221, 685, 52, -373,
- 525, -563, 350, 528, 305, 705, 313, 612,
- -254, -220, -1638, -156, 24, 109, -893, -697,
- 245, 2579, 667, -142, 12315, -694, 3799, 5,
- -438, -473, -426, 59, -5381, -56, 200, -280,
- -276, 96, 435, 729, 336, 123, -714, -372,
--12609, -12053, -238, 223, -242, 230, 663, -645,
- 98, 515, 3, 724, 510, -48, 1090, -173,
- -5024, 536, 635, -143, 702, 172, -196, 164,
- 190, -152, -180, 238, -142, -329, 191, -296,
- -416, 11775, -496, -95, 392, 994, -584, -925,
- -963, 286, -458, 3104, -1990, 968, -1430, 998,
- -407, 28485, 436, 42, 378, -210, 148, -149,
- -532, 94, -628, 186, -186, -274, 250, -316
-},
-
-.cb1616s0 = {
- 5604, 1491, -2064, 1321, -2846, -3007, -1899, -896,
- 556, 1969, -2225, 18515, 4156, 1333, 3489, -2168,
- 1897, -1440, -1514, -13837, 1017, 4797, 453, -2101,
- -6822, 923, 185, 754, -201, -4151, 126, -793,
- -437, 2474, 4286, -6405, 4007, -1644, -757, -13106,
- 2460, -1874, -1867, -1099, -5146, 2945, 2162, -4427,
- 1692, 763, 1756, -821, 66, -348, 2001, 702,
- 1046, -1365, -570, 1073, 32655, -9, 450, -761,
- 908, -200, -572, -1306, 2589, 2406, 1926, 1772,
- 11042, -1989, 3914, -1192, 1817, -11710, 2985, -2942,
- 15684, 1919, -667, -1267, 5212, 444, 864, -3844,
- 438, -2382, 974, 983, -887, -822, 185, 245,
- -3192, 1030, 1441, -28152, -2616, -380, 300, 1990,
- -94, -999, 285, 553, 2107, 960, -859, 1001,
- -1632, 2208, -1302, 1331, -3956, 10593, -1931, -4486,
- 9376, -6587, -463, -3605, 2460, 1306, 2, 1987,
- 1643, -552, 1327, 1124, -581, 1347, 650, -29514,
- 278, 1062, 1459, 951, 2416, 396, -594, 930,
- 434, 3308, -2816, 5466, 4831, -2869, -68, -894,
- 58, -13036, 210, -1940, -2524, 1139, 2044, -32,
- 969, 2187, 516, 581, 8185, 2080, 176, -708,
- 1529, 1132, -675, -1384, -10949, 1174, -5245, 580,
- 7490, 3258, 4314, 2706, -13676, -1735, 1937, 577,
- -108, 2676, 612, -966, -966, 3255, 1401, 1443,
- -1850, -252, 9270, 5037, -1492, -1957, -2134, 1198,
- 3470, 10482, -468, -671, -1655, -955, 3248, 3360,
- 448, -1854, -25145, -2771, -3318, 561, -672, 1791,
- 2194, -598, 1673, -420, 547, 122, -160, -172,
- 1686, -397, 1187, 11, -879, -58, 323, 180,
- -2588, -2139, -1794, -2924, 999, -26969, -1280, -1401,
- -770, 6159, -4449, -4174, 5270, -4813, 4139, -2023,
- 2694, 2884, 3418, -5948, 3118, -1176, 4691, 8566,
--32768, -681, -553, -216, -216, -931, -507, 579,
- -932, -740, 349, 81, 2120, -1222, 564, -1576,
- 1241, 159, 2579, 3236, 19205, -744, -1727, -1803,
- 1247, -575, -261, 261, 540, -255, -60, -1428,
--14184, -5194, 863, 997, 1043, -828, 466, -12553,
- 2106, 56, -566, 1142, 401, 1360, 2322, 629,
- 937, 2954, -10086, -12, 2554, -5760, 523, -15184,
- 636, 156, 165, -2638, 1134, 658, 4398, -1385,
- -1924, 1179, 3222, -908, -1153, 18082, 1011, 1948,
- -1007, 352, -172, -6446, -22, -228, -264, 73,
- 76, 2229, -1349, 6103, -11588, 576, 3374, -1616,
- 7904, 3146, 984, 1056, -1626, 3113, -3674, 203,
- -452, -938, 2074, 2409, -1228, -8186, -2766, 11098,
- 1598, -8658, -735, 556, 1610, -7419, -5267, 1158,
- 2841, 4497, 7551, -2066, 1105, 761, 2549, -1764,
- 2870, 3889, -1478, 1912, 2504, -1417, 963, -14602,
- 579, 28, -2953, 1589, 3962, -1372, -3304, 566,
- 2687, 9700, -2464, -13110, 3005, -772, -3775, -138,
- -4244, 5031, 2523, -2883, 582, -446, -274, 3311,
- -157, -784, -948, -292, 3085, -781, 954, -2133,
- -6693, 13909, -2236, 416, -2589, -3194, 668, -1988,
- -2234, 2365, 1034, 1201, -100, 1688, 372, 156,
- -254, 931, 576, -4680, 566, -1823, 294, 1645,
- 27678, -1353, -1230, 1744, 570, 1679, 608, -35,
- -7150, -4383, -11992, -2910, -2096, 512, 1838, 3129,
- -410, -2306, -551, -3904, 4140, -12782, -1743, -106,
- -4190, -5554, 12975, -573, -3532, -4050, 15, 1307,
- 62, 1643, -1988, 5774, 2064, 4734, 1009, 2038,
- -2794, -2704, 2275, -279, -1588, -910, 31315, 1249,
- -1642, 78, 164, -260, -878, 698, 1189, 159,
- -6137, -1994, 775, 3484, 1635, 1121, 4391, -5883,
--11300, 3722, -422, -2180, -3206, -3181, -1490, 291,
- 1326, 399, 1952, -8405, 2240, 175, 3541, 4258,
- 1518, -781, 1105, 498, -348, 771, 15918, 120,
- 379, -2036, -3723, 10948, -1827, 3220, 40, 210,
- -294, -813, -2349, -707, 967, 953, 2625, -13614,
- -1519, 9454, 11606, -903, 817, 6237, -8878, -160,
- -1768, 444, -2812, -1697, -1010, -964, 1846, 2997,
- 2633, -1924, 501, -1464, 2402, -986, -1143, 527,
- 1187, -929, 20923, -563, 785, -486, -940, 1625,
- -796, -697, 348, -428, 1451, 1087, -2252, -2481,
- 939, 890, -2508, -1357, -1868, 1395, -6386, -21986,
- 2574, -384, -324, 7752, 2996, -641, -7903, -5745,
- -4226, -4178, -4394, 9307, 3906, -227, -496, 4556,
- 1099, -838, -2546, 1190, 9937, 11057, 3846, -156,
- 433, -2873, -1769, 36, 3188, 4490, 4369, 4714,
- -4681, -2804, -1525, -947, -5064, -4180, -1348, -1404,
- -1097, -3922, -1088, -444, -13636, -1547, 1685, -1625,
- -8494, 2492, -72, 9893, 2470, 705, 105, 5609,
- -5403, 846, 90, -688, 1184, 6286, -253, -1610,
- 3348, -2082, 8838, -2453, -1315, -1235, -719, -4607,
- -2138, -5522, -10466, 1900, 1541, -2688, 729, 368,
- -8845, 1282, 438, -2532, -2328, 4833, -6145, 4037,
- 3584, 7965, -1495, 6999, -5037, -1364, 7095, 4253,
- 2711, -8336, 3946, -1347, 192, -820, -328, -1152,
- 1554, 869, 5053, 9707, -5888, -4294, -3858, -3344,
- 8344, -644, 1750, -1796, -149, -3706, -14823, 656,
- -1487, -2466, 640, -2286, -2902, 2906, 44, 211,
- -336, 29976, -298, 2092, -688, 1857, 1807, -1705,
- 3211, 425, -1046, 128, 1191, -1966, -726, -3040,
- -3632, 1212, 2986, 5266, 1086, 3624, 3068, 422,
- 989, 24479, 3791, -2229, -3713, -2379, -1370, -1799,
- 2742, -3259, -4973, -626, 2287, 5655, 663, -918,
- 13266, 7762, -1131, 2490, -3123, 2869, -846, -2828,
- 119, 14540, 4588, -2784, -3713, -2547, 3698, 3189,
- 3372, -5436, 856, 4382, 4124, 3406, -336, -911,
- -137, 4268, -4436, 1566, 1169, -3020, 13980, -162,
- -7226, -2550, -946, -2408, -1056, -587, -273, -932,
- -219, -8021, -1086, -2587, 3852, 1235, -22, 222,
- -1100, -1594, 137, -1985, 10225, 4998, -348, -450,
- 6651, -2217, -7705, 2508, 10061, -4512, -2262, 6156,
- 2962, 150, -2456, 1089, -927, -609, -3130, -1682,
- -1215, -9251, -130, -3776, -309, -13872, -276, -6922,
- -82, 2660, -1255, -6562, 2640, 2646, 422, -84,
- -6020, -11551, -1710, -3462, -2666, 12510, 3145, -218,
- 2956, 447, 30, 2268, -2410, -1400, 660, 431,
- 3068, 258, -2862, 3919, 2693, -744, 3070, -2179,
- -1192, -932, -2095, -279, 2045, -8205, 15263, -4415,
- 2116, 4047, 10308, 3110, 1368, -1547, 10919, 988,
- -81, -907, -1728, -1052, -3539, -4769, -2576, -1038,
- 9255, 152, 431, 2455, -1544, 1880, -312, 2724,
--13336, -4197, -1199, 709, -695, -1687, 442, -2564,
- -1626, -1888, 1870, 3539, -2922, -3506, -7890, -5486,
- -1640, 2178, 2173, -3200, -4626, 1116, 13161, -5221,
- -852, -1047, -3328, -3975, -4441, 2870, -1458, 5664,
- -28, 3853, 1809, 2721, 658, -15262, 3611, 3223,
- 595, 44, -5327, -2486, -1806, 606, -2474, -1236,
- 983, 1741, -8390, 1948, 1875, -1806, -6294, -814,
- -747, 2209, -1332, 2058, -1326, 5808, 1113, -10765,
- -584, 4038, 1412, -3356, 24, -12826, -4322, -2287,
--10793, 3008, -6903, -1273, 1590, -608, -514, -309,
- -144, -2024, 1822, 4375, 1122, -631, -76, -595,
- 192, -11323, 8168, 10180, -646, 2478, 4516, 1095,
- 94, 6, 1251, -658, 2620, 626, 3078, 727,
- 7769, 966, -3593, -6990, -2358, 1022, 1288, 2733,
- -259, -291, 2482, 297, -1268, 10338, 739, -1862
-},
-
-.cb1616s1 = {
--12873, -2429, 6659, 4401, -2250, 1684, 1508, 1780,
- -1081, -10, -6012, 895, -2373, -1263, 125, 1448,
- 4744, 1556, -7267, 2354, -11368, 1155, -7699, -1424,
- -914, -591, 2472, 538, 1431, 953, 5, -3066,
- -1063, 3, 406, 979, 922, -668, 1633, 2,
- 649, -139, 964, 860, -18807, 1944, 2183, -1358,
- 1395, -1167, 5369, -3525, 735, -2698, 10556, -1137,
- -3979, 1383, -1997, 5995, 6465, 2310, 1781, -311,
- 3376, 7199, -2745, -1656, -5702, 3180, 3017, -5673,
- -712, -8902, 2058, -570, 170, 2276, 3869, -9332,
- -7965, 1130, 2111, 5638, -1507, 2944, 1574, -919,
- -1459, -970, 11093, 544, -2952, -146, -4684, -303,
- -528, -1199, -890, -2720, -1665, -10952, 373, 1657,
- 1960, -1386, 299, -4356, -4527, 8948, 7378, 1580,
- 1301, -6057, 7650, -7399, 4646, -1768, 2756, -263,
- -286, -334, 1369, -786, -3760, 824, -13524, -5099,
- -1693, -347, -1821, 1992, 3462, 1421, 4900, -462,
--13331, -1617, -2350, 4083, -8721, -5880, 4900, 2912,
- 235, 10369, -1340, 776, -2598, 14344, -3805, -568,
- -3788, 3591, -394, -1077, 3908, 6080, 1953, -1454,
- -1013, 507, 10097, 3396, -4662, -763, 2506, 1486,
- 3088, 580, -86, 1117, 1606, -3454, -10782, 4870,
- 6170, 4020, -5675, 6848, 439, -8765, 3877, 6250,
- 734, 3245, -874, -4312, -879, -4368, -1287, 3212,
- -2130, -1435, 1619, -280, -3082, -1070, -18921, 940,
- -2428, -1548, -1142, -271, 193, -240, -890, 918,
- -4350, -5042, -8994, 5060, -6495, 3455, -259, 892,
- -1290, 1348, -1049, -12681, -49, 18286, 75, 791,
- 1830, -4116, 10240, -12, -459, 2477, -2582, -3344,
- -1598, 982, -324, -48, -4229, -8476, 11120, 100,
- -6238, 1164, 2369, -2052, 247, 626, 2213, 2279,
- -2627, 289, -471, -1136, -1818, 15413, 579, 1034,
- -6835, -8645, -12667, 758, -932, -4398, 565, 458,
- -2024, -4050, -3100, 1897, 1324, 3191, 1876, 7660,
- 385, -1066, -1539, -1317, -2632, 766, 63, 389,
- -189, 1136, -653, 802, 755, 70, -29812, 640,
--11953, 10901, 2078, -529, 10373, 2509, -2776, -104,
- -2232, 174, -837, 158, 1507, 1963, -273, 1534,
- 1084, 8469, 2568, 12662, -2276, 2808, 2052, -7430,
- 434, 3777, 991, 664, 2724, 1631, -3632, 2099,
- -582, 4140, 757, 11248, 540, -1425, -10204, 1604,
- 600, -2034, -1060, 977, 1843, 3831, -933, -816,
- 2975, -6413, 1589, -915, -696, 2155, -556, -17893,
- 3348, -1239, 1014, -2539, 1588, -320, 2402, -1485,
- -8062, -1046, -1458, 200, 1323, 357, -3752, 2836,
- 5774, -11638, -913, -648, 1676, 246, -1277, -1065,
- 2334, 14911, 228, 880, -2172, 3072, -2520, 1445,
- 1442, 2568, -1254, 730, -1950, -192, 12003, -1587,
- 2558, 714, 33, 4324, -4642, -231, -279, -255,
- 17824, 1292, 3530, -766, -64, 245, 1677, 1716,
- 2507, -3594, -3532, 3000, 1996, -5342, -1868, -5642,
- -21, 1132, -1202, 1104, -6543, 1242, 457, -1711,
--32768, 49, -458, 295, 858, 2043, 1268, -1257,
- -346, 793, 554, 1260, -1082, 985, -1453, 1704,
- 2431, -2858, 1466, -5424, -8870, 4714, -1539, 5767,
- 110, -2568, -1482, -348, -11580, -2838, 1213, -599,
- -1591, -3472, -6907, 6191, 3928, 4708, 1326, -1510,
- 6322, 3849, -4112, 7689, 5976, -3298, 372, -5450,
- -2208, 6564, -6915, 911, 4216, 1682, -739, -2146,
- 203, 350, -816, 351, -3386, -3016, -15045, -10824,
- -553, -4969, 138, 256, 1672, -1840, 2851, 15838,
- 2934, 1871, -600, -3293, -845, -2696, 1463, -1075,
- 720, -1177, -1538, 2415, 7315, -484, 1082, 962,
- 766, -845, -10687, -5932, -4410, 3840, 362, 194,
- -4576, 10209, -3548, -127, -1202, 246, -734, 770,
- 311, -3126, 772, -2422, -1141, -12330, 960, 1567,
- 2816, 80, -4414, -778, 665, 2308, -420, -180,
- -1242, -423, 12138, 113, -1477, 2899, 214, 348,
- -927, -764, 26, -1127, -2288, -32768, 1302, 394,
- 646, -453, -946, -838, 1649, -2292, 1182, -1558,
- -6413, -265, -1942, -3467, 1863, -3526, 3446, -863,
- 886, 202, -202, 15706, 2226, 1763, 894, 936,
- 16191, -693, 1682, 6678, 1742, 1365, 700, -1765,
- -803, 299, -2194, 1259, 689, 1670, -635, 28,
- 11890, -14, -878, -5439, 103, 11124, 528, 1179,
- -62, 868, -664, 749, -1128, 1429, -485, 1920,
- -866, 1176, 1051, 379, -29470, 2354, -252, -1648,
- -412, -804, 1339, -383, -812, 959, 893, -1741,
- 1462, -1868, 470, 2112, -1889, -2236, -1668, -755,
- -2562, 1354, 6183, -10964, 5651, -1062, 2550, -6225,
- -194, 1687, -782, 1568, -85, 10, -8, 1128,
- -521, -1090, -1933, -3441, -2698, 3049, -5822, 20847,
- 710, 789, -1872, 1082, -1242, 4152, 1624, 10795,
- -2149, -134, 1087, 900, -7943, 5178, -3429, -11622,
- -3617, -7444, -824, 3462, -579, -830, 1010, -3301,
- 12202, -5446, -1763, 340, -744, -509, 554, 1140,
- 12266, -1328, 4652, 992, -1931, -708, 1074, 2762,
- 2931, -414, -217, 10166, -4167, -903, 660, 1000,
- 27, -1037, -1532, 1308, 8655, 9087, -2998, 9928,
- -3722, -556, 4812, 3062, 600, 1281, 3879, 114,
- -5404, 1869, 2174, 2083, -11631, -301, -3609, 2443,
- 2300, 4863, -838, -29, 2166, 1319, 2110, 1387,
- -741, -1225, -1729, -13536, -7376, -1520, 619, -4919,
- 2517, -4338, -1650, 475, 456, 4372, 792, 3224,
- 1963, -547, -2071, 2142, -254, 1549, -6846, 2430,
- -96, 19844, 595, 1197, -1367, 2019, 2014, -1547,
- -3775, -1186, -9690, -394, -4106, -1728, -1036, 2945,
- 509, 14242, -1893, -2494, -3004, 458, -1753, 2628,
- 9790, 3450, -1652, -322, 8263, 3952, -2156, -2110,
- -442, 1256, 1561, -4913, -3452, 74, 3051, 8907,
- -3376, -96, 16654, 557, 520, -446, -2520, -1712,
- 2151, -2423, 3761, -3507, 487, 2103, 777, -416,
- 509, 468, 3629, -3155, 11460, 2106, -2191, -1014,
- 1154, 9317, 704, -282, 3098, 2722, 84, 150,
- -5922, 3063, 8373, -11896, -1157, -2286, -1781, 7331,
- 1331, -334, -974, -1653, 752, -1970, -89, -3470,
- 2418, -1334, 3615, 12770, -116, 1965, -1643, 1480,
- -2225, -10686, -1174, 530, -972, -933, 719, 722,
- 1530, -317, 105, -14155, 2569, 4506, -8502, -681,
- -1544, -542, -2814, -1161, -629, -1776, -3540, -1366,
- -3681, 1838, -1630, -703, 12613, -12335, -2020, 2173,
- 27, 315, 4766, 4590, -1603, -68, 1154, -2940,
- 1198, 7884, 2502, -586, 440, -5124, -2454, -2597,
- -826, 7401, 2803, 4552, -3212, 2966, -5567, 588,
- 2216, 7444, -2633, -5922, 434, 3423, 4084, 2296,
- 13258, 2070, -4624, -1226, 166, -367, -527, 1110,
- -1407, -150, 140, 584, -373, -2649, 862, 500,
- 3292, -3506, -679, -20109, 1775, -726, 3378, 754,
- -1962, -5764, -1338, -3628, -691, 4554, -1890, -6021,
- -6566, 2590, 262, 2509, 257, -4386, -2480, 6352,
- -2026, 1234, -399, 22808, -2221, -626, -714, -339,
- -1196, -455, -80, 713, 1662, 474, -2324, -527,
- 4101, -10526, -4617, 10492, -1143, 805, 1360, 3796,
- 942, 684, 2596, 1313, 1589, -570, 5476, -27,
- 9220, -1493, 2631, -6726, -2976, -14295, 137, -734,
- -2015, 658, 323, 83, 2539, -1230, 1714, -2080,
- 658, -18803, 2978, 996, -3374, -28, -1335, 150,
- 2154, 1069, -852, 293, 535, -1004, -993, -3692
-},
-
-.cb1616m0 = {
--16476, -11442, -305, -196, -767, -2167, -1, 378,
- -2200, 22, 2405, 944, -1786, -806, 669, 952,
- 10435, -2752, -1625, 1060, -12314, 1283, 234, -2405,
- 627, 798, -1058, 311, -2794, -2715, 73, -214,
- 813, -2749, 10732, -445, -12147, -2507, -1972, 1652,
- -1920, 215, 298, 1106, 826, -7445, 69, -1679,
- -675, 1249, 1444, -1109, -48, -1452, -2368, 3034,
- -492, 13068, 311, -3446, 326, -1426, 2384, -2146,
- 2916, 8957, -196, 2212, 447, 1775, 2607, -11962,
- -278, 4335, -1743, 135, 212, -41, -92, 164,
- -11, -504, 828, -519, -834, 251, 1919, 762,
- 24917, -180, -132, -330, 138, 225, 1038, 3,
- 32138, -388, 208, -638, -1338, -165, 200, -230,
- 225, -777, -2270, 8198, 583, 3946, -1534, 1666,
- -1032, 11384, 202, 30, 2758, -505, -2815, 1265,
- 64, -17, -360, 636, 134, 502, 259, 872,
--28148, -1046, -348, -86, -739, 55, 448, 168,
- -656, 1094, -1074, 4552, -834, 2296, 2356, -572,
- -1917, 10979, 3127, -52, -9969, -527, 1994, -1626,
- 1041, 3310, -2319, 2232, -11444, -2400, -1788, -1254,
- 5265, 3198, 7088, 4522, 1292, -191, -15886, 2787,
- 22, -1610, 184, 380, 521, 336, -158, 877,
- 468, 6515, -756, -5484, 100, -464, 9244, -2726,
- -1644, -2741, -5362, -1635, 894, -1849, 10118, -3264,
- -4472, 1255, -3571, -437, -1050, 1505, -11178, -193,
--11513, -24, 719, 212, -1999, -725, 502, -1164,
- -1060, -618, -91, -738, 740, -2254, -4635, 2700,
- 95, -853, 1093, -11620, -968, 9492, -25, -664,
- 367, 1105, 5501, -112, 7516, 10286, 821, -484,
- 204, 1425, -3491, -1234, -4240, 3807, 2877, 1824,
- 423, 466, -428, -845, -86, 13276, 8436, -690,
- -688, 574, -2874, -552, 4540, 926, -5443, 629,
- -395, 2090, -17468, 335, 2419, 1275, -3750, -1589,
- 470, -1735, 330, 2532, 1094, -6218, -884, -236,
- -9678, -9945, -447, 542, -728, -1922, 108, -2193,
- -946, 3270, 2121, 2624, 1010, -10742, -102, 2813,
--13070, 1523, -1532, -1291, 420, -1999, 262, -1194,
- -4226, -1450, -275, 83, 1168, 1590, -1517, -426,
- -1424, 152, 676, 11463, 824, -2092, -1106, -11502,
- -2327, -278, 2597, -11, 793, -118, 393, 580,
- -499, -743, -77, -427, -408, -692, -29195, -247,
- -2014, -922, 97, 581, 5469, -1419, -698, 1490,
- -3814, -2818, -13816, 680, 3595, 1544, 2366, -3018,
- 2479, 323, 346, -260, 337, 2730, 12214, -1118,
--11301, -3028, 212, -41, 1764, -580, 553, 5454,
- -8, -366, -1202, 901, -796, -8350, 4380, -1452,
- -300, 1152, 3058, -3476, -27, 13046, 34, -11438,
- -1321, -1528, 13237, 114, 2514, 976, -571, -1192,
- -2050, -1635, -964, 416, -23, -1083, -9, 32767,
- -548, 556, -1217, -56, 325, 1048, -145, 202,
- 1520, 44, 402, 400, -611, 8667, -1083, 1068,
- 1224, -12031, 2318, -1109, 1266, 1306, 4673, 285,
- -5603, 1555, -100, -1059, 403, -213, -680, -904,
- 11443, 581, 12160, -638, 309, -65, 933, -2280,
- 1958, 2642, 1808, 7945, -2088, 850, -428, 785,
- -989, 1234, -1413, 745, -10756, 1943, -184, 3252,
- -96, 932, -664, 13222, 11326, -1374, -327, 1901,
- 1069, -1540, 104, -139, -904, 106, 1664, 925,
- 46, 353, -835, -554, 1618, -956, -437, -727,
- -3403, 1038, 968, 436, 46, -4385, 340, -16903,
- -498, 47, -554, -399, -2418, -347, 358, 23280,
- 234, -172, -338, 1058, -2172, -1, 1710, -64,
- -583, -2224, -780, -637, 3500, 108, 1045, 828,
- -728, 9466, -2487, -12773, 1924, -1158, 208, 49,
- 136, 12055, 42, -1381, -375, -11534, -249, 1602,
- 996, 204, -710, 4761, -511, -15761, 166, -1184,
- -192, 50, -105, 890, -9566, 2062, -1536, 133,
- -185, -643, -172, -894, -355, -16, -1395, 542,
- 2160, -481, -1104, -793, 517, -20454, 698, -181,
- -135, -434, 1677, -181, -415, -738, -1574, 1664,
--14058, 597, -12354, -460, -313, 1724, -686, 85,
- -1162, -648, 865, 165, -225, -1947, 2818, -778,
- -4010, 402, 686, 11170, -332, 10336, -757, 4794,
- 2204, -477, -292, -366, 8412, -2476, 494, 510,
- 10514, 769, 642, -441, 1079, 6954, 4246, -2272,
- -290, -224, 1312, 398, 1536, -692, 330, 157,
- -946, -100, -1830, 214, -25652, 1382, -1836, -440,
- 110, -506, -438, -2370, 126, 562, -3515, 1014,
- 8526, -1641, -2493, 4411, -9210, 2110, 625, 114,
- 323, 2450, 2407, 682, 1999, -9424, 2480, 69,
- -2091, -11845, -3684, -429, -1622, -919, -518, 70,
- 1450, -3523, 5126, 5706, -1451, 2633, 820, -204,
- 11338, -8014, 753, -103, 290, -923, 1408, 298,
- -1962, -887, 9691, -1366, -11048, -55, -223, -1040,
- -163, 132, 676, -760, 4990, -310, -9286, -2427,
- 14442, -418, -802, -359, -323, 2877, -210, -1436,
- 1574, -1206, 265, -155, -225, -32768, 347, 222,
- -1165, 200, 924, 1135, -843, -66, -343, -334,
- -113, 209, 14, -203, 1214, -896, 910, -1496,
- 1831, -7833, -841, -10453, 1605, -8514, -477, -48,
- -241, -58, -32768, 213, 108, 450, 1155, -30,
- 89, 240, -768, 1332, 290, -1377, 951, 586,
- -8939, 1298, 496, 705, -1661, 1798, -1906, -2233,
- -1716, -986, -2204, -1149, 2686, 8578, 32767, 645,
- -661, -135, 770, -432, -550, -385, -272, 625,
- 1234, -729, 19, 1753, -284, -106, -655, 750,
- -442, 23143, -328, -520, -506, 790, -1048, -730,
- -471, -438, 483, -374, 939, -226, -397, -849,
--12054, -772, -40, -11776, 232, -540, -2497, -679,
- 337, 1357, 458, -341, -7542, 1001, 492, -416,
- -1496, -8966, 9814, -1752, -674, 2526, -544, -2900,
- -1318, -1578, -238, 75, 11181, 1750, -3182, 564,
- -570, 528, 1004, 146, 1144, 7430, 158, 9524,
- -36, -340, -441, 596, -1659, 1420, -686, -36,
- -596, 2215, -1295, -19722, -2149, -1046, -2339, -1166,
- 3057, -370, -556, -33, -322, 260, -23, -106,
- -323, 147, -57, 179, 458, 684, -1283, 1251,
- 1231, -18548, -513, -480, -695, 593, 3072, 1960,
- 322, -702, -1043, -544, 6005, 1378, 100, -225,
- -848, -1294, -3346, 828, -2610, -3010, 9623, -1329,
- 1956, -1098, -3730, 1137, 12413, -1260, 2457, -10844,
- 6824, -4289, -653, -302, -4415, 650, -1684, 6129,
- -370, -652, -3245, -473, -150, -3018, 1864, -1258,
- 928, -2379, 14451, -119, 2282, -248, 3139, 6502,
- 4318, 2214, -1627, 126, -422, 326, -622, -302,
- 32252, -268, 456, -260, -260, -968, 391, -497,
- 152, 1764, -10580, -369, 277, 70, -13137, -1114,
- -1111, 464, 2266, -2968, 728, -1216, 1726, 1044,
- 344, -16436, 1558, 3178, -551, 604, 442, -891,
- 9570, 1596, -541, -2182, 730, -906, 242, 935
-},
-
-.cb1616m1 = {
- -116, -53, -24868, -544, -783, 97, -912, -1202,
- -622, -147, -215, -362, -16, -522, -1694, -358,
- -724, 2628, 439, -18106, -1566, 3048, 4133, -1238,
- -3233, -1130, -2884, -2762, 1031, -1037, 63, -2219,
- 10701, -1518, -10322, 1425, 792, -1820, 380, -777,
- -3017, 1531, -1052, -3491, 1085, -428, -765, -113,
- 42, -265, 365, 99, -859, 35, 610, 44,
- -495, 262, 1689, 2082, 21605, 412, -717, -1163,
- -3285, -5062, -1583, 599, -277, -62, 615, 6014,
- -1781, 465, -544, -14114, 11277, -20, 696, 663,
- 1156, -240, 631, -2802, 333, -2544, -1628, 775,
- -960, -553, 496, -378, 526, -421, -426, 290,
- 555, 403, 390, -31714, 25, 449, 654, -334,
- -1317, 165, 496, 1554, -88, -777, 626, -1511,
- -9020, -1725, 12705, -798, -1240, 195, 1932, -833,
- -939, 43, 182, 2547, 4879, 9234, 370, 2058,
- -7757, 544, 1106, -660, 546, 9983, 225, 124,
- 952, -2153, -1732, 2760, -1270, -176, 3334, -6735,
- -526, 10475, -627, 7835, -2263, 475, 731, 908,
- 8264, 1605, -192, 5026, 2414, 5223, 595, 1093,
- 2345, -796, 8663, 1028, 8188, -185, -1506, -3044,
- -100, -1818, -6369, -170, 1728, -9249, 886, -2111,
- -349, -1146, 2127, 11622, -8043, 2880, 2215, 1693,
- -2303, 1698, 1121, -3575, -927, -716, 1940, 2514,
--11672, 1619, 916, -7, -585, 508, -1316, -972,
- 778, 9774, -2126, 2368, -56, 6716, 1169, -3656,
- -1330, 9530, -12158, 1188, -11426, -353, 945, -1941,
- 1750, 962, -1133, 1793, 2318, -2641, 1109, 933,
- 804, 505, 60, -1642, -2238, -2328, -1558, -1568,
- -27, 952, 4, 1376, -862, -18404, -1828, 4107,
- -454, 52, -1202, 1150, 686, -1950, -497, -10883,
- 400, -422, 1734, -54, 11165, -3309, 6402, -877,
--19967, -400, 1642, 1305, -2432, -3115, 375, 3898,
- 1812, -5305, -946, 1717, -757, 3322, 126, 747,
- 1836, 9957, 1904, 658, 13043, -1779, 675, 716,
- -453, 670, -1572, 210, -1533, -133, 294, 546,
--24084, -1036, -485, -117, -184, -624, 273, -901,
- 866, 609, -1119, 28, 250, 13, 70, 1178,
- 882, -632, -21624, -1339, 926, -1814, -1279, 1868,
- -181, 383, -679, -1070, 5091, 1148, 1034, 2144,
- -2779, -3810, 4536, 1713, 1003, 13322, 2866, -3217,
- 2508, 4395, 480, 14, 167, 763, -34, 1034,
- -1342, -1349, -100, -225, 464, -914, -1403, -1851,
- 23767, 770, -457, -257, -1072, 1201, 583, -59,
- 2627, 1469, -7, -11642, 3352, -1003, -6, 11588,
- -311, -2435, -2180, -2352, 1952, 5532, 1945, 7281,
- 504, 11882, -603, 45, 42, -1396, -1115, -1041,
- -1061, 566, -2733, -765, 687, 118, -1174, -20412,
- -244, -986, -151, 2888, 1102, -1303, -135, 529,
- 1186, 13220, -183, 906, -4209, -4455, 2247, 246,
- -6474, 2794, 1450, -6495, -1819, 598, -438, 244,
- -1064, -673, -672, -1563, 543, -2278, -3087, -811,
- 1866, 80, -18987, -682, 569, -551, 514, 6876,
- 7582, 839, -4031, 823, 2342, -1300, 1180, 702,
--10168, -1957, 485, -374, -151, -11066, -461, -12824,
- -1221, 1281, -718, 2012, 330, -289, -487, -207,
- -722, 394, 156, -2023, -11006, -373, -4, -238,
- 10581, 991, -1236, -814, 553, 1295, -2269, 2783,
- -1973, 681, 9759, 3674, -1680, -12118, -1340, -2372,
- -288, 2143, -328, 809, 312, 2038, 736, -10,
- 908, -11319, 74, 6362, -1122, 1546, -184, 1630,
- -1851, -2143, 1048, 8858, -462, -6458, -1540, 811,
- 130, -3542, -10424, 9353, 388, 1168, -1797, 1796,
- -4151, -2329, 1, -272, 846, -642, 248, -1144,
- -9863, -1684, -190, 7611, -4147, -692, 5354, -2363,
- 609, -4926, 3166, 2094, 857, -369, 118, 725,
- -899, -601, -6, 556, -32540, 950, -478, 757,
- 136, -560, -754, 562, -448, 223, -704, 616,
- 365, 22610, 1191, -1264, -94, 927, -294, -1270,
- -16, -2520, -2026, 420, -6621, -504, 9666, 452,
- -379, -1888, 536, 1161, -3021, 609, -4890, -231,
- 3926, -943, 32767, -615, 300, 870, -742, 429,
- -42, 155, 1060, -900, -347, 34, 491, -3625,
- -1529, 10175, 178, -7938, -406, 1628, -362, -7340,
- -433, 489, 568, 674, 536, -2886, -6118, -16,
- -531, 182, 1498, -4194, -306, 63, -1429, 1109,
- 631, -10386, -16, -5938, -52, 10638, -793, 35,
- -874, 1633, -252, 709, -286, -780, 17172, -32,
- 912, 137, -1684, 2781, -5637, 338, 10961, 1401,
- 176, 1890, 563, -371, 578, -235, -882, -616,
- -591, -672, -821, 12194, 917, 778, -427, 358,
- -1411, 2032, -1372, 1891, -1784, 1830, -1808, -464,
- 13973, 2016, 8606, -914, -7329, -1853, -2627, 2219,
- 2628, 2161, 2185, 2414, 8857, -273, 1016, 2253,
- 1070, 907, 367, -430, 574, 1039, 93, 170,
- 255, -267, 550, -668, 287, 1827, 19833, 244,
- -3731, 4, 21365, -127, 356, 643, 2016, 3290,
- 1242, 46, -734, -2298, -316, -6618, -296, -1465,
- 657, -1451, 469, 212, 2823, -2803, -11862, 931,
- 44, 660, 1576, 1848, -10529, 2813, -1163, -260,
- -195, 16320, -3447, -262, -76, -439, -3487, 1292,
- 3330, -616, 1477, 1900, 8843, 81, -846, 6845,
- -95, -112, -231, 129, 6982, 165, -3115, 2456,
- 2032, 12201, 2747, 1691, -728, -1935, -239, 968,
- 15578, -2260, -1813, 440, 2188, -3845, 1278, -136,
- -1388, -7850, -462, 2921, -1740, -136, 164, 103,
- -206, 32767, -459, 1249, 736, -590, -797, 628,
- 612, 327, 396, 552, -128, -76, -258, -557,
- 429, 170, 532, -347, 169, -593, 28319, -633,
- -1339, -997, -258, 324, 628, 3254, -1118, 8902,
- -63, 4762, -2820, 2429, 820, -46, -5366, -2193,
- -9005, -1304, -597, -10143, 555, -3000, 294, -1577,
- -871, -140, 726, 3700, -2226, 903, -253, 10330,
- -2946, 656, 725, -668, -920, 1653, 1312, 1623,
- -1150, -11970, 2157, 4532, -340, -8648, -616, -1429,
- -980, -30, 647, -474, 442, 5098, 188, -1258,
- -8172, -10927, -4207, -112, 2501, -3241, -1949, 159,
- -525, 1090, 420, 10418, -11897, 1072, -78, -1028,
- 3367, -2647, 3421, 2021, 2358, -973, 272, 27911,
- 472, -402, 1397, -927, -1032, -1274, 848, 221,
- -2745, -710, -692, -409, 1922, 142, 594, 1053,
--11350, -791, 3767, 1569, 541, 11921, 134, 368,
- -948, -2689, 896, -1193, 1190, 8514, 1436, 1017,
- 599, -3358, 4002, 12936, -675, 1044, -1210, 296,
- -1109, 1992, 1282, 774, -13102, -608, -11145, 134,
- 278, 944, -888, 350, -1574, 189, -2542, 3476,
- -3018, 3368, -9304, -1839, 533, -2, 1057, 686,
--11819, -1146, -973, 1594, 3526, -2890, -1528, 3489,
- -475, -259, -9610, -475, -984, -3559, -742, 408,
- -130, -2291, 899, 12177, -1934, -162, -3238, 1610
-},
-
-.cb2220l0 = {
--12528, 350, 1782, -474, 1439, -14269, -8, -1782,
- -753, -1720, 167, -440, -2706, 222, -1629, -288,
- 671, -111, 10270, 878, 152, 330, -1000, 639,
- -1280, 1111, -2072, 1439, -476, 553, -2974, -614,
- 1666, -466, 11811, -1393, 154, 624, -697, 176,
- 1108, 504, 250, 572, -6, 704, 16, 647,
- -1143, -1407, -411, 23745, 319, -189, -404, -641,
- -86, -707, -770, -302, 13, -398, 76, -681,
- -525, 354, -1225, -757, -23170, -484, -965, -430,
- 13477, 898, 505, -17, 13812, -890, 357, 662,
- 1000, -935, -60, 944, 400, -432, -221, 1047,
- 307, -180, 5260, 16509, 650, -269, 1563, -6002,
- -3082, 186, -3334, -5770, 1010, -394, 128, -699,
- 537, -27, 1014, -531, -50, -163, -1664, -1026,
- 732, -1296, 21856, 574, 416, -745, -443, -1382,
- 272, 791, 1308, -308, -1636, 168, -10922, 119,
- -1190, 1123, 1492, 1706, 1076, -2016, 3270, -994,
- 876, -2316, -2992, 12625, -412, -159, 5249, 1424,
- -304, 557, -431, -360, -340, -561, -292, 1748,
- -224, 1789, -352, 386, 136, 76, 1309, -270,
--24204, -515, 1142, 2119, 1144, -173, 1008, -693,
- -430, -1052, 1890, -12483, -11416, 2918, 1591, -1202,
- -1782, -1335, 1354, 1703, -510, 4287, -854, 1153,
- 2018, -518, -960, 11825, 1295, -563, 11252, 190,
- 4078, 222, -3115, 3306, 747, 2638, 1015, -1674,
- 8032, -2386, 573, -349, -832, 96, 9564, 11708,
- -483, 1326, 1804, -2903, -2024, -234, 1009, 3229,
- -232, 803, 275, 444, -629, -192, 381, -1289,
- -109, -29019, 270, -420, -408, -466, 113, -537,
- -266, 296, 180, 506, 1015, -565, -517, 1494,
--11053, 3968, -1735, 3474, -1991, -8326, 8075, 1740,
- -3995, -1287, -2558, 1030, 3742, -618, -2600, -1783,
- 2696, 1480, 1054, 341, 3762, 4225, -1742, -11582,
- 4348, -8756, 493, -404, 3840, -1049, -683, -962,
- 163, 10997, -97, -848, -4632, 2794, 2684, 2540,
- 739, 8534, 3688, -878, 3138, 2576, 6444, 3674,
- -2371, -218, 2864, 12270, 2866, 189, 4549, 4894,
- -6378, -1050, -3166, -5897, 2245, 2803, -70, -1909,
- 2783, 3951, 153, 11221, -658, 12780, -238, 3418,
- -2235, 754, 311, -739, -2414, 702, 1076, 303,
- -320, 47, -3288, -234, -1376, 3022, -103, -1780,
- 716, 11886, 10942, -5402, -5431, 1196, -624, -885,
- -652, -3248, 74, -435, -686, 154, 8675, 3325,
- -1779, -341, 564, -901, 1335, -639, 3494, -1820,
- 290, -92, -3088, 4775, -2140, 2334, 710, 10536,
--15042, 14823, -1082, -1045, 1008, 734, 241, -1048,
- -933, 245, 913, 114, 322, -1798, 246, 1067,
- 348, 408, -183, -728, -12915, 685, 1525, 1694,
- 183, -168, 12703, -1268, 1613, -2072, 1546, 743,
- 2356, 2135, -550, -153, 1327, 2, 12487, -3111,
- 2347, -1722, -300, -193, 2222, -1928, -658, -384,
- -5738, -1141, 3634, 10312, -69, -1549, 10879, 1795,
- -361, -1838, 143, 1202, 327, -15549, -1268, -194,
- 3284, -12, -344, -2042, 1663, 334, -798, -873,
- 1736, -324, 195, -417, -382, -22936, 812, -478,
- -962, -451, 730, 382, -135, 1311, -290, 122,
- 148, -775, -305, -32218, -84, 98, 374, 369,
- -44, 923, -432, 156, -1471, 236, -39, 143,
- -146, 835, 135, 229, -297, 1690, 6786, -12169,
- 815, -176, 1868, -9, -3052, 108, 114, 260,
- 11337, -2689, -132, 765, -239, 54, 691, -9737,
- -627, -474, 12212, 2222, -7595, -239, 1793, 2115,
- 563, -2390, -1991, 2906, 675, 923, 146, -3605,
- 981, -1725, 92, -562, -21192, 304, -450, -323,
- -889, -726, 688, -1186, 2590, 466, 326, -734,
- 308, -782, -3219, 963, 454, 1348, -513, 953,
- -1414, -320, 1012, -1148, 1185, -17356, -15, 1546,
- 1346, 2182, -2457, 1426, -1690, 155, 8793, 1394,
- 510, 2608, -203, 2697, 608, 2612, -13542, 177,
- 4642, -824, 1877, -1864, 1681, -1033, 1487, -749,
- 356, -11, -1, -366, -215, 1531, -38, -922,
- -378, -296, 1245, 19967, -2389, -459, -3729, -163,
- 6578, 354, -1471, 195, 353, 1831, -605, -2291,
- -359, 947, 8409, 3454, 12416, 2434, 3485, 40,
- 350, 1640, 738, -9827, 935, -171, -944, 1407,
- -399, 571, 2805, -13108, 784, 678, 2405, 328,
- -417, 1188, -1596, -649, -1358, -1130, 341, 202,
- -2459, 11307, -2250, -3518, -1812, 3338, -924, 10027,
- 3004, 703, -184, -666, 223, -1644, -7221, 3507,
- 10108, 1324, -412, -371, -92, 2496, 3182, 10,
- 10269, -998, -1010, 610, 3296, -1842, 407, 406,
- -1609, -181, 2202, -662, -1450, 1360, 1488, -212,
- 1501, -214, -555, 168, 275, 301, -950, 3272,
- -323, 20632, -21, -1729, 11013, 2149, -9278, 6735,
- -593, -7374, -430, -2776, 2343, -1374, 519, -4876,
- 827, -2477, -1971, 1249, -23380, -1810, 199, -761,
- 2182, 1654, 447, -488, -1219, 364, -53, -382,
- -989, 154, -545, -872, 776, -211, 7706, -767,
- 8006, -138, 1989, -180, 306, 486, 1112, -648,
- -12, 1538, -300, 2458, -5833, -1181, -7680, -6700,
- -621, -308, -29995, 602, -24, 94, 752, 517,
- 86, -249, 1058, 704, -404, -387, 106, -632,
- -159, 1275, -197, -1263, -1210, -1689, -10488, 1950,
- -2037, 5974, -3960, 38, 1284, 2851, -2813, -1613,
- -1646, 10164, 138, -2956, 196, -118, -484, 860,
- 124, -262, 30, -1448, 128, 287, 327, 590,
- 27272, 391, -738, -1631, -481, -1511, 82, -574,
- -737, -614, -447, -80, 292, -19, 252, -2,
--28117, 332, 141, 1485, -154, 1382, -1755, -422,
- -1692, -2144, 910, 1004, 1894, -1537, 897, -458,
- 19483, -1321, 2280, 622, 288, -2253, -1001, -976,
- -408, -394, 132, -250, -428, -22, 140, 287,
- -141, 30981, -293, 631, 729, -2, -231, -127,
- 377, -879, -294, -107, 253, -964, 1258, 570,
- 71, 9421, 8358, 9295, 8354, -546, 1153, -1807,
- 1577, 2911, -1808, 1808, -1631, -1348, -6977, -382,
- 1625, -2793, 10633, 1977, -1793, -12480, 1, 2010,
- 23, 423, 1102, -1920, -478, 1845, 1016, 465,
- 758, 800, -1540, 5448, -10472, -2749, -989, -6362,
- 9283, 373, -2560, -5478, -1618, 20, -564, -1074,
- 4075, -471, -515, 409, -2069, 359, -788, -11618,
- 2524, 917, 2757, 243, -3261, 6922, 6268, -3148,
- -2804, -3412, -4262, -1903, 1043, -12255, -162, 1598,
- 496, 454, 1401, -1635, -12711, -673, 3392, 1255,
- 1602, -1206, -297, -2066, 3009, 1149, 1285, -1307,
- 412, 27971, 183, 569, 1304, -706, 824, -635,
- -358, -340, -28, -1344, 955, 14, 676, -243,
- -20, -11947, 1350, 8122, 196, -10161, 4925, -3764,
- 1661, -401, 145, 253, 680, 718, -614, -613,
- 498, -293, -4257, -684, -14853, -10522, 698, 1537,
- -2016, 1162, -2684, -1578, 8, -238, -3214, -2749,
- -1577, -1187, 113, -1457, 1068, 590, 25, -644,
- 1000, 2430, -1612, 13246, -2684, -1642, -4648, 816,
- -1103, -7556, 5753, -3998, -1338, -776, -1958, -9652,
- -1288, -290, -4240, -2788, -8191, 1625, 2558, 1238,
- -1824, -39, -3129, -8916, -3302, -5632, -1768, 866,
- 708, 684, 3530, -8772, 1485, 677, -10398, 686,
- -852, -6974, 5286, -2658, 612, 1180, -3367, 4285,
- 5708, 1416, 166, 2787, -3697, 1431, 1648, 7942,
- -544, -1064, -514, -840, -870, 1246, -3582, -9310,
- -3802, 4025, -8251, 5978, 132, -619, 2792, 9786,
- 1244, 242, -1948, -4701, -5904, 951, 7486, -3494,
- 48, -4468, -2403, 6090, -2343, -4175, 1336, -2546,
- -281, -736, -1758, -1720, 11066, -918, -1354, 3885,
- -33, -4116, 1246, -218, -8082, -766, 7796, 1505,
- 1559, -964, 1741, -454, -1628, -762, 3034, -804,
- -888, -9682, 9603, -2556, 2874, -5456, 3066, -7747,
- 956, -660, -1538, -381, -760, 1747, 547, -517,
- -697, -1411, 410, -514, -3988, -219, 13358, -2393,
- -280, 11230, 2640, 795, 2534, -8094, -1838, 71,
- 16, -203, 4224, -96, -2829, 2010, 1961, -1312,
- -1266, 3952, 6894, 6996, -8062, 4708, 1193, -3439,
- 1549, 935, 170, 614, -868, 43, -246, -188,
- -940, 130, 126, -736, 697, -510, -56, 1596
-},
-
-.cb2220l1 = {
--13582, 1049, 15596, -101, 707, 2677, 542, -522,
- -636, 194, -2361, -1252, 524, -32, 227, -419,
- -652, -601, 84, -10428, -1417, 13117, -573, 3774,
- -3632, 2025, -1237, -692, -1486, 192, 1221, 452,
- 436, -764, -2636, -153, -685, 118, -424, -635,
- -458, 209, -577, -12042, 4240, -10861, 49, -1534,
- -991, -2416, -280, 2095, -1841, 1278, -94, -423,
- -572, -949, 734, -1087, 12449, 6514, -4582, -7845,
- -3722, 1446, 2531, -1238, -2070, 1515, -1331, 2382,
- 1066, -1298, -1189, 6811, -1868, -1082, -1732, 356,
- -2622, 493, -3345, 1367, 1737, 4497, -14734, -1350,
- -354, -1340, 8478, -1152, 1832, 1793, 830, 974,
--13918, 522, -1472, -2502, -2625, -157, -360, -17,
- -830, 673, 36, -1339, -14860, 522, -13377, 851,
- 937, -1103, -44, 408, -364, -953, -392, 1837,
- 2342, 1236, 111, -218, -919, 985, 10077, -1065,
- 1840, -124, 3780, -11015, 204, 437, -830, 6712,
- -1720, 288, -991, 1094, 5647, -1296, -2284, 1642,
- 1000, -35, -115, 208, -244, -1099, -832, -2092,
- 802, -163, 3343, -964, 314, 126, -1204, 754,
--17838, -826, 4414, 8331, -770, 1246, -3500, 1680,
- 833, -108, 494, -910, -6314, -2832, 2553, -6230,
- 1165, 3631, -1717, 2404, -32768, 520, -38, 1228,
- -708, 58, 260, 771, 588, -448, 389, 156,
- 606, -830, 400, -488, -188, 536, -1428, 11982,
- -156, -1407, 1796, 1036, 905, 1371, -1472, 325,
- 3098, -1436, 6449, 2105, -11183, 1632, -1848, 1019,
- 1247, 1308, -1351, -823, 1679, -651, 978, 296,
- 1088, 3965, -1414, -11838, 139, 8664, -3452, -1804,
- 3088, -2044, -221, -1347, 1232, -909, -1323, -1409,
- 1399, 2557, 14552, 1535, -5088, 1699, 1012, 3333,
- 3940, 2294, 1189, -2256, -484, -3307, -1333, 464,
- -305, -744, -24, -20464, 332, 2968, 308, -649,
- 292, -402, 1226, -2575, -1505, -100, 1413, 733,
- -1024, 616, -121, -322, 67, -161, -708, 251,
- 462, -26697, -1112, -1381, -324, -286, 1091, 662,
- 15830, 13124, -1049, -1816, -355, 1848, -801, -1710,
- 2513, 458, -798, 386, -726, -356, -1240, -1133,
- -388, 631, 91, 1867, 2511, -306, 3097, 14399,
- -571, 2191, -2916, 2850, 761, -2442, 698, -2193,
- -2739, -1914, -4077, -4631, 12702, 333, 1162, -6248,
--12466, -310, -107, -2465, -163, 1970, -998, -1253,
- 2007, 79, -426, -276, 365, 568, -520, 23642,
- 276, 1059, 184, 1081, 650, 2286, -191, 883,
- -1946, 246, 64, -225, 800, 910, -136, 1187,
- 955, -15604, 12847, -747, 874, 506, -646, 1920,
- -449, -321, 1152, 1341, 1653, 341, -32, 907,
- 673, 1045, 1245, -499, -10331, 4683, -1121, -3164,
- 3382, 6397, -1341, -769, 1186, 229, -1354, -7370,
- 155, 1858, 5617, -3487, -247, -783, 724, 508,
- 14029, -528, 1853, 1572, 580, -708, 528, -1394,
- 8922, 2284, 550, 3084, -1726, -3235, -700, 7132,
- -3540, -200, 3288, -815, -2189, 1232, 2412, 2088,
- -1101, 12592, 806, 1508, 1741, 13, 1124, -3883,
- -687, -8180, -3094, -3346, 1781, 11836, -657, -3469,
- 1429, -1822, -3433, 87, 3871, 651, -965, -1757,
- 6778, 109, 112, -131, 710, 11943, -12107, -3460,
- -726, 1002, -3803, 580, 2756, -1293, 116, 457,
- 581, 3834, -1678, -977, 1242, -2040, 232, -10034,
- 1644, -2290, 1368, 172, -3012, 1423, -2620, 3608,
--10831, -303, -1610, 3246, 562, 5212, 448, -877,
- 954, 688, -8981, 579, 717, 1315, -952, 6817,
- 662, 3218, 7213, -2116, 10446, 1012, 2270, -858,
- 10, -1066, 10618, 6108, -547, 3221, -893, 3888,
- -1088, -10085, -247, 1064, -3500, 3123, -2480, -2128,
- 2788, -2253, -9756, -472, -166, -680, 727, 74,
--14151, -189, -1734, 610, -1169, 845, 94, -786,
- 394, -581, 500, 1981, -10940, 354, 500, 399,
- -1952, -373, 2197, -4712, -2582, 2751, 654, 613,
- -1254, 1406, 2056, -12518, 1583, -582, 4834, -1541,
- 508, -20580, 270, 1214, 515, -1082, 5, 7,
- -533, -28, 1270, -1307, 497, -57, -331, 933,
- 92, -856, -10458, -4576, -9991, 2426, 6552, -3022,
- 279, -562, -192, 1878, -2237, 4978, -1753, 332,
- -1462, -853, 238, 478, 9746, -7385, -10290, -8278,
- 457, 3121, 841, 48, -3745, -1298, -637, -1820,
- -468, -248, 1400, 394, -125, -950, 11524, -1860,
- 426, -773, 12669, -1620, -158, 1625, 1045, 768,
- -66, -12, 1625, -770, 559, 54, 593, 14468,
- 14994, 490, 543, -811, 700, -277, 900, -178,
- -2000, 475, 241, 950, 106, -1260, 874, -862,
- 18907, -1947, -844, 205, 1253, -83, 1966, 2300,
- -2694, 852, 2450, 661, -334, -518, -1136, -2377,
- 325, 1152, 511, 881, -22205, 898, 574, -582,
- -265, -1362, -253, -40, -780, -1967, 469, 1484,
- -818, -926, 958, -415, -7934, -330, 330, 1439,
- 1643, 77, 1034, -156, -12094, 3782, -5725, -520,
- -598, 2345, 3506, 5333, -322, 99, -48, 1490,
- 20, 11393, 3468, -1144, 7013, -3728, 7145, 1432,
- 1810, 26, -912, -6530, -1079, 1771, 95, 4007,
--11346, -43, 249, -14616, -249, 1, -725, 244,
- 1053, 1815, -626, 408, -344, 1972, 2222, 2288,
- -2324, -411, -3993, 494, -706, -5078, -11695, -3645,
- -2090, 2465, 5893, -5096, 6815, -537, 5003, 1258,
- 185, -1555, -875, -2047, -170, -433, -194, -1020,
- 349, -724, -31811, 197, 251, -418, -222, -618,
- 278, 554, 363, 183, -898, 14, 350, 745,
- -2054, -1623, 806, -770, -1246, 1594, -54, -18501,
- 1516, 840, -86, 484, 514, 1209, 978, 564,
- -537, 34, -431, 128, 938, -1807, 832, -90,
--29509, -642, 1397, -52, 523, -393, 216, 908,
- 9, -63, 710, -949, 3, -184, 175, 613,
- -687, -408, 27, -855, 18258, 1282, -948, -219,
- 2374, 1668, -4567, 1063, -2045, 12026, 461, 3074,
- 1050, -1788, 169, -13442, 612, 19, -2019, 685,
- 452, -152, 299, 310, -2327, 348, -215, 1634,
- -201, 2162, -10300, 12452, -3733, -420, 2388, 518,
- -2308, -160, 1552, 3347, 1650, 3293, -1108, 2065,
--12618, 20, -42, -643, 202, -1298, 251, 2489,
- 1322, 2362, 3698, -190, 592, -12484, -937, 2072,
- 1531, 302, -409, -899, -1016, -388, 1103, 30006,
- 789, -1609, -548, -1002, 1055, 605, -955, 1557,
- 452, -623, 810, 597, -696, 10628, -1174, 606,
- 2628, -553, -2297, 6668, -2600, 787, 3504, -3606,
- 4087, 1052, 6276, -7619, 337, 2565, -13, 1205,
- -124, 1222, -28082, -79, -553, 628, 542, 1315,
- -609, 322, -895, -377, -694, 610, 239, -152,
- -2901, 9890, 716, 1030, -3306, 988, -738, 562,
- -2209, -1676, 4507, 1165, -12924, 866, -154, 3664,
- -367, -2580, -7286, -572, 2167, 118, 508, -4429,
- -480, 842, 2489, -1636, -2042, 1125, 1847, 2586,
- -5639, 3361, -760, 11189, 623, -282, 1353, -279,
- 515, -816, 713, 322, 417, -2820, -1114, -1563,
- 401, -21604, -1300, -972, -2298, -483, 2176, -830,
- 2135, -4084, 1095, 1950, -1937, 539, -374, 3197,
- 682, 472, -1368, -8095, -12026, 4833, 5586, 467,
- 2400, 148, 381, -138, 954, -459, -724, 970,
- 156, -1955, -1363, 560, -761, -1708, -1599, -17408,
- -1064, -1372, -500, 1160, 735, 441, -773, -228,
- 420, -1128, 260, 930, 12879, -926, -231, 1355,
- -850, 559, 11377, -1729, 2478, 961, 336, 1056,
- 5081, 9788, -555, 4067, 8664, -2720, -1462, 3012,
- -7280, 965, 1462, -4703, 3649, 2084, -699, -262,
- 408, -188, 2193, -2216, -4509, -736, -1039, -4848,
- -8243, -7958, -172, -1318, 9566, 4665, 3363, -3672,
- 1581, -551, -2024, 1630, 1543, 90, -1728, -792,
- -1799, 2571, 80, -412, -301, -2870, 1796, -5327,
- 111, 17342, 592, -2108, 477, 1541, 1266, -1062,
- -215, -2210, 223, 1215, -197, 87, -18340, -67,
- 804, -398, -118, -3457, -741, -1935, -704, -274,
- 566, -872, -1821, 12874, 5057, 2069, 1742, -6205,
- -6115, -1614, -294, 187, -5210, 1734, -1466, -2162,
- -2266, -642, -148, 440, 2, 233, -319, -637,
- -734, -230, 301, 508, -433, 311, -313, -1206
-},
-
-.cb2220s0 = {
--15119, 7508, 1337, 4182, -2914, -3733, 2686, -470,
- 2249, -3901, 1444, 3805, 99, -1771, -354, -903,
- -2755, -709, -4980, 214, -2750, -652, -1042, 1434,
- -1090, -612, -2574, 1274, 1310, -760, 1420, -112,
- 2776, -4843, 15060, -4929, -3942, -5721, -1628, -1142,
- 3023, -1435, 1402, 1010, 623, -3527, 2624, 184,
- 988, 98, 340, 16676, -1262, -1162, 3183, -4816,
- -592, 1019, -1406, -2478, 2371, -1004, 3944, 803,
- 5665, -2261, 16427, 349, 3113, -916, 442, -1754,
- -3551, -1351, 1563, -1316, 532, 343, -392, 1509,
- -717, -122, 2462, -929, -185, -683, -18780, 2682,
- -123, 518, -379, -5160, 245, 1940, 13964, -12311,
- 590, -30, 159, -1558, -1940, 36, -1528, -515,
- -1178, 856, -395, 29, -5854, -12943, 13286, -2572,
- 1049, 768, 3292, -3921, -52, -462, 1968, 4933,
- 630, 930, 1026, 2606, 319, -277, 6333, -2119,
- -4700, 2164, 1583, 154, 2107, -1467, 339, 634,
--17240, -595, -3525, -2690, -1788, -476, -41, 165,
- -1016, -1456, -348, 11289, -2920, -3804, 2357, 12012,
- 3848, 1796, 2164, -5555, 4527, -201, 965, -4893,
- 3419, 6441, 1691, -77, 348, -769, 27319, -345,
- -336, -541, -320, 972, 926, -1026, 1052, 702,
- 224, 76, 742, 220, 6292, 8625, -3742, 4139,
- -5989, -5615, -641, -231, -837, 6156, 4141, 3792,
- 4746, 9972, 1800, -397, -2237, -2218, -7595, -2761,
- -496, -1451, 1178, -970, -1226, 2527, -2105, 1778,
- 1446, 1986, 9970, -13107, -985, -1142, -1367, -329,
- -4498, 590, 36, 2073, -1069, 862, 133, 2516,
- -27, 4494, -11602, -1638, 2524, 1449, 5684, -611,
- -9452, -2618, 5006, 3481, -639, 379, -2333, -498,
- -713, 382, 784, 269, -5692, -350, 524, -18705,
- -1042, -1349, 1210, 1770, 3964, 4908, -1131, 17535,
- -788, -1896, 30, -2682, 1044, 1604, -3740, 18,
- 1771, 331, 4279, 2634, -368, -447, -6995, -1224,
- -688, -5368, -236, -8872, 2449, -12189, 4465, 1895,
- 2484, 1315, -5446, -457, -575, 101, 2356, -1585,
- 3204, -104, -7244, -1678, -801, -2620, -4603, -11876,
- -1787, 2962, -1796, -3385, -411, 5796, 2900, -562,
- 835, 293, 7127, 4939, 721, -2972, -482, 121,
- -2694, -2277, 412, 12770, -342, 718, 3306, 502,
- -7281, -307, 552, 7158, 3289, -5051, 5230, -1185,
- 3024, -942, -1347, -283, -13937, -208, 2576, -906,
- 1848, 5692, -2434, 175, 7837, 1872, -4536, -3341,
- -957, 14787, -1598, 9058, 3776, 407, -1734, 1259,
- -3011, -131, -3589, -614, 272, -2968, -1611, 3645,
- -8126, 2120, 4868, -5462, -13235, -3452, -6077, 5064,
- -1593, -1395, -2427, -1139, -958, 1585, -1330, 2178,
- -778, 3545, 2836, 7712, 5993, -432, 3575, 929,
- -7951, 115, 2180, 3904, -193, 1556, -252, -913,
- 2574, 11948, -4525, 1391, -8513, 4540, -12815, -3379,
- -4676, 1838, -5676, 1321, -6168, 1397, 1020, 438,
- -141, 3424, 392, -512, -1614, -1396, -318, -2451,
- 1545, -7132, -1763, -424, 3575, -828, 19216, 1978,
- 1624, -1969, -1667, -772, -2031, -781, 1732, 244,
- -212, 416, 900, -8960, 1002, -1077, 4667, -3527,
- 1586, -13109, -2442, 3829, 4358, 1056, 2960, -1087,
- -662, 4775, -6316, 6157, -3736, -2040, -187, 904,
- 1254, -636, 2032, -734, -1271, -2691, 3376, 564,
- -7769, -5482, 840, 14171, -5828, -966, 1685, -10192,
- -388, -434, 3706, 594, 2188, 365, 209, 298,
- 1825, -236, 12762, 1644, 3199, -468, 12876, 130,
- -2169, -3406, -3571, -4655, 2339, 10757, 1292, 2920,
- 289, -314, -591, -1631, -1778, -1296, -254, 469,
- -9408, 1154, 334, -4, -1922, 2787, 317, 416,
- -1703, 14075, 1601, 638, -2260, -973, -824, 2816,
- -2954, 3282, -3716, -882, -3447, 3058, -6701, 1233,
- 177, 3579, 3508, -3539, -10511, 7507, 7608, -1928,
- 2482, -719, 2278, 5167, 9828, 10572, -3635, -2750,
- 3407, -116, 3343, -3432, -3375, 982, 903, -3239,
- -444, -1574, -333, 9613, -1914, -532, 1879, -78,
--17944, -7029, 1586, -3122, 360, -401, 1219, -2086,
- 3066, 878, 5780, -948, 102, 1952, 418, -416,
- 1002, 1380, 1297, -92, -640, -555, -1159, -28517,
- -1757, -696, 124, -618, 1590, 300, -598, 924,
- -190, -1734, -4196, -5345, -14068, 5971, 8293, -3878,
- -1448, -1777, -174, 921, -1555, -866, 560, 232,
- -1914, -4002, -772, 1960, -4945, 3424, 6492, 3675,
- -800, 5346, 4404, -639, 10697, 1631, -1446, -4469,
- -7804, 3721, 4824, -620, 1099, -2956, 5175, -2453,
- -4894, 2562, -1842, 4940, 1391, 2818, 1095, -4285,
- 6469, -1966, -14564, -2232, 592, 5570, -2682, 2651,
- 4678, -7444, -2387, 6812, -12757, -5664, -42, 134,
- -2861, -1780, -158, 1410, -4990, 673, 2083, -2639,
- 3019, -2, 8305, -1981, -2114, -54, 2892, 1659,
--14913, -74, -1092, -1187, 2465, -2218, 791, -608,
- 3077, 26, -1096, -1692, 3234, -7116, -1835, -5244,
- 398, 10137, 698, 2298, 498, 7060, 6430, 1393,
- 2540, 487, -1534, -1926, -5139, 3425, 4533, 5067,
- -535, -924, 938, -1799, 16120, 2037, -3727, -821,
- 2986, 2314, -223, 1358, 9, 2697, -1806, -940,
- -3630, -1843, -2776, -2246, 580, -1678, 2427, 2126,
- -1935, 2956, 849, 18234, 638, 342, 1036, 249,
- -24, 2713, -1973, -134, -4469, -2014, -6162, -19776,
- 703, -50, 2295, -2294, 1971, 1179, 1014, 2374,
- -1480, 1513, 630, 1542, 24716, 3534, 2926, 662,
- -2886, -521, -348, 402, 1112, -371, 1587, 1822,
- 1880, 1284, 302, 1873, 1284, -924, 6420, 4650,
- 7986, 427, 361, -8276, 304, -11911, -1305, -2018,
- 189, 258, 839, -942, 479, -3162, -1195, -1138,
- 1560, -1850, -5304, -10132, -10533, -1301, -3147, -680,
- 56, 4260, -6867, -1350, -1094, -1385, 1831, -2,
- -941, 3740, 7701, -855, 3304, 3444, -4467, 269,
- -4092, 588, 13957, -1566, -3561, 1936, 2816, 2982,
- 1804, 2710, 419, 685, 4468, 488, -9520, -2738,
- 3974, -9978, -1681, -2418, 2340, -717, -899, -2855,
--10470, 1030, -2346, -5555, 2559, 2180, -5324, 1832,
- 10294, 342, 11318, -2376, -3904, -1524, -3806, 1078,
- -1896, 7199, -3522, 1364, 2291, -911, -156, -4327,
- -778, -30451, -577, -158, 560, 2749, 799, 2689,
- 337, -301, -1218, 1243, 687, -880, -419, 40,
- -280, 4, 1834, 9908, 1953, 408, 1080, 8777,
- 3861, 552, -6906, -3546, -6666, 35, -1903, 4788,
- 5080, 2865, -233, 1031, -4519, -13752, -2417, -1742,
- -7389, 3191, -626, -411, -7351, 3063, -1801, -4377,
- -2974, -124, 2778, 2733, 349, -1191, -6528, -1699,
- 6907, 239, -2765, -5706, 3627, 2096, -20, 2285,
- 7164, 3523, -11582, 3616, -614, 6266, -285, 3643,
- 1506, 3665, 1261, -2338, 418, -5062, 4893, 2945,
- 1923, -2990, -4531, -8858, 2769, -5029, 2202, 3337,
- 10703, 716, 5614, -14982, -2366, -5415, 25, -1665,
- 4353, 3060, -2159, 1005, -1587, -368, -949, -2788,
- 1063, 1307, -59, -46, -6337, 500, -1194, 2914,
- 2372, -1393, -1914, 3820, -1160, -135, 3777, -14151,
- 5208, -2290, 5738, 1018, 385, 1883, -2626, -9289,
- 1082, 1558, -1756, 2720, -519, -13050, -3672, 1759,
- -13, 3471, 4071, -5977, 167, -4210, 2219, 1344,
- -2412, 4497, -6946, 660, 8774, -3141, 6080, -4478,
- 2520, -609, -3080, -741, 7864, 7428, -333, 1154,
- -1849, 1478, 460, -338, -6651, -2480, 1692, 2104,
- 1642, 2720, 1017, 2759, -1822, -2668, -2265, -1019,
- -8926, 1487, 733, -15128, 5543, -4214, -7044, 666,
- 7108, 2222, -2454, 4995, 5108, 1481, 2242, 5743,
- -487, 9669, 295, 3539, 4836, 487, -1541, 824,
- -5946, 6692, -368, -1390, -6103, 4545, 2671, -12272,
- 3160, 760, -2080, 3523, -2752, -2940, -718, 2202,
- -5523, 2346, -5580, -5007, 6212, -5406, -11348, 1272,
- 5389, 2331, 3691, -1184, -3585, -4500, -603, -38,
- -5285, -531, 4844, -3850, 3944, -6525, -5723, -2313,
- -985, 879, 578, -3217, -3600, -2814, 1432, 11568,
- -1461, -1761, -4110, -4104, -103, -1803, 5195, -1477,
- 1348, 107, 3902, 1215, 3522, -3404, 9098, -237,
- 68, 34, -2524, -12040, -6183, 2122, 470, -1257,
- 346, -232, -1725, 5913, -1525, -5873, 1846, -11368,
- 1043, -1027, 4201, -3864, -4294, 7756, 1847, -3688
-},
-
-.cb2220s1 = {
- 32767, -2256, 16, 2156, 267, 1128, 1394, -1936,
- -488, -405, -345, 1068, 578, 1504, -1192, -405,
- 292, 1149, 4243, 152, 1036, 1782, 2655, -23349,
- -1100, -1933, 354, 966, -1554, 1173, -1186, 495,
- 618, 1009, -2715, 461, 5974, 939, 3552, 1325,
- 3385, -956, 2177, 2101, -145, -1000, 2326, 2466,
- 2822, 15822, -581, -713, 4398, 828, -3249, -3942,
- 1990, -862, 2272, 348, -2972, 241, -2678, -1881,
--22307, 417, -587, 312, 280, -2524, 2380, 299,
- 3931, 178, 2910, -2544, -356, -786, 546, -73,
- -862, 240, -1653, 1286, -3875, -2072, -1477, 16800,
- -1148, 2099, 3216, 5174, 2177, 3042, -796, 414,
- -506, 883, 1837, 1451, 2864, 850, 2395, -414,
- 3254, -1937, -16379, -3976, 2178, -1473, 4759, -832,
- 8890, 3324, -3053, -407, -1530, -431, -1220, 128,
- -3472, 980, 52, -14716, 1732, 1931, -6518, -1784,
--11113, 4466, -24, -8559, 105, 5478, -4116, -2213,
- -3006, 1738, -4189, 3310, -753, 1869, 580, -885,
- 3089, 8146, -4990, -1825, -524, 3620, -6920, 621,
- -1064, 4633, -1509, 80, -10949, -2752, 476, -3684,
- 3547, -1967, 3364, 2887, -729, 7921, -4216, -3681,
--14417, -3978, 261, -1146, -1124, -901, 777, 783,
- -2, -989, -1582, 3988, 7785, -6371, -2258, 3344,
- 354, 13289, 3339, 316, -3186, -2088, -1951, 310,
- -545, -704, -40, 4416, -392, -1033, 5650, 99,
- -3008, -3716, 2448, -3758, 9463, -1793, -130, 1705,
- 6501, -2214, 2970, -10476, 564, -5952, -541, 2077,
- -90, 6588, -2858, -1733, -9247, -345, -3170, 4986,
- 3353, -4868, 8873, 113, -5223, 1562, -163, -2446,
- -4459, -8052, 1106, -10883, 1185, -1756, -152, 3109,
- 181, -1427, 8291, 11419, -6265, 2116, -469, 5150,
- 1355, 182, -740, 779, -7754, 1868, 144, 3936,
- -60, -784, -231, 879, 17032, -2273, 1886, -538,
- 1015, 1798, -633, 1090, 1910, 128, -6094, -1946,
- -1570, -727, -18457, 498, 784, -4419, 1656, -21,
- 154, 2430, 3815, -41, -2708, -1594, 228, -784,
- 7284, -452, -7634, -12868, 3564, 5473, -1244, 2231,
- 28, 4321, -1464, 1402, -1358, 2241, 656, -1128,
- 1160, -2352, 3641, -680, 1816, 6864, -42, 1269,
- -280, -1265, -2048, 238, -653, 13571, 3874, -269,
- 7977, 2238, -1246, -2066, 4741, 1706, 3498, 595,
- 2559, 55, 593, 1681, 1612, 43, -2756, 2702,
- 2439, -2471, -809, 1890, 17032, -787, -4280, 1167,
- -1926, -4973, -1181, -2764, -4151, 2962, 3444, 844,
- 2446, 14013, 3326, -1195, -1829, 1588, 1765, -3140,
- 8562, -14425, 4040, 2003, -738, -1032, -3314, -2236,
- 548, 768, -2348, 436, 1755, 31, -4616, 1259,
- 269, 1543, -1393, 5338, -16463, 2900, -2480, 1659,
- 217, -5864, 3878, 5268, 1244, -520, -1202, 1238,
- 182, -1049, -695, -320, -6832, -5904, 2914, -2616,
- 2586, -10958, -3258, -1846, -4633, 2371, 3251, -3583,
- 2631, -4162, 3035, 2718, 616, 2890, 206, 16128,
- 979, 3551, -6864, -3221, 5881, 3692, 1718, 234,
- -2844, 1668, 102, 2687, -838, 988, 1116, 533,
- 4026, -7235, 5972, -13781, -3394, -3518, -294, -6383,
- 1675, 4507, 5444, 385, -1931, 930, 699, 1639,
- 415, 6720, 7854, 1514, 3192, -2253, -14786, -1307,
- 871, 1329, 1881, 6628, 2851, -85, -2284, -4538,
- -837, -2232, 269, -2227, 13930, -2063, -7540, 8978,
- 1195, 2717, -1282, -972, 1305, 3864, 2412, 2308,
- -4824, -3282, -864, -489, -1458, 2192, 15903, 2460,
- 2792, -4137, 1034, -359, 5, 2297, -6, -3859,
- 478, -1535, 2080, -741, 2030, -603, -2640, -1902,
- -8208, 3818, -1273, -8138, 2015, 9169, -3440, -1779,
- 4076, -576, -93, -1718, 744, 2563, 6744, -3841,
- 1355, 1590, -4196, -13924, 356, 13381, 2552, -2862,
- 2790, -578, 3562, 2711, -686, -3783, -489, 1230,
- 896, 1208, -1101, -3482, -2478, 772, 1254, 320,
- -1825, -327, 1070, -1712, 295, -18141, -2618, 1537,
- -603, 3782, -1272, -1901, 414, 169, -6574, -6966,
- 2711, -3292, 13204, -1324, 3620, 4962, 2835, 4177,
- 4861, -2378, -5534, 3701, -4224, -631, -3199, -653,
- 4785, -1045, -2097, 580, 2190, -140, 48, 3075,
- -1346, -810, 2016, 566, -2543, 235, -5930, 1956,
- 481, 19003, -3938, 6489, 2697, 4796, 3435, 7102,
- 3062, 1460, -5814, 2723, 4181, -4979, -2534, -2058,
- -136, 3554, -2684, 15252, 4112, -3146, 2812, 7182,
- -2642, 5443, -1043, -803, 2786, -1622, 1988, -780,
- 1482, -13015, -1762, -1377, -4005, 161, -9568, 8166,
- 1832, 330, -6484, 945, -4388, 1090, -524, 1556,
- -582, 320, 770, -938, -8757, 977, 1084, -7062,
- 3552, 775, -4708, -2281, -552, -10027, 4263, 1197,
- -672, -93, 5716, -3825, -4526, 1781, 9799, 4450,
- 1981, -3149, -9664, 3119, 3794, -91, 6710, 840,
- -1098, 11310, -2933, 785, -2573, 748, 1803, -1401,
- -1547, -4118, 849, -580, -1404, 1536, -9382, -1610,
- 2335, 403, -2939, -3015, -3753, -7593, 1640, 3346,
- -2594, -8028, 5485, 2189, -3369, 2106, 5369, -2573,
- -515, 1459, 6996, 1344, -389, -7009, 10332, -840,
- -3869, 901, -6449, -2348, -2461, -4103, -810, -2060,
- 1040, 117, 32241, -231, 945, 999, -1183, 180,
- 1443, 188, 855, -1634, 774, -202, 99, 1714,
- 286, -849, 1968, -9743, -15458, -859, -3726, 2257,
- 355, -167, -1674, 1808, -488, 1118, -1416, -1685,
- 2928, 1471, -1145, -536, 2307, -972, -1191, 1625,
- -1436, 378, 20178, -638, 1826, 472, -300, -845,
- -1045, 1074, -1041, -510, -39, 516, 4548, 2741,
--10197, -2336, 3828, 2093, -4148, -9138, 4239, 2520,
- -3536, -3807, 2998, -2226, -6898, 4838, 2552, -2024,
- -5579, 1370, 11706, -7626, 1566, 989, -4934, -1345,
- -5962, 4259, 1158, -3712, -2710, -1037, 105, -2733,
- 1068, 3682, 3904, 2044, 184, 537, -3438, -1376,
- 332, 17812, -3170, 2386, -2090, 3481, -1352, 431,
- -1016, -1062, -564, -1752, -2602, 1299, 6720, 789,
- 1275, -9801, 5320, 2327, -4048, 4443, -7820, 1112,
- 1232, -1139, -920, -744, -845, -3754, 5958, -5388,
- 3336, -3578, -4027, 688, -7043, -136, -163, -1395,
- 13400, 1729, -1862, 2612, 321, -3874, 947, -990,
- -3164, 11487, 46, -1978, -2139, 1222, 3897, -9664,
- 3692, 5431, -3364, -3706, 180, -4009, 2563, -313,
- 3228, -1631, -9763, -9184, -6058, -4594, 1040, -3323,
- 321, -3233, 5035, -1919, -5525, 1899, 1196, -1834,
- -391, 549, -2114, -1436, -2624, 2441, 618, -27606,
- -841, -936, 1067, 1157, 230, 784, -755, 1798,
- -219, -1026, -1119, 320, -2611, -1382, 8776, 1151,
- 3739, -607, 2997, -7704, -5870, 1800, 1357, 4973,
- -9674, -5182, -50, -886, 2056, -802, -1909, 574,
- -1716, -6388, -2882, -3526, -3188, -543, 244, 9648,
- 5129, -5069, 598, -9049, 1834, -3375, 1369, 1461,
- -1295, -380, -274, 7258, -9353, -2401, 11915, -5087,
- 1505, 4211, -719, -902, 1762, -168, 642, 699,
- -2067, -933, 1092, -958, 715, -1978, -1968, -1613,
- -1263, -777, 1170, -9652, -9570, 612, -3935, 237,
- 386, 4237, -1468, -10172, -4964, 2919, -6428, -7184,
- 119, 3610, 59, 3168, -5474, -853, -5735, -1765,
- 3063, -1352, 944, -1934, -3500, 9282, 5920, 784,
- 90, 275, 3211, 2418, -8570, -10498, -2026, -1020,
- -2989, 1511, -41, -11462, -1980, 5296, 2614, -21,
- 770, -156, -2817, -4748, -8672, 3447, -7231, 4598,
- -1347, -689, -3198, 434, 56, -2065, 1798, 13761,
- -533, -1280, -796, 2481, 56, 1377, -5473, 9116,
- -1185, -602, 2547, -3693, -8880, 2978, 9093, 1829,
- 4844, -649, 316, -162, 1520, -5814, 4860, 199,
- -1330, -5182, -6269, 2642, 1220, 2816, -4098, -3981,
--13264, -398, 361, 2768, -4786, 1023, -97, 655,
- -397, 2403, -1576, -386, -1112, 792, -1195, -759,
- 742, 729, -2916, -1020, 21350, -26, -3577, 659,
- -1263, 1378, -4339, 1880, 4842, -669, -1203, 5936,
- 816, -8356, 3660, 1673, -677, -2370, 1652, 8710,
- -1254, 6171, -6868, -891, -6752, -169, -5678, -7588,
- -3247, 2982, 5281, -4941, -359, -3354, 851, -1609,
--11194, 610, 261, -1936, 2715, -3540, -2488, 2086,
- 6110, 914, -3224, 1777, -1558, 937, 3736, -3109,
- 1903, 4250, -4478, 2636, 2292, -1451, 10231, 7600
-},
-
-.cb2220m0 = {
--26430, -533, 1599, 208, -293, 2303, 704, 1586,
- -1064, -1630, 690, 1697, 623, 1786, 332, 682,
- 199, 12695, 475, 1288, -2471, -797, -68, 9659,
- -816, -2465, 546, -1421, 1596, -926, 4471, 2360,
- 5551, -900, 297, 96, 400, 936, 1548, -1066,
- -1625, 652, 1416, -118, -525, 683, 1545, 1340,
- 20684, 936, -1033, -773, 8416, 954, -4822, 4223,
--10815, -312, -896, 531, 3140, -1649, 508, 10294,
- -315, -2078, 584, 1523, 118, 997, -11837, -605,
- -262, -1732, -613, 12220, -2666, -1802, -507, -4410,
- -100, 2127, -114, -886, -2806, 500, 1034, -2811,
- 12642, 1015, -9193, -4201, 238, 1096, -1159, 1619,
- 2534, 1644, -3465, 4797, 639, 2583, -1316, -9884,
- 948, 1479, 1186, -1760, -343, -1286, -1653, 678,
- -7439, 4542, -6295, -1600, -6978, 48, 448, 369,
- 1597, -3696, -2121, 1002, 2428, -11368, 5385, 827,
--10674, -2252, 2240, 1230, -3074, -1894, 296, -2216,
- 571, 114, -497, -1675, 1311, -2297, 1843, -350,
- -856, 2067, 1198, -588, 270, -470, 2640, 274,
- 19586, -762, -11471, -623, -506, 4236, -10981, -214,
- -1856, 409, -1276, -935, -1681, 5116, 774, 3008,
- 4388, -112, -9493, -1108, 1454, 1385, 1065, 519,
- -486, 308, -1141, 289, 1424, -3672, -15989, -3738,
- -1592, -258, 3304, 62, 1441, 45, -686, -1070,
- -1616, -701, 2313, 1918, 4843, 654, -16902, 263,
- 1837, -4062, 2727, -709, 1524, -1628, 2025, -281,
- 264, 1238, -1023, -11981, -2990, -1293, 801, -9606,
- -604, -210, 1248, 4014, 3652, -11286, -2094, -470,
- -1330, 14523, -2388, 1413, -3968, 641, 2936, 161,
- -1687, -1260, 1722, -1968, 364, -854, -14386, 10146,
- 792, 133, 1746, 261, 3345, -408, 2036, 272,
- 1412, 720, -3302, -1495, -4334, 2210, 799, 17546,
- 2600, 1314, 764, 1327, 3433, -377, 4296, 2402,
- -1074, 470, 7220, -2556, 3326, -4338, -2086, -1945,
- 11865, 3525, 1513, 1520, -1814, -13020, -929, -2001,
- -1496, 580, -3293, -3146, -2185, 1442, 390, -2026,
- -2141, -192, -18700, -2039, -4330, 1691, -250, 1451,
- -2913, 2832, -3284, 2899, 1529, -888, 486, -2381,
- -1459, -2663, 530, -717, -248, -1714, 12662, 1820,
--11488, -1044, 3035, 3872, -2430, 679, 1075, 475,
- -593, 930, -1751, 405, -2308, 2148, 510, -2798,
- 445, -240, -6865, 2106, -11323, 670, 4342, 154,
- -7748, -1805, 5381, -842, -697, -709, 688, -498,
- 5525, 15212, -2006, -4146, -2452, 2392, -3522, -2023,
- 1306, 5522, 916, -3616, -287, -653, 333, -330,
- 4, -24886, 635, 119, -1949, 899, -36, -37,
- 2658, -133, 2064, -534, -549, -1745, -70, 32767,
- 1089, -869, 150, -599, -1146, -574, -424, 377,
- -648, -303, 590, 453, 1910, -351, 553, 304,
- -752, -752, -502, -42, -31211, -634, 449, 638,
- 1086, -1406, 1220, 802, -924, -1874, -212, 86,
- -200, -1140, 618, -621, -605, -10976, 1699, -603,
- 2056, -4448, -1519, 2564, -743, 12304, 1482, 547,
- -1589, -817, -217, -1633, -1089, -2270, 181, -634,
- 3890, 734, -1319, -2035, 3304, 13144, -9076, -4067,
- 70, 1309, 1067, -354, 1529, 1379, -1002, -3324,
- -525, -817, -1438, 10834, 1036, 12441, 1242, 2461,
- 2858, 2257, 430, -1177, 1142, -870, 844, 1102,
- 1208, -1482, 830, 17622, -2753, 6, 174, 4385,
- -339, 2157, -155, -68, -190, -1181, 29, -2046,
- -2140, 27, 949, 1889, 446, -54, 16696, -49,
- -3304, -1929, 1833, 3735, -495, -1225, -11743, -2259,
- 891, -1954, 2848, -504, 1164, -2489, 861, 579,
--11547, 976, -42, 1477, -2428, -1561, 112, 74,
- -2721, 12046, 632, 1283, -1900, 1990, -1193, 1606,
- -1370, -2812, -1309, -1419, -12526, 3391, -4213, -2710,
- 269, 90, 14575, -345, 820, 6118, 892, 6302,
- -2825, 332, -3071, 2279, 3756, 185, -3029, 2402,
- 245, 1010, -273, -32751, -140, -600, 482, 1516,
- -462, 1931, 1941, 272, -310, 544, -422, -815,
- -1116, 803, -617, -1640, -4336, -11735, 3656, -1176,
- 1170, -6209, 2139, -1571, 2067, 1011, 9842, 790,
- 1702, -191, 911, 2771, -253, 794, -3862, -1885,
- -494, 2070, -2682, 772, 763, 4304, -15657, -2194,
- -1998, -963, -5222, -175, 238, 32, 10067, -692,
- 2824, -474, 3016, -11994, -51, 713, 2423, 2864,
- -338, 4838, -1095, 215, -13471, -2, 704, 752,
--14654, 1396, 484, 564, -886, -775, -1099, 775,
- -1035, 1661, -1013, -1118, 449, 822, 14253, -13238,
- -1084, -1107, -1672, 996, 472, 2237, -440, 1186,
- 1200, -2112, -1388, -1093, -1902, 555, -328, -1493,
- -2034, 426, -2144, -388, -20028, 1285, 1122, 730,
- 1661, -1576, -2084, 2930, 337, -66, 1591, 8685,
- 2361, 146, 1370, 22, 1371, -105, -4190, 371,
--13252, 328, 1301, -995, 3689, 6422, -79, -1407,
- -384, 828, 840, 854, 266, 1222, 796, -550,
- -729, -1213, -87, 524, 1070, 22334, -2333, 574,
- 680, -624, 463, 4047, -236, 114, 1020, -692,
- 1575, -320, -3229, 222, 520, 996, 2104, -5404,
--18197, -1105, -184, -1057, 10712, -2509, -7140, -2307,
- 1333, 3041, 183, 1241, -7861, -3060, 1432, 9,
- -1431, -2605, 2663, 273, 250, 770, -740, 6699,
--10929, -7227, 105, -2983, -1203, 1637, -6072, -6630,
- 933, -1526, 658, 2612, 5377, -91, -66, 4944,
- 3025, 2723, -869, 142, 10532, 9858, -207, 3072,
- -2610, 0, 81, 1078, 2136, -266, 223, 931,
- -385, 983, 1029, 108, 2290, -491, 26685, 565,
- -140, -662, 680, -2206, -803, -777, -250, -467,
- 98, 2944, -12296, -4190, -2254, -748, -2076, 4780,
- -510, -221, 1428, -6162, 2693, 6238, -4030, 266,
- 6540, 2502, 5147, -4649, 1804, -10514, -3413, 2503,
- 2143, -1924, -3811, 3674, 4341, -1054, -3130, -1260,
- -576, 887, 25908, -773, 1186, 548, -606, -744,
- -995, 1320, -507, 279, 1803, -2451, 880, -31,
- -5, 1615, 770, -11818, 1062, -1126, 472, -297,
--12126, -1197, 1912, -962, 1241, 2348, 2332, -3047,
- 1561, 3844, 720, -387, 371, 2942, 1174, -2347,
- 1244, 10148, -1620, -11788, 1315, -31, -1867, 3450,
- -1589, 5180, 3184, -2614, -13, 130, 107, 297,
- 113, -1407, 29190, -544, -173, 990, 913, -1848,
- -990, 1230, 264, 1896, -6974, -102, -2232, 3826,
- -2269, -5027, 94, -12612, 436, -5979, 1757, 1757,
- -724, 2378, 2584, 728, -1022, -7274, 668, 744,
- -516, 420, -11866, 246, -1357, 2406, 3674, -2594,
- 1638, -3037, -2402, 1525, -7304, -1078, 1772, 9264,
- 12366, 202, 2, -728, 684, -437, 1446, -3546,
- 828, -2106, -2736, 964, -180, 6524, 2250, 514,
- -782, 675, 1418, -11225, 2760, -3970, -545, 9128,
- -6601, -556, -1966, -4625, -149, -198, -3330, -1575,
- -6198, 656, 674, 367, 1809, 155, -5126, 6109,
- -572, 4927, 1448, -1855, 1636, 8648, 2010, 8973,
- 3087, 10172, 34, -1183, -12, -1057, 192, -2955,
- 1034, -374, 2500, 9318, -4090, -5220, -404, -1022,
- -1458, -1367, 765, -1193, 1542, 302, -1337, -34,
- 1449, 1434, 2210, 404, -3277, -8024, 1363, -7591,
- 9096, -9179, 1176, -7311, 544, -8942, -713, -56,
- 2623, -35, 1623, 2212, 1733, -712, -1327, -320,
- -1966, 11352, -1276, -3804, -550, 520, -4848, 550,
- 1488, 944, 10756, -782, 5643, -2647, -6513, -3500,
- -2877, 1880, -6634, 2349, 256, 440, 188, -8428,
- -4580, 2479, 4763, -1807, -513, -4292, -1729, -6878,
- 448, -6706, -1162, 4938, -721, 5465, 1409, -8759,
- -898, -4254, -5230, -3886, -7969, 1730, 3656, 1198,
- 3537, 33, 4091, -2088, -7646, 1160, 2922, 855,
- -1254, -2616, -770, -685, -100, -577, -4927, -792,
- -2107, 9613, 2563, 5096, 6143, -3404, -8630, 4164
-},
-
-.cb2220m1 = {
- 32524, -324, 411, -34, -697, 818, -71, 2326,
- -142, -989, -1512, 358, -260, 3791, -575, 93,
- 224, 208, -1101, 32767, 1147, -203, 2015, 461,
- 668, -296, -3340, -38, 720, -993, 1765, -1344,
- 1323, 648, -997, 729, 581, 349, 861, -2035,
- 1791, -2142, -822, -1425, 820, -6555, -811, -15708,
- -912, 4835, 1500, -604, 527, -937, -640, -1240,
- 4692, 1259, 174, -12040, 450, 8196, 2796, -5123,
- 1595, 538, -101, -218, 5581, 367, -2700, 277,
- 2111, 2718, 1458, 155, -100, 3284, -498, 9961,
- -1505, -10336, -1170, 5337, 1032, -14947, 1154, -578,
--11773, -945, -660, 669, 2340, -1038, 1520, 713,
- 2663, 422, -1242, 1918, -234, -1793, -1580, -271,
- -5628, -2010, -12209, -1784, -4417, -2804, -3123, -4316,
- 126, 6353, -2391, -2088, 836, -2550, 521, -1258,
- 918, 4471, -528, 4243, -615, 3453, -6683, 1784,
- 790, 13200, 700, 322, -815, 6049, -290, 928,
- -1121, -1531, -878, -1150, 1404, 325, -530, -435,
- -254, -804, -2536, 589, 8439, -1087, -16248, -637,
- -1528, 305, -1577, 642, -22699, -139, 1319, 588,
- -3079, 800, -597, -1408, -1150, 3145, -868, 3244,
- -1004, 1004, -1459, -11618, -4557, -3643, -914, 4238,
- -626, 4025, 3227, 537, -4285, 2010, 747, 1595,
- 1599, 5994, -797, -911, 2854, -3426, -8488, -1899,
- -301, -2146, -111, -522, -1852, 3075, -3864, -1531,
- 654, 193, -11264, 5561, 304, 525, 346, -2761,
- -1124, 1134, 8354, -12460, -1023, -7634, -2750, -1518,
- 5001, 1480, -1039, -502, 1455, 586, 1012, -1270,
- 12435, 895, 1169, 466, -10696, -3861, 4381, 1790,
- 767, -1808, -537, -1057, -2374, -2058, 9992, -858,
- -1568, -678, -3812, -1520, 1521, 230, -1716, 13418,
- -1930, -979, 3272, 1116, -4555, -559, -320, 12080,
- 13696, -286, 652, 2420, 1725, -277, 213, -1046,
- 1642, -576, -1514, -973, -1501, 77, 537, -606,
- 1144, -680, -568, 1104, 2176, -969, 1657, -784,
- 1107, -1056, -59, -5607, 64, 11913, -178, 8703,
- 3744, 276, -50, -12807, 1122, -6138, 1901, -439,
- 733, 6829, 3001, -61, -1005, 3816, 3987, -3588,
- -778, 2257, 12101, 196, 13796, 355, 1407, 989,
- 101, 1041, 988, 1274, -1478, -1127, 1320, -442,
- 3452, -1717, 1244, -466, -868, -323, 502, 1243,
- -70, 897, 958, 2781, -2492, 788, 744, -12324,
- 1111, -11704, -452, -734, 19574, -45, -584, -2387,
- -830, 603, 380, 787, -2962, 2046, 2524, -2403,
- 699, -4144, 1587, 573, 588, 238, -88, 31,
- -278, -32768, -1173, -745, 667, -188, 1221, -369,
- -261, 322, -2054, 651, 100, -2092, 315, 1558,
- 596, -407, -146, -1234, -30970, -71, 633, 536,
- -1345, 1819, 655, 680, -1453, 492, -1265, -1292,
- 1780, -68, 1008, 215, -19980, -521, -3148, -256,
- 193, 916, 453, 86, 116, 108, 1518, -1420,
- -1501, 688, 669, 1196, -1579, -942, 868, 804,
- 110, 1126, 202, 1086, 23516, 1070, -1623, 747,
- -38, -116, 1176, 554, -2361, 1008, 1085, 1972,
- -1794, -96, 464, -20910, -1208, -3857, -466, -2173,
- 2461, 2364, -931, -684, 3056, -719, -936, 887,
- -3149, 1004, 7085, -2985, -9393, 5142, -9621, 150,
- 174, 572, -2232, -390, 1356, 160, -10796, 2256,
- 2238, 242, 1663, 485, 12378, 1236, 688, -2908,
- 1084, 1047, 4850, -72, -642, 1604, 152, -850,
- 670, 968, -3207, 1690, 105, -2516, 11539, 390,
- -1117, -588, -10771, 2879, 4742, -8351, 1571, -850,
- -605, -1959, 395, 12324, 1750, 2290, -92, 774,
- -2897, 1025, -1841, 546, 3904, 3908, 11494, 9,
- 1340, -11976, -525, 1522, -43, -43, -1860, -6160,
- -199, 2479, 4593, -2876, -2985, 1044, -62, -812,
- 10424, -2489, -1098, 796, -1292, -2070, 1096, -1944,
- -2145, -4374, 1041, -1014, 9036, -2142, 328, -8232,
- 152, -13336, -2225, 13716, -367, -558, -1942, 161,
- -472, 2224, -748, 3550, -809, -493, 2121, 1234,
- 772, 5146, 2485, -2282, 7546, -1441, 1595, 9176,
- 6208, 1292, 1704, 3968, -1500, -1974, -3519, -2826,
- 149, -903, 504, -187, -940, 121, -215, -615,
- -257, -1954, 958, 2057, -191, 21258, -726, 2081,
- 1278, 1670, -854, 2730, -8132, -530, 1004, 2574,
- 1430, -2536, -10851, 1389, 155, -140, 2158, 2762,
- 3807, 3850, -3728, -954, -11366, 709, 14727, 514,
- 694, -87, 857, -249, -419, 617, -418, -1144,
- -32, -2182, -839, 1449, -1072, -785, -246, 13634,
- 12488, 358, -447, -2262, 926, 1023, -901, -345,
- 2260, -1530, -1466, -2973, -2170, 2090, 44, -23476,
- 603, -1740, -345, -438, -3004, 1322, -3088, 1274,
- 341, -348, -534, 1055, 3026, -932, 514, 8958,
--15489, -374, 1077, 1166, 48, 1016, -918, -27,
- -410, -266, -1401, -3888, -2918, -2146, 2815, 1834,
- -875, 162, -678, 1876, -2033, 1999, -12854, -1563,
- 192, 414, 782, -3109, 1432, -4197, 2358, 8517,
- 784, 1256, -1362, 2938, -11355, -5184, -10314, -39,
- -2182, -1686, 241, -195, -232, -6169, 206, 181,
- -470, 1008, -599, -284, 733, -836, 648, -138,
- 2078, 313, 24432, 548, -441, 1446, -1628, -1218,
- -64, -716, -2456, 1987, -352, -1025, -1951, 1320,
- 350, 744, 2598, -984, -18328, 622, -4, -1572,
- 893, -3043, -4365, 127, -1, -226, -1696, 1332,
- -1360, 6756, 2596, 12059, 370, -3690, 497, 585,
- 1619, -778, 9174, -2046, 2214, 2004, 1133, 1069,
- 132, -250, -1555, -906, 561, -12904, -1039, -8006,
- 1876, 2300, -1116, 1895, 1782, 3734, -1108, 1338,
- -1409, -248, 16117, -1458, 156, -2626, 64, -1199,
- -3544, 4283, -3390, -404, 1426, -907, -2768, -780,
- -34, -18656, 2003, 515, 3171, -653, 762, -3352,
- -154, -1171, -452, -1590, -5936, 519, 1210, 502,
- -409, 2262, 695, 1028, 8652, 2532, -2636, 3472,
- -1186, 1350, -651, -639, 8382, -3234, 630, -10323,
- -2285, -1916, 826, -1449, -738, -344, 1022, -3248,
--20921, -200, 568, -84, 777, -1570, -2756, 2834,
- 26, 3878, -1709, 101, 1433, -2238, 305, 61,
- -1041, 2399, 628, -1509, -388, 946, 733, -1538,
- -650, 19935, 478, -10696, 850, -682, 447, 2311,
- 35, -1258, 2332, -11417, 1743, -834, 660, 3170,
- 2378, -2734, -762, -1151, -1802, -9324, 4625, 2304,
- -1186, 1180, 4894, 662, -7067, 869, 613, 1802,
- 4839, 3412, -5460, -862, -4202, 7876, -1057, 2872,
- -1336, 1731, -10788, 1088, 3433, 42, -939, 2479,
- 6425, 991, -1621, 3222, -2464, 2988, -29, 481,
- 11606, -2800, -8315, 7660, -3385, 1217, -728, -3670,
- 684, -2295, -724, -567, -2150, -106, -1920, -2143,
- 3465, 1968, -1089, -11953, -2704, 3049, -1351, 7225,
- 5727, -525, 2639, 1955, 2259, 6489, -1867, 1544,
- -3199, -4992, 2420, 4119, -2860, -9505, -2152, 10204,
- -1133, -1201, -1468, -2989, 4658, 578, 1115, 368,
- 1570, -776, -503, 1554, 1329, -696, -760, 575,
- -1527, -3865, 8372, -3378, -8137, -8392, -3471, -1854,
- -4852, 5270, -634, 608, 1289, -7660, 4983, -1266,
- -2070, -906, 3291, 2459, 4807, -4241, 5773, -2258,
- -4500, 2634, -13176, 6412, 282, -5849, 294, -626,
- 888, -1088, 656, 192, -630, -3405, -12469, 2882,
- 2184, 3920, 2715, -6852, -1111, 869, -161, 341,
- 1856, -9450, 2719, -579, -3840, -8763, 1153, -3532,
- -571, -766, 8301, 2936, -10501, -1073, 10068, -2930,
- 6308, -2747, 3093, -1710, -3865, -1464, -4447, 446,
- 898, 5386, -1074, -4651, 6205, 455, -1773, -1270,
- 6986, -2493, 4076, 10605, -2522, 977, 4098, 1153,
- -434, 4071, -2890, 2920, 9175, 2276, 4699, 642,
- -1067, -968, 508, -1752, 728, 3260, -500, 1414,
- 5554, 2761, 1973, -4704, 2127, 1397, -1070, -14536
-},
-
-.cb2224l0 = {
--12451, 389, 917, 1238, -626, -904, -1877, 2328,
--12808, -1345, 406, 80, 383, -3841, 1188, -907,
- 2369, -13409, 11191, -2547, -532, 762, -1627, 680,
- -2305, -811, -1118, 3232, 3413, -2010, -453, -6816,
- -4100, 1643, 11209, 933, -2272, 1440, -2465, -6862,
- 186, 1563, -8468, -1832, -1166, -596, -326, 105,
- -115, -352, -624, 31621, 129, -301, -615, -313,
- -176, 620, -5, -1354, -3563, 678, -301, 621,
- 904, -769, -1314, -956, -2294, -362, 381, -2398,
- 17085, 100, 3962, -830, 18705, 237, -1296, 3534,
- 1452, 259, 1690, -3106, -3624, -316, -16, 5900,
- 2195, -1008, 14335, 14173, -1637, 1130, 1110, 499,
- -1516, 500, -720, -494, -1010, -1264, -773, 1389,
- 212, 8036, 780, 608, -415, 931, -301, -2186,
- 2256, -706, 12972, -3461, -3695, 2073, -2768, -1525,
- -7539, -441, -753, 4558, -8171, -1751, -6885, 4077,
- 6714, 53, 1090, -3006, 3688, -1162, -59, 302,
- 928, -450, 238, 10809, 353, 698, -476, 172,
- -2198, -4377, -7518, 1605, 6348, 5147, -165, 165,
- -463, -93, 1251, 671, 587, -402, -227, -462,
--27960, 215, -56, -958, -657, 508, 98, -2811,
- -1443, 3076, 6218, -9760, -10465, -770, 345, 3076,
- -116, -2884, 2215, -2652, 1306, 2638, -124, -317,
- 366, 1461, -295, 5073, 460, 1920, 12216, -7032,
- 6816, 3037, -2630, -1087, -1315, 123, -582, -2137,
- 5061, 291, 1740, -214, 1920, -3470, 10895, 9491,
- 3558, -1256, -448, -10304, -2391, 1890, 484, 11057,
- 6636, 422, 2316, -1663, -348, 633, 1200, 1788,
- -1124, -24435, 140, 869, 738, 223, -1429, 602,
- 433, -196, -1127, -1937, -879, -310, -564, 1022,
- -4380, 7247, -3938, 4461, 2219, -8465, 9266, -4564,
- -3169, -3463, -477, 749, 2460, -776, 294, -171,
- 1072, 1748, 1000, -208, 1908, -998, -1898, -10485,
- 2360, -11950, -2412, -2609, 3885, -2738, 1348, -559,
- -1342, 9366, 1560, -816, 1178, 342, -175, 1286,
- 3014, 10641, 246, 3128, 6618, -305, 10906, 6359,
- -4395, 1415, 196, 11136, 1772, -3047, 3313, -1231,
- -1974, -3021, -1480, -1345, -830, 1551, 2521, -506,
- 7821, 7715, 5078, 8215, 2102, 1552, 2247, 3766,
- -3158, -1811, 631, 3980, -397, 9030, -1267, -1974,
- 1539, -360, -315, 796, -4749, 2076, -1017, 717,
- 2290, 11212, 9365, 1626, 379, 2060, 1329, 4,
- -25, -1348, 566, -1266, 1670, 2166, 13123, 42,
- 2416, -2170, -6380, 172, 316, 40, 300, -487,
- 402, -220, 846, -894, -1413, -2227, 1962, 19478,
--14756, 14377, -582, -770, -186, -1008, -1520, -722,
- -885, 2622, 311, -753, 480, 539, -1011, -1748,
- -832, -603, -2015, 869, -14860, -600, 2110, 484,
- -5874, 1532, 3290, -222, -4670, -33, -794, -2061,
- -1185, -96, 337, 515, -1887, 26, 20283, -455,
- -799, -62, -1083, 236, -1721, -569, -1259, 361,
- 1090, -226, 1480, 13367, -638, 940, 3736, 6419,
- -5995, 830, -6599, 4549, 1583, -9001, 1104, -1281,
- -1270, -94, 1104, -2076, 652, 2263, 1465, -25,
- 9046, -8139, -2646, -13200, -534, -15244, -1448, -1390,
- 452, 584, -314, -1192, 951, 885, 396, 776,
- 1303, 1298, -448, -32641, -234, -62, 31, -164,
- -1042, -82, -26, -272, -559, -164, 669, -500,
- 516, 1347, 9615, 1123, -1346, -1898, 8341, -10583,
- 2286, -5233, 1503, 454, -2024, 4248, -2298, -2117,
- 13390, -849, 2078, 1096, -651, -12232, -374, -812,
- -3729, -829, -144, 1213, -469, 1112, 1146, 816,
- 818, -912, -967, 907, 12, 2443, -759, -1833,
- -174, -838, 488, -1560, -18242, -558, 5510, -1316,
- 1758, 3957, -7130, -1394, 4962, 3870, -1907, -9247,
- 2217, -3880, -4413, 1893, -3085, -202, 599, 1307,
- 1574, -1070, -2593, -2722, 9506, -10170, 1105, 4879,
- 2208, 38, 5596, -5990, -3205, 35, 9405, -219,
- 618, 1308, 353, 3457, 1712, 717, -12937, 25,
- 2176, -2590, -1223, 528, 1318, 4588, 7678, 5743,
- -8430, -4487, 1364, 8082, -1727, -387, 469, 3172,
- 401, -2771, 694, 14554, -2278, 3640, -11084, 924,
- -593, -3841, -4338, 227, 750, 2974, -2834, -1765,
- 2133, -1181, 5149, 11758, 11949, 3538, 2442, 2801,
- 1457, -822, -3419, -2468, 191, -646, -975, -1271,
- 832, 3088, -495, -10022, 1817, 1319, -880, 1342,
- -1448, -3597, -3310, 8753, -161, -6550, 1422, -640,
- -508, 11542, -277, -165, 837, 7389, -942, 11009,
- -97, 1548, 1418, -445, 2105, -946, -8676, 5274,
- 8842, 576, -1392, -1737, -1276, 5491, 312, 3624,
- 2806, 2157, -537, 1656, 1982, -1300, -146, 463,
- 496, 16792, -140, -1755, -832, -2123, -399, 5811,
- -702, 2891, -3630, -1843, 346, 508, -364, -498,
- -558, 32048, -744, 90, -372, 430, 704, 871,
- 139, 772, 696, -108, -18, 310, -411, -798,
- 465, -165, -321, 745, -27861, -752, 499, -215,
- 172, 35, -196, -770, 274, -546, -96, -470,
- -8976, 9156, 581, 904, -4644, -7801, 3525, -607,
- 6444, 4058, -696, -1107, -632, 1475, 196, -933,
- 883, 1101, 278, 433, 544, -497, 4, -1882,
- 1504, 594, -30386, 218, 211, 850, -989, 319,
- -867, -42, 754, 498, -70, -562, 660, -11561,
- 54, 803, 425, 966, -1017, -1224, -12630, 1834,
- -41, 98, -1083, 3508, 1750, -1751, 72, -503,
- -38, 22211, 252, 88, 221, 690, 82, -1340,
- 508, 638, 832, 482, 51, 7954, 2702, -1176,
- 8830, -311, 2536, -6072, -4147, 5234, 494, -157,
- -1289, -5678, -1617, 1508, -140, -55, 713, 440,
--32583, 105, -394, -613, -972, 578, 1122, -32,
- 114, -228, 342, -1237, 1123, 1126, -188, -106,
- 11308, -3787, 563, 3423, -9926, 1623, -2551, -1448,
- -4125, 918, -1366, -476, -66, 4, 761, 164,
- -61, 20445, 238, 296, 492, -1126, -98, -1201,
- 14, -1840, -865, 1178, -869, 105, 907, 248,
- 1538, 2990, 11691, 7783, 1566, -6704, 2397, 594,
- -1825, -383, 4264, 1911, 468, 1018, -676, -2676,
- -7756, -2623, 10705, 2710, -8078, -5256, 1699, -2100,
- -355, -2086, 10828, 611, 18, -830, 978, -4181,
- 1324, -5262, -327, 1796, -9777, 1306, -1934, -8930,
- 9520, -2364, -3997, -10209, -6326, 1394, -1758, 868,
- 1192, -2916, -23, -1586, -296, 438, -279, -14171,
- -1554, -206, 2383, 506, 1181, 8298, -491, -2771,
- -4286, -7116, -1680, 506, 1729, -12965, -925, -985,
- 420, -1746, -267, -478, -11763, -1030, 187, -3878,
- 1516, 2472, -371, 29, 809, -1700, -152, 560,
- 1833, 14397, 968, -96, -3242, -2497, -76, 2096,
- 9593, -1200, 446, 1505, 8058, 1722, 501, 923,
- -1171, -9516, -2536, 7368, -2, -5304, -2440, -352,
- 510, 320, 301, 120, 687, -942, 137, 824,
- -316, 1312, 510, -1133, -27448, -404, 1041, 272
-},
-
-.cb2224l1 = {
--14840, -1361, 12733, 798, -496, 1691, -1668, -1730,
- 928, -3233, 338, -578, 156, 784, -787, -242,
- -618, -853, -1282, -11766, 3970, 12178, -2034, 244,
- -3411, 300, 159, 3494, -3060, -1459, -2484, -10680,
- 752, 227, -1612, -922, -549, 158, 2260, -7640,
- -4479, -4075, -2412, -7707, 600, -12358, 93, -1666,
- -795, -13060, 61, 511, -2102, -2122, 364, -157,
- 2310, -1552, 1260, 158, 9503, 7050, 7, -5902,
- -7098, 444, 3736, -1836, 3109, -2328, 457, -871,
- -327, -780, 661, 8684, 2530, -268, 954, 1380,
- -1029, 418, -136, -3515, 1953, -1688, -8623, -3292,
- 7758, 2796, 11643, -931, -501, -873, -444, -1342,
--13900, -246, -283, -1779, 998, -1318, 408, 1505,
- -462, 10667, -1813, 78, -16514, 360, -2029, 942,
- 1674, 171, 317, 244, 1183, 724, 760, 1634,
- 863, 793, 126, -326, 980, -629, 22219, -649,
- 1274, 717, 1355, -1853, -1792, -1017, -2104, -768,
- -1708, 2302, 2353, 11167, 10734, -3412, -2266, 75,
- -104, 425, -880, 2072, 2934, -930, 270, -2414,
- -925, 1023, -746, -236, -1620, 825, 1324, -101,
--19348, -1291, 585, 2165, 2891, 3662, -577, 1800,
- 408, -1486, 107, 351, -319, 1104, 956, 403,
- 628, -277, -57, 938, -32768, -71, -441, -208,
- -32, 191, 314, -171, 613, 749, 844, -472,
- -444, 952, 42, -8026, 2720, 1911, -2780, 12311,
- -122, 3569, -91, 6048, -776, 1694, -63, -1272,
- 3581, 1622, 2538, 190, -13108, -820, -3056, 1189,
- -1428, -244, -752, -6187, -3473, -697, 1368, 1043,
- 7702, 352, -140, -12999, -80, 12672, -1473, 3113,
- 1505, 667, 2392, 1767, 537, 1949, 657, -130,
- 980, 1743, 8269, 2380, -2311, 197, -651, 2531,
- 553, -1117, -396, 472, 4565, -12672, 2322, -360,
--12766, 2205, -2651, -10690, -218, 586, 5229, 34,
- 59, 1730, 1226, 2106, 4008, -1878, -9520, -1366,
- -1174, -290, -1037, 1642, 1234, 305, -1279, -642,
- 1126, -13199, -29, 642, 2928, 1936, -260, 588,
- 11690, 9282, -3362, 7732, 1073, 2738, 4688, -1507,
- -1461, -2271, -1131, 1969, -2152, 1637, -774, 66,
- -1190, -206, -491, -1080, 644, -378, 367, 17980,
- -1583, 2162, 918, -121, -432, 115, 5, 791,
- 1968, -2287, -1574, -9545, 11146, 3540, -4700, -515,
- -4548, 881, 591, 1044, -259, -978, 2, 232,
- 778, -198, -1161, -378, -83, 421, 282, 26564,
- -801, -1628, -1983, -301, 931, 886, 2196, 1453,
- 752, 2956, -3478, 490, -1420, 13303, 1293, -9466,
- 462, -12829, 11130, 8061, 593, 3697, -611, -534,
- -698, -1148, 1598, 293, -726, -698, 289, 180,
- 876, -369, -43, 234, -21629, -1448, -753, -480,
- 956, 994, 531, -916, 630, 720, -2300, -9544,
- -1418, 993, 2130, -2359, 2460, -339, -277, 1577,
- 12206, -3507, -1280, 1938, 871, -1850, -809, -3364,
- 6918, 1134, 5010, 8772, 2103, -9775, -1404, 5148,
- -1494, 1549, 1761, -812, 654, -611, 822, -229,
- -384, 10466, -337, 2207, 131, 2818, -2925, -3374,
- -8786, -8552, -2282, 88, -1058, 8571, 2900, -529,
- -1569, 1882, -981, 204, 2955, -4227, 4196, -3041,
- 10804, 1822, 82, 1936, 2380, 12992, -5659, -3449,
- 1329, -1668, 1291, -1726, 8328, 314, 2737, -677,
- 2384, -910, -878, 687, 640, -721, -912, -12772,
- -2079, -398, -1788, -2516, -8711, -1038, -985, -7151,
- -9057, 890, 459, -298, 918, -10061, 848, -716,
- 1822, 836, -9516, -985, -1379, -409, -2237, 1036,
- -1082, -1704, 1333, -1432, 11463, -2355, -5975, -1674,
- -640, -554, 8352, 2732, -5251, 4243, -354, 3662,
- -592, -9317, -1205, -1084, -995, 11288, -2098, -1620,
- 2367, -1286, -5312, -64, 540, -2327, -2703, -2013,
- -8649, -1306, -948, 1443, 664, 2400, 4706, 4061,
- 387, -20, 1859, 9283, -18175, 806, -1401, 1253,
- 596, 2176, -1682, 2209, 733, 1404, -6652, 2754,
- 950, 2346, 3629, -6875, 5069, -9302, 1472, 942,
- 1184, -10432, 960, 3987, 1985, 421, 300, -716,
- 938, 500, -160, 226, -87, -1648, -1857, -1977,
- -323, 2305, -13843, -4148, -2978, 5430, -3422, -1138,
- -2146, 1548, -1430, 734, -339, 8598, -4568, -496,
- 477, 4969, 2593, 2842, 8645, -2365, -7455, -2687,
- 249, 7516, -53, 219, 1139, -668, 566, -522,
- 1289, 33, -141, -920, 2526, -2797, 16456, -2000,
- -758, -194, 10984, 187, 1686, -4799, 9671, 1838,
- -1224, 1325, 656, -5434, 3207, 1813, 1833, 14375,
- 12259, -95, -536, -1746, -3568, -442, 964, -1472,
- 1345, 2692, -589, 520, 616, 357, 326, -1363,
- 28603, 700, 473, -908, -1129, 1046, 1106, -471,
- -472, -980, 29, 574, -350, -545, -585, -1936,
- 279, 882, -880, -52, -30552, 371, -154, -1275,
- -1914, 104, -110, 1122, -719, 729, -743, 360,
- 766, 198, -11674, 612, -10602, 1157, 186, -3132,
- 3070, 1535, 155, 774, -9432, 4966, -6717, 320,
- 5167, 112, 2727, 11228, 1368, 1864, 1197, -1519,
- 1504, 17863, 49, 2212, 611, -1788, 2932, 395,
- 32, -566, 2425, -9457, 673, 670, -247, 1617,
--12578, 1408, 462, -14935, 1438, -808, -1850, -784,
- 1856, -1648, 767, -1452, -1652, -1621, 1016, 1428,
--11203, 4217, -6410, 2570, -1016, -1720, -9036, -390,
- 62, -1245, 3027, -255, 1646, 1358, -907, -864,
- -118, 874, 268, 252, 104, -926, -552, -1206,
- 965, -208, -24472, 890, -1516, -630, -885, -804,
- -374, -22520, -1143, -777, 532, 185, 603, 1775,
- -1887, 413, -458, -1036, -211, 2693, 6976, -9498,
- 1437, 10163, 2450, -1574, 4941, 884, -470, -3366,
- 4664, 420, -568, 5703, 10, -1692, 143, 1592,
--10966, 2891, -2961, 3938, 1990, 1726, -5247, 3326,
- -6575, 584, -277, -441, 1679, -520, 1339, 1077,
--11462, -267, -351, 201, 10939, 4150, 3890, 1484,
- 2615, -676, -448, 2316, -1278, 9734, -3039, 2841,
- 964, -7557, 156, -7228, -120, 5533, -4322, 1796,
- 2555, -9912, -3038, 2236, 1190, 222, -1684, 3273,
- -1768, 6233, -6442, 8545, -49, -45, 2366, 293,
- 308, -689, 308, 368, -452, 1125, 2326, -2335,
--17793, 2027, -779, 734, -2032, 1246, -2898, 4174,
- -74, -40, -3105, -2135, 996, -12714, 3614, 4936,
- -1928, 1528, -4158, -1791, -2318, 907, -326, 22513,
- -660, 1022, 434, -564, 28, -112, 252, 372,
- -842, -2, 648, 2323, -614, 23377, -263, 486,
- -408, -362, -821, -724, 972, 1248, 444, -1741,
- -420, -1371, 1088, -565, 22, -394, -64, -292,
- -103, -501, -30510, -294, -266, 433, -700, 742,
- -756, -407, -961, -148, -1416, -1041, -481, 121,
- 346, 10240, 12629, 1476, -2647, 1350, -2012, -262,
- -5621, 714, 4398, -2732, -10473, 9834, -5165, -991,
- -557, -2733, -3460, 5779, 659, 1472, 2029, -2339
-},
-
-.cb2224s0 = {
--27522, 2628, -2486, 277, 874, -2351, 2725, 915,
- 994, -1209, -439, 2936, 46, 1014, -1816, -3561,
--14386, 3113, -10400, -1025, 2114, 1328, -278, 1182,
- -1820, 3928, -1062, -282, -1327, -1468, 5975, 2342,
- -630, -4217, 10116, -1254, -2646, -5210, -9942, 1904,
- 21, 504, 2325, 1443, 6470, 2598, 8130, 810,
- 304, -1059, -645, 14634, -3198, 4277, -669, -7170,
- 1554, -2321, 2386, -1072, 2483, -4141, 2841, 3414,
- 8014, -3141, 10857, 6634, 3138, 3199, -320, 36,
- -1366, -4129, 3157, 2602, 4273, -2435, 2645, 2986,
- -3712, -3995, -5476, -4693, -1664, 6384, -11201, 1320,
- 2184, -5102, -2984, -1569, -2116, -1513, 14284, -11182,
- -2925, -731, -1321, -6363, 1483, 3463, 1292, -2065,
- -357, 9108, 6371, 3840, -6905, -8918, 2906, -1658,
- 757, 1998, -580, -708, 2198, 1867, 960, 4522,
- 1896, -1674, -4943, 2695, -2465, -2078, 9755, -4853,
- -2602, 3466, 3897, -3633, 4918, -2049, 3730, -1982,
--10085, -3458, -1866, 32, -1706, 3648, -308, -942,
- -1630, 1730, 512, 14612, 3415, 974, 3079, 765,
- 897, -270, -1813, -1533, 1118, -2805, -2764, 1130,
- -1798, 4594, -3134, 964, -20082, 2574, 32450, -1379,
- 52, 358, -226, 1902, 257, -1071, -650, -399,
- -381, 2073, 2310, 2164, 8221, 1433, -629, 1440,
- 1120, -3362, -4642, 2000, 378, 1208, -2648, 4534,
- 3307, 13200, 2780, 3100, -3194, -10606, -11563, -4491,
- 2218, -4500, 622, 1313, 2682, 3003, -1387, -3886,
- -1567, -4864, 10899, -20606, -1606, -60, 602, 125,
- -730, -1112, 979, 325, -13, -185, 1241, -288,
- -552, 6042, -7049, -7359, -1456, 493, 11204, -65,
- -2170, -5248, 2248, -1046, 591, 2085, -2844, 244,
- -3454, 581, 1315, 3043, 304, -620, 405, -19944,
- 769, 1076, -1456, -694, 2560, -1046, 2514, 14552,
- 1586, -7027, -4710, 1366, 1552, 4354, 3296, 462,
- 600, 500, 3225, 5083, -792, 3199, -698, -3589,
- -2596, -3350, 2758, -3019, 5664, -9387, 4716, -3125,
- 3306, 6268, -592, -622, -4144, -6290, 4990, -748,
- 1854, -1042, -2996, -4279, 338, -1864, -8639, -11208,
- 932, -722, 1788, -1927, 450, 2191, 11828, -6400,
- 5364, -2236, 3212, 8340, -3229, -2846, -4676, -1825,
- 2628, -303, -589, 7728, -4216, -3866, -4400, -194,
--11316, 5646, 3716, 4827, 232, -583, 308, -1833,
- 2153, -2508, -46, 857, -9587, 2768, 5136, 1462,
- 5142, 7990, -3424, 1067, 7462, 4944, 98, 1014,
- -4750, 13824, 1130, 2334, 9393, 2416, -4519, 27,
- 2000, 929, -204, 481, -2780, -3720, 1267, 269,
- -5383, -1999, 1249, -4238, -9351, -7440, -5964, 6154,
- -6827, 3112, -2613, -164, 1604, 1245, -50, 8619,
- -4044, 4652, 2846, 8359, 5345, -2902, 2295, 4801,
- -5016, -6270, 2893, 2732, -3510, -2613, 4548, -6376,
- 4510, 10566, 1859, 1038, -8381, 2782, -1622, 159,
- -1035, -3232, -3766, 1580, -720, -4476, -3863, -920,
- -2135, -458, 352, -2645, 3029, 301, -1145, -478,
- 3696, -11700, 9930, 6649, 7290, 2362, 17226, 3238,
- 1786, 662, 971, -736, -647, 1745, -506, -777,
- 1458, 2406, -1417, -7933, -846, -2654, 1104, 618,
- -2783, -10168, -3322, 9498, -939, -2342, -1876, -1914,
- 84, 3468, -6533, 7796, -3797, -1318, -2183, 1310,
- -895, 4943, 1062, -4468, 142, -244, 884, 613,
--13963, -5853, -947, 18703, -964, 1090, 1070, 1388,
- -1572, -1110, 671, 1706, 620, -262, -2421, -2277,
- -5665, -5212, 4994, 2379, -593, 2048, 14489, 1165,
- -1775, -2093, 2466, 419, 404, 5429, 3089, -1350,
- 1975, 2281, 60, 599, -1600, 2286, 2358, 6698,
--16423, 3760, 666, -1309, -1346, 2786, 2364, 1448,
- 1114, 17956, -5301, 2430, 1178, -164, 2195, 3927,
- -122, -737, 1468, 307, -1863, 1592, -7714, -2428,
- 958, 220, 59, 4124, -1945, 11151, 8604, -2077,
- -4787, -4578, 1096, 2685, 6478, 8314, -6221, -3842,
- 2173, -43, 104, -2510, 3109, -2324, -4238, -4709,
- -3233, 3228, 11454, 2428, 578, 780, -1096, 72,
--22624, -1421, -4104, 226, 464, -1726, -1971, 2068,
- 1142, 1412, 1412, 798, -2605, -3451, -1104, -2224,
- -2250, -3470, -572, -1420, -1292, -58, -217, -21417,
- -172, -6368, 30, -2170, 95, 378, -2926, -2180,
- 2820, -683, 2018, -4313, -13469, 5396, 1808, -592,
- 4732, -6602, -5602, -983, -4130, -477, -1236, -2263,
- 3992, -12962, -1778, -2631, -2421, -746, 1964, 1754,
- -760, 2753, -116, -3860, 10246, -448, -1318, -100,
--10372, 1420, -210, 2768, 48, -2373, 7721, -3217,
- -328, 1543, -2527, 3709, 4024, -916, -4588, -726,
- -4302, -982, -14714, 3615, -1190, 9051, 199, 2252,
- 1348, -4204, 693, 1241, -14160, -2460, -2017, 2997,
- 766, -360, -450, -2919, -7976, 3210, -179, 8935,
- 670, 1155, 6888, -2249, 2729, 1810, 6283, 684,
- -9717, -1763, -921, -4578, 3941, -6408, 1431, -2742,
- -91, -2094, -2118, -9752, 2801, -2497, 147, -5901,
- -5270, 13170, 2810, 1576, -3191, 10253, 4226, -1340,
- 2456, 1079, 12541, -5124, -8356, -1000, -558, 180,
- -2070, -1880, -5718, -687, 10549, 1066, 220, -4147,
- -695, 3648, -3460, -3143, -1623, 2150, -11222, -2566,
- -6395, 3552, -4176, -698, 1248, 112, -4628, -960,
- -724, 1191, 2084, 15207, -346, 371, 190, 5345,
- -4283, -7482, 1354, -4424, -3775, -4143, 1444, -14876,
- -589, 2498, 1305, -486, 1628, -867, 1584, 1094,
- -10, -1260, -1046, 2528, 27472, 910, -1069, 829,
- -117, -1097, 770, 252, -1412, 2353, 2200, -11,
- 624, 8459, 6320, -9465, 1225, 2532, 5415, 9252,
- -1441, -1378, 1081, -1997, -3904, -14740, -5220, 3627,
- 5725, 6180, -5336, 72, 4638, 915, -496, 628,
- 1880, -420, 2800, -7143, -7578, 3180, -4210, -1111,
- 2979, -442, -182, 2778, 2398, -13878, 2209, -282,
- -888, 180, 3584, -1005, 2, 999, -3074, 1205,
- -4605, 5250, 17255, 2839, 2718, -678, -2651, 160,
- 1596, 4685, 2324, 3100, 3744, -1954, -11674, 621,
- -678, -6242, -3449, -1890, 3134, -289, -7162, 2268,
- -8437, -624, 4999, -5946, 13013, 244, -200, -1494,
- -1108, 3768, 445, 2429, -1264, 786, -2993, 3482,
- 2448, -968, -1184, 213, -772, 4931, 42, -3850,
- 2020, -17970, 84, 3016, -602, 1805, 731, 3522,
- -2606, -637, 25535, 680, 1083, 4138, 1602, 190,
- -1854, -962, -379, -2499, 2453, -362, -4552, 4689,
- 2168, -5930, -10552, -5585, -4694, 2447, 2047, 5420,
- 3908, -1449, -90, -68, 496, -12713, -2127, 1406,
--10766, 2438, 2278, 2962, -6411, -22, -1966, 2814,
- -1746, -383, -2381, -5981, 10920, -12354, -656, 2260,
- 5200, -1908, -2275, 4276, 1174, -932, -532, 2832,
- 601, 1551, -8434, -4170, -6411, 9099, -6886, 2243,
- 561, 2026, -3598, -1125, 646, -5188, 6017, -632,
- 772, -2919, -3776, -9938, 2461, -122, 128, -1416,
- -1533, 343, 1318, -13738, -1528, -6418, -1196, 832
-},
-
-.cb2224s1 = {
- 32767, -749, -1885, -806, 739, -1858, 3902, 1029,
- 332, -2122, 1240, 2705, 1362, 190, 1058, -1404,
- 1224, 1122, 1208, 190, 1984, -1355, 1694, -21000,
- -1012, 2418, -1269, -1154, 1113, 2291, -2317, 315,
- 12872, -2296, -1510, 1104, 11324, -1146, -1018, 1326,
- -902, 168, 647, -1828, -3838, -5682, 2732, -238,
- -134, 13450, 1570, 2424, 996, -3494, -3720, 4897,
- 5875, 149, -6367, 6659, -2329, 6916, 1134, 425,
--19014, -479, -1900, 3470, -1777, -811, 1723, -46,
- -2103, -1298, 2929, -4279, -639, -2443, 7231, -1187,
- -2145, -777, -3287, 4895, 8878, -9318, 289, 4015,
- -3148, -598, 2226, 11700, 114, 3237, 9586, -4570,
- 2592, 3614, -2272, -2829, -3356, -1095, -5290, 4709,
- -1867, -1930, -20722, 937, 892, 1415, 1544, 2950,
- 5090, 937, -1411, 123, -31, -1568, 338, -938,
- 5465, 5796, 480, -2782, 3351, -2489, -383, 1529,
- -5686, 2446, -693, -12796, -599, 1894, -1576, -2244,
- -4686, 10165, -1085, 10050, 2681, 1138, 2544, -1809,
- -806, 5278, -8730, -3740, -2343, 971, -3254, -165,
- -212, -4164, 850, 233, -13694, 442, 1073, 3854,
--12926, -2001, 3468, -765, 829, 2174, 1531, -6036,
--10848, -11009, 803, 1713, 2884, 1992, 75, -2989,
- 268, 346, 1998, 4798, 8976, -4632, 1863, -4127,
- -612, 4790, 10946, -1296, 8009, -1351, 356, -1711,
- 313, 2301, 1318, 8050, 700, 1218, 2270, -2156,
- 67, 1537, 1941, 3442, 13321, 691, 2344, 2594,
- 1551, 3853, 7279, -10441, 1006, -11862, 5532, -611,
- -582, 2257, -2873, 3993, -5133, -2264, -2478, 1576,
- 1834, -4931, 10264, -1429, -10404, 393, -3715, -1470,
- -2003, 384, 4869, -6780, -1297, 1572, 1043, 6980,
- -4382, -3005, 3698, 4176, -1348, -4972, 1574, 9815,
- -5995, -979, 3609, 3702, -8503, 668, 3354, 2552,
- 9183, -1175, 1224, -2859, 11176, 6088, -1355, 84,
- 1271, -380, 5336, 299, -690, -365, -8047, -3679,
- -3204, 1334, -13451, -1392, 2200, -3646, -1046, -4292,
- 741, -1701, 1722, 2061, -1358, 7266, -6356, 963,
- 2190, -1349, -1882, -14128, -4662, 3552, 565, -1109,
- 5413, 1239, -2618, 794, -2064, 11805, 9004, -2134,
- 2804, 946, 80, -2387, -1205, 11, 1642, -1825,
- -2324, -5018, 4208, 5285, 661, 12430, 1907, 784,
- 10864, 340, 18, -138, 2885, -2247, 17, 334,
- -3172, 2977, 970, 536, -1540, -516, -488, -512,
- -1334, -1930, -2418, 1078, 24837, 12, 2060, -252,
- -2536, -2206, -3179, -6785, -8842, 8736, 1393, 119,
- 1652, 10126, 856, 855, -742, -289, -2208, 3831,
- 6909, -6556, 2472, -245, -1729, 1460, -3014, 59,
- -58, 132, 3903, -3762, -1419, 13273, 2708, -7752,
- 84, 3525, -1305, -334, -13421, 5931, -4845, -2697,
- 666, 558, -1102, 632, -2946, 4153, -4018, 4516,
- 4875, 4460, -1567, 2233, 386, -754, 1256, 2145,
- -1692, -13046, 1581, -518, 4397, 1215, -723, 3413,
- -640, -5088, 1711, -714, 2536, 2433, -691, 10758,
- -8764, 5541, -2071, -1662, 12955, 12998, 1252, -94,
- 802, 2573, -2557, -66, -832, 106, -728, 1050,
- -811, -2684, 629, -16524, 1531, -1617, 1348, 204,
- 1722, 368, 554, -1752, 114, 1349, 1952, -1007,
- 2626, 2035, 8148, -2539, -4296, -4460, -8542, -3089,
- -1543, -857, -2617, -1765, 6642, 2167, -1531, -6881,
- 86, -414, -5896, -5152, 17445, 1129, -5006, 2936,
- -3432, -2226, 1176, 972, 1170, 530, 3390, 260,
- -2909, -3550, -5255, 1771, -382, -1690, 17070, 2688,
- 566, 2430, -1768, 3373, 1460, -3464, -629, 3119,
- 430, -3554, 8357, 7075, 293, 2955, -61, -6919,
- -4939, 3678, -6852, 652, 2206, 5918, -2768, -3022,
- 5721, -770, -1102, -1057, -2760, 3086, 5611, -160,
- 2714, -1042, 2569, -14248, 3846, 8212, 5392, 144,
--11896, 618, 1212, 3283, -3777, -715, -3870, 2528,
- -2900, 1645, -1786, -1852, 2776, -1348, -586, 234,
- -4, -1666, 46, 2095, -1987, -18728, -2980, 2501,
- 4042, 79, -1849, -2013, 8047, -1898, -108, 340,
- -4760, 2134, 9000, 347, 10365, 4779, 6660, 1694,
- -3253, -2282, -1488, 10406, -8054, -3414, -2934, -1611,
- 3172, -2195, 4973, 1249, 2888, -4054, -5738, -2995,
- -2282, 1977, -353, -516, 5322, 3225, -4907, 1303,
- -4656, 9947, -236, 9382, 2332, 2076, 1470, 3173,
- 4712, 2645, 559, 4904, 1511, -1715, -4856, 5750,
- -1276, -306, -5980, 14393, 1443, 85, 156, 7718,
- 793, 4199, 2122, 1098, 128, -1996, -1397, -20,
- -534, -13296, -1518, -2970, -1001, -6474, -6146, 8337,
- 5476, 3058, -526, -1295, 1623, -8791, 1257, 2006,
- -5725, 3035, -2917, 1280, -8479, 5934, 9870, -13131,
- 14, 1088, -9, 1969, 366, -3214, 192, 2764,
- 1499, 346, -2031, -2900, -2529, 1072, 11717, 5206,
- -44, -2514, -8900, 2892, 2132, 3635, 3735, 2726,
- 1398, 6035, -2830, -4568, 424, -8696, 1368, -3860,
- 1823, -2620, 4546, -2210, 1660, -1672, -10524, -484,
- 950, 11, -4494, -6220, -5653, -13332, 2868, 460,
- -4120, -4030, -3277, 522, -3403, 1126, -170, -1892,
- -4366, 1304, 3477, -1507, 1111, -594, 1670, -8416,
- -1690, 2492, -7109, 2531, 4131, -8123, -4884, 16505,
- -240, -63, 32099, 974, -1360, -2395, -2005, -1156,
- -877, -416, -922, 1857, 766, 71, 1380, -259,
- -272, -1924, 2498, -3290, -16045, -2064, 2966, 2936,
- -1265, 2121, 488, 3781, 1484, -1193, 4776, -1001,
- -669, 1569, -379, -604, -5, -1943, 757, 359,
- -560, 118, 17941, 2323, 215, 7621, -3582, -8130,
- -698, 9893, -2752, -417, -1262, -1504, 3319, 1186,
- -2192, 3014, 781, -3602, -6190, -7725, 3169, 2038,
- 1175, 612, 2477, -4136, -12152, 4538, 567, -116,
- -3222, -470, -118, -9257, -635, 3078, -11596, 93,
- -4178, 4150, 5985, 4414, -2110, 542, -1125, -1242,
- -234, 807, -1385, -2448, 824, 109, -1826, 3032,
- 269, 14188, 3468, 908, -12, 2290, 5758, 1685,
- 680, 5963, -2763, -173, -34, 3135, 1230, 2226,
- 2471, -9546, 2266, -1583, 729, 3506, -10664, -652,
- 2212, -620, 2762, -751, -6337, -4339, 4131, -1234,
- 5423, -2279, -2884, -929, -12582, 416, 2046, -3854,
- 11130, -2738, -670, -202, 6216, -7266, 9726, 1308,
- -1761, 4696, -1061, -144, 482, -1586, 4377, -5016,
- -3894, 2296, 4340, -555, -3003, -2117, -962, 100,
- 4548, -1870, -13885, 1351, -3226, -8114, 377, -391,
- -1344, -2148, 4756, -3518, -14429, -670, -238, 400,
- 1234, 4389, 1181, 1046, 425, -32, 840, -29846,
- 1580, -992, 1844, 1961, -1305, 1055, 418, 52,
- -641, 2430, -1773, -5323, 3341, -5367, 14027, 3051,
- 3864, 404, 4186, -1875, -5822, -4321, 112, 395,
- -177, 1080, -3008, 520, 8, 226, 1430, -1635,
- 8, -2632, -3249, -3595, 622, 564, 8404, 14463,
- 160, -7828, -4113, -16547, 848, 6320, 2311, 4074,
- -2050, 668, 1463, -2322, 1790, 864, 317, -594
-},
-
-.cb2224m0 = {
--17338, 5737, -912, 5906, -5315, 920, 2743, -2232,
- 1943, -753, 1696, -1818, -2272, -564, -1306, -527,
- -156, 9952, 36, 2524, 2053, 1841, -1670, 10622,
- 2532, -5616, -324, -1132, -1148, 1920, 10232, -75,
- -630, -10796, 1618, 1104, -2557, -603, 2115, 966,
- -3763, -3183, -851, 4502, -1565, 10062, 313, -709,
- 10707, 867, 3820, -2747, 3470, -1942, -486, 4092,
- -6289, -2363, 556, 3190, 5046, -1869, 2886, 10572,
- -948, -4191, 1544, -1727, 721, -3153, -712, 934,
- 1610, 1070, 1248, 10645, 2340, -11102, -2744, -353,
- -65, -4973, -1782, -1037, 1210, 1192, 1138, 1106,
- 9422, 652, -9595, -1663, 460, 9107, -2827, 775,
- 1131, 4732, 93, 476, 387, 32767, -161, 266,
- -406, 604, 675, 83, -589, -639, 220, -830,
- 2200, -142, -2000, -128, 902, 823, 287, 717,
- 1857, -1626, 208, 2784, -72, -19310, 6190, -2063,
- -9101, 3419, 1721, -2092, 332, -6533, -7594, 1138,
- 807, -2582, -668, 410, -497, 1526, 96, 944,
- 3319, 1294, -335, 1964, -380, -618, 3069, 101,
- 18964, -2298, -10304, -1190, -998, -1384, -11466, -256,
- -4475, 4027, -3532, 1828, -1311, -3417, -3925, -221,
- 27688, 2277, -1227, 1043, -399, -3327, 515, 1665,
- -616, 2724, -546, 4608, -576, -103, -9064, -1281,
- -563, -3588, 2174, -824, 3379, -2360, 354, 844,
- -7044, -2295, -2613, -11152, 1006, -1064, -17007, 1180,
- 387, -8448, 836, -578, 2621, -356, -1476, 2362,
- 822, 4547, 118, -11628, 352, 367, -958, -12423,
- -65, -1591, -2304, -2880, 1684, 1708, -1693, -781,
- -71, 10012, -534, -3672, 417, -2048, -1955, 10491,
- -1257, 861, -414, -4058, 3042, 1529, -5823, 6877,
- -3918, 993, 221, 2576, -7780, 170, -648, -139,
- -3410, 7974, -756, 2657, -596, 12527, -199, 13752,
- 2198, -938, -2265, 1736, 257, 1517, -676, -1165,
- -2874, -2433, 123, -829, 2605, -10270, -3158, 3624,
- 2072, 6960, 1490, 4634, 455, -8175, 1139, -4545,
- -1491, 3727, -8738, -1951, 593, 14, 2897, 2490,
- -2273, -1436, -10992, 3005, -4392, -3434, -4561, -1014,
- -9506, -1609, -1248, -1593, -190, -10472, 3264, -2274,
- 5097, -633, 473, 427, 725, 1577, 11032, 318,
--12228, 78, -1116, 441, 1930, 4041, -648, -4324,
- -224, 2738, 8826, -40, 327, 1761, 2371, 171,
- 4039, -3411, -2495, 1150, -12181, -1704, 35, 528,
- 417, 626, 1866, -472, 466, 905, -854, -875,
- 1194, 24371, 488, 26, 695, 1777, 798, -169,
- -16, -1252, 395, 871, 1170, -635, -1637, 2094,
- -5427, -16393, -384, 3872, 33, -687, -1777, -4160,
- 3020, -1906, 3868, 699, -400, 6755, -3253, 12699,
- 1474, 7312, 991, -646, 26770, 2524, 2144, -500,
- 1096, -1869, 1036, -1707, 521, -2091, 1445, 2335,
- 107, 238, -227, -120, -32768, 591, -257, 867,
- -1231, 650, -465, 356, 431, 762, -516, -594,
- 512, 242, 2298, 1012, -1538, -11748, 3551, -5608,
- -2174, -2428, 10557, 625, 1002, 27865, -589, -1527,
- -1552, 156, 1905, 1041, -4190, 2300, 1603, -980,
- -1764, 484, 1555, -2664, 381, 11676, -8848, -3060,
- 675, -646, 736, -1279, -1261, -1988, 543, -1880,
- 1917, -2165, 2846, 11863, 2076, 10381, -307, 4354,
- 73, -2788, -2464, 964, -218, 1552, 1846, 1470,
- 577, -594, 725, 30798, 43, 13, -1474, 260,
- 1218, 1433, -114, 1020, -648, -678, -1879, -65,
- 791, 366, 8547, 931, 1091, 1018, 16312, -1116,
- -777, -1098, 404, 180, -899, -2865, -10089, -751,
- 40, -2358, -2980, 3574, 7905, -190, 9207, -18,
--18766, -270, -5300, -2023, 2422, -1189, 1267, -1085,
- -704, 6823, 2164, 2, 125, -2319, 411, 591,
- -488, -566, -3394, 304, -12375, -268, 11098, -150,
- -2392, -1255, 3172, 162, 1295, 5897, 7944, 6019,
- 3329, -2014, 2957, -4933, 4805, 2780, -5453, 2680,
- 3220, 2784, -549, -19908, -1222, 550, -3540, 1822,
- 4082, 2399, -6844, 2145, 938, -597, 122, -20,
--14986, -1620, 1575, 561, 408, -6305, 760, 1634,
- 2652, -8301, -2988, 1864, 2524, 3228, 7466, -2620,
- 410, 1364, 1740, 2204, 1999, 1704, -2601, -351,
- -104, 10688, -7166, 134, -346, 11852, -13322, -3171,
- -1230, 1109, -2336, -962, -563, 1030, 2832, -969,
- -1997, 3233, -414, -8246, -2074, 2737, 3557, 1625,
- 1036, 845, 1848, 1710, -10388, -4586, 6915, 2734,
- -8693, -667, 1568, 1758, 2396, -3262, -2497, -1472,
--11848, -689, 3379, 1692, 1449, 2844, 8524, -15598,
- 337, 590, 3303, -1594, -2548, 4529, 433, -1921,
- 920, 1061, -1693, 191, 44, 957, -2397, -1126,
- 41, 2164, -1587, 568, -17290, 4687, -1028, -403,
- 1169, -1282, -1602, 242, -1234, 1870, 1067, 2444,
- 1752, -2552, 8775, 1384, 5683, -4770, -12436, -680,
--13344, -196, -276, -299, 734, 12378, 2364, 327,
- -1494, 560, -90, 3394, 496, 2357, 629, -17,
- 1040, -706, 589, 294, -1135, 25012, 444, 1206,
- -298, 1424, 1524, -2188, -64, -1101, -1998, 374,
- 1377, -1382, -11349, 1456, -171, -2369, 6966, -2808,
- -8987, 3390, -811, 671, 3032, -3396, -9815, 2246,
- 4418, -678, 1851, -1592, -11038, -1194, -3612, 2589,
- -250, -495, 1203, 1348, -805, 1853, -345, -555,
- -8755, -9695, -3768, -1506, -8172, -322, -7163, -6319,
- 2052, 116, -4459, -2328, 4857, -2569, 1419, 959,
- 1138, 7034, 4836, 3449, 6826, 13411, -893, 981,
- -2060, -3710, 3177, -761, -1128, 4386, -127, 6698,
- 3426, -2922, -61, 408, 1426, -1238, 15468, 94,
- 373, 3597, -2432, -1989, -859, -8976, 2938, -777,
- 409, -206, -7758, 3384, 295, -466, 29, 7925,
- 2048, 930, 2296, -10030, 330, 7864, -1004, -385,
- 2130, 388, 3587, -4480, 1560, -12768, -2606, 8178,
- 771, -3519, -1590, -592, 2192, -1126, -77, -3947,
- 1868, -1304, 11107, 781, 6240, 4134, -3314, 407,
- -6125, 5168, -503, 2155, -990, 143, 219, -9950,
- -1186, -1446, 1930, -8963, -4084, -6141, -976, 153,
--13665, 564, 13631, 138, -269, 379, 1333, -1710,
- -940, -511, 1214, -2190, 1347, -1397, -1321, 94,
- -1802, 6627, 1306, -12347, 2780, -1091, -4362, 5047,
- -446, -3472, 6064, 1075, 478, 769, 58, 802,
- 562, -1581, 28580, 194, 1338, 573, -555, 617,
- -409, -1249, -8, 1133, 952, -120, 2502, 5313,
- 969, -1664, 1769, -12199, 5551, -402, 4862, 3270
-},
-
-.cb2224m1 = {
- 32767, -54, 1385, -206, 19, 522, -1176, -667,
- -260, -1388, -1751, -2234, 228, -343, -893, -898,
- -1004, 2517, -232, 20996, 507, -1857, 2574, 840,
- -615, -1922, 660, 844, 52, 1272, 609, -692,
- 21805, 938, 678, -399, -22, -1839, -996, 1560,
- 218, 3973, -6547, -1151, -3914, -789, 938, -11509,
- -2282, -606, -327, 3088, 797, -1540, -7598, 1378,
- -100, 2108, -1907, -11671, 1538, 11136, 310, -2096,
- -3037, 3181, 1731, 2043, 3424, -1098, 2046, 545,
- -1778, 605, 932, 832, -2356, -1498, 1129, 11542,
- 119, -10994, -3720, 4316, 346, -9141, 3921, -918,
- -5476, 372, -318, 9254, -681, 4896, 1587, 1620,
- 1850, 4057, -1507, -362, -1074, -328, -1502, -3092,
- 2735, -378, -11572, -1292, -2575, -3397, -7566, -8977,
- 1670, 8659, -655, 884, 1815, -9348, 570, 394,
- 1670, 1942, -195, 386, 553, 8885, -9206, -624,
- -2312, 15852, 782, 562, -1497, 720, 1804, 1415,
- -3809, 3783, -1918, -3496, -637, 581, 1161, 961,
- -960, -930, -1673, 904, 11510, -2286, -9964, 2964,
- -5752, 2229, 786, -1479, -18882, 1517, 128, 3282,
- 157, -2178, -564, -6029, 766, -4599, 3620, -4380,
--20114, -677, 2134, -93, 1486, 648, -4790, 1862,
- -1476, -56, -3443, -2622, -2806, -1185, 122, 1801,
- -1547, 12241, -2785, 2386, 56, -4075, -10964, -832,
- -4744, -1350, 2849, -255, -1375, 163, 1306, 37,
- 2304, -1396, -11234, 9712, 1732, -2262, 3632, -431,
- -579, -4045, 806, -12168, -1309, 840, -1474, 918,
- -1240, -1601, 48, -4137, 6934, 3968, 7370, 4088,
- 8648, 2351, 1466, 615, -12314, -2347, 4382, 862,
- -4288, -3138, 1886, -4357, 375, 1949, 73, 287,
- 135, -60, -1498, -2427, 1263, 3322, -582, 17508,
- -1202, 1558, 3351, 484, -439, -571, -370, 11952,
- 11656, -1407, -1410, -2976, -459, 397, 1980, -1374,
- 1237, 5044, -2074, 405, -10650, -174, -12556, -1962,
- 4569, -1293, -200, 3106, 343, 748, 1918, 1084,
- -670, 3, -1070, -397, 3965, 9966, -609, 9691,
- -900, 137, 2305, -5944, -944, -1500, 638, -703,
- -582, 10098, -523, 776, 1266, 4860, 6213, 1181,
- -5634, 518, 9116, -4740, 10683, -547, -1295, -91,
- 104, -3115, -1724, -17, 1953, -745, 694, -474,
- 12248, -596, -674, 765, 674, 4494, 1205, 5883,
- -1638, -3996, -664, 8694, -5620, 3968, -717, -10425,
- -285, -12605, 368, -3904, 12363, -1288, 1242, -1497,
- -3117, 2396, -220, 1700, -2788, 250, 107, -150,
- 345, 681, -44, -2466, -389, 2098, 312, 54,
- 2734, -22225, -1232, -1778, 1063, -1586, -6658, 344,
- -2889, -4348, -3685, -2100, 12, -1755, -6401, -149,
- 8150, -10689, -748, 1443, -32768, 1698, 1461, 216,
- 1373, -2814, 1014, 1135, -227, -1309, -616, 1566,
- 395, -724, 852, 1579, -9647, -1214, 728, 329,
- 9244, 179, 7204, -836, -3954, 168, -5722, 152,
- -2886, 472, -651, 5114, 8734, -71, 11406, 1098,
- -1452, 1190, 598, -880, 14611, 12540, -1523, 1340,
- 1015, 1510, -208, 206, 1314, -1532, -246, -3210,
- -1637, -197, 197, -32768, 1448, -191, -1720, -217,
- 1021, 973, -2099, 56, 606, 39, -1569, -1205,
- -2375, -2156, 4798, 2504, -11914, 933, -6015, 2657,
- -2911, -5173, -1964, 1576, 5268, 1190, 675, 856,
- -1718, -4332, 166, 1556, 19005, 2040, 1198, -2170,
- 1824, -3409, 121, 830, -252, -525, 289, -1701,
- 292, 854, -1150, -1108, 171, 511, 22114, 662,
- -1263, -540, -2306, -2332, 869, -5191, 186, 536,
- 410, -7576, 590, 13625, 3519, 3858, -2787, -376,
- -6506, 891, 5025, -2054, 8316, -2115, 7668, -5808,
- -2464, -2422, 1541, -3851, 1578, 420, -617, -6507,
- -858, 160, 3876, -2830, -5970, -3295, 9829, 1099,
- 1617, 3502, -3124, -4116, 138, 287, 914, -548,
- 1056, -1546, 1218, -227, 11632, -574, -996, -9894,
- 808, -5868, -1457, 8374, -2086, -280, 1038, 528,
- 1862, 284, 3926, -144, 7168, 1224, 11628, -221,
- 1018, 1683, 922, 561, 6910, 1895, 3044, 12613,
- -74, -1424, 1654, 8872, 2255, -990, -2039, 269,
- 9558, 10122, 958, 466, -1948, -1242, 1042, 886,
- -1143, -3444, -8720, 1918, -300, 19074, -1629, 991,
- 908, -896, 1207, 3602, -4802, -2912, 4100, 2936,
- -1344, 459, -6904, -714, 524, 171, -1430, 1454,
- -2725, 1130, -757, 2861, -11174, -2768, 5466, 3662,
- 110, -1999, 12376, -2173, -2508, -2838, -2025, -4378,
- 134, -9856, 1738, 1027, 1428, 38, -1560, 12824,
- 13932, 549, 586, 720, 923, -1040, -2827, -3272,
- 1902, -2113, 2624, 3296, -34, 12291, 1449, -12138,
- -796, 186, 2777, -1007, 3276, -587, -1917, -130,
- 2120, -564, -364, 1005, -615, 1504, -2412, 9219,
--11412, -2490, 1262, -2720, 1608, -3276, 1294, 1882,
- -188, 7090, 6029, -4207, -2739, 72, -10035, -1672,
- 1509, -124, -1649, 420, -3623, -1069, -11225, -754,
- -388, 790, -3209, -330, -2632, -11920, 3178, -1788,
- 2585, 4146, 1944, -2757, -10616, 220, -14136, 2158,
- -274, 2010, -362, 1107, -348, -1990, 96, -985,
- 1599, 1566, 1393, 304, -1380, -924, -285, 620,
- -30, -902, 26210, 1485, 1042, -1160, 352, -177,
- 1245, 1879, -18, 727, -421, 223, -1298, 1066,
- 962, 1306, 3866, 870, -18780, -3873, 107, -1408,
- -1261, 808, -818, 1738, 1439, -2156, -1499, -2108,
- -4626, 4039, -964, 16682, -1169, 266, 9373, 1238,
- -2728, 2381, 12159, 2155, -472, -2293, -513, 3808,
- -690, -2190, -1139, -6, 1379, -22803, 1380, -612,
- 308, 1394, -902, -1454, -2620, -1080, -2864, -3301,
- 108, 218, 8718, -617, -1098, 1436, -2005, -3966,
- -2658, 6152, -874, -4636, 8705, -3382, -12072, 418,
- -1837, -12582, 270, -788, -1174, 2156, 461, -297,
- 478, -632, -356, 5796, -12024, 416, 2602, 3544,
- -1240, -970, 4874, 7221, 704, 8940, 2316, 1174,
- 2537, 5380, -5, -1818, 3020, -4120, 7042, -9618,
- -1622, 3576, 2455, -298, 451, -5298, 7371, -1570,
--12956, 9758, -216, 889, 5395, -2779, -4036, 1736,
- -1871, -2036, -1119, 1847, 912, 2292, 850, 220,
- 1300, 2228, 399, -2885, -2696, 2399, 3179, 6266,
- 1629, 13091, -232, -5322, 1397, -724, 1666, -2012,
- 3643, 1400, -2724, -18007, -506, -103, 1318, 2473,
- 965, -587, 1135, -904, -510, -10767, 1937, -585,
- -73, -1662, 3021, 340, -12475, -1618, -1, -1914
-},
-
-.cb2232l0 = {
- -9947, -673, 522, -36, 396, -433, 949, -442,
--12495, -2186, 4280, -997, -1715, -7385, -379, 3498,
- -572, -9897, 6686, -4736, 577, 1866, 659, -123,
- -1682, 420, -866, 4458, 5821, 3155, 7929, -5562,
- -1798, 3086, 8556, -65, -8943, 2354, -4187, -3798,
- 627, -1859, -9760, -1811, -1724, -45, -1838, 1638,
- 499, 148, -335, 20916, -264, -556, -269, -1014,
- -1531, 711, -519, 462, -5117, 3944, -950, 8277,
- 878, -4803, -5003, -4402, -4722, 2988, -144, -6887,
- 10661, -909, 700, -2287, 12126, -101, -761, 1836,
- 827, -609, 538, 442, -4504, 1812, 3818, 7359,
- 96, -555, 1598, 10040, -554, 924, 3426, -1786,
- 2620, -2132, 867, -519, -2299, -672, -508, 201,
- -2457, 10872, -5003, 5422, -8890, -104, 2579, 940,
- 401, 871, 11167, 1216, 1054, -2876, -1523, -3950,
- -1229, -3410, -428, 3648, -9389, -3025, -1752, 7583,
- 3953, 1938, 3899, 1435, 8170, 1019, -2320, 1299,
- -1152, 226, 394, 11328, -1471, 604, -184, 567,
- -3704, -5723, -5938, 423, 9362, 4546, -3318, -3395,
- 5084, -4341, -1781, -2619, 1078, -365, 151, -413,
--21591, -968, -202, -183, 849, -481, 407, -11,
- -2708, 2472, 2689, -9232, -9482, -1776, 645, -1510,
- -1410, -6115, -114, -2550, 1922, 1668, 288, -1302,
- 948, 1967, 52, 2393, -1975, 374, 17358, -1332,
- 5303, 3195, -2674, 4784, -1418, -1359, -57, -2126,
- 4618, 8890, 6455, 1181, 76, 374, 9585, 8762,
- 672, -642, 666, -6485, 1751, 3255, -934, 6196,
- 892, 171, -102, -44, -326, 1330, -320, -480,
- -842, -22376, -561, -141, 635, -6528, 5711, 2400,
- 838, 2846, -3212, -5341, -5479, 4961, 2110, -7480,
- -4215, 7964, -1308, 1219, 1541, -4418, 6293, -4522,
- -4887, -5760, 2790, 1441, 6135, -1133, -1627, 1235,
- 914, 572, -1043, -1473, -519, -4618, -1228, -12212,
- 1101, -10794, -4292, -4355, 6431, -588, -992, 612,
- -1771, 6751, 4871, 581, 620, -352, 277, 727,
- 2226, 8552, -43, 2295, 9409, 1122, 7618, 1885,
- 1192, -1432, -1103, 8666, -2078, -403, -1787, 1572,
- -2200, -7705, -6743, -1277, -1228, 955, 7613, -1536,
- 8530, 5703, 5446, 4251, -853, 4910, 1578, 2832,
- 1274, -2610, 243, 2820, 951, 9240, 1617, 605,
- -6755, -2728, -5658, 3866, -157, 1215, -8470, -2038,
- -189, 10411, 7444, -376, 407, -1128, 770, -410,
- 503, 1707, 786, -529, 82, -27, 21512, -282,
- 81, -1129, -686, -555, 2674, -99, 1284, 2216,
- 1238, 404, -3398, 1010, 3966, -1134, -2682, 14222,
- -1581, 9779, -1114, 848, 1905, 2129, -3937, -4742,
- 1229, 8051, -4344, 3914, 4273, -659, 159, -1188,
- -1844, 912, -1256, -478, -16158, -2869, 959, -2096,
- -2166, 2360, 7861, -2718, -6358, 7653, 6639, -3239,
- -1690, -1242, 3439, 1254, -954, 604, 17512, -288,
- 2412, 211, -298, 2656, -5217, -1770, 892, 1979,
- -1482, 3498, -40, 10424, -1038, -1862, 9905, 298,
- 77, 2179, -4444, 2580, -2069, -6473, 61, 84,
- 1035, -645, -662, -824, -743, -104, -1962, -124,
- 4976, -5378, -1254, -7055, -3474, -10695, -1254, 2547,
- -694, 3194, -82, -2634, 230, 358, -12, 1594,
- -90, 598, -76, -21136, -1278, 846, -84, 259,
- -2536, -4442, 2337, -1606, -3264, -3126, -591, -1295,
- -2440, -2592, 10888, 5821, -862, -5070, 10402, -10633,
- 159, -2660, 894, -2112, -1774, 3732, -1020, 422,
- 9487, 1608, -992, 2046, 275, -10676, 2606, -999,
- 477, -1868, -1690, 4764, -6419, -7550, 8159, 529,
- 2308, -394, -2394, 2826, 6680, 496, 3628, -646,
- 3186, -657, -2260, -1416, -9202, 496, 6624, 2441,
- 1554, -2195, -8458, -3459, 466, 6706, 1056, -8777,
- 5436, -4000, -3130, 4794, -6127, 2008, 1602, 195,
- 558, -1362, -880, -2662, 9726, -9793, 2989, -3182,
- -2378, -1338, 1086, -4682, 372, -399, 11129, -601,
- -666, 5206, -1106, 362, 3155, 328, -9862, 719,
- 1602, 998, -2342, 857, 1510, 476, 7256, 4652,
- -5750, -4991, 4611, 8718, -4434, -4119, -351, -1606,
- -1033, -3717, 3585, 9381, -1594, 5052, -7414, -205,
- 2356, -5949, -8738, 1526, -1838, 4760, -5444, 623,
- 112, -2863, 5710, 4920, 9497, 3759, 10748, -201,
- 716, 747, -2559, -4077, -449, -741, -136, -1303,
- -572, 1886, -986, -10529, -51, 1360, 2418, 116,
- -1490, 1928, -9977, 4720, 227, -11212, 3730, -2996,
- 1300, 9935, 356, -4618, -384, 972, 3174, 3732,
- -803, 2666, 790, 2067, 2343, -1209, -10147, 21,
- 9066, -4564, 2508, -176, 264, 9834, 3360, 7278,
- 9386, -1274, 522, -50, 4150, -884, 592, -688,
- 309, 20750, 672, -1326, -346, 366, 2058, -607,
- 633, 620, -677, 330, 69, 432, 319, 436,
- -300, 21845, -318, -676, 320, -386, 889, -724,
- -1394, -2664, -431, 2046, -136, 5520, 6700, 1192,
- 5779, 9386, -3541, -5638, -16125, -259, 545, -267,
- 1972, -2366, -43, 615, 251, 1003, -980, 2262,
--10519, 12166, 2007, -884, -1560, -1250, -491, -438,
- 820, 1212, 3512, 354, -1066, -46, 98, 315,
- 8532, 944, -1297, 8011, 1029, -383, -1606, -8381,
- -1650, 2852, -958, 1757, -4270, 2160, -9283, 2918,
- -3718, -224, 6154, -5671, 3764, -554, 5214, -2526,
- -31, 547, 6, 1633, -4562, 1424, 1177, -866,
- 1648, 653, 6056, -1845, -1271, -350, 596, -2286,
- 9893, -6594, 1099, 630, -537, 230, 972, -134,
- -491, 79, 306, -74, 253, 208, -1804, 73
-},
-
-.cb2232l1 = {
--11397, 378, 12845, -1813, 342, 329, 1165, 550,
- 556, -115, 755, 117, 2511, 260, -1189, -1406,
- -1528, 1866, 3300, -9678, 1025, 10413, 199, 2878,
- -3572, 8701, -1895, -1189, -576, -3384, -162, -10866,
- 3253, -1267, 91, 2277, -86, -3394, 6576, -2475,
- -1136, -4295, -1610, -8064, 297, -8908, -4433, -2954,
- -82, -11426, -4610, 2063, 1522, -7972, -495, 1799,
- 2922, -5179, -865, 4739, 11072, 3927, -483, -11111,
- -2375, -1432, 1210, -1342, 2418, 1688, 852, -64,
- 133, -4582, -7136, 10558, -3417, -3162, 2033, 3149,
- -3050, 2532, 568, -2444, 4082, -2859, -10350, -4983,
- 6633, 230, 5954, -1140, -657, -998, 1156, 736,
- -8894, 64, 939, -260, -1704, -526, -1330, -869,
- -2427, 12377, 1296, -120, -10560, 1794, -9090, 1487,
- 7162, 519, -382, -3234, -66, 1294, 2363, 1482,
- 498, -4053, -752, -154, -587, -293, 16533, 65,
- -1211, 1666, 291, 2820, 2222, 2, 865, 344,
- -1206, -1214, -2162, 8842, 11063, -2093, 1896, -857,
- -144, 321, -9548, 4464, 5038, -282, 1160, -194,
- 823, 3479, -8234, 5834, -320, 7114, -184, -2663,
--11670, 472, -2013, -1282, 4390, 4453, -2126, -2483,
- -900, -6262, -2237, -539, -1134, 164, 426, -8969,
- -1746, -1960, 8172, -2127, -19948, 657, -712, 344,
- -443, 458, -564, 56, 756, -157, 274, -1324,
- -3372, 2981, 635, -9454, -4916, 2884, 2316, 8200,
- -1452, 2135, 1785, -1054, 82, 5007, -4164, 642,
- 9241, 5091, 1002, 2467, -8409, -854, -861, -2317,
- 405, -1810, -793, -7907, 496, -1005, 3373, -1016,
- 9527, -542, 1672, -9105, 280, 11170, 273, 908,
- 89, -233, 10850, 870, 436, 1630, 3328, -499,
- 5091, 1224, 9135, -480, -1134, 2428, -2904, 5077,
- 2014, 2859, 4277, 7763, 8719, -11474, 1619, 1167,
- -3188, -1063, -433, -4291, 2646, 1024, 2008, 317,
- 746, 327, 6824, 1174, 8978, 5254, -8948, -136,
- -2602, -1442, -698, -950, 1800, 296, -1016, 1653,
- 3771, -9326, 4536, 7033, 4729, 6630, 1042, 167,
- 11485, 12338, -147, 2834, 611, 1844, -313, 486,
- -916, -887, -1423, 642, 242, 75, -1875, -645,
- -1239, -2118, 1458, -272, -1703, 949, 778, 21826,
- 214, -1320, 310, 2680, -1542, -2202, 1072, -132,
- -2067, -3593, -8293, -10331, 9030, 402, -2702, 2984,
--12068, 3170, -1098, -1175, -1188, 2998, 1159, -1712,
- -904, 236, 42, 823, 548, -546, -1954, 15989,
- -2212, 1886, 2300, 2293, 2606, 2905, 2365, -1214,
- 1592, 1362, -2210, 1674, -1892, 15049, -1012, -2824,
- -792, -11447, 11144, 4853, -357, -1230, 748, 1212,
- -294, -424, -2720, 78, -2149, 966, 7794, 1645,
- 138, -709, 464, 3614, -10308, 310, -4726, -3694,
- 1088, -576, 690, 68, -145, -3282, -9280, -9537,
- -1274, 3202, 588, 1790, 1437, 3880, -1803, -1154,
- 15082, -2388, -1746, -885, 2267, 1813, 1688, -1039,
- 9775, 350, 3218, 10550, 1048, -3731, -3748, 3517,
- -910, -663, -413, -1045, -1236, -248, -132, -1196,
- 12, 15815, 653, 1429, -371, 4094, -3050, 567,
- -5524, -11128, -4261, 1929, -1719, 8236, 686, 1309,
- -1057, -715, -2586, 1327, -38, -6180, 3499, -2080,
- 8980, -1890, 62, -1004, 3308, 5809, -5778, -3865,
- -610, 180, -519, 3129, 9000, 1607, 8484, -4056,
- 4741, -4491, -355, -1324, 1203, -1864, -811, -15995,
- -121, 1325, -817, -2170, -5753, 731, -1875, -2286,
- -9193, -307, 247, 2469, -1738, -12290, 31, 1028,
- 670, -66, -1856, 570, -3542, -3401, 144, -320,
- -524, 184, -928, -1606, 10978, -3114, -8861, 1467,
- 1156, 872, 8276, 5655, -695, 2788, 3733, 2155,
- -2044, -10260, 1683, 1859, -263, 17966, -19, 1621,
- 50, -261, -4143, 1245, -22, -1564, 809, 2462,
- -8005, 1247, -1471, -763, -1686, -698, 2868, 796,
- 4036, -3672, 11209, 1102, -9369, -1008, 1273, -906,
- -4458, 1642, -3254, 3563, -94, -6267, -604, 8687,
- 2388, 2214, 1759, -7788, 4296, -7467, 3547, 3248,
- 845, -7784, -2195, -42, 5327, -1002, -3915, -4581,
- -1215, -919, -3444, 5142, -1874, -3020, -2627, 1129,
- -4456, 1840, -11472, -914, -6366, 3495, -2775, 484,
- -5859, 980, -1967, 1350, 929, 6856, -3952, -3365,
- 1514, 7423, -675, -2260, 6027, -3072, -6388, -3716,
- -2398, 5564, 1447, -86, 1180, -1239, -1372, -435,
- -1314, -1978, 942, -2018, 1027, 704, 20417, -94,
- -1239, 252, -171, -1100, 1684, 1401, 623, -354,
- -2674, -5042, -734, -6631, 7587, 4901, -1596, 6806,
- 4230, -859, -867, 1266, -3869, -3972, 1548, -4889,
- 2811, 2263, 2468, 354, -6197, -1278, 1947, 5675,
- 10612, -1730, 2056, -70, 3034, -583, 879, -3719,
- -8623, -1241, 822, 5832, 163, -1075, -784, 398,
- 1170, -717, -374, 856, -21602, 89, -513, 260,
- 854, 1152, 762, -601, 523, -107, 1033, 1877,
- -1456, 226, -20758, 365, -8943, 1305, 193, 948,
- 295, 2696, -3165, -1982, -2439, 1067, -12266, -1018,
- 3400, -178, 1995, 11745, 1833, 9785, 1171, 582,
- -1844, 157, -1242, -4080, 864, -1771, -4257, 721,
- -4010, 7990, 142, 730, 1976, -6623, 4637, -7394,
- -1143, -835, 3341, 1732, -7266, -448, 5379, 290,
- 1855, 6977, 6637, -6561, -1370, -1767, -2769, -1189,
- 3872, -4895, -4679, 3906, -1664, 1514, 7908, -7960,
- -4147, -1235, -1706, 3314, 144, 1668, -9505, 2268,
- 4147, 2515, -1451, 6475, 1675, 106, 981, 201,
- 309, 60, -133, -472, 561, -380, 1130, 91
-},
-
-.cb2232s0 = {
--26218, 1606, -390, -696, 266, -947, 561, -1526,
- -8, 1080, -187, 5671, 2249, -30, -4129, -768,
--10908, 3826, -10422, -144, -1259, -1372, -3553, 1287,
- -5151, 6442, -5101, 1386, 791, -1593, 12942, -764,
- 424, -6212, 9733, 702, -9721, 524, -4818, -1232,
- 6, -484, -818, 955, 6425, 3594, 5156, -286,
- 1514, 4466, -1756, 11321, -679, -1481, -477, -8015,
- -3059, 4476, 679, -1143, 2877, 2581, 3230, 239,
- 12018, -1597, 13431, 11852, 260, 3306, -714, 1299,
- -4375, -778, 170, -565, -3510, -6632, 3354, 5901,
- -1070, -5912, -3430, -4970, -4712, 2648, -9113, 1561,
- 1002, -5659, -3177, 638, 2289, -1050, 12310, -10364,
- 2830, -961, -194, -6442, 2206, 3454, -2087, 4327,
- 1080, 10257, 8107, 4904, -3141, -2339, 7568, -363,
- 3765, 7960, 7067, 1496, -3842, 1805, 2415, 913,
- -1641, -5411, -7583, 4597, -1324, 2882, 11310, -2570,
- -2877, 3544, 4642, -2249, 7110, -307, -3413, -2871,
- -8974, -6358, -5703, 4046, 83, 1887, -3476, -4346,
- -2995, -346, -46, 22143, -576, 2597, 696, 1520,
- 140, 2937, -3356, -988, 4090, -1246, -3347, 1387,
- 2264, 1282, 7040, -806, -12810, -1105, 32767, -4266,
- 108, -1998, -680, -1279, -467, -110, 462, 768,
- 1678, 1408, -1888, -1115, 9430, 5852, -3578, 5367,
- -1096, -4310, -9588, 4350, 6048, 2516, 3214, 4468,
- -276, 15175, -848, -2875, -314, -6002, -11743, 448,
- 9238, -3026, -3934, 2840, -2070, 1850, 444, 511,
- -542, -7382, 6002, -14447, -1498, 176, 812, -2632,
- -2291, -3312, 3953, 370, -2154, 1678, -1186, -6382,
- 1544, 3534, -3767, -7459, 7265, -3272, 10669, -1677,
- -7046, -1679, -132, 2108, -1948, -2938, -5393, -6222,
--11293, 2066, 981, -731, 1869, -2211, 3558, -21513,
- -678, -493, -2087, 245, 635, -2011, -3316, 13445,
- 2089, -10186, 1114, -1241, 2121, -2305, 3316, -1282,
- 2733, 318, 3534, 4844, -1439, 8932, -7649, -556,
- -7519, -3442, 5068, -3546, 8586, -8425, 7146, -683,
- 665, 3052, -2581, 248, -8320, 2270, 7045, -800,
- 5890, 2187, -251, -2552, -3867, 3665, -1643, -11757,
- -5542, 1806, 3669, -508, -3436, 600, 10412, -5426,
- 1680, -4545, 11536, -1859, -5446, -4594, -4300, -1173,
- 282, 2100, -2556, 9486, -7325, -7252, -3155, -775,
--13674, 4272, 3066, 9352, 1647, 1136, 794, -520,
- -654, 1539, -2244, 3155, -12039, 731, 3379, -1904,
- 6866, 9669, -2384, 2099, -2426, 1633, -3358, -5662,
- 2164, 10679, -5330, 7066, 5826, -187, -4840, -1174,
- -3694, 976, -2548, 2292, -3517, -1007, -4041, 684,
--14986, -4789, -4135, -4376, -10678, -1482, -10466, 3575,
- -1960, 3185, 1198, -196, -892, -5424, 4802, 13608,
- -7772, 3952, 4404, -52, 1097, 3182, -2699, 900,
- -1258, -8055, -3102, 784, -2574, 1556, 1060, -5417,
- 537, 11991, -650, -487, -10250, 6766, -3716, 1062,
- 2525, 1039, -3002, 5742, -502, -4583, -144, -144,
- -5896, -978, 1786, -1420, 1944, -130, -5202, -1578,
- 7821, -11675, 9980, 5065, 5942, -362, 16344, -801,
- 1932, 1242, -10, 791, -170, -2468, -479, 3297,
- 4328, 11473, -1549, -12316, 209, 1739, 1875, 1305,
- -4310, -13049, -4913, 9208, -966, 2570, -138, 890,
- 1373, -1324, -965, 8563, -7560, 490, -1392, 5695,
- -5656, 5431, 3974, -1131, -1246, -1334, -3859, -3150,
--12976, -6929, 665, 9393, 490, 2212, 18, 542,
- 229, -3925, 1836, 4223, 5268, 1200, 471, 20,
- -9914, -5774, 8362, 5929, -7087, 2005, 15624, 1626,
- 5419, -1492, -1536, -417, 1957, 2585, -404, -1125,
- 2296, 596, 836, -356, 745, -2810, 2879, -2354,
--21682, -108, 726, -862, 593, -42, 266, -1356,
- -2119, 19613, 814, 2462, -2940, 222, 3595, 5634,
- -807, 1219, 2446, 5666, -1839, 7092, -10581, -5136,
- -2408, 5726, -1116, -2348, -6318, 8991, 6750, -5321,
- -7344, -2194, -5544, 1705, 12500, 9069, -1966, -4914,
- 2225, 3537, -1485, -5141, 434, -1620, -5383, -710,
- -5443, 3930, 7082, 667, -3289, -3202, -2097, 1970,
--11647, -2927, -2098, -1345, 3449, -2075, 262, -756,
- 1829, -271, -1292, 1079, -5746, -344, 3660, -4456,
- 3593, -7652, -1367, -828, -2290, 1063, 4234, -17596,
- -911, -6068, 1040, -2956, 2704, 1763, 974, 3132,
- 697, 1267, 240, -5520, -12368, 10830, -633, -5939,
- 2307, 1868, -2216, -1261, 597, -6302, -5145, 3550,
- 7519, -6963, 3752, 876, -1912, 30, -9192, 1075,
- -4632, 9108, 1139, 911, 9290, 1268, -1006, -1718,
- -6668, 3294, -1510, 6527, 456, -1400, 11424, -4168,
- -3940, 4738, -4863, 2990, 3202, -441, -4744, 4623,
- -4351, 3997, -11016, -737, 136, 7978, -3801, 4170,
- 3602, -2217, 849, -2552, -22232, 323, 193, -4,
- -1030, 590, 1625, 3208, -10595, 2624, -741, 13121,
- -1044, 1601, 5175, 2199, -3833, 1804, -2314, 793,
--11486, -655, -3320, -2975, 4065, -3124, -706, -7264,
- -1038, -3082, -5503, -7147, 8367, 1205, -1092, -1694,
- -1078, 11584, 8, -1237, -2077, 9732, 4963, 2780,
- 674, 581, 8226, -1231, -9252, 644, -3284, -744
-},
-
-.cb2232s1 = {
- 32767, -45, 422, -1139, -1052, -2085, -695, -612,
- 1451, -288, 58, -878, 53, 2912, -1891, -7148,
- 1893, 3028, 165, 963, 2260, -7904, 5857, -18824,
- -2617, -1030, -872, 1500, 1118, -745, 143, -436,
- 1239, -3840, 1785, -2506, 20237, -1026, -1556, -1371,
- -660, -1185, 939, 1315, -3658, -5428, 587, -4105,
- 1596, 12612, 5781, 1172, -3490, -1182, -333, 6258,
- -2594, 2144, -4830, -190, 1972, 2687, 1327, -987,
--15046, 4659, -71, 6890, 1588, -4787, 4318, -3704,
- 496, -5601, 1954, -1250, -3389, -5156, 9238, 2298,
- -4945, 183, -2036, 114, 12250, -2330, 71, -3395,
- -1402, 3668, 531, 10915, 1162, 7738, 9089, -1250,
- 1500, 6357, 1155, -5094, -2641, 1657, 470, 2022,
- 535, -306, -18031, -903, 2913, -5486, 1769, -1419,
- 9082, 2149, 3516, 6960, 833, 1123, 1266, 1672,
- -690, 9634, -2986, -4675, 1006, -2205, -2919, -3205,
- -2759, 107, -931, -9694, 2340, -862, -2782, -3636,
- -9414, 9564, 1057, 8664, 1326, 3928, 1452, -4692,
- -3437, 8610, -10466, -6638, -2879, 3408, 861, -3057,
- -823, 164, 3153, -3698, -15693, -886, 1456, 3278,
- -6160, -57, 1110, 22, -2985, 7299, -1082, -7921,
--12212, 480, -7645, -211, 1586, 3874, 3242, -883,
- 6730, -1597, -506, 3744, 7552, -7607, -65, -1442,
- 266, 10012, 1594, -2628, 6988, -1049, -516, -691,
- 672, 4913, 1788, 14973, 342, 962, 7212, 1124,
- 500, 1135, -311, 3886, 12548, 5432, 6219, 3341,
- -122, 5636, 6871, -10831, 4010, -10084, 1456, 5216,
- -1013, 1102, 4164, -1490, -5186, -242, -4498, 3322,
- 3584, -2176, 5704, 515, -11556, 1446, 4303, -3928,
- -4227, -7268, 6069, -11330, 822, -2054, -3035, -2516,
- -1816, -3796, 8408, 8849, -3030, -8201, 1149, 7388,
- 1036, 2586, 5618, -2274, -5037, -1497, 384, 1454,
- 8154, 1672, -2409, 3347, 13258, -979, 513, 7826,
- 2662, 1818, 5537, -1104, 2645, -10632, -8767, -5667,
- -1029, 806, -9040, -4684, 792, -5008, -5807, -3924,
- 964, 313, -2521, 1106, -5728, 13534, -8078, 4216,
- -1388, -2588, 986, -14536, -1410, 3461, 1360, -1348,
- -104, 1493, -2858, -2860, 2045, 18330, 4814, -3628,
- -705, -3228, -660, -2664, 2616, 4548, 3753, 1574,
- -1319, -1110, 556, 3304, -2803, 13052, 4592, 2922,
- 13667, -2322, -3056, -2717, 174, -4222, -4296, -7695,
- 1366, 1786, 1041, -110, -1997, 4102, -1855, -900,
- 203, 1311, 3412, 4107, 22609, -4112, 427, -2488,
- 257, -1267, -1277, -6430, -7193, 10667, 4495, -4317,
- 6846, 13213, 7335, -972, -3137, 335, -609, 3131,
- 2406, -3762, 2151, -5188, -7675, 2068, -2027, 3722,
- -773, -3276, 1539, -7886, 1005, 13693, 4601, -8386,
- -508, 5662, -4889, 93, -10603, 4051, -2, 1094,
- -4897, -2274, -2377, 2228, -5507, -464, -3455, -227,
- 9433, 8093, -2245, 3701, -1047, -6827, 2037, 1926,
- -3610, -15420, -581, -6127, -2075, 2501, -2216, 5385,
- -2297, -2660, 1563, 3244, 1418, -2012, 2964, 12235,
- -8595, 2728, -3541, -6511, 11038, 11326, -183, -1102,
- 1038, 1224, 20, 1441, -349, 1240, -7737, -930,
- 1411, 6945, 4130, -13544, -2625, 3550, 3149, -730,
- 7658, 3098, 673, -2259, 2556, 1543, 1478, -951,
- -8128, 4951, 11919, 4588, -8448, 784, -11498, -1908,
- 2578, 2936, -7496, -5834, 1987, 3407, -4133, -4924,
- -1348, -1300, 916, 899, 20257, 2027, 1450, 4388,
- -3748, 3846, 2187, -1158, 4720, -3613, 5312, 4055,
- 448, -6383, -8794, -2232, 1920, 834, 27087, -754,
- 90, 1410, -985, -1381, -61, 650, 1080, 7035,
- -2772, -1233, 13410, 4494, -472, -2896, -5083, -2217,
- -5778, 437, -6853, 4996, 3442, 6092, -6497, -3871,
- 4024, -898, -73, -3067, -2793, 5640, 6076, -2454,
- 3598, -277, 1672, -6858, 2419, 9753, 6292, 8835,
- -9909, -4724, -618, 7266, -416, 1965, -4968, 2421,
- 1155, 3815, -116, -3725, 7872, -4901, 2383, 1612,
- -2186, -2302, 2791, -2226, 1144, -13379, -6602, -806,
- 7099, -2098, 4194, -2128, 8663, -4275, 452, -135,
- -6053, 1280, 12815, 3278, 8452, 4479, -1648, 1453,
- 1407, -966, -1016, 3173, -7333, -4552, -13176, -1744,
- 577, -1572, 611, 1202, -146, -5773, 3012, -3016,
- -1581, 3162, 3818, -1970, 6195, 1946, -9656, 2861,
- -7875, 3133, -7840, 10951, -1684, -306, -227, 9776,
- -82, 1736, 1180, 3457, -2874, 5365, -7428, 7604,
- 2623, -2998, -2270, 10410, 1252, -2725, -4433, 1758,
- -5225, 6522, 6698, 712, 4694, -2392, 240, 423,
- -3030, -12708, -3136, -5176, 480, -1624, -12900, 7537,
- 4371, 1186, -1828, -757, -1850, -974, -3755, 1415,
- -6302, 2642, -3823, -1570, -8090, 8251, 1945, -9213,
- 1147, 4128, -4301, 806, -1745, 704, -2496, 1375,
- -802, 9, -808, -252, -5453, 3857, 10353, -536,
- 1875, -2896, -10792, 3358, 1063, -890, 7200, 3660,
- 406, 2840, -6973, -4469, 4638, -8091, 2772, -8035,
- 1728, -5315, 7234, -2718, 3707, -1226, -11858, -2397,
- 772, 3285, -4089, -1400, 1113, -16680, 1885, -435,
- -959, 242, -817, 259, -2010, -1857, -557, -914
-},
-
-.cb2232m0 = {
--13394, 14382, -488, -1088, -817, 100, 305, 2267,
- 2527, -1584, 995, -5781, -3585, -1826, 803, -4108,
- -3137, 12111, -211, 838, 4879, -1964, -1728, 13830,
- 2084, -11535, 664, -2499, -3421, -703, 4528, 968,
- 1008, -12010, 984, 2658, 422, 1412, 10772, 2216,
- -4291, 1329, -2324, 2392, -2029, 12322, 1053, 169,
- 12635, -902, -62, -670, -3007, -3322, -2948, 1817,
--10688, -1264, 1949, 2734, 1072, -1429, 2085, 10312,
- -1685, -4433, -1287, -9620, -1132, 20, 614, 2470,
- 2821, 5934, 3526, 11292, 50, -12970, -11948, 1114,
- 1980, -945, -713, -5357, 3766, -447, 969, 2247,
- 11854, 2148, -12393, 1518, 610, 4527, 1164, 1347,
- -1422, 649, 653, 855, -24, 30152, 20, -564,
- -2825, -11, -1408, -80, 239, 305, -3163, -854,
- 568, -18, -4212, -403, 288, -3009, 229, -1152,
- 16390, -877, -458, 316, -128, -12165, 1088, -828,
--10886, -269, 747, -1026, 1716, -10920, -9204, -3123,
- 958, -6128, -260, -851, -1524, -2386, -6472, 228,
- 2667, 3158, -140, 1719, 2330, -2730, 3080, 44,
- 15743, -2167, -11637, -607, 476, 408, -12505, -1862,
- -1892, -440, -3785, -2348, 1229, -338, -438, -797,
- 29933, -715, 366, -197, 576, -188, 484, 240,
- -4844, 1168, -1054, 863, 875, -295, -16091, -1972,
- 3976, 3833, 3056, -770, 1011, -3098, 165, 3973,
- -9367, -18, -299, -11254, 1005, 8644, -14788, -2268,
- 2644, -8410, 578, 2169, -766, 2764, 2378, 3282,
- -2710, 7612, -542, -12062, -2437, -414, -506, -10332,
- 2732, 839, -2593, 923, 1159, -1057, -7333, -86,
- 2832, 11328, -1616, -302, 4399, -547, 6107, 9983,
- -6901, -85, -544, -4916, 366, 4878, -8662, 7313,
- -3056, -1027, 2381, 8906, -7270, 509, -1124, -2512,
- -1636, 5830, -5868, 2369, -3236, 12557, -2713, 12793,
- -2957, 1688, -852, 4723, -122, -2336, -4698, -1306,
- -7399, -2090, -1953, -1505, 3335, -10906, -2598, 1322,
- 2556, 7210, -1553, 1262, 1878, -10719, 1746, -2736,
- 1448, 8734, -9602, 828, 1752, -1632, 8037, 2728,
- 562, -1879, -10572, -544, -2254, -1997, -6384, -87,
- -5878, -473, 498, -2960, -5698, -11500, 1815, 2050,
- 7388, 5230, 2782, 5602, 514, -306, 13022, 523,
--10776, -846, 716, 270, 3350, -6021, 1420, -6175,
- -1978, 3967, 11612, 3320, -4100, -2468, 4595, -5338,
- 65, 3478, 19, 3501, -15896, -1335, -1861, -1944,
- 3935, 3630, 4627, -5892, -458, 383, -211, -594,
- -165, 24865, -656, 2300, -404, 257, 214, -643,
- 2298, -180, 35, 4974, 834, -998, -1738, 5449,
- -9222, -10858, 4188, 9147, -5639, -1691, 990, -1945,
- 3421, -3527, 9005, -2038, -2369, 5098, 967, 15840,
- 196, -3204, -1079, -776, 11806, -1352, -2053, 2011,
- 309, 642, 1541, -1466, -4465, 6679, 5756, 7474,
- -58, -1864, 5908, -1576, -30374, -904, -571, -1136,
- 425, -22, 666, 1150, -734, 82, 1254, -226,
- -437, -890, 1464, -3368, 987, -11885, 1127, -7224,
- 1872, -8198, 8775, -2695, 1457, 15102, -899, -1384,
- -1975, 1891, 3128, 1465, -1649, -1363, 1483, 303,
- -534, -7, -1710, -1377, 769, 12698, -8987, -802,
- 4636, 572, 2004, -3513, 442, -9863, 3215, -4550,
- 2138, -4346, 5682, 11053, 7220, 9842, 797, -1399,
- -2679, -5857, -2143, 3241, 2330, 248, -630, 1044,
- 639, -3432, 125, 22083, 1976, -1003, 813, 552,
- -571, 4358, -6200, 3635, 5439, -636, 233, -4856,
- -3519, -460, 6956, -4215, 1537, 7895, 13910, -7637,
- 1392, 1572, 648, 3690, -1988, -2463, -3302, 677,
- -924, -535, -6025, 4126, 7178, -4145, 4960, -1860,
--10926, -1470, -9506, -226, -258, 32, -479, 2222,
- 94, 11358, 3984, -2732, 2111, -590, -2444, -344,
- -425, 598, -1382, -1213, -17632, 1566, 1387, -3521,
- -57, -1829, 4788, 574, -206, 7962, 9157, 6459,
- -1594, -1355, 4874, 1066, 2006, 1793, -7569, 2369,
- 1108, 1305, -3046, -14052, -1736, -4045, -4328, 7497,
- 3304, 1518, -5666, -529, 4256, 4667, 932, -1495,
--10414, -414, -2110, -3150, -1250, -8799, -419, 5162,
- 8497, -8720, -746, -3015, 6403, 3855, 7350, 165,
- -59, -958, 5780, 6044, 1736, 3016, 31, 1012,
- 3422, 7598, -6837, -2092, 2262, 6171, -10362, -2108,
- -1352, 1798, -4872, -6369, 2507, 2640, 6074, 1835,
- 2948, 388, 398, -9295, -5384, -2088, 2096, 742,
- 3286, 441, 7135, -2112, -9958, -5612, 2479, 5427,
--10114, -674, 308, -1037, 770, 514, 1868, -252,
--11901, -984, 670, 2506, 5396, -1047, 9113, -10865,
- 4872, 1720, 2226, 947, -2336, 2649, 173, -1464,
- -2874, 4463, -1270, 3429, 6242, -5380, -7772, -4550,
- -8451, 2045, -2855, 5336, -15066, -418, -4886, -648,
- 3736, 945, -956, -4825, -116, 130, 1889, 9642,
- 3790, -4371, 7180, -1556, 6562, -2207, -7910, 506,
--21594, 662, -338, -943, -1022, 6453, 301, -464,
- -457, 840, 3313, 10946, -294, 8156, 138, -1425,
- 2397, -792, 6468, 4615, -511, 15938, 494, 274,
- -5976, -660, 3894, -2140, 1424, 2003, 4101, 2823
-},
-
-.cb2232m1 = {
- 20456, -1952, -1581, 869, 628, 76, 1404, 4060,
- 508, -3177, -946, -2992, 2422, 1139, -1931, -240,
- 1011, 365, -1106, 20973, -1438, 372, 137, -1058,
- 1171, -1252, 2794, 1434, 1814, 482, 3948, -2704,
- 20422, -241, 441, -1121, 499, 1036, -918, 9708,
- -3166, -488, -10379, -3201, -5254, -1871, 5665, -12622,
- -7591, 127, 1469, -2267, 1813, -4197, 2065, -602,
- -395, -652, 333, -19114, -1092, 4310, 1590, 1688,
- -1453, 177, 4402, 1168, 5972, -1295, -3258, 1542,
- -4832, 3377, -5545, -3622, -4944, 2064, -2846, 8118,
- -845, -6778, -3640, 5729, -907, -11007, -5, 2634,
--11118, 2108, 144, 13299, 251, 336, 563, -75,
- 3004, 169, -3892, 1477, 1066, -1571, -1113, -1088,
- 517, 465, -21841, -1541, -1094, 1841, -9213, -17478,
- 1662, 8, 1192, 1174, 1014, -5659, -695, 316,
- -5161, 1803, -1056, -2369, -2919, 2941, -9712, 1975,
- 426, 11214, 2288, 6186, -7348, -3062, 3341, 3252,
- -4102, -346, -876, -7088, -3330, 4507, 310, -1632,
- 299, -2636, -2740, -752, 10159, -7201, -9568, 3134,
- -4002, -41, 2479, -1816, -14099, 3575, 1161, 6427,
- -2466, 390, -1883, -6265, -1266, -263, 1474, -592,
--21234, 94, 4187, 1, 3227, -3273, 1950, 406,
- 543, 1661, -2648, -9252, -2048, -5987, -722, 4932,
- -4410, 12504, -1572, 2244, 5610, 307, -9710, -3642,
- -6436, 4368, 2956, -2269, -6196, 4069, -766, -3695,
- 3416, -5786, -9668, 11677, 1208, -965, 1516, 1132,
- 1018, -6168, 1970, -10357, 1379, -725, -8789, 3730,
- -65, -4758, -1818, -1050, 9641, 4519, 2886, 2667,
- 6348, 2436, -438, 1978, -9374, -1286, 3893, -2073,
--11199, -2081, 3345, -3444, -9480, 2410, 1986, -1869,
- 3252, 5949, -2119, -401, -214, 3416, -1067, 18510,
- -2986, 3510, 508, -357, -837, -1205, 2884, 11587,
- 11565, -555, -2664, -873, 3642, -2068, 1734, -4408,
- 330, -181, -1358, 1407, -9739, 809, -10203, -2066,
- 3440, -2063, 3238, 3734, 1671, 750, 6890, 4068,
- 1238, 493, -1330, 76, 8918, 10855, 85, 12236,
- 3570, -1074, 3008, -9424, -3186, 1271, -380, -157,
- -4974, 10575, -1378, -219, 1354, -1589, 10936, 2268,
- -3787, -1040, 7567, 924, 10490, -806, -1318, -1576,
- -209, 93, -3745, -3820, 439, -9828, -6265, -864,
- 31342, 35, 1332, 443, -590, 846, 104, 868,
- -863, 1526, -1088, 11494, -7055, 3564, 109, -3072,
- -2234, -4530, 1866, -3425, 9940, 3158, -1821, -680,
- -1124, 2884, 1191, -61, -9698, 7596, -558, -9019,
- -1181, 208, -1342, -68, -312, 294, -1468, 1410,
- 39, -21081, 724, -2137, 935, -8, -10297, 3509,
- -6510, -6558, -6906, -1905, 1915, 5920, -8983, 3416,
- 7300, -1372, -1422, 1822, -10433, -2530, 1669, 554,
- -3008, -3351, -922, 8279, -5184, 5520, 4785, 683,
- -506, -4558, 1938, 8442, -12639, -54, -2907, -820,
- 10004, 1780, 485, 1401, -3786, 786, -5937, 2632,
- -1540, 972, -3342, 2294, 8076, -1006, 11731, -1825,
- 3036, 1085, 1160, -9680, 11111, 7838, -2504, -2112,
- 2376, 2534, 3624, 555, 3610, -520, -831, -15,
- -498, 167, 711, -22685, -999, -1466, -1643, -394,
- 5404, -4247, -2307, 4052, -1156, -1240, -490, -1598,
- -4365, -8382, 10493, 464, -16592, 3723, -7709, -821,
- -4218, -922, 398, 5635, 2184, 5090, -7144, 2420,
- 792, -324, -1278, 3172, 13101, 1608, -3996, -2219,
- 2995, -6924, 816, -2482, -406, 3458, 503, -8154,
- 3460, 2542, -3703, 8524, -61, -430, 23212, 1203,
- 2335, 5556, -476, 923, -565, 593, -1611, 1814,
- -1614, -7067, -1957, 10166, -4306, -421, -4026, 1854,
- -9881, 667, 7720, -2906, 7003, -1823, 6344, -8614,
- -2965, -2720, -62, -802, 1945, 4574, -4604, -8341,
- 518, -3543, 95, -4262, -5220, -133, 10270, 1999,
- 3234, 8900, -4866, -3708, -4465, 4542, 2545, 1770,
- 6995, 3559, 1133, -1152, 14680, 1002, 634, -12913,
- 1686, -1645, -1796, -50, 112, -1108, 1070, 686,
- 1068, 1555, 896, 3498, 10458, -32, 12017, -737,
- 650, -432, 404, 170, 10873, 1864, -1718, 11061,
- -1556, -3766, 225, 6999, 1730, -6919, -1895, -2919,
- 8250, 10050, -4631, -1488, -4801, -1504, -2736, -110,
- -3630, -2752, -11162, 1128, -2580, 11692, -678, 1338,
- 2175, -6030, 616, 1651, -7034, -3057, 2420, 1998,
- 4383, -1721, -10762, -428, 2902, -906, -4298, 2141,
- -1242, 5464, -607, 5389, -8946, -3890, 10884, 1544,
- 628, -1969, 13902, -1570, -1080, -689, -4676, -3642,
- 753, -11351, -110, -744, 4286, 1163, 3105, 9752,
- 11143, 4296, -1698, 1012, 2284, -989, -958, -9481,
- 738, 24, 426, 1638, 3898, 8885, 2938, -8826,
- 2982, -1679, 8466, -651, 5144, 2736, 751, -84,
- 7710, 3077, 2885, 146, -1102, -2569, -2039, 11059,
- -9950, -1048, -1031, -33, -5118, -1096, -1986, 2306,
- 2400, 9320, 6188, 500, 2090, 61, -11357, 118,
- 1505, 1032, -1920, -164, -9744, -4670, -11029, -102,
- -960, -1023, -2570, 4102, -3989, -11478, 772, -1515,
- -1102, -2194, 1722, -1195, -8144, 746, -9534, 3250
-},
-
-.cb4440l0 = {
--14497, -1982, 631, -984, -2115, -3252, 2755, 2017,
- -2110, -8864, -792, -1291, -2761, -2365, 698, 1047,
- 972, -14703, 10590, -3945, 663, 972, 1204, -2801,
- 1295, -1296, 50, 1448, 888, -1879, 122, 78,
- -183, -588, 16202, -388, -2240, 1136, 1266, -6445,
- 2619, -1664, -6329, -2700, 1557, -497, 598, -110,
- 1298, -334, 191, 29897, 387, 419, 76, 152,
- 533, 78, 112, 101, 158, 136, -236, 88,
- 43, 107, 84, 21, -6385, -1711, 1757, 1411,
- 9152, -72, 1428, -1098, 10328, -506, -360, 285,
- -36, -2816, 819, 88, 176, -481, -172, 2067,
- 3268, 5479, 8605, 11272, -1880, 361, 1582, -4973,
- -1379, 3835, 74, -3, 493, -431, 1390, 101,
- -550, 59, 476, -469, -583, 568, 732, -1015,
- -1104, -698, 23922, 1130, -1268, 280, 204, -59,
- -9789, -317, 935, 2944, -10402, -2564, -4648, 1506,
- 3834, -1002, 2805, -158, -409, 814, -150, -97,
- -3573, -1550, 1356, 5350, -365, -2622, -3454, 310,
- 1194, 911, -10928, 937, 7980, -5286, -554, 1999,
- -1263, -562, 10, -321, 744, 44, 64, -274,
--30136, 340, -1051, 756, -30, -6, -269, -273,
- 12, 95, 1565, -13194, -11810, -485, -1574, 414,
- -240, -452, 564, 740, -476, 959, 1079, -1568,
- -422, 37, -154, 10117, -68, 1412, 11862, -3420,
- 4169, 5178, 527, -1027, -1030, -1985, 448, -716,
- 1696, 1942, -254, 308, 1100, -790, 8102, 6630,
- 3653, -1018, -587, -6990, -19, 1671, 1425, 8089,
- 3708, -1182, 774, 659, 113, 437, 50, 835,
- -532, -11209, 1682, -7490, -2592, 1234, -4689, -7301,
- -143, 3361, 1121, 177, -473, 513, 136, 965,
- -4020, 4639, -1212, 1271, 2905, -6865, 10499, -3800,
- -3354, -5029, -3606, -950, 4490, 526, 1006, 2,
- 1760, 5819, -55, -1098, -1843, 348, -2062, -9196,
- 3712, -11466, -3218, -858, 2720, 589, 320, 861,
- 59, 5357, 564, -380, 538, -142, 490, 212,
- 1716, 670, 1904, -181, 2979, 943, 16916, 1271,
- 988, -802, -1490, 9154, 643, 1725, 1347, -2827,
- -4096, 485, -7091, -3180, -4747, -1604, 1576, -5724,
- 6104, -139, 1726, 11715, 360, 7519, 2513, 5192,
- -2208, -1993, 829, -387, -5724, 4418, 116, -2955,
- -226, 249, 377, 2149, -2929, 5021, -3064, 800,
- -1459, 11384, 8556, 1740, 368, -2839, -2049, 1438,
- -1357, 4084, 1896, -528, 1621, -1760, 13741, 302,
- -1018, -9774, -3521, 1302, 1374, 1139, 918, -1724,
- -764, 858, 804, -1772, 372, -322, -526, 11924,
--11944, 4012, 1749, 1737, -1545, 68, 889, 280,
- 690, -2200, 1068, -484, -171, 455, -44, -3178,
- 2243, -590, 749, -792, -19876, 198, 236, 2695,
- -3413, 652, 284, -820, -1134, -199, -112, -5650,
- -418, 1047, 1090, 2260, -3297, -2164, 13524, 1720,
- -326, 910, -1706, 3912, -1175, 1687, -2152, 50,
- 35, 1718, 721, 9316, -2256, -4330, 6961, 4432,
- -8043, 45, 1370, 3472, 2892, -3224, 1368, 1355,
- -562, -694, 746, 198, 1188, 2819, 3131, -2371,
- 6438, 847, 2111, -10187, -3451, -9826, -3502, 655,
- 649, 1460, 270, 118, 45, 192, 188, -1139,
- -258, 663, -84, -27519, -765, -905, 357, -4,
- 89, -372, -24, 178, 1127, 209, 1177, -2762,
- -587, 1488, 8989, 3217, -2550, 215, 9540, -7196,
- 1259, -3716, 2767, -261, -216, 872, -3008, -2076,
- 8682, 709, 3629, 87, -3114, -10624, 246, -1670,
- -1738, 1229, 7624, -1120, 784, 305, 233, -185,
- 280, -1466, -268, 198, 499, 308, -2187, -1149,
- -388, -38, -338, -1084, -19424, 40, 1958, -2240,
- -86, 264, -9876, -1287, 4086, 3742, 2502, -10078,
- 4574, -1493, 1078, 3218, 2410, -364, 1049, 2638,
- 35, -1295, 200, -2847, 10818, -12064, 2375, 348,
- -353, 2788, -821, -3196, -511, 146, 2015, 235,
- -1094, 2622, 2688, -79, 5176, -884, -11814, 794,
- 2696, -6704, 3452, 1295, 3872, 2924, 4498, -166,
- -598, -1213, 891, 5478, -266, -777, -5, -776,
- 1003, -1837, -156, 17910, 453, -297, -1545, 857,
- -288, -308, -6373, 2045, -1846, 3007, -2236, -1904,
- 815, -2889, 4200, 8320, 9872, -614, -834, 3856,
- 414, -234, 1559, -7451, 3641, -1230, 837, -127,
- 2652, 411, -532, -12548, -1692, 1034, -2418, -968,
- 558, -1564, -1952, 307, -1064, -6776, 1588, -2636,
- 949, 8272, -12, -3468, 3481, 6588, 2580, 7393,
- 272, 1528, 1818, -2206, -349, -396, -11704, 1487,
- 9753, -4665, -24, 2084, -780, 5036, -647, 3668,
- 561, 1099, -1094, 534, 1270, -99, 1006, -476,
- -528, 12481, 1589, 1593, -1682, 7022, 2664, 8702,
- -563, 1082, -206, 87, -1978, -144, 228, 1232,
- 889, 14340, 65, -1061, 10510, -95, 649, 53,
- -962, -383, 2479, 1322, -1798, 2840, -492, -419,
- 90, -680, 79, 1026, -20912, 1593, -742, 1086,
- 516, 699, 2393, -64, -2010, 46, -859, 111,
- -440, 14281, 272, 797, -10141, -3734, 3126, -3050,
- 1300, 73, -1754, -1278, 1890, -2710, 704, 1160,
- 1, 269, -24, -622, 124, 138, -522, -510,
- 95, -402, -27306, -470, -214, -159, 396, -201,
- -372, 122, 136, -1005, 744, 1949, -810, -2648,
- -726, -384, 955, 1232, 1354, -345, -19485, 1056,
- -193, 1257, -263, 398, -752, 602, 98, 793,
- 17, 20186, -189, -2615, -174, 166, 436, 411,
- -1046, 374, -471, -253, 233, 8352, 1342, -1279,
- 9305, 2190, -3239, -5262, -3454, 1844, 684, 303,
- -4434, -6041, -3495, -2482, 389, 353, 159, -14,
--29179, -511, -158, 92, -401, -36, -297, 447,
- -605, 269, 85, 212, 8, -118, -130, 207,
- 13150, -8712, 2504, 1355, -3268, 1396, -4748, -2200,
- -1560, 228, -162, 1179, 3024, 742, -860, 69,
- 10, 30006, -538, -489, -125, -214, 364, -682,
- -283, 532, -134, 227, -448, -20, -266, 70,
- 2, 9310, 14858, 856, -493, -3357, 36, -248,
- 214, 281, -73, 3268, 745, -245, -1007, 146,
- 392, 36, 8042, 2953, -6603, -7697, 4425, -2498,
- 571, -2194, 3388, -794, -561, -2763, 1912, -3030,
- 225, 214, -27, 834, -10661, 437, -506, -535,
- 8397, 1332, -2406, -8868, -2972, 1385, 296, 865,
- 2318, 890, 244, -121, 226, 375, 896, -10381,
- -2266, -3404, 983, 1255, 259, 11427, 455, -3041,
- 307, -2446, 476, 723, 18, -10224, 510, 552,
- -654, -876, -465, 628, -12572, 786, -393, -4162,
- 938, -1327, -1695, -608, -1352, -131, -880, 830,
- 1016, 21875, -408, -1560, -500, -1682, 453, -930,
- 1316, -136, 434, -683, 412, 202, 233, 382,
- -2002, -9267, -1034, 8710, 434, -8121, 3035, -3121,
- 1792, 2712, -1537, -1082, 854, 1337, -1084, 91,
- -4485, 2545, -4412, -1930, -12234, -4802, 4641, 437,
- -928, 2163, -3154, 521, -665, -1200, 2654, 931,
- -388, -118, -1144, 133, 5089, -1194, -1528, -967,
- -795, 188, 1918, 897, -7046, -7617, 7118, 5755,
- -2724, -7894, -472, -360, -591, 990, -3032, 7742,
- 726, 5490, 9383, 479, -3032, -1904, 7158, 4706,
- 2442, -1576, -58, -156, -3977, -2696, 4195, -166,
- 3342, -1566, 3767, -4159, -5750, 5505, -7663, 4516,
- -4073, -2612, 5136, -290, -666, 1282, 776, -566,
- -602, -310, 1003, -648, 2928, -3159, 427, -1168,
- -2702, -16990, -205, -343, -1196, -1980, 1653, -512,
- -1820, -418, -3368, 3522, -1966, 4964, -5728, -5185,
- -210, -1721, 10131, -7060, 3351, 334, -96, -3193,
- -1713, -614, -2633, 147, -1552, -2363, -3724, -1731,
- -7350, 5453, -2732, -2867, 12458, 416, 0, 4414,
- 833, 590, 1617, 405, 73, 868, 232, 195,
- 15, -196, -782, 749, -955, -84, 1176, -553
-},
-
-.cb4440l1 = {
--12227, -3413, 12848, -1336, 20, 894, 254, -1001,
- -1381, -406, -1157, -458, 300, -395, 825, -34,
- 74, 382, -1018, -10266, 1338, 11091, 544, 797,
- -4304, 1389, -747, 1924, -257, 2615, -37, -4375,
- 782, 158, -378, 19, 652, -539, 1012, -4211,
- 1263, -925, 96, -9226, 5921, -8209, -71, -1838,
- -2201, -7441, -60, 393, -5626, -264, -1002, 85,
- 1989, -1616, -216, -914, 9907, 8044, -578, -7830,
- -1705, -3624, 2430, 59, 5813, 870, -317, -2545,
- -4020, -1330, 1215, 9352, 5425, 324, -4803, -681,
- -506, -4710, -6574, -4184, 65, 729, -1310, -1387,
- 1385, 2364, 1672, 2493, -438, -1367, -907, 38,
--20220, -1644, 512, -413, 348, -112, -532, 785,
- 1332, 7140, -1916, -1766, -11570, 1811, -9167, -76,
- -1531, -175, -1739, -771, 2014, 519, 15, 576,
- 8736, -979, -28, 1830, 329, -302, 12206, -1501,
- 5195, -305, 1456, -581, 1488, 142, 235, -157,
- 192, 1540, -922, 11056, 11823, -2964, -1488, 1712,
- -2018, -880, -3282, -190, -198, 2436, -248, 222,
- 22, 863, 1504, 2078, -2047, 216, -1270, -732,
--18252, 1186, 3178, -730, 432, 934, 1617, 873,
- -491, -70, -768, 679, 1398, 537, -364, 172,
- -541, -94, -24, -129, -26725, 201, -554, -357,
- -71, 60, 96, -1665, 1425, 1244, 332, -1068,
- 326, 834, -620, -1473, 1585, 1432, 928, 18782,
- -1388, 2897, 448, 40, 1323, 1433, 787, 215,
- 3297, 2586, -856, 451, -17700, 735, -43, 405,
- -1252, 744, 1012, 677, 312, 206, -279, -432,
- 6677, -87, -72, -10400, -106, 11224, 1152, -422,
- 2024, 704, 2462, -1197, 232, -119, 4, -879,
- 1600, -708, 3496, 279, -143, -1096, -555, 4594,
- 1486, 161, 942, 2018, 2474, -16010, -380, -193,
--11415, 457, -276, -11220, -1604, -38, 813, -4044,
- 1888, -4265, 1647, -882, 981, -734, -110, 140,
- -3050, 1248, -549, -1167, -967, 3586, 688, -1380,
- 424, -17959, 2022, 2274, -44, -1406, -432, 1335,
- -659, 9555, -3581, 11045, 1870, 806, 599, -2065,
- 156, -4420, 16, 2349, -609, -3058, -738, -60,
- -548, -119, -49, 26, 1528, -1842, 6306, 14078,
- -692, 5480, 321, 1996, 1376, -3086, 490, -54,
- 1151, 932, 445, -9887, 15808, 3085, 866, -2020,
- -1785, 2126, -920, 414, -290, 138, 244, 994,
- -702, 1410, 330, 202, 675, -389, -241, 31306,
- 380, 300, -53, 804, -109, 413, -44, 6,
- 14, 486, -293, -112, 26, 11632, -836, -3948,
- -518, -1364, 11360, 3558, -588, -2084, 490, 381,
- -955, 2207, -2953, 1115, -265, 2, 65, 464,
- -180, -111, -174, -152, -30508, 121, -207, -835,
- 1126, -185, 91, -96, 222, -99, -93, -10138,
- -430, -184, -372, -194, 953, -100, 382, -1422,
- 13931, -1835, -1657, 821, 408, 808, -601, -463,
- 7142, 5596, 3171, 2174, 2740, -11350, 1019, 1449,
- -386, 1642, 3703, 4271, 1664, 2232, -674, 983,
- 551, 8543, 154, -383, -2419, 1117, -520, -10966,
- -4406, -3742, -79, -909, 1813, 5043, 412, 1099,
- 1434, 173, 788, -92, -1004, 1288, -87, 931,
- 10241, -855, 6, -405, 2580, 11455, 1150, -1916,
- 3614, -262, 292, 897, 9673, -381, 1711, -2713,
- -1111, 282, -2180, -2282, -2266, -724, -849, -11787,
- 888, 3120, -1459, 495, -10812, -792, -274, -984,
--12223, -737, -2394, -299, -578, -2758, 1521, 774,
- 1938, 857, -1935, 217, 654, 1452, -3695, 6734,
- 804, 134, 946, -2156, 9495, -600, -1962, -5252,
- -246, 1269, 8492, 1261, -2205, -106, -1314, 828,
- 1013, -12059, 663, 436, -2648, 9863, -630, -2961,
- 3004, 1015, -3153, -1475, -25, 399, -846, 430,
- -1237, -156, -187, 1115, -502, -363, 386, -2820,
- 942, -926, 727, 1130, -20388, -274, 1140, 198,
- 199, 2548, 442, 157, -1546, 3693, 892, 460,
- 6552, 4858, -2560, -8673, 1930, -8913, 3427, 686,
- 61, -8830, -358, 1338, -74, 1180, 2871, -3822,
- 104, 2414, -1742, 11425, -4522, 393, -3016, 972,
- 34, 117, -16113, -6900, -6964, 1726, -843, -242,
- -2141, 803, -1093, 442, 1776, 2429, -1000, 489,
- 393, 635, 389, 1126, 12285, -1648, -11396, -2885,
- -56, 3840, -174, 3177, -1708, 1189, 1914, 1514,
- -189, -88, 276, -240, -120, -2929, 9823, 678,
- 568, 26, 10080, -2575, -806, -64, 6406, -82,
- -1171, 2169, -1804, -667, -37, 54, 4208, 10829,
- 11920, -468, 1916, -809, -370, 144, 3616, -263,
- -4352, -124, 300, -246, -440, -115, 447, -407,
- 20869, -340, 54, -764, -807, -699, -283, 727,
- -922, 1098, 577, -6, -809, -50, -115, -75,
- 280, 156, 182, 225, -30432, -212, -417, -245,
- 177, 94, 4, -627, 167, 47, 152, 148,
- 1325, -2436, -10063, -696, -9966, 1032, -1024, -3702,
- 3933, 400, 333, 692, -3858, 2599, -1215, -389,
- 393, -666, 2135, 10280, -2443, 1972, 410, -392,
- 590, 12322, -523, 1141, 52, -1468, 819, -213,
- 162, 116, -614, -10630, -204, -1247, 535, 199,
- -6058, 2538, 1644, -11539, -1562, 1462, -1493, -218,
- -296, -605, 321, 607, -366, -257, -837, 4536,
--11683, 1266, -3805, 4496, 2854, 8, -8848, 124,
- 656, -1041, 411, 144, 916, 445, -91, -260,
- -149, -882, -433, -121, 345, 68, 349, 821,
- 652, 251, -23053, 1015, 712, -73, 7038, -1520,
- 5810, -12604, 2841, 425, 265, 1546, 938, 1851,
- -1180, 2751, -498, 1289, -774, 327, 4047, -8132,
- -2622, 5449, 3221, -2990, 10107, 1880, 173, -4006,
- 399, -332, 642, 297, -4513, -1230, -330, -788,
--21881, 903, -1308, 547, -522, 1885, -1730, -63,
- 973, 897, 670, -657, -232, 498, 92, -8,
--11010, 1072, -368, -1864, 11505, 3497, 730, 2158,
- -1629, -1351, -1583, 2247, -1506, 2144, -902, 639,
- 175, -6006, -986, -4246, -1510, 1785, -9792, -495,
- 1995, -9189, -1414, -2550, 1578, 2390, -2989, 1673,
- -1980, 21, -4054, 8552, 1155, -301, 1204, 3776,
- 262, -1828, -1837, -1014, -9, 2711, 1467, 463,
--11605, 1743, -956, -1213, -3892, 1534, -10298, 22,
- -902, -658, -1759, 2507, 1552, -12298, -1050, 623,
- -3221, 1522, -36, -446, -5925, 2144, -2844, 15080,
- -1984, 3631, 1931, 1894, 1193, -1694, -3172, -813,
- -1336, 534, -365, 833, -293, 21759, -1266, -1216,
- 996, -2, -393, -858, 759, 969, -230, -151,
- 977, -874, 119, -896, 262, -118, 89, 95,
- 94, -437, -30375, -462, 360, -588, -334, 86,
- -1027, -208, 536, -196, 367, -467, 119, -32,
- -2544, 6204, 8830, -264, -7847, 848, 2267, 3877,
- -6378, -2249, 1420, -1868, -3443, 3747, -590, 58,
- -274, -6065, -8472, 5906, 3109, 5834, 3905, 2086,
- 1300, 3828, -518, -528, -3672, 1794, 4353, 408,
- 566, -2577, -1137, 2749, -2662, -528, -7479, 5550,
- 2932, -336, 3681, -2034, 212, -8733, 1017, 2258,
- 8225, 387, 227, 877, 2752, -1375, 2636, 8131,
- 3850, -6870, -1158, -3736, -8478, 228, -5809, 97,
- -2555, -2956, -928, 678, 112, 1434, -1250, 1240,
- -412, -4267, -3811, 4322, -3430, 7705, 5456, -6876,
- -3452, 7329, 3142, 220, 662, 1531, -5492, -1388,
- 6842, -3631, 362, 5029, 8052, -2367, -5346, 5724,
- -358, 2469, 2196, -1426, -272, 534, -192, -531,
- -705, -70, -259, 93, 335, -94, -145, -17,
- 920, 1186, -818, -599, 343, -19859, 2968, 161,
- 128, -4282, 598, 152, 1210, -1317, -1545, -229,
- 181, -6488, 5699, 7270, 6271, 8809, 27, -4770,
- -804, -168, -247, -680, -129, -470, -152, 915,
- 176, -904, 622, 280, 2986, 1034, -1046, -482
-},
-
-.cb4440s0 = {
--12085, 8192, -1802, 4587, 5947, -3183, -2629, 1837,
- 2434, 252, -612, -4697, -576, 150, -704, -640,
- 174, -126, -10309, 350, -3187, 4714, -2829, 12618,
- -2172, 3502, 465, -159, -601, 1306, 1174, -448,
- -292, -136, 242, 31, -9005, -6203, -10027, 25,
- -209, -20, -1292, -1252, 4304, 3681, 4462, -4401,
- 4412, 1240, -576, 3618, 595, -237, 2544, -6032,
- -1511, 1523, -3668, -3472, 5552, -4901, -272, 5963,
- 2740, -878, 13010, 191, -2017, 768, 455, -45,
- -6873, -3664, 2639, -961, 3068, -4242, 1327, 2362,
- -1909, -1114, 100, -5940, 220, 865, -12952, -76,
- -1279, -591, 1092, -3502, 88, -2118, 13053, -10141,
- -3024, -533, -1923, -4097, 135, 1672, -1661, 1646,
- -370, -361, 644, -197, -6796, -10948, 11692, -974,
- 488, 349, 3936, -1506, -149, 513, 1401, -1776,
- -391, -210, 57, -56, -344, 1018, 7989, -4957,
- 167, 987, -60, 62, 1622, 1207, -69, 338,
--16133, -46, 1018, -1460, -821, -646, 1316, 126,
- -4631, -842, -1505, 15833, -6404, -4514, 2946, 2923,
- 1198, -3141, -3109, -1613, 1853, -906, -436, -1110,
- -282, -214, -3424, -3141, -3988, 284, 22262, 1269,
- 1787, -1116, -1429, 1017, 371, -187, -825, 534,
- 350, 1088, 26, 176, 8914, 6662, 935, 2074,
- -7986, -4780, 2194, 1796, 697, -4040, 2486, 1700,
- 9150, -37, -1560, 2449, -162, 128, -7469, -2690,
- -281, -4698, 424, 535, 1416, 243, -575, -1160,
- 326, -2417, 808, -15816, 994, -302, 26, 894,
- -7376, 395, -586, 823, -1341, 972, 100, 241,
- 743, 470, 267, -550, 474, 182, 18252, 178,
- -182, -7, 3496, 2132, 863, -151, 741, -2158,
- -763, -652, -503, -434, -736, 770, -156, -19071,
- 443, -354, -243, 66, 4258, 6714, 3577, 17338,
- 556, -3570, 1269, -1406, 1668, -349, -90, 781,
- 82, 558, 936, -788, -1072, -21, -6472, -3022,
- -475, -6997, -2816, -3774, 1683, -13950, 3482, -1872,
- 2624, 1064, -318, 1300, -1214, 179, -11, -124,
- 4560, -2827, -6314, -5736, 1159, 1309, -5462, -11652,
- 4192, 151, -543, -3484, -2288, -119, 745, 1373,
- -121, -629, 5204, 7650, -2062, -3370, -2894, -338,
- -1361, 1080, -3674, 12852, -6119, -1578, -736, -241,
- -1564, -109, -441, 335, 416, 1678, 4802, -3239,
- 6182, 154, -3656, -1337, -17027, 1707, -381, -1704,
- -377, 1022, -592, 983, -321, 37, -1846, -4500,
- 2575, 14162, -560, 9385, 4179, -1340, -3466, 3235,
- 1727, 1545, -23, 636, 280, -39, 871, 173,
- -8915, -2427, 2146, -3698, -12153, -3773, -3873, 5042,
- 112, 788, -1139, 245, 546, 278, -8, -1005,
- 443, -76, -1256, 8255, 3841, 6116, 4226, 3705,
- -1278, -6470, 5220, 5892, -3468, 2736, 5427, -3336,
- -264, 1906, 294, -60, -7078, 7699, -9792, -7108,
- -2030, 1055, -6962, 702, -2074, -232, 127, -430,
- 658, -272, 757, 138, 159, -340, -4606, 1021,
- 146, -7690, 6001, 5660, 3363, -367, 13222, -441,
- 13, -874, 668, 2293, 875, 1238, 110, 778,
- 1434, -976, 2151, -8169, 1421, 2622, 206, -795,
- -816, -14443, -1583, 3356, 2971, -964, -321, -841,
- -404, 111, -5595, 4248, -3819, 214, -2520, -712,
- -1505, 849, 947, -876, 188, 3221, 863, 105,
--17336, 1818, 14, 17, -6349, 379, 4746, -12405,
- -560, -3448, 3664, 8251, 845, 383, 1348, -739,
- -780, 1695, 4828, -123, -647, 823, 9940, -183,
- -1804, -7112, -161, 578, -619, 11534, 3214, 1586,
- 4784, -2540, 1188, -304, -485, -648, -824, -595,
- -8817, 4138, 927, -3259, -198, 4022, 2213, -1627,
- 645, 14602, -1058, 1481, -1670, -113, 564, -710,
- -451, -360, -1261, 2504, 247, 5566, -7262, 1344,
- -5106, -1608, 1946, -4240, -7393, 10440, 3306, 1940,
- -999, 155, 832, 55, 10218, 11475, -3252, -8295,
- 1347, 2405, 3421, -2619, 2262, -2829, 754, -307,
- 548, -2040, -1130, 317, 170, 292, 248, 2601,
--18930, -1942, 1417, 1678, 3310, -2578, -1969, 1550,
- 3010, 70, 8, 3064, -848, 504, -172, 180,
- 1787, -1133, 2427, 1002, -664, -40, 192, -23400,
- -1004, 513, -818, -382, 360, 360, 268, 98,
- -202, -192, -668, -12924, -11702, 7325, 797, 1937,
- 674, -2458, -541, -1497, -1673, -955, -356, -486,
- 182, 299, -46, 65, -4232, 1418, 6532, 2356,
- -4894, 4870, 3369, -4585, 8743, 1497, -1451, 862,
- -8612, -1718, 1716, -2389, 371, 592, 7397, -3188,
- -649, 126, -1300, 1374, -1292, 645, -1494, 2736,
- -1468, -1808, -17223, -352, 111, -222, -236, 171,
- -198, -7994, -3822, 5324, -16856, -517, 119, 314,
- -360, -515, 435, 520, -638, 1635, 420, 1191,
- 830, 710, 6897, 2925, 3091, 510, 3268, -1702,
--16186, 718, -3127, -463, 763, -1035, 725, -122,
- 646, 172, -164, -277, 5853, -7074, -10, -1770,
- -2544, 5978, -874, -494, -232, 14465, 1815, -1902,
- 987, -1533, 1216, 741, 620, 161, 4414, 4184,
- -32, -2944, -4619, -462, 15701, -1026, -140, -2396,
- -1747, -538, -1024, 219, 854, -351, 860, -226,
- -4390, 732, -2003, -2430, -540, 592, 1622, 1180,
- 385, -2052, 4050, 17401, -650, -243, 1709, 1261,
- 95, -307, -5110, -666, -7094, -533, -1293, -17357,
- 2929, 2389, -119, -413, 317, -962, 709, -1552,
- 26, 175, 700, -570, 20120, 1107, 232, 169,
- -889, -533, -1276, 22, 959, 866, -954, -792,
- 873, -172, 1757, 195, 148, 423, 4490, 8782,
- 631, 682, 1832, -3728, -1742, -11130, -1201, 1776,
- 9268, -586, -1358, -646, 626, -866, 5, 263,
- 3950, -760, -2914, -12751, -12669, 1513, -4, 631,
- 1835, 312, -167, 1546, -532, 619, 1176, 1436,
- -116, 312, 7054, 3120, 4075, -1320, 715, -206,
- -1572, 1350, 17688, -1182, -1568, 680, 6, 207,
- 1010, 600, -766, 554, -1483, 644, -8810, 624,
- 148, -4015, -1536, -1863, 92, 730, -14806, 386,
- -5174, -1420, -331, -254, -104, 275, -7268, 2563,
- 11983, -65, 8043, -1623, -2589, -2610, 1328, 3154,
- 1935, 3672, -1761, 4984, 661, 209, -1038, 122,
- -1019, -28948, 55, 358, -539, 488, 55, 618,
- 20, -314, 446, -1016, 618, -93, -94, -331,
- -36, 194, -1706, 6628, 396, -146, -765, 10500,
- 2619, -82, -10894, -3908, -888, -192, 620, 163,
- 78, 774, -293, -104, -4826, -14066, -1883, -3258,
- -4577, -1484, 5412, -4274, -4951, 3316, -907, 1948,
- -1187, -404, 3654, 400, -70, 459, -3224, -3194,
- 2338, 4390, -5, -3167, 3273, 116, -1026, -1668,
- 3767, 272, -16662, 137, -1634, -1007, 220, -310,
- 982, 8220, -16, -1251, -2644, -3344, 2236, -1573,
- 8174, 612, 1142, -10799, 393, -707, 4804, 397,
- 1232, -292, 5762, -15608, 2921, -6440, 3544, -2395,
- -504, 1890, 172, -1010, 178, 380, -1163, 404,
- -1230, 1034, -596, 105, -2038, 1991, 5613, -312,
- -4156, -10205, 3092, -4704, -6101, -1620, -1037, -1130,
- 1590, 8321, -797, 247, 954, -103, 3838, 2330,
- 10064, 3197, -8508, 1300, -1012, -6607, -3861, 5651,
- 31, -475, 1582, -1370, 1107, 2164, 743, -567,
- 4842, -2930, 3191, -190, -2230, -47, 254, 2147,
- 591, -512, 1312, 1159, 811, 1444, -1312, -257,
- 16016, 789, -2562, 3983, -373, -9255, 302, -3655,
- 5750, -3856, -6941, 3934, -2314, 5556, -4099, -265,
- -479, -4843, -130, 20, -4859, 3083, 6482, -3738,
- -3936, 590, -6368, -1784, 75, -3903, -6834, -4452,
- -871, 764, -1118, 8731, 38, -148, -3368, -6330,
- -370, 2234, 907, -2809, -1458, -2306, -402, 2679,
- -1222, 1138, 192, -1317, 1012, 15514, 624, 279,
- -4032, 2565, 6162, -938, 5760, 1685, 4350, 2939,
- -825, -331, 1840, -556, 427, -4642, -23, 8346,
- 7577, -467, 3848, 454, -3962, 373, -116, 2314,
- 4868, -208, -1367, -1803, 2681, 806, -4279, 3348,
- -528, 14027, -238, -457, -2764, 832, -4680, 4354,
- 1219, -801, 2414, -5204, -3768, -6524, 5163, -10909,
- 1656, 321, 3260, -1773, 214, -135, -4563, 5206,
- -4794, 1486, 406, -1026, 281, 1799, -218, 320,
- -908, 872, 1056, 2955, -208, -799, 15492, 334
-},
-
-.cb4440s1 = {
- 27498, -414, -266, 646, 229, 94, -15, 302,
- -489, -401, 125, 752, -476, -200, -976, 195,
- 4, -402, 2220, 1012, 1731, 2530, -652, -21380,
- -679, -867, -195, -114, 1326, 2531, -348, -185,
- -114, 178, -694, -298, 8752, 1735, 2640, -2374,
- 6191, 1516, 5771, 6705, -253, -8502, 986, 2134,
- -1854, 3490, -678, -48, 133, 844, -1635, 1630,
- 6056, -756, -1109, 1563, -1445, -139, 580, -1448,
--18675, 846, -390, -259, 1548, -324, 281, 142,
- 1792, 1211, 1328, -4308, -1032, -5412, 4742, -201,
- -47, -297, -8403, 9715, 7268, -3756, 1573, 677,
- -88, -145, 4877, 12946, 3264, 1809, 7230, -2583,
- 1627, -1786, -7113, -1480, -2111, -508, 415, 1664,
- -483, -538, -249, 80, 7005, -2562, -887, 3801,
- 6411, 2222, 36, 875, -5089, 10897, 4014, 4948,
- -1580, 1425, -1814, -391, -96, 322, -6484, 1896,
- -7790, -950, -4235, -8362, 3118, 4843, 3754, 1070,
- -1648, 7692, -1675, 3405, 918, 2270, 573, 193,
- 6024, 8912, -4905, -1810, 985, 1877, 2158, -2150,
- -386, 3908, 2030, 419, -12599, -570, -150, 1580,
- 36, -152, 2, -538, -1565, 6809, -715, -6266,
--12725, -6718, 810, -603, 1547, 1001, 2250, 810,
- 1773, -672, 327, 246, 6414, -7511, 916, -327,
- 830, 11862, 4373, 1003, 6370, -1730, -2127, 613,
- 1627, 626, 763, -864, 207, -233, 3738, -8644,
- -1634, -2050, 3906, -451, 12986, -4828, -2973, -4714,
- 545, 822, 735, -3539, -256, 65, -93, -94,
- 2923, 7075, -3763, 6172, -9544, -2675, -3833, 930,
- 418, -4496, 3790, 386, -7797, 234, -609, -259,
- 454, 330, 1546, -7634, -1966, 515, -2496, 374,
- 2633, -3014, 4126, 9920, -7103, 1441, -150, 7695,
- 670, -48, -41, -512, -6849, -1785, 3755, 1860,
- 2418, -2346, -1194, -1574, 15510, 444, -1515, 585,
- 742, -199, -1115, -122, -11, 140, -7763, 1438,
- -317, -444, -17149, -24, 2685, -856, -3166, 1109,
- 308, 233, 30, 63, 530, 645, 84, 133,
- 6139, -1183, -10673, -12790, -112, -1544, 4623, 576,
- -804, 1023, -1646, 1192, 269, 2681, 44, -909,
- -14, -414, 48, -4002, 4768, 3440, 3252, 1441,
- 101, 372, 3166, -1398, 325, 16184, -711, 486,
- 1328, 114, -450, -31, 1152, 2154, -69, -252,
- 32, 922, 219, -2055, 421, -1377, 1006, -614,
- 234, -40, -84, 204, 27171, 182, 1034, 1536,
- 834, -8038, 1243, -3074, -7829, 11165, -1854, -1173,
- -871, 4105, 3588, -3191, 188, -2102, 124, -166,
- 8070, -11066, 6632, 2739, -7787, 184, -5872, 1360,
- -1089, 1273, 84, -1683, -1584, 975, -206, 1160,
- 180, 12, -6121, 5436, -14726, 5949, -6756, 834,
- 1750, -3142, -878, 7, -220, -1933, -141, 160,
- 26, 756, -800, 6, -8104, -6989, 3353, -3518,
- 4510, -12430, 736, -2685, -1042, 32, 1184, -519,
- -312, -1073, -402, 71, -422, -35, 1791, 12735,
- -2281, 2623, -1502, -3878, 6727, 10541, -1110, 2308,
- 870, 1124, 874, -1406, 123, 254, 405, 328,
- 3828, -7541, 3096, -14145, -672, -1725, -423, -1918,
- 4164, -411, 3094, -568, 3575, -2895, -378, -3065,
- -232, 449, 8110, 2264, -1383, -557, -10683, -7628,
- 4155, 754, -134, 6759, 1051, -2054, -900, -948,
- 579, -1277, 151, 462, 11562, -310, -8260, 10238,
- -1309, -3052, 345, -689, -1133, -588, 548, 980,
- -1332, 881, 368, 776, -704, 422, 12433, 1314,
- -1487, -4753, 2679, 3092, -939, 136, -586, 3504,
- -1034, -6318, 3506, 420, 2326, 1034, -252, -398,
- -6232, 4488, -6166, -1754, 908, 4884, -5188, -2985,
- 10793, -116, 4674, 3980, -9, 805, 1568, -1620,
- -88, -146, 3027, -16154, 2899, 7839, 5912, -427,
- 270, -1467, -387, -351, 615, -322, -2, -1061,
- -654, 56, -438, 132, 2388, 460, 2172, 1874,
- -3028, 3302, 2035, -704, -1222, -19835, -472, -1858,
- -1686, -286, 5, -748, 491, -350, -4344, 103,
- 1473, 2440, 13575, -1350, 1456, 10377, 1962, 3036,
- -1238, 1580, 607, 1352, 997, 1212, -489, 251,
- 4075, -3457, 6186, 786, 300, -2532, -373, -2522,
- 3108, -294, 4938, -2980, 1509, 12450, -695, -1128,
- -96, 354, -3678, 8494, 2480, 2264, 5162, 11907,
- 4721, 1111, 752, 2999, 3924, -1429, 321, 276,
- 309, -603, 601, -62, 3337, -3570, 3273, 6618,
- -2001, 950, 532, 972, 1619, 956, 65, -609,
- -281, -14769, -438, 580, 230, -228, -10108, 12289,
- 8904, 872, -3296, 1535, -384, 477, -913, -777,
- 546, 445, -1004, -435, -716, -138, 572, 435,
- 4626, -864, -5716, -2810, 1291, -4796, -241, 2527,
- -2342, -1360, 4161, 1886, -128, -1521, 13726, 1818,
- -554, -157, -9665, 2607, -1013, 579, 1122, 1571,
- -2684, 11364, -6464, -184, -1542, -5670, -1091, -670,
- 1273, -1051, -7, -278, -2551, -548, -10673, -1434,
- -343, 317, -3108, -1615, -2239, -14132, 490, -454,
- 2467, 1990, 470, -1072, 440, 290, 3006, -4420,
- -2083, 3050, 2779, -2349, -590, -4941, 7464, -9000,
- -2686, -2045, -8712, -3281, -2476, 648, -148, 408,
- -1367, -1113, 27347, -1113, 739, 39, 1443, -208,
- -686, 986, 735, -702, 76, 665, -194, -165,
- 366, -606, -4908, -3932, -15941, -2810, 4572, 816,
- -2092, 4213, -2492, 4006, 926, 210, -1110, -1635,
- -270, -226, -362, -187, 1790, 3016, 2216, 3890,
- 2018, -1325, 19784, -771, 356, 2118, -98, -688,
- 1016, 978, 559, -39, 160, -310, 6622, -1754,
--11104, 204, -2212, 2370, -11610, 1119, 3216, 3102,
- 524, 278, -829, 524, 28, 838, 374, -76,
- -4593, -2933, 10697, -6510, -4970, -2025, -9383, -3428,
- -4112, 2665, 1459, -1411, 421, 481, 842, -341,
- 147, -158, 4108, 45, 4935, -21, -7905, 2058,
- 1158, 15260, -567, -752, -992, -1094, -1059, 2370,
- 820, 655, -261, 280, -3969, 6342, 8521, 3114,
- 369, -12269, 1684, 4, 4686, 1985, -3668, -3040,
- 677, -254, 57, -161, -989, -379, 7075, -580,
- 2846, -3177, -2285, 958, -7096, -154, -515, -3345,
- 13487, 3548, -1804, 290, -430, 726, 399, 54,
- -2814, 10235, 1958, -3356, -1330, 536, 3218, -14194,
- 200, -796, -862, -1480, 1811, -346, 604, -391,
- -231, 513, -10495, -6029, -6492, -8746, -357, -221,
- -1890, -2669, 8, -1756, -5812, -1048, 2258, 223,
- -474, 1154, -226, 348, -1590, 2915, 158, -24059,
- 875, -846, 1150, -1000, -844, -116, -246, -219,
- -482, -367, 120, 517, -489, 442, 8148, 5040,
- 3770, -1006, -51, -3175, -10278, -4468, 1188, 1497,
- -6515, -5, -1628, -2387, -1297, -717, 1630, 232,
- -3608, -6688, 2444, -792, -246, 411, 1464, 3661,
- 3244, -1121, -1602, -15398, -443, 882, 1412, 926,
- 16, -73, 2693, 7168, -9399, 528, 7916, -9270,
- -1669, -2756, 1304, 3074, -1510, -2089, 1491, -1556,
- -422, -414, 132, -192, 5988, 4500, 7572, -10978,
- -4875, 3685, 1888, -660, -1750, -515, -2728, -3133,
- -2742, 666, -2861, 626, 256, 243, 4587, -3567,
- -288, 2314, 4765, -11036, 7322, 7581, 2651, 3264,
- -394, -246, -891, -1464, -1717, 123, -517, -486,
- -1019, 7215, 554, 722, -4253, 2393, 3053, 2881,
- 1538, -2104, 573, 321, 673, 3902, -2855, 944,
--12816, 370, 3496, 952, -1435, 6379, 766, 2273,
- -729, 80, -2432, -1150, 2408, -895, 15497, -1231,
- -282, -3306, -435, -167, -3528, -5683, -6413, 2501,
- -4825, 124, 3128, -425, -2800, -986, -2283, -495,
- -3392, -1560, -2093, -11613, -37, 157, -438, -794,
- 1988, -45, 1508, 20, 98, -458, -245, 1130,
- 110, -525, -771, 1120, 710, -21758, 174, -210,
- -4839, -2468, -648, -4388, -11, 2990, -181, -4790,
- -4232, 3634, 6427, 2772, 166, -2996, -12005, 1630,
- -249, 179, 856, -1250, -4216, 1993, 5164, 4757,
- -5071, 4331, -3029, -1276, -11184, -2864, 1238, 6332,
- -2431, 1276, -338, -476, -5659, -2410, 2510, 1853,
- -4853, -3175, -1896, 10728, 3724, 960, 9963, 305,
- -938, -646, -2760, 1436, 113, -74, -3098, -4090,
- 2950, 2701, 992, 206, -1393, -2179, -10862, -2396,
- -1008, 2639, -1547, -416, 9264, 1824, -360, 401
-},
-
-.cb4440m0 = {
--25793, -238, 1193, -2635, -238, 1315, -2277, 1588,
- -896, 512, -864, 611, -398, 1277, -212, -358,
- 202, 13250, 16, -860, 1618, -1024, 310, 11560,
- -746, -3876, 780, -4087, -475, 857, 1017, -1439,
- -890, 155, 8556, 362, -1158, 2116, -291, -66,
- -1272, 510, -1394, 2259, -4761, 808, -740, -937,
- 13993, 191, 273, -7670, 6776, 846, -1907, 955,
--13206, -1956, 1697, 1670, -329, -244, 2395, 6119,
- -802, -1007, 649, -974, 170, -2136, -10780, 1020,
- 1270, 1954, 1118, 13348, 983, -1394, -594, -514,
- -586, 1026, -1821, 548, -298, 3342, 837, -1395,
- 13977, 1021, -7792, -2930, 1466, 5494, -843, 2432,
- 1378, -68, 174, 407, 76, -877, 691, -9445,
- 522, -3448, 2549, -412, -2358, 875, -5044, -952,
--10113, 6574, -6347, -2760, -662, 29, -227, 4884,
- 1304, 411, -3320, 2434, 785, -14822, 4412, 2272,
- -6407, 2172, -613, -1665, 296, 742, 624, 135,
- 5316, -3191, -855, -2061, 485, -3188, 2998, 1382,
- 2516, -2438, -3506, -238, 737, -629, 1001, 773,
- 17540, 1478, -724, -764, -1231, -1254, -1582, -692,
- -351, -1551, -171, 183, 38, -668, 756, -770,
- 24344, -905, -7182, 502, -3766, -1690, 1588, 1522,
- 1844, 1276, 1458, -777, 1731, 4856, -14860, -1097,
- 36, -1310, 846, -1500, 521, -3669, -252, 4480,
- -2602, -845, 597, -4512, 1062, -292, -18518, 1972,
- -334, -80, -1256, -366, 3640, -436, -12, -1670,
- -435, 1496, 1429, -11092, 1012, -936, -1224, -12240,
- -3048, 210, 1905, -1197, -357, -9759, -2632, -332,
- -3417, 15078, 1496, 2206, 1800, 205, 1384, 3546,
- -1853, 755, 1016, 726, 58, -150, -13053, 10375,
- -2589, -330, 1616, 3081, 2763, -2617, -1204, 324,
- -53, 2968, 1485, 214, 124, -334, -237, 16784,
- 2612, 1023, -4298, -2156, 4336, -4307, 4952, 1036,
- 81, -762, 3416, 714, -187, -4100, -757, 1124,
- 10224, 7059, 424, -316, 1281, -12262, 912, -1999,
- 2, -731, -184, 879, -934, -202, -391, -1046,
- -338, -101, -17511, -1712, -5580, -2327, -2478, 1770,
- -5825, 1499, 578, -130, 1424, -1818, 110, 542,
- 22, 988, -4227, 2836, -1447, 1170, 12335, 2179,
--11216, -2500, 64, -912, -954, 654, -802, -455,
- -597, 234, -296, 811, 1083, 1848, 4148, 637,
- -6608, -2362, -3382, -664, -13088, 2839, 3090, 3294,
- -4554, 2518, -55, 837, 1392, 5905, 1287, -1484,
- 965, 16533, -3507, -1903, -1562, 2408, 5037, -4816,
- 1409, 361, -1890, 170, -610, -1755, -524, -867,
- -6238, -20117, -745, -956, -176, 2998, 130, -668,
- -843, -267, -364, -573, 495, 127, -66, 32767,
- 271, -408, 654, -123, 1831, 151, 996, 82,
- 628, -251, 144, 198, -88, 357, 37, 612,
- 184, 238, -584, -52, -30025, -415, 404, -566,
- 100, 659, -336, 877, 211, -730, -377, 184,
- -5256, -1484, -1191, -2108, 24, -7821, 209, -2856,
- -1844, 697, 5798, -1191, 427, 11858, 1000, -261,
- 184, -686, 1182, -3142, -3138, 139, 144, 117,
- 3658, -3566, -1562, 672, 2036, 15051, -5069, -551,
- 529, 1696, -214, -2678, -5966, -3707, 2847, -2554,
- -1760, -1196, 2088, 6372, 1778, 12935, 2189, 1992,
- 1761, 578, -542, -753, -1182, 4321, 1871, 309,
- 704, -1259, 884, 19136, -2665, 1096, 3048, -167,
- 872, -344, -1092, 464, 3255, -86, 1608, -1062,
- -1569, -1699, 4504, -274, 568, 1428, 20571, 1452,
- -894, -791, 459, -882, -1048, -2944, -11095, -783,
- -832, -2450, 650, 2784, 3156, 529, 457, 483,
--12553, 655, 686, -757, 929, 212, 1242, -201,
- -1627, 4826, -1895, 997, -3225, 84, 80, 287,
- -2136, 405, -188, -890, -18272, -511, -118, -3642,
- -1018, 420, 12650, -474, -540, 6978, 6977, 4418,
- 1162, -1332, -1112, -1765, 2640, 562, -1164, 1256,
- 595, 567, -483, -31511, -960, -816, 756, 1505,
- 12, -518, 234, 184, 679, 328, -600, -137,
- 267, -440, 2540, 593, 1023, -11756, 626, -2034,
- 5756, -9882, 3175, -1190, 1628, 3920, 3219, 1394,
- 834, -140, 4036, 4722, -455, 3105, -1355, -3106,
- 1000, 7806, -2227, 687, -1580, 3180, -12302, -1394,
- -425, 488, -187, -36, 219, 158, 12006, 1683,
- 2151, -2, -1110, -12250, -59, 672, 1844, 2084,
- -2101, 1652, -783, 634, -13257, -339, 3932, 2260,
--12452, 152, 316, -688, 79, -912, -2081, 1384,
- 188, 1942, -706, 204, 700, 1776, 13901, -13666,
- -324, 472, 1055, -646, 82, -769, -877, -443,
- -227, -900, 636, -870, 470, -112, -598, -4402,
- -2726, 1775, -216, -43, -18675, -863, -4604, 3433,
- 674, -155, 208, 1546, 294, -157, -616, 11070,
- 1229, -528, 2124, 699, 3624, 54, -516, 194,
--13556, 1902, -506, -1317, 1916, 471, -342, 836,
- 18, 906, 614, -8, -951, 1052, -97, 2212,
- -924, 310, 6, -733, 122, 23731, 468, 345,
- 1545, 1434, 611, 403, -3136, -2214, -54, 1023,
- -1390, -5243, -3744, -258, 6871, -1778, 673, -2362,
--13007, -776, -974, -1077, 8386, -3978, -4325, 1236,
- 4011, 1161, -263, 1224, -12957, -100, 2801, 1458,
- -3081, 578, 17, 1037, -742, 5972, -632, 2904,
--12721, -6733, -478, 182, -1973, -820, -6911, -4904,
- -942, -348, -353, -350, 7864, 34, 568, 1985,
- 956, 3310, 118, -2067, 12600, 9063, 1609, -1261,
- 296, -1248, -1656, -65, 1832, 1525, 1503, 5149,
- 4370, -1638, -3868, 320, 1527, -424, 17676, 1780,
- 1172, -1132, 1128, 1294, -322, -101, 462, -6668,
- -3024, 7573, -11088, 1581, 13, -1398, 550, 4376,
- 1623, 1727, 857, -5310, 2528, -529, -401, 539,
- 6508, 4246, 4105, -5363, 96, -13407, -694, 5061,
- 3445, -3283, -348, -1470, 1114, 602, -404, -129,
- 642, 1547, 23110, -2255, 1969, 333, 1297, 116,
- -1691, 364, -528, 758, -1239, -1826, -249, -395,
- 684, -856, -638, -10000, -2773, -6151, -1244, -3138,
- -9688, -1994, 7124, 1368, -1870, -312, 1863, -1006,
- 963, 789, 743, -4158, -760, 1384, -7525, -959,
- -262, 5752, 4005, -12037, -210, 886, -1961, 4895,
- -251, -158, 212, 677, 518, 342, -226, -360,
- 466, 17, 28392, -20, 246, -686, -258, 640,
- -378, -120, -443, 1078, -2612, 2084, -1706, 4334,
- -4675, -4634, 2336, -9998, 9975, -1285, 2778, 3292,
- -1717, 138, 2114, -1120, -180, -1146, 11988, 829,
- -2530, -8827, 6833, -1191, -1653, 2691, -4067, 1166,
- 1971, 303, -544, -1459, -261, 1065, 3410, 2050,
- 3163, -515, 5456, -4261, 5483, 1531, -2098, 2020,
- 3773, 588, 915, 158, -11876, 282, -1180, 265,
- 11036, -66, -1741, -1894, -4234, 3048, 218, -1030,
- 2240, -12666, -2290, -1673, -1911, 1480, 287, -81,
- 1182, 216, -10734, 2201, -58, -619, 8585, -574,
- -4576, 1852, -468, -6759, -7667, 167, 995, -1114,
- -1276, -2053, 2178, -8133, -1270, -7822, -10582, 5380,
- 3037, 1071, 827, 4972, 1024, -129, -180, -3002,
- -846, -736, 9587, 1890, 10287, -1954, 1042, 1558,
- -950, 2406, -1852, 2275, 6694, -703, -910, 3854,
- 812, 521, -1075, -761, 5357, -3911, 3892, 7944,
- 4580, 5031, 1088, 7116, -1746, -5223, 2607, 3227,
- 2296, 5603, 211, -731, 6450, -3312, -12378, -326,
- 4245, 4168, -799, -3563, -505, 725, -5297, 2196,
- 2221, -16, -3472, 315, 626, -6131, 71, 920,
- -4383, -1340, -2675, -664, 7412, -1240, -1361, 997,
- -3817, -2377, -11717, 1661, 22, 540, -5261, -950,
- 7472, 3148, 7647, -4400, 4558, -4412, -869, -1528,
- -2618, 8311, 2110, 534, -460, -223, -162, -828,
- 274, 1844, 1861, -1583, 6899, 5222, -1772, -2880,
- -6400, 4703, 2606, -3990, -1224, -4160, 9032, -299
-},
-
-.cb4440m1 = {
- 32767, 383, 857, -1579, -423, 1164, -1606, 1218,
- -410, 777, -292, 122, 282, -74, -1394, 259,
- -734, 102, -82, 32616, 427, -545, -146, -141,
- 340, 506, -808, 171, -778, 900, -204, -277,
- -228, -426, 566, -481, -1138, -907, 112, 2722,
- 871, 115, -7202, 1953, -826, -1812, -396, -14722,
- -840, 155, 1114, 5624, 1112, -147, -6383, 926,
- 1505, 360, 937, -13391, 969, 7062, 2218, -3531,
- 471, 458, 191, -465, 8664, -1168, 546, 2109,
- -944, -74, 1644, -81, -760, -1920, 2659, 13330,
- 1511, -1148, 1346, 796, -20, -15616, 1246, -1190,
--10882, -774, -70, 3643, -896, 1830, -192, 1018,
- 1085, -95, -309, 659, 91, 727, -4486, 486,
- -2078, 1235, -14415, -4053, -1619, -2589, -582, -4650,
- 4076, -762, -1111, 277, 1448, -742, -314, -979,
- 1889, 2679, -1972, 2480, 302, 2869, -9183, -445,
- -1817, 12894, 106, 187, -1406, -615, -1174, 746,
- -371, 382, 350, -1811, -527, 36, 500, -835,
- -106, 1134, -2207, 1021, 348, 908, -21780, 448,
- 688, -60, -1790, 1901, -22990, 1467, 596, -912,
- -3190, 1484, 269, -409, -474, -1670, 1328, 152,
- -402, 359, -734, -13208, 62, -4197, -6242, 5195,
- -2841, 5030, 2794, 1264, -1130, 3821, 961, 729,
- 1075, 49, -148, 7267, 2596, -5093, -8284, -6875,
- -3059, 3909, -4635, 1402, -6334, -342, -3083, -861,
- 490, 1257, -630, 128, 2240, 832, 1060, -1802,
- -1652, 128, 7816, -14391, -6722, -3328, -2586, 3044,
- 1088, 1577, 852, -142, -176, 1371, 1236, 976,
- 12165, -1596, -199, -504, -11020, -582, 972, -1468,
- -2402, -666, -3327, -2148, 1078, -194, 9675, -2102,
- -1236, -70, -942, 291, 1364, 1403, -3362, 12963,
- -375, -1728, 1615, -2354, 633, -506, -194, 13037,
- 14172, 534, -1026, -425, 2488, -180, -678, -436,
- 272, 1507, -334, 840, -1000, -1068, 1029, -306,
- 24, -4435, -5994, -1307, 4251, 3968, 2527, -981,
- -2626, -4400, -242, -1823, -679, 12831, -22, 51,
- -381, 2422, -2376, -8156, -1477, -6974, 1102, -373,
- 467, 11314, -554, -432, 824, 7277, 393, -178,
- 179, -653, 11848, -1593, 14143, -731, -1036, -2322,
- 261, -1992, -1152, -1430, -1354, -51, -285, -1637,
- 144, -59, -2182, 5731, 538, -880, 397, 3010,
- 707, -1822, -1006, 4686, -5096, 4246, -3096, -3997,
- -254, -11025, 394, -345, 18780, -686, -517, -3422,
- 104, -2173, 2439, -5400, -10, 1084, 1821, -602,
- 1431, 405, 2143, 499, 405, 351, -62, -47,
- 1954, -29915, 440, 1054, 559, -1210, 442, 928,
- -1, 59, 279, -112, -110, -440, -396, 805,
- 311, 858, -431, -1070, -30192, 135, 1246, -345,
- 790, 498, 319, -302, -469, -10, 512, -829,
- -526, -2052, 2456, 134, -19375, -1210, -1292, 640,
- 3232, 2580, 973, -2412, 271, -282, 632, -523,
- -847, -138, -990, 2501, 536, -166, 2100, -357,
- 122, 466, -4, 2034, 20083, 1578, 444, -344,
- -689, 5733, -456, -503, -592, -1350, -1038, 932,
- -1916, 1098, -990, -22687, 1544, -442, -396, -570,
- -683, -616, -1431, 118, 4113, -312, 2300, 2093,
- -2344, -2955, 6343, 4306, -10078, 6286, -5794, -806,
- 664, -217, 548, 5072, 4626, -1643, -11619, 779,
- 1956, -2960, 614, 2087, 9104, -2418, 775, -4447,
- 768, 1599, -1084, 999, 1652, 1090, 630, -1197,
- -3495, -912, -9817, 648, 3278, 1828, 13605, 2757,
- -831, -1191, -1846, -1441, -278, -8530, -455, -495,
- 323, -911, 2500, 14100, 3635, 1016, -936, 5265,
- -3092, 2125, -121, -64, -656, -337, 9438, -7600,
- 1403, -11917, 2180, 2612, 1664, 1091, -318, -3300,
- -427, 282, 1979, 894, -703, 514, 160, 1697,
- 6508, 828, 187, -34, -1094, -2861, 240, -5013,
- 6004, -4796, -991, 158, 11437, -1730, 354, 1195,
- 3790, -10432, -3584, 13872, 336, 2043, 221, 604,
- 2930, 1080, -1417, 1878, -878, -459, -419, 364,
- -1037, 7764, 3100, 48, 11057, 1936, 2229, 9150,
- -472, 1178, -129, 2876, -249, -258, -1181, -329,
- -581, -1140, -1967, 347, -539, -394, 775, -1151,
- -31, 1052, -1900, -213, -1552, 22484, 164, -113,
- 135, -1294, 550, 7738, -7223, -739, 1362, 5518,
- 193, -2170, -11861, -1357, 351, 2215, 165, 16,
- -606, 727, -158, -772, -13420, -1248, 12422, -812,
- 1768, -442, 1269, -1076, 899, 124, -249, -1110,
- 653, -3064, -1632, 839, -230, 512, 642, 13230,
- 13285, -552, -1113, -595, 864, 537, -1012, -539,
- -615, -491, 1014, 800, -10, 534, -1227, -25011,
- 1239, -26, 3834, 104, 762, 1259, 2112, -300,
- -920, -812, 612, -1061, -378, -246, -7, 11042,
--18492, -1411, -77, 407, -556, 218, 1751, 1069,
- -294, 1789, 904, 285, -76, 300, -160, -128,
- -3398, -2001, 1689, 4946, -2750, 1427, -12632, -1873,
- -1802, -1115, -2777, -4436, 2937, -6408, -467, 487,
- 1043, 3914, -81, 1540, -11718, 1368, -12656, -583,
- 1009, -416, 249, 1874, 1157, 994, -858, -154,
- 294, 333, -26, 73, -1576, -20, -560, -1068,
- 1325, -588, 26161, 1580, -411, -587, -1083, -79,
- 762, 292, -622, 788, 284, 2014, 78, 554,
- -516, 1340, 835, 300, -24827, 558, -705, -22,
- 139, -159, -246, -585, 4318, 234, 1308, -198,
- -3370, 5724, 2381, 13843, 4, 569, 8002, 1188,
- -63, -1698, 4624, -405, -218, 4238, -888, -1180,
- 3750, -4848, -9497, 293, -1087, -13274, -33, -2870,
- 457, -618, 338, -34, 286, 345, -5321, 904,
- -5656, -2082, 12644, -7423, 532, 958, -1997, -1483,
- -2982, 3115, -1851, -2025, 1853, -918, -903, 1554,
- 540, -16549, 1441, 2939, -1272, 3106, 2374, 3906,
- -697, 1144, 750, -379, -6502, 980, 386, 36,
- 1109, 1195, 6272, 4264, 1501, 5369, -1560, 3535,
- 1084, 739, -1031, -4400, 8452, -430, -1787, -7669,
- -231, -115, 4324, -1820, -2098, -786, 7478, -2709,
--14255, 5771, 115, -1700, -111, -1482, -1369, -112,
- 122, -472, 233, 2427, 1816, 180, -481, 928,
- 82, 84, -700, -448, -946, 1968, 1644, 168,
- -167, 16164, 155, -10316, 941, -584, 488, 96,
- 5205, 491, -1844, -13055, 1266, -352, -836, 558,
- 1546, -1720, 313, 2033, 597, -14351, 4426, 3281,
- -559, 2614, 3248, -2265, -10312, -1614, -288, 480,
- 1419, -546, -485, 835, 960, 462, 923, 6518,
- 834, -711, -12639, 8811, -207, 1806, 337, -1240,
- -4796, 2383, 277, 1141, 969, 59, 197, 1365,
- -614, -9144, 4824, -436, 4191, -2588, 4509, 391,
- -5055, -3231, 6978, -6388, 51, 105, -863, 1050,
- 13103, 12769, -420, -1562, -123, 2702, 292, 1061,
- 123, 405, 1917, -275, 493, -95, -195, 130,
- -2613, 9010, 196, -1382, 5903, 7281, 1585, 2557,
- -876, 3166, 6910, 590, -3060, -559, 4722, 393,
- 613, -392, -3022, 9892, 1808, 923, 8123, 9873,
- -1665, 2349, 2894, 591, 2000, -3734, -917, 220,
- 408, 296, -656, 2608, -1700, 400, -10734, 5434,
- 6504, -1399, 2175, -1203, -6358, -1221, -5062, 45,
- 970, -500, -1322, 1176, 5882, -11687, 6324, -2183,
- 2327, 922, -5628, -3507, 2406, 874, 1399, 4518,
- -343, 857, -224, 802, -725, -8561, 4432, 1974,
- 1825, -2168, -451, -3408, 6587, 7589, 3361, -4711,
- -1474, 3151, 1950, 1022, 1466, 9192, 4666, -822,
- 1024, 2342, -2220, 1169, 10460, 2993, -988, -4407,
- -6727, 902, 1659, 80, 106, 400, 34, 1746,
- -6982, 10484, 6333, -845, -3333, 1764, 217, -4730,
- -3306, -3664, -2830, 2254, -927, -55, 587, 1812,
- 281, 4375, -3614, -1349, 1802, -6184, -2648, -4189,
- -9381, -3243, -4147, 384, 2241, 5524, -478, -1534
-},
-
-.cb4448l0 = {
--15402, -5156, -1798, -144, -4711, -4700, 2819, -389,
- 148, -2600, 1706, -1906, -578, 495, 24, 829,
- -383, -12581, 11667, -1039, 1395, 2670, -288, 23,
- 628, -248, -512, 79, -326, -5428, -2830, -2476,
- -1253, -915, 12042, -674, -110, 2950, 3885, -5799,
- 983, 616, -652, -60, -372, 22, -141, -167,
- 98, 125, -100, 27211, 133, -127, -271, -272,
- -176, 1268, 173, -422, 2431, -3998, -2797, 2328,
- 182, 6526, 3318, -6282, -10580, 3966, 8504, 527,
- 9507, 6203, 990, -989, 6030, -136, 647, -1100,
- -324, -2618, -2499, 500, -132, -842, 1237, 3599,
- 2285, 2906, 10766, 11284, -2794, 242, 184, -1934,
- 55, -839, -1181, 406, 855, 902, 10490, -327,
- -1561, 5742, 428, 2218, 1523, 5229, 9130, -760,
- 108, -140, 22229, 1132, 411, 720, 414, -356,
- -745, -1276, -899, -562, 369, 5, -7770, 4101,
- 3626, 126, -13, -4356, 728, -3197, 1930, -1470,
- -6936, -410, 6720, 1897, -530, -4267, -2181, -876,
- -472, -2540, -10234, 4008, 10217, -2561, -2021, 716,
- -1378, -325, 427, -245, 314, -48, -118, -150,
--30295, -368, 256, 369, -656, -78, -246, -140,
- -1250, -635, 1332, -13604, -10383, -1375, 353, 2417,
- 2140, -349, 1460, -51, -309, 523, 509, 2352,
- 1208, -377, -2023, 9708, 397, 1216, 10610, -4416,
- 5520, 3902, -2119, -480, -420, 1170, 36, -3304,
- 1550, -266, 1682, -808, 2420, 2700, 16239, 3910,
- 572, -375, 85, -9775, -120, 2214, 2779, 11510,
- 2628, -416, -1740, -1305, 1226, 78, 78, 635,
- 422, -13892, 1302, -4117, -1218, 2681, -8436, -1723,
- 2290, 2815, 1172, -181, -675, -475, -763, 2394,
- -3639, 7903, -659, 2323, 4837, -6758, 9460, -1480,
- -2403, -2783, 1496, 806, -458, -246, 12, -254,
- 121, 1477, -633, -513, 791, 208, -390, -177,
- -1292, -20471, -4401, -2678, 9026, 128, -265, 822,
- 260, 11202, 3132, -1879, -3891, 1884, -842, -107,
- 7516, 1208, -1552, -995, 1203, 2150, 11044, 1285,
- 2282, 80, 1348, 5342, 2089, 924, 1472, -1454,
- -8259, -226, -10259, -2335, -2442, 224, 3257, -1528,
- 6685, 1630, 1969, 48, 4802, 6051, 987, 8662,
- -2368, -4984, -1974, -4049, -5320, 5003, 299, -400,
- 727, 208, -187, 2838, -4547, 9682, -2238, 1065,
- -3206, 10091, 4915, 2945, -1635, -198, 1074, -698,
- -716, -96, 1390, -2644, 1006, -4154, 10587, 1132,
- 2912, -7399, -8350, 785, 156, -290, -142, -374,
- -2161, 1066, 1358, -1798, 3050, -19, 452, 10470,
--10948, 4190, -984, -2089, -728, 1503, 4273, 812,
- 4950, -3750, 844, -1231, -1582, -2517, 2385, -10537,
- 5807, -4621, 332, -357, -12484, 1676, 160, 10762,
- -1225, -1374, 14, -1389, -2900, -467, -1260, 459,
- -861, 102, 1715, 4295, -7324, -7400, 10435, 287,
- 1866, 765, 1730, 3430, -744, -2, -1773, -96,
- 2001, 2165, 118, 9296, -4640, -4612, 7134, 5128,
- -7967, 404, -433, -433, 2222, -8050, 2023, 2766,
- -260, -2440, 1607, 2442, 7763, -486, 3766, 2355,
- 7515, 230, 1248, -8873, -8224, -9135, -1402, -1812,
- 1223, 152, -2316, -739, -405, -784, -598, 625,
- 503, -175, -573, -31693, 502, -478, -554, -934,
- 387, -80, -484, -701, -34, -51, -494, -1461,
- 1005, 2920, 11532, 2667, -1674, -832, 8680, -5767,
- 786, -1558, -2062, 1009, -392, 2099, -7277, -2587,
- 6302, 3070, 4496, -1713, -4042, -8109, 1642, -1894,
- 3450, 840, 3632, 160, 578, 149, 767, 754,
- 208, -870, -672, 252, -30, -213, -482, 50,
- -578, -2, -148, 246, -31918, -568, 130, 472,
- 761, -27, -51, 454, 144, 124, 5844, -8354,
- 9562, -3755, -262, 3286, 1120, 983, -628, -734,
- -1732, -1424, 353, -403, 15877, -13552, -335, 337,
- 519, 140, 297, 150, 725, -780, 876, -116,
- -91, -128, 275, 2499, 9313, -768, -10469, 1148,
- 2172, -6417, 3292, -2187, -1108, 3055, 1105, 625,
- 794, 68, 337, 1384, -106, -516, 574, 868,
- 849, -997, 81, 25796, 28, 206, -3556, -351,
- 1058, 1126, -7826, 5310, -4102, 5352, -6835, -4032,
- 1487, 230, 5617, 937, 10484, -71, 2653, 1203,
- -1, 667, -1489, -10136, 7782, -763, 792, 1434,
- -170, 367, 96, -21992, -252, 756, 145, -1476,
- 1408, 1523, -819, -576, -476, -1068, -241, -39,
- 1547, 9553, -622, -1799, 1861, 6115, -864, 10690,
- -586, 470, 200, 1162, 586, 44, -11650, 3453,
- 8734, -2754, -178, 236, -2650, 2654, 2699, 1180,
- 5325, -458, -40, -218, -6, 126, 6794, 506,
- 860, 11863, 652, 1665, -4213, 4863, 1424, 5712,
- -663, -688, -10, -1421, -676, -1325, -378, -311,
- -490, 19501, 1242, 268, 4581, 1587, -1153, 848,
- -1378, -1159, 505, 63, 704, 1942, 2204, -2106,
- 44, 479, -1098, 333, -21595, -617, -6444, 3547,
- 1282, -1784, 4664, -1330, 2607, 1241, -3579, 247,
- -875, 11359, -3013, -136, -12813, -14400, 1857, -998,
- 1342, 1187, -338, 1263, 575, 1226, -995, 596,
- 446, 293, 767, -356, 70, 786, 466, 202,
- 149, 849, -28991, 652, 124, -209, -124, -406,
- -5463, -1413, -1300, -5339, -1761, 4770, 2680, -10542,
- 3486, 5601, 2932, 1581, 489, 521, -16583, 1,
- -1529, 5942, 1234, 4714, -1647, 1150, 2802, 642,
- 586, 3836, 240, 307, -490, 67, 771, 816,
- -906, 1554, 1090, -2353, -629, 11291, 2941, -2982,
- 9473, 1434, -4351, -8017, -5173, 8071, 1931, 1281,
- -4055, -3224, -1918, -271, -204, 670, 3491, 107,
--31624, 227, 75, -91, 108, 171, -53, -201,
- 373, 63, 118, 126, -104, 127, -88, 1810,
- 11688, -10240, 550, 3692, -4978, -1619, 40, 911,
- -1080, 580, -767, 333, 192, 403, 308, -904,
- 142, 31169, 503, -1101, -146, -144, 35, 181,
- -355, 54, 590, 499, 95, -1767, 444, -49,
- 2160, 7176, 12032, 6478, -741, -5576, -644, -101,
- -1251, -1268, 2365, 10029, 537, -1476, 307, 2108,
- -2478, -944, 10725, 349, -4242, -135, 7577, -4492,
- 1492, -2512, 7736, -5118, -6756, -2436, -1890, -2390,
- 1620, 914, 1658, 47, -11692, -134, -1740, -196,
- 9521, -136, -1376, -8682, -1136, 1096, 903, -1148,
- -334, -228, -4, -675, -199, 1914, 2827, -11098,
- -2129, -2559, -978, 175, 1832, 10075, -2358, -1888
-},
-
-.cb4448l1 = {
--11514, -2858, 12392, -305, -206, 929, 473, -3120,
- -2766, -1068, -1237, 420, -718, -21, -336, -45,
- -478, -1517, 1830, -12644, 259, 11978, 257, 1494,
- -1759, 247, -733, 112, -2242, 290, 234, -10260,
- 1781, -1806, -4104, 1747, 38, -692, 4971, -9113,
- -1925, -1580, -615, -9608, 3779, -11158, 469, -4736,
- 299, -2815, 2108, 1910, -2356, 66, 523, -440,
- 2298, -4219, -2512, -1110, 11192, 5932, -2629, -7985,
- -992, 775, -1134, 3287, 900, -681, -39, -1206,
- -1708, -6800, -361, 11024, 8496, -198, -3855, 1486,
- -2547, 1773, 50, -276, -286, 785, -7884, 438,
- 4590, 2794, 5333, 5476, 2108, 660, 3610, 2308,
- -8538, 224, -132, 134, 731, 988, -1368, 3894,
- 4318, 9911, -104, 320, -9506, 1721, -5690, 1712,
- -8747, -1876, -5122, -1304, -162, 752, 3646, 1621,
- 11089, 1117, -1971, 1058, 3070, 180, 23112, 175,
- 483, -1028, -538, 497, 1053, 61, 788, -455,
- 22, -55, -32, -326, 15956, -2045, 788, 9784,
- -1170, -819, -3677, 647, -484, 578, -160, 286,
- -421, 289, 8140, 3838, -578, -1866, -2074, 667,
--11951, 1684, 3439, 1280, 158, -1784, 1276, 638,
- 562, 2045, -220, 852, -594, -2109, -2665, 2748,
- 38, 91, 1377, -624, -18586, -498, -882, 36,
- 536, -99, 62, -5275, 3051, 231, -6343, -1751,
- 1206, -1646, -1347, -13590, 1431, -271, -442, 21934,
- -143, -1824, -378, -463, 816, 379, 336, -291,
- -652, 275, -758, 257, -14866, -1304, 7260, -3373,
- 1249, -1992, 2734, -2565, -3064, -416, 2424, 279,
- 10518, 206, -681, -14338, 666, 1843, -648, 526,
- 1982, 366, 684, 1019, 192, 8, -482, -4785,
- 2134, -1722, 10674, -1613, 33, 1148, -1566, 10226,
- 3397, 667, -1100, -738, 2420, -14282, 451, 90,
--10346, 2673, 1175, -3639, 266, -566, 0, 1672,
- 1082, 298, 359, -497, 1784, -570, -2538, 2522,
- -3825, 6265, 99, -7927, 3160, 11079, 131, -2080,
- 92, -29951, 268, -293, 240, 254, -182, -145,
- 303, 12, 86, 596, 246, 136, 1020, -1521,
- -1134, -10125, -5691, 6028, -3703, -4295, -3718, -5719,
- -564, 660, -321, -1073, 83, -3068, 6167, 12788,
- -762, 8057, -1215, 2379, 2142, -3625, -503, -1418,
- -304, -649, -501, -12558, 12787, 3737, 1465, -3692,
- -1321, 1106, -1136, -651, -50, 1608, 59, -583,
- 82, 331, 443, 782, 93, 285, 310, 29149,
- -698, -52, -909, -238, -222, -114, 4, 650,
- -200, 235, 2541, 598, 378, 11000, 3101, -8228,
- 1690, -4313, 6996, -11, -2620, -1458, -1428, 579,
- -304, 20, -372, 897, 602, 432, -138, 690,
- 593, -1485, 136, 191, -32147, 260, 199, 412,
- -168, -41, -384, -362, -14, 242, 366, -318,
- -304, 1544, 458, -7790, 3332, -5117, -1937, 868,
- 12622, 906, 1941, 4763, 1698, 351, -234, -973,
- 9166, 6726, 2686, 248, 3597, -9812, -400, 4155,
- 2852, -415, 2218, 876, 1423, 3852, 2965, -410,
- 1820, 8268, -1296, 686, 114, 3087, 3007, -9402,
- -5751, -3459, -6674, 418, 4137, 4778, 56, -1399,
- -1698, -2590, 8343, -2130, 2535, 6148, -134, -2393,
- 11551, -338, 735, 630, -658, 13358, 949, -1136,
- -217, -985, 182, -1014, 1459, 221, 7713, -1386,
- -1427, 1326, 555, 66, 2694, -1535, -268, -13596,
- 658, 305, 858, 548, -12748, -582, -1055, -659,
--12155, 940, -2164, -2518, -126, -132, -842, 641,
- -483, -446, -5184, -186, -511, 1169, -6092, 6161,
- 3082, -664, -2037, 847, 11032, -1306, -1673, -1219,
- -36, 1862, 10053, 780, -282, -837, -263, 509,
- -588, -12646, -769, -2164, -2219, 524, -3433, -6437,
- 3890, -623, -7509, 241, 4042, 264, -1394, 3646,
- -6925, -5184, 1218, -1476, -2240, 1882, 182, -3450,
- -497, -148, 160, -1579, -19545, -80, 886, 913,
- 708, 728, 393, -603, -778, 3414, -778, -1495,
- 1205, 2342, 232, -3634, -76, -16792, -684, 1322,
- 192, -13248, -658, 7650, 4731, -169, 5148, -1413,
- 3026, 2480, -2190, 1004, -2082, 237, 171, -717,
- -766, -525, -11802, -3776, -9914, 1374, -3250, 415,
- -2787, -175, -1081, 792, 980, 11464, 834, 714,
- -993, 150, 77, 2306, 11249, -3058, -3418, -1758,
- -239, -119, -1408, 6083, -4276, 1827, 1660, 2287,
- -2997, -576, 400, 2062, -3174, -6215, 10026, -1082,
- 41, 249, 10026, -6199, -301, 280, 10120, 2249,
- 527, -564, 1002, 622, 3341, 408, 2870, 12902,
- 13307, 689, 336, -819, -43, 832, -1242, 657,
- -106, 42, 1123, 149, -2072, 78, -303, 329,
- 21745, -2172, -1204, 448, 1437, -560, -376, 311,
- -73, 153, -785, -368, 54, -445, -92, 120,
- -59, -377, 402, 567, -25820, 1284, 1288, 200,
- -865, -1286, -41, -1862, 402, 179, -2338, -3876,
- 4992, -1824, -10092, -3407, -8516, -3556, 130, -5695,
- 5846, 2333, 2995, 2110, -6946, 5049, -2377, 1655,
- -859, -4737, 1648, 7031, -7344, 4992, 1760, -711,
- 3134, 14363, -907, 171, -1971, -3062, -1079, 600,
- 603, -224, -440, -11328, -291, -663, 1878, -715,
- -2724, 284, -456, -10970, -3225, -2240, 252, -977,
- -360, 729, -572, 3981, 1615, -52, -5372, 6095,
- -9888, 6873, -3830, 4916, 1834, -1581, -11268, -2316,
- -398, 1361, 6151, 2736, -1968, 4624, -180, -260,
- -1221, -5633, -1300, -1081, -1433, -509, 366, -388,
- 1660, 340, -18997, 694, -1184, -813, 1324, 1261,
- 735, -186, 5258, -583, -221, 1707, 149, 1022,
- -835, 1089, 2939, 2025, 421, 411, 3609, -13797,
- 464, 9214, 2462, -6257, 6032, 1911, 1282, -9673,
- 974, -703, -128, 950, 369, 1160, -674, -312,
--13858, 1078, -7606, 8, 2786, 367, -6441, -824,
- -195, 714, 484, 108, 475, 289, -1012, -1591,
--10880, -324, -647, -2199, 10378, 5781, 995, -416,
- 871, -1240, -380, 70, -1893, 7632, 1727, -908,
- -672, -10901, -962, -7322, 794, 1748, -5568, 1215,
- 5845, -9575, -2413, -2159, 3077, 1359, -416, 6277,
- -85, 1352, -3498, 6130, 1125, -236, 1950, 8481,
- 716, -560, -1311, -228, 250, -440, -5320, -1941,
- -9710, 4637, 1420, -102, -8222, 616, -2254, -528,
- 196, -1315, -749, -97, -285, -15880, 1105, 630,
- 368, -809, 29, -1688, -2314, 745, -1627, 19840,
- -2380, 4108, 1670, 2763, 275, 530, 492, -589
-},
-
-.cb4448s0 = {
--10720, 9997, -1313, 8849, 5152, -226, -2908, 303,
- -842, -870, 165, -1372, -105, -154, 170, 2424,
- -2476, -2126, -8329, 349, -4509, 5128, -92, 9086,
- -7263, 416, -124, 341, -88, 239, 5172, 553,
- 1526, 1728, 1955, -1489, -6595, -11237, -10224, -394,
- -927, -932, 674, 743, 317, 4628, 8453, -3768,
- 2545, 3506, -2406, 9108, 5643, 4660, 4116, -2452,
- -1391, -154, -74, 180, 5270, -7922, 46, 11046,
- 6076, 735, 7922, -196, -1080, 1445, -687, -2403,
- -784, 742, -269, -498, 6010, -4045, 1053, 891,
- -1538, 613, -84, -4254, -957, 4682, -14004, 2050,
- -647, -718, 557, -2720, 2437, -7675, 11874, -9284,
- -734, 775, -2231, 105, 366, 1360, -98, -126,
- 508, 2647, 729, 762, -8806, -10413, 9008, -2093,
- 1107, 201, 1421, 1181, -259, 1420, 828, 327,
- -1956, -573, -874, 354, 2662, -1437, 10864, -9240,
- -7648, 1670, 1598, 173, 438, -373, -566, 246,
--11999, 1817, -611, 1, -1652, 1876, 1354, 1270,
- -789, 300, -321, 11577, -516, 329, 5723, 4732,
- 1717, -6224, -5356, -6292, -370, -3644, -922, -50,
- -14, -581, -1554, -1675, -20, -965, 28479, 658,
- -498, -488, 504, -601, 437, -585, -245, -196,
- 186, 281, -174, 159, 7469, 5890, -5112, 4918,
- -9023, -360, 40, -2975, 4784, -437, 1609, 1032,
- 2759, -297, 106, 5176, -4315, 568, -9536, -1297,
- -6783, -10965, 1285, 264, 330, -508, -522, 624,
- 662, 539, 7248, -13780, 40, 2140, -2188, 1925,
- -8972, 1147, -1340, 870, 779, -4, -101, -374,
- 781, 5733, -5712, -5777, 2080, 875, 13450, -1551,
- -3229, -1818, -114, 1265, 501, 636, -576, -623,
- -1269, 3006, 1023, 862, 1359, 1950, 588, -22648,
- 218, -438, 1547, -408, -844, -263, -106, 14754,
- -689, -9466, -978, -21, 1412, 43, 2012, 352,
- 908, 277, -960, -747, -230, -1557, -7132, -5707,
- 79, -2474, 2177, -5349, 2510, -12720, 2833, -2152,
- -1693, 458, 197, -643, 735, -2728, -893, 2758,
- 5196, -3566, -4294, -4914, -1222, 188, -8884, -6234,
- 2391, -1518, 663, 572, -1465, 1147, 8486, 2037,
- 2516, 941, 6092, 11602, -2559, -1702, -1848, -924,
- -210, -108, -1052, 8360, -7567, -4588, -169, 3464,
- -9206, 1842, -4329, -2499, -341, 592, 918, -102,
- 340, 214, 1037, -324, -16289, 10308, -47, -29,
- 1340, -603, -2763, -548, 392, 1489, -149, -769,
- -67, 13270, -2233, 8257, 1582, 1034, -4270, 916,
- 4486, 1191, -102, 159, 109, -536, -664, -987,
- -8041, -1759, 4264, -5600, -13815, -1158, 1712, 2516,
- -634, 504, 515, 732, -46, -685, -481, 1685,
- -1782, 262, -3600, 14721, 6334, 7941, 101, 914,
- -2141, -2, 182, 829, -215, -122, 6325, -3752,
- -2812, 1618, 3512, -1591, -4276, 6994, -10349, -5675,
- -1501, -1766, -1949, 436, 82, -5596, 2592, -1086,
- -2804, 2540, 458, -550, -1834, -2401, -7563, 2340,
- 1678, -7666, 4538, 27, 6337, 3642, 17068, 5310,
- 1115, 1579, -142, -397, -670, 2010, 863, -504,
- 845, 848, 770, -8821, 1963, 2782, 162, 1130,
- 2597, -13699, -3996, 800, 2499, -1045, -1512, -186,
- -59, -119, -5048, 6800, -8766, 784, -7091, -1002,
- 335, 1993, -1045, 601, 1804, 166, 1343, 110,
- -224, 2247, -344, -5, -4292, 5846, 8591, -11846,
- -1303, -1027, 1759, -168, -194, -1281, 489, 378,
- -5069, -3321, 11238, -375, -806, 3962, 9660, -2960,
- -664, -1067, -627, 271, 1205, 1160, 261, 3725,
- 7877, -679, 22, 598, -1086, -420, 2168, -46,
--15552, 420, 1220, 1332, -58, -156, 7777, -4657,
- 352, 15316, -4760, -2140, -2577, -1321, 2037, -371,
- -1254, -912, -1177, -1367, -103, 4572, -9482, -1599,
- 294, 403, -272, -2331, -4365, 13467, 4585, -2554,
- -1743, 545, 162, -369, 6074, 11273, -8856, -8175,
- 2543, -7, 314, -2033, 2704, -1755, -1431, -791,
- -276, 1085, 236, 6553, 1872, 387, 1056, -31,
--20610, -609, 608, 1007, 1604, -1501, -68, -527,
- 204, 252, 2533, -721, 1468, 444, -72, 61,
- -209, 512, -216, 42, 385, -490, -104, -29030,
- -166, -4883, -2754, 788, -430, -867, 565, -1155,
- 562, 1076, 1757, -2990, -14971, 8392, 902, 550,
- 102, -6579, -6939, -319, 172, -863, 979, 2178,
- 630, 160, 952, 946, -3955, 1515, 352, 2557,
- -5339, 6166, 4588, -2040, 4031, -535, -2504, 2782,
--12136, 1338, -2758, 458, -671, 155, 6998, -2598,
- -931, -396, -922, 2060, 447, -42, -649, -532,
- -552, -1945, -16548, 815, -408, 3469, -4118, 875,
- -1017, -11150, -511, 3846, -11349, -1928, -781, 2765,
- -681, -713, 655, -218, -8032, -465, 295, 1591,
- -383, -1889, 1627, 108, 1149, 2513, 388, -5702,
--15693, 24, 470, -4322, 3721, 1584, 1808, 350,
- -1765, -620, -2953, 4354, 8512, -12533, -86, -2490,
- -192, -507, 2024, 3942, -801, 13444, 738, -2086,
- 162, 2013, 837, 56, -384, 3164, 5052, 1158,
- -403, -6913, -4290, -2068, 16622, -2738, 856, -2884,
- -2432, -410, -1179, -456, 504, -1359, 436, 352,
- -6351, 327, -2196, -1502, 302, 338, -839, 235,
- -520, 1283, 2710, 18814, 2256, -2, 400, 1300,
- -1185, 1024, -3744, -3542, -4350, -763, 1902, -14737,
- 5437, 48, -1589, -280, -67, 232, 2276, 1413,
- 3284, -308, 1013, 610, 22787, -685, 724, 12,
- -359, -1651, -1060, 569, 248, 3836, 605, -413,
- 3380, -1360, -1120, -2933, -2368, -977, 10135, 12356,
- 3739, -1571, -418, 580, -2662, -11460, -6128, 2867,
- 11468, 825, -3201, -501, -138, -755, -554, 168,
- 757, -564, 428, -12118, -15179, -1978, 432, -597,
- 1528, 3038, -568, 1349, -3377, 914, 498, 928,
- -91, -5, 9192, 3000, 2542, -1411, 626, 2705,
- -763, 3247, 13736, 3034, 2170, -67, -852, -378,
- 1264, -2771, -2415, -4236, 126, -1984, -13336, -1088,
- -416, -1979, -520, 2506, -1505, 294, -2398, 218,
- -8740, -3873, 2069, -1374, 86, -998, -3851, 1070,
- 13357, 955, 3085, -536, 166, 926, 299, 6532,
- 1324, -502, -1658, 1829, -1263, 445, -1902, 1452,
- -2747, -16422, 1875, 1773, 452, 288, 5992, 1626,
- 3659, -917, 2255, -1508, 356, 547, 158, 9,
- -117, -1665, -595, 14392, -1013, 49, -4060, 12064,
- 3666, -2903, -9145, -396, -4341, -953, 2758, -178,
- -204, -462, 98, 222, -3622, -12200, -4484, -94,
- -8642, -5694, 4034, -720, -1695, 751, -1668, -266,
- -343, 296, -112, -900, -3750, -360, 1002, -7402,
- 7758, 7370, 3332, -7517, -769, -1272, 412, -1451,
- -89, -227, -11332, -472, -1108, -394, -339, -1981,
- -3494, 12110, -564, -5958, -690, -1066, -130, 762,
- -50, -1456, -1521, -8428, 994, -867, 2650, -2335,
- 354, -2253, 4612, -12364, -2626, 1853, 577, -103
-},
-
-.cb4448s1 = {
- 25901, -239, 648, 167, -284, 198, -340, -1112,
- -55, -242, -214, 528, 112, -259, -284, -250,
- 23, 475, 780, -558, 111, 148, -2411, -19826,
- -1158, 2799, -964, 44, -1204, 1187, -4036, 1872,
- 3541, 768, 159, 1979, 3382, -113, 804, -1021,
- 3708, -2577, 9697, 11527, -326, -7058, 4306, 1260,
- 3782, 3370, 1595, 705, 2268, 2182, 1509, 1131,
- 9877, -7260, -258, 49, 1686, -1472, -2556, -1973,
--22425, 338, 486, 963, 1069, -34, -1027, -90,
- -881, -473, 554, -6326, -873, -9744, 10157, -1079,
- 584, -1047, -1954, 6204, 2416, -899, 1452, 938,
- -439, -664, 4231, 9370, 7800, 170, 9448, -4756,
- 1967, 686, -1186, 636, -1719, -1244, -540, -728,
- 306, -1778, -7980, -3418, 8318, -1828, 1556, 3487,
- 10195, 3741, -510, 2077, -1496, 1241, 384, 477,
- -1051, 7922, -4077, -2513, 849, -693, -9170, 4264,
- -7940, -1703, 460, -2986, 586, 13, 377, 781,
- -7047, 6852, -1350, 7537, -493, -1919, 379, 3108,
- 4293, 8467, -3875, 63, 44, 493, 1496, -1577,
- -5676, 3318, 6628, 5177, -11082, 1146, 3251, -1159,
- -461, 442, 1250, 212, 176, 3586, 137, -9153,
--13772, -8211, 393, 1170, 1717, -671, 298, -233,
- 883, -1533, 401, 254, 7700, -4827, 794, 377,
- -376, 12240, 7298, 2445, 1168, -562, 1528, 563,
- 421, -606, 0, 5792, -1069, 824, 3728, -2729,
- 1005, -730, 4318, 644, 17336, -1588, 2100, -365,
- 509, -415, 3684, -9128, -1096, -4278, 1549, -1247,
- 5519, 11075, -2216, 6004, -3683, 409, -730, -414,
- -263, -6623, 8194, 489, -9085, 334, -1104, -814,
- 1412, 1522, -1657, -7029, -4142, -1274, -520, -40,
- 650, -1886, 9701, 11456, -7567, 1176, 3268, 3016,
- 1109, -117, -858, -155, -1249, -230, -216, 3945,
- 9142, -2297, 134, -2563, 15131, 857, -1597, -618,
- 150, -590, -166, -357, 388, -69, -8767, 2914,
- 1087, 4673, -14373, 600, 382, -1893, 844, -242,
- 544, -106, 568, -1141, 371, 2663, -1860, -725,
- 8066, -1353, -8743, -10433, -1796, 427, -73, 178,
- 96, 980, -478, 978, 1767, 6034, 633, 966,
- 677, -65, -884, 417, 461, 62, -868, 93,
- -100, 519, 16304, 2646, -1260, 12271, -140, 142,
- 11138, -892, -2114, -629, 172, 744, -2056, -960,
- 61, -980, 2082, -439, -3126, -2564, 1174, -78,
- 254, -178, 1599, -436, 19023, 5335, -1686, -782,
- 520, -8727, 256, -3588, -5694, 12323, -2091, 1511,
- -656, 3872, 2370, -770, 282, 455, -573, -39,
- 7845, -12566, 12690, -156, -442, -227, 575, -274,
- -1717, 120, -40, 1866, 635, 161, 270, 1039,
- 3256, -673, -3343, 4292, -14247, 7142, -4821, -591,
- -418, 376, 21, 572, 551, 70, -5536, 79,
- 2540, -505, -283, -350, -1279, -1630, 2234, -604,
- 5246, -17580, -3022, -1052, -307, 6626, 2794, 1702,
- 1875, -1876, 1011, -320, 1268, -282, 1072, 14370,
- -8206, 1218, 630, 173, 7486, 15176, -6146, 4903,
- -636, -1341, 1360, -1541, -1012, -778, 84, 426,
- -124, -746, -252, -11085, 1783, -2833, 809, -744,
- 2194, 3328, 7029, -5097, 4934, -3025, -641, 303,
- -328, 258, 8674, 53, -3395, 975, -9944, -8550,
- 3376, -714, 1078, 1186, 598, 808, -166, -752,
- 484, -5088, 1484, -1278, 11394, -1876, -8236, 5159,
- -1830, -1520, 2761, 592, -204, -1360, 454, 230,
- -5038, -1582, -5617, 1346, -2045, 2306, 17764, 494,
- 572, -1930, 339, 550, 784, 151, -753, 4708,
- -3058, -8267, 3281, -1054, 870, -1201, -2005, -920,
--10115, 5395, -6423, -798, 367, -221, -5296, -2808,
- 8313, -5077, 1655, -200, 114, 46, 350, -2374,
- 868, -327, 377, -9570, 1231, 9258, 8752, 3074,
- -4411, -308, 2315, 6824, -3303, -896, -1186, 579,
- -2561, 2280, 586, -798, 4747, -3487, 1306, -1241,
- -487, -90, -52, 3231, -555, -17702, -2681, 1649,
- -17, -278, -647, -4225, 2740, -1248, -3826, 1356,
- 3572, -1010, 16160, -422, 304, 3970, 1124, -317,
- -554, 673, -1191, 3180, -4429, 1581, 1543, -2097,
- 4208, -9363, 10146, 1896, 2904, -4112, -1428, -207,
- 459, -35, 5395, -8960, 3141, 11004, 308, 3687,
- 1540, -2156, -592, 1640, 1003, -280, 797, 204,
- 6910, -824, 4724, 4729, 5553, -3165, 483, -12,
- 33, -588, -379, 402, 3543, -9646, 74, 9603,
- -465, 2872, -2367, -885, 2894, -133, 2758, -721,
- 3473, -13322, 1506, -1344, 512, 1066, -8300, 11391,
- 11976, -1201, 13, -612, 165, -1823, 154, -123,
- 1234, -423, -367, -58, 384, 2687, 2536, 826,
- 6223, 1750, -8589, 1126, 9772, -6646, 2043, 1826,
- -1037, -2018, 692, -818, -3431, -467, 11006, 3407,
- 880, -2047, -10303, 6168, 1428, -307, -18, 661,
- -252, 754, 1207, -2797, -3057, -6235, 99, -931,
- 1618, 692, 2790, -294, -1200, -5768, -11691, -5305,
- -100, 390, -783, -11660, -4675, -13570, 2764, 1414,
- -786, 385, 163, 718, 794, 1118, 827, -634,
- -75, 6224, 3965, -2092, -1120, -6395, 5474, -12986,
- -3985, 635, -544, -1877, -191, 0, 121, 379,
- -3059, 132, 26320, -721, 1262, -706, 421, -85,
- -38, 665, 590, -208, -196, 168, 10, 1271,
- -218, -365, -5843, -5897, -12346, -3026, 5916, -115,
- -2671, -1022, -203, 962, 995, -850, 527, -516,
- -1641, 452, 68, 1204, 740, 385, 38, 752,
- 150, -3088, 20608, -54, -39, 6109, 3224, -92,
- -315, 4407, -306, 1317, -395, -1617, 9104, -3493,
--10724, -3059, 283, 81, -9791, -3210, 7307, 4459,
- -639, -61, 1152, -184, 2290, 398, -2902, -2776,
- -1624, 1153, 242, -8865, -3617, 309, -11933, -3847,
- -5750, 3235, -153, -315, 382, 209, -923, 2072,
- 458, 164, 3631, 3121, 3220, -828, -8644, 2215,
- 3873, 12445, 533, -631, -53, -136, -728, -240,
- 420, 2870, -4981, 906, -3272, 4735, 3613, 2412,
- -3951, -10587, 7389, 564, 3266, -1348, 524, 1570,
- 6611, 3354, -1042, 1862, 1860, -1187, 5761, -1722,
- 8231, -7428, -5662, 1239, -2887, -218, 810, -1063,
- 15078, 686, -2374, -293, -2031, -245, 4441, 5045,
- 1100, 6722, 1787, -587, -380, 132, 5124, -12478,
- 95, -1230, 1464, -1871, 929, 1430, 2666, -3768,
- 2784, -3697, -8238, -247, 603, -8406, 1330, 1033,
- -743, -2546, 2739, 856, -12698, -4970, 2290, -1104,
- 34, -1048, -80, 634, -695, -84, 2374, -24793,
- -1064, -1080, -254, -812, 252, -1582, -401, 765,
- 847, 340, 479, -3163, 150, -187, 8432, 2607,
- 2075, 1384, 423, -7361, -10262, -2254, 54, 1065,
- 40, 857, 2014, -5076, 198, 657, 482, -422,
- -2185, -850, -318, 164, -684, 2698, -1008, 17493,
- -64, -6788, -5966, -14352, -2349, 2492, 266, 1077,
- 1935, -99, 4270, 2319, -2391, 779, 187, -70
-},
-
-.cb4448m0 = {
--20455, 663, -3140, 2540, -2110, -406, 1078, 1968,
- -741, -2458, 490, -496, 338, 581, 1079, -616,
- 154, 10097, 231, -228, 477, 20, 1372, 11492,
- -1112, -3148, 547, 248, -676, 8197, 5902, -1299,
- 519, -2808, 11529, -76, 1239, -1032, -542, 353,
- -1071, 278, 274, 2781, -7741, 3260, 2711, 175,
- 12340, 1110, -2348, -5303, 1440, 581, -70, 262,
- -9902, -2375, 530, 1433, 1624, -1475, -947, 13450,
- 1318, -1696, 207, 198, 1162, -944, -9329, -1046,
- 195, -106, 682, 14624, -854, -2410, 1054, 242,
- -348, 581, 463, 716, 760, 2714, 1356, -1359,
- 13089, 2565, -10523, 1934, 637, 1218, 1160, 830,
- 905, 272, 408, -581, -1426, 613, 2586, -8186,
- 3748, -6663, 4372, -114, -4644, 2998, -9440, 685,
- -8741, 3363, -5623, -4229, -7058, -1201, -822, 1806,
- 8671, -856, -612, 1165, -426, 317, 6867, -80,
- -7084, 1143, -1862, 2742, 669, 550, 22, 173,
- 4301, -10406, 1042, -346, -1334, -2897, 647, 744,
- 14, -1338, -1648, -1235, 3550, -455, 2125, 1188,
- 17136, 1188, -6782, -849, 298, -1054, -9254, 409,
- -1736, 1410, -7254, -1889, 457, -740, 22, 262,
- 32242, 1657, -2308, 2688, -607, 609, 4, 150,
- -264, 192, -140, 246, -393, -76, -15050, 390,
- 969, 457, 1436, -649, 460, -12150, 1359, 1014,
- -2103, -576, 55, -590, 113, -1410, -23431, 182,
- -2386, -1568, 904, -218, -281, -188, -178, 63,
- 211, 549, 687, -12069, -88, -654, -1070, -13155,
- -124, -697, 438, 3174, 1700, 270, 234, -289,
- -625, 15749, -2340, 8466, 397, -4460, -1030, 3206,
- 1081, -1317, -1030, -72, 487, -1477, -8782, 6984,
- -1221, 2395, 3198, 2995, 5862, -1195, -6075, -1020,
- -934, 868, -470, -1024, 1202, -998, -1306, 22118,
- 344, 540, -3137, -547, 2440, -28, 222, 372,
- -424, -199, 1068, -917, -105, -4278, 52, -299,
- 6933, 11715, -520, -2853, 58, -8575, 416, -1272,
- 1128, -32, -1140, -1873, -495, 235, 2079, -314,
- -1328, -2615, -20194, 848, -1553, 387, -6091, 906,
--10180, 8634, -506, 4078, 318, -2657, 1612, -126,
- -1424, -4, -1745, -343, 302, 2439, 12190, 941,
--12534, -4756, -176, -90, -1295, 1041, 1875, -450,
- 89, 212, 2098, 1708, 1876, 4065, 1682, 1972,
- -4916, -951, -10683, 1443, -10978, 772, -1013, -235,
- 59, 213, -230, 142, -576, 506, 101, 44,
- -137, 26238, -47, -322, -289, 281, 2614, -4538,
- 634, 1116, 1191, 2985, -759, -5527, 550, 2107,
- -6018, -11013, -425, -221, 901, 217, 546, 213,
- 2026, 695, 1074, -2132, -173, -1664, -783, 25065,
- -326, 86, -632, 1398, 4708, -2911, 2376, 135,
- -1471, -904, -2338, 987, 3216, -4564, 314, 15692,
- -214, 1238, 230, -181, -30537, -294, 155, -607,
- 218, -309, -180, -246, -102, -988, -644, 111,
--10517, -1604, -1180, -2748, 1191, -12959, -2, -1004,
- 28, -196, 1974, -790, 809, 8802, -1204, 332,
- 180, -3857, 1025, -5998, -9578, 94, -1069, -2398,
- 185, 643, -1479, 322, 2544, 12584, -8308, -3856,
- 1286, 1600, -2539, -2752, -2520, -367, -942, 417,
- -309, -2162, 2044, 10886, 1764, 11028, 3810, 2955,
- -1028, -1017, -1752, -487, -605, 48, 2312, -368,
- -1758, -252, 371, 19882, -1994, 1675, 5494, -660,
- -1669, 256, -54, -941, 4318, -306, 2143, 273,
- -3367, -3088, 6509, -1884, -5400, -576, 11394, 875,
- 455, 271, -218, 1401, -44, -5336, -12170, 4664,
- -589, -3562, -1934, 5842, 1357, 3232, 1449, -402,
--11228, -96, -1509, 2073, -1751, 776, -439, 775,
- -3302, 13521, -325, -118, -172, 411, -396, 6154,
- -2455, -52, -4616, 783, -12488, -2085, 5817, -1278,
- 635, -1713, 2888, -830, 649, 7482, 10134, 9147,
- 3784, 1046, -1934, -2580, 102, -679, -124, 68,
- 657, 417, -175, -32768, -80, 375, -941, 224,
- 271, -232, 1519, -99, -680, 67, 66, -618,
- 252, 1907, 5121, 2456, -2117, -9388, -1441, 636,
- 7868, -8340, 1939, 1340, 1511, 711, 6530, -1748,
- -183, 90, 2561, 5860, -364, 5117, -4101, -4028,
- -944, 10526, -1028, 1047, 707, 12116, -12596, -4006,
- 922, -1047, 348, -971, -272, -2388, 435, 246,
- -1055, 148, -1852, -12418, -2531, 3524, 4103, -344,
- 1667, 2818, -4576, -273, -8337, 183, 497, -144,
- -9845, -292, -503, -1212, 4316, -1434, -11058, -3043,
- -5817, -981, 813, 0, -718, -467, 10285, -19005,
- -82, 776, 1192, 1030, 1560, 1080, -144, 729,
- 606, -225, -389, -187, 552, -930, -444, -5959,
- -1960, -1315, 2650, -1282, -18790, 1772, 263, 1410,
- 812, -458, -476, 744, 2595, -426, -19, 9119,
- 4529, -1502, 4673, 3675, 7430, 1084, -6966, -518,
--13552, 1054, 2474, -9499, 1041, 5114, 442, 2927,
- 511, -1492, 217, -726, 398, -522, 35, 119,
- -332, 106, 816, 437, -1223, 27612, 521, -29,
- -462, 367, -966, 476, -2559, -3485, -160, 1487,
- -272, -586, -6014, -232, 3679, -1864, 1244, 575,
--14591, -483, -1428, 20, 7874, -2948, -5965, 2383,
- 3270, 490, 2750, -547, -9658, -1473, 943, 285,
- -2388, -772, -1582, 3181, 3419, 2628, -197, 3376,
--13282, -7684, 3383, 70, -1174, -70, -6703, -7305,
- -553, 3588, -826, -12, 7350, -3604, 345, 1098,
- 3856, 918, 2038, -39, 11514, 15798, 1327, 1158,
- 436, -918, 71, 953, 975, 1147, 174, 411,
- 1467, 83, -4536, -1511, 5350, -3314, 13999, 18,
- 4107, 1901, 834, 2614, 2356, -369, 943, -341,
- -460, 4380, -10014, 3308, -3541, -3225, -621, 8449,
- -1383, 4481, -1399, -3646, -936, 923, 221, 346,
- 7828, 2406, 3021, -4993, 3012, -10903, -1925, 8153,
- 382, -1453, 1238, 601, 1195, -2245, -2792, -4118,
- 473, 4898, 12961, -6094, 5905, 1368, -2754, -303,
- 768, -31, -1275, 1400, 596, -1326, 619, -1744,
- 1145, -3977, 639, -10785, -1693, -11192, -541, -434,
--11384, -1017, 14361, 1398, 521, -3239, 1851, -491,
- 237, -1024, 1002, -3002, -303, -33, -6532, 601,
- -3726, 7832, 6090, -10107, 957, -1149, 689, 1327,
- -51, 1945, 990, -106, 595, 234, 518, 1060,
- 77, 837, 28880, -91, -395, -275, -265, -279,
- -217, -300, 240, -1055, -406, 4314, -2139, 6349,
- -2227, -5996, 963, -10386, 4629, -560, 1080, 134
-},
-
-.cb4448m1 = {
- 31577, -1322, 1533, -2224, 253, -1485, -92, 294,
- 183, -580, 420, 172, -794, -206, -342, -338,
- 53, -85, -920, 29517, 1073, -972, -1839, 1004,
- 290, 46, 460, -71, -988, 1731, -362, -2070,
- 3848, -2, -3842, 734, -1221, -8012, 1104, 6782,
- 9673, 1082, -8561, -860, -2135, -1557, -1613, -13999,
- 1664, 2268, -1570, -732, 1010, -402, -1139, -428,
- 400, 1123, -2108, -11776, -345, 10608, 1245, -3142,
- -3244, -1132, 1700, -308, 1573, 543, 678, 5160,
- -3062, 433, 2703, -852, -4903, -1880, 1706, 13995,
- 2465, -4844, -904, -148, 350, -11168, 1406, 312,
--11900, 397, 769, 5558, -1354, 187, -30, 231,
- -1020, 202, 884, -198, -3151, -830, -8490, -670,
- -2767, 1517, -12957, -3861, -2794, -1854, -180, 135,
- 7140, 4103, -4427, 450, 494, -1033, -1110, -2857,
- 11056, -711, -800, 3628, -180, -852, -10300, -2120,
- -450, 14464, -511, 303, -1464, -542, -89, -204,
- 500, -400, -318, 569, 216, 428, 350, 1973,
- -137, -885, -1794, -974, 3977, 3382, -18624, -420,
- -1947, 165, -449, 1395, -17313, -286, 2054, -447,
- -2740, -1881, -550, -2166, 1360, -6021, -94, 148,
- 676, -1619, -1737, -11977, -169, -1664, -7709, 6202,
- -5954, 1681, 715, -263, 56, 369, 589, 564,
- 1989, 1617, -1648, 9205, 1343, -11508, -7379, -3791,
- -3136, 1049, -844, 24, -6714, -1736, -5734, -2907,
- 5016, 2167, -5722, -1210, 6232, 428, 2467, -3334,
- -1477, -711, 6728, -10274, -4930, -6224, -349, -710,
- 1598, -713, -1708, -497, -254, 567, -884, 131,
- 11520, -908, -1425, -1862, -13449, -1590, -669, 657,
- 505, 236, -4, 21, 846, 100, 8248, -1847,
- -131, -186, 181, -806, 3293, -1072, -1208, 14492,
- 1555, 1527, 544, -120, -258, 6, -2401, 12455,
- 10880, 1091, -2350, -939, -1252, -564, 150, -114,
- 1419, 737, -1732, -440, -2303, -226, 536, -2492,
- -1085, -10117, -11013, 3786, 5275, -10, 2479, 143,
- -1647, -7945, 884, -1618, 2056, 12890, -424, 5986,
- -1471, -666, -570, -1466, -499, 64, 566, -1738,
- -639, 11380, -612, 1879, 1550, 12469, -299, -1501,
- 2634, 1036, 3020, -13, 14974, -2066, -5786, -2667,
- 5487, -6768, 468, -385, 778, -805, -536, -304,
- 718, 386, 285, 7546, 643, 1462, 913, 4707,
- 941, -3338, -194, 6669, -4493, 8869, -837, 400,
- -877, -11113, 326, -2318, 13683, -1304, -1966, -933,
- 312, 128, 470, -296, -322, 340, -1126, 1811,
- 1999, 2885, 3201, 331, -2494, 3999, 660, -80,
- -2063, -16771, -1337, 426, 4884, -6026, -40, 2093,
- 342, -176, 83, 134, 796, -425, -8934, 2100,
- 8550, 160, -221, -252, -32714, 1306, 1332, -609,
- -109, 547, 848, 518, -40, 303, -246, -451,
- -2177, -716, -750, 1, -21232, 1287, -1303, 2051,
- 1659, 1501, -369, -1415, 274, 308, 260, 371,
- -1409, -662, -7347, 7161, 3656, -1104, 8862, -5671,
- 1370, 1122, 16, 1132, 17593, 6778, -993, 613,
- -665, 3004, 3288, -1625, -1823, -1003, 740, -1002,
- -888, -677, -1065, -25294, 997, -160, -180, -811,
- 188, -333, -2483, -696, 1309, 120, 456, -116,
- -2020, -896, 7216, 6328, -9170, 8407, -2986, -1684,
- 680, 1752, -684, 613, 337, -629, -11750, -493,
- -324, -907, -391, 1053, 14125, 142, 420, -1917,
- -378, -1428, -90, -497, 1116, -464, 2170, 805,
- -1572, -904, -9020, -534, 6450, -490, 10750, 279,
- 765, 961, -3985, -2702, 2423, -4981, -1222, 1654,
- -1089, -2157, 1940, 14331, -895, 1726, 1555, 122,
- -3552, 1274, -598, -910, 3056, -1704, 6430, -10626,
- 1014, -8773, 1009, 1936, -360, -468, -1029, -8841,
- -625, 2212, 2234, 2720, 1190, -64, -2078, 4688,
- 8690, 5150, -450, 744, -796, -5661, -332, -7938,
- 2670, -4054, 1377, -1594, 11554, -4702, -3631, 745,
- 742, -90, -1311, 12528, -4664, 834, -853, 1542,
- 8560, 2209, 4091, 2876, 2117, -678, 1684, 785,
- 304, 7980, 2126, -302, 8239, -2105, 1584, 11894,
- -1055, -1391, 596, 2343, 86, 388, -1348, -1007,
- 1428, 413, -9231, -10312, -7346, -1108, 1385, -1255,
- -3954, 738, -1258, 410, 226, 15115, -1059, -4117,
- -50, -504, -1726, 1425, -9974, -346, 688, 464,
- 244, -586, -8880, 845, -659, 932, -1309, 290,
- -29, -417, -2184, 1011, -9622, 1443, 9009, 1945,
- 2698, -708, 10572, 2410, 1200, 4492, -2569, 1444,
- 2735, -8604, 2274, -4057, 478, -199, 1285, 12695,
- 12321, -2933, -1708, 1198, 675, -492, -560, -52,
- -1261, 85, -480, -96, 696, -764, -1402, -31368,
- -580, -675, -1678, -58, 600, -522, -292, 647,
- -36, 154, -1148, 437, 1561, 588, 603, 7629,
--16973, 29, -828, -589, -919, -1372, -470, -445,
- 428, 528, 5828, -353, -32, -1781, -702, -690,
- -7196, -3253, 1942, 4600, -12102, -674, -10480, -2336,
- 711, -2174, -7474, -1436, -451, -7133, 856, -2652,
- 1892, 3464, -546, 676, -13296, -516, -13618, -997,
- 938, 1686, 1006, 1358, -1371, 922, 534, -170,
- 126, 255, -835, 50, 945, -1066, -1676, 3,
- 1038, -437, 26030, 418, 27, -1092, -493, -428,
- -606, -1097, -628, 298, 295, -806, 183, 146,
- 1352, -84, -722, 833, -25667, 3176, 1001, -322,
- -2339, 15, -475, -1257, 2116, 876, 637, -529,
- -1108, 302, -2452, 19734, 58, 851, 9845, 1142,
- 2168, 706, 11070, 1556, 544, 3002, 2238, -3974,
- 2738, -48, -8324, -2186, -355, -14933, 2192, -2481,
- 2700, 473, -486, 761, -208, 76, -78, 102,
- -4896, 1378, 12377, -8269, 28, 1092, -5071, -1500,
- -1190, -804, 1085, -766, 493, 22, -1041, 9136,
- -1234, -12247, 967, 2672, -883, 4582, 4871, 1891,
- -532, 329, 226, 446, -6710, 312, -914, 1416,
- -1852, 3052, 6512, 8971, 5544, 6519, -579, 1021,
- -241, 911, 782, -3456, 10158, -1865, 3941, -12300,
- 8, 472, 882, -1580, -1799, -1025, -631, -127,
--15316, 8047, -200, -1860, 582, -4363, -1274, 1085,
- -48, 2383, 638, 480, 369, -838, -1341, 414,
- -114, 2757, 1222, -2194, -3394, 6469, 2418, 738,
- -1656, 15594, -1090, 202, 727, -769, 484, 2462,
- 4875, 1656, -3835, -16877, 5276, 239, 982, -1872,
- -130, 901, 1352, -155, 4939, -8317, 9000, 2503,
- 485, 1184, -548, -1356, -7482, -188, -1587, 496
-},
-
-.fcb08l = {
- -2539, -3275, -2699, -3345, -2843, 5501, 426, 7127,
- -149, 3111, -2991, -2297, -2345, 2702, -969, -946,
- 2837, 1114, 1800, 1271, 12249, -2282, -2309, 1566,
- -2889, -3020, -2083, 3586, 8919, 2651, 4111, -1842,
- -1588, -1428, 3251, -102, 156, -320, 722, 1711,
- 20565, -3068, -2211, -3164, -3410, -3396, -2882, -2002,
- 1730, 4077, -2696, -1694, -2839, 2948, -2739, -2380,
- -2252, -1311, -269, 1900, -2796, -444, -2996, -2525,
- 5194, 1459, 5042, -1089, 914, 4116, 7644, -3137,
- -3156, 4028, -3435, -3240, -2585, 5542, 5119, 9885,
- -2995, -3153, -3449, -3101, -3551, -3469, -2196, -1271,
- 3869, 5413, -2800, -1990, 3371, -2286, -1022, 3190,
- -550, 1723, 968, 1916, -2749, -1530, -2211, -2987,
- -3357, -3262, -1042, 10277, 107, 2662, 9819, -2753,
- 4269, -3277, 3125, -3131, -2974, -3251, 6466, 9484,
- -2034, -2707, -2424, -3170, -2619, -2278, -143, -1641,
- 11856, 5975, -1282, -2629, -2396, -2364, -2012, -1085,
- -2576, -2422, -2206, 13731, -2261, 2751, -1768, 2482,
- -1065, -347, -137, 31, 619, 385, -2257, -2215,
- -1698, -2686, 4468, -2563, -1071, -1359, 7757, 3732,
- -2856, 9018, -2046, -1494, -2234, -2209, -67, 1340,
- 2433, 2965, -2722, -2151, -2966, -2780, -2732, -1509,
- -2085, -1532, 6934, -1248, -1936, -2203, -787, -1781,
- -895, -1990, 4693, -1818, -1569, 1954, -2283, -2403,
- 10514, -3105, -1074, -2838, -1, 1192, 1113, 3309,
- -2249, -2451, -1660, 2535, -1439, 3582, -1093, -594,
- 1956, 758, 5349, -2524, -2320, -1903, -2055, 5075,
- -941, -721, -536, 2197, -2309, -3027, -1460, -2911,
- 11344, -2474, -1601, -1749, 3260, 2547, 3819, -1247,
- -1449, 2835, -1118, -652, -516, -379, 531, 440,
- -569, -2606, -2545, -2447, -1685, 8678, -1868, -2003,
- -992, 5888, 8591, -1848, -2010, -2196, -2049, -658,
- 3473, 214, 905, 317, -2050, -1083, -2593, 8754,
- -2234, -2449, -1688, 2194, 2244, 2502, -1659, -2748,
- 4584, -3011, 3702, -2307, -1887, -1960, -1068, 2889,
- -3022, -2989, -2295, -2794, 3071, -1588, -43, 2627,
- 1278, 2031, -2145, -2551, -2333, -3205, -3237, -2760,
- 9082, -454, 4339, 1776, -2738, 4785, -2176, -1896,
- 2148, 1350, 768, 249, 1001, 1499, 797, -2182,
- -1443, -229, -32, 827, 401, 270, 581, 380,
- -2370, -2376, -2679, -3099, -1742, -1149, 4666, -693,
- 1109, 7547, -2496, -3063, -2818, -2621, -2016, 5722,
- 4932, 1217, 2161, 2449, -2207, -2954, 3769, -2824,
- -1809, -2946, -1693, -377, 1565, 4100, -2947, 3063,
- -3062, -2919, -3093, -2520, -1712, 2383, 1305, 1867,
- 10145, -2912, -3307, 7519, -3502, -1063, -2782, 8595,
- -750, -1503, -3141, -2486, 2923, -2574, -1826, -1244,
- 3537, 2494, 2583, 1560, -2722, 3284, 2245, -1258,
- -658, -394, 483, 719, 1121, 1073, -2949, -1013,
- -3048, 597, -3103, -2510, -1970, 7207, 8635, 1917,
- -1772, -483, -2318, -1860, -2500, 2981, -1651, 550,
- 696, 615, -2121, -2055, -1619, -2126, 3108, 3417,
- -485, -47, 848, 1608, -2636, -1707, 3142, 3798,
- 479, -1112, 597, -323, 1555, 1531, -2930, 2106,
- -2398, -2314, -1835, 0, 2920, 896, 2356, 1259,
- -2911, -3184, 593, -3570, -3389, -3263, 7340, 7640,
- 6874, 6549, -1912, -1334, -1749, -568, -1718, -405,
- -1375, 3456, -1024, -1903, 9384, -2721, -2485, -2377,
- -3026, -899, -3133, -3032, -2452, 7715, 2492, -2450,
- -1721, -2138, -1497, -55, 760, 2382, 1183, 1105,
- -2782, 389, -1528, -927, 664, -531, 1405, 363,
- 582, -292, -1678, -2718, -2763, -3140, -2799, -2178,
- -2715, -2592, -972, -1226, 3278, -1173, 2916, -1548,
- -446, -1241, -209, 379, 689, 538, 3110, 2857,
- -1735, -1244, -589, -413, 65, 471, 522, 323,
- -2043, -212, 1309, -471, -564, -16, 378, -320,
- -437, 228, -2194, -2637, -2513, -2670, -1863, -954,
- -2082, -2398, -2270, 5563, -2959, -2444, -2794, -1736,
- -1631, -1324, 1482, -481, 2317, 1470, -2871, -2007,
- 702, -1980, -491, -146, -695, -145, 2817, 1268,
- -3395, -3456, -3069, -3433, -2874, -205, 806, 3038,
- 3806, 2623, -2954, -1861, -712, 1017, -326, 44,
- -93, 910, 775, 346, -2625, -2570, -2974, -2344,
- -2712, -1930, -2213, 3521, -1341, 4327, -141, 835,
- -1119, -1336, -1092, -1891, -860, -727, 315, 2562,
- 4119, -2638, -2584, -1951, -2710, -2499, -1561, -952,
- 2821, 2505, -2388, -1855, -2926, 1742, -2563, -2655,
- -1802, 3082, 3063, 2456, -3304, -2670, -2147, -1504,
- -309, 1421, 1661, 1546, 560, 615, -2590, -1593,
- -1523, 2025, 3167, -841, -356, -648, 309, 1165
-},
-
-.fcb08m = {
- -2962, -2140, -2166, -1454, -1638, -1100, -835, 686,
- 978, 550, -1630, -1021, -1424, -1867, -1118, -474,
- 66, 6104, 904, 603, -829, -475, -1368, -1199,
- 7255, -890, -465, 114, 118, 224, -2453, -1279,
- 8192, -1289, -452, -47, 180, 324, 627, 209,
- -2770, 11214, -857, -1720, -895, -531, -291, -264,
- 232, -402, -2699, -2561, -2433, -2093, -1315, 86,
- 2666, 1663, 1351, 2349, -2788, 4576, 3680, -1365,
- -995, -513, 46, 44, 522, 142, -2739, -1654,
- -1950, 4573, -659, -536, 285, 72, 875, 627,
- 3142, 105, -941, 1245, -489, -495, -229, 44,
- -236, -1083, -2336, -1193, -1620, -1859, -1339, -655,
- 205, 1032, 5581, 1195, -2635, -1740, 2656, 1976,
- -52, 784, -96, -165, 419, -486, 8850, -624,
- -792, -1531, -765, -674, -730, -829, -150, -27,
- 2255, -1177, 2727, -1430, 737, -902, -780, -729,
- 169, 278, 3729, 3763, -32, -1581, -563, -573,
- 77, -372, -64, -477, -2500, 526, -1682, 1464,
- -830, -124, -548, 561, 202, 1115, -1682, -1552,
- -2014, -2127, -1374, -749, -720, 64, 2097, 6944,
- -2771, 4929, -1680, -2212, -1430, -801, 114, 891,
- 1176, 855, 3571, -2187, -1566, -1694, 84, -46,
- 932, 786, 765, 856, -1038, -498, -117, -1582,
- -1379, -1162, 6293, -367, 594, 132, -2487, 2119,
- -2153, -1749, 833, 1089, 507, 133, 337, 423,
- -2777, 2507, 277, -1455, -1019, 1811, 639, -595,
- 136, -1050, -2941, 4474, -176, 1095, 1113, -479,
- 182, -295, -229, -605, -2035, -1649, -1171, 51,
- 0, 125, 2844, -310, -82, -640, -2251, -2138,
- -2270, -1567, 2260, 92, 368, 95, 1433, 1346,
- 820, -2339, -1822, -895, -69, 158, 190, 911,
- 1008, 764, 684, -1756, -1013, -1625, -1610, 6062,
- -499, -1036, -139, 1129, 488, 524, -665, -870,
- -347, -76, 123, 91, -12, 14, -2867, -2019,
- 2858, -1903, -1165, 309, 287, 1250, 767, 776,
- -2784, -2446, -1157, 460, 2589, 437, -285, 711,
- -299, 402, -2683, -2271, -1714, -1535, -547, 4118,
- 510, 1158, 700, 631, -2084, -1236, 509, -1009,
- -510, -193, -1075, -793, 727, 2150, -2722, 968,
- 1077, -1579, -1410, -894, 401, 1043, 427, 182
-},
-
-.fcb08s = {
- -2368, -2340, -1735, -1897, -1493, 984, 3062, 2826,
- 1049, 164, 1181, -1990, -1833, -1720, -1360, 24,
- 1485, 1923, 460, 511, 69, 78, -353, -3,
- 3761, -480, -1538, -1063, 540, -64, -1546, -988,
- 1514, -1167, -1354, -563, 1435, 880, 1123, 182,
- -2243, -2109, -2378, -2201, -1491, -836, -124, 605,
- 6159, 3636, -2770, -2959, -2956, -3019, -2154, -648,
- 1805, 4698, 2929, 2078, -975, -360, -895, -623,
- -593, -879, -345, 4333, 492, -56, -2102, -781,
- -476, 1268, 606, -670, 1686, -105, 370, 461,
- -221, -868, -1381, 297, 128, -578, -809, -938,
- 3896, 490, 4032, 2675, -684, -1108, -1235, -915,
- -874, -919, -802, -1040, -1324, -16, 2156, 1943,
- -652, -666, -47, -1499, 168, -210, 4213, -1895,
- -1734, -1767, -1412, -867, -71, 329, 855, 1294,
- -1849, 4393, -1312, -1597, -564, 434, -454, 269,
- 892, -31, -1170, 67, 370, -1144, -320, 3706,
- -811, -190, -123, -166, -659, -1033, -789, -902,
- -347, -280, -108, -313, 452, 3701, -1505, -2610,
- -2758, -2550, -2034, -1361, -676, 713, 2263, 8286,
- -2241, -2508, -2540, -1721, 182, 1947, 306, 1773,
- 1220, 2909, -60, 73, -235, -1631, -1302, -692,
- 4171, -830, 49, -188, -471, -2208, -2265, -1518,
- -196, 2995, 2571, -579, -68, 805, -1294, 1274,
- 4294, -1356, -702, -532, -465, -123, -400, -719,
- 336, 3093, 1634, -906, -71, -502, -938, -982,
- -742, -1187, -1757, 2890, -1591, 1303, 216, -311,
- -404, -29, 501, -543, -1466, 1587, 309, -578,
- -173, 34, 1116, 1286, -1184, -1174, -175, -732,
- -619, 3508, -80, 191, -1059, -174, -429, -470,
- 10000, -933, -1511, -1601, -1571, -1445, -1065, -1407,
- -1053, -932, 1183, 7875, -460, -1609, -1618, -1398,
- -1154, -1227, -1012, -1450, 20, 28, -235, -110,
- 203, 105, 252, -154, -51, -58, 2940, -490,
- 17, -51, 131, -106, -526, -566, -822, -1177,
- -1335, 2749, 608, -1575, -1322, -1351, 111, 641,
- 1441, -9, 733, -207, -273, -665, -630, -588,
- -78, 254, 304, 762, -2661, -2677, -1238, -82,
- 2569, 3001, 932, -1032, 211, -324, 40, 1395,
- -836, -1119, -635, -1425, -1514, -1135, 1509, 2963
-},
-
-.fcb11l = {
- -3004, -2927, -2672, -2356, -735, 179, 950, 1734,
- 1101, 1641, -1610, -1161, -1606, -179, -1634, 3383,
- -610, 240, 73, 1128, 818, -1052, -1641, 724,
- -1938, -1741, -1211, 3967, 1988, 1445, 3010, 2203,
- -1685, -1698, -1838, -759, -144, 515, 999, 1215,
- 3239, -1912, -2048, -1739, -1488, -148, 1590, 1370,
- 1066, 1270, -2721, -1637, 99, -1964, 224, -946,
- -1437, -954, 755, 1420, -2800, -2211, -2304, -2048,
- 4853, -714, -383, 2159, 1823, 2328, -1619, -1584,
- -1839, 5462, -1703, -802, -227, 485, 1017, 1695,
- -2459, 2399, -1820, 2254, -1373, -767, 53, 705,
- 1074, 1293, -1582, -2486, -2208, -2341, -2264, -2132,
- -1578, -1043, 322, 7685, -2198, -1768, -2106, 16,
- -2207, -1495, -1106, -961, -482, 1642, 6785, -1540,
- -1540, -1449, -1177, -854, -307, 853, 1279, 1449,
- 3253, -1427, 2314, -1473, -985, -1025, -321, 923,
- 1140, 1166, -2704, 2664, -2444, -2717, 481, 3083,
- -1449, 1225, 3168, 2389, -2124, -1981, -1342, -1939,
- -1904, 4736, -885, -826, 3866, 2046, -290, -567,
- -1986, -1880, 1966, -465, 1638, 683, 1005, 1099,
- -2842, -2537, -2559, -2427, -1243, 4039, 1371, 3897,
- 2529, 2400, -2586, -1328, 785, -1697, 1733, 2382,
- -442, 190, 901, 1281, -2669, 2198, -1502, -1404,
- 2593, -694, -186, 466, 1065, 1199, -1905, -1389,
- 6171, -1817, -513, -989, -356, 246, 1619, 1883,
- 36, -2178, -1602, 608, -1523, 23, 1265, 578,
- 953, 1038, -483, -2278, -2138, -1740, 584, 244,
- -54, -192, 915, 1097, -213, -1569, 1861, -1401,
- 3686, -1625, -1234, -614, 860, 1311, -1397, 2315,
- 1896, -1608, -1326, -1487, -99, 2241, 697, 1156,
- 1711, -2099, -1507, -135, 1422, -695, -57, 1390,
- 823, 937, -122, 479, 47, -2144, -1514, 955,
- -1317, -726, 480, 1153, -2959, -2558, -2573, -1355,
- -1879, -1446, 6435, 677, 3124, 3134, 1850, 1834,
- -1396, -1417, 1290, -896, -561, 1428, 1007, 1105,
- -2101, -2044, 1779, -1913, -1868, 1410, 916, 1232,
- 1112, 1335, -2663, -104, -513, -96, -470, 480,
- 1516, -150, 298, 714, -2558, 3076, 468, -745,
- -945, -443, -849, -989, 341, 1102, 433, 588,
- -1772, 462, -527, 670, -128, -108, 583, 701,
- -2281, -2149, -2398, -2749, -2557, -1691, -1095, 1336,
- 9088, 3844, -1799, -1861, -1908, -2242, -2184, 2313,
- 3779, -809, 519, 2229, -1914, -1673, 1764, -634,
- -1955, -1721, 405, -499, 243, 1632, -2377, 7289,
- -1659, -1752, -1341, -948, -323, 841, 1703, 1774,
- -2029, 2384, -1877, -1918, -1729, 1483, 483, 1916,
- 576, 1258, -2310, -1796, 2208, -1579, 57, -1735,
- -1161, 5177, 1674, 2468, -1907, -1499, 1868, 2275,
- -620, -356, -228, 489, 1064, 849, -683, -1204,
- -1761, -2211, -606, -764, -1056, 3888, 253, 1518,
- -2555, -2075, 119, -1567, 971, -1178, 2683, 1476,
- 978, 1419, -2947, -2418, -2164, 1178, 1582, 1470,
- 896, 645, 1671, 1462, -2234, -1363, -1184, 1408,
- 1042, -1091, -208, -49, 527, 917, 1266, -1444,
- -2174, -2447, -2300, -1732, 3076, 5631, 248, 2195,
- -2477, -1724, -2434, -2477, -2524, -1828, 2331, 845,
- 1423, 1767, -2393, -1946, -857, -462, 344, 17,
- -896, 2391, 892, 882, -828, -280, -752, -1136,
- -1563, -1040, 1222, -1173, 1763, 1179, -1448, 1946,
- -1815, -1588, -1638, -1282, 3302, 132, 509, 1408,
- -2760, -2338, -1935, 1353, -1531, -1074, 1156, 3086,
- 1374, 1667, 2302, -1623, -1897, -1991, -494, 2603,
- -754, 524, 1265, 1304, 3062, -1359, -1365, 1987,
- -1334, -916, -146, -40, 635, 1033, 1724, -1057,
- 49, -1159, -774, 106, 1053, -153, 134, 691,
- -119, -1226, 332, -363, -197, -69, -133, 573,
- 190, 216, -2236, -294, 1288, -2110, -1537, -1005,
- -1175, 56, 4227, 1623, -2440, -1894, -1623, -2377,
- 2287, -1220, -1506, 177, 5689, 2849, -2857, -2166,
- -2546, 2174, -2414, -2343, 559, -1020, 4650, 3514,
- -2875, 1309, -2557, -2534, -2235, -1901, 1559, 4412,
- 2301, 2204, -2969, -2018, -2399, -2834, -2431, 1316,
- -1474, 1269, 2533, 3485, -2892, -2387, -2716, -2317,
- -2031, -1992, -1311, 8071, 3933, 3807, -2139, 1909,
- -2200, -2344, -2060, -1638, -1154, -210, 2781, 2139,
- 1119, -1828, -2069, -2306, -1975, -1165, -444, 789,
- 2409, 1551, -2929, -103, -1920, -2010, -904, 694,
- -188, 4, 1051, 1190, -2649, -2454, -2205, -1651,
- -1856, -1552, -1165, 352, 3351, 1266, -1719, 57,
- -1828, -420, -938, -1251, -461, 1294, 1158, 893
-},
-
-.fcb11m = {
- -2704, -2459, -2349, -1535, 2807, 365, 1064, 892,
- 830, 1222, -2190, -1542, -2285, 6443, -1607, -1362,
- -605, 637, 883, 877, -2378, 2292, 3106, -1057,
- 1776, -1094, -859, 249, 199, 256, -1537, 2098,
- -1126, 2243, -1186, -193, -211, 211, 502, 308,
- 3369, 3197, -1271, -1370, -355, -423, -537, 468,
- -237, -99, -1439, -1748, -2185, -1972, -1357, -814,
- -470, 815, 1306, 6390, 1983, -1169, -1749, -29,
- -1368, 5929, -1539, -900, 576, 701, 1708, -1608,
- -1148, 3522, -822, -120, -461, -158, -43, 39,
- -2543, 8872, -1347, -1580, 222, -488, -162, 295,
- 382, 291, 11143, -1223, -1270, -1399, -392, -563,
- -500, -604, -544, -135, -1787, -1313, -1490, -1395,
- -1100, -1278, -818, 6172, 768, 1597, -623, -681,
- -1128, -1575, 7257, -665, -1021, -439, 932, 703,
- -1496, -2168, -1945, -1454, -808, -1261, -354, 875,
- 6706, 1956, -1773, -1503, -1536, -1162, -1386, -1885,
- -1607, -318, -72, -7, -1932, -1349, 6150, -1852,
- -345, -18, -81, 223, 339, 425, 362, -1623,
- -1432, -1973, -1042, -1373, 7830, 38, -116, 1000,
- 421, -2375, -1808, -1832, -1046, 2077, 955, 1576,
- 581, 824, -2021, -1582, -1402, -1420, 69, 3549,
- -513, 192, 262, 483, -2503, 4173, -11, -1532,
- -893, 282, 187, 320, 176, 259, -2308, 2342,
- -2385, -2147, -784, -375, 413, 833, 889, 1297,
- 1415, -1085, -1009, -1501, -1246, -1298, 1553, 1384,
- 332, 662, 2226, -2399, -1752, -857, 1899, 131,
- 501, 209, 217, 346, 4294, -1811, -1694, -1080,
- -752, -263, -228, 249, 628, 971, 2508, -1031,
- 2871, -1054, 42, -202, -738, -170, -239, -290,
- -2751, -2379, -2379, -1999, -1448, -380, 1594, 1279,
- 1399, 1633, -2376, -1839, 1367, 1685, 356, -126,
- -50, 143, 31, 33, 314, 160, -663, -687,
- 25, 388, -267, -188, -188, -129, -2614, 1063,
- -1835, -285, 2549, 205, -30, 370, 319, 297,
- -87, -2208, -1164, -839, 894, -266, -410, 375,
- 1263, 924, -2606, -2325, -1854, 1792, 407, 328,
- -110, 575, 1090, 971, -2517, -1583, 1355, -1892,
- -490, -203, 846, 724, 597, 779, -1650, -1281,
- -1294, 549, -146, -548, 2947, -28, 265, 339
-},
-
-.fcb11s = {
- -1536, -2360, -2378, -2138, -1380, -346, 1575, 2779,
- 3247, 1689, -340, -1788, -1839, 103, 31, 853,
- -653, 3159, 365, 154, 404, -835, -716, -35,
- 4309, -155, -1214, -1180, -750, -522, -753, 350,
- -1660, -1603, -1159, -582, -489, 1067, 2615, 1747,
- -1755, -2351, -2314, -1453, 922, 3458, 867, 439,
- 493, 1212, -1584, -1655, 1300, 1783, 1641, 1442,
- 816, -1283, -1456, -1417, 4998, 1923, -200, -1086,
- -1060, -1016, -1074, -1217, -1285, -1245, 633, 390,
- -1443, -1099, -507, 3041, 343, -163, -745, -667,
- 2333, -2144, -2460, -2247, -2063, -1736, -742, 418,
- 3124, 3504, 227, -735, 799, -1326, -20, -543,
- 1900, 237, -671, -545, -1727, 121, -1750, 3700,
- -485, -553, -77, -212, 942, 62, 1647, -688,
- -1506, -1429, -619, -839, 172, 3209, -500, -371,
- -1680, -1408, -1122, -563, 3627, -115, 510, 534,
- -65, 199, 800, 5040, 631, -744, -612, -1023,
- -1099, -1319, -1520, -1460, -1120, -274, -1220, 349,
- 1848, -620, -1411, -616, 1771, 1024, -1223, -2195,
- -2345, -2144, -1517, -1055, -385, 557, 1482, 6797,
- -2274, 818, -460, -707, -274, 646, 654, 731,
- 268, 347, 4583, -1289, -1452, -1193, -1072, -681,
- -178, -131, -108, 547, -1521, -781, -1298, 239,
- -486, -445, 3453, -226, 90, 653, -1237, 624,
- 4692, -482, -798, -799, -766, -645, -890, -915,
- 3748, -909, -1012, 85, 963, 375, -100, -1010,
- -1269, -1508, 2106, -1194, 2632, 595, -826, -221,
- -411, -1104, -1365, -1050, -2112, -863, 1943, -727,
- -1079, -733, 78, 1990, 363, 953, 1325, 459,
- -891, 3364, -410, -362, -547, -994, -1371, -1258,
- 12270, -43, -1668, -1868, -2004, -2133, -1863, -1949,
- -1805, -1288, -1640, 3783, -1414, -578, -505, -464,
- -158, 252, 71, 76, 22, -20, -72, -13,
- -19, -95, -14, 2, 23, -5, 1289, 630,
- 291, -707, -794, -857, -715, -122, 551, 219,
- -2358, -1905, -1397, 277, 572, 343, 789, 526,
- 1629, 991, -980, 222, 740, 1199, 19, 1200,
- -864, -467, -656, -138, 820, -2005, -924, 154,
- 195, 393, 267, -183, 1024, 100, 1243, -872,
- -705, -781, -422, -377, -910, -637, 89, 2849
-},
-
-.fcb16l = {
- -2676, -2246, -3119, -2904, -2707, -1946, 7718, 2292,
- 2451, 4206, -1214, -362, 1116, -860, 30, -993,
- -888, -1046, -3732, -2268, -2541, 6060, -2220, -1597,
- -1650, -1320, 88, 1229, 2118, 2348, 1430, -1865,
- -2190, -2122, -1844, -2069, -1746, 15, -1746, 1321,
- -2671, -2993, -3247, -2811, -2141, -1360, 1886, 270,
- -381, 5676, -2070, -444, -674, -1082, -1144, -346,
- -823, 4630, -224, 1940, -2441, -2072, -2194, -295,
- 2175, 1209, -734, 168, 923, 1359, -2667, 389,
- -2585, -2279, -2195, -1141, -1016, -218, 109, 1926,
- 5184, -2226, -1888, -1273, -1044, 25, 461, 886,
- 1125, 1249, -2215, -2381, 3109, -1963, 3015, -2027,
- -790, 1192, 1646, 2188, -2906, -2598, 484, -2372,
- -1372, -1082, 1718, 664, 1391, 2396, -2518, 1937,
- -2362, -2510, -1504, 2947, 446, 684, 1947, 2059,
- -3263, -3001, -3240, -3034, -2598, 3367, 4407, 2327,
- 2450, 2994, -2379, -1875, -1862, 6387, -1956, -1417,
- -525, 1098, 1836, 2932, 1408, -1130, -1417, 1693,
- -262, -645, -515, 443, 735, 619, -2834, -2246,
- -2646, -2521, -811, 6608, -421, 1572, 2015, 3234,
- -2086, -1435, 89, 1648, 838, -986, -1159, -1208,
- -32, 1354, -2135, -2159, 7796, -2424, -949, -2040,
- -1179, 228, 1187, 3008, -2963, -2500, -2074, -2025,
- -1439, 1692, -378, -596, -62, 2419, -3522, -3132,
- -2899, -3290, -2929, 2844, 49, 4307, 2754, 3897,
- -2960, 1305, -1858, -831, -1379, -773, 3257, 979,
- 975, 1513, -2849, -1610, 2483, 456, -1395, -634,
- 847, 1320, 1116, 1175, 2497, -1554, 2176, -1697,
- -997, -799, -120, 339, 996, 1379, 11359, -1557,
- -2219, -2237, -1792, -2084, -1009, 781, 3341, 939,
- 1954, -1860, -2347, -2117, -2000, -1394, 3825, 106,
- 2595, 2162, -2938, -2488, -2112, 772, -1059, 1822,
- 159, 1017, 2452, 1506, 1313, -2615, -2479, -2941,
- -2220, -2510, -726, 4703, 1778, 3375, -3133, -2664,
- -2821, -2771, 1559, -1000, -434, 1874, 4130, 2987,
- -2998, -2692, -2326, 1580, -2231, -1347, 4166, 2021,
- 1177, 2531, -2880, -2337, -2589, 1505, -2843, -2468,
- -339, -1059, 3212, 4264, -3112, -2885, -2889, 975,
- -2522, -2278, 721, 5057, 3989, 3373, -3098, -2947,
- -1128, -2251, 1935, 2981, 3007, 975, 1983, 2048,
- -2861, -2302, -2431, -1460, -1492, -1524, -944, 1556,
- 1778, 1549, -2658, -2259, 2768, -2460, -1447, 2957,
- 759, 324, 2533, 2477, -2935, -1687, -2554, -2647,
- -1431, 118, -365, 10280, 1526, 3447, -2570, 2268,
- -2351, -2115, 2588, -9, -834, 1115, 1878, 2365,
- 79, 1132, -1619, -1406, -1568, -1766, -224, 825,
- 2113, 1382, -548, -2669, -1797, -2691, -2139, -2495,
- -210, 1276, 13623, 2315, 1965, -1713, -1610, -2187,
- 2534, -1495, -1301, 622, 563, 2154, 2743, 3230,
- -1784, -1774, -792, -493, -131, 156, 944, 1211,
- -1886, 357, -1018, 225, -285, 1025, -134, 218,
- 290, 153, 5869, -2407, -2856, -3051, -2540, -3238,
- -2260, -370, -451, 6314, -500, -2554, -2110, -879,
- -323, -537, 570, 1228, 1556, 1342, -2486, 3366,
- 1838, -937, -959, -683, 63, 937, 652, 1212,
- -2164, -1448, 166, -799, -550, -1317, 481, 299,
- 5494, 1360, -3147, -2574, -989, 1550, 1952, -1502,
- -96, 3517, 1304, 2311, -2931, -2146, -2174, -2052,
- 579, 680, 896, 2697, 703, 1365, 4130, -2367,
- -2627, -3125, -934, -3093, -2155, -955, 6025, 5024,
- -3121, -3064, -2883, -2458, 1723, -842, 3032, 4391,
- 2327, 2837, -2536, -2208, -1610, -2189, 6509, -1424,
- -1116, 1427, 2830, 3370, 1084, -1562, -1655, -1628,
- -491, 2260, -321, 421, 774, 1237, -3267, 977,
- -3170, -3144, -2698, -1324, 1424, 3034, 3323, 3347,
- -3021, -3061, 2027, -2345, 852, -2832, -1714, 5926,
- 4517, 3839, -1490, -2416, -1726, -1268, -1458, -2137,
- -1715, -580, 1403, 13408, -3005, -2706, -3063, -2745,
- -2777, -2136, 2786, 202, 5141, 3407, -3104, -3001,
- -3176, -3388, -3507, -2863, -2097, 2325, 2618, 6146,
- -1997, -3152, -1036, -2694, -2587, -2986, -2750, -2219,
- -1607, 5944, -2893, -2633, -2229, -2811, -2482, -2115,
- -2219, -1180, 5246, 3252, -3111, -2052, -2693, -2934,
- -1805, 2583, 353, 1262, 8588, 3900, -2468, -2726,
- -1861, -2352, -2237, -2750, -2345, -1936, 9793, 8392,
- -3490, -3124, -3596, -3630, -3154, -2390, 743, 6652,
- 6366, 6143, -2852, -3547, -3124, -2718, -1094, -494,
- 49, -1053, -3005, 32767, -1721, -1229, -1715, -1590,
- 1587, -1233, 3384, -252, 312, 1120, -3287, -2926,
- -3048, -2828, -2502, -1185, 2028, 3778, 487, 2083
-},
-
-.fcb16m = {
- 616, -1065, -1622, -1949, -1283, -863, 6819, 517,
- 1135, 1282, 2631, -1447, -1477, -1004, 286, 1358,
- -135, -340, 147, -130, 5435, -1609, -1916, -1758,
- -1066, -1126, 478, 995, 1098, 1437, -1737, -1339,
- -1864, -2009, -1038, -1004, -573, 810, 5974, 2840,
- 349, -1559, -1496, -1151, -307, -82, 681, 827,
- 550, 776, 1930, 166, -1100, -1489, -1185, -1182,
- -1210, -326, 858, 1688, -2561, 3514, -736, 1555,
- -59, -906, -123, 87, 102, 274, 1902, -459,
- 3008, -984, -707, -334, -571, -317, -190, -371,
- -2862, 607, 1346, -1517, -1220, -617, 2494, 697,
- 190, 64, 3264, 3926, -1249, -1542, -933, -302,
- -246, -248, 69, -283, -1766, -750, -1898, -1259,
- 6841, -1546, -785, -64, 1208, 1294, -1522, -1742,
- -1873, -1898, -1455, 7128, -752, 1718, 1398, 1123,
- -2742, 4733, -1552, -2483, -2210, -495, 355, 864,
- 830, 759, -2721, -2115, -1891, -1696, -1137, -1559,
- -1265, -658, -591, 850, -699, 1262, -551, -1055,
- 877, 96, -388, -192, -479, -1091, -2763, -1379,
- 3290, 2331, -874, -307, -386, 615, 366, 133,
- -2671, 5181, 4339, -894, -871, -634, -165, 409,
- 91, -291, -2649, -411, 8039, -1947, -1156, 57,
- 351, 1014, 472, -198, -1816, -590, 2887, -1702,
- -1113, 3414, -556, 117, 483, -377, -1707, -1146,
- -1155, 2518, 2014, -382, 3, -6, 206, -98,
- 10770, 274, -1415, -1670, -1020, -1036, -786, -782,
- -463, -552, -2500, 10460, -1624, -1787, -707, -1327,
- -59, 375, 91, 22, -2776, -2343, -2104, 825,
- -759, -823, 482, 1149, 1265, 570, -1676, -1826,
- -1848, 6125, -1391, -820, -449, 844, 586, 535,
- -2873, -2475, -2607, -2611, -1830, -487, 1643, 1680,
- 2088, 2570, -2357, -993, 3189, -1473, 3506, -1203,
- -793, 662, 464, 98, -2507, 1617, -1793, -1935,
- -1307, -169, 9, 885, 728, 1178, -2010, -1346,
- -1375, -187, -548, 2753, -464, -105, 799, 511,
- -2170, -2428, -2177, -1497, 2072, 828, 441, 1020,
- 873, 1000, -1297, -1531, -1863, -1967, -1516, -1088,
- -758, -230, 1561, 6655, -2173, -1787, -1548, -1763,
- -1366, -24, -645, 6836, 1480, 1923, -2728, -1859,
- 1798, -2010, -1585, -677, -371, 1405, 1254, 1278
-},
-
-.fcb16s = {
- -2250, -2771, -2879, -2775, -2240, -1363, -272, 1233,
- 6172, 5074, -2882, -2419, -2054, -2420, -1252, 347,
- 1325, 1799, 1723, 4361, 774, 2066, 1874, 280,
- -707, -605, -581, -662, -1104, -2038, 7111, -137,
- -883, -1079, -1001, -54, -847, -1013, -1045, -832,
- 4696, 3781, -624, -1485, -1360, -1359, -1307, -1219,
- -866, -945, 5419, -1512, -2307, -2134, -2056, -1724,
- -1653, -630, 157, 3399, -727, -860, -1381, -380,
- -716, -1335, 3819, 78, -2, 277, -3185, -3118,
- -2715, -3110, -1500, 1626, 3352, 3075, 1956, -539,
- 16640, -1204, -2281, -2307, -2272, -2349, -2009, -2184,
- -2777, -2375, -1015, 6208, -402, -1331, -1182, -763,
- -730, -81, -591, -1184, -1927, 543, 4464, -1095,
- -131, -542, -129, 486, -366, -1097, -1594, -554,
- -15, -337, 3152, -723, 71, -40, 385, -309,
- -769, 290, -853, -1058, -1196, -1557, -595, 3695,
- 1129, 438, 1729, -1309, -971, -871, 90, 1418,
- 1261, -23, -1382, -223, -1551, -713, -1044, 4495,
- -160, -867, -1242, 1188, 159, 120, -1657, -951,
- 1536, -159, -1310, 1101, -404, 155, 1717, -24,
- -1607, 2347, 2056, -1943, -1313, -1297, -81, 34,
- 1441, 354, -2110, -1873, -516, 1102, 2174, 2131,
- 0, -946, -729, 61, 107, -14, -108, -50,
- 42, -164, -177, -92, -29, 162, 1349, -2380,
- -2099, -1692, -980, -49, -94, 331, 1317, 3819,
- -482, -782, -775, -909, -640, -1099, -615, -225,
- 1556, 2973, -630, 70, -186, -1599, -1076, 4440,
- -890, 78, -76, -517, -855, -1886, -1521, -1206,
- -1152, -900, 753, 1338, 1758, 2431, -2433, -1569,
- -1294, -583, 552, 2040, -154, 250, 513, 2333,
- -820, -1987, -2291, -2238, -1880, -1651, -1120, -262,
- 2013, 9756, -2803, -2574, -2634, -2789, 356, -1838,
- 325, 4584, 3584, 2486, -1524, 1874, -337, -1800,
- -1659, 406, 2450, 1252, -245, -1030, 1985, -397,
- -1565, -51, 148, 2039, -1212, -729, -700, -11,
- 904, 649, 531, -2287, -1640, 766, -725, 171,
- -1596, 1387, 3189, -672, -459, -794, -422, -714,
- -195, -231, 185, 99, -952, -2248, -2170, -1190,
- -457, 1458, 34, 1179, 2427, 1683, -1658, 3749,
- -1816, -2000, 2823, -1243, -1415, 713, 875, 75
-},
-
-.fcb22l_1 = {
- 2198, -2215, -2251, -1966, -1540, -467, 403, 1647,
- -2867, -2589, -34, -2314, -602, 2371, 2614, 2218,
- -2494, 3659, 2708, -1076, -914, 233, 1149, 1425,
- 319, -979, 1023, -682, 110, 239, 427, 703,
- -2979, -2513, -2649, -2265, 7420, 526, 2174, 2932,
- -2868, -2056, -2232, 1651, -1325, -856, -218, 2091,
- 458, 1508, -1208, -845, 244, -441, 558, 752,
- -700, -1370, -395, 980, -321, -232, -241, 293,
- 10391, -1792, -1948, -1518, -1049, 43, 1524, 2033,
- -2434, 303, 1730, -1205, -1432, -1183, -694, 1185,
- -2531, -2656, -2751, -1756, -1321, -1100, 287, 8605,
- -2868, -2554, 721, -2065, -1671, -771, 675, 2223,
- -2690, -2501, -2313, 1829, 3189, 45, 1825, 2024,
- -3153, -2824, -2729, -2308, 1686, -370, 482, 2606,
- -2972, -2324, 2492, -1762, -1662, 28, 4976, 3214,
- -2769, -316, -1146, -1954, 86, -60, -370, 1144,
- 5519, -1785, -1538, -1044, -580, -89, 704, 1151,
- -2586, -1094, 7473, -1220, -1076, -50, 1029, 1850,
- 3546, 3279, -1806, -1191, -528, 682, 1160, 1341,
- -2852, 1541, -2358, -1841, -2317, -1351, 993, 2417,
- -2675, 2482, -2061, -2089, 3681, 626, 1619, 1818,
- -2916, 2821, -2482, -2166, -1084, 1137, 5537, 2864,
- -2499, -1782, 2156, 2558, -1117, 127, 1147, 1556,
- -2572, 3865, -2008, -1805, -679, 119, 35, 1319,
- -2704, -1872, -1756, 6843, -911, 322, 1641, 2461,
- -2652, -1957, 1972, -1582, 3082, 84, 1086, 1487,
- -2983, -2325, -2780, -2532, -1858, -279, 10092, 4519,
- -2364, 2718, -1907, 2678, -1005, 246, 1499, 1679,
- -2570, 8779, -2004, -1627, -844, 89, 1712, 2145,
- 3316, -1763, -1642, 2819, -599, 9, 906, 1401,
- -2289, -2224, 2462, -1580, -843, 2501, -24, 1310,
- 3091, -1745, 2398, -1264, -731, 113, 831, 1328,
- -2803, -2380, -2808, -2379, -2290, -1376, -234, 2242,
- 3537, -2137, -2050, -1260, 2881, 177, 1158, 1424,
- -3303, -3123, -3130, -2861, -2075, 2528, -43, 3890,
- -3106, -2672, -2554, 1833, -826, 55, 4910, 3324,
- 3993, -2176, -2446, -1848, -786, 3346, 1590, 2034,
- -2725, -265, 303, 1076, -1985, 3661, 1556, 1983,
- -3182, -2712, -2988, -2841, -1332, 4816, 6422, 4184,
- -2230, -1248, -2176, -1806, -1617, -878, 3764, 1309,
- -2280, 509, -211, 426, 773, 99, 513, 628,
- 167, 196, -2256, -1802, -1157, 724, 1405, 1383,
- 2384, -409, -672, -453, -205, -89, -12, 240,
- 114, -2220, -807, -1302, -1612, -405, 1134, 1381,
- 699, -1816, -2151, -1883, 2975, 928, 1527, 1565,
- 775, -2141, -1981, -1532, -591, 3338, 683, 1763,
- 466, -2028, -2086, 1448, -622, 589, 1294, 1150,
- 145, -2382, -1093, -367, 986, 323, 404, 931,
- -371, -2868, -2737, -2103, 129, 771, 1498, 1974,
- -1481, -1060, -2398, -1125, 285, 2777, 2975, 1431,
- -2720, 1748, -2375, -1847, -912, 3829, 808, 2034,
- -2492, -2447, -1248, -991, 1449, 1304, 867, 1171,
- -2999, -2556, -2763, -2298, 3359, 4277, 1991, 2850,
- -2692, -2640, -2593, 1813, -458, 3068, 1012, 2049,
- -3258, -2820, -2845, -2395, 2787, -45, 5457, 3568,
- -2491, -2114, -1884, 6, -332, -232, 1680, 1139,
- 2032, -2383, -2183, -1725, -914, 192, 4175, 2059,
- -2922, -2972, -2920, -2210, -1143, 1850, 2468, 1871,
- -3138, -99, -2651, -2510, -129, 631, 1677, 1925,
- -3302, -3124, -3214, -3143, -2616, -761, 3978, 4234,
- -1698, -824, -1975, -742, 2449, -610, 21, 998,
- -3047, -2697, -2747, -1919, -1545, 7534, 1243, 3548,
- -1863, -1257, 339, -1027, 122, -613, 1989, 953,
- -2232, -1759, -1751, -969, -1591, 1917, -325, 889
-},
-
-.fcb22m_1 = {
- 13531, -1278, -2217, -1956, -1360, -892, -650, -866,
- -255, 192, -1139, -1242, -2101, -1682, -1601, 2950,
- 2340, 121, 662, 446, -2636, 1711, 615, -1864,
- -1297, -1098, -296, 1070, 1284, 891, 7332, -2292,
- -2334, -1889, -1170, 1884, -570, 52, 1146, 944,
- -2083, -2192, -2420, -2165, -1542, -1474, -278, 4147,
- 1506, 1666, 1014, -1657, -2225, -2261, 8568, -1445,
- -523, -115, 999, 602, -2762, -2261, 271, -1797,
- -1633, -790, 391, 907, 1302, 1076, -1907, -2219,
- -2443, -1963, -1495, -1294, 4722, 935, 1691, 1370,
- -2355, -1585, -2510, -2297, 2690, -1491, -647, 360,
- 1460, 1479, -2041, 368, 10454, -1277, -716, -172,
- -538, -287, 169, -232, 960, -1087, -2459, -2196,
- -1189, -1967, -1586, -783, 5275, 2811, -1523, -1733,
- -2373, -1946, -1586, -1280, -442, -205, 2330, 6319,
- -2483, -2115, -2645, -2016, -1464, 89, 529, 1338,
- 5291, 3186, 5770, -2311, -2696, -2420, -619, -2322,
- 8434, -129, 1661, 1232, -1377, -1277, -1193, 406,
- -1332, -1246, -999, -497, 1024, 1500, -2791, -1417,
- -2173, 2419, -1492, -734, 2795, 559, 750, 519,
- -2714, -509, 4622, 3679, -294, 73, -805, 602,
- -99, 94, -2658, -1984, 6907, -1780, -1244, 272,
- 874, 140, 1326, 693, -2679, -2274, -2551, 13351,
- -2619, 4570, -1739, 2309, 1280, 1235, -1011, -2084,
- -1968, -1404, 2568, 3147, -336, 270, 499, 506,
- -1567, -2240, -2685, -1951, -2254, 2783, -1411, 8878,
- 2321, 1691, -2567, -2450, -2572, -2286, -2038, -1803,
- -1316, -315, 464, 1223, -1988, -927, -2035, 2165,
- 3663, -919, -328, 229, -2, 217, -2773, -2160,
- -2637, -2183, 5081, -1434, 1526, 2830, 1698, 1153,
- -2810, -1132, 5408, -1992, 4267, -1357, 809, 563,
- 9, -64, -2949, 7061, 4604, -1424, -1839, -610,
- -251, 370, 901, 147, -2264, 3135, 3241, -1102,
- -397, -1292, 39, 17, 380, 383, -1483, -1458,
- 820, 2135, -646, -479, 173, 23, -274, -442,
- -978, -1216, -1928, 7260, -1249, -956, -24, 250,
- 438, 128, 4080, 152, 2677, -587, -667, -672,
- -662, -492, -722, -688, -1907, -787, 3101, -1404,
- -1234, -508, 3817, 424, 657, -86, -2179, -599,
- 2141, -1446, -1847, 4341, -801, -26, -57, 216,
- -1625, -802, 1752, -1301, 2617, -1545, -513, -401,
- 234, 658, 1299, -1279, 874, -1408, -1135, -40,
- -423, 394, 660, 684, 3341, -937, -1842, -1177,
- 1945, -621, 19, -93, 141, -59, -2626, 3368,
- -1588, -1959, -1506, 3729, -347, 218, 497, 585,
- -2495, -2452, -2118, 578, -225, 378, 40, 1080,
- 908, 761, -2070, -1607, 2534, -1535, 1493, 2664,
- 215, 634, 317, -233, 4188, -1446, -2129, -1812,
- -1428, -1579, -1038, 97, 989, 2038, 3671, -2707,
- -2608, -2198, -1119, 1601, 1042, 1325, 1230, 1149,
- -2566, -1054, 3659, -2173, -1772, -713, -1080, -101,
- 987, 805, -1555, -749, -1510, 3443, -1402, 4172,
- -696, 437, 276, 219, -2735, -2453, -2082, 3898,
- -867, -582, -726, 1134, 1227, 1121, 2333, -963,
- -1474, 2386, -959, -327, -138, 4, 268, 479,
- -2889, -2896, -2701, -1975, -593, 1212, 1511, 1087,
- 1482, 1612, -1703, 4874, 46, -1364, -1342, -544,
- -879, -455, -488, -396, -2616, 849, -2424, -1976,
- -1491, -739, 325, 1284, 1831, 1223, -48, -1457,
- -2123, -1318, 1617, -1064, 2484, -467, 533, 707,
- 351, 422, -525, -657, 202, -476, 133, -679,
- -945, -832, 1906, -2981, -2605, -1911, -2541, 11553,
- -1585, 1555, 2196, 1616, -2669, -2345, -2423, -1848,
- -1756, 4918, -711, 1186, 1873, 1399, -672, -1401,
- -1524, -1138, -674, 1285, 195, 884, -377, -1067,
- -2125, 377, -1747, -1604, 837, -334, -115, -59,
- 160, 483, -2220, 12861, -1633, -1616, -926, -1203,
- -113, -90, 378, 148, 5740, 88, -2246, -1598,
- -1546, -1694, 2790, -72, 590, 28, -2608, 4312,
- -1068, 3091, -632, -651, 366, 63, 744, 375,
- 1746, 2753, -2075, -1621, -1033, -471, 972, 199,
- 575, 655, -2148, 2407, -2180, -1764, -1030, -1089,
- 4083, -80, 417, 384, 1196, -2284, -2549, -1771,
- -773, 213, 1188, 788, 1343, 1358, -2584, 7723,
- -2171, -2301, -1497, -438, 1001, 110, 671, 939,
- 6435, 5777, -1765, -1287, -1181, -1014, 87, -919,
- -422, -444, -1930, 4906, -1660, -1558, 3617, -1177,
- 261, 9, 261, -47, -2539, 2749, -2476, -2298,
- -1047, -1319, -341, -604, 2111, 2779, -2935, 5011,
- -1860, -2363, -1686, -1033, 800, 1774, 1700, 1478
-},
-
-.fcb22s_1 = {
- 11523, -796, -1488, -1897, -1888, -1691, -1767, -1794,
- -1622, -1210, -2284, -2777, -2382, -1371, -238, 2997,
- 3182, 588, 1129, 704, 248, 1703, -264, -1306,
- -1147, -560, -1513, -956, 1667, 1340, 5220, -2276,
- -2215, -2049, -1479, -1294, -774, 66, 1270, 2075,
- -1435, -1981, -2322, -1896, -1321, -462, 138, 5022,
- 2549, 1683, -100, -1744, -1528, -423, 6093, -61,
- -288, -623, -650, -828, -1521, 134, 1240, -1399,
- -1450, 612, -969, 2585, 945, -312, -1138, -2488,
- -2513, -1988, -1607, -773, 3384, 1192, 2651, 2580,
- -984, -2015, -1465, -1576, 2273, -1221, 91, 2615,
- 840, 1299, -1069, -2151, -1899, -735, 440, 888,
- -241, 502, 953, 3613, 1806, -1855, -2303, -1758,
- -1318, -1484, -10, 597, 3723, 1992, -488, -2063,
- -2284, -2172, -1905, -1547, -937, -18, 3276, 7184,
- -1942, -2302, -2399, -1972, -1378, -635, 302, 1081,
- 5454, 3358, -447, -807, 205, -1805, -1546, -446,
- 6364, -916, 151, -377, -582, -856, -204, -731,
- -884, -674, -257, -67, 1564, 2486, 1003, -1508,
- -1692, 1515, -889, -622, 2366, 9, -17, -245,
- 3733, -1057, -284, 3197, -31, -440, -1115, -1609,
- -1834, -1930, 230, 262, 7344, -39, -1746, -562,
- -1554, -1838, -1648, -1310, 2157, 80, -102, 238,
- -823, -622, -720, -115, -274, 16, -1562, -1785,
- -1535, -334, 2604, 3388, -410, -103, -348, -142,
- 1676, -441, -2267, -1988, -1421, -680, 1302, 2682,
- 383, -10, 1487, -1086, -251, -1134, 141, -84,
- -1003, -898, 95, 2304, 802, -1549, -1562, 2650,
- 2180, 64, -512, -832, -705, -429, 1826, -2283,
- -1976, -1277, 2699, 504, 249, -9, 178, -33,
- -1357, -1138, 3005, 293, 229, 1633, -197, -540,
- -1245, -1617, -1269, 6639, 2437, -647, -1501, -1097,
- -1051, -1150, -1183, -1461, 71, 1529, 2847, 1149,
- -705, -1345, -1605, -629, -617, -60, -2081, -1435,
- 938, 844, -1055, -841, 1179, 392, 1112, 946,
- -1252, -1728, -266, 7063, -1335, -920, -1048, 206,
- 48, -619, 4764, 274, 2394, -799, -798, -1003,
- -1278, -1800, -1626, -1415, -498, 1439, 1643, -1978,
- -1258, -1136, 1285, -9, 596, 141, -2211, 908,
- 802, -470, -1125, 3216, -234, -412, 3, -980,
- 15, -1047, 1530, 660, 1986, -480, -499, -550,
- -733, -531, 1326, -1607, 787, -1136, -1002, -65,
- 358, 743, 253, -294, 3498, -1033, -1270, -790,
- 537, 1788, 309, -72, -1241, -1999, 609, 2981,
- -1025, -1642, -958, 3845, -1221, -962, -965, -1612,
- -1993, -33, -1136, 1086, -46, 1178, -229, 139,
- 644, 718, -1696, 2411, 1019, -1056, 52, 224,
- -487, -395, -40, 125, 3001, -1955, -1950, -784,
- -1111, 897, -514, 159, 785, 1095, 2944, -2554,
- -2407, -1975, -632, 1030, 1712, 366, 463, 125,
- -2354, -796, 5663, -1055, -1151, -870, 348, -676,
- 1447, 215, -1005, -1531, -910, 2249, -438, 2889,
- 107, -404, -271, -534, -1022, -2117, -1738, 2261,
- -257, -788, 32, 1747, 1196, 910, 33, 1,
- -23, 28, -25, 19, 13, -29, -23, -48,
- -907, -2113, -1978, -1426, -535, 1589, 1908, 2724,
- 1646, -897, 758, 2326, 674, -1449, 111, 220,
- 475, -162, -1465, -2036, -528, 1308, -2087, -2031,
- -1308, 183, 35, 1097, 1008, 1864, -2116, -2303,
- -1928, -261, 2342, -292, 1480, 268, 1582, 1079,
- -1183, -1154, -777, 309, 1218, 683, 1314, 1677,
- -758, -1745, 1422, -1331, -1638, -1100, -303, 5003,
- -57, -379, -511, -756, -727, -2315, -1860, -1775,
- -676, 3854, -67, -52, 2018, 1532, -160, -197,
- -75, -1934, -1134, 2025, 1810, -491, 83, 646,
- 390, -297, -441, -342, -479, -486, -296, -30,
- 443, 1151, 3508, 6119, -493, -1427, -1393, -1273,
- -1280, -1687, -1683, -1511, 5109, -1008, -1137, -638,
- -649, -342, -590, -478, -577, -349, -579, 2548,
- -463, 2107, -568, -678, -788, -454, -608, -452,
- 1934, 1485, -1746, -1007, -1174, -573, 239, -119,
- 679, -76, -1687, 1956, -898, -477, 456, -156,
- 1460, 13, 92, -987, 554, -2772, -2578, -1694,
- -235, 753, 1527, 1106, 1539, 1342, -1305, 6560,
- -1526, -1765, -793, -600, 248, -542, -63, -421,
- 4828, 1288, -1580, -1826, -1163, -1014, -221, -818,
- -109, -61, 1265, 1939, -1265, -414, 1912, -190,
- -1157, -675, -756, -935, 2529, 136, -1709, -1727,
- -1819, -1504, -1232, -959, 1128, 4142, -1945, 2958,
- -900, -1432, -1720, -1380, 381, 1473, 1235, 1062
-},
-
-.fcb22l_2 = {
- 2441, -2086, -2129, -2146, -1839, -1035, 295, 2465,
- -2785, -2597, -81, -2162, -991, 3060, 3056, 2985,
- -2415, 4009, 3058, -1165, -1281, -322, 629, 2232,
- 481, -2255, 1165, -1455, -621, -29, 923, 1371,
- -2822, -2421, -2596, -1908, 6338, 279, 1845, 3532,
- -2955, -2571, -2554, 744, -1785, -909, 775, 3156,
- 738, 1760, -458, -590, -73, 22, -91, 326,
- -1098, -1511, -1000, 1741, -1024, -562, -399, 736,
- 9669, -2109, -1872, -1539, -1208, -265, 994, 2364,
- -2121, -98, 1523, -1427, -1450, -1157, -294, 1375,
- -3007, -2669, -2847, -1777, -1196, -1257, 1065, 9128,
- -2948, -2509, 470, -2521, -1947, -728, 503, 3810,
- -2538, -2469, -2217, 1957, 2580, -229, 1212, 2263,
- -3174, -2660, -2792, -2692, 1226, -512, 555, 3960,
- -2979, -2426, 1978, -2182, -1868, -455, 4681, 4580,
- -2514, -1642, -1029, -1712, 416, -838, -362, 1208,
- 5211, -2128, -1867, -1337, -549, -70, 828, 1508,
- -2272, -1611, 7307, -1612, -1244, -461, 749, 2510,
- 3669, 3236, -1845, -1333, -866, 268, 850, 1686,
- -2805, 1079, -2258, -2075, -2017, -1115, 214, 2735,
- -2719, 2676, -2154, -1976, 2884, 393, 1247, 2382,
- -3043, 2188, -2703, -2353, -1861, -208, 4419, 4511,
- -2187, -1630, 2246, 2331, -1105, -198, 818, 1721,
- -2180, 3571, -1841, -1738, -1020, 14, 407, 1028,
- -2536, -2171, -2115, 6630, -968, -306, 1438, 3574,
- -2411, -1857, 1911, -1546, 2709, 57, 910, 1727,
- -3159, -2565, -2675, -2746, -2017, -534, 8461, 6103,
- -2299, 2912, -1851, 2660, -1479, -97, 1148, 2204,
- -2510, 8781, -2194, -1790, -1114, -110, 1140, 2885,
- 3261, -1921, -1633, 2766, -788, -403, 610, 1651,
- -2515, -2021, 2415, -1606, -1149, 2479, 297, 1693,
- 3823, -1538, 2514, -1261, -904, -236, 550, 1581,
- -2903, -2440, -2922, -2749, -2480, -1849, -423, 3613,
- 3420, -1876, -1929, -1537, 2955, 58, 1014, 1950,
- -3295, -3009, -3161, -2926, -2353, 2355, 351, 5502,
- -3140, -2745, -2781, 1247, -1037, 538, 4939, 4382,
- 3584, -2284, -2321, -1844, -743, 3156, 1546, 2358,
- -562, -101, -497, -1196, -1023, 1972, 1255, 1374,
- -3146, -2824, -3057, -2757, -1736, 3746, 5609, 5118,
- -2155, -1665, -1701, -1780, -1975, -1127, 3185, 2036,
- -2540, 324, -481, 311, 624, 719, 543, 1030,
- 550, 513, -2430, -1817, -1129, 62, 1526, 1809,
- 2172, -1314, -1035, -586, -292, 233, 209, 543,
- -252, -2372, -1961, -1629, -1306, -408, 451, 1339,
- 792, -2619, -2316, -1624, 1941, 678, 977, 1710,
- 428, -2499, -2369, -2101, -1448, 2988, 874, 2497,
- 451, -2263, -2204, 1403, -631, 694, 1424, 1658,
- -243, -2104, -378, 355, 1446, 373, 377, 973,
- -756, -2802, -2508, -2081, 177, 352, 2428, 2359,
- -1533, -2710, -2544, -1102, 419, 3132, 1222, 1942,
- -2756, 1844, -2429, -1854, -1283, 3960, 1633, 2917,
- -2858, -2784, -2106, -1025, 1588, 905, 1092, 1657,
- -3028, -2715, -2782, -2218, 2852, 4006, 2534, 3726,
- -2783, -2355, -2146, 2113, -1201, 3361, 1178, 2670,
- -3199, -2796, -2682, -2489, 1905, -471, 5097, 4436,
- -2197, -1078, -2327, 420, -637, 10, 1647, 1362,
- 1815, -2519, -2363, -2174, -1454, -31, 4125, 3446,
- -3054, -2953, -2738, -2328, -1636, 1086, 2238, 2132,
- -3089, -432, -2674, -2515, -168, 745, 2236, 2305,
- -3214, -2953, -3159, -3086, -2748, -1200, 3346, 5127,
- -1150, -501, -2109, -1662, 2301, -401, 651, 1320,
- -3072, -2608, -2833, -2249, -1387, 7704, 1811, 4960,
- -2474, -2589, 83, -499, -785, 194, 1312, 1442,
- -2716, -1663, -2088, -1812, -1396, 1862, -369, 1397
-},
-
-.fcb22m_2 = {
- 8809, -2291, -2452, -1982, -1356, -423, 419, 588,
- 897, 1086, 79, -2155, -1957, 367, 1080, 233,
- 718, 441, 515, 642, 730, 2454, 774, -2299,
- -1526, -784, -359, 96, 385, 482, 4905, -2501,
- -2431, -2047, -1139, 131, 743, 999, 1243, 1294,
- -2154, -433, -2461, -2201, -1552, -163, -200, 4009,
- 1731, 1652, -2381, 5295, -1457, -895, 3480, -1230,
- -94, 471, 554, 669, -2458, -1271, 278, -2238,
- -1852, -813, 888, 1032, 801, 1008, -258, -538,
- -1744, -2087, -1651, -1239, 2222, -4, 783, 882,
- 478, 782, -1335, -1453, 1728, -627, -387, -205,
- 221, 193, -2282, -518, 7464, -1808, -1134, -199,
- 340, 321, 410, 617, 2278, -436, -2082, -1958,
- -1493, -885, 628, 794, 855, 989, 232, -1115,
- -2617, -2152, -1290, -1299, -458, 222, 3936, 3349,
- -2240, -2787, -2689, -2255, -1241, 816, 2307, 1566,
- 1685, 1723, 2960, -2134, -2532, -1798, -1128, -1073,
- 5380, 1013, 1525, 1415, -1976, 456, -538, -1433,
- -1347, 22, -496, 284, 387, 465, -2214, -1863,
- -2261, 1049, -1487, -1222, 1610, 621, 1000, 1116,
- -2393, -731, 4075, 2375, -1178, -908, -383, 327,
- 543, 572, -2071, -2039, 3310, -1903, -1502, -72,
- 123, 693, 721, 918, -1866, -1251, -1065, 5630,
- -1574, -541, 1, 1014, 813, 887, -2145, -2421,
- -2176, -1756, 1856, 408, -1, 759, 1109, 1276,
- 3053, -2705, -2467, -2068, -1160, 1405, 459, 1167,
- 1219, 1318, -2198, -2037, -2005, -2204, -2039, -1473,
- -1529, 264, 1333, 1822, -2121, -1434, -472, 1901,
- 2448, -589, -424, 248, 376, 602, -1571, -1032,
- -1243, -1619, 5682, -1162, 362, 570, 865, 852,
- -1875, -805, 4258, -1569, 2992, -1175, 51, 164,
- 314, 648, -2083, 5574, 2553, -1866, -1156, -642,
- -198, 330, 446, 602, -2365, 1601, 2873, -2043,
- -1510, -1142, -20, 588, 535, 676, -2207, -1637,
- 626, 745, -1548, -590, 745, 540, 505, 618,
- 749, -1389, 857, 1387, -398, -606, -75, -86,
- 11, 78, 3322, -1347, 1978, -1431, -745, -280,
- -42, 135, 350, 376, -508, -1349, 2961, -1184,
- -647, -1257, 3009, -374, 523, 616, -1848, -41,
- 2652, -1609, -1603, 3284, -24, 502, 122, 448,
- -2337, -1029, 734, -1533, 1523, -1312, -754, 335,
- 510, 774, 769, -117, 139, -1254, -1468, -965,
- -375, 2, 227, 518, 3187, -1524, -776, -1253,
- 2977, -530, 319, -61, 244, 413, -2290, 3085,
- -1763, -1480, -1374, 3272, -87, 323, 421, 652,
- -2317, -2182, -1604, -1, -801, 1320, -156, 907,
- 799, 918, -1494, -2205, 1137, 69, 1249, 3437,
- 925, 29, 419, 448, 3574, -1564, -1713, 2374,
- -941, -252, 123, 263, 366, 539, 1059, -1856,
- -1753, 766, -1704, 106, 262, 596, 684, 820,
- -2503, -1878, 1835, -594, -1024, -2105, -1567, 488,
- 794, 883, -1626, -613, -1410, 2846, -1413, 3557,
- -348, 460, 332, 577, -907, 700, -1680, 1130,
- -1637, -793, -160, -38, 473, 630, 1487, 1872,
- -1526, 1379, -806, 121, -383, 149, 259, 413,
- 759, -2817, -2758, -2290, -1348, 460, 1782, 1536,
- 1513, 1503, -2265, 3193, 117, -1704, -1367, -487,
- 125, 365, 594, 651, -2287, 1272, -2537, -2038,
- -1515, -578, 2994, 582, 941, 1058, -1556, -1583,
- -720, -1584, 956, -1032, 1861, 146, 402, 429,
- -2184, 1667, 1241, 289, 52, -232, -265, 210,
- 248, 331, 1133, -1813, -1869, -1429, -1484, 5620,
- -400, 1316, 1146, 1150, -1975, -818, -1921, -2054,
- -1768, 2953, -544, 426, 856, 1107, 493, -2019,
- 176, -1915, -1040, 717, -91, 728, 647, 776,
- -2360, 739, -2136, 30, 636, -447, -116, 498,
- 531, 775, -2250, 8607, -2075, -1928, -1072, -450,
- 38, 439, 558, 778, 4484, 1056, -1830, -1716,
- -988, -412, 260, 56, 425, 579, -2243, 4094,
- -1267, 2172, -990, -562, 97, 304, 533, 609,
- 790, 780, -2029, -1947, -1327, 1224, 255, 344,
- 516, 660, -591, 1702, -118, -1402, 396, -1387,
- 2268, -247, 177, 355, 1393, -2318, -1975, -1563,
- 863, -939, -365, 411, 800, 1019, -2370, 4656,
- -2301, -2111, -1679, -698, 458, 788, 1004, 1138,
- 2285, 4924, -1940, -1955, -1159, -436, 237, 5,
- 300, 364, -2492, 2165, -2021, -2072, 1504, -612,
- -93, 249, 676, 799, -2411, 1952, -1752, -2418,
- -2285, -1323, -621, 837, 1043, 1266, 76, 3160,
- -2176, -2176, -1717, -1105, 1045, 410, 728, 940
-},
-
-.fcb22s_2 = {
- 6946, -1850, -1986, -1590, -1276, -1063, -1026, -1017,
- -805, -346, 9, -2911, -2843, -1899, -198, 2193,
- 3325, 1315, 37, -528, -371, 599, -751, -2157,
- -1912, -855, 988, 1222, 1085, 953, 3212, -2793,
- -2564, -1707, -657, 683, 1109, 683, 647, 446,
- -1906, -2315, -2569, -2428, -1698, -600, 1100, 3790,
- 3368, 2172, 2017, -895, -1354, -734, 2552, -403,
- -68, -402, -752, -932, -1205, -1937, 572, -1434,
- -500, -579, 291, 1723, 1312, 1695, -238, -1715,
- -2029, -1525, -816, -363, 2816, 167, 2196, 1793,
- 897, -1081, -262, -1338, 1052, -1231, -94, 1296,
- 503, 184, 588, -2057, -911, -1933, -1769, 167,
- 1013, 1774, 1414, 1289, 2406, -1906, -2055, -1952,
- -1726, -1618, -451, 575, 3021, 2569, -776, -1649,
- -2111, -1930, -1499, -1349, -595, 329, 3090, 5458,
- -1954, -1309, -1554, -1159, -1132, 329, 714, 760,
- 2529, 2417, 1046, -1025, -1114, -1325, -154, -1501,
- 4160, -696, 230, 398, -2010, 385, -1344, 36,
- -1269, -987, 1009, 1453, 1163, 1591, 916, -1534,
- -508, 221, -1596, -1130, 1394, 539, 676, 676,
- 1263, 2029, 284, 1592, 161, -124, -572, -1362,
- -1946, -2148, -1488, -222, 4967, -1202, -939, -375,
- -80, -593, -445, -418, -781, -1560, 31, 4757,
- -1417, -954, -402, 193, -316, -278, -926, -895,
- -1024, -436, 2673, 1991, 254, 28, -861, -1291,
- 1475, -2708, -2689, -2118, -703, 290, 1841, 2048,
- 1213, 594, 132, -2598, -2427, -988, -1111, -158,
- 478, 2118, 2571, 830, -1430, -678, -773, 1340,
- 2473, -798, -751, 215, 274, -65, 335, -1947,
- -1796, -1436, 3862, -611, 105, -31, 775, 669,
- 1439, -1266, 1670, -739, -1259, -572, -17, -107,
- 176, 130, 3899, 3478, -548, -1429, -1176, -1104,
- -1147, -1503, -1277, -1068, -258, 2645, 1753, -333,
- -827, -1306, -827, -502, -306, -119, -1602, -1644,
- 1922, 1127, -628, -1073, 348, 195, 616, 685,
- 1750, -898, -1852, 1813, -700, 254, 598, -234,
- -433, -1035, 2502, 94, 467, -1672, -905, 776,
- 679, -11, -1071, -1845, -1083, -320, 690, 110,
- -708, -1077, 2514, 70, -412, -300, -371, -717,
- 1700, -1625, -1346, 1954, 14, -64, -121, 181,
- -673, -909, 2274, -1389, 2058, -1503, 306, -187,
- -209, -69, 1523, -632, -695, -1283, -988, -569,
- -798, -521, 398, 2834, 1953, -2215, -1626, 106,
- 6, -498, -57, 173, 731, 1002, -1706, 1701,
- -328, -1745, -1398, 2176, -19, 311, 492, 667,
- -1073, -1803, -1684, 703, -1316, 1803, 659, 913,
- 906, 1033, -1982, -102, 945, -1620, 718, 555,
- 613, 38, 394, 421, 2738, -1159, -2248, -1852,
- -1568, 33, 363, 1490, 935, 561, 1464, -2466,
- -1209, -1204, -692, 2009, 129, 354, 372, 380,
- -2053, 1122, 2272, -824, -1355, -926, -122, 567,
- 526, 923, -1320, 59, -226, 1674, -1512, 1498,
- -631, 221, 26, -247, -40, -1615, -1597, 2111,
- 34, -813, 200, 219, 758, 1000, 306, 394,
- -430, -117, -409, -81, -207, 16, 36, 176,
- -1737, -2898, -3005, -2214, -568, 2140, 4132, 2592,
- 504, -521, -1509, 3610, 1070, -1890, -1319, -11,
- 174, -148, -212, -347, -464, -1068, -2568, -2532,
- -1973, -519, 2104, 3713, 1882, -145, -1319, -2375,
- -1862, -843, 2061, -266, 1465, 866, 912, 1183,
- -1784, 2072, 205, -375, 1112, -374, -534, -430,
- -162, -204, 375, 82, -823, -1148, -752, 4681,
- -339, -247, -790, -1088, -494, -2302, -2310, -1603,
- 46, 3367, -50, 393, 1383, 1457, -1377, -2005,
- 643, 326, 312, 1189, -225, 563, 261, -70,
- -667, -1191, -2255, -470, 1000, 142, -525, 2285,
- 756, 2061, -953, 5888, -1339, -1534, -1252, -16,
- -116, -305, -375, -596, 3611, -889, -511, 43,
- -809, -659, -737, -510, -258, -108, -1515, 2806,
- -1555, 1025, -932, -601, 146, 164, 207, 71,
- 1606, 93, -2420, -2311, -1641, -244, 1785, 804,
- 1040, 427, -1510, 38, -2490, -1987, 44, 699,
- 1407, 988, 1061, 411, 1162, -1382, -2669, -1635,
- -905, 1503, 674, 1357, 869, 244, 411, 2612,
- -1792, -2147, -1693, 1434, 281, 38, 228, 424,
- 2291, 1354, -2128, -1377, -1014, -609, 131, -151,
- 418, 602, 111, 2200, -1547, -1153, 1435, -1282,
- 6, -111, -1, 92, 238, 613, -2271, -1181,
- -1455, -919, -182, 1066, 1932, 1679, -1715, 2825,
- -1764, -1759, -741, -829, 501, 746, 1056, 1416
-},
-
-.fcb44l = {
- 4868, -1851, -2031, -2019, -1751, -552, 756, 929,
- 1389, 1590, -2090, -1202, -1317, 516, -1798, -1020,
- -694, 4322, 1388, 1904, -2605, -1239, 1005, -757,
- -1248, -358, 699, -201, 409, 1093, -2901, -2254,
- -2605, -2595, -2104, -1681, 6854, 2692, 3155, 3446,
- -2535, -1421, -1745, 898, -2046, -1457, -1044, -269,
- 1748, 1873, -2268, -1098, 407, -1865, -2103, 1510,
- -1217, -399, 1718, 2017, 3638, -1685, -1547, -1480,
- 1637, -744, 580, 586, 1313, 1409, 617, -2020,
- -1919, -2179, 932, -937, 559, 1795, 1528, 1596,
- -2867, -2553, -2507, -2653, -2365, -1985, -170, 8679,
- 4271, 4273, 2263, -1835, -1934, -1719, -1778, 2357,
- 125, 1319, 1543, 1765, 3689, -1215, 2369, -1533,
- -1611, -771, -123, 1005, 1297, 1465, -2491, 2631,
- -1636, -1655, 1244, -1178, 386, 961, 1300, 1553,
- -2357, -2404, -2305, -2177, -1714, -383, -98, 258,
- 3902, 2475, -2923, -2580, -2685, -2803, -2678, -2428,
- -1247, 450, 8174, 5035, -2302, -1629, -1495, 1832,
- 1616, -577, 639, 872, 1122, 1437, 785, -1947,
- -1976, 823, -1909, -1005, 430, 1244, 1713, 1664,
- -2537, 8025, -1705, -2005, -2030, -1155, 64, 1106,
- 1975, 2277, -2410, -2639, -2292, -1858, 162, 744,
- 555, 1559, 1719, 1806, -2282, -1982, -1914, 1415,
- -1785, 2197, 254, 763, 1338, 1741, -2509, -1991,
- -2328, -1853, -2299, 5145, -34, 1495, 2913, 3018,
- -2009, -1736, 2411, -1595, 1877, -1316, 693, 1042,
- 1565, 1744, -2657, -2161, -2222, -2135, 4454, -1784,
- 1331, 3208, 2852, 2955, 3738, -1338, -1425, 2090,
- -1601, -279, -2, 712, 1220, 1436, -2385, -1265,
- 7093, -1561, -1742, -1003, 283, 1009, 1843, 2055,
- -2251, -2175, 2310, -1321, -1976, 1874, 164, 2781,
- 2721, 2487, 2519, -1101, -1539, -1575, -1487, -724,
- -25, 355, 643, 1011, -2296, -1799, -1895, -1700,
- 2743, -924, -254, 32, 1504, 1910, -2811, 898,
- -2363, -2518, -2408, -1737, -936, 221, 2588, 2527,
- -2535, -2360, -2477, -1861, -1882, 1833, 3587, 1307,
- 2141, 2274, -433, -1994, -1692, -1318, -1398, -350,
- 1518, 1923, 835, 1262, -2246, 3383, 2458, -1464,
- -1874, -983, -157, 531, 1490, 1729, 9543, -1713,
- -2011, -2015, -1870, -969, -34, 1160, 1724, 1919,
- -2530, 140, -1923, -1730, -1720, -605, 629, 1577,
- 974, 1373, -2268, -1582, -933, 1124, -1624, -514,
- 4156, -118, 1515, 1907, -2267, -574, -1311, -954,
- -47, -1259, 15, 364, 854, 1009, -2221, 629,
- 994, -1646, -1324, -1509, 2359, 3453, 1393, 1912,
- 3586, -2286, -2537, -2560, -2415, -1748, -368, 3093,
- 2881, 2611, -2556, 2792, -1558, 1117, -1681, -65,
- -36, 516, 1233, 1514, 531, -1814, 998, -1795,
- -1693, -871, 725, 868, 1504, 1465, 907, 300,
- -2060, -2366, -2392, -1881, -596, 1754, 2169, 2104,
- -2755, 2709, -2298, -2627, -2423, -1875, -733, 3886,
- 2648, 2821, 623, -541, -163, -319, 85, 84,
- 15, 716, 511, 572, 3948, 2773, -1504, -1746,
- -1832, -934, -78, 988, 1277, 1518, -2678, 2216,
- -2162, -2331, -2076, -968, 3445, 1070, 2077, 2206,
- -2892, -2425, -2674, -2905, -2844, -2584, -1381, 3269,
- 2696, 3281, -2090, -369, -1515, -1367, -200, 2089,
- 739, 700, 866, 1169, -2276, -1057, 2851, 2589,
- -1686, -515, -65, 579, 1278, 1593, -2837, -2458,
- -2565, -2783, -2843, -2468, -1704, -1531, 1475, 4153,
- -2209, -1857, -1873, -2177, 758, -1531, 3207, 1163,
- 1506, 1851, -2383, -1683, -1839, 5772, -1815, -465,
- 361, 1086, 1912, 2140, -2629, -1688, 1608, -2190,
- -2419, -2064, -1253, 1397, 2099, 2306, 513, 1664,
- -1683, -1629, -1682, -109, 269, 695, 1072, 1317,
- 208, -1602, -1918, -1038, -813, 312, 24, 26,
- 761, 990, -2288, -2225, -1948, -1932, -1832, -949,
- -450, 920, 805, 1468, -2897, -2633, -2557, 464,
- -2174, -1157, 1170, 2230, 2550, 2522, -2643, -1928,
- -2255, -2578, 82, -2206, -63, 2663, 2007, 2292,
- 226, -2541, -2687, -2753, -2229, -1556, 785, 3837,
- 2331, 2492, -2496, -1740, -2465, -2295, -2151, 1142,
- 363, 3967, 1943, 2432, -2619, -2400, 520, -2274,
- -1900, -1486, 2135, 1407, 2300, 2288, -2811, -3066,
- -3128, -3098, -2529, -1475, 2172, 3413, 3613, 3571,
- 564, -2347, -2257, -2377, -1944, -1771, -582, 509,
- 1683, 1975, -285, -2136, -2529, -2464, -2117, 278,
- 1094, 1042, 2192, 1976, 1781, -1874, -2042, -2103,
- -1744, -1044, 3373, 1252, 1861, 1873, -2688, -1849,
- -2462, -2494, -2105, -1903, 2221, 250, 1653, 2233
-},
-
-.fcb44m = {
- 13151, -1763, -2583, -2518, -2181, -1036, -537, -112,
- 214, 590, -608, -2270, -2228, -1301, -1018, 3687,
- -471, -282, 909, 1665, -2426, 1713, -808, -1240,
- -1366, -976, -140, 1730, 683, 191, 7253, -2076,
- -2733, -2698, -2253, -1116, 376, 687, 1314, 1532,
- -820, -1471, -2092, -2047, -1796, -1347, -732, 6348,
- 2529, 1441, -1460, -1845, -1046, -1643, 8086, -928,
- 90, 660, 428, -188, 604, -2022, 556, -1680,
- -1641, -902, 834, 941, 1480, 1906, -2439, -2573,
- -3091, -2853, -2419, -1606, 2312, 2624, 2659, 2659,
- -1286, -2273, -2400, -1826, 2443, -1391, 685, 1822,
- 1810, 1625, -1993, -731, 9737, -1476, -1183, -1244,
- 34, -85, 0, 201, 4171, -2430, -2869, -2866,
- -2488, -1154, -1253, 282, 2715, 3643, -2130, -2522,
- -3259, -3051, -2977, -2204, -1264, 1103, 7113, 7948,
- -1271, -1694, -2011, -1294, -1607, 247, -303, 715,
- 4276, 1908, -2337, -2111, -2232, -2123, -1648, -1302,
- 7686, 1213, 982, 984, -2594, -2127, -1981, -2104,
- -2405, -1966, -936, -95, 326, 672, -2263, -893,
- -1367, 1288, -1321, -1351, 2503, 747, 390, -247,
- -2220, -860, 3641, 3766, -1724, -1487, -531, 239,
- 134, -82, -2563, -1537, 3883, -1911, -2109, -1713,
- 1056, 726, 977, 1091, -1874, -1366, -1628, 11069,
- -1653, -696, 118, -78, 337, 29, 2449, -1438,
- -601, -1533, -816, 1262, 540, 79, -460, -1403,
- 3204, -1918, -1892, -1911, -1468, -976, -42, 2785,
- 1088, 564, -236, -2267, -2324, -2130, -1880, -427,
- -258, -543, 903, 5142, -1791, -1611, -1073, 2911,
- 2993, -1295, -400, 229, 192, -85, 4461, -1711,
- -1431, -1640, 3525, -1398, -101, -219, 327, 415,
- -669, -1520, 6595, -1291, 5123, 155, -480, -518,
- -552, -890, -2609, 7074, 3220, -1054, -1852, -1165,
- -25, 89, -361, -140, -1610, 2214, 2903, -1737,
- -1704, -1178, -708, -171, 177, 674, -1075, -890,
- 82, 463, -1432, -1048, -703, -759, -247, 344,
- 2448, -656, -1135, 4366, -583, -705, 40, -314,
- -676, -1271, 4389, -952, 3249, -1606, -1524, -1172,
- -490, 97, 128, -91, -66, -1293, 1696, -1114,
- -1455, -519, 2620, 479, -257, -1512, -2037, -1281,
- 1752, -1285, -1812, 2789, -52, 676, 409, 296,
- -1977, -1043, 270, -1615, 2131, -1051, -161, -498,
- 767, 1673, 1044, 27, -1107, -1730, -1856, -1264,
- -275, -167, 893, 443, 3850, 97, -1244, -1691,
- -1566, -1088, -1062, -837, -159, 1830, -1424, 2494,
- -1878, -1532, -1991, 2919, 62, 399, 524, 381,
- -1340, -2415, -2028, 218, -1342, 410, 815, 533,
- 948, 1998, -1213, -1847, 3691, -2123, 1822, -1548,
- 537, 987, 356, 123, 3876, -2476, -2021, -2195,
- -1562, -737, 2250, 709, 797, 1102, 2065, -2258,
- -2394, -1816, -1536, 1059, 4653, 1457, 456, -27,
- -2226, -736, 765, -1879, -2188, -1793, -928, 892,
- 1793, 2257, -1182, -1646, -1789, 6105, -1936, 4316,
- -307, -143, 223, 236, -2213, -1862, -1823, 3326,
- -1810, -1384, -453, 1007, 1331, 1405, 4135, -2298,
- -1657, 1981, -1702, -853, -318, 298, 760, 1025,
- -2537, -2782, -2985, -2687, -2839, 4493, -448, 4249,
- 3048, 2678, 1045, 3227, -690, -1390, -976, -652,
- 587, 194, -749, -1358, -730, 250, -2404, -2548,
- -2157, -1027, 32, 2091, 1059, 1360, 262, -2135,
- -2061, -1777, -1614, -246, 2004, 2605, 1516, -948,
- -1060, -1076, -1643, -748, 144, 1595, 1730, 531,
- -1086, -2182, -483, -2191, -2411, -1983, -2345, 10051,
- -841, 1456, 924, 207, 4652, -1831, -2026, -1710,
- -2235, 4036, -755, -70, 533, 887, -1899, -2326,
- -2129, -2115, -1606, 1443, 2557, 941, 618, 527,
- 949, -1547, -2067, -1785, 455, -60, 79, 202,
- 912, 954, -2527, 14551, -1893, -2315, -2609, -1844,
- 497, 287, -197, 626, 6839, -804, -1299, -1259,
- -1109, -97, 976, 144, -343, -1375, -2334, 3740,
- -1049, 2980, -1739, -474, 223, 137, 155, -171,
- 2962, 1814, -2378, -2643, -2249, -1109, 858, 643,
- 1630, 1399, -2098, 974, -1718, -2193, -2146, -1488,
- 3353, -147, 1187, 1266, 1559, -2532, -2941, -2759,
- -2101, -1098, 1562, 1049, 2045, 2159, -2298, 7439,
- -2129, -2361, -2318, -1552, -422, 482, 985, 1111,
- 6050, 5657, -1698, -2267, -2127, -1135, -140, -286,
- -352, -124, -1230, 3492, -1370, -1221, 2958, -1239,
- -472, -722, -169, -89, -2310, 2988, -2367, -2421,
- -2589, -2034, -662, 421, 1863, 2736, -2612, 5429,
- -2104, -2257, -2440, -1817, 4819, 883, 622, 636
-},
-
-.fcb44s = {
- 11239, -328, -2011, -1713, -1662, -1290, -1225, -1520,
- -1541, -912, 400, -1103, -2698, -162, 263, -964,
- 668, 405, 732, 2493, -2491, 1000, -2910, -793,
- -1351, -515, 1051, 2002, 1757, 2150, -2010, -2021,
- -2254, -1896, -1953, 664, 7067, 2632, 531, -1367,
- -2228, 2113, -2019, 2309, -1458, -426, 1242, 338,
- 205, -222, -1317, -1806, -2477, -2427, -2477, -1852,
- -1472, -911, 2261, 10280, -2369, 382, 3180, -1210,
- -1601, -748, -732, 504, 1440, 1142, -13, 610,
- -2457, -739, -1318, -1013, -52, -470, 627, 4734,
- 1248, 2947, -631, 1560, 2096, -833, -1173, -1475,
- -2060, -2189, 967, -1451, -1544, -758, -538, -31,
- 1395, 3550, -3, -1999, -1975, -1734, -2680, -2512,
- -2037, -1306, -252, 1288, 6012, 4834, -1087, 3259,
- 3115, -1369, -1136, -948, -264, -582, -677, -643,
- -2500, 1284, -317, -1872, -1150, -1150, 310, 832,
- 1597, 2842, 6295, 3806, -671, -1536, -1460, -1256,
- -1223, -1504, -1672, -1471, 1358, 1004, -1893, 1114,
- -1643, -103, -513, 189, 303, 140, -1618, -648,
- -720, 7274, 573, -180, -731, -1226, -1564, -1742,
- 151, 2103, -1562, -974, 94, 546, 3536, -205,
- -1657, -2534, -2187, 2840, -1248, 451, 2615, 171,
- 479, -305, -1299, -1708, -2144, -1593, -1289, 2766,
- 2287, -400, 188, -51, 141, 105, -2128, 4976,
- -1690, -1216, -1175, 297, 1454, 449, -478, -970,
- -1914, -1459, 3036, 2668, -950, -634, -507, -374,
- 4, 34, -1664, 2901, 847, 2817, -1154, -1651,
- -1262, -1160, -624, 629, 1578, 765, -2002, -2121,
- -1527, 1938, -272, 113, 287, 955, -1473, 60,
- 8047, 137, -534, -841, -1077, -1504, -1788, -1758,
- -1871, 119, 931, 1775, -704, 2792, 354, -501,
- -1370, -2038, -1031, -1631, -1914, -879, 377, 7589,
- 173, -196, -491, -1658, 3790, -773, -1731, 3028,
- 49, -1013, -563, -1232, -953, -730, -2568, -1926,
- -679, -267, -324, -962, 51, 461, 2728, 3631,
- 3533, -1690, -2846, -2370, -1945, -917, -551, 276,
- 2634, 3558, -2592, -1750, -2422, -1586, -1204, -1001,
- 4603, 1802, 2673, 1685, 2710, -853, -2321, -1919,
- -1603, -868, 3706, 290, 570, 338, -2245, -1704,
- -1915, 545, -787, 1635, 1725, 526, 666, 1604,
- 642, -1154, 3231, -1232, -1772, -623, 217, 27,
- 3, 641, -2411, 1924, -967, -1583, -1499, 2316,
- 1354, -115, 333, 559, -1721, 2475, -1942, -2114,
- -1196, -571, 1769, 2350, 1315, -607, 4510, -1414,
- -2228, -1312, 1439, 469, -248, -399, -270, -721,
- -1517, -1247, -771, -36, 6488, 942, -279, -572,
- -1041, -1908, -2388, -2281, -2595, -2275, -1529, 51,
- 471, 4435, 3002, 2738, 4049, 1562, -2706, -1672,
- -1649, -1204, -518, -280, 774, 1344, 6, -1950,
- -1521, -1768, -972, 1420, 3011, -191, 644, 1478,
- 3220, -313, 3030, -153, -841, -739, -378, -1013,
- -1410, -1815, -2104, -1033, -2097, -1992, -943, 2391,
- 424, 369, 1601, 3331, 1494, -2060, -2027, 1579,
- -1407, 1120, -280, -197, 761, 1048, -710, 4094,
- -1533, -1984, -1620, -1132, -515, -485, 971, 2644,
- 3979, -661, -1891, -1120, -897, 2484, 1623, 21,
- -1534, -2438, 3201, -1510, 858, -1459, -711, -1332,
- -833, -240, 763, 1096, -1435, -29, 3174, -1773,
- -19, 708, 1680, 403, -910, -2224, -2670, -619,
- 1320, -751, -1323, -1022, 2875, 1080, 985, 1,
- 191, 7823, -475, -604, -1126, -967, -1139, -1600,
- -1767, -1161, -1342, -1960, -2112, -1793, -1596, 3103,
- 535, 2001, 3235, 151, -2266, -807, -1977, -1661,
- -1255, 2328, 2632, 3189, 621, -1130, -2183, -1127,
- 2391, -884, 2173, -690, -354, -516, 352, 954,
- 1847, -74, -1260, -1839, 2557, -1221, 228, -630,
- -162, 386, 1462, -1889, -2596, -2216, -1869, -518,
- 1281, 2329, 2653, 1117, -1535, -1038, -1752, -1862,
- -1635, -1067, 994, 5212, 2719, -264, -2021, 1824,
- -2110, -619, 1538, -397, -332, -153, 860, 1281,
- 6568, -1790, -2459, -1707, -1708, -799, 294, 89,
- 475, 992, -1668, -1819, -2010, -1623, 2079, 3255,
- -388, 591, 1477, 581, -1544, 476, -1825, -959,
- -1296, -1037, -453, 1146, 4693, 839, 2027, 3021,
- -1731, -1746, -1964, -1115, 1197, 102, 164, -162,
- -2301, -1281, -2022, 3983, -1122, -281, 85, 352,
- 1042, 1599, 6463, -93, -2010, -1988, -2282, -2189,
- -1915, -1721, 17, 4694, 424, -998, -111, -1995,
- -1246, -1176, 78, -116, 1951, 3059, -1974, -1783,
- -2243, -1238, 3935, -928, -15, 1265, 1536, 1907
-},
-
-.shape08 = {
- 5279, 1101, 12974, 5624, 2029, 3853, 5918, 1516,
- -2905, -224, -92, -819, 803, 1091, 3091, -3355,
- 152, -1214, -7317, -738, -8973, 546, 12035, -937,
- 2216, 2113, 1214, -6577, 2006, -1661, -673, -5880,
- 496, 454, 3400, 676, -322, 11388, 634, -1169,
- 12556, -5804, -7724, 588, -6801, 1080, 354, -1681,
- -942, 1926, -487, -580, 156, 79, 15253, 667,
- 1155, 655, -719, 1999, -785, 214, 2822, 1020,
- -1967, 73, -387, -137, -15225, -1552, -357, 2830,
- 2140, 3070, -2552, 2410, 1230, 4131, 999, 248,
- 531, -909, 3948, 12858, -8056, 2205, -2837, -171,
- -1633, -129, -93, 1852, -1920, 157, 9647, -84,
- -150, -1365, -1522, -13197, 6168, -3195, 5890, -1724,
- -6407, -1340, -7435, -621, -5732, -2895, 145, 3974,
- 728, 9840, -494, 7357, -394, -13614, -256, -1930,
- 468, -266, 8001, -153, -365, 7652, 135, 1400,
- -3869, 1091, -4935, -2884, 1259, 6819, 1025, -6667,
- 1079, -9794, 6827, -4166, 1108, 1149, 18861, 593,
- -177, -1067, -644, -2164, 4727, 85, -101, -10805,
- -247, 8918, 2261, 5475, 756, 3018, -6535, 1941,
- 359, -4229, 1206, 958, -878, 554, -18780, 2289,
- 4906, -7412, -7685, 7932, 965, 2460, 4423, -563,
- -3668, -3482, 3307, -1737, 971, -7480, 10742, 1978,
- 2365, 20, -3625, 466, 2056, -6602, 9396, 3145,
- 3162, 1857, -630, -6905, 1660, -3024, -2159, 1109,
- 1282, 2767, 210, -2203, 3099, -7889, 1805, -13115,
- 988, -6235, 1566, -1399, -9612, 1821, -519, -57,
- 3428, -14024, 1141, -2542, -9396, -17, 440, -8591,
- 2271, -7811, 1891, -935, -4330, -1303, 362, 426,
- 319, 1176, 3176, 2202, -14308, -619, -2942, -2271,
- -531, -652, 345, 17681, 1453, -1561, 341, -2077,
- 933, 433, 1529, 463, -1095, 4912, -840, 16266,
- 973, 1732, -718, 6702, -3659, 4037, -704, -2707,
- 1423, 1291, 2300, 149, -933, -1338, 2019, 6173,
- 481, 14937, -364, 3896, -443, 992, -896, 378,
- -226, -1505, 268, -428, -2622, -289, -2069, 10472,
- -3880, -5330, 385, 3053, -4642, 1525, -1557, 716,
- 2504, 848, -450, -2018, -458, -705, -7120, -543,
- -2138, 2548, -351, 737, 12906, -1012, 63, 15357,
- 332, -837, -225, -1299, 2843, 1334, -669, 2083,
- -707, 1171, 8219, 2190, 10567, 1370, -1376, -2919,
- 2108, 10098, -388, 4442, 164, 490, 7580, 26,
- -1848, -2919, 640, 4758, -108, 8194, -1325, -2314,
- 447, 5178, -1095, 9902, -693, -3624, -223, 690,
- 10495, 776, -919, -1621, 2046, 469, 1454, 3681,
- -1090, -1776, 1457, 212, 2054, -994, 698, -496,
- 22347, -623, 254, 960, -4073, 531, -2572, -14393,
- -1022, 258, -3667, 994, 15242, 5078, -3618, 1925,
- -1229, -1754, 1715, 4358, 1286, -2360, -4590, 1824,
- 7864, 1423, -2146, -2763, -10635, 474, -829, 1159,
- -157, -54, -158, -29, 202, -383, 285, -2,
- 862, -364, 415, -123, -145, -9733, 1167, 10199,
- -1408, -2992, 2131, -412, 4743, 2992, 3555, -617,
- 9606, -2831, 2357, 5300, 625, -678, -500, -128,
- -56, -6327, -1122, -2567, 1904, -1804, 709, 3194,
- -148, -1371, -6534, -1748, -1490, 14159, 1466, 1395,
- 1101, -2725, 503, 68, -1486, 0, 211, -1218,
- -3, 20920, 1709, -208, -839, 4574, -6084, -6557,
- -103, -984, -375, 8409, 1715, -2170, -5003, -3296,
- 13482, 1211, -4159, 3496, 1040, 6925, 213, -1398,
- 441, -1231, -814, 842, 1574, 1145, 1359, 437,
- -1777, 20566, 259, -4573, -1412, -158, 10144, 1269,
- 1405, -12631, -1104, -615, -15892, 355, -3795, -1158,
- 3241, 252, 232, -179, -617, -2038, 285, -1014,
- -1248, 1835, -1558, 1266, -10207, 629, -312, 11376,
- 154, -288, 5915, -353, 60, 2695, -853, -103,
- 15659, 2403, -1184, 3, 9236, -10953, 4434, 829,
- 2563, -164, -848, -646, 7247, 895, 1726, -752,
- -979, 1053, -971, 318, 2180, 927, 804, -262,
- 446, 3261, -4926, -4523, 1247, 2039, 12770, -1191,
- -1310, -5574, 4763, 657, -4139, 10821, -805, -1109,
- -3189, -1721, 167, -10022, -1877, 2123, 328, -7048,
- -2130, 2431, 1522, 3209, -8448, 1810, -5412, 9815,
- -3677, 6575, -6237, -929, -434, -2375, -13586, 3497,
- -1140, 1227, -6354, -507, 329, -1690, 1079, -880,
- -3743, -4021, -4645, -6053, 958, 4594, -1122, -11628,
- 1537, -3418, -1242, 133, -9335, 1611, -432, 10733,
- -885, -468, -13466, 690, 214, 8968, 3441, 5451,
- -219, 5492, -377, 409, 3812, 2450, 508, 6542,
- 3824, -3705, -514, -8262, 1537, 7969, 946, -2869,
- 8762, 417, 5094, 2104, 6694, -342, 1259, -4779,
- -1445, -1519, 333, 4385, 652, -386, -580, -1892,
- -873, 1862, 2704, 13837, -5415, -1975, 5881, 7150,
- 8272, -6412, 704, 1854, 257, -3746, -9789, -9634,
- -924, 1393, -3237, 259, -56, 4390, 4902, 1172,
- 5114, -2616, -4409, -1180, 4691, 7400, -625, 8873,
- 6846, -1224, -213, -5296, -3504, -147, 17828, -1347,
- 3251, 1702, 1440, -2364, -491, -227, 1765, -446,
- -9746, -2019, 11287, -195, -9559, -312, 888, 5789,
- -1753, -11069, 2537, -265, -1762, -779, -8501, -308,
- -89, 1973, 3640, 17344, 1326, -689, -398, -3820,
- 2167, 229, -636, 2142, -6587, -751, 13243, 465,
- -5946, -202, -968, -1060, -240, -10626, 3405, 1302,
- -1263, 972, 11351, 100, 2266, -930, -2108, 5350,
- -3186, 11130, 2073, -5616, 650, 2000, 1048, 5628,
- -531, 674, 8453, 1030, 1152, 12095, 352, 409,
- -1029, -1236, -190, -5724, -589, 3550, 1958, -14081,
- -339, 1672, -1659, 4518, -75, -638, 5501, 277,
- -578, -2185, 157, 2066, 8634, -2403, 1617, -12487,
- -1881, 8273, 179, -2152, -1294, -512, -415, 456,
- -141, -125, -405, 132, 49, -1978, -19085, -451,
- -1480, 324, -5397, 235, -1217, 346, -1258, 3540,
- 10075, 10291, 5060, -2057, 6156, -992, 9344, -3718,
- 4296, 895, -8464, 341, 1426, 648, 1494, 2895,
- -3760, 10139, 15531, -984, -1550, -1319, -1542, -119,
- -517, -185, -3368, -9279, -3455, -4257, 1092, -10120,
- 5072, 3099, 986, -2562, -12068, 1932, 6489, 950,
- -2417, 1362, -567, 591, -715, -515, 3506, -726,
- 6319, 214, -364, 3611, 1895, -2005, -273, 1513,
- 2379, 475, -4855, -527, -11493, 27, 4343, -2394,
- -639, -744, -2601, 10917, 1910, 2449, 1238, -2175,
- 5322, -4054, -40, 4274, 684, 8152, 966, 10882,
- -13, 4253, -287, -3192, 548, 2020, 189, -6894,
- 797, 2160, 579, 4084, 1767, -4011, -640, 7697,
- 791, 945, 1230, 6491, 1508, -3762, -433, 11340,
- -129, -1131, -5121, 3148, 1544, -7648, 1866, 9660,
- 2365, -2110, 782, -82, 3666, -701, 303, 298,
- -1934, -125, -1427, -17589, -1188, 175, -7046, -488,
- 1121, -6594, 489, -1551, 14349, 1499, -544, 17132,
- 198, 2516, 2479, -978, -214, -3399, -1223, 2094,
- 130, -1020, 1049, -710, 12801, -498, 297, -1365,
- -187, -3169, -123, 9019, 958, 221, 14234, -590,
- 961, 3092, 8, 255, -4586, 1789, 2522, -12577,
- -91, -822, -805, -714, 5298, 1299, 3306, -1288,
- 13176, 235, 1754, -67, 1912, -604, 3240, -2048,
- -200, 772, -173, -996, 1368, 2380, 294, 763,
- 19665, -196, 528, 182, -2394, 923, 749, -13578,
- 855, 589, -9553, 0, 5737, 10399, 9147, -1655,
- -3735, 1246, -2429, -1147, -2199, -2953, 614, -1404,
- -449, -8524, -2271, 5001, -9517, 2940, -204, 3625,
- -258, 32, 1521, -299, -1786, -2836, 1523, 2427,
- -835, 3139, -197, 3351, -279, -14766, -1267, 5169,
- -1039, -10967, 58, 641, -767, -1193, -591, -716,
- -834, 8109, -915, -711, -10427, -1680, -638, 2643,
- -850, -258, 10452, 362, -5394, -349, -14727, -655,
- 1040, 1722, -10265, 551, -283, 9888, 408, -400,
- 5980, 1878, 781, -923, -667, -789, -348, 624,
- -260, 14515, -804, 1721, -2, 5356, 1802, 1218,
- 498, 1871, -988, 16295, 4163, -2342, -4290, 3121,
- 3269, 112, -3492, 1124, -1496, 1863, -1426, -1090,
- 1598, -197, 1160, -1660, -1094, 477, -4104, -396,
- 1605, 26134, 746, -12876, 2320, -1690, 8626, 39,
- 1341, -1254, -1890, 2555, -13996, -1218, 3827, 1216,
- -909, -180, 1720, -87, -143, 989, 340, -1426,
- -4029, 3141, -9424, 466, -8227, 422, -7379, 2038,
- 401, 98, 3602, -1223, -946, 2469, 1159, 727,
- -268, 467, 203, -11079, 3850, -3469, -1965, -1857,
- -1415, -2477, 3173, 7352, 9483, -5541, 6212, 1886,
- -3868, 2728, 577, -5057, 321, 972, -77, 47,
- 227, -38, -1037, -222, -347, -341, 1179, -948,
- 592, -7485, 2218, -5955, 2698, 11798, 197, 6260,
- 1711, 998, 8, -6223, -1184, 1145, -1781, 1376,
- 1394, 388, -689, 2279, 6511, 2542, -4903, 3917,
- -790, 535, -1903, -4448, 4216, -22, -6715, 5204,
- 4807, 3193, -1064, 5403, 4503, -2434, -4296, 1383,
- -1514, -4103, 747, 3928, 2987, 9513, 2492, -8691,
- -993, -2667, -40, -170, -3116, 611, 2367, 16297,
- -1256, -1404, -3462, 466, -524, 5464, 491, 706,
- -7491, 2027, 373, -4086, 1620, -7789, 704, 5002,
- 1706, 8325, -851, -9883, -3072, 4475, 2696, -8549
-},
-
-.shape11 = {
- 44, -10592, -832, -413, 612, 530, 379, 753,
- 1442, -3006, -858, -1077, -12018, -196, -771, -1142,
- -628, -2938, -439, -3323, 20, 12513, -2462, -1270,
- -57, -8417, -690, 790, 276, 2349, -341, -1644,
- 230, -2176, -202, -14725, 170, 1725, 3030, 683,
- -231, 641, -242, -3252, 110, -1440, 2886, -1467,
- -1155, 14395, 297, 52, 240, 3938, 9880, -7555,
- -1214, 3351, 129, -1269, -168, 669, 13765, -1289,
- -465, 10017, -632, -328, -276, -33, 31, 18883,
- -148, -131, 525, 1669, 2288, -203, 868, -660,
- 248, -409, -91, 295, -9174, -1484, 929, 2824,
- 1097, -3205, -113, 2712, -1544, 527, 1419, -963,
- -388, 691, -16791, -84, 72, -3802, -357, 1633,
--15182, 62, -6024, -742, -5396, 4470, -198, 1,
- 1428, -1691, 18715, 1402, -2539, -375, -8455, -901,
- -147, -3274, 9359, -277, -8941, 714, 2834, 2924,
- -6326, 907, -123, 10487, -484, -4772, 877, 9840,
- -505, -7562, 301, 671, 116, -371, 3740, 359,
- 385, -5145, -908, 156, 9639, 3782, -9688, -4214,
- -945, -7685, 334, 2185, -1342, 388, -1741, 278,
- -231, -912, 905, -1039, 598, 2049, 662, -198,
- 22378, 166, 116, -1699, 335, -8380, 1279, 1536,
- 14955, 1254, 190, -2519, -608, 364, -561, 5748,
- -1178, -923, 3183, -59, 13880, -2530, 241, -564,
- -319, -7510, -9, -124, -20346, 305, -25, -400,
- 222, -16943, -488, 802, -1685, 3323, -6198, 1000,
- -903, -846, -387, 462, 847, 526, 10024, 2020,
- 2090, -9563, 1416, 169, -12182, -428, 10388, 869,
- 1068, 2201, -1041, -3180, 152, -646, 4, 4017,
- -1069, 307, 5283, 3021, -13662, -493, 9, 542,
- 152, -2617, -3870, -514, 13497, 1180, -603, 1255,
- 2396, 7418, 8902, -11165, -2626, -5719, 1764, 858,
- 1105, 1476, -1764, 1969, 977, -1738, -928, -13940,
- 1444, -4157, 836, -12243, -369, -256, -15681, 5320,
- -5170, -509, 353, -1581, -1455, 965, 716, 209,
- -883, -317, -1961, 9128, -8197, 2173, -2434, -1126,
- 4066, 1025, -16663, -7013, -147, 1617, -745, -3205,
- 1496, 1822, -1199, -2999, 117, 619, -20002, -232,
- 142, 3207, 561, -292, -1635, 1035, 37, 2712,
- -243, -8269, 305, -2601, 495, 14516, 831, 260,
- -54, 4217, 675, -1632, 4962, 793, 1066, 133,
- -344, -12428, 95, 6164, -1298, -1860, 3622, -467,
- -867, -1178, 11053, 118, -36, -6997, -763, 16019,
- 16, 2459, 306, -820, -1135, 847, -709, 928,
- -164, -293, -5736, 543, -11548, 5389, -2012, 300,
- -228, -1043, 5107, -558, 1187, -140, -13034, -1571,
- 740, -4967, -432, -6289, -1778, 3449, -337, -12607,
- 344, -3790, -1598, -274, -346, -1494, -108, 325,
- -1215, 819, 404, -568, -286, -21364, 15495, -2297,
- 606, 117, 10, -193, -972, -292, -573, -1155,
- -1289, -1025, 472, 1154, 843, 187, 586, 20569,
- -5, -236, -1181, -1092, 700, 891, -603, -601,
- 21648, -449, -193, -1103, -298, 2084, -251, 449,
- -1414, 17168, -391, 104, -5465, 401, 8839, 781,
- 1741, 201, -369, 466, 12358, -636, -945, 3928,
- -605, -17445, 5020, -1289, 977, -6202, 1783, -507,
- -76, 267, -31, -2731, -1560, -1225, 1348, 11176,
- 1669, 754, 1671, -4038, 151, -371, 7283, 243,
- 1387, 126, 1007, 1292, -15, 696, 282, -2623,
- 1065, -1026, 191, -632, -132, -12957, -32, -1697,
- -422, -240, 1352, 10252, 1067, 8296, -1244, -9,
- -301, -3014, -249, -372, 10731, 535, 2147, -8959,
- 346, -408, -8329, -1905, -48, -8176, 2782, 412,
- 1425, -946, -748, 1095, -1370, 9086, -99, -143,
- 68, -544, 264, 494, -377, 13, -618, 237,
- 193, 3549, 317, -168, -7148, 2351, -244, -13240,
- -3355, -2322, -533, 9554, 6906, 124, -694, -901,
- -2762, 207, -915, -2520, -143, 8544, -678, -2788,
- 12926, 791, 1296, 4861, -1470, 889, 3675, 806,
- 290, -11146, 422, 9217, -31, 1608, 140, 3939,
- -6903, -276, -704, 2353, -344, -1038, -230, -177,
- 670, -617, -129, -857, -8231, 638, -411, -252,
--15709, -1218, 210, 288, 542, 533, -9087, -10493,
- -624, 1175, 611, -230, 746, 1455, -590, 830,
- 1756, -15800, 823, -1077, 788, 1071, 468, -1654,
- 660, 983, -9697, -1300, 662, 2053, -281, 12949,
- 389, -915, 197, -1742, -4587, 1746, 707, 1625,
- 9021, 2204, 759, 1303, -428, -220, 41, -5499,
--16080, -193, 443, 443, -78, 889, -561, 5629,
- -1073, 7019, 222, 1661, 1190, 1108, 94, 5624,
- -3796, 407, -706, -122, 744, 363, 1648, -10896,
- 595, 953, 85, -267, 195, 851, 17173, -636,
- 243, 907, 2029, -700, 351, 1495, -157, -575,
--11664, 1252, 8341, -616, 3708, 5693, -6, -1753,
- 1072, 863, -823, -4278, -12043, 750, 597, 3145,
- 38, -8140, 3136, 290, 7, 11084, -876, 1842,
- 175, 3458, 460, 1615, 11698, -827, 16, -12482,
- 428, 411, 2625, -1352, 142, 529, 229, -48,
- -965, -145, -592, 655, 499, 22095, 22141, 37,
- -1875, 701, 45, 724, 1111, 1631, 262, -252,
- -9092, 5325, 408, -637, -612, 647, 1268, 834,
- -510, 603, 199, 816, -9904, 9533, -1580, 2669,
- 1824, -2092, -701, -271, 7489, 46, -3295, -844,
- -304, -226, -260, -692, -5, -527, 37, -49,
- -1542, -69, -1087, 20519, 367, 1, 3487, 2535,
- -5110, 642, 1223, -2130, -2894, 1752, -1618, 9732,
- -1633, 6904, 137, 654, -358, 355, -21, -277,
- -68, -188, 132, 530, 372, -315, -11498, 221,
- 815, 2480, -1398, -123, 353, 3114, -12025, -1212,
- -1111, 916, 6452, -1880, 1867, 307, -66, 1857,
- 138, -980, -3088, -174, -41, -393, -656, 847,
- 15824, -379, 358, 672, -389, 920, -21145, -393,
- 350, -574, 1005, -2083, 26, 79, -203, -7967,
- -3302, -5805, 772, -302, 2104, -1240, 13710, 6816,
- 2282, -3709, -1512, -81, -2216, -3005, 444, -795,
- 751, 2163, 20751, 780, 542, -480, 624, -425,
- 769, 2474, -5903, 399, 10564, -112, 69, -1409,
- 1885, 2339, 67, -620, 196, -2432, 6046, -1673,
- 6512, 809, 7904, -516, 4278, 223, 359, 16512,
- 1224, -480, -505, -735, -502, -593, -4565, 1914,
- 122, -531, 1442, 464, 69, 292, 410, -581,
--19848, 1059, 132, 1392, 5917, 705, -7706, 2496,
- -1487, -791, 11939, 185, -265, -2412, 630, -8028,
- 1434, 10315, -1541, -3756, -2403, -1918, 1050, 8057,
- 234, 13546, -92, -2172, -671, 11631, 103, 116,
- -171, -4604, -267, -602, 15, 454, 6859, -2151,
- -8707, -1664, 61, 2518, -969, 903, 1209, -1435,
- 13531, 590, 236, -821, 598, 1186, -7690, 134,
- -1005, -18177, -148, 519, 900, 951, 406, -3584,
- 47, 9439, 1418, -797, -3353, -703, -1798, -1244,
- 291, -2784, 14612, 2029, -161, 1040, -4130, 3064,
- 1721, -2898, 269, 3367, 1379, 14359, -690, -655,
- 2010, -4935, -681, -2606, 11651, 748, 101, 13593,
- 629, 28, -540, -854, 1405, 558, -8785, -1016,
--13043, 121, -556, 4959, 1694, -720, -138, -3897,
- 182, 1938, 844, 919, -683, 12042, -1101, -155,
- -1375, -1509, 11, 220, 821, 21721, -367, -634,
- -1468, -174, 1002, -1203, 318, 11672, -2114, 2472,
- -1701, 5932, -661, 1094, 2500, -5609, 254, 437,
- -911, -1611, -8005, 217, -1139, 1321, -10713, -2183,
- 1163, -890, -622, 12820, 1021, -13578, 1040, 3216,
- 592, 686, 737, -2881, -1693, 3995, -455, 4666,
- -4124, -9316, 2061, 10645, 271, 264, -6829, 641,
- 2061, -6683, -512, -747, -9131, 2445, 343, -9944,
- -2888, 607, -10855, 871, 418, 504, 936, 1079,
- 273, 400, -17752, -391, -1543, -6193, 1482, 737,
- 2096, -982, 167, 972, 336, 1063, -1272, -1602,
- -1907, 9, -191, -15207, -119, 4047, 1479, -1405,
- 526, -18462, -627, -1996, -1022, -1544, 312, 7972,
- -227, 797, -5204, -2160, 391, -423, 257, 3836,
- 442, -1931, 22, 143, -203, 362, -73, 15679,
- -289, -1445, 577, 858, 11408, -1970, -1022, 1550,
- 882, -3699, -2697, 3978, 600, 86, 3858, 8683,
- -7681, -4856, 4051, -1321, -587, 46, -499, -354,
- -655, -15717, 67, 490, -2670, 474, -1374, 5601,
- 60, -17615, -808, 87, 367, 579, 1057, 1020,
- -394, 1181, -189, -10846, 763, 2635, 282, -3279,
- -866, -15257, -449, 112, -15577, 227, 269, 13964,
- -1273, 1513, -1487, 195, 319, 2527, -286, -5883,
- -5360, -959, 2791, -3335, -945, -1985, -903, -11418,
- 8525, 669, 6106, 153, -1169, -1198, -553, 7037,
- 528, -4237, 717, -214, 1824, 10108, 961, 9077,
- 1899, 10407, -207, -29, 355, -6794, 111, -13627,
- 1361, -3577, 291, 4534, 2209, -1579, 109, 523,
- 456, 10990, 31, -448, 385, 1481, 2, 15266,
- 798, 5759, 860, -16424, -1315, 1631, -456, -977,
- -180, -2593, 1191, 5959, -32, 8112, -506, -7766,
- -1871, -15310, 662, 196, -20401, 925, 446, -2035,
- -620, -686, -249, -2517, 423, 703, 633, 828,
- -182, -37, -406, -149, 821, -22255, 652, 522
-},
-
-.shape16 = {
- -786, 193, -15441, 200, 1050, -16545, -41, 329,
- -869, -170, -858, 2725, 217, 447, 2107, -23,
- -387, -10280, -383, -320, 387, 16012, -79, -967,
- 3528, -2123, -537, -636, -1761, 949, 100, -17,
- -446, 261, 22527, 331, 26, -87, -206, -2292,
- -1178, -164, 598, 147, 889, -14487, -2823, -1280,
- -1892, 33, -1763, 993, 4807, -953, 2181, -588,
- 59, -296, 218, 291, -104, 495, -1092, 2232,
--14904, -983, -2919, 795, -17207, -2045, 2988, 597,
--10312, -718, -2196, -5822, 847, 1304, -757, -4714,
- -148, 831, -734, 806, 4348, -308, 244, 566,
- 2706, 604, -748, -864, -568, -219, -128, -688,
- -218, 110, -29289, 482, 76, -1447, -142, -417,
- -253, 8124, -19775, 990, 4546, -1012, -8082, 133,
- -1612, -2243, -3788, 1568, -2892, 852, -1642, -3479,
- -23, 1300, -564, -1037, 249, -14533, -43, 321,
- -680, 10, -417, 23426, 397, -108, 1843, 180,
- 11976, -9613, 353, 3768, 130, -1035, 4340, 218,
- 596, -224, -779, -1680, 1326, 152, -971, -9725,
- -355, 5328, -459, 16242, -438, 926, 6210, 1912,
- 769, 2621, -148, -1008, 517, 341, -3594, -965,
- 11383, -874, -16949, 1167, -3371, -1655, 586, -132,
- 3990, -770, 211, 246, 514, -166, -734, 30408,
- -258, -521, -20, 339, 499, -2572, 2110, 272,
- 1357, 123, 2841, -320, -31, -444, -501, 215,
- -42, 595, 108, 484, -223, 937, 475, -72,
- -319, 75, -205, -978, -9155, 145, 2020, -3,
- 2438, 4046, -1281, -875, 1532, -598, 12288, 369,
- -2046, 343, -778, 1769, -2589, -641, 17437, 1793,
- -592, -1954, -1607, 6184, 3440, -512, -2710, -1330,
- -127, 8765, 83, -243, -315, 709, 256, 1176,
- -1198, -463, 970, -302, -568, -997, -1022, 159,
- 11008, 27, 13074, 1523, -3239, 2330, -4808, 6115,
- -9933, 1449, 2153, -3111, 1780, -731, 121, -881,
--14289, -265, 566, -611, -253, -2965, 250, -105,
- -66, 2570, -1922, 2712, 1907, -2025, -454, 173,
- 1463, -29, -31955, -113, -1751, -3353, 254, 1001,
- 6781, -29, -639, -1289, 288, 498, -21505, 48,
- 109, -2151, -223, 1360, -3430, 658, -4185, -1706,
- 1244, 1899, 124, 12, -35, 289, 382, 433,
- 261, -131, 54, -646, -280, 86, 180, 153,
- -169, -20242, -95, 734, -524, 77, 102, 8468,
- -421, 29, -3, 51, 1526, -600, -264, 355,
- 1949, -985, -291, -86, 10212, -789, -393, -182,
- -51, 946, -16716, -954, 1179, -2745, -509, -4774,
- -587, -608, 7657, -509, -388, 987, 109, -218,
--17579, -524, -467, -1643, -444, 1430, 2541, -124,
- 1785, 27, 7905, -73, -3135, -1241, -254, -2114,
- 1175, 780, -50, 4055, 535, 438, 32, -113,
- -260, 81, 1102, -59, 29188, -48, 212, -29,
- -344, 559, 856, -483, 608, -40, -1498, 112,
- 10374, 1198, -434, 4053, 1286, 236, 1823, 16046,
- 592, 1583, 78, -5243, 1311, 456, -1342, -546,
- -353, 13289, -333, -529, -20859, 183, -167, -1368,
- -338, -690, 4248, -205, -666, -634, -1653, 1174,
- 234, -18622, 891, 284, -2632, -1516, 289, 11242,
- 727, 133, 284, -323, -1370, 908, -13169, -412,
- 1155, 410, 610, -3072, -8220, -637, 242, -647,
- -2072, 16041, 2292, -8009, 351, -3137, -3075, -1051,
- 4569, 125, 23, 1281, 2487, 520, -209, -688,
- 205, -1248, 246, -601, 533, -12209, -2298, 826,
- -2762, 45, 15123, 721, 1128, 798, -676, 349,
- -153, 263, 89, -854, -24, -350, -227, 157,
- 587, -240, -185, 663, -32328, -148, -204, -2396,
- -597, -344, 8104, -280, -375, 264, 648, 741,
- -290, -321, 263, -569, -381, 167, 1757, -29636,
- 30, 393, 398, 590, -242, 81, 1601, 3683,
- 787, -336, 675, -1080, -713, 261, 18420, 1760,
- 609, -4610, -551, 2790, 19807, 1347, -125, -9412,
- -261, 548, 1056, 179, -917, -181, 12637, -267,
- 621, -11908, 1366, 76, 5875, -742, 394, 155,
- -370, 2481, 46, -15392, -344, -9750, -1353, -2242,
- -1685, -1286, 2320, -2176, -1729, 705, -1582, 1590,
- 1603, 21129, -3555, 2192, -883, 3438, 233, 1965,
- -537, 399, -4818, -4085, 559, -292, 1290, -2700,
- 10, -301, -1865, 226, 52, -1346, 306, 316,
--12281, -525, 285, 9631, -2, -849, 1620, 128,
- 176, -1021, -473, 7929, -133, 2459, -33, -1517,
--22047, -2300, 98, -3513, 334, 4617, -193, -1309,
- -1279, 738, -443, 95, 406, 660, -705, -54,
- -39, 26396, -766, 249, -2423, 7759, -689, -3909,
--17404, 65, 1849, 945, 15907, 1386, -433, -831,
- -6349, -3919, 1870, 8096, 311, 15043, 1709, -315,
- 1288, 7522, -215, -5072, 1246, -1486, 3762, 4526,
- 1517, -1936, -543, -263, 771, -10215, -425, -5098,
- 59, -266, -1012, -380, -2131, 630, 405, 665,
- -4550, 1403, 8, -46, -879, 398, -532, -185,
- -286, 921, -65, 378, 669, 174, -15280, 91,
- -776, 8480, 2463, 184, 2065, -666, -561, 4122,
- 594, 732, 4007, -852, -71, 194, -126, 1765,
- -1570, 968, -257, -288, 950, 27482, -333, 370,
- -1429, 285, 558, 11245, -135, 565, 1296, -261,
- -62, 600, 1455, 1457, 820, 357, -1203, 169,
- 16611, -893, 359, 231, 418, -547, -95, 3866,
- -511, -6344, -205, 923, -239, -16205, -1619, 217,
- -3362, -6342, -1551, 649, -492, 264, -55, 170,
- 16992, -91, 306, 43, -2770, 582, -1740, 77,
- -882, 268, -515, -45, -6093, 24, -5596, 9034,
- 284, 3211, 846, 1158, -1118, -604, -514, 1402,
- -493, -938, -3892, 242, 643, 1421, -434, -406,
- -102, -88, -11733, 161, 518, 978, 1508, 248,
- -1036, 1407, -396, 293, 1154, -1435, 495, 8243,
- 20, -845, -5373, 659, 2366, 29148, 145, 603,
- 4088, -251, -2841, -2526, 20682, -1357, -2454, 660,
- -125, 347, 11772, -113, -357, -2181, -1234, 1908,
- -432, 16555, -248, 822, 15516, -158, -653, 1573,
- 93, -2730, -1111, 958, -1550, -1153, 17, 610,
- 781, -372, -1640, 144, -135, -1171, 22140, -427,
- -26, 690, -800, -1497, -300, 5438, 390, 11304,
- 9253, 1098, 5564, -9, 3856, 965, 2016, -12797,
- 1687, 915, 3687, 539, 2496, 702, -1324, -71,
--12955, 7456, 4626, -848, -1815, 831, 2151, 7921,
- -3000, 123, 1189, -1489, 222, 4973, 1936, 54,
--10527, -1238, -1157, 628, 14112, -2164, 1478, -985,
- -4102, 635, 225, -311, -609, -1015, 301, 507,
- -85, 443, 186, -552, -711, -16988, -1327, 220,
- 565, -1673, -543, 18633, 331, 127, -342, 22,
- -77, -360, -439, -501, -1848, -1147, -483, 1133,
- -351, 41, 908, 502, -658, 474, -430, -11348,
- -1, -531, 451, 709, 227, -978, 348, -265,
- 269, -376, 2511, -188, -111, -387, 809, 1009,
- 1570, -755, -11463, 667, -895, 446, 276, 145,
- -513, -117, -462, -340, 1457, -963, 191, -788,
- -150, -979, -507, -27540, 122, 368, -73, 10051,
- -465, 642, 507, -6828, 241, -5025, 1598, -1174,
- 2373, -2272, -1910, -108, 15, 166, 2, 10518,
- 933, -12716, 510, 778, -424, 414, 4899, 759,
- 862, -438, -886, 457, 304, 23639, 136, -203,
- 478, -565, 244, -541, 2419, -773, 1107, -217,
- 1579, -1037, 476, -97, 995, 17973, 161, 16466,
- -178, -718, -1606, 947, 1991, 2266, 1249, 2708,
- -611, 1424, -142, -53, 36, 509, 26159, -144,
- 357, -37, -234, 587, 311, -509, -1639, -332,
- -1618, -382, 302, -8657, -68, -30, 545, -12834,
- 158, 158, 135, 621, -354, -871, 451, 1220,
- -31, 2, -13414, 60, 3, -380, 541, -44,
- 552, -366, 155, -462, 61, -232, -15426, 317,
- 688, 1121, 2933, 7151, -168, -9167, -2521, 745,
- 2792, -10448, 569, -3823, 630, -4626, -95, -416,
- 828, 259, 72, 171, 635, -250, -128, -426,
- -153, 260, -771, 314, 235, 26, 32281, -343,
- 751, -1443, 324, -684, 1900, -1334, 2022, 30,
- 1073, -2406, 2080, -485, -320, 15328, -860, -529,
--16444, -219, 1736, -149, -160, -828, 1089, 413,
- 241, 3720, -90, 146, 1109, 243, -321, -256,
- -68, 88, -50, 571, 1179, -25030, 104, 929,
- 35, 529, 117, -13724, 734, -1344, 456, 5586,
- 1566, -12573, -840, -1617, -2494, 1791, 1901, 3066,
- -2159, -414, -3856, -9894, -1608, -657, 15355, -773,
- -9217, -658, -972, 4730, -2986, -3478, -757, -1416,
- -3702, 18089, 629, 7061, 124, 5843, 158, 19017,
- -2204, -6976, 1629, -5657, 1101, -1859, -1425, -548,
- -1132, -5043, 1074, -592, -196, 1902, 22705, -1228,
- 214, -685, -2036, -2368, -315, -914, 533, 218,
- 1091, -627, 2031, 13922, 104, -450, 4494, -498,
- -361, 24734, 623, 1029, 2437, -1123, -5092, -6551,
- 438, 16562, 375, -13102, -193, -2004, 3556, 179,
- 1832, 2086, 798, -534, -195, -7105, 796, 3969,
--12269, 1570, 4273, -2692, 1240, -2901, -2045, -2453,
- 372, 613, -548, -245, 687, 258, -8964, -1500,
- -1519, -993, 17571, -357, 916, -1202, 1752, 2081,
- -536, -3185, -1062, 19335, 721, -9958, 1052, -872,
- 248, -3133, 456, 1641, 149, -11, 2955, 310,
- -3178, -18823, 497, -971, -6587, -1380, 351, 106,
- -43, 607, -4754, 213, 1030, 5377, -804, -2557,
- 850, 1081, -706, 1325, -14922, -794, -14060, -1953,
- 891, -3296, 329, -510, -1126, 1113, 1753, -411,
- 1769, 429, -185, -1020, 194, -106, 11470, -591,
- -272, 422, 337, 524, -150, 822, 51, -120,
- 7193, 802, 640, -140, -42, 28125, -1020, 285,
- -465, 3195, 69, 482, -953, 262, -7672, -373,
- 5158, 5625, -3003, 550, 5371, 5619, -2200, 5392,
- -804, 135, 1300, -3610, -23, -433, 13503, 224,
- 911, -14421, -502, -2151, -1667, -1933, 2888, -277,
- 547, -989, 3115, -32, -680, -164, 804, 412,
- 62, -154, -190, 156, -10938, -360, -88, 843,
- 328, -773, -267, -12668, 856, 1496, -243, -586,
- 736, -2175, -677, -3069, 7480, -1764, -4024, -2569,
- 1805, 194, -6814, -1135, -237, 2682, -156, -890,
- 1285, 368, 1802, -683, -163, 1191, -13063, -496,
- -335, 17482, 746, 818, 48, 21419, -598, -1753,
- -1169, -2135, 40, -9114, 592, -3912, 1980, -264,
- -304, 8138, -185, 286, -3024, 48, -1630, 909,
- 661, -662, 18085, 240, -201, 69, 192, 305,
--22167, 692, -1135, -996, 398, -74, 18553, -958,
- 1223, -5578, 508, -352, 1234, -450, 497, 780,
- 79, 51, -221, 255, -26, 13352, -170, 231,
- 590, 169, -733, -812, -65, -219, -20939, 200,
- 35, -177, -454, 632, -267, -407, -120, 623,
- -176, -664, 715, -23, 318, 148, 1125, 16,
- 709, -21687, -230, -413, 1398, -1235, -283, 1615,
- 175, -299, 349, 400, -112, 21762, -665, 364,
- 1089, 1303, -54, 523, -381, -1312, 48, -886,
- -1260, 408, 415, -8349, 7115, 180, -774, 3508,
- -971, -255, -195, 81, -2674, -977, -355, -1500,
- 178, -2081, -4432, -1014, 340, 5818, 138, -106,
- 16917, 1203, 349, 3271, 961, 363, 6008, -6043,
- 3736, -730, -4201, -514, -6131, -68, -14935, -1781,
- -3898, -40, -18944, -461, -1694, -1269, -755, -81,
- 2369, 484, 531, 14114, 85, 32, -10142, -142,
- 600, -2374, 375, 675, -2663, 155, -947, 6427,
- 11476, 1253, 5049, 1063, 2003, -1608, 2463, -2168,
- -1128, 1079, 383, -996, 368, 1208, -3554, -959,
- 4596, -1209, -4154, 1270, 9365, -2775, -1751, 998,
--20023, -347, 1505, 218, -142, 342, -128, -523,
- -159, 75, -467, 257, -133, -142, 712, -621,
- 428, -29584, 13, 402, -455, 119, -483, 1121,
- -461, 960, 807, -46, 297, 14856, 221, -356,
- 221, 15037, -4744, -2555, 447, -1418, 1464, 1391,
- -1404, -5812, 512, -2321, 9882, 242, -2298, -137,
- -849, -3182, 9394, 1412, 1052, 1369, -904, -494,
- -231, 1113, 1087, -13317, 768, -1178, -3011, 24,
- 229, 164, -10170, 328, 308, -591, 213, -543,
- -82, -790, -875, 794, -558, -7651, -573, 1266,
- -2084, 2275, -187, 97, 384, -11830, -185, -472,
- 1365, 11636, -1405, 360, -487, -440, -1820, -349,
- -293, 285, 25, -139, -415, -540, -108, 1136,
- -673, 230, 19202, -545, -542, 919, 1221, -518,
- 196, -21900, 795, 115, -16, 459, 3339, -347,
- -346, -186, -695, -267, -714, 185, 266, -1218,
- 120, -249, 233, -110, -30412, 285, 219, 2256,
- 536, -442, 673, -1487, -477, -60, -1806, 183,
- -7195, -577, 2230, -7594, -3230, 65, 22963, 111,
- 390, 7134, -3716, -5123, -475, -32, -98, -466,
- -118, -43, 74, -1071, -902, 1714, 4004, 26,
- 97, 1680, 423, 252, 9667, 550, 354, -222,
- 19, -224, -807, 365, 593, 363, -851, -28,
- 553, 238, -481, 769, 279, 18367, -462, 286,
- 4825, -141, 500, 20383, 1618, -31, -514, -2484,
- -327, -8506, -705, -872, 530, -9997, -36, -431,
- 2824, 3185, 1712, -318, 9513, -10065, 614, -503,
- 389, 12830, -113, -15, -1007, -523, -1293, -2102,
- -543, -1157, -583, 1228, 262, -674, -1847, -242,
- 299, -12025, 547, -591, -9173, 275, 412, 2493,
- 997, 1229, 1982, 27554, 245, 106, -1320, -153,
- -423, -955, -449, 392, 824, 796, -1181, 1640,
- -884, -70, 8789, 10021, -1806, 1019, 90, 1494,
- 2071, -911, -1159, 212, 2207, -994, -2500, -497,
- 92, -11544, -398, -774, 1474, 32, -671, -171,
- -1250, -249, 1161, -654, -205, -36, 1733, 763
-},
-
-.shape22_1 = {
- 987, -6, -621, -220, -2438, -387, -535, -23,
- -934, -68, -4985, 575, 483, 7243, -1075, 917,
- 1739, -1832, -580, 1564, 131, -180, -1271, 3672,
- 161, 1040, 1737, 2719, 1101, -185, -1410, 221,
- -422, -8675, -753, -401, -5388, 13, 762, 1378,
- 1113, 1768, -177, 3397, 2162, 267, 2261, -156,
- 1708, -848, -79, -1819, -3159, -5548, -745, 7208,
- -1039, 7555, -134, 2661, -2112, 2270, -1991, 441,
- -6248, 246, 166, 2092, -1402, -242, -13600, -539,
- 391, 2395, 11001, -981, 10906, -403, 823, 1647,
- -294, 93, 504, -5448, 1213, -1849, -3077, 790,
- -841, 12812, -11266, -1882, -805, -274, 1968, -49,
- 1189, -80, -281, -40, 409, 2423, 581, -1362,
- 207, -869, -589, 3294, -318, -4592, -476, 1014,
- -135, -17999, -194, 807, -2946, -222, 44, -514,
- -4407, -1201, 1155, -235, 98, 4432, -342, 2386,
- 1402, -956, 3357, 1959, 4790, -139, -3494, -4280,
- -589, -8422, 363, -746, 640, -360, -1007, -1100,
- -7989, -12630, 1006, -1608, -864, -226, -915, -2032,
- 1274, 596, 1864, 1067, 1597, 460, -2003, -5560,
- -8020, 2354, 379, -3151, 44, 7024, -698, -2901,
- 4976, 927, 1223, -93, 172, 189, 6639, -6082,
- -726, -524, -3068, -3802, 16, -1039, -105, 2333,
- -350, -306, -379, -832, 1282, 56, 3529, 562,
- -603, 5954, 294, -1265, 8045, -3990, -169, -123,
- -3267, 572, -879, 1562, -1185, 799, -9589, 407,
- -590, 65, -2848, 433, -5547, -19, 7180, -7904,
- -392, 323, -448, -4481, -3773, -5286, 1957, 226,
- -2040, 3292, 2987, -1704, 2835, -149, 1435, 823,
- 1775, -2769, 146, 234, -131, -15, 268, 37,
- 139, 22, -196, 91, -3503, -5421, 24, -280,
- 58, 370, 655, 1412, 113, 306, 16404, -234,
- 315, -957, 72, -1129, 1993, -18719, -1415, 1349,
- 2340, 541, 313, -1360, 31, 1441, -78, -9905,
- -393, 367, -712, -2009, 372, -297, -123, 303,
- -458, -323, 46, 8701, -1301, -8768, -43, 1818,
- 212, -543, -5077, -8037, -2536, 702, 792, -381,
- -272, 1941, 6320, -1871, -13938, -262, -2063, 108,
- -861, 485, -440, 768, 5665, -302, 305, -13784,
- 2889, -127, -94, 145, 1308, 7911, -8376, -643,
- -596, 1357, -943, 1329, -84, -62, 1651, 391,
- -2295, -5456, -357, -4611, 1361, 3961, -295, 642,
- -698, 8614, 1613, -526, -120, -205, 17, -20171,
- 1252, -261, 535, -1244, 92, -315, 878, 380,
- 157, 3217, -493, -773, 513, -510, 11304, -899,
- -27, 398, -6386, 659, -1001, -2737, -13295, 1219,
- -1014, -193, 445, -2393, 344, -25, -599, -2848,
- 884, 94, -11, -564, -36, 9939, -3530, 462,
- -942, 10089, 824, 2994, -293, 71, 10167, -457,
- 711, -964, -2128, 2530, 160, -2558, 2451, 1654,
- -3828, 1560, 879, -1023, -8354, 851, -77, -112,
- 19572, 2010, -1077, -1329, -1282, 1277, 252, -5622,
- 4617, 58, -2315, -459, -1249, 92, 708, -737,
- -3323, 182, 1557, -657, 546, -447, 19117, 1645,
- -336, -26, -2041, 5926, 4746, -1866, 3922, 2798,
- 5320, 7, 470, 842, 229, -567, 742, -3306,
- 659, -871, -226, -2593, -1003, -1373, 595, -768,
- 20658, 944, 1228, 279, -1531, -618, 361, -4019,
- -343, -351, 7143, 293, 92, -2713, -269, -30,
- -332, 4093, 216, 239, -563, 1943, -944, -2268,
- 70, -209, 440, 1493, -446, 491, -362, 25,
- -331, 433, -1585, 173, 1126, -3614, -234, -2649,
- 1181, -641, -160, 3727, -841, -2134, -1396, -5758,
- -14, 364, -4651, 1151, 194, -5234, 5878, -1348,
- -1388, -233, 3810, -860, 9479, -24, -6616, 1387,
- -455, 447, -224, -2997, 12, 3502, -73, 470,
- -9170, 1677, -740, -592, -1638, 675, -93, -17842,
- 1750, -847, 993, -2393, -49, -2029, 1940, 588,
- 475, -3467, 55, 5087, 2989, 380, 915, -2782,
- 2418, 11303, 1098, 1009, 1372, -5780, -303, 1451,
- 972, -7433, -571, 1661, 64, 10265, 1541, -50,
- -964, -738, -253, -3105, -695, -546, -775, -18971,
- -3094, -2379, 738, 1625, 623, 1073, 782, 723,
- -3417, -578, -189, 4108, 1115, -1222, -9102, -4736,
- 347, 946, 322, -3699, 193, -15139, 367, 969,
- -788, -694, -620, -26, -16, 4, -478, 20792,
- -1175, -231, 2566, -1270, 162, 181, -1451, -5370,
- -2429, -8910, -3794, -5807, -1655, 248, 4432, 1393,
- -2451, -2706, -744, 687, 842, -1281, 2960, -2348,
- 153, -1671, -1433, -1250, -1096, 2501, -5393, 4266,
- -1098, 880, -1215, 817, -443, 10053, 705, -689,
- -2679, -1205, -3302, -809, -918, -1005, 124, -329,
- 108, -52, -5305, -419, 128, -8137, 1427, 387,
- -235, -2582, 190, -173, -1031, 2672, -985, 3309,
- -5927, 7327, -8463, -2, 6035, 743, 552, -14,
- -580, -68, -11886, 476, 61, 1172, -529, -988,
- 871, -776, -332, 20870, 384, 7795, -10830, 723,
- 1690, -519, 962, 663, 1300, -465, 47, -3578,
- 56, -8131, 2041, -8524, -1303, 6349, 1903, -6726,
- 1156, -224, 1286, -2355, -3415, 985, -502, -2474,
- 49, -2789, -3616, -1707, 3363, -140, 1702, -1919,
--11518, -404, 62, -6933, -1187, 10830, 132, 284,
- -639, 1349, 2367, -311, -626, 745, 5660, -152,
- -121, -5236, -481, 5889, -1263, -8443, -33, 936,
- 423, -117, 111, -1055, -103, -321, 1286, -611,
- 777, 827, 422, -162, -6767, -241, 289, -441,
- -1344, 2706, -1260, -4649, -847, -16107, -263, -1826,
- -521, -760, 942, 309, -2692, -4835, -853, -806,
- -276, -322, 5647, 1219, -433, -346, -1171, -1028,
- 191, -406, 444, 33, 272, 3502, 475, -2178,
- 1915, -290, -1037, 833, -695, -121, 415, 556,
- 1025, -2268, 334, 2847, -1768, -389, -14034, -3878,
- 836, 4605, -1985, -359, 1478, -149, 823, -926,
- -828, 135, 469, -645, -328, -94, -178, 2820,
- 781, -2361, -5778, 1312, 3918, -1, -3654, -942,
- -2495, 615, 210, -17006, -396, -445, 382, 563,
- -1738, 95, -9107, 4869, 348, 527, 5688, -145,
- -1195, -2367, -749, -187, 6697, 27, 347, 12571,
- -64, -427, 3765, 824, -1216, -1126, 5997, 586,
- 110, -294, -240, 1646, -186, 1360, 413, -6459,
- -1535, -3208, -520, -621, 8613, 1098, -19, -199,
--11446, -657, -353, 906, 678, -19375, -126, 1688,
- 644, 1231, -2151, -742, 320, -68, -12426, -2750,
- 1483, -1603, -2639, 3028, 2662, -140, 5405, -917,
- -407, 207, 9392, -569, 931, -124, -82, 6370,
- 477, -12264, 1093, 3427, -732, -50, 232, -67,
- 609, 1615, -463, 583, 1808, 1499, -509, -24431,
- 231, -72, -192, -333, -7554, -342, -9036, -304,
- 136, -15450, 1333, -1147, -1488, -1440, 75, 63,
- 747, 297, -251, 30, -301, -1810, -86, 544,
--10446, 1300, 10468, 218, -2471, 1982, 423, 3046,
- -1112, -657, -104, 10671, -46, -10953, -6205, -1275,
- 1972, 937, -75, -330, -529, -2581, 1510, -1881,
- -1372, -1725, 14541, -560, -884, 946, -307, -5031,
- 7798, -190, 720, 1525, 29, 868, 1238, 372,
- -462, 2467, -2661, 2721, -1514, 723, -2782, -494,
- 240, -7147, 587, 751, 1613, 11054, 1074, 275,
- 972, -970, 27, -75, 24, -9, 163, 88,
- 21, 87, -78, -743, -128, -2336, -235, -743,
- -3918, -333, 1088, -195, -166, 782, -119, -3263,
- 604, 2155, -258, -1282, -129, 43, -5124, -472,
- 685, -14243, -1294, -99, -1922, -284, -422, -1112,
- -3194, -1977, 1448, -419, -7172, 20, -70, 2102,
- 0, 278, 1882, -10005, 1612, 6020, 71, -141,
- 1027, -43, -864, -448, -21257, -336, -2090, 5207,
- 674, 722, 1030, 1367, 1963, 6057, 984, -1087,
- -3690, 47, -61, 104, -81, 895, 22, 728,
- -191, 3219, 5228, -27, -802, 1438, -9026, -1352,
- -581, 912, -664, -23, -522, -912, 178, -603,
- 571, 574, 406, 564, 175, -405, -2965, -1072,
- 1749, -957, -402, 9431, 1649, -409, 291, 5765,
- 808, 6754, 727, -37, -254, 1530, 213, 3253,
- 357, 371, 45, -1276, -12432, 2799, -1924, -176,
- -1107, -183, 198, 3662, 20, -1166, 2507, -3484
-},
-
-.shape22_2 = {
- 1688, -307, -590, 971, -3616, -1632, -218, 1861,
- -1479, -367, -6584, 487, -951, 10808, -232, 444,
- 89, -1216, -1577, 1283, 249, -3, -3646, 2205,
- -1116, 2630, 2110, 3193, 270, -189, 78, -826,
- 1010, -10520, -370, 1234, -5604, -262, 1277, 1440,
- 2225, 2466, 305, 2469, -740, 120, 3184, 2125,
- 1185, -3230, 1597, -1670, -8283, -9857, -129, 8932,
- -1355, 8755, 707, -256, -135, 423, 1543, 1782,
- -4875, 403, 373, 1570, -183, 782, -9617, -2539,
- 1090, 523, 6929, -1226, 10329, -278, -999, -260,
- -1810, 666, -463, -6100, 2040, 256, 532, -1475,
- 383, 13137, -10953, -2226, -1243, 1584, -2348, -809,
- 3602, -816, 194, 480, 84, 2297, 344, -5181,
- -6243, -2616, 2093, 7112, -2373, -1346, 291, -372,
- -863, -16911, -1878, 378, -826, 579, 737, -468,
- -2288, 264, 634, 108, -254, 4717, -1286, 2885,
- 986, -4944, -98, 2007, 991, -2252, -2887, -6141,
- -605, -10474, 896, 6, 235, -407, -70, 478,
- -8392, -10870, 575, -672, 103, 320, -179, -229,
- 445, -380, 1124, 3271, -1327, -275, -239, -10381,
- -9102, 1361, 96, -1255, -277, 9316, -415, -2258,
- 8992, -117, 1625, -704, -980, 752, 9133, -8792,
- -423, -272, -865, -2285, 443, -2014, -2592, 3180,
- 1198, 2570, 3360, -7090, 3311, 697, 2229, 46,
- -472, 6984, -140, -780, 10391, -1078, 48, -564,
- -5073, 1576, -826, -483, 952, 1099, -11536, -652,
- 375, 440, -7319, 2646, -2089, 2804, 3795, -6704,
- 251, 811, -1224, -1976, -4943, -6671, 780, -2856,
- -7907, 2447, 3755, -135, 1127, 328, 553, 3450,
- 351, -5054, -5, 1077, 109, -254, -391, -511,
- 404, -61, 510, 395, -6044, -7454, 364, -575,
- 65, -410, -1921, -248, 128, 311, 17131, -2135,
- -563, -884, 2356, -3951, -1176, -16695, -1534, 1977,
- 626, 2478, 1554, -1070, 38, -551, 370, -11053,
- -331, 1062, -1385, -1681, 1028, 3350, 239, -76,
- -156, 49, 397, 7060, -2834, -6527, 22, 1920,
- -951, 356, -7674, -8903, -120, 317, -303, 160,
- 530, 4611, 1083, 514, -12207, -283, 1413, -848,
- -645, -432, 0, -192, 4780, -3485, -1192, -10574,
- 1274, -3057, 475, -188, 183, 7865, -11214, -268,
- 491, 1422, -28, 149, 515, -1651, 670, -450,
- -958, -4288, 567, -182, 668, 4069, -213, -1176,
- 148, 8854, -151, 474, 599, 1297, 237, -19186,
- 2993, -482, -591, -1322, 25, -628, -828, -203,
- -1500, 5519, -84, 723, -1137, 1217, 13045, -707,
- -372, -200, -4142, -790, 188, -6760, -8288, 766,
- 366, 444, -517, -2679, -1470, -61, 161, -3734,
- 3053, 2012, 439, 627, 524, 5538, 549, -473,
- -2244, 8399, -6395, 5811, 851, 58, 11376, -6,
- -337, -689, -1510, -690, -388, -3587, 2665, 3371,
- -1850, -953, -513, 581, -10296, 548, 1092, 565,
- 18045, 215, -1486, -1270, 450, -880, 407, -6547,
- 8393, 206, -515, -1565, -219, -1872, 1479, 382,
- -569, -5002, -1247, -45, -740, -1791, 17177, -1210,
- 761, 132, -1627, 4970, 5563, 722, 5614, 430,
- 5659, 139, 1193, 1513, 1144, -1319, 561, -5145,
- 1010, 199, 656, -3958, 3544, -1758, 810, -1578,
- 15976, -139, -1035, -416, -543, -418, 2824, -6541,
- 94, -673, 11741, 426, -15, -5280, 780, 1795,
- -4616, 8192, -297, -206, 883, 2369, -395, -4266,
- -3120, -199, 985, 1240, 352, 232, -170, 176,
- 413, -495, -1399, 754, 618, -6103, -179, -2546,
- 965, -1362, -806, 838, -3912, -1346, -3135, -937,
- 219, 307, -3509, 1210, 2381, -7923, 6358, -885,
- 2902, 284, 2560, 1789, 6878, 6, -4418, -2206,
- -1091, 1840, -118, -2659, 1008, 2192, 1651, 1363,
- -7772, 1252, -1200, 133, -757, 501, -98, -17197,
- 98, -543, 1743, 621, -809, -1950, -793, 1168,
- -743, -7124, 166, 7875, -4466, 356, -1430, -467,
- 8589, 9931, 520, -866, 1945, -599, -434, 113,
- 589, -3456, 597, 6076, 1114, 9660, 1532, 2073,
- -138, -721, -1030, -1309, 625, -4040, 1211, -18836,
- -3963, -4468, 197, 600, -1004, -816, -560, -476,
- -2160, -2, 26, 8162, 1057, -178, -11739, -1882,
- 1000, -227, 109, -1852, -1163, -17143, 140, -718,
- -1150, 33, 1397, -45, -205, 153, -1494, 20509,
- -51, -904, -599, 1915, 884, 504, -1819, -4487,
- 1252, -1259, -2200, -5601, -448, -686, 5778, 873,
- -4282, -533, 295, -450, 1422, 2393, 3267, -3911,
- 249, -3605, -3190, -1096, -2422, 274, -1918, 4070,
- -206, -432, 1919, -645, -275, 12954, 311, 1479,
- -2664, -852, -4809, 1102, -375, 20, 1659, -1179,
- 1199, 44, -5590, -1112, -566, -11369, -125, -871,
- 158, 1208, 265, -519, -405, 2439, -1129, 1827,
- -9461, 8548, -1606, 380, 4924, 662, 1314, -391,
- -2024, 827, -13381, -198, -142, 1600, 3329, 125,
- -672, -220, 557, 18642, 60, 7296, -10472, -712,
- 1188, 808, 64, 479, 555, 264, 394, -611,
- -810, -7943, -235, -6889, -1575, 1320, -381, -7414,
- 1740, -744, 369, -626, -6899, -2144, -593, 668,
- -351, -3756, -5143, -1814, 806, -475, 588, -507,
- -9088, -629, 154, -6945, -1105, 10658, -435, 384,
- -757, 1183, 3806, -747, -378, 535, 10224, 626,
- -866, -1931, -1484, 5818, -750, -9628, -250, 589,
- -653, -198, 104, -934, 1207, 46, 960, -1032,
- 4236, 4471, -2896, 1551, -7714, -1921, 746, -671,
- 5114, 5482, -522, -3344, -1905, -9220, -663, -1355,
- -611, 65, 1368, 628, -1276, -6780, -2623, -661,
- -117, -437, 5507, 3205, 928, 537, -9487, 80,
- -102, -538, -277, 863, -1421, 6054, 1227, 696,
- 3582, -508, -1757, 145, -1705, -1201, 4157, -3314,
- 2291, -834, 821, 552, -724, 513, -9730, -8944,
- 1913, 501, -216, 716, 2766, -823, 2535, 314,
- 1774, -3372, 235, 244, -1216, -710, 689, 6736,
- -52, 218, -8382, -444, 920, 569, -4890, -2050,
- -612, 1708, -481, -15500, -2878, -691, 538, -125,
- -81, -862, -10094, 12050, -1392, -326, 133, 61,
- -50, 715, -6662, -673, 10745, -596, 44, 3906,
- 247, -745, 4950, -210, 497, -1875, 8197, 2141,
- 1454, -23, -1480, 2184, -804, 5515, -1311, -8893,
- -2880, -3606, -282, -116, 8084, 618, -403, 1106,
--14405, 1159, 229, 742, -184, -19445, -329, -747,
- -1240, 1487, -1670, -839, -77, -882, -10986, -2851,
- -24, -747, -3615, 1939, 1389, 132, 5367, 1355,
- 408, -1272, 11388, 153, 2708, -1503, 169, 7357,
- 51, -13586, -404, -304, 626, 163, -1814, -515,
- 445, 589, -1194, 770, 555, 246, -165, -21192,
- 184, -265, -1116, -485, -8107, -1992, -10805, -880,
- -1455, -15154, 2312, -1712, -11, -1899, -400, -2,
- 314, -318, -280, -658, -1066, -2584, 1027, 801,
--11960, 1519, 8873, 465, -3229, 1801, -348, 749,
- 7, 1079, -2051, 11521, -831, -13425, -6315, -1135,
- 1088, 1056, -46, -1006, 374, -5065, 1163, -402,
- -50, -1459, 9586, 514, -1439, -638, -155, -5289,
- 8043, -612, 739, 1084, -60, 891, 786, -6,
- -1078, 2097, -5333, 3497, 23, -913, 1303, 957,
- -35, -6418, -146, -971, 2738, 9695, -1722, -2002,
- 905, -1749, -917, 122, 379, -325, -455, 230,
- 825, -137, -335, -96, -160, 390, 731, -2621,
- -5889, -3949, 5138, 839, -1190, -66, 961, -4600,
- 2345, 1607, -2448, -6653, -592, -106, -7619, -794,
- -1186, -12587, -11, -2224, -225, -2903, 534, 1355,
- -7002, 314, 494, 1950, -8545, -2531, -2438, -77,
- 886, -1851, 944, -10156, 3003, 1846, 1919, 2019,
- 471, 451, -436, -1012, -20121, 275, 98, 1776,
- 578, 96, -16, 1156, 3689, 7, -207, 920,
- 105, -58, -175, 163, 697, -407, -61, 1261,
- 1297, 5061, 5326, -1126, 516, 1208, -11108, 441,
- 7, -899, -19, -368, 438, -1911, 602, 716,
- 313, 853, 1448, -817, -1453, 1384, -4371, 1043,
- 1884, 1619, 2196, 10075, -1548, -1201, -796, 5228,
- 2657, 8244, -605, 422, -693, 3171, 657, 5438,
- -171, 633, 1579, -1718, -12265, 1083, -976, -293,
- -3802, -306, -668, 7818, -1340, -402, 2231, -4472
-},
-
-.shape44 = {
- -40, -282, 1366, -1173, -3484, 355, -1078, 3800,
- 4386, -35, -4192, 523, 1291, 678, 156, 2272,
- -1043, 1075, -1849, -314, -522, 392, 2098, -79,
- 473, -275, 2, 6398, 451, 94, 173, -431,
- 1115, -10788, 35, 1823, -3380, -97, -98, -350,
- -23, -1264, -308, 8948, -695, -79, 3520, 308,
- 340, -362, -547, 1207, -1182, -10392, -148, 3580,
- 481, -425, 862, 4894, 736, -152, -626, 23,
- -5853, 39, -143, 418, -103, -1457, -12826, -122,
- 283, -225, 10561, -153, 8872, -806, -51, 93,
- 420, -209, 345, -7661, -732, -48, 479, -225,
- 276, 13385, -12578, -1440, -265, -274, 1105, -3376,
- -691, -579, -972, 300, 349, 362, 722, -472,
- 185, 814, 14, 4746, 761, -336, 1691, 888,
- -1669, -18717, 827, -2605, 921, 155, 68, 112,
- -3032, -287, 414, -86, -62, -213, -106, 807,
- -619, 598, -178, 3104, -481, -1553, 1250, -8363,
- -686, -9608, 116, -47, 321, -89, 939, -35,
- -7995, -10159, -526, 145, 363, 2170, 1077, -1223,
- -738, 120, -408, -390, -80, -404, -1607, -10187,
- -6432, 961, 94, -1459, 489, 6641, 372, 1007,
- 5958, -834, 222, 51, 282, -1005, 4473, -8841,
- -73, -477, -557, 121, -165, -1195, 438, 139,
- -190, -4205, -4278, -4617, -7592, 40, -422, -459,
- 594, 7331, 164, 297, 2631, -9075, -78, 372,
- -6213, -1053, 182, -71, -386, -604, -11720, 552,
- -617, 413, 1292, 4, -485, 1162, 6051, -5168,
- -181, 1024, -630, -275, -4067, -8627, 1386, 970,
- -423, 2973, 2360, 363, -274, 410, 48, 768,
- 2958, -427, 86, 64, -128, -273, -182, -292,
- 868, 463, 73, -116, -6509, -5295, -37, 691,
- 344, -120, 168, 419, 494, -1175, 18896, -135,
- -376, -218, -453, -916, -1040, -22179, -846, -1005,
- 264, 159, 597, -952, -825, 393, -328, -14694,
- 371, -263, 740, 38, -1001, 1289, -668, 187,
- -155, 143, 683, 7133, -563, -8383, -291, 176,
- 75, 613, -6965, -11480, 324, -490, 586, 416,
- 762, 5777, 64, -47, -4124, -1196, -113, 701,
- -211, 2335, 130, 684, 7278, -158, -213, 297,
- 10845, -1439, -465, 17, -792, 6499, -10187, -444,
- -1416, 482, 636, 1472, 752, 157, -334, -3230,
- -19, -6747, 660, -3082, 4057, 6801, -19, 635,
- 19, 9807, 526, 126, 444, -190, -418, -26754,
- -202, 243, 597, 10, 345, 814, -330, 160,
- 344, 3986, 470, 459, 2387, -549, 11889, -1837,
- -30, 2608, 615, 2301, -771, -1589, -6935, 1321,
- 4287, 295, -558, -1503, -611, 2104, 411, -218,
- 1145, -426, 58, -102, 13, 7499, 476, -4032,
- -2237, -2658, -1943, 5268, 1039, 389, 7091, -22,
- 156, -186, 2432, -878, 305, -1726, 3209, 361,
- -1030, 505, 618, -262, -1877, 268, 757, 24,
- 24306, 102, 973, 142, -953, -1199, 116, -255,
- 5370, -347, -365, 937, -6939, -1189, -760, 531,
- -1759, -705, -557, -620, 1151, 250, 21629, -1532,
- -128, 1421, -211, 592, 5126, 197, -716, 1113,
- 5844, -266, -12, -813, 85, 994, -2106, -3915,
- 1402, 533, 521, -883, 87, -386, -2, -4350,
- 19790, -180, -363, 60, 101, -1717, 119, -381,
- 100, -565, 3264, 3052, 200, -7319, 26, 347,
- -482, 10609, -766, 526, -623, 3495, 339, -4406,
- -59, -213, 686, -603, 133, 99, 48, 1716,
- -1214, 1397, -2396, -384, -901, -3750, -660, -4314,
- 313, 192, 292, 259, -644, 176, 2099, 7961,
- -29, 642, -2970, 1792, -61, -4348, 578, 1867,
- -1868, 32, 5262, 137, 6109, 443, -176, 351,
- 400, 1874, -175, -4065, 697, 292, -744, 121,
- -5134, 6996, -198, 628, 1073, -599, -116, -17900,
- 647, -1049, -663, 1427, -94, 721, 311, 337,
- 1376, -2784, 3947, 1342, 1577, -406, -260, -10228,
- 109, 2358, 2437, 346, 1261, -308, -2094, 1682,
- 144, -675, 183, 428, -950, 1249, -1546, 33,
- -254, 681, -1264, -964, -310, 838, 100, -21952,
- -1484, -1564, 339, 298, 67, -338, 89, 709,
- 53, 258, -359, 2803, 1553, -312, -7993, -1627,
- 1189, 476, -123, 336, -767, -18522, 589, 942,
- -645, -381, -1913, -582, 55, -876, -509, 25143,
- 690, -787, -1136, 114, 162, 342, -231, -8742,
- 99, -646, -474, -1384, -110, -98, 8634, -14,
- -9676, -312, 358, 496, -676, -97, 1904, -2124,
- -66, -1868, 502, -513, -3244, 2079, -1476, 5440,
- -40, -381, 500, -238, -471, 12160, 248, -1005,
- -2886, 173, -3369, -355, -256, -117, -474, -1282,
- -355, 130, -4833, 31, -232, -12931, -826, 322,
- 839, 1537, 73, 226, -1888, -483, -2848, -190,
- 1271, 3597, -4514, -38, 6093, 347, -68, -415,
- -105, -1664, -11461, -110, -399, 389, -511, 935,
- -424, -1708, -1026, 23239, 298, 7363, -9206, -566,
- 259, -412, -1213, 335, 614, 928, 972, -1919,
- -407, 509, 303, -13762, -524, 10360, 1318, -2758,
- 2350, -106, -119, -68, -6155, -255, -448, -34,
- -64, -4382, 47, 635, -339, 406, -447, -445,
--10592, 233, 160, -5515, -1333, 6755, -952, 172,
- -1260, -294, 3480, -352, -231, 415, 482, -498,
- -191, -2034, 7934, 7997, -688, -9503, 376, -228,
- -500, 222, -1021, -407, 261, 179, 622, 1217,
- -443, -763, -508, -719, -4509, 91, 449, -283,
- 91, -39, 961, -10148, 1596, -9161, -327, 221,
- -470, 676, 12, 1416, 984, -10988, -5500, -189,
- -727, 226, 4691, 688, 759, 930, -6444, -114,
- -539, -526, -21, -1218, 650, 6088, 419, 6185,
- -1200, 84, -1232, -34, -107, 60, 2248, 450,
- 1187, 1264, -181, 857, 2235, -2859, -13483, -192,
- -586, -207, -5569, 503, 3376, 1243, -700, 2119,
- -2186, -296, 896, 299, 177, 184, 1375, 2498,
- 161, 579, -3683, 443, -21, -186, -3474, 238,
- 274, 277, -325, -8325, -223, 125, 191, 333,
- -345, -1391, -7372, 11389, -1055, 4066, -1098, 87,
- -203, 443, 363, -959, 15395, 4016, -254, 1611,
- -168, -1070, 2709, -768, 506, -1245, 5821, 2499,
- 1564, 27, 85, 1989, -1092, 150, -972, 660,
- -33, 687, 545, -1564, 720, -196, -52, -1751,
--25380, -1246, -615, 391, -512, -23289, 460, 360,
- -85, -723, -250, -163, -48, -921, -3988, 425,
- -1268, -1695, 3233, -1093, -1166, 198, 7602, 21,
- 354, 733, 12213, -347, 532, -427, 22, 2218,
- -578, -3382, -474, -625, 78, -4546, 863, -53,
- -357, -1529, 1014, 710, 1356, -430, -1633, -24823,
- 95, 26, 590, -591, -7833, -1355, -9771, -502,
- -907, -15433, 957, 463, 35, -496, 294, 2129,
- 1274, -160, -83, 531, -767, 285, 232, 5983,
- -6122, 1620, 4112, -239, -1733, -46, -1321, 467,
- 613, -3747, -2284, 13991, 373, -17357, -219, -80,
- -210, 1462, 37, -1692, 548, -5845, 420, 54,
- -350, -285, 1981, 262, -874, 2844, -435, -6305,
- 6449, 72, 631, -94, 96, -442, 1137, 89,
- 364, 3392, -3512, -387, 1055, 318, -1111, -6971,
- 344, -9105, -96, -9362, 190, -225, 370, 161,
- -73, -1830, 174, 48, -518, -3486, 137, -235,
- 810, 23, 80, -642, -35, -316, -269, -373,
- -2413, -933, 2525, 267, -508, -200, 422, -3470,
- -1273, 640, -1956, 139, 394, -1043, -11008, -158,
- -1089, -2023, 202, -979, -744, -159, -392, -37,
- -1679, 2183, 1365, -2883, -4752, -2255, 109, 1660,
- -613, -511, 1284, -7331, 947, 7009, -2072, -321,
- -936, -551, -875, 160, -27027, 654, 265, 164,
- 376, 726, -149, 2813, -94, 5728, 702, -1118,
- -2555, 217, -186, -107, 146, -83, -62, -196,
- 708, 146, 3729, -416, 212, -163, -7861, 347,
- 83, -1079, -994, 271, -1054, -1647, 139, -20,
- 354, 1298, -3420, 1130, 161, 475, -3913, 468,
- 23, 285, -1699, 8234, -947, 222, 260, 4276,
- -341, 6387, 21, 490, -1908, -1654, -60, 2471,
- 733, -135, 109, -1136, -14756, 4922, 1165, 149,
- -3976, -66, -594, 6181, -110, 292, 1129, -591
-},
-
-.lsp08 = {
- 0.2702, 0.5096, 0.6437, 0.7672, 0.9639, 1.0696, 1.2625, 1.5789,
- 1.9285, 2.2383, 2.5129, 2.8470, 0.1740, 0.3677, 0.6082, 0.8387,
- 1.1084, 1.3721, 1.6362, 1.8733, 2.0640, 2.3442, 2.6087, 2.8548,
- 0.1536, 0.3279, 0.5143, 0.6859, 0.9763, 1.2744, 1.5605, 1.8566,
- 2.1007, 2.3450, 2.6075, 2.8850, 0.2075, 0.4533, 0.7709, 1.0377,
- 1.2953, 1.5132, 1.7826, 2.0351, 2.2590, 2.4996, 2.6795, 2.8748,
- 0.1393, 0.2453, 0.3754, 0.5453, 0.8148, 1.1289, 1.4389, 1.7592,
- 2.0353, 2.3215, 2.5934, 2.8588, 0.1250, 0.3627, 0.7613, 1.1380,
- 1.4163, 1.5565, 1.6920, 1.8130, 1.8678, 2.0427, 2.4318, 2.8544,
- 0.2256, 0.4223, 0.6452, 0.8599, 1.0673, 1.3118, 1.5486, 1.8366,
- 2.0759, 2.3026, 2.5284, 2.8030, 0.2304, 0.4404, 0.6891, 0.8964,
- 1.1510, 1.4202, 1.6483, 1.8580, 2.1181, 2.3686, 2.6078, 2.9128,
- 0.2230, 0.3816, 0.5520, 0.6062, 0.7909, 1.0988, 1.4330, 1.7846,
- 2.0713, 2.3457, 2.6048, 2.8708, 0.2447, 0.5800, 0.8249, 0.9905,
- 1.1721, 1.3990, 1.6694, 1.9064, 2.1307, 2.4255, 2.6815, 2.9117,
- 0.1974, 0.3812, 0.5802, 0.7759, 0.9280, 1.1547, 1.4170, 1.6369,
- 1.8890, 2.2587, 2.5626, 2.8239, 0.1209, 0.2510, 0.4841, 0.8048,
- 1.1197, 1.3563, 1.6073, 1.8926, 2.1350, 2.3669, 2.6291, 2.8985,
- 0.2352, 0.4347, 0.6582, 0.8178, 0.9548, 1.1654, 1.4942, 1.8812,
- 2.1703, 2.3779, 2.6412, 2.8871, 0.2091, 0.4084, 0.6730, 0.9151,
- 1.1259, 1.3262, 1.5937, 1.8129, 2.0237, 2.3317, 2.5778, 2.8620,
- 0.1167, 0.2406, 0.4520, 0.7298, 0.9848, 1.2448, 1.5137, 1.7874,
- 2.0280, 2.3020, 2.5914, 2.8794, 0.3003, 0.4966, 0.6520, 0.8505,
- 1.1600, 1.3981, 1.5805, 1.8346, 2.0757, 2.3102, 2.5760, 2.8499,
- 0.2451, 0.4163, 0.5960, 0.7805, 0.9507, 1.2438, 1.5587, 1.8581,
- 2.0735, 2.3198, 2.5704, 2.8220, 0.3112, 0.5517, 0.7032, 0.8528,
- 1.1489, 1.4257, 1.6848, 1.9388, 2.1577, 2.4265, 2.6678, 2.9051,
- 0.2249, 0.3897, 0.5559, 0.7473, 1.0158, 1.3581, 1.6914, 1.9930,
- 2.1843, 2.3534, 2.5512, 2.8065, 0.2600, 0.4574, 0.7349, 0.9691,
- 1.1696, 1.3848, 1.6335, 1.9021, 2.1174, 2.3481, 2.5902, 2.8390,
- 0.2246, 0.3372, 0.4560, 0.5249, 0.7056, 1.0273, 1.3810, 1.7132,
- 1.9819, 2.2574, 2.5410, 2.8491, 0.1419, 0.4834, 0.8835, 1.1453,
- 1.2839, 1.4224, 1.5593, 1.7877, 2.1285, 2.4070, 2.6043, 2.8511,
- 0.1886, 0.3677, 0.5617, 0.8099, 1.1277, 1.3841, 1.5804, 1.8136,
- 2.0307, 2.2805, 2.5399, 2.8322, 0.2351, 0.4151, 0.6675, 0.8713,
- 1.0464, 1.3292, 1.6586, 1.9281, 2.1355, 2.3495, 2.6222, 2.8782,
- 0.2700, 0.4489, 0.6206, 0.7121, 0.7737, 0.9848, 1.3658, 1.7433,
- 2.0139, 2.2243, 2.4806, 2.8175, 0.2479, 0.4425, 0.6490, 0.8745,
- 1.1161, 1.3849, 1.6773, 1.9566, 2.1491, 2.3624, 2.5685, 2.8114,
- 0.2035, 0.3701, 0.5567, 0.7953, 1.0082, 1.2758, 1.5373, 1.7822,
- 2.0175, 2.2601, 2.4759, 2.7771, 0.1856, 0.3461, 0.5998, 0.9041,
- 1.2383, 1.4612, 1.6667, 1.9305, 2.1617, 2.4107, 2.6477, 2.8656,
- 0.2107, 0.3715, 0.5289, 0.6651, 0.8420, 1.1168, 1.4401, 1.7230,
- 1.9901, 2.2687, 2.5452, 2.8655, 0.1218, 0.2999, 0.6348, 0.9482,
- 1.2745, 1.5876, 1.9129, 2.2348, 2.4020, 2.4922, 2.6351, 2.8357,
- 0.1617, 0.3483, 0.5869, 0.8163, 1.0366, 1.2344, 1.4609, 1.7029,
- 1.9476, 2.2337, 2.5258, 2.8442, 0.2505, 0.4894, 0.7510, 0.9152,
- 1.0845, 1.3657, 1.6528, 1.8346, 2.0160, 2.2811, 2.5338, 2.8136,
- 0.0947, 0.1158, 0.0578, -0.0337, -0.0066, 0.0104, -0.0447, -0.0505,
--0.0778, -0.0293, 0.0251, -0.0143, 0.0349, -0.0227, -0.0909, 0.0523,
- 0.0325, -0.0410, -0.1045, -0.0899, -0.0009, 0.0075, -0.0575, -0.0855,
--0.0129, 0.0575, 0.0597, 0.0391, 0.0371, -0.0184, -0.0083, 0.0287,
- 0.0143, 0.0167, 0.0120, -0.0168, 0.0452, 0.0223, -0.0352, 0.0119,
--0.0496, -0.0965, -0.0661, -0.0072, 0.1099, 0.0843, -0.0087, -0.0478,
--0.0128, -0.0120, -0.0004, 0.0731, 0.1047, 0.0630, 0.0196, -0.0103,
--0.0399, -0.0986, -0.0912, -0.0390, -0.0247, -0.0694, -0.0749, -0.0066,
- 0.0223, 0.0634, 0.0343, -0.0134, 0.0727, 0.0241, 0.0066, 0.0437,
- 0.0610, 0.0364, 0.0248, -0.0358, -0.0686, -0.0104, 0.0426, 0.0088,
--0.0137, -0.0165, 0.0671, 0.0815, -0.0863, -0.0644, -0.0088, 0.0023,
- 0.0482, 0.1174, 0.1270, 0.0594, 0.0165, 0.0949, 0.1098, 0.0137,
- 0.4951, 0.4999, 0.4958, 0.4907, 0.4984, 0.4965, 0.4958, 0.4996,
- 0.4987, 0.4958, 0.4986, 0.4977, 0.2841, 0.2186, 0.1474, 0.1687,
- 0.2217, 0.2632, 0.2706, 0.2624, 0.2162, 0.2453, 0.2460, 0.2531
-},
-
-.lsp11 = {
- 0.1103, 0.3862, 0.6863, 0.8447, 0.9231, 1.0261, 1.1248, 1.4057,
- 1.6621, 1.8010, 1.8692, 2.0704, 2.3490, 2.6060, 2.7539, 2.8977,
- 0.1273, 0.2407, 0.3812, 0.6004, 0.7767, 0.9383, 1.1344, 1.3351,
- 1.5233, 1.7262, 1.9466, 2.1739, 2.3495, 2.5162, 2.7164, 2.9202,
- 0.2010, 0.3330, 0.4488, 0.6465, 0.8046, 0.9889, 1.1479, 1.2964,
- 1.4770, 1.6606, 1.8789, 2.1155, 2.3287, 2.5199, 2.7101, 2.9119,
- 0.1168, 0.2197, 0.3279, 0.4691, 0.6268, 0.8251, 1.0533, 1.2714,
- 1.4712, 1.6762, 1.8831, 2.1114, 2.3230, 2.5297, 2.7365, 2.9270,
- 0.1405, 0.3109, 0.4986, 0.6891, 0.8634, 1.0583, 1.2594, 1.4349,
- 1.6232, 1.8116, 1.9905, 2.1935, 2.3799, 2.5656, 2.7661, 2.9486,
- 0.1703, 0.3057, 0.4403, 0.5225, 0.5969, 0.8110, 1.0729, 1.3215,
- 1.5407, 1.7381, 1.9477, 2.1680, 2.3586, 2.5612, 2.7630, 2.9410,
- 0.1128, 0.2628, 0.4523, 0.6495, 0.8176, 0.9816, 1.1746, 1.3710,
- 1.5568, 1.7518, 1.9497, 2.1452, 2.3346, 2.5389, 2.7362, 2.9264,
- 0.1809, 0.3287, 0.5205, 0.7264, 0.9298, 1.1217, 1.2970, 1.4894,
- 1.6874, 1.8493, 2.0576, 2.2382, 2.4097, 2.6041, 2.7796, 2.9389,
- 0.2502, 0.4709, 0.6892, 0.8346, 0.9209, 1.0455, 1.2399, 1.4616,
- 1.6463, 1.8380, 2.0475, 2.2397, 2.4665, 2.6550, 2.7701, 2.8895,
- 0.1040, 0.2340, 0.3964, 0.5740, 0.7764, 0.9941, 1.2000, 1.4014,
- 1.6024, 1.7974, 1.9939, 2.1959, 2.3783, 2.5663, 2.7613, 2.9484,
- 0.1912, 0.3393, 0.4743, 0.6313, 0.8014, 0.9879, 1.1855, 1.3922,
- 1.5678, 1.7289, 1.9271, 2.1165, 2.3089, 2.5414, 2.7448, 2.9269,
- 0.0965, 0.2025, 0.3398, 0.4990, 0.6934, 0.9386, 1.1730, 1.3766,
- 1.5783, 1.7783, 1.9790, 2.1831, 2.3670, 2.5578, 2.7641, 2.9516,
- 0.2126, 0.3652, 0.5545, 0.7170, 0.8674, 1.0640, 1.2558, 1.4061,
- 1.5904, 1.8095, 1.9760, 2.1505, 2.3549, 2.5575, 2.7023, 2.8877,
- 0.1827, 0.3426, 0.4894, 0.6488, 0.7960, 0.9535, 1.1217, 1.2798,
- 1.4566, 1.6453, 1.8044, 2.0042, 2.2379, 2.4611, 2.6697, 2.8966,
- 0.2034, 0.3822, 0.5231, 0.6960, 0.9200, 1.0394, 1.1616, 1.3772,
- 1.5493, 1.7330, 1.9646, 2.1233, 2.3334, 2.5361, 2.7087, 2.9470,
- 0.1050, 0.2060, 0.3705, 0.5998, 0.8337, 1.0577, 1.2559, 1.4327,
- 1.6334, 1.8165, 1.9853, 2.2058, 2.4063, 2.5818, 2.7625, 2.9458,
- 0.1419, 0.4053, 0.6660, 0.8911, 1.0405, 1.1547, 1.2506, 1.3926,
- 1.5669, 1.7527, 1.9694, 2.2054, 2.3889, 2.5743, 2.7586, 2.9174,
- 0.1514, 0.2825, 0.4309, 0.5772, 0.7470, 0.9703, 1.1462, 1.3316,
- 1.5321, 1.7259, 1.9282, 2.1266, 2.3106, 2.5064, 2.7067, 2.9094,
- 0.1693, 0.3156, 0.4878, 0.6635, 0.8206, 0.9569, 1.1154, 1.3064,
- 1.5109, 1.7184, 1.9179, 2.1036, 2.2763, 2.4820, 2.6949, 2.9105,
- 0.1432, 0.2718, 0.4241, 0.5564, 0.6939, 0.9011, 1.1582, 1.3948,
- 1.6181, 1.8024, 1.9814, 2.1740, 2.3459, 2.5456, 2.7491, 2.9307,
- 0.2294, 0.3857, 0.5590, 0.7434, 0.9189, 1.0941, 1.2740, 1.4456,
- 1.6178, 1.7994, 1.9689, 2.1644, 2.3525, 2.5385, 2.7468, 2.9405,
- 0.1667, 0.3109, 0.4612, 0.6032, 0.7375, 0.8866, 1.0840, 1.3053,
- 1.4982, 1.7044, 1.9146, 2.1117, 2.2942, 2.4983, 2.7084, 2.9132,
- 0.1810, 0.3205, 0.4696, 0.6231, 0.7641, 0.9959, 1.2427, 1.4361,
- 1.5889, 1.7544, 1.9083, 2.0733, 2.2457, 2.4461, 2.6793, 2.9098,
- 0.1164, 0.3753, 0.6068, 0.7503, 1.0100, 1.2131, 1.3793, 1.5302,
- 1.6300, 1.7950, 1.9057, 2.1031, 2.3830, 2.5745, 2.6949, 2.8779,
- 0.1571, 0.4378, 0.6735, 0.8312, 0.8944, 0.9818, 1.1622, 1.4094,
- 1.6423, 1.8066, 1.9258, 2.1838, 2.4363, 2.6279, 2.7358, 2.8790,
- 0.1398, 0.2686, 0.4248, 0.6156, 0.7870, 1.0035, 1.2012, 1.3689,
- 1.5363, 1.7398, 1.9604, 2.1619, 2.3345, 2.5097, 2.7271, 2.9368,
- 0.1913, 0.3338, 0.4987, 0.6446, 0.7852, 1.0163, 1.1886, 1.3610,
- 1.5379, 1.7230, 1.8880, 2.0862, 2.2960, 2.4928, 2.7122, 2.9151,
- 0.0908, 0.1752, 0.2899, 0.5365, 0.7761, 1.0100, 1.2124, 1.4060,
- 1.6019, 1.8010, 1.9774, 2.1905, 2.3733, 2.5623, 2.7660, 2.9565,
- 0.1773, 0.3179, 0.4925, 0.6864, 0.8452, 0.9897, 1.1860, 1.3722,
- 1.5515, 1.7658, 1.9802, 2.1819, 2.3620, 2.5442, 2.7250, 2.9220,
- 0.1286, 0.2341, 0.3689, 0.5364, 0.7176, 0.9350, 1.1083, 1.2943,
- 1.4974, 1.7059, 1.9047, 2.1145, 2.3242, 2.5361, 2.7453, 2.9329,
- 0.2273, 0.3834, 0.5565, 0.7192, 0.8431, 0.9962, 1.1763, 1.3571,
- 1.5774, 1.7419, 1.9202, 2.1131, 2.2919, 2.4898, 2.6895, 2.9180,
- 0.1775, 0.3058, 0.4274, 0.6023, 0.8151, 1.0734, 1.3211, 1.5178,
- 1.6706, 1.8154, 1.9686, 2.1537, 2.3461, 2.5276, 2.7181, 2.9121,
- 0.1653, 0.4304, 0.6361, 0.7824, 0.9183, 1.0452, 1.2071, 1.4077,
- 1.6206, 1.8299, 2.0089, 2.1948, 2.3900, 2.5982, 2.7844, 2.9487,
- 0.1492, 0.2609, 0.3820, 0.5485, 0.7243, 0.9319, 1.1538, 1.3579,
- 1.5266, 1.7002, 1.8873, 2.1016, 2.3175, 2.5221, 2.7241, 2.9243,
- 0.2074, 0.3781, 0.5209, 0.6869, 0.8577, 0.9875, 1.1849, 1.3568,
- 1.4907, 1.7335, 1.8902, 2.1224, 2.3099, 2.4918, 2.7023, 2.8765,
- 0.1359, 0.2254, 0.3286, 0.4432, 0.6586, 0.8964, 1.1125, 1.3523,
- 1.5626, 1.7579, 1.9846, 2.1905, 2.3548, 2.5542, 2.7663, 2.9346,
- 0.1430, 0.2966, 0.4685, 0.6493, 0.8315, 1.0304, 1.2220, 1.4082,
- 1.5995, 1.7888, 1.9774, 2.1737, 2.3607, 2.5577, 2.7558, 2.9405,
- 0.1477, 0.2694, 0.4056, 0.5626, 0.7051, 0.8647, 1.0491, 1.2488,
- 1.4814, 1.7072, 1.9150, 2.1147, 2.3038, 2.5144, 2.7184, 2.9202,
- 0.1690, 0.3033, 0.4580, 0.6686, 0.8536, 1.0293, 1.2124, 1.3998,
- 1.5718, 1.7607, 1.9580, 2.1245, 2.2971, 2.4762, 2.6896, 2.9177,
- 0.1092, 0.2779, 0.4853, 0.6880, 0.9011, 1.0953, 1.2752, 1.4618,
- 1.6623, 1.8484, 2.0264, 2.2152, 2.4017, 2.5835, 2.7671, 2.9436,
- 0.1497, 0.3637, 0.6014, 0.8032, 0.9963, 1.1835, 1.3741, 1.5698,
- 1.7382, 1.9094, 2.0710, 2.2392, 2.4082, 2.5926, 2.7762, 2.9536,
- 0.1434, 0.2492, 0.3966, 0.5934, 0.8033, 1.0657, 1.2796, 1.4276,
- 1.5745, 1.7833, 1.9288, 2.1247, 2.3543, 2.5412, 2.7049, 2.8872,
- 0.1612, 0.2926, 0.4574, 0.6387, 0.8265, 1.0180, 1.1808, 1.3526,
- 1.5564, 1.7536, 1.9187, 2.1192, 2.3149, 2.5006, 2.7101, 2.9217,
- 0.0828, 0.1863, 0.3235, 0.5050, 0.7250, 0.9867, 1.2093, 1.3941,
- 1.5980, 1.7932, 1.9809, 2.1894, 2.3918, 2.5773, 2.7540, 2.9329,
- 0.2001, 0.3655, 0.5290, 0.6761, 0.8027, 0.9972, 1.2090, 1.4255,
- 1.6085, 1.7825, 1.9804, 2.1681, 2.3457, 2.5325, 2.7319, 2.9196,
- 0.1505, 0.2767, 0.4254, 0.6054, 0.7821, 0.9567, 1.1294, 1.3080,
- 1.4984, 1.6954, 1.8666, 2.0736, 2.2875, 2.4969, 2.7072, 2.9163,
- 0.1589, 0.4151, 0.5749, 0.6651, 0.8061, 1.0470, 1.2616, 1.3690,
- 1.4985, 1.7808, 1.9825, 2.1068, 2.2751, 2.5448, 2.7133, 2.8689,
- 0.0916, 0.1846, 0.3788, 0.6329, 0.8774, 1.0687, 1.2653, 1.4561,
- 1.6573, 1.8449, 2.0402, 2.2254, 2.3968, 2.5861, 2.7792, 2.9508,
- 0.2282, 0.4159, 0.5834, 0.6899, 0.8108, 1.0321, 1.2795, 1.5262,
- 1.6936, 1.8469, 2.0922, 2.2607, 2.3795, 2.5301, 2.7386, 2.9530,
- 0.1651, 0.3004, 0.4555, 0.6179, 0.7891, 0.9584, 1.1372, 1.3707,
- 1.5951, 1.7880, 1.9434, 2.1465, 2.3311, 2.5081, 2.6977, 2.8970,
- 0.1279, 0.3828, 0.6330, 0.8323, 0.9652, 1.1175, 1.2319, 1.3511,
- 1.5115, 1.6392, 1.7835, 1.9558, 2.2008, 2.4635, 2.6910, 2.9058,
- 0.1193, 0.2185, 0.3521, 0.5311, 0.7378, 0.9239, 1.1105, 1.3217,
- 1.5362, 1.7504, 1.9536, 2.1627, 2.3560, 2.5506, 2.7548, 2.9453,
- 0.1806, 0.3432, 0.4981, 0.6948, 0.8928, 1.0527, 1.2467, 1.4140,
- 1.6326, 1.7950, 1.9935, 2.1969, 2.3512, 2.5682, 2.7445, 2.9277,
- 0.1846, 0.3112, 0.4568, 0.5891, 0.7317, 0.8493, 1.0204, 1.2022,
- 1.3688, 1.6020, 1.8428, 2.0710, 2.2725, 2.4879, 2.7057, 2.9160,
- 0.0880, 0.2514, 0.5332, 0.7272, 0.8906, 1.1354, 1.3199, 1.4941,
- 1.6010, 1.7151, 1.8712, 2.0643, 2.2755, 2.5375, 2.7054, 2.8891,
- 0.1382, 0.2833, 0.4658, 0.6897, 0.9071, 1.0716, 1.2469, 1.4143,
- 1.5910, 1.7947, 1.9805, 2.1581, 2.3338, 2.5215, 2.7292, 2.9211,
- 0.1061, 0.3494, 0.6327, 0.8570, 0.9748, 1.0560, 1.1529, 1.3250,
- 1.6032, 1.8340, 1.9711, 2.1157, 2.3011, 2.5464, 2.8078, 2.9803,
- 0.1603, 0.2839, 0.4307, 0.5980, 0.7980, 1.0399, 1.1971, 1.3524,
- 1.5715, 1.7838, 1.9468, 2.1498, 2.3627, 2.5514, 2.7327, 2.9148,
- 0.1691, 0.3117, 0.4796, 0.6895, 0.8732, 1.0164, 1.1916, 1.3707,
- 1.5384, 1.7202, 1.8857, 2.0672, 2.2487, 2.4593, 2.6789, 2.8940,
- 0.0965, 0.1702, 0.3191, 0.5721, 0.8100, 1.0241, 1.2272, 1.4196,
- 1.6093, 1.8057, 1.9884, 2.2037, 2.3925, 2.5805, 2.7578, 2.9366,
- 0.1950, 0.3519, 0.5272, 0.6973, 0.8732, 1.0656, 1.2112, 1.3959,
- 1.6116, 1.7821, 1.9445, 2.1592, 2.3348, 2.5142, 2.7440, 2.9297,
- 0.1388, 0.2557, 0.4120, 0.5727, 0.7354, 0.9196, 1.0985, 1.2805,
- 1.4643, 1.6535, 1.8340, 2.0546, 2.2758, 2.4778, 2.6921, 2.9122,
- 0.1823, 0.3336, 0.4957, 0.6771, 0.8563, 1.0137, 1.2299, 1.3849,
- 1.5718, 1.7667, 1.9193, 2.1326, 2.3135, 2.5268, 2.7133, 2.8998,
- 0.0790, 0.1901, 0.4083, 0.6456, 0.8463, 1.0285, 1.2297, 1.4181,
- 1.6159, 1.8056, 1.9971, 2.1912, 2.3816, 2.5746, 2.7692, 2.9497,
- 0.0049, 0.0116, 0.0045, 0.0039, -0.0010, -0.0122, -0.0205, -0.0034,
--0.0140, -0.0041, 0.0191, -0.0322, 0.0002, -0.0124, -0.0269, 0.0059,
- 0.0586, 0.0339, -0.0389, -0.0319, -0.0079, -0.0205, -0.0363, -0.0211,
- 0.0241, 0.0595, 0.0469, 0.0283, 0.0176, -0.0183, -0.0173, -0.0004,
- 0.0024, 0.0145, 0.0534, 0.0197, -0.0065, -0.0067, 0.0133, 0.0358,
--0.0104, -0.0386, -0.0109, -0.0078, 0.0275, 0.0565, 0.0251, -0.0027,
--0.0053, 0.0171, 0.0088, 0.0495, 0.0141, 0.0039, -0.0445, -0.0426,
--0.0184, -0.0280, -0.0223, 0.0039, -0.0171, -0.0606, -0.0786, -0.0430,
- 0.0544, 0.0595, 0.0320, -0.0012, 0.0108, 0.0185, 0.0066, 0.0408,
- 0.0552, -0.0073, -0.0247, -0.0480, -0.0288, 0.0186, 0.0212, -0.0013,
- 0.0403, 0.0598, 0.0690, 0.0516, -0.0298, -0.0177, 0.0278, 0.0168,
--0.0106, 0.0251, 0.0386, 0.0331, -0.0052, 0.0133, 0.0291, -0.0158,
--0.0329, -0.0367, 0.0287, 0.0462, -0.0176, 0.0049, 0.0242, -0.0034,
- 0.0135, 0.0086, -0.0149, 0.0241, 0.0504, 0.0246, -0.0273, -0.0369,
--0.0108, -0.0449, -0.0625, -0.0414, -0.0292, -0.0571, -0.0440, -0.0088,
- 0.0098, 0.0009, -0.0004, 0.0007, -0.0314, -0.0208, -0.0138, -0.0277,
--0.0044, 0.0522, 0.0315, -0.0270, -0.0277, -0.0256, -0.0103, -0.0201,
--0.0287, -0.0279, -0.0182, 0.0472, 0.0613, 0.0450, 0.0413, 0.0333,
- 0.0444, 0.0223, 0.0061, 0.0316, 0.0321, 0.0501, 0.0460, 0.0250,
- 0.0227, 0.0235, 0.0099, 0.0185, -0.0347, -0.0684, -0.0189, 0.0242,
--0.0190, -0.0273, -0.0012, -0.0253, 0.0293, -0.0231, -0.0219, -0.0010,
- 0.0153, 0.0128, -0.0166, -0.0435, -0.0417, -0.0121, -0.0351, -0.0390,
- 0.0077, -0.0278, -0.0355, 0.0092, -0.0063, 0.0005, 0.0216, 0.0461,
- 0.0538, 0.0451, 0.0298, -0.0130, 0.0058, 0.0206, 0.0471, 0.0499,
- 0.0280, 0.0086, -0.0007, -0.0317, 0.0259, 0.0176, 0.0043, 0.0212,
- 0.0138, 0.0106, 0.0220, -0.0025, 0.0050, 0.0122, -0.0051, -0.0086,
--0.0472, -0.0005, 0.0193, 0.0032, 0.0246, 0.0222, 0.0090, -0.0320,
--0.0713, -0.0526, -0.0151, -0.0440, -0.0648, -0.0466, -0.0092, 0.0115,
--0.0129, 0.0053, -0.0344, -0.0385, 0.0392, 0.0599, 0.0414, 0.0165,
--0.0098, -0.0320, -0.0261, -0.0055, -0.0139, -0.0110, 0.0084, 0.0172,
--0.0492, -0.0537, -0.0320, -0.0036, 0.0265, 0.0385, 0.0064, -0.0280,
--0.0230, 0.0134, 0.0241, 0.0106, 0.0387, 0.0105, 0.0068, 0.0260,
- 0.4940, 0.4911, 0.4849, 0.4820, 0.4837, 0.4839, 0.4824, 0.4799,
- 0.4812, 0.4782, 0.4788, 0.4711, 0.4706, 0.4671, 0.4601, 0.4578,
- 0.2954, 0.2121, 0.1859, 0.1958, 0.1474, 0.1086, 0.1351, 0.1362,
- 0.1486, 0.1342, 0.1215, 0.1423, 0.1634, 0.1588, 0.1539, 0.1857
-},
-
-.lsp16 = {
- 0.1813, 0.3911, 0.6301, 0.8012, 1.0057, 1.2041, 1.4271, 1.6943,
- 1.9402, 2.1733, 2.3521, 2.4989, 2.5839, 2.6846, 2.7634, 2.8950,
- 0.1311, 0.3183, 0.4659, 0.5601, 0.6658, 0.7828, 1.0065, 1.2717,
- 1.5185, 1.7339, 1.9530, 2.2189, 2.3739, 2.4991, 2.6984, 2.9256,
- 0.1627, 0.4519, 0.6323, 0.7012, 0.7848, 0.9801, 1.1810, 1.3222,
- 1.5413, 1.8129, 1.9338, 2.0809, 2.3180, 2.5189, 2.7066, 2.9514,
- 0.1475, 0.2447, 0.4240, 0.5669, 0.7872, 0.9838, 1.1823, 1.3814,
- 1.5358, 1.6820, 1.8794, 2.1419, 2.4132, 2.6112, 2.7911, 2.9511,
- 0.1224, 0.2876, 0.5013, 0.6985, 0.8902, 1.0901, 1.2835, 1.4768,
- 1.6596, 1.8538, 2.0467, 2.2304, 2.4124, 2.5942, 2.7729, 2.9531,
- 0.1741, 0.3034, 0.4677, 0.5879, 0.7258, 0.9648, 1.1417, 1.3220,
- 1.5081, 1.7151, 1.9212, 2.1286, 2.3208, 2.4938, 2.6765, 2.8891,
- 0.1657, 0.3174, 0.4907, 0.6559, 0.8295, 1.0254, 1.2071, 1.3880,
- 1.5737, 1.7845, 1.9027, 2.1139, 2.3323, 2.5157, 2.7323, 2.9015,
- 0.1592, 0.2758, 0.4417, 0.6315, 0.8257, 0.9873, 1.1277, 1.2830,
- 1.4337, 1.6315, 1.8899, 2.1356, 2.3572, 2.5632, 2.7468, 2.9420,
- 0.1524, 0.4325, 0.5931, 0.7036, 0.7696, 0.8923, 1.1739, 1.4773,
- 1.6609, 1.7911, 1.9666, 2.1972, 2.3754, 2.5045, 2.6613, 2.8882,
- 0.2130, 0.3013, 0.3721, 0.4257, 0.5079, 0.7015, 0.9815, 1.2554,
- 1.4648, 1.6966, 1.9138, 2.1075, 2.3318, 2.5292, 2.7453, 2.9347,
- 0.1142, 0.3748, 0.6205, 0.7642, 0.8121, 0.9022, 0.9843, 1.1558,
- 1.4467, 1.7422, 1.9574, 2.1302, 2.3812, 2.5898, 2.7720, 2.9583,
- 0.1255, 0.2339, 0.3570, 0.5323, 0.7458, 1.0003, 1.1729, 1.3567,
- 1.5217, 1.6977, 1.8924, 2.0942, 2.3145, 2.5408, 2.7553, 2.9337,
- 0.1316, 0.2289, 0.4327, 0.6663, 0.8509, 0.9994, 1.1697, 1.3804,
- 1.5609, 1.6903, 1.8572, 2.1019, 2.3687, 2.5789, 2.7715, 2.9472,
- 0.1502, 0.2546, 0.3883, 0.5333, 0.6976, 0.9163, 1.1071, 1.3364,
- 1.5420, 1.7525, 1.8948, 2.0839, 2.2819, 2.4651, 2.6875, 2.8987,
- 0.1593, 0.3014, 0.4573, 0.6354, 0.8157, 0.9805, 1.1783, 1.3747,
- 1.5678, 1.7326, 1.9286, 2.1340, 2.3253, 2.5280, 2.7180, 2.9298,
- 0.1811, 0.3167, 0.4655, 0.6507, 0.8198, 1.0075, 1.1892, 1.3743,
- 1.5227, 1.7090, 1.8849, 2.0743, 2.2750, 2.4830, 2.6896, 2.8953,
- 0.1846, 0.3577, 0.5315, 0.7290, 0.9176, 1.1016, 1.2654, 1.4525,
- 1.6315, 1.8268, 2.0238, 2.1934, 2.3868, 2.5753, 2.7682, 2.9469,
- 0.0876, 0.1439, 0.2048, 0.3654, 0.6281, 0.8853, 1.0907, 1.2992,
- 1.5227, 1.7373, 1.9395, 2.1419, 2.3488, 2.5486, 2.7466, 2.9348,
- 0.1391, 0.4170, 0.6561, 0.7953, 0.8734, 0.9986, 1.1870, 1.4520,
- 1.6042, 1.7910, 2.0135, 2.1870, 2.3358, 2.5066, 2.7409, 2.9955,
- 0.0804, 0.1355, 0.2599, 0.4998, 0.7408, 0.9474, 1.1276, 1.3428,
- 1.5556, 1.7712, 1.9699, 2.1535, 2.3605, 2.5548, 2.7489, 2.9325,
- 0.1304, 0.3087, 0.4979, 0.6584, 0.8414, 1.0329, 1.2244, 1.4189,
- 1.6118, 1.8200, 1.9985, 2.1893, 2.3915, 2.5794, 2.7647, 2.9344,
- 0.1895, 0.2849, 0.3705, 0.4126, 0.6265, 0.9207, 1.1774, 1.3762,
- 1.5757, 1.7728, 1.9568, 2.1662, 2.3615, 2.5575, 2.7561, 2.9416,
- 0.1800, 0.3078, 0.4805, 0.6796, 0.8503, 1.0046, 1.1703, 1.3269,
- 1.4862, 1.6502, 1.8454, 2.0873, 2.3175, 2.5356, 2.7516, 2.9469,
- 0.1950, 0.3233, 0.4568, 0.5940, 0.7589, 0.9978, 1.1701, 1.3383,
- 1.5017, 1.6565, 1.8243, 2.0605, 2.2938, 2.5147, 2.7419, 2.9396,
- 0.2531, 0.4391, 0.5790, 0.7170, 0.8998, 1.1430, 1.3577, 1.5326,
- 1.6328, 1.7627, 1.9726, 2.1762, 2.3563, 2.5478, 2.7385, 2.9067,
- 0.1805, 0.2788, 0.3591, 0.3881, 0.5441, 0.8055, 1.0766, 1.3165,
- 1.5316, 1.7508, 1.9477, 2.1374, 2.3438, 2.5484, 2.7501, 2.9410,
- 0.2044, 0.3671, 0.5396, 0.7042, 0.8582, 0.9831, 1.1261, 1.3194,
- 1.4769, 1.6979, 1.8717, 2.0463, 2.2620, 2.4739, 2.7054, 2.9208,
- 0.1048, 0.2175, 0.4206, 0.5923, 0.7483, 0.9400, 1.1356, 1.3799,
- 1.5958, 1.7320, 1.8984, 2.1296, 2.3594, 2.5492, 2.7387, 2.9305,
- 0.0842, 0.1729, 0.3951, 0.6447, 0.8688, 1.0605, 1.2472, 1.4330,
- 1.6232, 1.8144, 2.0216, 2.1915, 2.3878, 2.5763, 2.7685, 2.9464,
- 0.1461, 0.2593, 0.4105, 0.5677, 0.7328, 0.8919, 1.0484, 1.2302,
- 1.4386, 1.6635, 1.8873, 2.1024, 2.3116, 2.5268, 2.7273, 2.9269,
- 0.1503, 0.3108, 0.4756, 0.6731, 0.8600, 1.0233, 1.2115, 1.3971,
- 1.5915, 1.7892, 1.9517, 2.1603, 2.3487, 2.5460, 2.7308, 2.8998,
- 0.2163, 0.3669, 0.5125, 0.6709, 0.8143, 0.9930, 1.2095, 1.4205,
- 1.6176, 1.7112, 1.8398, 2.0896, 2.3513, 2.5290, 2.6667, 2.8960,
- 0.2133, 0.4382, 0.6287, 0.8702, 1.1088, 1.3749, 1.6062, 1.7446,
- 1.8333, 1.9122, 1.9614, 2.0669, 2.1789, 2.3449, 2.6038, 2.8849,
- 0.1598, 0.2719, 0.3877, 0.4815, 0.5926, 0.7795, 1.0449, 1.3045,
- 1.5210, 1.7391, 1.9462, 2.1397, 2.3553, 2.5458, 2.7540, 2.9392,
- 0.2918, 0.5607, 0.6801, 0.7404, 0.8285, 0.9431, 1.1579, 1.4080,
- 1.6332, 1.8472, 1.9738, 2.0771, 2.2890, 2.5178, 2.7445, 2.9830,
- 0.1664, 0.2842, 0.3965, 0.5463, 0.8162, 1.0346, 1.1849, 1.3446,
- 1.5122, 1.7563, 1.9960, 2.2002, 2.3796, 2.5689, 2.7712, 2.9550,
- 0.0911, 0.2397, 0.5052, 0.7868, 1.0299, 1.1311, 1.2244, 1.3333,
- 1.4395, 1.6790, 1.9369, 2.1717, 2.3689, 2.5538, 2.7340, 2.9326,
- 0.1647, 0.2931, 0.3836, 0.4978, 0.6255, 0.9243, 1.1339, 1.3001,
- 1.5269, 1.8010, 1.9715, 2.1419, 2.3784, 2.5503, 2.6719, 2.8745,
- 0.2440, 0.3802, 0.4756, 0.6613, 0.8627, 1.0292, 1.2291, 1.4060,
- 1.5198, 1.7354, 1.9044, 2.1010, 2.3147, 2.4996, 2.7171, 2.9041,
- 0.1590, 0.2876, 0.4572, 0.5996, 0.7713, 0.9490, 1.1205, 1.2815,
- 1.4516, 1.6385, 1.8179, 2.0457, 2.2759, 2.4785, 2.6861, 2.9080,
- 0.2297, 0.4309, 0.5712, 0.6717, 0.8138, 1.0463, 1.2492, 1.4560,
- 1.6796, 1.8458, 1.9642, 2.1452, 2.3636, 2.5395, 2.7456, 2.9495,
- 0.2975, 0.4678, 0.4996, 0.5809, 0.6279, 0.6884, 0.8606, 1.1386,
- 1.4412, 1.6876, 1.8760, 2.0932, 2.3178, 2.5166, 2.7345, 2.9280,
- 0.1278, 0.3737, 0.6004, 0.7069, 0.8147, 1.0180, 1.2581, 1.3812,
- 1.4855, 1.7268, 1.9970, 2.1258, 2.2936, 2.5702, 2.7563, 2.8983,
- 0.1314, 0.2508, 0.3999, 0.5680, 0.7424, 0.9367, 1.1286, 1.3175,
- 1.5336, 1.7404, 1.9317, 2.1404, 2.3514, 2.5562, 2.7510, 2.9402,
- 0.1043, 0.2367, 0.4293, 0.6376, 0.8160, 0.9836, 1.1779, 1.3850,
- 1.5835, 1.7875, 1.9765, 2.1593, 2.3654, 2.5577, 2.7465, 2.9398,
- 0.1529, 0.2515, 0.3454, 0.4374, 0.7011, 0.9015, 1.0744, 1.3532,
- 1.5699, 1.7545, 2.0021, 2.1259, 2.2278, 2.4546, 2.7264, 2.9425,
- 0.1429, 0.2808, 0.4395, 0.6334, 0.8069, 0.9705, 1.1520, 1.3250,
- 1.5109, 1.7285, 1.9356, 2.1469, 2.3479, 2.5554, 2.7512, 2.9348,
- 0.1625, 0.3022, 0.4756, 0.6315, 0.8032, 0.9924, 1.1596, 1.3204,
- 1.4994, 1.6929, 1.8955, 2.1090, 2.3025, 2.5018, 2.6908, 2.8980,
- 0.1692, 0.3427, 0.5228, 0.7756, 0.9688, 1.0950, 1.3056, 1.4360,
- 1.5675, 1.8049, 1.9376, 2.1151, 2.3407, 2.5012, 2.7192, 2.9258,
- 0.0474, 0.1251, 0.1939, 0.3841, 0.6501, 0.9231, 1.1153, 1.3240,
- 1.5478, 1.7599, 1.9651, 2.1510, 2.3645, 2.5552, 2.7542, 2.9393,
- 0.2196, 0.4656, 0.7492, 0.9922, 1.1678, 1.2489, 1.3112, 1.3657,
- 1.4223, 1.5302, 1.7212, 1.9996, 2.2523, 2.4844, 2.7036, 2.9145,
- 0.1128, 0.2368, 0.3704, 0.5476, 0.7723, 0.9968, 1.1930, 1.3992,
- 1.6013, 1.7957, 1.9888, 2.1857, 2.3825, 2.5705, 2.7616, 2.9434,
- 0.1341, 0.2768, 0.4510, 0.6359, 0.8332, 1.0335, 1.2004, 1.3952,
- 1.5762, 1.7681, 1.9815, 2.1735, 2.3657, 2.5552, 2.7514, 2.9498,
- 0.1247, 0.2559, 0.3516, 0.4726, 0.6861, 0.9483, 1.1852, 1.3858,
- 1.5851, 1.7815, 1.9778, 2.1737, 2.3729, 2.5664, 2.7620, 2.9429,
- 0.1988, 0.3320, 0.4777, 0.6737, 0.8425, 1.0265, 1.1694, 1.3655,
- 1.5463, 1.7135, 1.9385, 2.1650, 2.3529, 2.5367, 2.7545, 2.9585,
- 0.1376, 0.2620, 0.4273, 0.6169, 0.7755, 0.9441, 1.1169, 1.3157,
- 1.5179, 1.7020, 1.8931, 2.1059, 2.3112, 2.5136, 2.7169, 2.9198,
- 0.2112, 0.4385, 0.6091, 0.7618, 0.9553, 1.1543, 1.3445, 1.5396,
- 1.7153, 1.9192, 2.1263, 2.3593, 2.5958, 2.8171, 2.9394, 3.0409,
- 0.1347, 0.2099, 0.2646, 0.3453, 0.5266, 0.7869, 1.0513, 1.2795,
- 1.4880, 1.7181, 1.9294, 2.1332, 2.3362, 2.5442, 2.7433, 2.9362,
- 0.3141, 0.5935, 0.7517, 0.8313, 0.8568, 0.9570, 1.0250, 1.1275,
- 1.3422, 1.6303, 1.8577, 2.0705, 2.2957, 2.5095, 2.7244, 2.9262,
- 0.0962, 0.2116, 0.3961, 0.5641, 0.7122, 0.8883, 1.1023, 1.3481,
- 1.5623, 1.7554, 1.9618, 2.1675, 2.3706, 2.5556, 2.7430, 2.9337,
- 0.0898, 0.1510, 0.3060, 0.5820, 0.8221, 1.0388, 1.2261, 1.4289,
- 1.6054, 1.8103, 1.9941, 2.1844, 2.3742, 2.5711, 2.7632, 2.9474,
- 0.1326, 0.2316, 0.3761, 0.5177, 0.6782, 0.8761, 1.0952, 1.3175,
- 1.5078, 1.7034, 1.9051, 2.1245, 2.3424, 2.5484, 2.7444, 2.9389,
- 0.1740, 0.3293, 0.5174, 0.6824, 0.8394, 1.0372, 1.2046, 1.3723,
- 1.5656, 1.7444, 1.9442, 2.1386, 2.3139, 2.4960, 2.7071, 2.9297,
- 0.2304, 0.3775, 0.4865, 0.6182, 0.7842, 0.9208, 1.1151, 1.2843,
- 1.4641, 1.6988, 1.9209, 2.1260, 2.3099, 2.5229, 2.7414, 2.9276,
- 0.0094, 0.0261, -0.0037, 0.0041, -0.0092, -0.0044, -0.0232, -0.0073,
--0.0047, -0.0021, 0.0250, -0.0580, -0.0140, -0.0342, -0.0586, 0.0020,
- 0.0449, 0.0155, -0.0523, -0.0279, 0.0299, -0.0183, -0.0736, -0.0639,
--0.0017, 0.0336, 0.0209, 0.0046, 0.0077, -0.0148, -0.0114, -0.0120,
- 0.0115, -0.0050, 0.0445, 0.0048, 0.0188, -0.0137, -0.0080, 0.0239,
--0.0184, -0.0524, -0.0195, -0.0126, 0.0284, 0.0632, 0.0141, -0.0093,
--0.0096, 0.0196, 0.0230, 0.0379, 0.0308, 0.0237, -0.0224, -0.0600,
--0.0755, -0.1074, -0.0988, -0.0606, -0.1038, -0.1552, -0.1480, -0.0672,
- 0.0504, 0.0676, 0.0336, -0.0042, 0.0729, 0.1013, 0.0868, 0.0846,
- 0.0954, 0.0515, -0.0066, -0.0851, -0.0485, 0.0294, 0.0395, 0.0087,
- 0.0078, 0.0446, 0.0881, 0.0672, -0.0384, -0.0025, 0.0415, 0.0353,
- 0.0080, 0.0052, 0.0190, 0.0182, 0.0069, 0.0168, 0.0374, 0.0037,
--0.0292, -0.0429, 0.0302, 0.0681, -0.0233, -0.0238, -0.0003, -0.0043,
- 0.0054, -0.0029, -0.0149, 0.0642, 0.0622, 0.0341, -0.0232, -0.0461,
--0.0082, -0.0469, -0.0618, -0.0326, -0.0452, -0.0649, -0.0597, -0.0398,
--0.0318, -0.0116, 0.0011, 0.0009, -0.0384, -0.0384, -0.0156, -0.0260,
--0.0007, 0.0473, 0.0111, -0.0358, -0.0484, -0.0204, -0.0029, -0.0090,
--0.0285, -0.0495, -0.0376, 0.0917, 0.1192, 0.1026, 0.0745, 0.0397,
- 0.0463, 0.0253, 0.0025, 0.0465, 0.0100, 0.0488, 0.0416, 0.0223,
- 0.0263, 0.0072, -0.0053, 0.0595, 0.0060, -0.0518, -0.0316, -0.0043,
--0.0133, -0.0233, -0.0075, -0.0251, 0.0277, -0.0067, -0.0136, -0.0004,
- 0.0235, 0.0112, -0.0182, -0.0324, -0.0210, -0.0035, -0.0395, -0.0384,
- 0.0005, -0.0150, -0.0356, 0.0127, -0.0033, -0.0034, 0.0205, 0.0747,
- 0.1138, 0.1015, 0.0995, -0.0161, -0.0045, 0.0129, 0.0472, 0.0575,
- 0.0222, 0.0091, 0.0037, -0.0471, 0.0371, 0.0132, 0.0208, 0.0247,
- 0.0117, 0.0164, 0.0225, 0.0124, -0.0023, 0.0088, -0.0046, 0.0047,
--0.0393, 0.0018, 0.0148, 0.0020, 0.0044, 0.0165, 0.0229, -0.0208,
--0.0477, -0.0310, -0.0164, -0.0390, -0.0764, -0.0525, -0.0094, 0.0075,
--0.0102, -0.0045, -0.0504, -0.0709, 0.0822, 0.0710, 0.0426, 0.0014,
--0.0371, -0.0400, -0.0157, -0.0155, -0.0173, -0.0138, -0.0015, 0.0134,
--0.0418, -0.0682, -0.0256, 0.0050, 0.0360, 0.0354, 0.0074, -0.0396,
--0.0235, 0.0284, 0.0494, 0.0153, 0.0448, 0.0025, -0.0061, 0.0252,
- 0.1000, 0.2260, 0.2158, 0.2116, 0.2198, 0.2055, 0.2110, 0.1873,
- 0.1907, 0.2071, 0.2164, 0.2009, 0.2059, 0.2124, 0.2141, 0.2093,
- 0.0875, 0.0981, 0.1177, 0.1071, 0.1033, 0.1248, 0.1048, 0.1238,
- 0.1166, 0.1008, 0.1062, 0.0992, 0.0994, 0.1067, 0.0999, 0.1187,
- 0.0750, 0.0794, 0.0828, 0.0854, 0.0859, 0.0801, 0.0891, 0.0933,
- 0.0969, 0.0920, 0.0915, 0.0862, 0.0868, 0.0891, 0.0842, 0.0824,
- 0.0625, 0.0930, 0.0815, 0.0853, 0.0898, 0.0828, 0.0822, 0.0910,
- 0.0873, 0.0906, 0.0856, 0.0840, 0.0774, 0.0785, 0.0684, 0.0711,
- 0.3319, 0.4219, 0.4588, 0.4090, 0.4092, 0.4014, 0.3548, 0.3353,
- 0.3708, 0.3352, 0.3720, 0.3538, 0.4084, 0.4289, 0.4060, 0.4210,
- 0.0588, 0.0209, -0.0082, -0.0115, -0.0343, -0.0621, -0.0541, -0.0346,
--0.0346, -0.0366, -0.0220, -0.0265, -0.0102, 0.0374, 0.0306, 0.0404,
- 0.0306, 0.0090, -0.0054, 0.0333, 0.0047, 0.0238, 0.0141, 0.0165,
- 0.0306, 0.0420, 0.0159, 0.0124, 0.0414, 0.0158, -0.0237, 0.0141,
- 0.0765, 0.0057, -0.0260, -0.0426, -0.0395, -0.0126, -0.0579, -0.0417
-},
-
-.lsp22_1 = {
- 0.0664, 0.1875, 0.4300, 0.6730, 0.8793, 1.0640, 1.2563, 1.4433,
- 1.6394, 1.8176, 2.0029, 2.1921, 2.3796, 2.5671, 2.7595, 2.9536,
- 0.2128, 0.4052, 0.5311, 0.6404, 0.7875, 0.8775, 1.0974, 1.3261,
- 1.5563, 1.6790, 1.8339, 2.1195, 2.3226, 2.4609, 2.6440, 2.8947,
- 0.2024, 0.3362, 0.4834, 0.6784, 0.9088, 1.0850, 1.2188, 1.4054,
- 1.6102, 1.7767, 1.9679, 2.1436, 2.3445, 2.5467, 2.7429, 2.9320,
- 0.1181, 0.2279, 0.4413, 0.6114, 0.7710, 0.9427, 1.1142, 1.2707,
- 1.4892, 1.7416, 1.9526, 2.1466, 2.3629, 2.5445, 2.7293, 2.9205,
- 0.1155, 0.2720, 0.4886, 0.6812, 0.8594, 1.0422, 1.2315, 1.4116,
- 1.6137, 1.8020, 1.9758, 2.1743, 2.3602, 2.5568, 2.7472, 2.9374,
- 0.1110, 0.3312, 0.4735, 0.5612, 0.7129, 0.8146, 1.0233, 1.3155,
- 1.5765, 1.7746, 1.9574, 2.1416, 2.3220, 2.5384, 2.7334, 2.9318,
- 0.1656, 0.3350, 0.4215, 0.5609, 0.6759, 0.8503, 1.1405, 1.4094,
- 1.6057, 1.6860, 1.7639, 2.0031, 2.2680, 2.5076, 2.7263, 2.9368,
- 0.1466, 0.3638, 0.4587, 0.5674, 0.7381, 0.8669, 0.9619, 1.1658,
- 1.4667, 1.7440, 1.9335, 2.1018, 2.3022, 2.5281, 2.7359, 2.9261,
- 0.1061, 0.2566, 0.4739, 0.6751, 0.8711, 1.0704, 1.2720, 1.4655,
- 1.6605, 1.8494, 2.0290, 2.2197, 2.4008, 2.5912, 2.7772, 2.9513,
- 0.1116, 0.2364, 0.3971, 0.6316, 0.8583, 1.0335, 1.1686, 1.3302,
- 1.5612, 1.7877, 1.9829, 2.2052, 2.3596, 2.5460, 2.7341, 2.9290,
- 0.2661, 0.4186, 0.5126, 0.6477, 0.8818, 1.1045, 1.2852, 1.4128,
- 1.5851, 1.7593, 1.9399, 2.1757, 2.3684, 2.5136, 2.6927, 2.9064,
- 0.1495, 0.2749, 0.4391, 0.6304, 0.8239, 1.0181, 1.1995, 1.3759,
- 1.5669, 1.7722, 1.9671, 2.1635, 2.3586, 2.5528, 2.7445, 2.9311,
- 0.0912, 0.1759, 0.3066, 0.5660, 0.8005, 0.9568, 1.1832, 1.4504,
- 1.6259, 1.7948, 2.0113, 2.2002, 2.3654, 2.5583, 2.7929, 2.9735,
- 0.1353, 0.2747, 0.4078, 0.5977, 0.7658, 0.9124, 1.1081, 1.3630,
- 1.5875, 1.7847, 1.9323, 2.1181, 2.3321, 2.5046, 2.7183, 2.9225,
- 0.1938, 0.4063, 0.4982, 0.6002, 0.7702, 0.9071, 1.1631, 1.3885,
- 1.6043, 1.8118, 1.9306, 2.0893, 2.2724, 2.4609, 2.6283, 2.8802,
- 0.1857, 0.3351, 0.4381, 0.6101, 0.7561, 0.8555, 1.0384, 1.3171,
- 1.5667, 1.6904, 1.7552, 1.9689, 2.2597, 2.5260, 2.7272, 2.9337,
- 0.1037, 0.2159, 0.4188, 0.6174, 0.8035, 1.0285, 1.2256, 1.4230,
- 1.6400, 1.8322, 2.0144, 2.1988, 2.3810, 2.5682, 2.7613, 2.9438,
- 0.1625, 0.2776, 0.4225, 0.6001, 0.7879, 0.9087, 1.0801, 1.2759,
- 1.4899, 1.7448, 1.9911, 2.1770, 2.3723, 2.5777, 2.7971, 2.9444,
- 0.2111, 0.3640, 0.5839, 0.7290, 0.8051, 1.0023, 1.2315, 1.4143,
- 1.5878, 1.7755, 1.9804, 2.1498, 2.3312, 2.5350, 2.7613, 2.9472,
- 0.1423, 0.2646, 0.4136, 0.6350, 0.8070, 0.9514, 1.1168, 1.3213,
- 1.5776, 1.7721, 1.9404, 2.1545, 2.3385, 2.5137, 2.7396, 2.9553,
- 0.1132, 0.2386, 0.4103, 0.5931, 0.7808, 0.9881, 1.1840, 1.3860,
- 1.6021, 1.7990, 1.9922, 2.1885, 2.3852, 2.5717, 2.7640, 2.9510,
- 0.1267, 0.2602, 0.3913, 0.5944, 0.7598, 0.9198, 1.0781, 1.2715,
- 1.5299, 1.7573, 1.9308, 2.1346, 2.3267, 2.5419, 2.7466, 2.9320,
- 0.2023, 0.3417, 0.4392, 0.6141, 0.7439, 0.8593, 1.1096, 1.3543,
- 1.5185, 1.6553, 1.7862, 2.0341, 2.2718, 2.4834, 2.7103, 2.9466,
- 0.1113, 0.2470, 0.3677, 0.5686, 0.7700, 0.9356, 1.0806, 1.2452,
- 1.4830, 1.7344, 1.9268, 2.1404, 2.3371, 2.5169, 2.7329, 2.9012,
- 0.1664, 0.3554, 0.5573, 0.7471, 0.9245, 1.0998, 1.2787, 1.4655,
- 1.6654, 1.8346, 2.0179, 2.2159, 2.4096, 2.5946, 2.7790, 2.9530,
- 0.1313, 0.2625, 0.4731, 0.6444, 0.8110, 0.9878, 1.1493, 1.3212,
- 1.5719, 1.8138, 1.9861, 2.1943, 2.3714, 2.5578, 2.7346, 2.9296,
- 0.1186, 0.3035, 0.5049, 0.6860, 0.8670, 0.9975, 1.1364, 1.3471,
- 1.5695, 1.7412, 1.9346, 2.1506, 2.3413, 2.5531, 2.7794, 2.9627,
- 0.1108, 0.2697, 0.4787, 0.6344, 0.7909, 0.9586, 1.1440, 1.3511,
- 1.5686, 1.7601, 1.9246, 2.1241, 2.3293, 2.5390, 2.7315, 2.9333,
- 0.0985, 0.2302, 0.3544, 0.5759, 0.7620, 0.9651, 1.1497, 1.3080,
- 1.5500, 1.7845, 1.9518, 2.1734, 2.3565, 2.5665, 2.7605, 2.9102,
- 0.1208, 0.2727, 0.4381, 0.5736, 0.7382, 0.8390, 1.0102, 1.2648,
- 1.5100, 1.7440, 1.9619, 2.1430, 2.3307, 2.5159, 2.7264, 2.9211,
- 0.1582, 0.2777, 0.4475, 0.6551, 0.8591, 1.0084, 1.1414, 1.3291,
- 1.5902, 1.7826, 1.9543, 2.1659, 2.3233, 2.5044, 2.6935, 2.9199,
- 0.1360, 0.2873, 0.4585, 0.6295, 0.7592, 0.9089, 1.0492, 1.2733,
- 1.5391, 1.7768, 1.9372, 2.1329, 2.3168, 2.5015, 2.6857, 2.8837,
- 0.0886, 0.1829, 0.3696, 0.6126, 0.8334, 1.0135, 1.2303, 1.4674,
- 1.6743, 1.8564, 2.0530, 2.2370, 2.3960, 2.5787, 2.7756, 2.9377,
- 0.2005, 0.3537, 0.4700, 0.6249, 0.7385, 0.9097, 1.1759, 1.3811,
- 1.5314, 1.6705, 1.8546, 2.1229, 2.3292, 2.5251, 2.7951, 2.9646,
- 0.1999, 0.3112, 0.4722, 0.7146, 0.8908, 1.0028, 1.1831, 1.3903,
- 1.6125, 1.7514, 1.9083, 2.1248, 2.3271, 2.5339, 2.6945, 2.8918,
- 0.1243, 0.2606, 0.4382, 0.5850, 0.7705, 0.9727, 1.1214, 1.3059,
- 1.5218, 1.7406, 1.9137, 2.1353, 2.3354, 2.5299, 2.7287, 2.9068,
- 0.1039, 0.2426, 0.4265, 0.6284, 0.8152, 0.9941, 1.2004, 1.4038,
- 1.5912, 1.7763, 1.9650, 2.1598, 2.3474, 2.5488, 2.7419, 2.9322,
- 0.1364, 0.2420, 0.3886, 0.5864, 0.7663, 0.8844, 1.0860, 1.3242,
- 1.5518, 1.7893, 2.0004, 2.1562, 2.3619, 2.5516, 2.7687, 2.9181,
- 0.1483, 0.2851, 0.4479, 0.6312, 0.7924, 0.9821, 1.1705, 1.3386,
- 1.5375, 1.7226, 1.9053, 2.0991, 2.2898, 2.4953, 2.7000, 2.9146,
- 0.2332, 0.4561, 0.5407, 0.6212, 0.7524, 0.8215, 0.9522, 1.1685,
- 1.5216, 1.7132, 1.8291, 2.0647, 2.2811, 2.4857, 2.7071, 2.9281,
- 0.1348, 0.3126, 0.5179, 0.7192, 0.9227, 1.1363, 1.3223, 1.4756,
- 1.6509, 1.8191, 1.9991, 2.1976, 2.3877, 2.5768, 2.7590, 2.9386,
- 0.1093, 0.2211, 0.4763, 0.6703, 0.8282, 0.9536, 1.1202, 1.3796,
- 1.6043, 1.8031, 1.9832, 2.1604, 2.3578, 2.5856, 2.7650, 2.9291,
- 0.1865, 0.3027, 0.4580, 0.6719, 0.8400, 1.0082, 1.1901, 1.3782,
- 1.5448, 1.6885, 1.9477, 2.1381, 2.2797, 2.5113, 2.7465, 2.9414,
- 0.1575, 0.3124, 0.4649, 0.6262, 0.8095, 0.9858, 1.1676, 1.3602,
- 1.5646, 1.7582, 1.9550, 2.1671, 2.3628, 2.5734, 2.7670, 2.9519,
- 0.1174, 0.2777, 0.4663, 0.6333, 0.8169, 1.0096, 1.1885, 1.3847,
- 1.5803, 1.7571, 1.9380, 2.1398, 2.3414, 2.5407, 2.7360, 2.9375,
- 0.1073, 0.2264, 0.4083, 0.5973, 0.7474, 0.9514, 1.1349, 1.3337,
- 1.5433, 1.7348, 1.9380, 2.1436, 2.3441, 2.5438, 2.7457, 2.9383,
- 0.1472, 0.2880, 0.4793, 0.6268, 0.8015, 1.0063, 1.1715, 1.3644,
- 1.5525, 1.7410, 1.9258, 2.1227, 2.3214, 2.5149, 2.7148, 2.9196,
- 0.1414, 0.2565, 0.4349, 0.6111, 0.7695, 0.9496, 1.1212, 1.3265,
- 1.5218, 1.7209, 1.9015, 2.0887, 2.3158, 2.5077, 2.7233, 2.9421,
- 0.1252, 0.2667, 0.4454, 0.6431, 0.8371, 1.0124, 1.2110, 1.4160,
- 1.6240, 1.8242, 2.0047, 2.1974, 2.3902, 2.5778, 2.7637, 2.9481,
- 0.1321, 0.2565, 0.3846, 0.5847, 0.7578, 0.9259, 1.0637, 1.2239,
- 1.4690, 1.7346, 1.9750, 2.1882, 2.3712, 2.5509, 2.7280, 2.8885,
- 0.1437, 0.2930, 0.4428, 0.6156, 0.8045, 0.9638, 1.1450, 1.3138,
- 1.5144, 1.7355, 1.9469, 2.1534, 2.3414, 2.5452, 2.7353, 2.9334,
- 0.1692, 0.2770, 0.3831, 0.6100, 0.7825, 0.9302, 1.0690, 1.2481,
- 1.4615, 1.6799, 1.9165, 2.1739, 2.3435, 2.5349, 2.7520, 2.9163,
- 0.1235, 0.2489, 0.4354, 0.6343, 0.8236, 1.0066, 1.1908, 1.3474,
- 1.5656, 1.8275, 2.0620, 2.2548, 2.4135, 2.5913, 2.7639, 2.9334,
- 0.1090, 0.1961, 0.3854, 0.5701, 0.7024, 0.8843, 1.1393, 1.3785,
- 1.5940, 1.7797, 1.9442, 2.1740, 2.3853, 2.5773, 2.7727, 2.9406,
- 0.1560, 0.3477, 0.5011, 0.6287, 0.7612, 0.9896, 1.1510, 1.3420,
- 1.5435, 1.6816, 1.8731, 2.0651, 2.2613, 2.4999, 2.7027, 2.8971,
- 0.1459, 0.2416, 0.3833, 0.5450, 0.7916, 0.9223, 1.0662, 1.1953,
- 1.4029, 1.6616, 1.9320, 2.1459, 2.3386, 2.5081, 2.6799, 2.9195,
- 0.1546, 0.3854, 0.6184, 0.8460, 1.0599, 1.2428, 1.3906, 1.5550,
- 1.7388, 1.8945, 2.0757, 2.2386, 2.4014, 2.5705, 2.7574, 2.9400,
- 0.1080, 0.2307, 0.4112, 0.6067, 0.7725, 0.9467, 1.1285, 1.3205,
- 1.5348, 1.7609, 1.9937, 2.1878, 2.3583, 2.5515, 2.7199, 2.9049,
- 0.1482, 0.3178, 0.4983, 0.6342, 0.7783, 0.9880, 1.2019, 1.3404,
- 1.5223, 1.7296, 1.9211, 2.0943, 2.2928, 2.5008, 2.7136, 2.9224,
- 0.1145, 0.2910, 0.4891, 0.6492, 0.8126, 0.9530, 1.1180, 1.3155,
- 1.5054, 1.6893, 1.8899, 2.1188, 2.3389, 2.5512, 2.7313, 2.9224,
- 0.0939, 0.1689, 0.3250, 0.5792, 0.7698, 0.9245, 1.1574, 1.3865,
- 1.5959, 1.7977, 1.9821, 2.1528, 2.3326, 2.5540, 2.7553, 2.9179,
- 0.1243, 0.2474, 0.3923, 0.6199, 0.7908, 0.9379, 1.1497, 1.3734,
- 1.5582, 1.7420, 1.9539, 2.1385, 2.3240, 2.5277, 2.7311, 2.9178,
- 0.1961, 0.3748, 0.5176, 0.6387, 0.8169, 1.0477, 1.2124, 1.3869,
- 1.5604, 1.7225, 1.8770, 2.0837, 2.2960, 2.5103, 2.6945, 2.8862,
- 0.1295, 0.2403, 0.4149, 0.6189, 0.7913, 0.9130, 1.0832, 1.2787,
- 1.4860, 1.7112, 1.9502, 2.1348, 2.2776, 2.4982, 2.7431, 2.9522,
- 0.0160, 0.0362, 0.0097, 0.0057, -0.0014, -0.0073, -0.0046, -0.0064,
--0.0121, 0.0019, 0.0149, -0.0440, -0.0479, -0.0382, -0.0480, -0.0182,
- 0.0170, 0.0114, -0.0298, -0.0175, -0.0033, -0.0354, -0.0510, -0.0025,
- 0.0307, 0.0351, 0.0338, 0.0420, 0.0138, -0.0175, -0.0102, 0.0053,
- 0.0084, -0.0003, 0.0412, -0.0027, 0.0145, -0.0039, 0.0083, 0.0400,
- 0.0001, -0.0262, 0.0055, -0.0082, 0.0348, 0.0433, 0.0137, -0.0024,
--0.0055, 0.0262, 0.0521, 0.0349, 0.0185, 0.0076, -0.0319, -0.0561,
--0.0460, -0.0253, -0.0097, 0.0163, 0.0184, -0.0037, -0.0480, -0.0371,
- 0.0628, 0.0665, 0.0296, -0.0057, 0.0253, 0.0227, 0.0350, 0.0692,
- 0.0545, 0.0218, 0.0094, -0.0449, -0.0372, 0.0005, 0.0258, 0.0118,
- 0.0285, 0.0760, 0.0822, 0.0527, -0.0299, -0.0049, 0.0170, 0.0195,
- 0.0136, 0.0286, 0.0289, 0.0139, 0.0054, 0.0152, 0.0244, 0.0028,
--0.0056, -0.0260, 0.0307, 0.0572, -0.0087, 0.0088, 0.0062, 0.0000,
- 0.0125, 0.0000, -0.0292, 0.0820, 0.0872, 0.0646, 0.0346, 0.0076,
--0.0022, -0.0253, -0.0567, -0.0188, -0.0336, -0.0673, -0.0549, -0.0166,
--0.0259, -0.0140, 0.0040, -0.0029, -0.0430, -0.0531, -0.0253, -0.0019,
--0.0071, 0.0393, 0.0072, -0.0327, -0.0236, -0.0235, -0.0177, -0.0186,
--0.0280, -0.0201, -0.0077, 0.0383, 0.0418, 0.0321, 0.0294, 0.0169,
- 0.0468, 0.0301, 0.0133, 0.0363, 0.0516, 0.0937, 0.1240, 0.1404,
- 0.1325, 0.1178, 0.0999, 0.0251, -0.0037, -0.0495, -0.0703, -0.0219,
--0.0261, -0.0304, -0.0204, -0.0372, 0.0355, 0.0131, -0.0093, -0.0099,
--0.0069, -0.0034, -0.0065, -0.0208, -0.0231, -0.0117, -0.0211, -0.0243,
- 0.0046, -0.0107, -0.0070, 0.0123, 0.0230, 0.0152, 0.0164, 0.0412,
- 0.0619, 0.0858, 0.0862, -0.0056, 0.0125, 0.0182, 0.0347, 0.0388,
- 0.0456, 0.0407, -0.0249, -0.0460, 0.0206, 0.0299, 0.0253, 0.0207,
- 0.0177, 0.0238, 0.0253, 0.0030, 0.0042, 0.0020, -0.0081, -0.0136,
--0.0290, -0.0042, 0.0122, 0.0051, 0.0107, 0.0228, 0.0211, -0.0068,
--0.0436, -0.0299, -0.0078, -0.0779, -0.1157, -0.0679, 0.0172, 0.0150,
--0.0051, 0.0081, -0.0512, -0.0616, 0.0576, 0.0799, 0.0803, 0.0336,
- 0.0001, -0.0298, -0.0747, -0.0115, -0.0101, -0.0170, -0.0050, 0.0174,
--0.0290, -0.0601, -0.0150, 0.0121, 0.0165, 0.0230, 0.0028, -0.0317,
--0.0165, 0.0356, 0.0451, 0.0120, 0.0321, 0.0084, -0.0058, 0.0122,
- 0.1935, 0.1802, 0.2195, 0.2410, 0.2201, 0.1915, 0.1840, 0.1935,
- 0.2213, 0.2079, 0.1858, 0.1974, 0.2239, 0.2173, 0.1840, 0.2120,
- 0.4912, 0.4777, 0.4607, 0.4395, 0.4426, 0.4388, 0.4416, 0.4345,
- 0.4239, 0.4331, 0.4522, 0.4423, 0.4475, 0.4387, 0.4525, 0.4446
-},
-
-.lsp22_2 = {
- 0.0712, 0.1830, 0.4167, 0.6669, 0.8738, 1.0696, 1.2555, 1.4426,
- 1.6427, 1.8138, 1.9966, 2.1925, 2.3872, 2.5748, 2.7713, 2.9597,
- 0.1894, 0.3942, 0.5418, 0.6747, 0.7517, 0.8763, 1.1189, 1.3072,
- 1.5011, 1.6790, 1.8342, 2.0781, 2.2929, 2.4566, 2.6613, 2.9204,
- 0.1767, 0.3403, 0.5173, 0.7055, 0.8899, 1.0696, 1.2302, 1.4111,
- 1.5989, 1.7751, 1.9618, 2.1544, 2.3454, 2.5356, 2.7362, 2.9315,
- 0.1240, 0.2361, 0.4423, 0.6326, 0.7729, 0.9387, 1.1142, 1.2847,
- 1.4746, 1.7126, 1.9482, 2.1642, 2.3536, 2.5506, 2.7593, 2.9197,
- 0.1213, 0.2782, 0.5011, 0.6910, 0.8564, 1.0462, 1.2315, 1.4232,
- 1.6178, 1.8028, 1.9813, 2.1766, 2.3670, 2.5591, 2.7475, 2.9403,
- 0.1382, 0.2995, 0.4693, 0.5874, 0.6929, 0.8102, 1.0094, 1.2960,
- 1.5511, 1.7607, 1.9699, 2.1680, 2.3367, 2.5459, 2.7370, 2.9105,
- 0.1428, 0.2690, 0.3713, 0.4757, 0.6664, 0.9019, 1.1276, 1.3674,
- 1.5471, 1.6695, 1.8261, 2.0572, 2.2753, 2.4963, 2.7187, 2.9114,
- 0.1669, 0.3085, 0.4489, 0.5724, 0.6934, 0.8465, 0.9680, 1.1641,
- 1.4320, 1.6841, 1.8977, 2.1061, 2.3118, 2.5152, 2.7329, 2.9274,
- 0.1128, 0.2709, 0.4803, 0.6878, 0.8673, 1.0693, 1.2749, 1.4657,
- 1.6650, 1.8434, 2.0339, 2.2300, 2.4003, 2.5951, 2.7762, 2.9465,
- 0.1201, 0.2345, 0.4021, 0.6379, 0.8651, 1.0256, 1.1630, 1.3250,
- 1.5395, 1.7808, 2.0011, 2.1997, 2.3618, 2.5505, 2.7561, 2.9351,
- 0.2575, 0.4163, 0.5081, 0.6484, 0.8570, 1.0832, 1.2732, 1.3933,
- 1.5497, 1.7725, 1.9945, 2.2098, 2.3514, 2.5216, 2.7146, 2.8969,
- 0.1367, 0.2656, 0.4470, 0.6398, 0.8146, 1.0125, 1.2142, 1.3960,
- 1.5558, 1.7338, 1.9465, 2.1769, 2.4031, 2.5746, 2.7335, 2.9046,
- 0.0868, 0.1723, 0.2785, 0.5071, 0.7732, 1.0024, 1.1924, 1.4220,
- 1.6149, 1.8064, 1.9951, 2.1935, 2.3777, 2.5748, 2.7661, 2.9488,
- 0.1428, 0.2592, 0.3875, 0.5810, 0.7513, 0.9334, 1.1096, 1.3565,
- 1.5869, 1.7788, 1.9036, 2.0893, 2.3332, 2.5289, 2.7204, 2.9053,
- 0.2313, 0.4066, 0.4960, 0.5853, 0.7799, 0.9201, 1.1365, 1.3499,
- 1.5119, 1.7641, 1.9095, 2.0911, 2.2653, 2.4587, 2.7010, 2.8900,
- 0.1927, 0.3424, 0.4682, 0.6035, 0.7330, 0.8492, 1.0477, 1.3083,
- 1.5602, 1.6945, 1.7806, 2.0066, 2.2566, 2.4864, 2.7021, 2.9180,
- 0.0962, 0.1933, 0.3968, 0.6077, 0.8083, 1.0224, 1.2307, 1.4344,
- 1.6350, 1.8173, 2.0024, 2.1894, 2.3812, 2.5648, 2.7535, 2.9483,
- 0.1469, 0.2679, 0.4272, 0.6080, 0.7949, 0.9247, 1.0741, 1.2722,
- 1.5144, 1.7679, 2.0030, 2.1944, 2.3890, 2.5928, 2.8116, 2.9555,
- 0.1618, 0.3917, 0.6111, 0.7511, 0.8325, 1.0010, 1.2397, 1.4147,
- 1.5764, 1.7359, 1.9300, 2.1325, 2.3096, 2.5480, 2.7725, 2.9697,
- 0.1561, 0.2634, 0.4062, 0.6139, 0.8059, 0.9618, 1.0948, 1.3179,
- 1.5846, 1.7622, 1.9399, 2.1476, 2.3330, 2.5232, 2.7412, 2.9554,
- 0.1076, 0.2320, 0.3977, 0.5798, 0.7707, 0.9975, 1.1884, 1.3793,
- 1.6059, 1.8038, 1.9928, 2.1942, 2.3881, 2.5742, 2.7717, 2.9547,
- 0.1360, 0.2493, 0.3827, 0.5644, 0.7384, 0.9087, 1.0865, 1.2902,
- 1.5185, 1.7246, 1.9170, 2.1175, 2.3324, 2.5442, 2.7441, 2.9437,
- 0.1684, 0.2990, 0.4406, 0.5834, 0.7305, 0.9028, 1.0801, 1.2756,
- 1.4646, 1.6514, 1.8346, 2.0493, 2.2594, 2.4765, 2.6985, 2.9089,
- 0.1145, 0.2295, 0.3421, 0.5032, 0.7007, 0.9057, 1.0830, 1.2733,
- 1.4885, 1.6897, 1.8933, 2.1128, 2.3188, 2.5271, 2.7284, 2.9266,
- 0.1705, 0.3815, 0.6120, 0.7964, 0.9342, 1.0926, 1.2741, 1.4645,
- 1.6552, 1.8040, 1.9778, 2.1931, 2.3836, 2.5827, 2.7905, 2.9494,
- 0.1284, 0.2622, 0.4714, 0.6559, 0.8004, 1.0005, 1.1416, 1.3163,
- 1.5773, 1.8144, 1.9947, 2.2001, 2.3836, 2.5710, 2.7447, 2.9262,
- 0.1164, 0.2882, 0.5349, 0.7310, 0.8483, 0.9729, 1.1331, 1.3350,
- 1.5307, 1.7306, 1.9409, 2.1275, 2.3229, 2.5358, 2.7455, 2.9447,
- 0.1159, 0.2646, 0.4677, 0.6375, 0.7771, 0.9557, 1.1398, 1.3514,
- 1.5717, 1.7512, 1.9337, 2.1323, 2.3272, 2.5409, 2.7377, 2.9212,
- 0.1080, 0.2143, 0.3475, 0.5307, 0.7358, 0.9681, 1.1489, 1.3289,
- 1.5553, 1.7664, 1.9696, 2.1780, 2.3676, 2.5568, 2.7493, 2.9347,
- 0.1331, 0.2430, 0.3879, 0.5092, 0.6324, 0.8119, 1.0327, 1.2657,
- 1.4999, 1.7107, 1.9178, 2.1272, 2.3296, 2.5340, 2.7372, 2.9353,
- 0.1557, 0.2873, 0.4558, 0.6548, 0.8472, 1.0106, 1.1480, 1.3281,
- 1.5856, 1.7740, 1.9564, 2.1651, 2.3295, 2.5207, 2.7005, 2.9151,
- 0.1397, 0.2761, 0.4533, 0.6374, 0.7510, 0.8767, 1.0408, 1.2909,
- 1.5368, 1.7560, 1.9424, 2.1332, 2.3210, 2.5116, 2.6924, 2.8886,
- 0.0945, 0.1653, 0.3601, 0.6129, 0.8378, 1.0333, 1.2417, 1.4539,
- 1.6507, 1.8304, 2.0286, 2.2157, 2.3975, 2.5865, 2.7721, 2.9426,
- 0.1892, 0.3863, 0.4896, 0.5909, 0.7294, 0.9483, 1.1575, 1.3542,
- 1.4796, 1.6535, 1.9070, 2.1435, 2.3281, 2.4967, 2.7039, 2.9222,
- 0.1614, 0.3129, 0.5086, 0.7048, 0.8730, 1.0239, 1.1905, 1.3799,
- 1.5697, 1.7503, 1.9103, 2.1115, 2.3235, 2.5234, 2.6973, 2.8957,
- 0.1199, 0.2590, 0.4273, 0.5935, 0.7542, 0.9625, 1.1225, 1.2998,
- 1.5361, 1.7102, 1.9097, 2.1269, 2.3157, 2.5304, 2.7212, 2.9175,
- 0.1087, 0.2373, 0.4261, 0.6277, 0.8092, 0.9884, 1.1954, 1.4077,
- 1.6048, 1.7799, 1.9693, 2.1662, 2.3426, 2.5501, 2.7459, 2.9257,
- 0.1262, 0.2216, 0.3857, 0.5799, 0.7148, 0.8610, 1.0752, 1.3306,
- 1.5549, 1.7605, 1.9727, 2.1580, 2.3612, 2.5602, 2.7554, 2.9372,
- 0.1445, 0.2832, 0.4469, 0.6283, 0.7991, 0.9796, 1.1504, 1.3323,
- 1.5313, 1.7140, 1.8968, 2.0990, 2.2826, 2.4903, 2.7003, 2.9031,
- 0.1647, 0.4068, 0.5428, 0.6539, 0.7682, 0.8479, 0.9372, 1.1691,
- 1.4776, 1.7314, 1.9071, 2.0918, 2.2774, 2.5029, 2.7152, 2.9221,
- 0.1274, 0.3052, 0.5238, 0.7280, 0.9229, 1.1211, 1.3071, 1.4784,
- 1.6564, 1.8235, 2.0028, 2.1999, 2.3763, 2.5608, 2.7510, 2.9356,
- 0.1076, 0.2195, 0.4815, 0.6873, 0.8241, 0.9443, 1.1066, 1.3687,
- 1.6087, 1.8105, 1.9857, 2.1486, 2.3505, 2.5854, 2.7785, 2.9376,
- 0.1755, 0.3089, 0.4695, 0.6648, 0.8315, 1.0202, 1.1774, 1.3554,
- 1.5393, 1.7141, 1.9247, 2.1284, 2.2983, 2.4975, 2.7296, 2.9401,
- 0.1636, 0.3166, 0.4594, 0.6199, 0.8161, 0.9879, 1.1738, 1.3642,
- 1.5680, 1.7633, 1.9598, 2.1695, 2.3692, 2.5846, 2.7809, 2.9563,
- 0.1219, 0.2662, 0.4620, 0.6491, 0.8353, 1.0150, 1.2065, 1.3944,
- 1.5785, 1.7631, 1.9389, 2.1434, 2.3400, 2.5316, 2.7359, 2.9513,
- 0.1072, 0.2258, 0.3968, 0.5642, 0.7222, 0.9367, 1.1458, 1.3347,
- 1.5424, 1.7373, 1.9303, 2.1432, 2.3451, 2.5415, 2.7444, 2.9394,
- 0.1393, 0.2950, 0.4724, 0.6407, 0.8034, 1.0031, 1.1712, 1.3552,
- 1.5519, 1.7411, 1.9198, 2.1160, 2.3238, 2.5119, 2.7134, 2.9205,
- 0.1358, 0.2613, 0.4239, 0.5991, 0.7643, 0.9379, 1.1213, 1.3115,
- 1.5067, 1.7031, 1.8768, 2.0836, 2.3092, 2.5134, 2.7237, 2.9286,
- 0.1267, 0.2695, 0.4524, 0.6591, 0.8396, 1.0173, 1.2183, 1.4205,
- 1.6306, 1.8162, 2.0106, 2.2082, 2.3773, 2.5787, 2.7551, 2.9387,
- 0.1314, 0.2529, 0.3837, 0.5494, 0.7446, 0.9097, 1.0489, 1.2385,
- 1.4691, 1.7170, 1.9600, 2.1770, 2.3594, 2.5356, 2.7215, 2.9088,
- 0.1538, 0.2931, 0.4449, 0.6041, 0.7959, 0.9666, 1.1355, 1.3214,
- 1.5150, 1.7230, 1.9433, 2.1408, 2.3459, 2.5476, 2.7273, 2.9330,
- 0.1771, 0.2834, 0.4136, 0.5856, 0.7516, 0.9363, 1.0596, 1.2462,
- 1.4737, 1.6627, 1.8810, 2.1150, 2.3202, 2.5274, 2.7403, 2.9490,
- 0.1248, 0.2494, 0.4397, 0.6352, 0.8226, 1.0015, 1.1799, 1.3458,
- 1.5654, 1.8228, 2.0646, 2.2550, 2.4161, 2.5964, 2.7675, 2.9383,
- 0.0933, 0.1993, 0.3105, 0.4371, 0.6417, 0.8935, 1.1244, 1.3508,
- 1.5649, 1.7595, 1.9581, 2.1648, 2.3639, 2.5569, 2.7573, 2.9468,
- 0.1794, 0.3229, 0.4758, 0.6238, 0.7821, 0.9640, 1.1205, 1.3116,
- 1.5054, 1.6803, 1.8658, 2.0651, 2.2793, 2.4856, 2.6867, 2.9105,
- 0.1252, 0.2397, 0.3844, 0.5398, 0.7044, 0.8799, 1.0526, 1.2270,
- 1.4269, 1.6412, 1.8532, 2.0784, 2.2957, 2.5051, 2.7139, 2.9210,
- 0.1391, 0.3494, 0.5738, 0.8024, 1.0098, 1.2094, 1.3830, 1.5509,
- 1.7222, 1.8782, 2.0604, 2.2479, 2.4154, 2.5968, 2.7767, 2.9450,
- 0.1122, 0.2180, 0.4175, 0.6074, 0.7559, 0.9465, 1.1513, 1.3340,
- 1.5215, 1.7491, 1.9911, 2.1894, 2.3433, 2.5377, 2.7380, 2.9183,
- 0.1595, 0.3029, 0.4842, 0.6324, 0.7874, 0.9814, 1.1992, 1.3554,
- 1.5017, 1.7274, 1.9168, 2.0853, 2.2964, 2.5300, 2.7187, 2.9041,
- 0.1350, 0.2747, 0.4791, 0.6638, 0.8050, 0.9644, 1.1238, 1.2987,
- 1.4844, 1.6754, 1.8778, 2.0987, 2.3279, 2.5424, 2.7410, 2.9356,
- 0.0914, 0.1727, 0.3143, 0.5124, 0.7123, 0.9323, 1.1706, 1.3821,
- 1.5864, 1.7828, 1.9701, 2.1560, 2.3445, 2.5486, 2.7433, 2.9372,
- 0.1222, 0.2359, 0.3931, 0.5912, 0.7776, 0.9505, 1.1623, 1.3723,
- 1.5484, 1.7316, 1.9321, 2.1283, 2.3148, 2.5269, 2.7299, 2.9213,
- 0.2089, 0.3872, 0.5090, 0.6413, 0.7967, 1.0226, 1.1897, 1.3908,
- 1.5954, 1.7202, 1.8614, 2.1030, 2.2973, 2.5079, 2.7491, 2.8944,
- 0.1288, 0.2423, 0.4108, 0.6062, 0.7688, 0.9188, 1.0876, 1.2866,
- 1.4897, 1.6910, 1.9219, 2.1076, 2.2805, 2.5023, 2.7155, 2.9203,
- 0.0192, 0.0462, 0.0128, 0.0054, -0.0156, -0.0118, -0.0135, 0.0030,
--0.0120, 0.0031, 0.0240, -0.0451, -0.0439, -0.0432, -0.0527, -0.0207,
- 0.0253, 0.0084, -0.0305, -0.0144, 0.0046, -0.0378, -0.0467, -0.0102,
- 0.0280, 0.0540, 0.0151, 0.0437, 0.0141, -0.0257, -0.0058, 0.0073,
- 0.0107, 0.0054, 0.0371, -0.0105, 0.0165, -0.0143, 0.0148, 0.0382,
--0.0054, -0.0284, 0.0001, -0.0218, 0.0258, 0.0517, 0.0157, -0.0032,
--0.0190, 0.0343, 0.0576, 0.0346, 0.0392, -0.0158, -0.0323, -0.0578,
--0.0617, -0.0242, -0.0144, 0.0188, 0.0249, 0.0021, -0.0422, -0.0420,
- 0.0750, 0.0762, 0.0325, -0.0066, 0.0332, 0.0376, 0.0388, 0.0630,
- 0.0525, 0.0196, 0.0051, -0.0484, -0.0322, 0.0059, 0.0132, 0.0079,
- 0.0237, 0.0774, 0.0697, 0.0184, -0.0321, -0.0327, 0.0274, 0.0284,
- 0.0057, 0.0289, 0.0478, 0.0142, -0.0053, 0.0114, 0.0292, -0.0032,
--0.0111, -0.0389, 0.0282, 0.0613, 0.0200, -0.0006, 0.0111, 0.0048,
- 0.0273, 0.0017, -0.0369, 0.0655, 0.0758, 0.0555, 0.0238, -0.0024,
--0.0100, -0.0419, -0.0696, -0.0158, -0.0479, -0.0744, -0.0356, -0.0245,
--0.0400, -0.0112, 0.0134, 0.0001, -0.0422, -0.0514, -0.0081, 0.0083,
--0.0151, 0.0323, -0.0001, -0.0444, -0.0406, -0.0214, -0.0050, -0.0235,
--0.0205, -0.0264, -0.0324, 0.0334, 0.0392, 0.0265, 0.0289, 0.0180,
- 0.0493, 0.0227, 0.0194, 0.0365, 0.0544, 0.0674, 0.0559, 0.0732,
- 0.0911, 0.0942, 0.0735, 0.0174, -0.0113, -0.0553, -0.0665, -0.0227,
--0.0259, -0.0266, -0.0239, -0.0379, 0.0329, 0.0173, -0.0210, -0.0114,
--0.0063, 0.0060, -0.0089, -0.0198, -0.0282, -0.0080, -0.0179, -0.0290,
- 0.0046, -0.0126, -0.0066, 0.0350, 0.0532, 0.0235, 0.0198, 0.0212,
- 0.0449, 0.0681, 0.0677, -0.0049, 0.0086, 0.0120, 0.0356, 0.0454,
- 0.0592, 0.0449, -0.0271, -0.0510, -0.0110, 0.0234, 0.0203, 0.0243,
- 0.0242, 0.0133, 0.0098, 0.0040, 0.0024, -0.0005, -0.0075, -0.0126,
--0.0393, -0.0052, 0.0165, 0.0016, -0.0193, 0.0239, 0.0336, 0.0029,
--0.0586, -0.0539, -0.0094, -0.0664, -0.0898, -0.0540, -0.0066, 0.0134,
--0.0074, 0.0067, -0.0521, -0.0431, 0.0104, 0.0690, 0.0663, 0.0197,
--0.0017, -0.0518, -0.0597, -0.0171, -0.0054, -0.0140, -0.0080, 0.0172,
--0.0362, -0.0713, -0.0310, 0.0096, 0.0243, 0.0381, -0.0062, -0.0392,
--0.0281, 0.0386, 0.0461, 0.0069, 0.0384, 0.0080, -0.0141, 0.0171,
- 0.3368, 0.3128, 0.3304, 0.3392, 0.3185, 0.3037, 0.2789, 0.2692,
- 0.2779, 0.2796, 0.2891, 0.2643, 0.2647, 0.2593, 0.2927, 0.3283,
- 0.4978, 0.4988, 0.4969, 0.4997, 0.4957, 0.4985, 0.4970, 0.4978,
- 0.4938, 0.4951, 0.4994, 0.4971, 0.4981, 0.4983, 0.4967, 0.4789
-},
-
-.lsp44 = {
- 0.0927, 0.2291, 0.4059, 0.5779, 0.7288, 0.8821, 1.0377, 1.1915,
- 1.3433, 1.4931, 1.6475, 1.7989, 1.9381, 2.0858, 2.2321, 2.3765,
- 2.5187, 2.6530, 2.7895, 2.9354, 0.0944, 0.1974, 0.3046, 0.4714,
- 0.6116, 0.7829, 0.9027, 1.0375, 1.1869, 1.3488, 1.5036, 1.6781,
- 1.8276, 1.9983, 2.1449, 2.3089, 2.4534, 2.6113, 2.7553, 2.9062,
- 0.1168, 0.2843, 0.4907, 0.6706, 0.8100, 0.9417, 1.0753, 1.2014,
- 1.3151, 1.4496, 1.5832, 1.7379, 1.8642, 2.0230, 2.1681, 2.3250,
- 2.4676, 2.6242, 2.7602, 2.9066, 0.1353, 0.2335, 0.3370, 0.4380,
- 0.5819, 0.7353, 0.8671, 1.0160, 1.1435, 1.2977, 1.4860, 1.6739,
- 1.8412, 2.0028, 2.1537, 2.3124, 2.4741, 2.6272, 2.7862, 2.9536,
- 0.1003, 0.2226, 0.3584, 0.4971, 0.6291, 0.7710, 0.9157, 1.0669,
- 1.2143, 1.3624, 1.5104, 1.6681, 1.8164, 1.9823, 2.1394, 2.3082,
- 2.4677, 2.6306, 2.7909, 2.9382, 0.1056, 0.2027, 0.2956, 0.4005,
- 0.5215, 0.6708, 0.8545, 1.0557, 1.2344, 1.4023, 1.5676, 1.7278,
- 1.8808, 2.0381, 2.1846, 2.3376, 2.4887, 2.6377, 2.7878, 2.9504,
- 0.1015, 0.2462, 0.4122, 0.5783, 0.7233, 0.8833, 1.0377, 1.1903,
- 1.3341, 1.4727, 1.6138, 1.7582, 1.8912, 2.0370, 2.1701, 2.3125,
- 2.4500, 2.6006, 2.7507, 2.9166, 0.1787, 0.2418, 0.3265, 0.5379,
- 0.6584, 0.7681, 0.9545, 1.1050, 1.2125, 1.3528, 1.4763, 1.6705,
- 1.8136, 1.9594, 2.0936, 2.2724, 2.4394, 2.5919, 2.7037, 2.8747,
- 0.0859, 0.1600, 0.2980, 0.4933, 0.6696, 0.8285, 0.9958, 1.1545,
- 1.3107, 1.4591, 1.6127, 1.7652, 1.9143, 2.0680, 2.2171, 2.3643,
- 2.5141, 2.6611, 2.8143, 2.9691, 0.0910, 0.2110, 0.3364, 0.4718,
- 0.5856, 0.7298, 0.8910, 1.0514, 1.1988, 1.3572, 1.5178, 1.6861,
- 1.8399, 2.0099, 2.1639, 2.3225, 2.4774, 2.6321, 2.7863, 2.9412,
- 0.1904, 0.2874, 0.3681, 0.4981, 0.6248, 0.7880, 0.9121, 1.0750,
- 1.2185, 1.3809, 1.5296, 1.7007, 1.8592, 2.0470, 2.1913, 2.3250,
- 2.4519, 2.5984, 2.7408, 2.9023, 0.0917, 0.2067, 0.3246, 0.4961,
- 0.6310, 0.8024, 0.9438, 1.1008, 1.2362, 1.3892, 1.5407, 1.7033,
- 1.8427, 2.0061, 2.1498, 2.3117, 2.4550, 2.6053, 2.7462, 2.9029,
- 0.0989, 0.2193, 0.3756, 0.5410, 0.6929, 0.8368, 0.9801, 1.1250,
- 1.2677, 1.4184, 1.5677, 1.7292, 1.8770, 2.0311, 2.1803, 2.3306,
- 2.4836, 2.6339, 2.7943, 2.9549, 0.0861, 0.1943, 0.3057, 0.4867,
- 0.6194, 0.7592, 0.9184, 1.1052, 1.2486, 1.4064, 1.5609, 1.7273,
- 1.8703, 2.0291, 2.1686, 2.3225, 2.4628, 2.6115, 2.7471, 2.9005,
- 0.0932, 0.2110, 0.3737, 0.5479, 0.7120, 0.8570, 0.9975, 1.1364,
- 1.2772, 1.4220, 1.5612, 1.7089, 1.8410, 1.9827, 2.1263, 2.2859,
- 2.4459, 2.6172, 2.7788, 2.9395, 0.1193, 0.2341, 0.3523, 0.5029,
- 0.6437, 0.7803, 0.9367, 1.1007, 1.2392, 1.3869, 1.5425, 1.7168,
- 1.8709, 2.0248, 2.1584, 2.2949, 2.4308, 2.5823, 2.7235, 2.9034,
- 0.0834, 0.1988, 0.3557, 0.5261, 0.6767, 0.8427, 1.0029, 1.1683,
- 1.3138, 1.4527, 1.6046, 1.7583, 1.9011, 2.0517, 2.1928, 2.3397,
- 2.4839, 2.6291, 2.7771, 2.9329, 0.0938, 0.1967, 0.3213, 0.4675,
- 0.6068, 0.7664, 0.9418, 1.1120, 1.2535, 1.3932, 1.5243, 1.6801,
- 1.8346, 1.9931, 2.1376, 2.3035, 2.4636, 2.6244, 2.7829, 2.9371,
- 0.1017, 0.2552, 0.4327, 0.6017, 0.7467, 0.8797, 1.0097, 1.1442,
- 1.2628, 1.4049, 1.5541, 1.7090, 1.8461, 1.9982, 2.1486, 2.3029,
- 2.4513, 2.6075, 2.7594, 2.9209, 0.1031, 0.2295, 0.3747, 0.5122,
- 0.6596, 0.7935, 0.9345, 1.1050, 1.2384, 1.3543, 1.4739, 1.6136,
- 1.7447, 1.8914, 2.0434, 2.1916, 2.3557, 2.5396, 2.7419, 2.9401,
- 0.1007, 0.2374, 0.3715, 0.5173, 0.6465, 0.8069, 0.9553, 1.1145,
- 1.2594, 1.4143, 1.5617, 1.7166, 1.8457, 2.0012, 2.1462, 2.2864,
- 2.4258, 2.5910, 2.7372, 2.9018, 0.0808, 0.1726, 0.2849, 0.4592,
- 0.6118, 0.7853, 0.9588, 1.1256, 1.2751, 1.4392, 1.5898, 1.7514,
- 1.8977, 2.0554, 2.1937, 2.3430, 2.4831, 2.6249, 2.7601, 2.9155,
- 0.1669, 0.2574, 0.3694, 0.5569, 0.6773, 0.8061, 1.0160, 1.1667,
- 1.2791, 1.4041, 1.5452, 1.7207, 1.8524, 2.0038, 2.1414, 2.3338,
- 2.4747, 2.6157, 2.7303, 2.8848, 0.1598, 0.2521, 0.3416, 0.5149,
- 0.6703, 0.7941, 0.9408, 1.1164, 1.2017, 1.3293, 1.4908, 1.6783,
- 1.8438, 1.9927, 2.1149, 2.2698, 2.4420, 2.6193, 2.7583, 2.9103,
- 0.0902, 0.1978, 0.3265, 0.4578, 0.5878, 0.7439, 0.9110, 1.0906,
- 1.2556, 1.4125, 1.5688, 1.7295, 1.8829, 2.0472, 2.2058, 2.3537,
- 2.5075, 2.6548, 2.8058, 2.9538, 0.0818, 0.1695, 0.2794, 0.4470,
- 0.6069, 0.7641, 0.9313, 1.0946, 1.2411, 1.4072, 1.5640, 1.7186,
- 1.8651, 2.0254, 2.1726, 2.3286, 2.4784, 2.6287, 2.7750, 2.9339,
- 0.1980, 0.3134, 0.4099, 0.4975, 0.6491, 0.8376, 0.9441, 1.0298,
- 1.1795, 1.3866, 1.5784, 1.7209, 1.8137, 1.9271, 2.0863, 2.2930,
- 2.4696, 2.6184, 2.7587, 2.9251, 0.1338, 0.2341, 0.3566, 0.4797,
- 0.6129, 0.7580, 0.9093, 1.0491, 1.1911, 1.3313, 1.4841, 1.6503,
- 1.8035, 1.9685, 2.1128, 2.2694, 2.4093, 2.5728, 2.7206, 2.8994,
- 0.0937, 0.2034, 0.3447, 0.5032, 0.6370, 0.7993, 0.9674, 1.1323,
- 1.2830, 1.4199, 1.5492, 1.7010, 1.8513, 2.0087, 2.1550, 2.3115,
- 2.4643, 2.6237, 2.7812, 2.9392, 0.1085, 0.2152, 0.3126, 0.4569,
- 0.5718, 0.7213, 0.8837, 1.0604, 1.2053, 1.3755, 1.5397, 1.7001,
- 1.8409, 2.0039, 2.1498, 2.3080, 2.4535, 2.6063, 2.7505, 2.9110,
- 0.0562, 0.2066, 0.4034, 0.5490, 0.6682, 0.7924, 0.9495, 1.0800,
- 1.1869, 1.3156, 1.4834, 1.6619, 1.8404, 2.0199, 2.1509, 2.2755,
- 2.4072, 2.5580, 2.6993, 2.8913, 0.0939, 0.2303, 0.3742, 0.5260,
- 0.6662, 0.8294, 0.9769, 1.1315, 1.2792, 1.4153, 1.5436, 1.6701,
- 1.8215, 1.9920, 2.1310, 2.3005, 2.4534, 2.5786, 2.7204, 2.9068,
- 0.1005, 0.2442, 0.3898, 0.5398, 0.6958, 0.8474, 1.0008, 1.1556,
- 1.3020, 1.4456, 1.5954, 1.7470, 1.8922, 2.0500, 2.2019, 2.3492,
- 2.4963, 2.6412, 2.7890, 2.9423, 0.1022, 0.2031, 0.3213, 0.4402,
- 0.5637, 0.7117, 0.8673, 1.0242, 1.1727, 1.3206, 1.4846, 1.6465,
- 1.8015, 1.9655, 2.1233, 2.2873, 2.4464, 2.6074, 2.7685, 2.9409,
- 0.1985, 0.3497, 0.4622, 0.5982, 0.7489, 0.8752, 0.9925, 1.1679,
- 1.3288, 1.4606, 1.5820, 1.7492, 1.8922, 2.0511, 2.1780, 2.3373,
- 2.4760, 2.6233, 2.7466, 2.8978, 0.1284, 0.2433, 0.3630, 0.4852,
- 0.6117, 0.7460, 0.8904, 1.0360, 1.1738, 1.3142, 1.4696, 1.6185,
- 1.7719, 1.9318, 2.0961, 2.2697, 2.4408, 2.6046, 2.7681, 2.9451,
- 0.1042, 0.2286, 0.3598, 0.5064, 0.6438, 0.7899, 0.9350, 1.0891,
- 1.2323, 1.3807, 1.5225, 1.6747, 1.8153, 1.9669, 2.1145, 2.2832,
- 2.4430, 2.6085, 2.7748, 2.9346, 0.0780, 0.1724, 0.2440, 0.3489,
- 0.5280, 0.7426, 0.9272, 1.0914, 1.2562, 1.4188, 1.5804, 1.7376,
- 1.8909, 2.0473, 2.1946, 2.3457, 2.4950, 2.6424, 2.7926, 2.9549,
- 0.1103, 0.2608, 0.4087, 0.5538, 0.6923, 0.8418, 0.9940, 1.1507,
- 1.2919, 1.4406, 1.5802, 1.7262, 1.8638, 2.0085, 2.1572, 2.2975,
- 2.4329, 2.5866, 2.7380, 2.9107, 0.1297, 0.2532, 0.4003, 0.5329,
- 0.6733, 0.7950, 0.9557, 1.0859, 1.2235, 1.3538, 1.5037, 1.6389,
- 1.7964, 1.9285, 2.0898, 2.2541, 2.4231, 2.5711, 2.6875, 2.8947,
- 0.0871, 0.1968, 0.3425, 0.4949, 0.6424, 0.7959, 0.9534, 1.1132,
- 1.2656, 1.4229, 1.5785, 1.7271, 1.8729, 2.0355, 2.1998, 2.3562,
- 2.5151, 2.6663, 2.8145, 2.9534, 0.1038, 0.2204, 0.3248, 0.4566,
- 0.5947, 0.7443, 0.8811, 1.0379, 1.2031, 1.3772, 1.5430, 1.7092,
- 1.8625, 2.0322, 2.1904, 2.3417, 2.4960, 2.6458, 2.7979, 2.9485,
- 0.1329, 0.2763, 0.3943, 0.5147, 0.6512, 0.8071, 0.9410, 1.0879,
- 1.2298, 1.3850, 1.5282, 1.6674, 1.8137, 1.9993, 2.1344, 2.2749,
- 2.4257, 2.5863, 2.7410, 2.9184, 0.1052, 0.2142, 0.3584, 0.5033,
- 0.6387, 0.7804, 0.9320, 1.0780, 1.2172, 1.3764, 1.5421, 1.6887,
- 1.8246, 1.9833, 2.1245, 2.2797, 2.4237, 2.5779, 2.7257, 2.9097,
- 0.1092, 0.2676, 0.4071, 0.5355, 0.6661, 0.8142, 0.9621, 1.1173,
- 1.2628, 1.4185, 1.5696, 1.7220, 1.8595, 2.0178, 2.1720, 2.3221,
- 2.4718, 2.6259, 2.7775, 2.9334, 0.0929, 0.2017, 0.3073, 0.4570,
- 0.5775, 0.7635, 0.9299, 1.0832, 1.2334, 1.3935, 1.5420, 1.7112,
- 1.8601, 2.0309, 2.1735, 2.3230, 2.4543, 2.6034, 2.7418, 2.8988,
- 0.0775, 0.2005, 0.3490, 0.5200, 0.6747, 0.8383, 0.9885, 1.1738,
- 1.3141, 1.4236, 1.5892, 1.7402, 1.8474, 2.0210, 2.1593, 2.2730,
- 2.4235, 2.5604, 2.7128, 2.9005, 0.1104, 0.2292, 0.3353, 0.4732,
- 0.6152, 0.7675, 0.9164, 1.0907, 1.2594, 1.4064, 1.5218, 1.6426,
- 1.8018, 1.9937, 2.1362, 2.2961, 2.4523, 2.6083, 2.7613, 2.9202,
- 0.0826, 0.2000, 0.3384, 0.5144, 0.6694, 0.8377, 0.9870, 1.1461,
- 1.2950, 1.4495, 1.5872, 1.7387, 1.8793, 2.0329, 2.1723, 2.3114,
- 2.4415, 2.5908, 2.7354, 2.9028, 0.1063, 0.2268, 0.3442, 0.4735,
- 0.6116, 0.7507, 0.9028, 1.0768, 1.2426, 1.4052, 1.5566, 1.7015,
- 1.8243, 1.9742, 2.1276, 2.2824, 2.4262, 2.5953, 2.7627, 2.9290,
- 0.1150, 0.2814, 0.4543, 0.6095, 0.7373, 0.8592, 0.9908, 1.1108,
- 1.2339, 1.3590, 1.4864, 1.6168, 1.7392, 1.8752, 2.0212, 2.1688,
- 2.3128, 2.4869, 2.7019, 2.9239, 0.0948, 0.2074, 0.3433, 0.4943,
- 0.6346, 0.7645, 0.8809, 1.0610, 1.2307, 1.3487, 1.4655, 1.6186,
- 1.7534, 1.8859, 2.0486, 2.2200, 2.3835, 2.5581, 2.7565, 2.9502,
- 0.1062, 0.2239, 0.3683, 0.5197, 0.6704, 0.8184, 0.9642, 1.1127,
- 1.2556, 1.3976, 1.5405, 1.6940, 1.8375, 1.9888, 2.1377, 2.2980,
- 2.4555, 2.6184, 2.7849, 2.9452, 0.0888, 0.2005, 0.2847, 0.4322,
- 0.5763, 0.7577, 0.9262, 1.1095, 1.2719, 1.4331, 1.5843, 1.7452,
- 1.8845, 2.0385, 2.1805, 2.3345, 2.4750, 2.6217, 2.7555, 2.9013,
- 0.1713, 0.2617, 0.3868, 0.5859, 0.7073, 0.8535, 1.0593, 1.1778,
- 1.3109, 1.4508, 1.5910, 1.7463, 1.8911, 2.0651, 2.2035, 2.3355,
- 2.4947, 2.6440, 2.7424, 2.8943, 0.1346, 0.2549, 0.4089, 0.5488,
- 0.6949, 0.8394, 0.9810, 1.1145, 1.2528, 1.4044, 1.5423, 1.6872,
- 1.8274, 1.9726, 2.1403, 2.2809, 2.4128, 2.5564, 2.6887, 2.8895,
- 0.0776, 0.1621, 0.2553, 0.4191, 0.5988, 0.7921, 0.9651, 1.1350,
- 1.2930, 1.4475, 1.6011, 1.7585, 1.9068, 2.0638, 2.2102, 2.3594,
- 2.5096, 2.6581, 2.8099, 2.9654, 0.0864, 0.1778, 0.2854, 0.4235,
- 0.5568, 0.7220, 0.8963, 1.0609, 1.2217, 1.3830, 1.5422, 1.7018,
- 1.8551, 2.0206, 2.1783, 2.3328, 2.4869, 2.6366, 2.7923, 2.9539,
- 0.1144, 0.2576, 0.4186, 0.5594, 0.6875, 0.8221, 0.9598, 1.0944,
- 1.2273, 1.3713, 1.5152, 1.6628, 1.8070, 1.9525, 2.0965, 2.2535,
- 2.4132, 2.5725, 2.7250, 2.9150, 0.1079, 0.2221, 0.3334, 0.4845,
- 0.6083, 0.7516, 0.9018, 1.0594, 1.2060, 1.3673, 1.5212, 1.6880,
- 1.8208, 1.9831, 2.1269, 2.2909, 2.4366, 2.6027, 2.7339, 2.8924,
- 0.0994, 0.2233, 0.3634, 0.5145, 0.6568, 0.8131, 0.9746, 1.1296,
- 1.2666, 1.4116, 1.5748, 1.7264, 1.8649, 2.0217, 2.1716, 2.3293,
- 2.4900, 2.6455, 2.7818, 2.9362, 0.1120, 0.2079, 0.3128, 0.4124,
- 0.5291, 0.6816, 0.8478, 1.0150, 1.1772, 1.3456, 1.5208, 1.6882,
- 1.8458, 2.0078, 2.1627, 2.3198, 2.4733, 2.6251, 2.7796, 2.9489,
- 0.0853, 0.2030, 0.3669, 0.5326, 0.6678, 0.8086, 0.9526, 1.1142,
- 1.2551, 1.4158, 1.5694, 1.7073, 1.8431, 1.9686, 2.1153, 2.2376,
- 2.3686, 2.5591, 2.7320, 2.9104, 0.0905, 0.2166, 0.3539, 0.5201,
- 0.6700, 0.8346, 0.9883, 1.1457, 1.2714, 1.3845, 1.5172, 1.6688,
- 1.8008, 1.9535, 2.1019, 2.2708, 2.4135, 2.5974, 2.7486, 2.9033,
- 0.0084, 0.0374, 0.0164, -0.0153, 0.0288, 0.0107, -0.0255, -0.0242,
- 0.0000, -0.0055, -0.0081, -0.0075, -0.0022, -0.0052, -0.0069, -0.0017,
- 0.0003, 0.0091, 0.0028, -0.0027, 0.0085, 0.0043, -0.0235, -0.0411,
- 0.0202, 0.0359, 0.0376, 0.0321, 0.0306, -0.0358, -0.0276, -0.0090,
- 0.0032, 0.0048, 0.0309, 0.0332, 0.0284, 0.0237, 0.0051, -0.0101,
--0.0233, -0.0428, -0.0585, -0.0387, 0.0039, 0.0081, 0.0029, -0.0017,
--0.0006, -0.0068, 0.0044, 0.0182, 0.0376, 0.0387, -0.0334, -0.0269,
--0.0182, -0.0069, -0.0026, 0.0035, -0.0049, -0.0212, -0.0408, -0.0245,
- 0.0186, 0.0189, 0.0153, 0.0120, 0.0157, 0.0055, -0.0046, 0.0179,
- 0.0284, -0.0032, -0.0261, -0.0205, -0.0039, 0.0174, 0.0299, 0.0207,
- 0.0012, -0.0056, 0.0010, 0.0141, -0.0119, 0.0190, 0.0315, 0.0033,
--0.0128, 0.0300, 0.0328, 0.0308, 0.0353, 0.0266, 0.0066, -0.0328,
--0.0273, 0.0054, 0.0145, 0.0175, 0.0015, -0.0171, 0.0062, -0.0164,
- 0.0045, -0.0071, 0.0025, 0.0278, 0.0283, 0.0117, -0.0026, -0.0285,
--0.0408, -0.0366, -0.0059, -0.0208, -0.0354, -0.0334, -0.0263, -0.0064,
- 0.0072, -0.0006, -0.0235, -0.0037, -0.0307, -0.0294, -0.0163, -0.0197,
--0.0235, 0.0192, 0.0013, -0.0219, -0.0123, -0.0004, -0.0081, -0.0096,
--0.0123, -0.0101, 0.0021, 0.0151, 0.0106, 0.0151, 0.0292, 0.0033,
- 0.0283, 0.0124, 0.0058, -0.0017, -0.0038, 0.0152, 0.0141, 0.0132,
- 0.0178, 0.0157, 0.0073, 0.0176, 0.0141, 0.0097, -0.0092, -0.0163,
--0.0230, -0.0134, -0.0099, -0.0147, 0.0040, -0.0183, -0.0175, -0.0080,
--0.0083, -0.0290, -0.0417, -0.0398, -0.0269, -0.0199, -0.0143, -0.0053,
--0.0099, -0.0054, -0.0199, -0.0219, -0.0170, 0.0107, 0.0194, 0.0035,
- 0.0437, 0.0406, 0.0215, 0.0120, 0.0053, -0.0028, 0.0238, 0.0337,
- 0.0217, 0.0011, 0.0227, 0.0244, 0.0327, 0.0378, 0.0437, 0.0356,
--0.0033, 0.0113, 0.0407, 0.0334, -0.0125, -0.0003, -0.0141, -0.0273,
--0.0137, -0.0079, -0.0145, -0.0071, 0.0114, 0.0181, 0.0150, 0.0085,
--0.0077, -0.0038, -0.0219, -0.0263, -0.0187, -0.0233, 0.0133, 0.0265,
--0.0156, -0.0091, -0.0110, -0.0016, 0.0143, 0.0177, 0.0240, 0.0082,
--0.0143, -0.0257, -0.0014, 0.0002, 0.0082, 0.0180, 0.0325, 0.0340,
--0.0153, -0.0389, -0.0240, 0.0082, 0.0140, 0.0046, -0.0138, -0.0378,
--0.0366, 0.0297, 0.0252, 0.0078, 0.0063, 0.0006, 0.0044, 0.0074,
- 0.0094, 0.0113, 0.0105, 0.0137, 0.0438, 0.0262, -0.0078, -0.0185,
--0.0215, -0.0407, -0.0435, -0.0208, -0.0004, -0.0144, -0.0205, -0.0248,
--0.0159, -0.0069, -0.0153, 0.0132, 0.0355, 0.0298, 0.0120, 0.0072,
- 0.0236, 0.0526, 0.0479, 0.0233, -0.0133, -0.0283, -0.0468, -0.0549,
--0.0370, 0.0032, 0.0056, 0.0023, 0.0050, 0.0024, 0.0279, 0.0116,
--0.0045, -0.0012, 0.0107, 0.0190, 0.0253, 0.0191, 0.0043, 0.0193,
--0.0348, -0.0246, 0.0123, 0.0210, 0.0135, -0.0096, -0.0109, -0.0076,
--0.0156, -0.0290, 0.0160, 0.0194, 0.0219, 0.0259, 0.0250, 0.0195,
- 0.4948, 0.4961, 0.4940, 0.4878, 0.4849, 0.4727, 0.4571, 0.4551,
- 0.4534, 0.4468, 0.4412, 0.4354, 0.4298, 0.4272, 0.4498, 0.4506,
- 0.4560, 0.4592, 0.4758, 0.4941, 0.2476, 0.1771, 0.1974, 0.1881,
- 0.1667, 0.1826, 0.2067, 0.2031, 0.1734, 0.1534, 0.1415, 0.1761,
- 0.1897, 0.1772, 0.1651, 0.1247, 0.1041, 0.1231, 0.1809, 0.2234
- },
-};
-
-
-static const uint8_t tab7[][35] = {
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},
- {0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},
- {0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},
- {0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0}
-};
-
-static const uint8_t tab8[][5] = {
- {0, 0, 0, 1, 1},
- {0, 1, 0, 0, 1},
- {1, 1, 0, 0, 0},
- {1, 0, 0, 1, 0},
- {0, 0, 0, 1, 1},
- {0, 1, 0, 0, 1},
- {1, 1, 0, 0, 0},
- {1, 0, 0, 1, 0},
- {0, 0, 0, 1, 1},
- {0, 1, 0, 0, 1},
- {1, 1, 0, 0, 0},
- {0, 0, 0, 0, 0},
- {0, 1, 0, 1, 0}
-};
-
-static const uint8_t tab9[][45] = {
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1,
- 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- }
-};
-
-static const uint8_t tab10[][25] =
-{
- {1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0},
- {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0},
- {1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0},
- {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
- {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
- {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
- {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
- {0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}
-};
-
-static const uint8_t tab11[][55] = {
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- },{
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- },{
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }, {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- },{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- },{
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- },{
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- },{
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- }
-};
-
-static const uint8_t tab12[][15] = {
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0},
- {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0},
- {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0},
- {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1},
-};
-
-static const struct {
- int size;
- const uint8_t *tab;
-} tabs[] = {
- {0 , NULL},
- {5 , &tab8 [0][0]},{5 , &tab8 [0][0]}, {15, &tab12[0][0]},
- {5 , &tab8 [0][0]},{25, &tab10[0][0]}, {15, &tab12[0][0]},
- {35, &tab7 [0][0]},{5 , &tab8 [0][0]}, {45, &tab9 [0][0]},
- {25, &tab10[0][0]},{55, &tab11[0][0]}, {15, &tab12[0][0]}
-};
-
-#endif /* AVCODEC_TWINVQ_DATA_H */
+++ /dev/null
-/*
- * IBM Ultimotion Video Decoder
- * copyright (C) 2004 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ULTI_CB_H
-#define AVCODEC_ULTI_CB_H
-
-static const unsigned char ulti_codebook[16384]={
- 0x00, 0x01, 0x01, 0x02,
- 0x00, 0x01, 0x02, 0x03,
- 0x00, 0x02, 0x03, 0x04,
- 0x00, 0x01, 0x03, 0x04,
- 0x00, 0x01, 0x02, 0x04,
- 0x00, 0x02, 0x03, 0x05,
- 0x00, 0x02, 0x04, 0x05,
- 0x00, 0x01, 0x04, 0x05,
- 0x00, 0x01, 0x03, 0x05,
- 0x00, 0x02, 0x04, 0x06,
- 0x00, 0x03, 0x05, 0x06,
- 0x00, 0x01, 0x05, 0x06,
- 0x00, 0x01, 0x03, 0x06,
- 0x00, 0x06, 0x06, 0x06,
- 0x00, 0x00, 0x06, 0x06,
- 0x00, 0x00, 0x00, 0x06,
- 0x00, 0x03, 0x04, 0x07,
- 0x00, 0x03, 0x06, 0x07,
- 0x00, 0x01, 0x06, 0x07,
- 0x00, 0x01, 0x04, 0x07,
- 0x00, 0x03, 0x05, 0x08,
- 0x00, 0x04, 0x06, 0x08,
- 0x00, 0x02, 0x06, 0x08,
- 0x00, 0x02, 0x04, 0x08,
- 0x00, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x04, 0x07, 0x0B,
- 0x00, 0x05, 0x09, 0x0B,
- 0x00, 0x02, 0x09, 0x0B,
- 0x00, 0x02, 0x06, 0x0B,
- 0x00, 0x0B, 0x0B, 0x0B,
- 0x00, 0x00, 0x0B, 0x0B,
- 0x00, 0x00, 0x00, 0x0B,
- 0x00, 0x05, 0x09, 0x0E,
- 0x00, 0x07, 0x0B, 0x0E,
- 0x00, 0x03, 0x0B, 0x0E,
- 0x00, 0x03, 0x07, 0x0E,
- 0x00, 0x0E, 0x0E, 0x0E,
- 0x00, 0x00, 0x0E, 0x0E,
- 0x00, 0x00, 0x00, 0x0E,
- 0x00, 0x06, 0x0B, 0x11,
- 0x00, 0x08, 0x0D, 0x11,
- 0x00, 0x04, 0x0D, 0x11,
- 0x00, 0x04, 0x09, 0x11,
- 0x00, 0x11, 0x11, 0x11,
- 0x00, 0x00, 0x11, 0x11,
- 0x00, 0x00, 0x00, 0x11,
- 0x00, 0x07, 0x0D, 0x14,
- 0x00, 0x0A, 0x0F, 0x14,
- 0x00, 0x05, 0x0F, 0x14,
- 0x00, 0x05, 0x0A, 0x14,
- 0x00, 0x14, 0x14, 0x14,
- 0x00, 0x00, 0x14, 0x14,
- 0x00, 0x00, 0x00, 0x14,
- 0x00, 0x0B, 0x12, 0x17,
- 0x00, 0x05, 0x12, 0x17,
- 0x00, 0x05, 0x0C, 0x17,
- 0x00, 0x17, 0x17, 0x17,
- 0x00, 0x00, 0x17, 0x17,
- 0x00, 0x00, 0x00, 0x17,
- 0x00, 0x0D, 0x14, 0x1A,
- 0x00, 0x06, 0x14, 0x1A,
- 0x00, 0x06, 0x0D, 0x1A,
- 0x00, 0x1A, 0x1A, 0x1A,
- 0x00, 0x00, 0x1A, 0x1A,
- 0x00, 0x00, 0x00, 0x1A,
- 0x00, 0x0E, 0x16, 0x1D,
- 0x00, 0x07, 0x16, 0x1D,
- 0x00, 0x07, 0x0F, 0x1D,
- 0x00, 0x1D, 0x1D, 0x1D,
- 0x00, 0x00, 0x1D, 0x1D,
- 0x00, 0x00, 0x00, 0x1D,
- 0x00, 0x10, 0x18, 0x20,
- 0x00, 0x08, 0x18, 0x20,
- 0x00, 0x08, 0x10, 0x20,
- 0x00, 0x20, 0x20, 0x20,
- 0x00, 0x00, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x20,
- 0x00, 0x23, 0x23, 0x23,
- 0x00, 0x00, 0x23, 0x23,
- 0x00, 0x00, 0x00, 0x23,
- 0x00, 0x12, 0x1B, 0x24,
- 0x00, 0x09, 0x1B, 0x24,
- 0x00, 0x09, 0x12, 0x24,
- 0x00, 0x28, 0x28, 0x28,
- 0x00, 0x00, 0x28, 0x28,
- 0x00, 0x00, 0x00, 0x28,
- 0x00, 0x2E, 0x2E, 0x2E,
- 0x00, 0x00, 0x2E, 0x2E,
- 0x00, 0x00, 0x00, 0x2E,
- 0x01, 0x02, 0x02, 0x03,
- 0x01, 0x02, 0x03, 0x04,
- 0x01, 0x03, 0x04, 0x05,
- 0x01, 0x02, 0x04, 0x05,
- 0x01, 0x02, 0x03, 0x05,
- 0x01, 0x03, 0x04, 0x06,
- 0x01, 0x03, 0x05, 0x06,
- 0x01, 0x02, 0x05, 0x06,
- 0x01, 0x02, 0x04, 0x06,
- 0x01, 0x03, 0x05, 0x07,
- 0x01, 0x04, 0x06, 0x07,
- 0x01, 0x02, 0x06, 0x07,
- 0x01, 0x02, 0x04, 0x07,
- 0x01, 0x07, 0x07, 0x07,
- 0x01, 0x01, 0x07, 0x07,
- 0x01, 0x01, 0x01, 0x07,
- 0x01, 0x04, 0x05, 0x08,
- 0x01, 0x04, 0x07, 0x08,
- 0x01, 0x02, 0x07, 0x08,
- 0x01, 0x02, 0x05, 0x08,
- 0x01, 0x04, 0x06, 0x09,
- 0x01, 0x05, 0x07, 0x09,
- 0x01, 0x03, 0x07, 0x09,
- 0x01, 0x03, 0x05, 0x09,
- 0x01, 0x09, 0x09, 0x09,
- 0x01, 0x01, 0x09, 0x09,
- 0x01, 0x01, 0x01, 0x09,
- 0x01, 0x05, 0x08, 0x0C,
- 0x01, 0x06, 0x0A, 0x0C,
- 0x01, 0x03, 0x0A, 0x0C,
- 0x01, 0x03, 0x07, 0x0C,
- 0x01, 0x0C, 0x0C, 0x0C,
- 0x01, 0x01, 0x0C, 0x0C,
- 0x01, 0x01, 0x01, 0x0C,
- 0x01, 0x06, 0x0A, 0x0F,
- 0x01, 0x08, 0x0C, 0x0F,
- 0x01, 0x04, 0x0C, 0x0F,
- 0x01, 0x04, 0x08, 0x0F,
- 0x01, 0x0F, 0x0F, 0x0F,
- 0x01, 0x01, 0x0F, 0x0F,
- 0x01, 0x01, 0x01, 0x0F,
- 0x01, 0x07, 0x0C, 0x12,
- 0x01, 0x09, 0x0E, 0x12,
- 0x01, 0x05, 0x0E, 0x12,
- 0x01, 0x05, 0x0A, 0x12,
- 0x01, 0x12, 0x12, 0x12,
- 0x01, 0x01, 0x12, 0x12,
- 0x01, 0x01, 0x01, 0x12,
- 0x01, 0x08, 0x0E, 0x15,
- 0x01, 0x0B, 0x10, 0x15,
- 0x01, 0x06, 0x10, 0x15,
- 0x01, 0x06, 0x0B, 0x15,
- 0x01, 0x15, 0x15, 0x15,
- 0x01, 0x01, 0x15, 0x15,
- 0x01, 0x01, 0x01, 0x15,
- 0x01, 0x0C, 0x13, 0x18,
- 0x01, 0x06, 0x13, 0x18,
- 0x01, 0x06, 0x0D, 0x18,
- 0x01, 0x18, 0x18, 0x18,
- 0x01, 0x01, 0x18, 0x18,
- 0x01, 0x01, 0x01, 0x18,
- 0x01, 0x0E, 0x15, 0x1B,
- 0x01, 0x07, 0x15, 0x1B,
- 0x01, 0x07, 0x0E, 0x1B,
- 0x01, 0x1B, 0x1B, 0x1B,
- 0x01, 0x01, 0x1B, 0x1B,
- 0x01, 0x01, 0x01, 0x1B,
- 0x01, 0x0F, 0x17, 0x1E,
- 0x01, 0x08, 0x17, 0x1E,
- 0x01, 0x08, 0x10, 0x1E,
- 0x01, 0x1E, 0x1E, 0x1E,
- 0x01, 0x01, 0x1E, 0x1E,
- 0x01, 0x01, 0x01, 0x1E,
- 0x01, 0x11, 0x19, 0x21,
- 0x01, 0x09, 0x19, 0x21,
- 0x01, 0x09, 0x11, 0x21,
- 0x01, 0x21, 0x21, 0x21,
- 0x01, 0x01, 0x21, 0x21,
- 0x01, 0x01, 0x01, 0x21,
- 0x01, 0x24, 0x24, 0x24,
- 0x01, 0x01, 0x24, 0x24,
- 0x01, 0x01, 0x01, 0x24,
- 0x01, 0x13, 0x1C, 0x25,
- 0x01, 0x0A, 0x1C, 0x25,
- 0x01, 0x0A, 0x13, 0x25,
- 0x01, 0x29, 0x29, 0x29,
- 0x01, 0x01, 0x29, 0x29,
- 0x01, 0x01, 0x01, 0x29,
- 0x01, 0x2F, 0x2F, 0x2F,
- 0x01, 0x01, 0x2F, 0x2F,
- 0x01, 0x01, 0x01, 0x2F,
- 0x02, 0x03, 0x03, 0x04,
- 0x02, 0x03, 0x04, 0x05,
- 0x02, 0x04, 0x05, 0x06,
- 0x02, 0x03, 0x05, 0x06,
- 0x02, 0x03, 0x04, 0x06,
- 0x02, 0x04, 0x05, 0x07,
- 0x02, 0x04, 0x06, 0x07,
- 0x02, 0x03, 0x06, 0x07,
- 0x02, 0x03, 0x05, 0x07,
- 0x02, 0x04, 0x06, 0x08,
- 0x02, 0x05, 0x07, 0x08,
- 0x02, 0x03, 0x07, 0x08,
- 0x02, 0x03, 0x05, 0x08,
- 0x02, 0x08, 0x08, 0x08,
- 0x02, 0x02, 0x08, 0x08,
- 0x02, 0x02, 0x02, 0x08,
- 0x02, 0x05, 0x06, 0x09,
- 0x02, 0x05, 0x08, 0x09,
- 0x02, 0x03, 0x08, 0x09,
- 0x02, 0x03, 0x06, 0x09,
- 0x02, 0x05, 0x07, 0x0A,
- 0x02, 0x06, 0x08, 0x0A,
- 0x02, 0x04, 0x08, 0x0A,
- 0x02, 0x04, 0x06, 0x0A,
- 0x02, 0x0A, 0x0A, 0x0A,
- 0x02, 0x02, 0x0A, 0x0A,
- 0x02, 0x02, 0x02, 0x0A,
- 0x02, 0x06, 0x09, 0x0D,
- 0x02, 0x07, 0x0B, 0x0D,
- 0x02, 0x04, 0x0B, 0x0D,
- 0x02, 0x04, 0x08, 0x0D,
- 0x02, 0x0D, 0x0D, 0x0D,
- 0x02, 0x02, 0x0D, 0x0D,
- 0x02, 0x02, 0x02, 0x0D,
- 0x02, 0x07, 0x0B, 0x10,
- 0x02, 0x09, 0x0D, 0x10,
- 0x02, 0x05, 0x0D, 0x10,
- 0x02, 0x05, 0x09, 0x10,
- 0x02, 0x10, 0x10, 0x10,
- 0x02, 0x02, 0x10, 0x10,
- 0x02, 0x02, 0x02, 0x10,
- 0x02, 0x08, 0x0D, 0x13,
- 0x02, 0x0A, 0x0F, 0x13,
- 0x02, 0x06, 0x0F, 0x13,
- 0x02, 0x06, 0x0B, 0x13,
- 0x02, 0x13, 0x13, 0x13,
- 0x02, 0x02, 0x13, 0x13,
- 0x02, 0x02, 0x02, 0x13,
- 0x02, 0x09, 0x0F, 0x16,
- 0x02, 0x0C, 0x11, 0x16,
- 0x02, 0x07, 0x11, 0x16,
- 0x02, 0x07, 0x0C, 0x16,
- 0x02, 0x16, 0x16, 0x16,
- 0x02, 0x02, 0x16, 0x16,
- 0x02, 0x02, 0x02, 0x16,
- 0x02, 0x0D, 0x14, 0x19,
- 0x02, 0x07, 0x14, 0x19,
- 0x02, 0x07, 0x0E, 0x19,
- 0x02, 0x19, 0x19, 0x19,
- 0x02, 0x02, 0x19, 0x19,
- 0x02, 0x02, 0x02, 0x19,
- 0x02, 0x0F, 0x16, 0x1C,
- 0x02, 0x08, 0x16, 0x1C,
- 0x02, 0x08, 0x0F, 0x1C,
- 0x02, 0x1C, 0x1C, 0x1C,
- 0x02, 0x02, 0x1C, 0x1C,
- 0x02, 0x02, 0x02, 0x1C,
- 0x02, 0x10, 0x18, 0x1F,
- 0x02, 0x09, 0x18, 0x1F,
- 0x02, 0x09, 0x11, 0x1F,
- 0x02, 0x1F, 0x1F, 0x1F,
- 0x02, 0x02, 0x1F, 0x1F,
- 0x02, 0x02, 0x02, 0x1F,
- 0x02, 0x12, 0x1A, 0x22,
- 0x02, 0x0A, 0x1A, 0x22,
- 0x02, 0x0A, 0x12, 0x22,
- 0x02, 0x22, 0x22, 0x22,
- 0x02, 0x02, 0x22, 0x22,
- 0x02, 0x02, 0x02, 0x22,
- 0x02, 0x25, 0x25, 0x25,
- 0x02, 0x02, 0x25, 0x25,
- 0x02, 0x02, 0x02, 0x25,
- 0x02, 0x14, 0x1D, 0x26,
- 0x02, 0x0B, 0x1D, 0x26,
- 0x02, 0x0B, 0x14, 0x26,
- 0x02, 0x2A, 0x2A, 0x2A,
- 0x02, 0x02, 0x2A, 0x2A,
- 0x02, 0x02, 0x02, 0x2A,
- 0x02, 0x30, 0x30, 0x30,
- 0x02, 0x02, 0x30, 0x30,
- 0x02, 0x02, 0x02, 0x30,
- 0x03, 0x04, 0x04, 0x05,
- 0x03, 0x04, 0x05, 0x06,
- 0x03, 0x05, 0x06, 0x07,
- 0x03, 0x04, 0x06, 0x07,
- 0x03, 0x04, 0x05, 0x07,
- 0x03, 0x05, 0x06, 0x08,
- 0x03, 0x05, 0x07, 0x08,
- 0x03, 0x04, 0x07, 0x08,
- 0x03, 0x04, 0x06, 0x08,
- 0x03, 0x05, 0x07, 0x09,
- 0x03, 0x06, 0x08, 0x09,
- 0x03, 0x04, 0x08, 0x09,
- 0x03, 0x04, 0x06, 0x09,
- 0x03, 0x09, 0x09, 0x09,
- 0x03, 0x03, 0x09, 0x09,
- 0x03, 0x03, 0x03, 0x09,
- 0x03, 0x06, 0x07, 0x0A,
- 0x03, 0x06, 0x09, 0x0A,
- 0x03, 0x04, 0x09, 0x0A,
- 0x03, 0x04, 0x07, 0x0A,
- 0x03, 0x06, 0x08, 0x0B,
- 0x03, 0x07, 0x09, 0x0B,
- 0x03, 0x05, 0x09, 0x0B,
- 0x03, 0x05, 0x07, 0x0B,
- 0x03, 0x0B, 0x0B, 0x0B,
- 0x03, 0x03, 0x0B, 0x0B,
- 0x03, 0x03, 0x03, 0x0B,
- 0x03, 0x07, 0x0A, 0x0E,
- 0x03, 0x08, 0x0C, 0x0E,
- 0x03, 0x05, 0x0C, 0x0E,
- 0x03, 0x05, 0x09, 0x0E,
- 0x03, 0x0E, 0x0E, 0x0E,
- 0x03, 0x03, 0x0E, 0x0E,
- 0x03, 0x03, 0x03, 0x0E,
- 0x03, 0x08, 0x0C, 0x11,
- 0x03, 0x0A, 0x0E, 0x11,
- 0x03, 0x06, 0x0E, 0x11,
- 0x03, 0x06, 0x0A, 0x11,
- 0x03, 0x11, 0x11, 0x11,
- 0x03, 0x03, 0x11, 0x11,
- 0x03, 0x03, 0x03, 0x11,
- 0x03, 0x09, 0x0E, 0x14,
- 0x03, 0x0B, 0x10, 0x14,
- 0x03, 0x07, 0x10, 0x14,
- 0x03, 0x07, 0x0C, 0x14,
- 0x03, 0x14, 0x14, 0x14,
- 0x03, 0x03, 0x14, 0x14,
- 0x03, 0x03, 0x03, 0x14,
- 0x03, 0x0A, 0x10, 0x17,
- 0x03, 0x0D, 0x12, 0x17,
- 0x03, 0x08, 0x12, 0x17,
- 0x03, 0x08, 0x0D, 0x17,
- 0x03, 0x17, 0x17, 0x17,
- 0x03, 0x03, 0x17, 0x17,
- 0x03, 0x03, 0x03, 0x17,
- 0x03, 0x0E, 0x15, 0x1A,
- 0x03, 0x08, 0x15, 0x1A,
- 0x03, 0x08, 0x0F, 0x1A,
- 0x03, 0x1A, 0x1A, 0x1A,
- 0x03, 0x03, 0x1A, 0x1A,
- 0x03, 0x03, 0x03, 0x1A,
- 0x03, 0x10, 0x17, 0x1D,
- 0x03, 0x09, 0x17, 0x1D,
- 0x03, 0x09, 0x10, 0x1D,
- 0x03, 0x1D, 0x1D, 0x1D,
- 0x03, 0x03, 0x1D, 0x1D,
- 0x03, 0x03, 0x03, 0x1D,
- 0x03, 0x11, 0x19, 0x20,
- 0x03, 0x0A, 0x19, 0x20,
- 0x03, 0x0A, 0x12, 0x20,
- 0x03, 0x20, 0x20, 0x20,
- 0x03, 0x03, 0x20, 0x20,
- 0x03, 0x03, 0x03, 0x20,
- 0x03, 0x13, 0x1B, 0x23,
- 0x03, 0x0B, 0x1B, 0x23,
- 0x03, 0x0B, 0x13, 0x23,
- 0x03, 0x23, 0x23, 0x23,
- 0x03, 0x03, 0x23, 0x23,
- 0x03, 0x03, 0x03, 0x23,
- 0x03, 0x26, 0x26, 0x26,
- 0x03, 0x03, 0x26, 0x26,
- 0x03, 0x03, 0x03, 0x26,
- 0x03, 0x15, 0x1E, 0x27,
- 0x03, 0x0C, 0x1E, 0x27,
- 0x03, 0x0C, 0x15, 0x27,
- 0x03, 0x2B, 0x2B, 0x2B,
- 0x03, 0x03, 0x2B, 0x2B,
- 0x03, 0x03, 0x03, 0x2B,
- 0x03, 0x31, 0x31, 0x31,
- 0x03, 0x03, 0x31, 0x31,
- 0x03, 0x03, 0x03, 0x31,
- 0x04, 0x05, 0x05, 0x06,
- 0x04, 0x05, 0x06, 0x07,
- 0x04, 0x06, 0x07, 0x08,
- 0x04, 0x05, 0x07, 0x08,
- 0x04, 0x05, 0x06, 0x08,
- 0x04, 0x06, 0x07, 0x09,
- 0x04, 0x06, 0x08, 0x09,
- 0x04, 0x05, 0x08, 0x09,
- 0x04, 0x05, 0x07, 0x09,
- 0x04, 0x06, 0x08, 0x0A,
- 0x04, 0x07, 0x09, 0x0A,
- 0x04, 0x05, 0x09, 0x0A,
- 0x04, 0x05, 0x07, 0x0A,
- 0x04, 0x0A, 0x0A, 0x0A,
- 0x04, 0x04, 0x0A, 0x0A,
- 0x04, 0x04, 0x04, 0x0A,
- 0x04, 0x07, 0x08, 0x0B,
- 0x04, 0x07, 0x0A, 0x0B,
- 0x04, 0x05, 0x0A, 0x0B,
- 0x04, 0x05, 0x08, 0x0B,
- 0x04, 0x07, 0x09, 0x0C,
- 0x04, 0x08, 0x0A, 0x0C,
- 0x04, 0x06, 0x0A, 0x0C,
- 0x04, 0x06, 0x08, 0x0C,
- 0x04, 0x0C, 0x0C, 0x0C,
- 0x04, 0x04, 0x0C, 0x0C,
- 0x04, 0x04, 0x04, 0x0C,
- 0x04, 0x08, 0x0B, 0x0F,
- 0x04, 0x09, 0x0D, 0x0F,
- 0x04, 0x06, 0x0D, 0x0F,
- 0x04, 0x06, 0x0A, 0x0F,
- 0x04, 0x0F, 0x0F, 0x0F,
- 0x04, 0x04, 0x0F, 0x0F,
- 0x04, 0x04, 0x04, 0x0F,
- 0x04, 0x09, 0x0D, 0x12,
- 0x04, 0x0B, 0x0F, 0x12,
- 0x04, 0x07, 0x0F, 0x12,
- 0x04, 0x07, 0x0B, 0x12,
- 0x04, 0x12, 0x12, 0x12,
- 0x04, 0x04, 0x12, 0x12,
- 0x04, 0x04, 0x04, 0x12,
- 0x04, 0x0A, 0x0F, 0x15,
- 0x04, 0x0C, 0x11, 0x15,
- 0x04, 0x08, 0x11, 0x15,
- 0x04, 0x08, 0x0D, 0x15,
- 0x04, 0x15, 0x15, 0x15,
- 0x04, 0x04, 0x15, 0x15,
- 0x04, 0x04, 0x04, 0x15,
- 0x04, 0x0B, 0x11, 0x18,
- 0x04, 0x0E, 0x13, 0x18,
- 0x04, 0x09, 0x13, 0x18,
- 0x04, 0x09, 0x0E, 0x18,
- 0x04, 0x18, 0x18, 0x18,
- 0x04, 0x04, 0x18, 0x18,
- 0x04, 0x04, 0x04, 0x18,
- 0x04, 0x0F, 0x16, 0x1B,
- 0x04, 0x09, 0x16, 0x1B,
- 0x04, 0x09, 0x10, 0x1B,
- 0x04, 0x1B, 0x1B, 0x1B,
- 0x04, 0x04, 0x1B, 0x1B,
- 0x04, 0x04, 0x04, 0x1B,
- 0x04, 0x11, 0x18, 0x1E,
- 0x04, 0x0A, 0x18, 0x1E,
- 0x04, 0x0A, 0x11, 0x1E,
- 0x04, 0x1E, 0x1E, 0x1E,
- 0x04, 0x04, 0x1E, 0x1E,
- 0x04, 0x04, 0x04, 0x1E,
- 0x04, 0x12, 0x1A, 0x21,
- 0x04, 0x0B, 0x1A, 0x21,
- 0x04, 0x0B, 0x13, 0x21,
- 0x04, 0x21, 0x21, 0x21,
- 0x04, 0x04, 0x21, 0x21,
- 0x04, 0x04, 0x04, 0x21,
- 0x04, 0x14, 0x1C, 0x24,
- 0x04, 0x0C, 0x1C, 0x24,
- 0x04, 0x0C, 0x14, 0x24,
- 0x04, 0x24, 0x24, 0x24,
- 0x04, 0x04, 0x24, 0x24,
- 0x04, 0x04, 0x04, 0x24,
- 0x04, 0x27, 0x27, 0x27,
- 0x04, 0x04, 0x27, 0x27,
- 0x04, 0x04, 0x04, 0x27,
- 0x04, 0x16, 0x1F, 0x28,
- 0x04, 0x0D, 0x1F, 0x28,
- 0x04, 0x0D, 0x16, 0x28,
- 0x04, 0x2C, 0x2C, 0x2C,
- 0x04, 0x04, 0x2C, 0x2C,
- 0x04, 0x04, 0x04, 0x2C,
- 0x04, 0x32, 0x32, 0x32,
- 0x04, 0x04, 0x32, 0x32,
- 0x04, 0x04, 0x04, 0x32,
- 0x05, 0x06, 0x06, 0x07,
- 0x05, 0x06, 0x07, 0x08,
- 0x05, 0x07, 0x08, 0x09,
- 0x05, 0x06, 0x08, 0x09,
- 0x05, 0x06, 0x07, 0x09,
- 0x05, 0x07, 0x08, 0x0A,
- 0x05, 0x07, 0x09, 0x0A,
- 0x05, 0x06, 0x09, 0x0A,
- 0x05, 0x06, 0x08, 0x0A,
- 0x05, 0x07, 0x09, 0x0B,
- 0x05, 0x08, 0x0A, 0x0B,
- 0x05, 0x06, 0x0A, 0x0B,
- 0x05, 0x06, 0x08, 0x0B,
- 0x05, 0x0B, 0x0B, 0x0B,
- 0x05, 0x05, 0x0B, 0x0B,
- 0x05, 0x05, 0x05, 0x0B,
- 0x05, 0x08, 0x09, 0x0C,
- 0x05, 0x08, 0x0B, 0x0C,
- 0x05, 0x06, 0x0B, 0x0C,
- 0x05, 0x06, 0x09, 0x0C,
- 0x05, 0x08, 0x0A, 0x0D,
- 0x05, 0x09, 0x0B, 0x0D,
- 0x05, 0x07, 0x0B, 0x0D,
- 0x05, 0x07, 0x09, 0x0D,
- 0x05, 0x0D, 0x0D, 0x0D,
- 0x05, 0x05, 0x0D, 0x0D,
- 0x05, 0x05, 0x05, 0x0D,
- 0x05, 0x09, 0x0C, 0x10,
- 0x05, 0x0A, 0x0E, 0x10,
- 0x05, 0x07, 0x0E, 0x10,
- 0x05, 0x07, 0x0B, 0x10,
- 0x05, 0x10, 0x10, 0x10,
- 0x05, 0x05, 0x10, 0x10,
- 0x05, 0x05, 0x05, 0x10,
- 0x05, 0x0A, 0x0E, 0x13,
- 0x05, 0x0C, 0x10, 0x13,
- 0x05, 0x08, 0x10, 0x13,
- 0x05, 0x08, 0x0C, 0x13,
- 0x05, 0x13, 0x13, 0x13,
- 0x05, 0x05, 0x13, 0x13,
- 0x05, 0x05, 0x05, 0x13,
- 0x05, 0x0B, 0x10, 0x16,
- 0x05, 0x0D, 0x12, 0x16,
- 0x05, 0x09, 0x12, 0x16,
- 0x05, 0x09, 0x0E, 0x16,
- 0x05, 0x16, 0x16, 0x16,
- 0x05, 0x05, 0x16, 0x16,
- 0x05, 0x05, 0x05, 0x16,
- 0x05, 0x0C, 0x12, 0x19,
- 0x05, 0x0F, 0x14, 0x19,
- 0x05, 0x0A, 0x14, 0x19,
- 0x05, 0x0A, 0x0F, 0x19,
- 0x05, 0x19, 0x19, 0x19,
- 0x05, 0x05, 0x19, 0x19,
- 0x05, 0x05, 0x05, 0x19,
- 0x05, 0x10, 0x17, 0x1C,
- 0x05, 0x0A, 0x17, 0x1C,
- 0x05, 0x0A, 0x11, 0x1C,
- 0x05, 0x1C, 0x1C, 0x1C,
- 0x05, 0x05, 0x1C, 0x1C,
- 0x05, 0x05, 0x05, 0x1C,
- 0x05, 0x12, 0x19, 0x1F,
- 0x05, 0x0B, 0x19, 0x1F,
- 0x05, 0x0B, 0x12, 0x1F,
- 0x05, 0x1F, 0x1F, 0x1F,
- 0x05, 0x05, 0x1F, 0x1F,
- 0x05, 0x05, 0x05, 0x1F,
- 0x05, 0x13, 0x1B, 0x22,
- 0x05, 0x0C, 0x1B, 0x22,
- 0x05, 0x0C, 0x14, 0x22,
- 0x05, 0x22, 0x22, 0x22,
- 0x05, 0x05, 0x22, 0x22,
- 0x05, 0x05, 0x05, 0x22,
- 0x05, 0x15, 0x1D, 0x25,
- 0x05, 0x0D, 0x1D, 0x25,
- 0x05, 0x0D, 0x15, 0x25,
- 0x05, 0x25, 0x25, 0x25,
- 0x05, 0x05, 0x25, 0x25,
- 0x05, 0x05, 0x05, 0x25,
- 0x05, 0x28, 0x28, 0x28,
- 0x05, 0x05, 0x28, 0x28,
- 0x05, 0x05, 0x05, 0x28,
- 0x05, 0x17, 0x20, 0x29,
- 0x05, 0x0E, 0x20, 0x29,
- 0x05, 0x0E, 0x17, 0x29,
- 0x05, 0x2D, 0x2D, 0x2D,
- 0x05, 0x05, 0x2D, 0x2D,
- 0x05, 0x05, 0x05, 0x2D,
- 0x05, 0x33, 0x33, 0x33,
- 0x05, 0x05, 0x33, 0x33,
- 0x05, 0x05, 0x05, 0x33,
- 0x06, 0x07, 0x07, 0x08,
- 0x06, 0x07, 0x08, 0x09,
- 0x06, 0x08, 0x09, 0x0A,
- 0x06, 0x07, 0x09, 0x0A,
- 0x06, 0x07, 0x08, 0x0A,
- 0x06, 0x08, 0x09, 0x0B,
- 0x06, 0x08, 0x0A, 0x0B,
- 0x06, 0x07, 0x0A, 0x0B,
- 0x06, 0x07, 0x09, 0x0B,
- 0x06, 0x08, 0x0A, 0x0C,
- 0x06, 0x09, 0x0B, 0x0C,
- 0x06, 0x07, 0x0B, 0x0C,
- 0x06, 0x07, 0x09, 0x0C,
- 0x06, 0x0C, 0x0C, 0x0C,
- 0x06, 0x06, 0x0C, 0x0C,
- 0x06, 0x06, 0x06, 0x0C,
- 0x06, 0x09, 0x0A, 0x0D,
- 0x06, 0x09, 0x0C, 0x0D,
- 0x06, 0x07, 0x0C, 0x0D,
- 0x06, 0x07, 0x0A, 0x0D,
- 0x06, 0x09, 0x0B, 0x0E,
- 0x06, 0x0A, 0x0C, 0x0E,
- 0x06, 0x08, 0x0C, 0x0E,
- 0x06, 0x08, 0x0A, 0x0E,
- 0x06, 0x0E, 0x0E, 0x0E,
- 0x06, 0x06, 0x0E, 0x0E,
- 0x06, 0x06, 0x06, 0x0E,
- 0x06, 0x0A, 0x0D, 0x11,
- 0x06, 0x0B, 0x0F, 0x11,
- 0x06, 0x08, 0x0F, 0x11,
- 0x06, 0x08, 0x0C, 0x11,
- 0x06, 0x11, 0x11, 0x11,
- 0x06, 0x06, 0x11, 0x11,
- 0x06, 0x06, 0x06, 0x11,
- 0x06, 0x0B, 0x0F, 0x14,
- 0x06, 0x0D, 0x11, 0x14,
- 0x06, 0x09, 0x11, 0x14,
- 0x06, 0x09, 0x0D, 0x14,
- 0x06, 0x14, 0x14, 0x14,
- 0x06, 0x06, 0x14, 0x14,
- 0x06, 0x06, 0x06, 0x14,
- 0x06, 0x0C, 0x11, 0x17,
- 0x06, 0x0E, 0x13, 0x17,
- 0x06, 0x0A, 0x13, 0x17,
- 0x06, 0x0A, 0x0F, 0x17,
- 0x06, 0x17, 0x17, 0x17,
- 0x06, 0x06, 0x17, 0x17,
- 0x06, 0x06, 0x06, 0x17,
- 0x06, 0x0D, 0x13, 0x1A,
- 0x06, 0x10, 0x15, 0x1A,
- 0x06, 0x0B, 0x15, 0x1A,
- 0x06, 0x0B, 0x10, 0x1A,
- 0x06, 0x1A, 0x1A, 0x1A,
- 0x06, 0x06, 0x1A, 0x1A,
- 0x06, 0x06, 0x06, 0x1A,
- 0x06, 0x11, 0x18, 0x1D,
- 0x06, 0x0B, 0x18, 0x1D,
- 0x06, 0x0B, 0x12, 0x1D,
- 0x06, 0x1D, 0x1D, 0x1D,
- 0x06, 0x06, 0x1D, 0x1D,
- 0x06, 0x06, 0x06, 0x1D,
- 0x06, 0x13, 0x1A, 0x20,
- 0x06, 0x0C, 0x1A, 0x20,
- 0x06, 0x0C, 0x13, 0x20,
- 0x06, 0x20, 0x20, 0x20,
- 0x06, 0x06, 0x20, 0x20,
- 0x06, 0x06, 0x06, 0x20,
- 0x06, 0x14, 0x1C, 0x23,
- 0x06, 0x0D, 0x1C, 0x23,
- 0x06, 0x0D, 0x15, 0x23,
- 0x06, 0x23, 0x23, 0x23,
- 0x06, 0x06, 0x23, 0x23,
- 0x06, 0x06, 0x06, 0x23,
- 0x06, 0x16, 0x1E, 0x26,
- 0x06, 0x0E, 0x1E, 0x26,
- 0x06, 0x0E, 0x16, 0x26,
- 0x06, 0x26, 0x26, 0x26,
- 0x06, 0x06, 0x26, 0x26,
- 0x06, 0x06, 0x06, 0x26,
- 0x06, 0x29, 0x29, 0x29,
- 0x06, 0x06, 0x29, 0x29,
- 0x06, 0x06, 0x06, 0x29,
- 0x06, 0x18, 0x21, 0x2A,
- 0x06, 0x0F, 0x21, 0x2A,
- 0x06, 0x0F, 0x18, 0x2A,
- 0x06, 0x2E, 0x2E, 0x2E,
- 0x06, 0x06, 0x2E, 0x2E,
- 0x06, 0x06, 0x06, 0x2E,
- 0x06, 0x34, 0x34, 0x34,
- 0x06, 0x06, 0x34, 0x34,
- 0x06, 0x06, 0x06, 0x34,
- 0x07, 0x08, 0x08, 0x09,
- 0x07, 0x08, 0x09, 0x0A,
- 0x07, 0x09, 0x0A, 0x0B,
- 0x07, 0x08, 0x0A, 0x0B,
- 0x07, 0x08, 0x09, 0x0B,
- 0x07, 0x09, 0x0A, 0x0C,
- 0x07, 0x09, 0x0B, 0x0C,
- 0x07, 0x08, 0x0B, 0x0C,
- 0x07, 0x08, 0x0A, 0x0C,
- 0x07, 0x09, 0x0B, 0x0D,
- 0x07, 0x0A, 0x0C, 0x0D,
- 0x07, 0x08, 0x0C, 0x0D,
- 0x07, 0x08, 0x0A, 0x0D,
- 0x07, 0x0D, 0x0D, 0x0D,
- 0x07, 0x07, 0x0D, 0x0D,
- 0x07, 0x07, 0x07, 0x0D,
- 0x07, 0x0A, 0x0B, 0x0E,
- 0x07, 0x0A, 0x0D, 0x0E,
- 0x07, 0x08, 0x0D, 0x0E,
- 0x07, 0x08, 0x0B, 0x0E,
- 0x07, 0x0A, 0x0C, 0x0F,
- 0x07, 0x0B, 0x0D, 0x0F,
- 0x07, 0x09, 0x0D, 0x0F,
- 0x07, 0x09, 0x0B, 0x0F,
- 0x07, 0x0F, 0x0F, 0x0F,
- 0x07, 0x07, 0x0F, 0x0F,
- 0x07, 0x07, 0x07, 0x0F,
- 0x07, 0x0B, 0x0E, 0x12,
- 0x07, 0x0C, 0x10, 0x12,
- 0x07, 0x09, 0x10, 0x12,
- 0x07, 0x09, 0x0D, 0x12,
- 0x07, 0x12, 0x12, 0x12,
- 0x07, 0x07, 0x12, 0x12,
- 0x07, 0x07, 0x07, 0x12,
- 0x07, 0x0C, 0x10, 0x15,
- 0x07, 0x0E, 0x12, 0x15,
- 0x07, 0x0A, 0x12, 0x15,
- 0x07, 0x0A, 0x0E, 0x15,
- 0x07, 0x15, 0x15, 0x15,
- 0x07, 0x07, 0x15, 0x15,
- 0x07, 0x07, 0x07, 0x15,
- 0x07, 0x0D, 0x12, 0x18,
- 0x07, 0x0F, 0x14, 0x18,
- 0x07, 0x0B, 0x14, 0x18,
- 0x07, 0x0B, 0x10, 0x18,
- 0x07, 0x18, 0x18, 0x18,
- 0x07, 0x07, 0x18, 0x18,
- 0x07, 0x07, 0x07, 0x18,
- 0x07, 0x0E, 0x14, 0x1B,
- 0x07, 0x11, 0x16, 0x1B,
- 0x07, 0x0C, 0x16, 0x1B,
- 0x07, 0x0C, 0x11, 0x1B,
- 0x07, 0x1B, 0x1B, 0x1B,
- 0x07, 0x07, 0x1B, 0x1B,
- 0x07, 0x07, 0x07, 0x1B,
- 0x07, 0x12, 0x19, 0x1E,
- 0x07, 0x0C, 0x19, 0x1E,
- 0x07, 0x0C, 0x13, 0x1E,
- 0x07, 0x1E, 0x1E, 0x1E,
- 0x07, 0x07, 0x1E, 0x1E,
- 0x07, 0x07, 0x07, 0x1E,
- 0x07, 0x14, 0x1B, 0x21,
- 0x07, 0x0D, 0x1B, 0x21,
- 0x07, 0x0D, 0x14, 0x21,
- 0x07, 0x21, 0x21, 0x21,
- 0x07, 0x07, 0x21, 0x21,
- 0x07, 0x07, 0x07, 0x21,
- 0x07, 0x15, 0x1D, 0x24,
- 0x07, 0x0E, 0x1D, 0x24,
- 0x07, 0x0E, 0x16, 0x24,
- 0x07, 0x24, 0x24, 0x24,
- 0x07, 0x07, 0x24, 0x24,
- 0x07, 0x07, 0x07, 0x24,
- 0x07, 0x17, 0x1F, 0x27,
- 0x07, 0x0F, 0x1F, 0x27,
- 0x07, 0x0F, 0x17, 0x27,
- 0x07, 0x27, 0x27, 0x27,
- 0x07, 0x07, 0x27, 0x27,
- 0x07, 0x07, 0x07, 0x27,
- 0x07, 0x2A, 0x2A, 0x2A,
- 0x07, 0x07, 0x2A, 0x2A,
- 0x07, 0x07, 0x07, 0x2A,
- 0x07, 0x19, 0x22, 0x2B,
- 0x07, 0x10, 0x22, 0x2B,
- 0x07, 0x10, 0x19, 0x2B,
- 0x07, 0x2F, 0x2F, 0x2F,
- 0x07, 0x07, 0x2F, 0x2F,
- 0x07, 0x07, 0x07, 0x2F,
- 0x07, 0x35, 0x35, 0x35,
- 0x07, 0x07, 0x35, 0x35,
- 0x07, 0x07, 0x07, 0x35,
- 0x08, 0x09, 0x09, 0x0A,
- 0x08, 0x09, 0x0A, 0x0B,
- 0x08, 0x0A, 0x0B, 0x0C,
- 0x08, 0x09, 0x0B, 0x0C,
- 0x08, 0x09, 0x0A, 0x0C,
- 0x08, 0x0A, 0x0B, 0x0D,
- 0x08, 0x0A, 0x0C, 0x0D,
- 0x08, 0x09, 0x0C, 0x0D,
- 0x08, 0x09, 0x0B, 0x0D,
- 0x08, 0x0A, 0x0C, 0x0E,
- 0x08, 0x0B, 0x0D, 0x0E,
- 0x08, 0x09, 0x0D, 0x0E,
- 0x08, 0x09, 0x0B, 0x0E,
- 0x08, 0x0E, 0x0E, 0x0E,
- 0x08, 0x08, 0x0E, 0x0E,
- 0x08, 0x08, 0x08, 0x0E,
- 0x08, 0x0B, 0x0C, 0x0F,
- 0x08, 0x0B, 0x0E, 0x0F,
- 0x08, 0x09, 0x0E, 0x0F,
- 0x08, 0x09, 0x0C, 0x0F,
- 0x08, 0x0B, 0x0D, 0x10,
- 0x08, 0x0C, 0x0E, 0x10,
- 0x08, 0x0A, 0x0E, 0x10,
- 0x08, 0x0A, 0x0C, 0x10,
- 0x08, 0x10, 0x10, 0x10,
- 0x08, 0x08, 0x10, 0x10,
- 0x08, 0x08, 0x08, 0x10,
- 0x08, 0x0C, 0x0F, 0x13,
- 0x08, 0x0D, 0x11, 0x13,
- 0x08, 0x0A, 0x11, 0x13,
- 0x08, 0x0A, 0x0E, 0x13,
- 0x08, 0x13, 0x13, 0x13,
- 0x08, 0x08, 0x13, 0x13,
- 0x08, 0x08, 0x08, 0x13,
- 0x08, 0x0D, 0x11, 0x16,
- 0x08, 0x0F, 0x13, 0x16,
- 0x08, 0x0B, 0x13, 0x16,
- 0x08, 0x0B, 0x0F, 0x16,
- 0x08, 0x16, 0x16, 0x16,
- 0x08, 0x08, 0x16, 0x16,
- 0x08, 0x08, 0x08, 0x16,
- 0x08, 0x0E, 0x13, 0x19,
- 0x08, 0x10, 0x15, 0x19,
- 0x08, 0x0C, 0x15, 0x19,
- 0x08, 0x0C, 0x11, 0x19,
- 0x08, 0x19, 0x19, 0x19,
- 0x08, 0x08, 0x19, 0x19,
- 0x08, 0x08, 0x08, 0x19,
- 0x08, 0x0F, 0x15, 0x1C,
- 0x08, 0x12, 0x17, 0x1C,
- 0x08, 0x0D, 0x17, 0x1C,
- 0x08, 0x0D, 0x12, 0x1C,
- 0x08, 0x1C, 0x1C, 0x1C,
- 0x08, 0x08, 0x1C, 0x1C,
- 0x08, 0x08, 0x08, 0x1C,
- 0x08, 0x13, 0x1A, 0x1F,
- 0x08, 0x0D, 0x1A, 0x1F,
- 0x08, 0x0D, 0x14, 0x1F,
- 0x08, 0x1F, 0x1F, 0x1F,
- 0x08, 0x08, 0x1F, 0x1F,
- 0x08, 0x08, 0x08, 0x1F,
- 0x08, 0x15, 0x1C, 0x22,
- 0x08, 0x0E, 0x1C, 0x22,
- 0x08, 0x0E, 0x15, 0x22,
- 0x08, 0x22, 0x22, 0x22,
- 0x08, 0x08, 0x22, 0x22,
- 0x08, 0x08, 0x08, 0x22,
- 0x08, 0x16, 0x1E, 0x25,
- 0x08, 0x0F, 0x1E, 0x25,
- 0x08, 0x0F, 0x17, 0x25,
- 0x08, 0x25, 0x25, 0x25,
- 0x08, 0x08, 0x25, 0x25,
- 0x08, 0x08, 0x08, 0x25,
- 0x08, 0x18, 0x20, 0x28,
- 0x08, 0x10, 0x20, 0x28,
- 0x08, 0x10, 0x18, 0x28,
- 0x08, 0x28, 0x28, 0x28,
- 0x08, 0x08, 0x28, 0x28,
- 0x08, 0x08, 0x08, 0x28,
- 0x08, 0x2B, 0x2B, 0x2B,
- 0x08, 0x08, 0x2B, 0x2B,
- 0x08, 0x08, 0x08, 0x2B,
- 0x08, 0x1A, 0x23, 0x2C,
- 0x08, 0x11, 0x23, 0x2C,
- 0x08, 0x11, 0x1A, 0x2C,
- 0x08, 0x30, 0x30, 0x30,
- 0x08, 0x08, 0x30, 0x30,
- 0x08, 0x08, 0x08, 0x30,
- 0x08, 0x36, 0x36, 0x36,
- 0x08, 0x08, 0x36, 0x36,
- 0x08, 0x08, 0x08, 0x36,
- 0x09, 0x0A, 0x0A, 0x0B,
- 0x09, 0x0A, 0x0B, 0x0C,
- 0x09, 0x0B, 0x0C, 0x0D,
- 0x09, 0x0A, 0x0C, 0x0D,
- 0x09, 0x0A, 0x0B, 0x0D,
- 0x09, 0x0B, 0x0C, 0x0E,
- 0x09, 0x0B, 0x0D, 0x0E,
- 0x09, 0x0A, 0x0D, 0x0E,
- 0x09, 0x0A, 0x0C, 0x0E,
- 0x09, 0x0B, 0x0D, 0x0F,
- 0x09, 0x0C, 0x0E, 0x0F,
- 0x09, 0x0A, 0x0E, 0x0F,
- 0x09, 0x0A, 0x0C, 0x0F,
- 0x09, 0x0F, 0x0F, 0x0F,
- 0x09, 0x09, 0x0F, 0x0F,
- 0x09, 0x09, 0x09, 0x0F,
- 0x09, 0x0C, 0x0D, 0x10,
- 0x09, 0x0C, 0x0F, 0x10,
- 0x09, 0x0A, 0x0F, 0x10,
- 0x09, 0x0A, 0x0D, 0x10,
- 0x09, 0x0C, 0x0E, 0x11,
- 0x09, 0x0D, 0x0F, 0x11,
- 0x09, 0x0B, 0x0F, 0x11,
- 0x09, 0x0B, 0x0D, 0x11,
- 0x09, 0x11, 0x11, 0x11,
- 0x09, 0x09, 0x11, 0x11,
- 0x09, 0x09, 0x09, 0x11,
- 0x09, 0x0D, 0x10, 0x14,
- 0x09, 0x0E, 0x12, 0x14,
- 0x09, 0x0B, 0x12, 0x14,
- 0x09, 0x0B, 0x0F, 0x14,
- 0x09, 0x14, 0x14, 0x14,
- 0x09, 0x09, 0x14, 0x14,
- 0x09, 0x09, 0x09, 0x14,
- 0x09, 0x0E, 0x12, 0x17,
- 0x09, 0x10, 0x14, 0x17,
- 0x09, 0x0C, 0x14, 0x17,
- 0x09, 0x0C, 0x10, 0x17,
- 0x09, 0x17, 0x17, 0x17,
- 0x09, 0x09, 0x17, 0x17,
- 0x09, 0x09, 0x09, 0x17,
- 0x09, 0x0F, 0x14, 0x1A,
- 0x09, 0x11, 0x16, 0x1A,
- 0x09, 0x0D, 0x16, 0x1A,
- 0x09, 0x0D, 0x12, 0x1A,
- 0x09, 0x1A, 0x1A, 0x1A,
- 0x09, 0x09, 0x1A, 0x1A,
- 0x09, 0x09, 0x09, 0x1A,
- 0x09, 0x10, 0x16, 0x1D,
- 0x09, 0x13, 0x18, 0x1D,
- 0x09, 0x0E, 0x18, 0x1D,
- 0x09, 0x0E, 0x13, 0x1D,
- 0x09, 0x1D, 0x1D, 0x1D,
- 0x09, 0x09, 0x1D, 0x1D,
- 0x09, 0x09, 0x09, 0x1D,
- 0x09, 0x14, 0x1B, 0x20,
- 0x09, 0x0E, 0x1B, 0x20,
- 0x09, 0x0E, 0x15, 0x20,
- 0x09, 0x20, 0x20, 0x20,
- 0x09, 0x09, 0x20, 0x20,
- 0x09, 0x09, 0x09, 0x20,
- 0x09, 0x16, 0x1D, 0x23,
- 0x09, 0x0F, 0x1D, 0x23,
- 0x09, 0x0F, 0x16, 0x23,
- 0x09, 0x23, 0x23, 0x23,
- 0x09, 0x09, 0x23, 0x23,
- 0x09, 0x09, 0x09, 0x23,
- 0x09, 0x17, 0x1F, 0x26,
- 0x09, 0x10, 0x1F, 0x26,
- 0x09, 0x10, 0x18, 0x26,
- 0x09, 0x26, 0x26, 0x26,
- 0x09, 0x09, 0x26, 0x26,
- 0x09, 0x09, 0x09, 0x26,
- 0x09, 0x19, 0x21, 0x29,
- 0x09, 0x11, 0x21, 0x29,
- 0x09, 0x11, 0x19, 0x29,
- 0x09, 0x29, 0x29, 0x29,
- 0x09, 0x09, 0x29, 0x29,
- 0x09, 0x09, 0x09, 0x29,
- 0x09, 0x2C, 0x2C, 0x2C,
- 0x09, 0x09, 0x2C, 0x2C,
- 0x09, 0x09, 0x09, 0x2C,
- 0x09, 0x1B, 0x24, 0x2D,
- 0x09, 0x12, 0x24, 0x2D,
- 0x09, 0x12, 0x1B, 0x2D,
- 0x09, 0x31, 0x31, 0x31,
- 0x09, 0x09, 0x31, 0x31,
- 0x09, 0x09, 0x09, 0x31,
- 0x09, 0x37, 0x37, 0x37,
- 0x09, 0x09, 0x37, 0x37,
- 0x09, 0x09, 0x09, 0x37,
- 0x0A, 0x0B, 0x0B, 0x0C,
- 0x0A, 0x0B, 0x0C, 0x0D,
- 0x0A, 0x0C, 0x0D, 0x0E,
- 0x0A, 0x0B, 0x0D, 0x0E,
- 0x0A, 0x0B, 0x0C, 0x0E,
- 0x0A, 0x0C, 0x0D, 0x0F,
- 0x0A, 0x0C, 0x0E, 0x0F,
- 0x0A, 0x0B, 0x0E, 0x0F,
- 0x0A, 0x0B, 0x0D, 0x0F,
- 0x0A, 0x0C, 0x0E, 0x10,
- 0x0A, 0x0D, 0x0F, 0x10,
- 0x0A, 0x0B, 0x0F, 0x10,
- 0x0A, 0x0B, 0x0D, 0x10,
- 0x0A, 0x10, 0x10, 0x10,
- 0x0A, 0x0A, 0x10, 0x10,
- 0x0A, 0x0A, 0x0A, 0x10,
- 0x0A, 0x0D, 0x0E, 0x11,
- 0x0A, 0x0D, 0x10, 0x11,
- 0x0A, 0x0B, 0x10, 0x11,
- 0x0A, 0x0B, 0x0E, 0x11,
- 0x0A, 0x0D, 0x0F, 0x12,
- 0x0A, 0x0E, 0x10, 0x12,
- 0x0A, 0x0C, 0x10, 0x12,
- 0x0A, 0x0C, 0x0E, 0x12,
- 0x0A, 0x12, 0x12, 0x12,
- 0x0A, 0x0A, 0x12, 0x12,
- 0x0A, 0x0A, 0x0A, 0x12,
- 0x0A, 0x0E, 0x11, 0x15,
- 0x0A, 0x0F, 0x13, 0x15,
- 0x0A, 0x0C, 0x13, 0x15,
- 0x0A, 0x0C, 0x10, 0x15,
- 0x0A, 0x15, 0x15, 0x15,
- 0x0A, 0x0A, 0x15, 0x15,
- 0x0A, 0x0A, 0x0A, 0x15,
- 0x0A, 0x0F, 0x13, 0x18,
- 0x0A, 0x11, 0x15, 0x18,
- 0x0A, 0x0D, 0x15, 0x18,
- 0x0A, 0x0D, 0x11, 0x18,
- 0x0A, 0x18, 0x18, 0x18,
- 0x0A, 0x0A, 0x18, 0x18,
- 0x0A, 0x0A, 0x0A, 0x18,
- 0x0A, 0x10, 0x15, 0x1B,
- 0x0A, 0x12, 0x17, 0x1B,
- 0x0A, 0x0E, 0x17, 0x1B,
- 0x0A, 0x0E, 0x13, 0x1B,
- 0x0A, 0x1B, 0x1B, 0x1B,
- 0x0A, 0x0A, 0x1B, 0x1B,
- 0x0A, 0x0A, 0x0A, 0x1B,
- 0x0A, 0x11, 0x17, 0x1E,
- 0x0A, 0x14, 0x19, 0x1E,
- 0x0A, 0x0F, 0x19, 0x1E,
- 0x0A, 0x0F, 0x14, 0x1E,
- 0x0A, 0x1E, 0x1E, 0x1E,
- 0x0A, 0x0A, 0x1E, 0x1E,
- 0x0A, 0x0A, 0x0A, 0x1E,
- 0x0A, 0x15, 0x1C, 0x21,
- 0x0A, 0x0F, 0x1C, 0x21,
- 0x0A, 0x0F, 0x16, 0x21,
- 0x0A, 0x21, 0x21, 0x21,
- 0x0A, 0x0A, 0x21, 0x21,
- 0x0A, 0x0A, 0x0A, 0x21,
- 0x0A, 0x17, 0x1E, 0x24,
- 0x0A, 0x10, 0x1E, 0x24,
- 0x0A, 0x10, 0x17, 0x24,
- 0x0A, 0x24, 0x24, 0x24,
- 0x0A, 0x0A, 0x24, 0x24,
- 0x0A, 0x0A, 0x0A, 0x24,
- 0x0A, 0x18, 0x20, 0x27,
- 0x0A, 0x11, 0x20, 0x27,
- 0x0A, 0x11, 0x19, 0x27,
- 0x0A, 0x27, 0x27, 0x27,
- 0x0A, 0x0A, 0x27, 0x27,
- 0x0A, 0x0A, 0x0A, 0x27,
- 0x0A, 0x1A, 0x22, 0x2A,
- 0x0A, 0x12, 0x22, 0x2A,
- 0x0A, 0x12, 0x1A, 0x2A,
- 0x0A, 0x2A, 0x2A, 0x2A,
- 0x0A, 0x0A, 0x2A, 0x2A,
- 0x0A, 0x0A, 0x0A, 0x2A,
- 0x0A, 0x2D, 0x2D, 0x2D,
- 0x0A, 0x0A, 0x2D, 0x2D,
- 0x0A, 0x0A, 0x0A, 0x2D,
- 0x0A, 0x1C, 0x25, 0x2E,
- 0x0A, 0x13, 0x25, 0x2E,
- 0x0A, 0x13, 0x1C, 0x2E,
- 0x0A, 0x32, 0x32, 0x32,
- 0x0A, 0x0A, 0x32, 0x32,
- 0x0A, 0x0A, 0x0A, 0x32,
- 0x0A, 0x38, 0x38, 0x38,
- 0x0A, 0x0A, 0x38, 0x38,
- 0x0A, 0x0A, 0x0A, 0x38,
- 0x0B, 0x0C, 0x0C, 0x0D,
- 0x0B, 0x0C, 0x0D, 0x0E,
- 0x0B, 0x0D, 0x0E, 0x0F,
- 0x0B, 0x0C, 0x0E, 0x0F,
- 0x0B, 0x0C, 0x0D, 0x0F,
- 0x0B, 0x0D, 0x0E, 0x10,
- 0x0B, 0x0D, 0x0F, 0x10,
- 0x0B, 0x0C, 0x0F, 0x10,
- 0x0B, 0x0C, 0x0E, 0x10,
- 0x0B, 0x0D, 0x0F, 0x11,
- 0x0B, 0x0E, 0x10, 0x11,
- 0x0B, 0x0C, 0x10, 0x11,
- 0x0B, 0x0C, 0x0E, 0x11,
- 0x0B, 0x11, 0x11, 0x11,
- 0x0B, 0x0B, 0x11, 0x11,
- 0x0B, 0x0B, 0x0B, 0x11,
- 0x0B, 0x0E, 0x0F, 0x12,
- 0x0B, 0x0E, 0x11, 0x12,
- 0x0B, 0x0C, 0x11, 0x12,
- 0x0B, 0x0C, 0x0F, 0x12,
- 0x0B, 0x0E, 0x10, 0x13,
- 0x0B, 0x0F, 0x11, 0x13,
- 0x0B, 0x0D, 0x11, 0x13,
- 0x0B, 0x0D, 0x0F, 0x13,
- 0x0B, 0x13, 0x13, 0x13,
- 0x0B, 0x0B, 0x13, 0x13,
- 0x0B, 0x0B, 0x0B, 0x13,
- 0x0B, 0x0F, 0x12, 0x16,
- 0x0B, 0x10, 0x14, 0x16,
- 0x0B, 0x0D, 0x14, 0x16,
- 0x0B, 0x0D, 0x11, 0x16,
- 0x0B, 0x16, 0x16, 0x16,
- 0x0B, 0x0B, 0x16, 0x16,
- 0x0B, 0x0B, 0x0B, 0x16,
- 0x0B, 0x10, 0x14, 0x19,
- 0x0B, 0x12, 0x16, 0x19,
- 0x0B, 0x0E, 0x16, 0x19,
- 0x0B, 0x0E, 0x12, 0x19,
- 0x0B, 0x19, 0x19, 0x19,
- 0x0B, 0x0B, 0x19, 0x19,
- 0x0B, 0x0B, 0x0B, 0x19,
- 0x0B, 0x11, 0x16, 0x1C,
- 0x0B, 0x13, 0x18, 0x1C,
- 0x0B, 0x0F, 0x18, 0x1C,
- 0x0B, 0x0F, 0x14, 0x1C,
- 0x0B, 0x1C, 0x1C, 0x1C,
- 0x0B, 0x0B, 0x1C, 0x1C,
- 0x0B, 0x0B, 0x0B, 0x1C,
- 0x0B, 0x12, 0x18, 0x1F,
- 0x0B, 0x15, 0x1A, 0x1F,
- 0x0B, 0x10, 0x1A, 0x1F,
- 0x0B, 0x10, 0x15, 0x1F,
- 0x0B, 0x1F, 0x1F, 0x1F,
- 0x0B, 0x0B, 0x1F, 0x1F,
- 0x0B, 0x0B, 0x0B, 0x1F,
- 0x0B, 0x16, 0x1D, 0x22,
- 0x0B, 0x10, 0x1D, 0x22,
- 0x0B, 0x10, 0x17, 0x22,
- 0x0B, 0x22, 0x22, 0x22,
- 0x0B, 0x0B, 0x22, 0x22,
- 0x0B, 0x0B, 0x0B, 0x22,
- 0x0B, 0x18, 0x1F, 0x25,
- 0x0B, 0x11, 0x1F, 0x25,
- 0x0B, 0x11, 0x18, 0x25,
- 0x0B, 0x25, 0x25, 0x25,
- 0x0B, 0x0B, 0x25, 0x25,
- 0x0B, 0x0B, 0x0B, 0x25,
- 0x0B, 0x19, 0x21, 0x28,
- 0x0B, 0x12, 0x21, 0x28,
- 0x0B, 0x12, 0x1A, 0x28,
- 0x0B, 0x28, 0x28, 0x28,
- 0x0B, 0x0B, 0x28, 0x28,
- 0x0B, 0x0B, 0x0B, 0x28,
- 0x0B, 0x1B, 0x23, 0x2B,
- 0x0B, 0x13, 0x23, 0x2B,
- 0x0B, 0x13, 0x1B, 0x2B,
- 0x0B, 0x2B, 0x2B, 0x2B,
- 0x0B, 0x0B, 0x2B, 0x2B,
- 0x0B, 0x0B, 0x0B, 0x2B,
- 0x0B, 0x2E, 0x2E, 0x2E,
- 0x0B, 0x0B, 0x2E, 0x2E,
- 0x0B, 0x0B, 0x0B, 0x2E,
- 0x0B, 0x1D, 0x26, 0x2F,
- 0x0B, 0x14, 0x26, 0x2F,
- 0x0B, 0x14, 0x1D, 0x2F,
- 0x0B, 0x33, 0x33, 0x33,
- 0x0B, 0x0B, 0x33, 0x33,
- 0x0B, 0x0B, 0x0B, 0x33,
- 0x0B, 0x39, 0x39, 0x39,
- 0x0B, 0x0B, 0x39, 0x39,
- 0x0B, 0x0B, 0x0B, 0x39,
- 0x0C, 0x0D, 0x0D, 0x0E,
- 0x0C, 0x0D, 0x0E, 0x0F,
- 0x0C, 0x0E, 0x0F, 0x10,
- 0x0C, 0x0D, 0x0F, 0x10,
- 0x0C, 0x0D, 0x0E, 0x10,
- 0x0C, 0x0E, 0x0F, 0x11,
- 0x0C, 0x0E, 0x10, 0x11,
- 0x0C, 0x0D, 0x10, 0x11,
- 0x0C, 0x0D, 0x0F, 0x11,
- 0x0C, 0x0E, 0x10, 0x12,
- 0x0C, 0x0F, 0x11, 0x12,
- 0x0C, 0x0D, 0x11, 0x12,
- 0x0C, 0x0D, 0x0F, 0x12,
- 0x0C, 0x12, 0x12, 0x12,
- 0x0C, 0x0C, 0x12, 0x12,
- 0x0C, 0x0C, 0x0C, 0x12,
- 0x0C, 0x0F, 0x10, 0x13,
- 0x0C, 0x0F, 0x12, 0x13,
- 0x0C, 0x0D, 0x12, 0x13,
- 0x0C, 0x0D, 0x10, 0x13,
- 0x0C, 0x0F, 0x11, 0x14,
- 0x0C, 0x10, 0x12, 0x14,
- 0x0C, 0x0E, 0x12, 0x14,
- 0x0C, 0x0E, 0x10, 0x14,
- 0x0C, 0x14, 0x14, 0x14,
- 0x0C, 0x0C, 0x14, 0x14,
- 0x0C, 0x0C, 0x0C, 0x14,
- 0x0C, 0x10, 0x13, 0x17,
- 0x0C, 0x11, 0x15, 0x17,
- 0x0C, 0x0E, 0x15, 0x17,
- 0x0C, 0x0E, 0x12, 0x17,
- 0x0C, 0x17, 0x17, 0x17,
- 0x0C, 0x0C, 0x17, 0x17,
- 0x0C, 0x0C, 0x0C, 0x17,
- 0x0C, 0x11, 0x15, 0x1A,
- 0x0C, 0x13, 0x17, 0x1A,
- 0x0C, 0x0F, 0x17, 0x1A,
- 0x0C, 0x0F, 0x13, 0x1A,
- 0x0C, 0x1A, 0x1A, 0x1A,
- 0x0C, 0x0C, 0x1A, 0x1A,
- 0x0C, 0x0C, 0x0C, 0x1A,
- 0x0C, 0x12, 0x17, 0x1D,
- 0x0C, 0x14, 0x19, 0x1D,
- 0x0C, 0x10, 0x19, 0x1D,
- 0x0C, 0x10, 0x15, 0x1D,
- 0x0C, 0x1D, 0x1D, 0x1D,
- 0x0C, 0x0C, 0x1D, 0x1D,
- 0x0C, 0x0C, 0x0C, 0x1D,
- 0x0C, 0x13, 0x19, 0x20,
- 0x0C, 0x16, 0x1B, 0x20,
- 0x0C, 0x11, 0x1B, 0x20,
- 0x0C, 0x11, 0x16, 0x20,
- 0x0C, 0x20, 0x20, 0x20,
- 0x0C, 0x0C, 0x20, 0x20,
- 0x0C, 0x0C, 0x0C, 0x20,
- 0x0C, 0x17, 0x1E, 0x23,
- 0x0C, 0x11, 0x1E, 0x23,
- 0x0C, 0x11, 0x18, 0x23,
- 0x0C, 0x23, 0x23, 0x23,
- 0x0C, 0x0C, 0x23, 0x23,
- 0x0C, 0x0C, 0x0C, 0x23,
- 0x0C, 0x19, 0x20, 0x26,
- 0x0C, 0x12, 0x20, 0x26,
- 0x0C, 0x12, 0x19, 0x26,
- 0x0C, 0x26, 0x26, 0x26,
- 0x0C, 0x0C, 0x26, 0x26,
- 0x0C, 0x0C, 0x0C, 0x26,
- 0x0C, 0x1A, 0x22, 0x29,
- 0x0C, 0x13, 0x22, 0x29,
- 0x0C, 0x13, 0x1B, 0x29,
- 0x0C, 0x29, 0x29, 0x29,
- 0x0C, 0x0C, 0x29, 0x29,
- 0x0C, 0x0C, 0x0C, 0x29,
- 0x0C, 0x1C, 0x24, 0x2C,
- 0x0C, 0x14, 0x24, 0x2C,
- 0x0C, 0x14, 0x1C, 0x2C,
- 0x0C, 0x2C, 0x2C, 0x2C,
- 0x0C, 0x0C, 0x2C, 0x2C,
- 0x0C, 0x0C, 0x0C, 0x2C,
- 0x0C, 0x2F, 0x2F, 0x2F,
- 0x0C, 0x0C, 0x2F, 0x2F,
- 0x0C, 0x0C, 0x0C, 0x2F,
- 0x0C, 0x1E, 0x27, 0x30,
- 0x0C, 0x15, 0x27, 0x30,
- 0x0C, 0x15, 0x1E, 0x30,
- 0x0C, 0x34, 0x34, 0x34,
- 0x0C, 0x0C, 0x34, 0x34,
- 0x0C, 0x0C, 0x0C, 0x34,
- 0x0C, 0x3A, 0x3A, 0x3A,
- 0x0C, 0x0C, 0x3A, 0x3A,
- 0x0C, 0x0C, 0x0C, 0x3A,
- 0x0D, 0x0E, 0x0E, 0x0F,
- 0x0D, 0x0E, 0x0F, 0x10,
- 0x0D, 0x0F, 0x10, 0x11,
- 0x0D, 0x0E, 0x10, 0x11,
- 0x0D, 0x0E, 0x0F, 0x11,
- 0x0D, 0x0F, 0x10, 0x12,
- 0x0D, 0x0F, 0x11, 0x12,
- 0x0D, 0x0E, 0x11, 0x12,
- 0x0D, 0x0E, 0x10, 0x12,
- 0x0D, 0x0F, 0x11, 0x13,
- 0x0D, 0x10, 0x12, 0x13,
- 0x0D, 0x0E, 0x12, 0x13,
- 0x0D, 0x0E, 0x10, 0x13,
- 0x0D, 0x13, 0x13, 0x13,
- 0x0D, 0x0D, 0x13, 0x13,
- 0x0D, 0x0D, 0x0D, 0x13,
- 0x0D, 0x10, 0x11, 0x14,
- 0x0D, 0x10, 0x13, 0x14,
- 0x0D, 0x0E, 0x13, 0x14,
- 0x0D, 0x0E, 0x11, 0x14,
- 0x0D, 0x10, 0x12, 0x15,
- 0x0D, 0x11, 0x13, 0x15,
- 0x0D, 0x0F, 0x13, 0x15,
- 0x0D, 0x0F, 0x11, 0x15,
- 0x0D, 0x15, 0x15, 0x15,
- 0x0D, 0x0D, 0x15, 0x15,
- 0x0D, 0x0D, 0x0D, 0x15,
- 0x0D, 0x11, 0x14, 0x18,
- 0x0D, 0x12, 0x16, 0x18,
- 0x0D, 0x0F, 0x16, 0x18,
- 0x0D, 0x0F, 0x13, 0x18,
- 0x0D, 0x18, 0x18, 0x18,
- 0x0D, 0x0D, 0x18, 0x18,
- 0x0D, 0x0D, 0x0D, 0x18,
- 0x0D, 0x12, 0x16, 0x1B,
- 0x0D, 0x14, 0x18, 0x1B,
- 0x0D, 0x10, 0x18, 0x1B,
- 0x0D, 0x10, 0x14, 0x1B,
- 0x0D, 0x1B, 0x1B, 0x1B,
- 0x0D, 0x0D, 0x1B, 0x1B,
- 0x0D, 0x0D, 0x0D, 0x1B,
- 0x0D, 0x13, 0x18, 0x1E,
- 0x0D, 0x15, 0x1A, 0x1E,
- 0x0D, 0x11, 0x1A, 0x1E,
- 0x0D, 0x11, 0x16, 0x1E,
- 0x0D, 0x1E, 0x1E, 0x1E,
- 0x0D, 0x0D, 0x1E, 0x1E,
- 0x0D, 0x0D, 0x0D, 0x1E,
- 0x0D, 0x14, 0x1A, 0x21,
- 0x0D, 0x17, 0x1C, 0x21,
- 0x0D, 0x12, 0x1C, 0x21,
- 0x0D, 0x12, 0x17, 0x21,
- 0x0D, 0x21, 0x21, 0x21,
- 0x0D, 0x0D, 0x21, 0x21,
- 0x0D, 0x0D, 0x0D, 0x21,
- 0x0D, 0x18, 0x1F, 0x24,
- 0x0D, 0x12, 0x1F, 0x24,
- 0x0D, 0x12, 0x19, 0x24,
- 0x0D, 0x24, 0x24, 0x24,
- 0x0D, 0x0D, 0x24, 0x24,
- 0x0D, 0x0D, 0x0D, 0x24,
- 0x0D, 0x1A, 0x21, 0x27,
- 0x0D, 0x13, 0x21, 0x27,
- 0x0D, 0x13, 0x1A, 0x27,
- 0x0D, 0x27, 0x27, 0x27,
- 0x0D, 0x0D, 0x27, 0x27,
- 0x0D, 0x0D, 0x0D, 0x27,
- 0x0D, 0x1B, 0x23, 0x2A,
- 0x0D, 0x14, 0x23, 0x2A,
- 0x0D, 0x14, 0x1C, 0x2A,
- 0x0D, 0x2A, 0x2A, 0x2A,
- 0x0D, 0x0D, 0x2A, 0x2A,
- 0x0D, 0x0D, 0x0D, 0x2A,
- 0x0D, 0x1D, 0x25, 0x2D,
- 0x0D, 0x15, 0x25, 0x2D,
- 0x0D, 0x15, 0x1D, 0x2D,
- 0x0D, 0x2D, 0x2D, 0x2D,
- 0x0D, 0x0D, 0x2D, 0x2D,
- 0x0D, 0x0D, 0x0D, 0x2D,
- 0x0D, 0x30, 0x30, 0x30,
- 0x0D, 0x0D, 0x30, 0x30,
- 0x0D, 0x0D, 0x0D, 0x30,
- 0x0D, 0x1F, 0x28, 0x31,
- 0x0D, 0x16, 0x28, 0x31,
- 0x0D, 0x16, 0x1F, 0x31,
- 0x0D, 0x35, 0x35, 0x35,
- 0x0D, 0x0D, 0x35, 0x35,
- 0x0D, 0x0D, 0x0D, 0x35,
- 0x0D, 0x3B, 0x3B, 0x3B,
- 0x0D, 0x0D, 0x3B, 0x3B,
- 0x0D, 0x0D, 0x0D, 0x3B,
- 0x0E, 0x0F, 0x0F, 0x10,
- 0x0E, 0x0F, 0x10, 0x11,
- 0x0E, 0x10, 0x11, 0x12,
- 0x0E, 0x0F, 0x11, 0x12,
- 0x0E, 0x0F, 0x10, 0x12,
- 0x0E, 0x10, 0x11, 0x13,
- 0x0E, 0x10, 0x12, 0x13,
- 0x0E, 0x0F, 0x12, 0x13,
- 0x0E, 0x0F, 0x11, 0x13,
- 0x0E, 0x10, 0x12, 0x14,
- 0x0E, 0x11, 0x13, 0x14,
- 0x0E, 0x0F, 0x13, 0x14,
- 0x0E, 0x0F, 0x11, 0x14,
- 0x0E, 0x14, 0x14, 0x14,
- 0x0E, 0x0E, 0x14, 0x14,
- 0x0E, 0x0E, 0x0E, 0x14,
- 0x0E, 0x11, 0x12, 0x15,
- 0x0E, 0x11, 0x14, 0x15,
- 0x0E, 0x0F, 0x14, 0x15,
- 0x0E, 0x0F, 0x12, 0x15,
- 0x0E, 0x11, 0x13, 0x16,
- 0x0E, 0x12, 0x14, 0x16,
- 0x0E, 0x10, 0x14, 0x16,
- 0x0E, 0x10, 0x12, 0x16,
- 0x0E, 0x16, 0x16, 0x16,
- 0x0E, 0x0E, 0x16, 0x16,
- 0x0E, 0x0E, 0x0E, 0x16,
- 0x0E, 0x12, 0x15, 0x19,
- 0x0E, 0x13, 0x17, 0x19,
- 0x0E, 0x10, 0x17, 0x19,
- 0x0E, 0x10, 0x14, 0x19,
- 0x0E, 0x19, 0x19, 0x19,
- 0x0E, 0x0E, 0x19, 0x19,
- 0x0E, 0x0E, 0x0E, 0x19,
- 0x0E, 0x13, 0x17, 0x1C,
- 0x0E, 0x15, 0x19, 0x1C,
- 0x0E, 0x11, 0x19, 0x1C,
- 0x0E, 0x11, 0x15, 0x1C,
- 0x0E, 0x1C, 0x1C, 0x1C,
- 0x0E, 0x0E, 0x1C, 0x1C,
- 0x0E, 0x0E, 0x0E, 0x1C,
- 0x0E, 0x14, 0x19, 0x1F,
- 0x0E, 0x16, 0x1B, 0x1F,
- 0x0E, 0x12, 0x1B, 0x1F,
- 0x0E, 0x12, 0x17, 0x1F,
- 0x0E, 0x1F, 0x1F, 0x1F,
- 0x0E, 0x0E, 0x1F, 0x1F,
- 0x0E, 0x0E, 0x0E, 0x1F,
- 0x0E, 0x15, 0x1B, 0x22,
- 0x0E, 0x18, 0x1D, 0x22,
- 0x0E, 0x13, 0x1D, 0x22,
- 0x0E, 0x13, 0x18, 0x22,
- 0x0E, 0x22, 0x22, 0x22,
- 0x0E, 0x0E, 0x22, 0x22,
- 0x0E, 0x0E, 0x0E, 0x22,
- 0x0E, 0x19, 0x20, 0x25,
- 0x0E, 0x13, 0x20, 0x25,
- 0x0E, 0x13, 0x1A, 0x25,
- 0x0E, 0x25, 0x25, 0x25,
- 0x0E, 0x0E, 0x25, 0x25,
- 0x0E, 0x0E, 0x0E, 0x25,
- 0x0E, 0x1B, 0x22, 0x28,
- 0x0E, 0x14, 0x22, 0x28,
- 0x0E, 0x14, 0x1B, 0x28,
- 0x0E, 0x28, 0x28, 0x28,
- 0x0E, 0x0E, 0x28, 0x28,
- 0x0E, 0x0E, 0x0E, 0x28,
- 0x0E, 0x1C, 0x24, 0x2B,
- 0x0E, 0x15, 0x24, 0x2B,
- 0x0E, 0x15, 0x1D, 0x2B,
- 0x0E, 0x2B, 0x2B, 0x2B,
- 0x0E, 0x0E, 0x2B, 0x2B,
- 0x0E, 0x0E, 0x0E, 0x2B,
- 0x0E, 0x1E, 0x26, 0x2E,
- 0x0E, 0x16, 0x26, 0x2E,
- 0x0E, 0x16, 0x1E, 0x2E,
- 0x0E, 0x2E, 0x2E, 0x2E,
- 0x0E, 0x0E, 0x2E, 0x2E,
- 0x0E, 0x0E, 0x0E, 0x2E,
- 0x0E, 0x31, 0x31, 0x31,
- 0x0E, 0x0E, 0x31, 0x31,
- 0x0E, 0x0E, 0x0E, 0x31,
- 0x0E, 0x20, 0x29, 0x32,
- 0x0E, 0x17, 0x29, 0x32,
- 0x0E, 0x17, 0x20, 0x32,
- 0x0E, 0x36, 0x36, 0x36,
- 0x0E, 0x0E, 0x36, 0x36,
- 0x0E, 0x0E, 0x0E, 0x36,
- 0x0E, 0x3C, 0x3C, 0x3C,
- 0x0E, 0x0E, 0x3C, 0x3C,
- 0x0E, 0x0E, 0x0E, 0x3C,
- 0x0F, 0x10, 0x10, 0x11,
- 0x0F, 0x10, 0x11, 0x12,
- 0x0F, 0x11, 0x12, 0x13,
- 0x0F, 0x10, 0x12, 0x13,
- 0x0F, 0x10, 0x11, 0x13,
- 0x0F, 0x11, 0x12, 0x14,
- 0x0F, 0x11, 0x13, 0x14,
- 0x0F, 0x10, 0x13, 0x14,
- 0x0F, 0x10, 0x12, 0x14,
- 0x0F, 0x11, 0x13, 0x15,
- 0x0F, 0x12, 0x14, 0x15,
- 0x0F, 0x10, 0x14, 0x15,
- 0x0F, 0x10, 0x12, 0x15,
- 0x0F, 0x15, 0x15, 0x15,
- 0x0F, 0x0F, 0x15, 0x15,
- 0x0F, 0x0F, 0x0F, 0x15,
- 0x0F, 0x12, 0x13, 0x16,
- 0x0F, 0x12, 0x15, 0x16,
- 0x0F, 0x10, 0x15, 0x16,
- 0x0F, 0x10, 0x13, 0x16,
- 0x0F, 0x12, 0x14, 0x17,
- 0x0F, 0x13, 0x15, 0x17,
- 0x0F, 0x11, 0x15, 0x17,
- 0x0F, 0x11, 0x13, 0x17,
- 0x0F, 0x17, 0x17, 0x17,
- 0x0F, 0x0F, 0x17, 0x17,
- 0x0F, 0x0F, 0x0F, 0x17,
- 0x0F, 0x13, 0x16, 0x1A,
- 0x0F, 0x14, 0x18, 0x1A,
- 0x0F, 0x11, 0x18, 0x1A,
- 0x0F, 0x11, 0x15, 0x1A,
- 0x0F, 0x1A, 0x1A, 0x1A,
- 0x0F, 0x0F, 0x1A, 0x1A,
- 0x0F, 0x0F, 0x0F, 0x1A,
- 0x0F, 0x14, 0x18, 0x1D,
- 0x0F, 0x16, 0x1A, 0x1D,
- 0x0F, 0x12, 0x1A, 0x1D,
- 0x0F, 0x12, 0x16, 0x1D,
- 0x0F, 0x1D, 0x1D, 0x1D,
- 0x0F, 0x0F, 0x1D, 0x1D,
- 0x0F, 0x0F, 0x0F, 0x1D,
- 0x0F, 0x15, 0x1A, 0x20,
- 0x0F, 0x17, 0x1C, 0x20,
- 0x0F, 0x13, 0x1C, 0x20,
- 0x0F, 0x13, 0x18, 0x20,
- 0x0F, 0x20, 0x20, 0x20,
- 0x0F, 0x0F, 0x20, 0x20,
- 0x0F, 0x0F, 0x0F, 0x20,
- 0x0F, 0x16, 0x1C, 0x23,
- 0x0F, 0x19, 0x1E, 0x23,
- 0x0F, 0x14, 0x1E, 0x23,
- 0x0F, 0x14, 0x19, 0x23,
- 0x0F, 0x23, 0x23, 0x23,
- 0x0F, 0x0F, 0x23, 0x23,
- 0x0F, 0x0F, 0x0F, 0x23,
- 0x0F, 0x1A, 0x21, 0x26,
- 0x0F, 0x14, 0x21, 0x26,
- 0x0F, 0x14, 0x1B, 0x26,
- 0x0F, 0x26, 0x26, 0x26,
- 0x0F, 0x0F, 0x26, 0x26,
- 0x0F, 0x0F, 0x0F, 0x26,
- 0x0F, 0x1C, 0x23, 0x29,
- 0x0F, 0x15, 0x23, 0x29,
- 0x0F, 0x15, 0x1C, 0x29,
- 0x0F, 0x29, 0x29, 0x29,
- 0x0F, 0x0F, 0x29, 0x29,
- 0x0F, 0x0F, 0x0F, 0x29,
- 0x0F, 0x1D, 0x25, 0x2C,
- 0x0F, 0x16, 0x25, 0x2C,
- 0x0F, 0x16, 0x1E, 0x2C,
- 0x0F, 0x2C, 0x2C, 0x2C,
- 0x0F, 0x0F, 0x2C, 0x2C,
- 0x0F, 0x0F, 0x0F, 0x2C,
- 0x0F, 0x1F, 0x27, 0x2F,
- 0x0F, 0x17, 0x27, 0x2F,
- 0x0F, 0x17, 0x1F, 0x2F,
- 0x0F, 0x2F, 0x2F, 0x2F,
- 0x0F, 0x0F, 0x2F, 0x2F,
- 0x0F, 0x0F, 0x0F, 0x2F,
- 0x0F, 0x32, 0x32, 0x32,
- 0x0F, 0x0F, 0x32, 0x32,
- 0x0F, 0x0F, 0x0F, 0x32,
- 0x0F, 0x21, 0x2A, 0x33,
- 0x0F, 0x18, 0x2A, 0x33,
- 0x0F, 0x18, 0x21, 0x33,
- 0x0F, 0x37, 0x37, 0x37,
- 0x0F, 0x0F, 0x37, 0x37,
- 0x0F, 0x0F, 0x0F, 0x37,
- 0x0F, 0x3D, 0x3D, 0x3D,
- 0x0F, 0x0F, 0x3D, 0x3D,
- 0x0F, 0x0F, 0x0F, 0x3D,
- 0x10, 0x11, 0x11, 0x12,
- 0x10, 0x11, 0x12, 0x13,
- 0x10, 0x12, 0x13, 0x14,
- 0x10, 0x11, 0x13, 0x14,
- 0x10, 0x11, 0x12, 0x14,
- 0x10, 0x12, 0x13, 0x15,
- 0x10, 0x12, 0x14, 0x15,
- 0x10, 0x11, 0x14, 0x15,
- 0x10, 0x11, 0x13, 0x15,
- 0x10, 0x12, 0x14, 0x16,
- 0x10, 0x13, 0x15, 0x16,
- 0x10, 0x11, 0x15, 0x16,
- 0x10, 0x11, 0x13, 0x16,
- 0x10, 0x16, 0x16, 0x16,
- 0x10, 0x10, 0x16, 0x16,
- 0x10, 0x10, 0x10, 0x16,
- 0x10, 0x13, 0x14, 0x17,
- 0x10, 0x13, 0x16, 0x17,
- 0x10, 0x11, 0x16, 0x17,
- 0x10, 0x11, 0x14, 0x17,
- 0x10, 0x13, 0x15, 0x18,
- 0x10, 0x14, 0x16, 0x18,
- 0x10, 0x12, 0x16, 0x18,
- 0x10, 0x12, 0x14, 0x18,
- 0x10, 0x18, 0x18, 0x18,
- 0x10, 0x10, 0x18, 0x18,
- 0x10, 0x10, 0x10, 0x18,
- 0x10, 0x14, 0x17, 0x1B,
- 0x10, 0x15, 0x19, 0x1B,
- 0x10, 0x12, 0x19, 0x1B,
- 0x10, 0x12, 0x16, 0x1B,
- 0x10, 0x1B, 0x1B, 0x1B,
- 0x10, 0x10, 0x1B, 0x1B,
- 0x10, 0x10, 0x10, 0x1B,
- 0x10, 0x15, 0x19, 0x1E,
- 0x10, 0x17, 0x1B, 0x1E,
- 0x10, 0x13, 0x1B, 0x1E,
- 0x10, 0x13, 0x17, 0x1E,
- 0x10, 0x1E, 0x1E, 0x1E,
- 0x10, 0x10, 0x1E, 0x1E,
- 0x10, 0x10, 0x10, 0x1E,
- 0x10, 0x16, 0x1B, 0x21,
- 0x10, 0x18, 0x1D, 0x21,
- 0x10, 0x14, 0x1D, 0x21,
- 0x10, 0x14, 0x19, 0x21,
- 0x10, 0x21, 0x21, 0x21,
- 0x10, 0x10, 0x21, 0x21,
- 0x10, 0x10, 0x10, 0x21,
- 0x10, 0x17, 0x1D, 0x24,
- 0x10, 0x1A, 0x1F, 0x24,
- 0x10, 0x15, 0x1F, 0x24,
- 0x10, 0x15, 0x1A, 0x24,
- 0x10, 0x24, 0x24, 0x24,
- 0x10, 0x10, 0x24, 0x24,
- 0x10, 0x10, 0x10, 0x24,
- 0x10, 0x1B, 0x22, 0x27,
- 0x10, 0x15, 0x22, 0x27,
- 0x10, 0x15, 0x1C, 0x27,
- 0x10, 0x27, 0x27, 0x27,
- 0x10, 0x10, 0x27, 0x27,
- 0x10, 0x10, 0x10, 0x27,
- 0x10, 0x1D, 0x24, 0x2A,
- 0x10, 0x16, 0x24, 0x2A,
- 0x10, 0x16, 0x1D, 0x2A,
- 0x10, 0x2A, 0x2A, 0x2A,
- 0x10, 0x10, 0x2A, 0x2A,
- 0x10, 0x10, 0x10, 0x2A,
- 0x10, 0x1E, 0x26, 0x2D,
- 0x10, 0x17, 0x26, 0x2D,
- 0x10, 0x17, 0x1F, 0x2D,
- 0x10, 0x2D, 0x2D, 0x2D,
- 0x10, 0x10, 0x2D, 0x2D,
- 0x10, 0x10, 0x10, 0x2D,
- 0x10, 0x20, 0x28, 0x30,
- 0x10, 0x18, 0x28, 0x30,
- 0x10, 0x18, 0x20, 0x30,
- 0x10, 0x30, 0x30, 0x30,
- 0x10, 0x10, 0x30, 0x30,
- 0x10, 0x10, 0x10, 0x30,
- 0x10, 0x33, 0x33, 0x33,
- 0x10, 0x10, 0x33, 0x33,
- 0x10, 0x10, 0x10, 0x33,
- 0x10, 0x22, 0x2B, 0x34,
- 0x10, 0x19, 0x2B, 0x34,
- 0x10, 0x19, 0x22, 0x34,
- 0x10, 0x38, 0x38, 0x38,
- 0x10, 0x10, 0x38, 0x38,
- 0x10, 0x10, 0x10, 0x38,
- 0x10, 0x3E, 0x3E, 0x3E,
- 0x10, 0x10, 0x3E, 0x3E,
- 0x10, 0x10, 0x10, 0x3E,
- 0x11, 0x12, 0x12, 0x13,
- 0x11, 0x12, 0x13, 0x14,
- 0x11, 0x13, 0x14, 0x15,
- 0x11, 0x12, 0x14, 0x15,
- 0x11, 0x12, 0x13, 0x15,
- 0x11, 0x13, 0x14, 0x16,
- 0x11, 0x13, 0x15, 0x16,
- 0x11, 0x12, 0x15, 0x16,
- 0x11, 0x12, 0x14, 0x16,
- 0x11, 0x13, 0x15, 0x17,
- 0x11, 0x14, 0x16, 0x17,
- 0x11, 0x12, 0x16, 0x17,
- 0x11, 0x12, 0x14, 0x17,
- 0x11, 0x17, 0x17, 0x17,
- 0x11, 0x11, 0x17, 0x17,
- 0x11, 0x11, 0x11, 0x17,
- 0x11, 0x14, 0x15, 0x18,
- 0x11, 0x14, 0x17, 0x18,
- 0x11, 0x12, 0x17, 0x18,
- 0x11, 0x12, 0x15, 0x18,
- 0x11, 0x14, 0x16, 0x19,
- 0x11, 0x15, 0x17, 0x19,
- 0x11, 0x13, 0x17, 0x19,
- 0x11, 0x13, 0x15, 0x19,
- 0x11, 0x19, 0x19, 0x19,
- 0x11, 0x11, 0x19, 0x19,
- 0x11, 0x11, 0x11, 0x19,
- 0x11, 0x15, 0x18, 0x1C,
- 0x11, 0x16, 0x1A, 0x1C,
- 0x11, 0x13, 0x1A, 0x1C,
- 0x11, 0x13, 0x17, 0x1C,
- 0x11, 0x1C, 0x1C, 0x1C,
- 0x11, 0x11, 0x1C, 0x1C,
- 0x11, 0x11, 0x11, 0x1C,
- 0x11, 0x16, 0x1A, 0x1F,
- 0x11, 0x18, 0x1C, 0x1F,
- 0x11, 0x14, 0x1C, 0x1F,
- 0x11, 0x14, 0x18, 0x1F,
- 0x11, 0x1F, 0x1F, 0x1F,
- 0x11, 0x11, 0x1F, 0x1F,
- 0x11, 0x11, 0x11, 0x1F,
- 0x11, 0x17, 0x1C, 0x22,
- 0x11, 0x19, 0x1E, 0x22,
- 0x11, 0x15, 0x1E, 0x22,
- 0x11, 0x15, 0x1A, 0x22,
- 0x11, 0x22, 0x22, 0x22,
- 0x11, 0x11, 0x22, 0x22,
- 0x11, 0x11, 0x11, 0x22,
- 0x11, 0x18, 0x1E, 0x25,
- 0x11, 0x1B, 0x20, 0x25,
- 0x11, 0x16, 0x20, 0x25,
- 0x11, 0x16, 0x1B, 0x25,
- 0x11, 0x25, 0x25, 0x25,
- 0x11, 0x11, 0x25, 0x25,
- 0x11, 0x11, 0x11, 0x25,
- 0x11, 0x1C, 0x23, 0x28,
- 0x11, 0x16, 0x23, 0x28,
- 0x11, 0x16, 0x1D, 0x28,
- 0x11, 0x28, 0x28, 0x28,
- 0x11, 0x11, 0x28, 0x28,
- 0x11, 0x11, 0x11, 0x28,
- 0x11, 0x1E, 0x25, 0x2B,
- 0x11, 0x17, 0x25, 0x2B,
- 0x11, 0x17, 0x1E, 0x2B,
- 0x11, 0x2B, 0x2B, 0x2B,
- 0x11, 0x11, 0x2B, 0x2B,
- 0x11, 0x11, 0x11, 0x2B,
- 0x11, 0x1F, 0x27, 0x2E,
- 0x11, 0x18, 0x27, 0x2E,
- 0x11, 0x18, 0x20, 0x2E,
- 0x11, 0x2E, 0x2E, 0x2E,
- 0x11, 0x11, 0x2E, 0x2E,
- 0x11, 0x11, 0x11, 0x2E,
- 0x11, 0x21, 0x29, 0x31,
- 0x11, 0x19, 0x29, 0x31,
- 0x11, 0x19, 0x21, 0x31,
- 0x11, 0x31, 0x31, 0x31,
- 0x11, 0x11, 0x31, 0x31,
- 0x11, 0x11, 0x11, 0x31,
- 0x11, 0x34, 0x34, 0x34,
- 0x11, 0x11, 0x34, 0x34,
- 0x11, 0x11, 0x11, 0x34,
- 0x11, 0x23, 0x2C, 0x35,
- 0x11, 0x1A, 0x2C, 0x35,
- 0x11, 0x1A, 0x23, 0x35,
- 0x11, 0x39, 0x39, 0x39,
- 0x11, 0x11, 0x39, 0x39,
- 0x11, 0x11, 0x11, 0x39,
- 0x11, 0x3F, 0x3F, 0x3F,
- 0x11, 0x11, 0x3F, 0x3F,
- 0x11, 0x11, 0x11, 0x3F,
- 0x12, 0x13, 0x13, 0x14,
- 0x12, 0x13, 0x14, 0x15,
- 0x12, 0x14, 0x15, 0x16,
- 0x12, 0x13, 0x15, 0x16,
- 0x12, 0x13, 0x14, 0x16,
- 0x12, 0x14, 0x15, 0x17,
- 0x12, 0x14, 0x16, 0x17,
- 0x12, 0x13, 0x16, 0x17,
- 0x12, 0x13, 0x15, 0x17,
- 0x12, 0x14, 0x16, 0x18,
- 0x12, 0x15, 0x17, 0x18,
- 0x12, 0x13, 0x17, 0x18,
- 0x12, 0x13, 0x15, 0x18,
- 0x12, 0x18, 0x18, 0x18,
- 0x12, 0x12, 0x18, 0x18,
- 0x12, 0x12, 0x12, 0x18,
- 0x12, 0x15, 0x16, 0x19,
- 0x12, 0x15, 0x18, 0x19,
- 0x12, 0x13, 0x18, 0x19,
- 0x12, 0x13, 0x16, 0x19,
- 0x12, 0x15, 0x17, 0x1A,
- 0x12, 0x16, 0x18, 0x1A,
- 0x12, 0x14, 0x18, 0x1A,
- 0x12, 0x14, 0x16, 0x1A,
- 0x12, 0x1A, 0x1A, 0x1A,
- 0x12, 0x12, 0x1A, 0x1A,
- 0x12, 0x12, 0x12, 0x1A,
- 0x12, 0x16, 0x19, 0x1D,
- 0x12, 0x17, 0x1B, 0x1D,
- 0x12, 0x14, 0x1B, 0x1D,
- 0x12, 0x14, 0x18, 0x1D,
- 0x12, 0x1D, 0x1D, 0x1D,
- 0x12, 0x12, 0x1D, 0x1D,
- 0x12, 0x12, 0x12, 0x1D,
- 0x12, 0x17, 0x1B, 0x20,
- 0x12, 0x19, 0x1D, 0x20,
- 0x12, 0x15, 0x1D, 0x20,
- 0x12, 0x15, 0x19, 0x20,
- 0x12, 0x20, 0x20, 0x20,
- 0x12, 0x12, 0x20, 0x20,
- 0x12, 0x12, 0x12, 0x20,
- 0x12, 0x18, 0x1D, 0x23,
- 0x12, 0x1A, 0x1F, 0x23,
- 0x12, 0x16, 0x1F, 0x23,
- 0x12, 0x16, 0x1B, 0x23,
- 0x12, 0x23, 0x23, 0x23,
- 0x12, 0x12, 0x23, 0x23,
- 0x12, 0x12, 0x12, 0x23,
- 0x12, 0x19, 0x1F, 0x26,
- 0x12, 0x1C, 0x21, 0x26,
- 0x12, 0x17, 0x21, 0x26,
- 0x12, 0x17, 0x1C, 0x26,
- 0x12, 0x26, 0x26, 0x26,
- 0x12, 0x12, 0x26, 0x26,
- 0x12, 0x12, 0x12, 0x26,
- 0x12, 0x1D, 0x24, 0x29,
- 0x12, 0x17, 0x24, 0x29,
- 0x12, 0x17, 0x1E, 0x29,
- 0x12, 0x29, 0x29, 0x29,
- 0x12, 0x12, 0x29, 0x29,
- 0x12, 0x12, 0x12, 0x29,
- 0x12, 0x1F, 0x26, 0x2C,
- 0x12, 0x18, 0x26, 0x2C,
- 0x12, 0x18, 0x1F, 0x2C,
- 0x12, 0x2C, 0x2C, 0x2C,
- 0x12, 0x12, 0x2C, 0x2C,
- 0x12, 0x12, 0x12, 0x2C,
- 0x12, 0x20, 0x28, 0x2F,
- 0x12, 0x19, 0x28, 0x2F,
- 0x12, 0x19, 0x21, 0x2F,
- 0x12, 0x2F, 0x2F, 0x2F,
- 0x12, 0x12, 0x2F, 0x2F,
- 0x12, 0x12, 0x12, 0x2F,
- 0x12, 0x22, 0x2A, 0x32,
- 0x12, 0x1A, 0x2A, 0x32,
- 0x12, 0x1A, 0x22, 0x32,
- 0x12, 0x32, 0x32, 0x32,
- 0x12, 0x12, 0x32, 0x32,
- 0x12, 0x12, 0x12, 0x32,
- 0x12, 0x35, 0x35, 0x35,
- 0x12, 0x12, 0x35, 0x35,
- 0x12, 0x12, 0x12, 0x35,
- 0x12, 0x24, 0x2D, 0x36,
- 0x12, 0x1B, 0x2D, 0x36,
- 0x12, 0x1B, 0x24, 0x36,
- 0x12, 0x3A, 0x3A, 0x3A,
- 0x12, 0x12, 0x3A, 0x3A,
- 0x12, 0x12, 0x12, 0x3A,
- 0x13, 0x14, 0x14, 0x15,
- 0x13, 0x14, 0x15, 0x16,
- 0x13, 0x15, 0x16, 0x17,
- 0x13, 0x14, 0x16, 0x17,
- 0x13, 0x14, 0x15, 0x17,
- 0x13, 0x15, 0x16, 0x18,
- 0x13, 0x15, 0x17, 0x18,
- 0x13, 0x14, 0x17, 0x18,
- 0x13, 0x14, 0x16, 0x18,
- 0x13, 0x15, 0x17, 0x19,
- 0x13, 0x16, 0x18, 0x19,
- 0x13, 0x14, 0x18, 0x19,
- 0x13, 0x14, 0x16, 0x19,
- 0x13, 0x19, 0x19, 0x19,
- 0x13, 0x13, 0x19, 0x19,
- 0x13, 0x13, 0x13, 0x19,
- 0x13, 0x16, 0x17, 0x1A,
- 0x13, 0x16, 0x19, 0x1A,
- 0x13, 0x14, 0x19, 0x1A,
- 0x13, 0x14, 0x17, 0x1A,
- 0x13, 0x16, 0x18, 0x1B,
- 0x13, 0x17, 0x19, 0x1B,
- 0x13, 0x15, 0x19, 0x1B,
- 0x13, 0x15, 0x17, 0x1B,
- 0x13, 0x1B, 0x1B, 0x1B,
- 0x13, 0x13, 0x1B, 0x1B,
- 0x13, 0x13, 0x13, 0x1B,
- 0x13, 0x17, 0x1A, 0x1E,
- 0x13, 0x18, 0x1C, 0x1E,
- 0x13, 0x15, 0x1C, 0x1E,
- 0x13, 0x15, 0x19, 0x1E,
- 0x13, 0x1E, 0x1E, 0x1E,
- 0x13, 0x13, 0x1E, 0x1E,
- 0x13, 0x13, 0x13, 0x1E,
- 0x13, 0x18, 0x1C, 0x21,
- 0x13, 0x1A, 0x1E, 0x21,
- 0x13, 0x16, 0x1E, 0x21,
- 0x13, 0x16, 0x1A, 0x21,
- 0x13, 0x21, 0x21, 0x21,
- 0x13, 0x13, 0x21, 0x21,
- 0x13, 0x13, 0x13, 0x21,
- 0x13, 0x19, 0x1E, 0x24,
- 0x13, 0x1B, 0x20, 0x24,
- 0x13, 0x17, 0x20, 0x24,
- 0x13, 0x17, 0x1C, 0x24,
- 0x13, 0x24, 0x24, 0x24,
- 0x13, 0x13, 0x24, 0x24,
- 0x13, 0x13, 0x13, 0x24,
- 0x13, 0x1A, 0x20, 0x27,
- 0x13, 0x1D, 0x22, 0x27,
- 0x13, 0x18, 0x22, 0x27,
- 0x13, 0x18, 0x1D, 0x27,
- 0x13, 0x27, 0x27, 0x27,
- 0x13, 0x13, 0x27, 0x27,
- 0x13, 0x13, 0x13, 0x27,
- 0x13, 0x1E, 0x25, 0x2A,
- 0x13, 0x18, 0x25, 0x2A,
- 0x13, 0x18, 0x1F, 0x2A,
- 0x13, 0x2A, 0x2A, 0x2A,
- 0x13, 0x13, 0x2A, 0x2A,
- 0x13, 0x13, 0x13, 0x2A,
- 0x13, 0x20, 0x27, 0x2D,
- 0x13, 0x19, 0x27, 0x2D,
- 0x13, 0x19, 0x20, 0x2D,
- 0x13, 0x2D, 0x2D, 0x2D,
- 0x13, 0x13, 0x2D, 0x2D,
- 0x13, 0x13, 0x13, 0x2D,
- 0x13, 0x21, 0x29, 0x30,
- 0x13, 0x1A, 0x29, 0x30,
- 0x13, 0x1A, 0x22, 0x30,
- 0x13, 0x30, 0x30, 0x30,
- 0x13, 0x13, 0x30, 0x30,
- 0x13, 0x13, 0x13, 0x30,
- 0x13, 0x23, 0x2B, 0x33,
- 0x13, 0x1B, 0x2B, 0x33,
- 0x13, 0x1B, 0x23, 0x33,
- 0x13, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x13, 0x33,
- 0x13, 0x36, 0x36, 0x36,
- 0x13, 0x13, 0x36, 0x36,
- 0x13, 0x13, 0x13, 0x36,
- 0x13, 0x25, 0x2E, 0x37,
- 0x13, 0x1C, 0x2E, 0x37,
- 0x13, 0x1C, 0x25, 0x37,
- 0x13, 0x3B, 0x3B, 0x3B,
- 0x13, 0x13, 0x3B, 0x3B,
- 0x13, 0x13, 0x13, 0x3B,
- 0x14, 0x15, 0x15, 0x16,
- 0x14, 0x15, 0x16, 0x17,
- 0x14, 0x16, 0x17, 0x18,
- 0x14, 0x15, 0x17, 0x18,
- 0x14, 0x15, 0x16, 0x18,
- 0x14, 0x16, 0x17, 0x19,
- 0x14, 0x16, 0x18, 0x19,
- 0x14, 0x15, 0x18, 0x19,
- 0x14, 0x15, 0x17, 0x19,
- 0x14, 0x16, 0x18, 0x1A,
- 0x14, 0x17, 0x19, 0x1A,
- 0x14, 0x15, 0x19, 0x1A,
- 0x14, 0x15, 0x17, 0x1A,
- 0x14, 0x1A, 0x1A, 0x1A,
- 0x14, 0x14, 0x1A, 0x1A,
- 0x14, 0x14, 0x14, 0x1A,
- 0x14, 0x17, 0x18, 0x1B,
- 0x14, 0x17, 0x1A, 0x1B,
- 0x14, 0x15, 0x1A, 0x1B,
- 0x14, 0x15, 0x18, 0x1B,
- 0x14, 0x17, 0x19, 0x1C,
- 0x14, 0x18, 0x1A, 0x1C,
- 0x14, 0x16, 0x1A, 0x1C,
- 0x14, 0x16, 0x18, 0x1C,
- 0x14, 0x1C, 0x1C, 0x1C,
- 0x14, 0x14, 0x1C, 0x1C,
- 0x14, 0x14, 0x14, 0x1C,
- 0x14, 0x18, 0x1B, 0x1F,
- 0x14, 0x19, 0x1D, 0x1F,
- 0x14, 0x16, 0x1D, 0x1F,
- 0x14, 0x16, 0x1A, 0x1F,
- 0x14, 0x1F, 0x1F, 0x1F,
- 0x14, 0x14, 0x1F, 0x1F,
- 0x14, 0x14, 0x14, 0x1F,
- 0x14, 0x19, 0x1D, 0x22,
- 0x14, 0x1B, 0x1F, 0x22,
- 0x14, 0x17, 0x1F, 0x22,
- 0x14, 0x17, 0x1B, 0x22,
- 0x14, 0x22, 0x22, 0x22,
- 0x14, 0x14, 0x22, 0x22,
- 0x14, 0x14, 0x14, 0x22,
- 0x14, 0x1A, 0x1F, 0x25,
- 0x14, 0x1C, 0x21, 0x25,
- 0x14, 0x18, 0x21, 0x25,
- 0x14, 0x18, 0x1D, 0x25,
- 0x14, 0x25, 0x25, 0x25,
- 0x14, 0x14, 0x25, 0x25,
- 0x14, 0x14, 0x14, 0x25,
- 0x14, 0x1B, 0x21, 0x28,
- 0x14, 0x1E, 0x23, 0x28,
- 0x14, 0x19, 0x23, 0x28,
- 0x14, 0x19, 0x1E, 0x28,
- 0x14, 0x28, 0x28, 0x28,
- 0x14, 0x14, 0x28, 0x28,
- 0x14, 0x14, 0x14, 0x28,
- 0x14, 0x1F, 0x26, 0x2B,
- 0x14, 0x19, 0x26, 0x2B,
- 0x14, 0x19, 0x20, 0x2B,
- 0x14, 0x2B, 0x2B, 0x2B,
- 0x14, 0x14, 0x2B, 0x2B,
- 0x14, 0x14, 0x14, 0x2B,
- 0x14, 0x21, 0x28, 0x2E,
- 0x14, 0x1A, 0x28, 0x2E,
- 0x14, 0x1A, 0x21, 0x2E,
- 0x14, 0x2E, 0x2E, 0x2E,
- 0x14, 0x14, 0x2E, 0x2E,
- 0x14, 0x14, 0x14, 0x2E,
- 0x14, 0x22, 0x2A, 0x31,
- 0x14, 0x1B, 0x2A, 0x31,
- 0x14, 0x1B, 0x23, 0x31,
- 0x14, 0x31, 0x31, 0x31,
- 0x14, 0x14, 0x31, 0x31,
- 0x14, 0x14, 0x14, 0x31,
- 0x14, 0x24, 0x2C, 0x34,
- 0x14, 0x1C, 0x2C, 0x34,
- 0x14, 0x1C, 0x24, 0x34,
- 0x14, 0x34, 0x34, 0x34,
- 0x14, 0x14, 0x34, 0x34,
- 0x14, 0x14, 0x14, 0x34,
- 0x14, 0x37, 0x37, 0x37,
- 0x14, 0x14, 0x37, 0x37,
- 0x14, 0x14, 0x14, 0x37,
- 0x14, 0x26, 0x2F, 0x38,
- 0x14, 0x1D, 0x2F, 0x38,
- 0x14, 0x1D, 0x26, 0x38,
- 0x14, 0x3C, 0x3C, 0x3C,
- 0x14, 0x14, 0x3C, 0x3C,
- 0x14, 0x14, 0x14, 0x3C,
- 0x15, 0x16, 0x16, 0x17,
- 0x15, 0x16, 0x17, 0x18,
- 0x15, 0x17, 0x18, 0x19,
- 0x15, 0x16, 0x18, 0x19,
- 0x15, 0x16, 0x17, 0x19,
- 0x15, 0x17, 0x18, 0x1A,
- 0x15, 0x17, 0x19, 0x1A,
- 0x15, 0x16, 0x19, 0x1A,
- 0x15, 0x16, 0x18, 0x1A,
- 0x15, 0x17, 0x19, 0x1B,
- 0x15, 0x18, 0x1A, 0x1B,
- 0x15, 0x16, 0x1A, 0x1B,
- 0x15, 0x16, 0x18, 0x1B,
- 0x15, 0x1B, 0x1B, 0x1B,
- 0x15, 0x15, 0x1B, 0x1B,
- 0x15, 0x15, 0x15, 0x1B,
- 0x15, 0x18, 0x19, 0x1C,
- 0x15, 0x18, 0x1B, 0x1C,
- 0x15, 0x16, 0x1B, 0x1C,
- 0x15, 0x16, 0x19, 0x1C,
- 0x15, 0x18, 0x1A, 0x1D,
- 0x15, 0x19, 0x1B, 0x1D,
- 0x15, 0x17, 0x1B, 0x1D,
- 0x15, 0x17, 0x19, 0x1D,
- 0x15, 0x1D, 0x1D, 0x1D,
- 0x15, 0x15, 0x1D, 0x1D,
- 0x15, 0x15, 0x15, 0x1D,
- 0x15, 0x19, 0x1C, 0x20,
- 0x15, 0x1A, 0x1E, 0x20,
- 0x15, 0x17, 0x1E, 0x20,
- 0x15, 0x17, 0x1B, 0x20,
- 0x15, 0x20, 0x20, 0x20,
- 0x15, 0x15, 0x20, 0x20,
- 0x15, 0x15, 0x15, 0x20,
- 0x15, 0x1A, 0x1E, 0x23,
- 0x15, 0x1C, 0x20, 0x23,
- 0x15, 0x18, 0x20, 0x23,
- 0x15, 0x18, 0x1C, 0x23,
- 0x15, 0x23, 0x23, 0x23,
- 0x15, 0x15, 0x23, 0x23,
- 0x15, 0x15, 0x15, 0x23,
- 0x15, 0x1B, 0x20, 0x26,
- 0x15, 0x1D, 0x22, 0x26,
- 0x15, 0x19, 0x22, 0x26,
- 0x15, 0x19, 0x1E, 0x26,
- 0x15, 0x26, 0x26, 0x26,
- 0x15, 0x15, 0x26, 0x26,
- 0x15, 0x15, 0x15, 0x26,
- 0x15, 0x1C, 0x22, 0x29,
- 0x15, 0x1F, 0x24, 0x29,
- 0x15, 0x1A, 0x24, 0x29,
- 0x15, 0x1A, 0x1F, 0x29,
- 0x15, 0x29, 0x29, 0x29,
- 0x15, 0x15, 0x29, 0x29,
- 0x15, 0x15, 0x15, 0x29,
- 0x15, 0x20, 0x27, 0x2C,
- 0x15, 0x1A, 0x27, 0x2C,
- 0x15, 0x1A, 0x21, 0x2C,
- 0x15, 0x2C, 0x2C, 0x2C,
- 0x15, 0x15, 0x2C, 0x2C,
- 0x15, 0x15, 0x15, 0x2C,
- 0x15, 0x22, 0x29, 0x2F,
- 0x15, 0x1B, 0x29, 0x2F,
- 0x15, 0x1B, 0x22, 0x2F,
- 0x15, 0x2F, 0x2F, 0x2F,
- 0x15, 0x15, 0x2F, 0x2F,
- 0x15, 0x15, 0x15, 0x2F,
- 0x15, 0x23, 0x2B, 0x32,
- 0x15, 0x1C, 0x2B, 0x32,
- 0x15, 0x1C, 0x24, 0x32,
- 0x15, 0x32, 0x32, 0x32,
- 0x15, 0x15, 0x32, 0x32,
- 0x15, 0x15, 0x15, 0x32,
- 0x15, 0x25, 0x2D, 0x35,
- 0x15, 0x1D, 0x2D, 0x35,
- 0x15, 0x1D, 0x25, 0x35,
- 0x15, 0x35, 0x35, 0x35,
- 0x15, 0x15, 0x35, 0x35,
- 0x15, 0x15, 0x15, 0x35,
- 0x15, 0x38, 0x38, 0x38,
- 0x15, 0x15, 0x38, 0x38,
- 0x15, 0x15, 0x15, 0x38,
- 0x15, 0x27, 0x30, 0x39,
- 0x15, 0x1E, 0x30, 0x39,
- 0x15, 0x1E, 0x27, 0x39,
- 0x15, 0x3D, 0x3D, 0x3D,
- 0x15, 0x15, 0x3D, 0x3D,
- 0x15, 0x15, 0x15, 0x3D,
- 0x16, 0x17, 0x17, 0x18,
- 0x16, 0x17, 0x18, 0x19,
- 0x16, 0x18, 0x19, 0x1A,
- 0x16, 0x17, 0x19, 0x1A,
- 0x16, 0x17, 0x18, 0x1A,
- 0x16, 0x18, 0x19, 0x1B,
- 0x16, 0x18, 0x1A, 0x1B,
- 0x16, 0x17, 0x1A, 0x1B,
- 0x16, 0x17, 0x19, 0x1B,
- 0x16, 0x18, 0x1A, 0x1C,
- 0x16, 0x19, 0x1B, 0x1C,
- 0x16, 0x17, 0x1B, 0x1C,
- 0x16, 0x17, 0x19, 0x1C,
- 0x16, 0x1C, 0x1C, 0x1C,
- 0x16, 0x16, 0x1C, 0x1C,
- 0x16, 0x16, 0x16, 0x1C,
- 0x16, 0x19, 0x1A, 0x1D,
- 0x16, 0x19, 0x1C, 0x1D,
- 0x16, 0x17, 0x1C, 0x1D,
- 0x16, 0x17, 0x1A, 0x1D,
- 0x16, 0x19, 0x1B, 0x1E,
- 0x16, 0x1A, 0x1C, 0x1E,
- 0x16, 0x18, 0x1C, 0x1E,
- 0x16, 0x18, 0x1A, 0x1E,
- 0x16, 0x1E, 0x1E, 0x1E,
- 0x16, 0x16, 0x1E, 0x1E,
- 0x16, 0x16, 0x16, 0x1E,
- 0x16, 0x1A, 0x1D, 0x21,
- 0x16, 0x1B, 0x1F, 0x21,
- 0x16, 0x18, 0x1F, 0x21,
- 0x16, 0x18, 0x1C, 0x21,
- 0x16, 0x21, 0x21, 0x21,
- 0x16, 0x16, 0x21, 0x21,
- 0x16, 0x16, 0x16, 0x21,
- 0x16, 0x1B, 0x1F, 0x24,
- 0x16, 0x1D, 0x21, 0x24,
- 0x16, 0x19, 0x21, 0x24,
- 0x16, 0x19, 0x1D, 0x24,
- 0x16, 0x24, 0x24, 0x24,
- 0x16, 0x16, 0x24, 0x24,
- 0x16, 0x16, 0x16, 0x24,
- 0x16, 0x1C, 0x21, 0x27,
- 0x16, 0x1E, 0x23, 0x27,
- 0x16, 0x1A, 0x23, 0x27,
- 0x16, 0x1A, 0x1F, 0x27,
- 0x16, 0x27, 0x27, 0x27,
- 0x16, 0x16, 0x27, 0x27,
- 0x16, 0x16, 0x16, 0x27,
- 0x16, 0x1D, 0x23, 0x2A,
- 0x16, 0x20, 0x25, 0x2A,
- 0x16, 0x1B, 0x25, 0x2A,
- 0x16, 0x1B, 0x20, 0x2A,
- 0x16, 0x2A, 0x2A, 0x2A,
- 0x16, 0x16, 0x2A, 0x2A,
- 0x16, 0x16, 0x16, 0x2A,
- 0x16, 0x21, 0x28, 0x2D,
- 0x16, 0x1B, 0x28, 0x2D,
- 0x16, 0x1B, 0x22, 0x2D,
- 0x16, 0x2D, 0x2D, 0x2D,
- 0x16, 0x16, 0x2D, 0x2D,
- 0x16, 0x16, 0x16, 0x2D,
- 0x16, 0x23, 0x2A, 0x30,
- 0x16, 0x1C, 0x2A, 0x30,
- 0x16, 0x1C, 0x23, 0x30,
- 0x16, 0x30, 0x30, 0x30,
- 0x16, 0x16, 0x30, 0x30,
- 0x16, 0x16, 0x16, 0x30,
- 0x16, 0x24, 0x2C, 0x33,
- 0x16, 0x1D, 0x2C, 0x33,
- 0x16, 0x1D, 0x25, 0x33,
- 0x16, 0x33, 0x33, 0x33,
- 0x16, 0x16, 0x33, 0x33,
- 0x16, 0x16, 0x16, 0x33,
- 0x16, 0x26, 0x2E, 0x36,
- 0x16, 0x1E, 0x2E, 0x36,
- 0x16, 0x1E, 0x26, 0x36,
- 0x16, 0x36, 0x36, 0x36,
- 0x16, 0x16, 0x36, 0x36,
- 0x16, 0x16, 0x16, 0x36,
- 0x16, 0x39, 0x39, 0x39,
- 0x16, 0x16, 0x39, 0x39,
- 0x16, 0x16, 0x16, 0x39,
- 0x16, 0x28, 0x31, 0x3A,
- 0x16, 0x1F, 0x31, 0x3A,
- 0x16, 0x1F, 0x28, 0x3A,
- 0x16, 0x3E, 0x3E, 0x3E,
- 0x16, 0x16, 0x3E, 0x3E,
- 0x16, 0x16, 0x16, 0x3E,
- 0x17, 0x18, 0x18, 0x19,
- 0x17, 0x18, 0x19, 0x1A,
- 0x17, 0x19, 0x1A, 0x1B,
- 0x17, 0x18, 0x1A, 0x1B,
- 0x17, 0x18, 0x19, 0x1B,
- 0x17, 0x19, 0x1A, 0x1C,
- 0x17, 0x19, 0x1B, 0x1C,
- 0x17, 0x18, 0x1B, 0x1C,
- 0x17, 0x18, 0x1A, 0x1C,
- 0x17, 0x19, 0x1B, 0x1D,
- 0x17, 0x1A, 0x1C, 0x1D,
- 0x17, 0x18, 0x1C, 0x1D,
- 0x17, 0x18, 0x1A, 0x1D,
- 0x17, 0x1D, 0x1D, 0x1D,
- 0x17, 0x17, 0x1D, 0x1D,
- 0x17, 0x17, 0x17, 0x1D,
- 0x17, 0x1A, 0x1B, 0x1E,
- 0x17, 0x1A, 0x1D, 0x1E,
- 0x17, 0x18, 0x1D, 0x1E,
- 0x17, 0x18, 0x1B, 0x1E,
- 0x17, 0x1A, 0x1C, 0x1F,
- 0x17, 0x1B, 0x1D, 0x1F,
- 0x17, 0x19, 0x1D, 0x1F,
- 0x17, 0x19, 0x1B, 0x1F,
- 0x17, 0x1F, 0x1F, 0x1F,
- 0x17, 0x17, 0x1F, 0x1F,
- 0x17, 0x17, 0x17, 0x1F,
- 0x17, 0x1B, 0x1E, 0x22,
- 0x17, 0x1C, 0x20, 0x22,
- 0x17, 0x19, 0x20, 0x22,
- 0x17, 0x19, 0x1D, 0x22,
- 0x17, 0x22, 0x22, 0x22,
- 0x17, 0x17, 0x22, 0x22,
- 0x17, 0x17, 0x17, 0x22,
- 0x17, 0x1C, 0x20, 0x25,
- 0x17, 0x1E, 0x22, 0x25,
- 0x17, 0x1A, 0x22, 0x25,
- 0x17, 0x1A, 0x1E, 0x25,
- 0x17, 0x25, 0x25, 0x25,
- 0x17, 0x17, 0x25, 0x25,
- 0x17, 0x17, 0x17, 0x25,
- 0x17, 0x1D, 0x22, 0x28,
- 0x17, 0x1F, 0x24, 0x28,
- 0x17, 0x1B, 0x24, 0x28,
- 0x17, 0x1B, 0x20, 0x28,
- 0x17, 0x28, 0x28, 0x28,
- 0x17, 0x17, 0x28, 0x28,
- 0x17, 0x17, 0x17, 0x28,
- 0x17, 0x1E, 0x24, 0x2B,
- 0x17, 0x21, 0x26, 0x2B,
- 0x17, 0x1C, 0x26, 0x2B,
- 0x17, 0x1C, 0x21, 0x2B,
- 0x17, 0x2B, 0x2B, 0x2B,
- 0x17, 0x17, 0x2B, 0x2B,
- 0x17, 0x17, 0x17, 0x2B,
- 0x17, 0x22, 0x29, 0x2E,
- 0x17, 0x1C, 0x29, 0x2E,
- 0x17, 0x1C, 0x23, 0x2E,
- 0x17, 0x2E, 0x2E, 0x2E,
- 0x17, 0x17, 0x2E, 0x2E,
- 0x17, 0x17, 0x17, 0x2E,
- 0x17, 0x24, 0x2B, 0x31,
- 0x17, 0x1D, 0x2B, 0x31,
- 0x17, 0x1D, 0x24, 0x31,
- 0x17, 0x31, 0x31, 0x31,
- 0x17, 0x17, 0x31, 0x31,
- 0x17, 0x17, 0x17, 0x31,
- 0x17, 0x25, 0x2D, 0x34,
- 0x17, 0x1E, 0x2D, 0x34,
- 0x17, 0x1E, 0x26, 0x34,
- 0x17, 0x34, 0x34, 0x34,
- 0x17, 0x17, 0x34, 0x34,
- 0x17, 0x17, 0x17, 0x34,
- 0x17, 0x27, 0x2F, 0x37,
- 0x17, 0x1F, 0x2F, 0x37,
- 0x17, 0x1F, 0x27, 0x37,
- 0x17, 0x37, 0x37, 0x37,
- 0x17, 0x17, 0x37, 0x37,
- 0x17, 0x17, 0x17, 0x37,
- 0x17, 0x3A, 0x3A, 0x3A,
- 0x17, 0x17, 0x3A, 0x3A,
- 0x17, 0x17, 0x17, 0x3A,
- 0x17, 0x29, 0x32, 0x3B,
- 0x17, 0x20, 0x32, 0x3B,
- 0x17, 0x20, 0x29, 0x3B,
- 0x17, 0x3F, 0x3F, 0x3F,
- 0x17, 0x17, 0x3F, 0x3F,
- 0x17, 0x17, 0x17, 0x3F,
- 0x18, 0x19, 0x19, 0x1A,
- 0x18, 0x19, 0x1A, 0x1B,
- 0x18, 0x1A, 0x1B, 0x1C,
- 0x18, 0x19, 0x1B, 0x1C,
- 0x18, 0x19, 0x1A, 0x1C,
- 0x18, 0x1A, 0x1B, 0x1D,
- 0x18, 0x1A, 0x1C, 0x1D,
- 0x18, 0x19, 0x1C, 0x1D,
- 0x18, 0x19, 0x1B, 0x1D,
- 0x18, 0x1A, 0x1C, 0x1E,
- 0x18, 0x1B, 0x1D, 0x1E,
- 0x18, 0x19, 0x1D, 0x1E,
- 0x18, 0x19, 0x1B, 0x1E,
- 0x18, 0x1E, 0x1E, 0x1E,
- 0x18, 0x18, 0x1E, 0x1E,
- 0x18, 0x18, 0x18, 0x1E,
- 0x18, 0x1B, 0x1C, 0x1F,
- 0x18, 0x1B, 0x1E, 0x1F,
- 0x18, 0x19, 0x1E, 0x1F,
- 0x18, 0x19, 0x1C, 0x1F,
- 0x18, 0x1B, 0x1D, 0x20,
- 0x18, 0x1C, 0x1E, 0x20,
- 0x18, 0x1A, 0x1E, 0x20,
- 0x18, 0x1A, 0x1C, 0x20,
- 0x18, 0x20, 0x20, 0x20,
- 0x18, 0x18, 0x20, 0x20,
- 0x18, 0x18, 0x18, 0x20,
- 0x18, 0x1C, 0x1F, 0x23,
- 0x18, 0x1D, 0x21, 0x23,
- 0x18, 0x1A, 0x21, 0x23,
- 0x18, 0x1A, 0x1E, 0x23,
- 0x18, 0x23, 0x23, 0x23,
- 0x18, 0x18, 0x23, 0x23,
- 0x18, 0x18, 0x18, 0x23,
- 0x18, 0x1D, 0x21, 0x26,
- 0x18, 0x1F, 0x23, 0x26,
- 0x18, 0x1B, 0x23, 0x26,
- 0x18, 0x1B, 0x1F, 0x26,
- 0x18, 0x26, 0x26, 0x26,
- 0x18, 0x18, 0x26, 0x26,
- 0x18, 0x18, 0x18, 0x26,
- 0x18, 0x1E, 0x23, 0x29,
- 0x18, 0x20, 0x25, 0x29,
- 0x18, 0x1C, 0x25, 0x29,
- 0x18, 0x1C, 0x21, 0x29,
- 0x18, 0x29, 0x29, 0x29,
- 0x18, 0x18, 0x29, 0x29,
- 0x18, 0x18, 0x18, 0x29,
- 0x18, 0x1F, 0x25, 0x2C,
- 0x18, 0x22, 0x27, 0x2C,
- 0x18, 0x1D, 0x27, 0x2C,
- 0x18, 0x1D, 0x22, 0x2C,
- 0x18, 0x2C, 0x2C, 0x2C,
- 0x18, 0x18, 0x2C, 0x2C,
- 0x18, 0x18, 0x18, 0x2C,
- 0x18, 0x23, 0x2A, 0x2F,
- 0x18, 0x1D, 0x2A, 0x2F,
- 0x18, 0x1D, 0x24, 0x2F,
- 0x18, 0x2F, 0x2F, 0x2F,
- 0x18, 0x18, 0x2F, 0x2F,
- 0x18, 0x18, 0x18, 0x2F,
- 0x18, 0x25, 0x2C, 0x32,
- 0x18, 0x1E, 0x2C, 0x32,
- 0x18, 0x1E, 0x25, 0x32,
- 0x18, 0x32, 0x32, 0x32,
- 0x18, 0x18, 0x32, 0x32,
- 0x18, 0x18, 0x18, 0x32,
- 0x18, 0x26, 0x2E, 0x35,
- 0x18, 0x1F, 0x2E, 0x35,
- 0x18, 0x1F, 0x27, 0x35,
- 0x18, 0x35, 0x35, 0x35,
- 0x18, 0x18, 0x35, 0x35,
- 0x18, 0x18, 0x18, 0x35,
- 0x18, 0x28, 0x30, 0x38,
- 0x18, 0x20, 0x30, 0x38,
- 0x18, 0x20, 0x28, 0x38,
- 0x18, 0x38, 0x38, 0x38,
- 0x18, 0x18, 0x38, 0x38,
- 0x18, 0x18, 0x18, 0x38,
- 0x18, 0x3B, 0x3B, 0x3B,
- 0x18, 0x18, 0x3B, 0x3B,
- 0x18, 0x18, 0x18, 0x3B,
- 0x18, 0x2A, 0x33, 0x3C,
- 0x18, 0x21, 0x33, 0x3C,
- 0x18, 0x21, 0x2A, 0x3C,
- 0x19, 0x1A, 0x1A, 0x1B,
- 0x19, 0x1A, 0x1B, 0x1C,
- 0x19, 0x1B, 0x1C, 0x1D,
- 0x19, 0x1A, 0x1C, 0x1D,
- 0x19, 0x1A, 0x1B, 0x1D,
- 0x19, 0x1B, 0x1C, 0x1E,
- 0x19, 0x1B, 0x1D, 0x1E,
- 0x19, 0x1A, 0x1D, 0x1E,
- 0x19, 0x1A, 0x1C, 0x1E,
- 0x19, 0x1B, 0x1D, 0x1F,
- 0x19, 0x1C, 0x1E, 0x1F,
- 0x19, 0x1A, 0x1E, 0x1F,
- 0x19, 0x1A, 0x1C, 0x1F,
- 0x19, 0x1F, 0x1F, 0x1F,
- 0x19, 0x19, 0x1F, 0x1F,
- 0x19, 0x19, 0x19, 0x1F,
- 0x19, 0x1C, 0x1D, 0x20,
- 0x19, 0x1C, 0x1F, 0x20,
- 0x19, 0x1A, 0x1F, 0x20,
- 0x19, 0x1A, 0x1D, 0x20,
- 0x19, 0x1C, 0x1E, 0x21,
- 0x19, 0x1D, 0x1F, 0x21,
- 0x19, 0x1B, 0x1F, 0x21,
- 0x19, 0x1B, 0x1D, 0x21,
- 0x19, 0x21, 0x21, 0x21,
- 0x19, 0x19, 0x21, 0x21,
- 0x19, 0x19, 0x19, 0x21,
- 0x19, 0x1D, 0x20, 0x24,
- 0x19, 0x1E, 0x22, 0x24,
- 0x19, 0x1B, 0x22, 0x24,
- 0x19, 0x1B, 0x1F, 0x24,
- 0x19, 0x24, 0x24, 0x24,
- 0x19, 0x19, 0x24, 0x24,
- 0x19, 0x19, 0x19, 0x24,
- 0x19, 0x1E, 0x22, 0x27,
- 0x19, 0x20, 0x24, 0x27,
- 0x19, 0x1C, 0x24, 0x27,
- 0x19, 0x1C, 0x20, 0x27,
- 0x19, 0x27, 0x27, 0x27,
- 0x19, 0x19, 0x27, 0x27,
- 0x19, 0x19, 0x19, 0x27,
- 0x19, 0x1F, 0x24, 0x2A,
- 0x19, 0x21, 0x26, 0x2A,
- 0x19, 0x1D, 0x26, 0x2A,
- 0x19, 0x1D, 0x22, 0x2A,
- 0x19, 0x2A, 0x2A, 0x2A,
- 0x19, 0x19, 0x2A, 0x2A,
- 0x19, 0x19, 0x19, 0x2A,
- 0x19, 0x20, 0x26, 0x2D,
- 0x19, 0x23, 0x28, 0x2D,
- 0x19, 0x1E, 0x28, 0x2D,
- 0x19, 0x1E, 0x23, 0x2D,
- 0x19, 0x2D, 0x2D, 0x2D,
- 0x19, 0x19, 0x2D, 0x2D,
- 0x19, 0x19, 0x19, 0x2D,
- 0x19, 0x24, 0x2B, 0x30,
- 0x19, 0x1E, 0x2B, 0x30,
- 0x19, 0x1E, 0x25, 0x30,
- 0x19, 0x30, 0x30, 0x30,
- 0x19, 0x19, 0x30, 0x30,
- 0x19, 0x19, 0x19, 0x30,
- 0x19, 0x26, 0x2D, 0x33,
- 0x19, 0x1F, 0x2D, 0x33,
- 0x19, 0x1F, 0x26, 0x33,
- 0x19, 0x33, 0x33, 0x33,
- 0x19, 0x19, 0x33, 0x33,
- 0x19, 0x19, 0x19, 0x33,
- 0x19, 0x27, 0x2F, 0x36,
- 0x19, 0x20, 0x2F, 0x36,
- 0x19, 0x20, 0x28, 0x36,
- 0x19, 0x36, 0x36, 0x36,
- 0x19, 0x19, 0x36, 0x36,
- 0x19, 0x19, 0x19, 0x36,
- 0x19, 0x29, 0x31, 0x39,
- 0x19, 0x21, 0x31, 0x39,
- 0x19, 0x21, 0x29, 0x39,
- 0x19, 0x39, 0x39, 0x39,
- 0x19, 0x19, 0x39, 0x39,
- 0x19, 0x19, 0x19, 0x39,
- 0x19, 0x3C, 0x3C, 0x3C,
- 0x19, 0x19, 0x3C, 0x3C,
- 0x19, 0x19, 0x19, 0x3C,
- 0x19, 0x2B, 0x34, 0x3D,
- 0x19, 0x22, 0x34, 0x3D,
- 0x19, 0x22, 0x2B, 0x3D,
- 0x1A, 0x1B, 0x1B, 0x1C,
- 0x1A, 0x1B, 0x1C, 0x1D,
- 0x1A, 0x1C, 0x1D, 0x1E,
- 0x1A, 0x1B, 0x1D, 0x1E,
- 0x1A, 0x1B, 0x1C, 0x1E,
- 0x1A, 0x1C, 0x1D, 0x1F,
- 0x1A, 0x1C, 0x1E, 0x1F,
- 0x1A, 0x1B, 0x1E, 0x1F,
- 0x1A, 0x1B, 0x1D, 0x1F,
- 0x1A, 0x1C, 0x1E, 0x20,
- 0x1A, 0x1D, 0x1F, 0x20,
- 0x1A, 0x1B, 0x1F, 0x20,
- 0x1A, 0x1B, 0x1D, 0x20,
- 0x1A, 0x20, 0x20, 0x20,
- 0x1A, 0x1A, 0x20, 0x20,
- 0x1A, 0x1A, 0x1A, 0x20,
- 0x1A, 0x1D, 0x1E, 0x21,
- 0x1A, 0x1D, 0x20, 0x21,
- 0x1A, 0x1B, 0x20, 0x21,
- 0x1A, 0x1B, 0x1E, 0x21,
- 0x1A, 0x1D, 0x1F, 0x22,
- 0x1A, 0x1E, 0x20, 0x22,
- 0x1A, 0x1C, 0x20, 0x22,
- 0x1A, 0x1C, 0x1E, 0x22,
- 0x1A, 0x22, 0x22, 0x22,
- 0x1A, 0x1A, 0x22, 0x22,
- 0x1A, 0x1A, 0x1A, 0x22,
- 0x1A, 0x1E, 0x21, 0x25,
- 0x1A, 0x1F, 0x23, 0x25,
- 0x1A, 0x1C, 0x23, 0x25,
- 0x1A, 0x1C, 0x20, 0x25,
- 0x1A, 0x25, 0x25, 0x25,
- 0x1A, 0x1A, 0x25, 0x25,
- 0x1A, 0x1A, 0x1A, 0x25,
- 0x1A, 0x1F, 0x23, 0x28,
- 0x1A, 0x21, 0x25, 0x28,
- 0x1A, 0x1D, 0x25, 0x28,
- 0x1A, 0x1D, 0x21, 0x28,
- 0x1A, 0x28, 0x28, 0x28,
- 0x1A, 0x1A, 0x28, 0x28,
- 0x1A, 0x1A, 0x1A, 0x28,
- 0x1A, 0x20, 0x25, 0x2B,
- 0x1A, 0x22, 0x27, 0x2B,
- 0x1A, 0x1E, 0x27, 0x2B,
- 0x1A, 0x1E, 0x23, 0x2B,
- 0x1A, 0x2B, 0x2B, 0x2B,
- 0x1A, 0x1A, 0x2B, 0x2B,
- 0x1A, 0x1A, 0x1A, 0x2B,
- 0x1A, 0x21, 0x27, 0x2E,
- 0x1A, 0x24, 0x29, 0x2E,
- 0x1A, 0x1F, 0x29, 0x2E,
- 0x1A, 0x1F, 0x24, 0x2E,
- 0x1A, 0x2E, 0x2E, 0x2E,
- 0x1A, 0x1A, 0x2E, 0x2E,
- 0x1A, 0x1A, 0x1A, 0x2E,
- 0x1A, 0x25, 0x2C, 0x31,
- 0x1A, 0x1F, 0x2C, 0x31,
- 0x1A, 0x1F, 0x26, 0x31,
- 0x1A, 0x31, 0x31, 0x31,
- 0x1A, 0x1A, 0x31, 0x31,
- 0x1A, 0x1A, 0x1A, 0x31,
- 0x1A, 0x27, 0x2E, 0x34,
- 0x1A, 0x20, 0x2E, 0x34,
- 0x1A, 0x20, 0x27, 0x34,
- 0x1A, 0x34, 0x34, 0x34,
- 0x1A, 0x1A, 0x34, 0x34,
- 0x1A, 0x1A, 0x1A, 0x34,
- 0x1A, 0x28, 0x30, 0x37,
- 0x1A, 0x21, 0x30, 0x37,
- 0x1A, 0x21, 0x29, 0x37,
- 0x1A, 0x37, 0x37, 0x37,
- 0x1A, 0x1A, 0x37, 0x37,
- 0x1A, 0x1A, 0x1A, 0x37,
- 0x1A, 0x2A, 0x32, 0x3A,
- 0x1A, 0x22, 0x32, 0x3A,
- 0x1A, 0x22, 0x2A, 0x3A,
- 0x1A, 0x3A, 0x3A, 0x3A,
- 0x1A, 0x1A, 0x3A, 0x3A,
- 0x1A, 0x1A, 0x1A, 0x3A,
- 0x1A, 0x3D, 0x3D, 0x3D,
- 0x1A, 0x1A, 0x3D, 0x3D,
- 0x1A, 0x1A, 0x1A, 0x3D,
- 0x1A, 0x2C, 0x35, 0x3E,
- 0x1A, 0x23, 0x35, 0x3E,
- 0x1A, 0x23, 0x2C, 0x3E,
- 0x1B, 0x1C, 0x1C, 0x1D,
- 0x1B, 0x1C, 0x1D, 0x1E,
- 0x1B, 0x1D, 0x1E, 0x1F,
- 0x1B, 0x1C, 0x1E, 0x1F,
- 0x1B, 0x1C, 0x1D, 0x1F,
- 0x1B, 0x1D, 0x1E, 0x20,
- 0x1B, 0x1D, 0x1F, 0x20,
- 0x1B, 0x1C, 0x1F, 0x20,
- 0x1B, 0x1C, 0x1E, 0x20,
- 0x1B, 0x1D, 0x1F, 0x21,
- 0x1B, 0x1E, 0x20, 0x21,
- 0x1B, 0x1C, 0x20, 0x21,
- 0x1B, 0x1C, 0x1E, 0x21,
- 0x1B, 0x21, 0x21, 0x21,
- 0x1B, 0x1B, 0x21, 0x21,
- 0x1B, 0x1B, 0x1B, 0x21,
- 0x1B, 0x1E, 0x1F, 0x22,
- 0x1B, 0x1E, 0x21, 0x22,
- 0x1B, 0x1C, 0x21, 0x22,
- 0x1B, 0x1C, 0x1F, 0x22,
- 0x1B, 0x1E, 0x20, 0x23,
- 0x1B, 0x1F, 0x21, 0x23,
- 0x1B, 0x1D, 0x21, 0x23,
- 0x1B, 0x1D, 0x1F, 0x23,
- 0x1B, 0x23, 0x23, 0x23,
- 0x1B, 0x1B, 0x23, 0x23,
- 0x1B, 0x1B, 0x1B, 0x23,
- 0x1B, 0x1F, 0x22, 0x26,
- 0x1B, 0x20, 0x24, 0x26,
- 0x1B, 0x1D, 0x24, 0x26,
- 0x1B, 0x1D, 0x21, 0x26,
- 0x1B, 0x26, 0x26, 0x26,
- 0x1B, 0x1B, 0x26, 0x26,
- 0x1B, 0x1B, 0x1B, 0x26,
- 0x1B, 0x20, 0x24, 0x29,
- 0x1B, 0x22, 0x26, 0x29,
- 0x1B, 0x1E, 0x26, 0x29,
- 0x1B, 0x1E, 0x22, 0x29,
- 0x1B, 0x29, 0x29, 0x29,
- 0x1B, 0x1B, 0x29, 0x29,
- 0x1B, 0x1B, 0x1B, 0x29,
- 0x1B, 0x21, 0x26, 0x2C,
- 0x1B, 0x23, 0x28, 0x2C,
- 0x1B, 0x1F, 0x28, 0x2C,
- 0x1B, 0x1F, 0x24, 0x2C,
- 0x1B, 0x2C, 0x2C, 0x2C,
- 0x1B, 0x1B, 0x2C, 0x2C,
- 0x1B, 0x1B, 0x1B, 0x2C,
- 0x1B, 0x22, 0x28, 0x2F,
- 0x1B, 0x25, 0x2A, 0x2F,
- 0x1B, 0x20, 0x2A, 0x2F,
- 0x1B, 0x20, 0x25, 0x2F,
- 0x1B, 0x2F, 0x2F, 0x2F,
- 0x1B, 0x1B, 0x2F, 0x2F,
- 0x1B, 0x1B, 0x1B, 0x2F,
- 0x1B, 0x26, 0x2D, 0x32,
- 0x1B, 0x20, 0x2D, 0x32,
- 0x1B, 0x20, 0x27, 0x32,
- 0x1B, 0x32, 0x32, 0x32,
- 0x1B, 0x1B, 0x32, 0x32,
- 0x1B, 0x1B, 0x1B, 0x32,
- 0x1B, 0x28, 0x2F, 0x35,
- 0x1B, 0x21, 0x2F, 0x35,
- 0x1B, 0x21, 0x28, 0x35,
- 0x1B, 0x35, 0x35, 0x35,
- 0x1B, 0x1B, 0x35, 0x35,
- 0x1B, 0x1B, 0x1B, 0x35,
- 0x1B, 0x29, 0x31, 0x38,
- 0x1B, 0x22, 0x31, 0x38,
- 0x1B, 0x22, 0x2A, 0x38,
- 0x1B, 0x38, 0x38, 0x38,
- 0x1B, 0x1B, 0x38, 0x38,
- 0x1B, 0x1B, 0x1B, 0x38,
- 0x1B, 0x2B, 0x33, 0x3B,
- 0x1B, 0x23, 0x33, 0x3B,
- 0x1B, 0x23, 0x2B, 0x3B,
- 0x1B, 0x3B, 0x3B, 0x3B,
- 0x1B, 0x1B, 0x3B, 0x3B,
- 0x1B, 0x1B, 0x1B, 0x3B,
- 0x1B, 0x3E, 0x3E, 0x3E,
- 0x1B, 0x1B, 0x3E, 0x3E,
- 0x1B, 0x1B, 0x1B, 0x3E,
- 0x1B, 0x2D, 0x36, 0x3F,
- 0x1B, 0x24, 0x36, 0x3F,
- 0x1B, 0x24, 0x2D, 0x3F,
- 0x1C, 0x1D, 0x1D, 0x1E,
- 0x1C, 0x1D, 0x1E, 0x1F,
- 0x1C, 0x1E, 0x1F, 0x20,
- 0x1C, 0x1D, 0x1F, 0x20,
- 0x1C, 0x1D, 0x1E, 0x20,
- 0x1C, 0x1E, 0x1F, 0x21,
- 0x1C, 0x1E, 0x20, 0x21,
- 0x1C, 0x1D, 0x20, 0x21,
- 0x1C, 0x1D, 0x1F, 0x21,
- 0x1C, 0x1E, 0x20, 0x22,
- 0x1C, 0x1F, 0x21, 0x22,
- 0x1C, 0x1D, 0x21, 0x22,
- 0x1C, 0x1D, 0x1F, 0x22,
- 0x1C, 0x22, 0x22, 0x22,
- 0x1C, 0x1C, 0x22, 0x22,
- 0x1C, 0x1C, 0x1C, 0x22,
- 0x1C, 0x1F, 0x20, 0x23,
- 0x1C, 0x1F, 0x22, 0x23,
- 0x1C, 0x1D, 0x22, 0x23,
- 0x1C, 0x1D, 0x20, 0x23,
- 0x1C, 0x1F, 0x21, 0x24,
- 0x1C, 0x20, 0x22, 0x24,
- 0x1C, 0x1E, 0x22, 0x24,
- 0x1C, 0x1E, 0x20, 0x24,
- 0x1C, 0x24, 0x24, 0x24,
- 0x1C, 0x1C, 0x24, 0x24,
- 0x1C, 0x1C, 0x1C, 0x24,
- 0x1C, 0x20, 0x23, 0x27,
- 0x1C, 0x21, 0x25, 0x27,
- 0x1C, 0x1E, 0x25, 0x27,
- 0x1C, 0x1E, 0x22, 0x27,
- 0x1C, 0x27, 0x27, 0x27,
- 0x1C, 0x1C, 0x27, 0x27,
- 0x1C, 0x1C, 0x1C, 0x27,
- 0x1C, 0x21, 0x25, 0x2A,
- 0x1C, 0x23, 0x27, 0x2A,
- 0x1C, 0x1F, 0x27, 0x2A,
- 0x1C, 0x1F, 0x23, 0x2A,
- 0x1C, 0x2A, 0x2A, 0x2A,
- 0x1C, 0x1C, 0x2A, 0x2A,
- 0x1C, 0x1C, 0x1C, 0x2A,
- 0x1C, 0x22, 0x27, 0x2D,
- 0x1C, 0x24, 0x29, 0x2D,
- 0x1C, 0x20, 0x29, 0x2D,
- 0x1C, 0x20, 0x25, 0x2D,
- 0x1C, 0x2D, 0x2D, 0x2D,
- 0x1C, 0x1C, 0x2D, 0x2D,
- 0x1C, 0x1C, 0x1C, 0x2D,
- 0x1C, 0x23, 0x29, 0x30,
- 0x1C, 0x26, 0x2B, 0x30,
- 0x1C, 0x21, 0x2B, 0x30,
- 0x1C, 0x21, 0x26, 0x30,
- 0x1C, 0x30, 0x30, 0x30,
- 0x1C, 0x1C, 0x30, 0x30,
- 0x1C, 0x1C, 0x1C, 0x30,
- 0x1C, 0x27, 0x2E, 0x33,
- 0x1C, 0x21, 0x2E, 0x33,
- 0x1C, 0x21, 0x28, 0x33,
- 0x1C, 0x33, 0x33, 0x33,
- 0x1C, 0x1C, 0x33, 0x33,
- 0x1C, 0x1C, 0x1C, 0x33,
- 0x1C, 0x29, 0x30, 0x36,
- 0x1C, 0x22, 0x30, 0x36,
- 0x1C, 0x22, 0x29, 0x36,
- 0x1C, 0x36, 0x36, 0x36,
- 0x1C, 0x1C, 0x36, 0x36,
- 0x1C, 0x1C, 0x1C, 0x36,
- 0x1C, 0x2A, 0x32, 0x39,
- 0x1C, 0x23, 0x32, 0x39,
- 0x1C, 0x23, 0x2B, 0x39,
- 0x1C, 0x39, 0x39, 0x39,
- 0x1C, 0x1C, 0x39, 0x39,
- 0x1C, 0x1C, 0x1C, 0x39,
- 0x1C, 0x2C, 0x34, 0x3C,
- 0x1C, 0x24, 0x34, 0x3C,
- 0x1C, 0x24, 0x2C, 0x3C,
- 0x1C, 0x3C, 0x3C, 0x3C,
- 0x1C, 0x1C, 0x3C, 0x3C,
- 0x1C, 0x1C, 0x1C, 0x3C,
- 0x1C, 0x3F, 0x3F, 0x3F,
- 0x1C, 0x1C, 0x3F, 0x3F,
- 0x1C, 0x1C, 0x1C, 0x3F,
- 0x1D, 0x1E, 0x1E, 0x1F,
- 0x1D, 0x1E, 0x1F, 0x20,
- 0x1D, 0x1F, 0x20, 0x21,
- 0x1D, 0x1E, 0x20, 0x21,
- 0x1D, 0x1E, 0x1F, 0x21,
- 0x1D, 0x1F, 0x20, 0x22,
- 0x1D, 0x1F, 0x21, 0x22,
- 0x1D, 0x1E, 0x21, 0x22,
- 0x1D, 0x1E, 0x20, 0x22,
- 0x1D, 0x1F, 0x21, 0x23,
- 0x1D, 0x20, 0x22, 0x23,
- 0x1D, 0x1E, 0x22, 0x23,
- 0x1D, 0x1E, 0x20, 0x23,
- 0x1D, 0x23, 0x23, 0x23,
- 0x1D, 0x1D, 0x23, 0x23,
- 0x1D, 0x1D, 0x1D, 0x23,
- 0x1D, 0x20, 0x21, 0x24,
- 0x1D, 0x20, 0x23, 0x24,
- 0x1D, 0x1E, 0x23, 0x24,
- 0x1D, 0x1E, 0x21, 0x24,
- 0x1D, 0x20, 0x22, 0x25,
- 0x1D, 0x21, 0x23, 0x25,
- 0x1D, 0x1F, 0x23, 0x25,
- 0x1D, 0x1F, 0x21, 0x25,
- 0x1D, 0x25, 0x25, 0x25,
- 0x1D, 0x1D, 0x25, 0x25,
- 0x1D, 0x1D, 0x1D, 0x25,
- 0x1D, 0x21, 0x24, 0x28,
- 0x1D, 0x22, 0x26, 0x28,
- 0x1D, 0x1F, 0x26, 0x28,
- 0x1D, 0x1F, 0x23, 0x28,
- 0x1D, 0x28, 0x28, 0x28,
- 0x1D, 0x1D, 0x28, 0x28,
- 0x1D, 0x1D, 0x1D, 0x28,
- 0x1D, 0x22, 0x26, 0x2B,
- 0x1D, 0x24, 0x28, 0x2B,
- 0x1D, 0x20, 0x28, 0x2B,
- 0x1D, 0x20, 0x24, 0x2B,
- 0x1D, 0x2B, 0x2B, 0x2B,
- 0x1D, 0x1D, 0x2B, 0x2B,
- 0x1D, 0x1D, 0x1D, 0x2B,
- 0x1D, 0x23, 0x28, 0x2E,
- 0x1D, 0x25, 0x2A, 0x2E,
- 0x1D, 0x21, 0x2A, 0x2E,
- 0x1D, 0x21, 0x26, 0x2E,
- 0x1D, 0x2E, 0x2E, 0x2E,
- 0x1D, 0x1D, 0x2E, 0x2E,
- 0x1D, 0x1D, 0x1D, 0x2E,
- 0x1D, 0x24, 0x2A, 0x31,
- 0x1D, 0x27, 0x2C, 0x31,
- 0x1D, 0x22, 0x2C, 0x31,
- 0x1D, 0x22, 0x27, 0x31,
- 0x1D, 0x31, 0x31, 0x31,
- 0x1D, 0x1D, 0x31, 0x31,
- 0x1D, 0x1D, 0x1D, 0x31,
- 0x1D, 0x28, 0x2F, 0x34,
- 0x1D, 0x22, 0x2F, 0x34,
- 0x1D, 0x22, 0x29, 0x34,
- 0x1D, 0x34, 0x34, 0x34,
- 0x1D, 0x1D, 0x34, 0x34,
- 0x1D, 0x1D, 0x1D, 0x34,
- 0x1D, 0x2A, 0x31, 0x37,
- 0x1D, 0x23, 0x31, 0x37,
- 0x1D, 0x23, 0x2A, 0x37,
- 0x1D, 0x37, 0x37, 0x37,
- 0x1D, 0x1D, 0x37, 0x37,
- 0x1D, 0x1D, 0x1D, 0x37,
- 0x1D, 0x2B, 0x33, 0x3A,
- 0x1D, 0x24, 0x33, 0x3A,
- 0x1D, 0x24, 0x2C, 0x3A,
- 0x1D, 0x3A, 0x3A, 0x3A,
- 0x1D, 0x1D, 0x3A, 0x3A,
- 0x1D, 0x1D, 0x1D, 0x3A,
- 0x1D, 0x2D, 0x35, 0x3D,
- 0x1D, 0x25, 0x35, 0x3D,
- 0x1D, 0x25, 0x2D, 0x3D,
- 0x1D, 0x3D, 0x3D, 0x3D,
- 0x1D, 0x1D, 0x3D, 0x3D,
- 0x1D, 0x1D, 0x1D, 0x3D,
- 0x1E, 0x1F, 0x1F, 0x20,
- 0x1E, 0x1F, 0x20, 0x21,
- 0x1E, 0x20, 0x21, 0x22,
- 0x1E, 0x1F, 0x21, 0x22,
- 0x1E, 0x1F, 0x20, 0x22,
- 0x1E, 0x20, 0x21, 0x23,
- 0x1E, 0x20, 0x22, 0x23,
- 0x1E, 0x1F, 0x22, 0x23,
- 0x1E, 0x1F, 0x21, 0x23,
- 0x1E, 0x20, 0x22, 0x24,
- 0x1E, 0x21, 0x23, 0x24,
- 0x1E, 0x1F, 0x23, 0x24,
- 0x1E, 0x1F, 0x21, 0x24,
- 0x1E, 0x24, 0x24, 0x24,
- 0x1E, 0x1E, 0x24, 0x24,
- 0x1E, 0x1E, 0x1E, 0x24,
- 0x1E, 0x21, 0x22, 0x25,
- 0x1E, 0x21, 0x24, 0x25,
- 0x1E, 0x1F, 0x24, 0x25,
- 0x1E, 0x1F, 0x22, 0x25,
- 0x1E, 0x21, 0x23, 0x26,
- 0x1E, 0x22, 0x24, 0x26,
- 0x1E, 0x20, 0x24, 0x26,
- 0x1E, 0x20, 0x22, 0x26,
- 0x1E, 0x26, 0x26, 0x26,
- 0x1E, 0x1E, 0x26, 0x26,
- 0x1E, 0x1E, 0x1E, 0x26,
- 0x1E, 0x22, 0x25, 0x29,
- 0x1E, 0x23, 0x27, 0x29,
- 0x1E, 0x20, 0x27, 0x29,
- 0x1E, 0x20, 0x24, 0x29,
- 0x1E, 0x29, 0x29, 0x29,
- 0x1E, 0x1E, 0x29, 0x29,
- 0x1E, 0x1E, 0x1E, 0x29,
- 0x1E, 0x23, 0x27, 0x2C,
- 0x1E, 0x25, 0x29, 0x2C,
- 0x1E, 0x21, 0x29, 0x2C,
- 0x1E, 0x21, 0x25, 0x2C,
- 0x1E, 0x2C, 0x2C, 0x2C,
- 0x1E, 0x1E, 0x2C, 0x2C,
- 0x1E, 0x1E, 0x1E, 0x2C,
- 0x1E, 0x24, 0x29, 0x2F,
- 0x1E, 0x26, 0x2B, 0x2F,
- 0x1E, 0x22, 0x2B, 0x2F,
- 0x1E, 0x22, 0x27, 0x2F,
- 0x1E, 0x2F, 0x2F, 0x2F,
- 0x1E, 0x1E, 0x2F, 0x2F,
- 0x1E, 0x1E, 0x1E, 0x2F,
- 0x1E, 0x25, 0x2B, 0x32,
- 0x1E, 0x28, 0x2D, 0x32,
- 0x1E, 0x23, 0x2D, 0x32,
- 0x1E, 0x23, 0x28, 0x32,
- 0x1E, 0x32, 0x32, 0x32,
- 0x1E, 0x1E, 0x32, 0x32,
- 0x1E, 0x1E, 0x1E, 0x32,
- 0x1E, 0x29, 0x30, 0x35,
- 0x1E, 0x23, 0x30, 0x35,
- 0x1E, 0x23, 0x2A, 0x35,
- 0x1E, 0x35, 0x35, 0x35,
- 0x1E, 0x1E, 0x35, 0x35,
- 0x1E, 0x1E, 0x1E, 0x35,
- 0x1E, 0x2B, 0x32, 0x38,
- 0x1E, 0x24, 0x32, 0x38,
- 0x1E, 0x24, 0x2B, 0x38,
- 0x1E, 0x38, 0x38, 0x38,
- 0x1E, 0x1E, 0x38, 0x38,
- 0x1E, 0x1E, 0x1E, 0x38,
- 0x1E, 0x2C, 0x34, 0x3B,
- 0x1E, 0x25, 0x34, 0x3B,
- 0x1E, 0x25, 0x2D, 0x3B,
- 0x1E, 0x3B, 0x3B, 0x3B,
- 0x1E, 0x1E, 0x3B, 0x3B,
- 0x1E, 0x1E, 0x1E, 0x3B,
- 0x1E, 0x2E, 0x36, 0x3E,
- 0x1E, 0x26, 0x36, 0x3E,
- 0x1E, 0x26, 0x2E, 0x3E,
- 0x1E, 0x3E, 0x3E, 0x3E,
- 0x1E, 0x1E, 0x3E, 0x3E,
- 0x1E, 0x1E, 0x1E, 0x3E,
- 0x1F, 0x20, 0x20, 0x21,
- 0x1F, 0x20, 0x21, 0x22,
- 0x1F, 0x21, 0x22, 0x23,
- 0x1F, 0x20, 0x22, 0x23,
- 0x1F, 0x20, 0x21, 0x23,
- 0x1F, 0x21, 0x22, 0x24,
- 0x1F, 0x21, 0x23, 0x24,
- 0x1F, 0x20, 0x23, 0x24,
- 0x1F, 0x20, 0x22, 0x24,
- 0x1F, 0x21, 0x23, 0x25,
- 0x1F, 0x22, 0x24, 0x25,
- 0x1F, 0x20, 0x24, 0x25,
- 0x1F, 0x20, 0x22, 0x25,
- 0x1F, 0x25, 0x25, 0x25,
- 0x1F, 0x1F, 0x25, 0x25,
- 0x1F, 0x1F, 0x1F, 0x25,
- 0x1F, 0x22, 0x23, 0x26,
- 0x1F, 0x22, 0x25, 0x26,
- 0x1F, 0x20, 0x25, 0x26,
- 0x1F, 0x20, 0x23, 0x26,
- 0x1F, 0x22, 0x24, 0x27,
- 0x1F, 0x23, 0x25, 0x27,
- 0x1F, 0x21, 0x25, 0x27,
- 0x1F, 0x21, 0x23, 0x27,
- 0x1F, 0x27, 0x27, 0x27,
- 0x1F, 0x1F, 0x27, 0x27,
- 0x1F, 0x1F, 0x1F, 0x27,
- 0x1F, 0x23, 0x26, 0x2A,
- 0x1F, 0x24, 0x28, 0x2A,
- 0x1F, 0x21, 0x28, 0x2A,
- 0x1F, 0x21, 0x25, 0x2A,
- 0x1F, 0x2A, 0x2A, 0x2A,
- 0x1F, 0x1F, 0x2A, 0x2A,
- 0x1F, 0x1F, 0x1F, 0x2A,
- 0x1F, 0x24, 0x28, 0x2D,
- 0x1F, 0x26, 0x2A, 0x2D,
- 0x1F, 0x22, 0x2A, 0x2D,
- 0x1F, 0x22, 0x26, 0x2D,
- 0x1F, 0x2D, 0x2D, 0x2D,
- 0x1F, 0x1F, 0x2D, 0x2D,
- 0x1F, 0x1F, 0x1F, 0x2D,
- 0x1F, 0x25, 0x2A, 0x30,
- 0x1F, 0x27, 0x2C, 0x30,
- 0x1F, 0x23, 0x2C, 0x30,
- 0x1F, 0x23, 0x28, 0x30,
- 0x1F, 0x30, 0x30, 0x30,
- 0x1F, 0x1F, 0x30, 0x30,
- 0x1F, 0x1F, 0x1F, 0x30,
- 0x1F, 0x26, 0x2C, 0x33,
- 0x1F, 0x29, 0x2E, 0x33,
- 0x1F, 0x24, 0x2E, 0x33,
- 0x1F, 0x24, 0x29, 0x33,
- 0x1F, 0x33, 0x33, 0x33,
- 0x1F, 0x1F, 0x33, 0x33,
- 0x1F, 0x1F, 0x1F, 0x33,
- 0x1F, 0x2A, 0x31, 0x36,
- 0x1F, 0x24, 0x31, 0x36,
- 0x1F, 0x24, 0x2B, 0x36,
- 0x1F, 0x36, 0x36, 0x36,
- 0x1F, 0x1F, 0x36, 0x36,
- 0x1F, 0x1F, 0x1F, 0x36,
- 0x1F, 0x2C, 0x33, 0x39,
- 0x1F, 0x25, 0x33, 0x39,
- 0x1F, 0x25, 0x2C, 0x39,
- 0x1F, 0x39, 0x39, 0x39,
- 0x1F, 0x1F, 0x39, 0x39,
- 0x1F, 0x1F, 0x1F, 0x39,
- 0x1F, 0x2D, 0x35, 0x3C,
- 0x1F, 0x26, 0x35, 0x3C,
- 0x1F, 0x26, 0x2E, 0x3C,
- 0x1F, 0x3C, 0x3C, 0x3C,
- 0x1F, 0x1F, 0x3C, 0x3C,
- 0x1F, 0x1F, 0x1F, 0x3C,
- 0x1F, 0x2F, 0x37, 0x3F,
- 0x1F, 0x27, 0x37, 0x3F,
- 0x1F, 0x27, 0x2F, 0x3F,
- 0x1F, 0x3F, 0x3F, 0x3F,
- 0x1F, 0x1F, 0x3F, 0x3F,
- 0x1F, 0x1F, 0x1F, 0x3F,
- 0x20, 0x21, 0x21, 0x22,
- 0x20, 0x21, 0x22, 0x23,
- 0x20, 0x22, 0x23, 0x24,
- 0x20, 0x21, 0x23, 0x24,
- 0x20, 0x21, 0x22, 0x24,
- 0x20, 0x22, 0x23, 0x25,
- 0x20, 0x22, 0x24, 0x25,
- 0x20, 0x21, 0x24, 0x25,
- 0x20, 0x21, 0x23, 0x25,
- 0x20, 0x22, 0x24, 0x26,
- 0x20, 0x23, 0x25, 0x26,
- 0x20, 0x21, 0x25, 0x26,
- 0x20, 0x21, 0x23, 0x26,
- 0x20, 0x26, 0x26, 0x26,
- 0x20, 0x20, 0x26, 0x26,
- 0x20, 0x20, 0x20, 0x26,
- 0x20, 0x23, 0x24, 0x27,
- 0x20, 0x23, 0x26, 0x27,
- 0x20, 0x21, 0x26, 0x27,
- 0x20, 0x21, 0x24, 0x27,
- 0x20, 0x23, 0x25, 0x28,
- 0x20, 0x24, 0x26, 0x28,
- 0x20, 0x22, 0x26, 0x28,
- 0x20, 0x22, 0x24, 0x28,
- 0x20, 0x28, 0x28, 0x28,
- 0x20, 0x20, 0x28, 0x28,
- 0x20, 0x20, 0x20, 0x28,
- 0x20, 0x24, 0x27, 0x2B,
- 0x20, 0x25, 0x29, 0x2B,
- 0x20, 0x22, 0x29, 0x2B,
- 0x20, 0x22, 0x26, 0x2B,
- 0x20, 0x2B, 0x2B, 0x2B,
- 0x20, 0x20, 0x2B, 0x2B,
- 0x20, 0x20, 0x20, 0x2B,
- 0x20, 0x25, 0x29, 0x2E,
- 0x20, 0x27, 0x2B, 0x2E,
- 0x20, 0x23, 0x2B, 0x2E,
- 0x20, 0x23, 0x27, 0x2E,
- 0x20, 0x2E, 0x2E, 0x2E,
- 0x20, 0x20, 0x2E, 0x2E,
- 0x20, 0x20, 0x20, 0x2E,
- 0x20, 0x26, 0x2B, 0x31,
- 0x20, 0x28, 0x2D, 0x31,
- 0x20, 0x24, 0x2D, 0x31,
- 0x20, 0x24, 0x29, 0x31,
- 0x20, 0x31, 0x31, 0x31,
- 0x20, 0x20, 0x31, 0x31,
- 0x20, 0x20, 0x20, 0x31,
- 0x20, 0x27, 0x2D, 0x34,
- 0x20, 0x2A, 0x2F, 0x34,
- 0x20, 0x25, 0x2F, 0x34,
- 0x20, 0x25, 0x2A, 0x34,
- 0x20, 0x34, 0x34, 0x34,
- 0x20, 0x20, 0x34, 0x34,
- 0x20, 0x20, 0x20, 0x34,
- 0x20, 0x2B, 0x32, 0x37,
- 0x20, 0x25, 0x32, 0x37,
- 0x20, 0x25, 0x2C, 0x37,
- 0x20, 0x37, 0x37, 0x37,
- 0x20, 0x20, 0x37, 0x37,
- 0x20, 0x20, 0x20, 0x37,
- 0x20, 0x2D, 0x34, 0x3A,
- 0x20, 0x26, 0x34, 0x3A,
- 0x20, 0x26, 0x2D, 0x3A,
- 0x20, 0x3A, 0x3A, 0x3A,
- 0x20, 0x20, 0x3A, 0x3A,
- 0x20, 0x20, 0x20, 0x3A,
- 0x20, 0x2E, 0x36, 0x3D,
- 0x20, 0x27, 0x36, 0x3D,
- 0x20, 0x27, 0x2F, 0x3D,
- 0x20, 0x3D, 0x3D, 0x3D,
- 0x20, 0x20, 0x3D, 0x3D,
- 0x20, 0x20, 0x20, 0x3D,
- 0x21, 0x22, 0x22, 0x23,
- 0x21, 0x22, 0x23, 0x24,
- 0x21, 0x23, 0x24, 0x25,
- 0x21, 0x22, 0x24, 0x25,
- 0x21, 0x22, 0x23, 0x25,
- 0x21, 0x23, 0x24, 0x26,
- 0x21, 0x23, 0x25, 0x26,
- 0x21, 0x22, 0x25, 0x26,
- 0x21, 0x22, 0x24, 0x26,
- 0x21, 0x23, 0x25, 0x27,
- 0x21, 0x24, 0x26, 0x27,
- 0x21, 0x22, 0x26, 0x27,
- 0x21, 0x22, 0x24, 0x27,
- 0x21, 0x27, 0x27, 0x27,
- 0x21, 0x21, 0x27, 0x27,
- 0x21, 0x21, 0x21, 0x27,
- 0x21, 0x24, 0x25, 0x28,
- 0x21, 0x24, 0x27, 0x28,
- 0x21, 0x22, 0x27, 0x28,
- 0x21, 0x22, 0x25, 0x28,
- 0x21, 0x24, 0x26, 0x29,
- 0x21, 0x25, 0x27, 0x29,
- 0x21, 0x23, 0x27, 0x29,
- 0x21, 0x23, 0x25, 0x29,
- 0x21, 0x29, 0x29, 0x29,
- 0x21, 0x21, 0x29, 0x29,
- 0x21, 0x21, 0x21, 0x29,
- 0x21, 0x25, 0x28, 0x2C,
- 0x21, 0x26, 0x2A, 0x2C,
- 0x21, 0x23, 0x2A, 0x2C,
- 0x21, 0x23, 0x27, 0x2C,
- 0x21, 0x2C, 0x2C, 0x2C,
- 0x21, 0x21, 0x2C, 0x2C,
- 0x21, 0x21, 0x21, 0x2C,
- 0x21, 0x26, 0x2A, 0x2F,
- 0x21, 0x28, 0x2C, 0x2F,
- 0x21, 0x24, 0x2C, 0x2F,
- 0x21, 0x24, 0x28, 0x2F,
- 0x21, 0x2F, 0x2F, 0x2F,
- 0x21, 0x21, 0x2F, 0x2F,
- 0x21, 0x21, 0x21, 0x2F,
- 0x21, 0x27, 0x2C, 0x32,
- 0x21, 0x29, 0x2E, 0x32,
- 0x21, 0x25, 0x2E, 0x32,
- 0x21, 0x25, 0x2A, 0x32,
- 0x21, 0x32, 0x32, 0x32,
- 0x21, 0x21, 0x32, 0x32,
- 0x21, 0x21, 0x21, 0x32,
- 0x21, 0x28, 0x2E, 0x35,
- 0x21, 0x2B, 0x30, 0x35,
- 0x21, 0x26, 0x30, 0x35,
- 0x21, 0x26, 0x2B, 0x35,
- 0x21, 0x35, 0x35, 0x35,
- 0x21, 0x21, 0x35, 0x35,
- 0x21, 0x21, 0x21, 0x35,
- 0x21, 0x2C, 0x33, 0x38,
- 0x21, 0x26, 0x33, 0x38,
- 0x21, 0x26, 0x2D, 0x38,
- 0x21, 0x38, 0x38, 0x38,
- 0x21, 0x21, 0x38, 0x38,
- 0x21, 0x21, 0x21, 0x38,
- 0x21, 0x2E, 0x35, 0x3B,
- 0x21, 0x27, 0x35, 0x3B,
- 0x21, 0x27, 0x2E, 0x3B,
- 0x21, 0x3B, 0x3B, 0x3B,
- 0x21, 0x21, 0x3B, 0x3B,
- 0x21, 0x21, 0x21, 0x3B,
- 0x21, 0x2F, 0x37, 0x3E,
- 0x21, 0x28, 0x37, 0x3E,
- 0x21, 0x28, 0x30, 0x3E,
- 0x21, 0x3E, 0x3E, 0x3E,
- 0x21, 0x21, 0x3E, 0x3E,
- 0x21, 0x21, 0x21, 0x3E,
- 0x22, 0x23, 0x23, 0x24,
- 0x22, 0x23, 0x24, 0x25,
- 0x22, 0x24, 0x25, 0x26,
- 0x22, 0x23, 0x25, 0x26,
- 0x22, 0x23, 0x24, 0x26,
- 0x22, 0x24, 0x25, 0x27,
- 0x22, 0x24, 0x26, 0x27,
- 0x22, 0x23, 0x26, 0x27,
- 0x22, 0x23, 0x25, 0x27,
- 0x22, 0x24, 0x26, 0x28,
- 0x22, 0x25, 0x27, 0x28,
- 0x22, 0x23, 0x27, 0x28,
- 0x22, 0x23, 0x25, 0x28,
- 0x22, 0x28, 0x28, 0x28,
- 0x22, 0x22, 0x28, 0x28,
- 0x22, 0x22, 0x22, 0x28,
- 0x22, 0x25, 0x26, 0x29,
- 0x22, 0x25, 0x28, 0x29,
- 0x22, 0x23, 0x28, 0x29,
- 0x22, 0x23, 0x26, 0x29,
- 0x22, 0x25, 0x27, 0x2A,
- 0x22, 0x26, 0x28, 0x2A,
- 0x22, 0x24, 0x28, 0x2A,
- 0x22, 0x24, 0x26, 0x2A,
- 0x22, 0x2A, 0x2A, 0x2A,
- 0x22, 0x22, 0x2A, 0x2A,
- 0x22, 0x22, 0x22, 0x2A,
- 0x22, 0x26, 0x29, 0x2D,
- 0x22, 0x27, 0x2B, 0x2D,
- 0x22, 0x24, 0x2B, 0x2D,
- 0x22, 0x24, 0x28, 0x2D,
- 0x22, 0x2D, 0x2D, 0x2D,
- 0x22, 0x22, 0x2D, 0x2D,
- 0x22, 0x22, 0x22, 0x2D,
- 0x22, 0x27, 0x2B, 0x30,
- 0x22, 0x29, 0x2D, 0x30,
- 0x22, 0x25, 0x2D, 0x30,
- 0x22, 0x25, 0x29, 0x30,
- 0x22, 0x30, 0x30, 0x30,
- 0x22, 0x22, 0x30, 0x30,
- 0x22, 0x22, 0x22, 0x30,
- 0x22, 0x28, 0x2D, 0x33,
- 0x22, 0x2A, 0x2F, 0x33,
- 0x22, 0x26, 0x2F, 0x33,
- 0x22, 0x26, 0x2B, 0x33,
- 0x22, 0x33, 0x33, 0x33,
- 0x22, 0x22, 0x33, 0x33,
- 0x22, 0x22, 0x22, 0x33,
- 0x22, 0x29, 0x2F, 0x36,
- 0x22, 0x2C, 0x31, 0x36,
- 0x22, 0x27, 0x31, 0x36,
- 0x22, 0x27, 0x2C, 0x36,
- 0x22, 0x36, 0x36, 0x36,
- 0x22, 0x22, 0x36, 0x36,
- 0x22, 0x22, 0x22, 0x36,
- 0x22, 0x2D, 0x34, 0x39,
- 0x22, 0x27, 0x34, 0x39,
- 0x22, 0x27, 0x2E, 0x39,
- 0x22, 0x39, 0x39, 0x39,
- 0x22, 0x22, 0x39, 0x39,
- 0x22, 0x22, 0x22, 0x39,
- 0x22, 0x2F, 0x36, 0x3C,
- 0x22, 0x28, 0x36, 0x3C,
- 0x22, 0x28, 0x2F, 0x3C,
- 0x22, 0x3C, 0x3C, 0x3C,
- 0x22, 0x22, 0x3C, 0x3C,
- 0x22, 0x22, 0x22, 0x3C,
- 0x22, 0x30, 0x38, 0x3F,
- 0x22, 0x29, 0x38, 0x3F,
- 0x22, 0x29, 0x31, 0x3F,
- 0x22, 0x3F, 0x3F, 0x3F,
- 0x22, 0x22, 0x3F, 0x3F,
- 0x22, 0x22, 0x22, 0x3F,
- 0x23, 0x24, 0x24, 0x25,
- 0x23, 0x24, 0x25, 0x26,
- 0x23, 0x25, 0x26, 0x27,
- 0x23, 0x24, 0x26, 0x27,
- 0x23, 0x24, 0x25, 0x27,
- 0x23, 0x25, 0x26, 0x28,
- 0x23, 0x25, 0x27, 0x28,
- 0x23, 0x24, 0x27, 0x28,
- 0x23, 0x24, 0x26, 0x28,
- 0x23, 0x25, 0x27, 0x29,
- 0x23, 0x26, 0x28, 0x29,
- 0x23, 0x24, 0x28, 0x29,
- 0x23, 0x24, 0x26, 0x29,
- 0x23, 0x29, 0x29, 0x29,
- 0x23, 0x23, 0x29, 0x29,
- 0x23, 0x23, 0x23, 0x29,
- 0x23, 0x26, 0x27, 0x2A,
- 0x23, 0x26, 0x29, 0x2A,
- 0x23, 0x24, 0x29, 0x2A,
- 0x23, 0x24, 0x27, 0x2A,
- 0x23, 0x26, 0x28, 0x2B,
- 0x23, 0x27, 0x29, 0x2B,
- 0x23, 0x25, 0x29, 0x2B,
- 0x23, 0x25, 0x27, 0x2B,
- 0x23, 0x2B, 0x2B, 0x2B,
- 0x23, 0x23, 0x2B, 0x2B,
- 0x23, 0x23, 0x23, 0x2B,
- 0x23, 0x27, 0x2A, 0x2E,
- 0x23, 0x28, 0x2C, 0x2E,
- 0x23, 0x25, 0x2C, 0x2E,
- 0x23, 0x25, 0x29, 0x2E,
- 0x23, 0x2E, 0x2E, 0x2E,
- 0x23, 0x23, 0x2E, 0x2E,
- 0x23, 0x23, 0x23, 0x2E,
- 0x23, 0x28, 0x2C, 0x31,
- 0x23, 0x2A, 0x2E, 0x31,
- 0x23, 0x26, 0x2E, 0x31,
- 0x23, 0x26, 0x2A, 0x31,
- 0x23, 0x31, 0x31, 0x31,
- 0x23, 0x23, 0x31, 0x31,
- 0x23, 0x23, 0x23, 0x31,
- 0x23, 0x29, 0x2E, 0x34,
- 0x23, 0x2B, 0x30, 0x34,
- 0x23, 0x27, 0x30, 0x34,
- 0x23, 0x27, 0x2C, 0x34,
- 0x23, 0x34, 0x34, 0x34,
- 0x23, 0x23, 0x34, 0x34,
- 0x23, 0x23, 0x23, 0x34,
- 0x23, 0x2A, 0x30, 0x37,
- 0x23, 0x2D, 0x32, 0x37,
- 0x23, 0x28, 0x32, 0x37,
- 0x23, 0x28, 0x2D, 0x37,
- 0x23, 0x37, 0x37, 0x37,
- 0x23, 0x23, 0x37, 0x37,
- 0x23, 0x23, 0x23, 0x37,
- 0x23, 0x2E, 0x35, 0x3A,
- 0x23, 0x28, 0x35, 0x3A,
- 0x23, 0x28, 0x2F, 0x3A,
- 0x23, 0x3A, 0x3A, 0x3A,
- 0x23, 0x23, 0x3A, 0x3A,
- 0x23, 0x23, 0x23, 0x3A,
- 0x23, 0x30, 0x37, 0x3D,
- 0x23, 0x29, 0x37, 0x3D,
- 0x23, 0x29, 0x30, 0x3D,
- 0x23, 0x3D, 0x3D, 0x3D,
- 0x23, 0x23, 0x3D, 0x3D,
- 0x23, 0x23, 0x23, 0x3D,
- 0x24, 0x25, 0x25, 0x26,
- 0x24, 0x25, 0x26, 0x27,
- 0x24, 0x26, 0x27, 0x28,
- 0x24, 0x25, 0x27, 0x28,
- 0x24, 0x25, 0x26, 0x28,
- 0x24, 0x26, 0x27, 0x29,
- 0x24, 0x26, 0x28, 0x29,
- 0x24, 0x25, 0x28, 0x29,
- 0x24, 0x25, 0x27, 0x29,
- 0x24, 0x26, 0x28, 0x2A,
- 0x24, 0x27, 0x29, 0x2A,
- 0x24, 0x25, 0x29, 0x2A,
- 0x24, 0x25, 0x27, 0x2A,
- 0x24, 0x2A, 0x2A, 0x2A,
- 0x24, 0x24, 0x2A, 0x2A,
- 0x24, 0x24, 0x24, 0x2A,
- 0x24, 0x27, 0x28, 0x2B,
- 0x24, 0x27, 0x2A, 0x2B,
- 0x24, 0x25, 0x2A, 0x2B,
- 0x24, 0x25, 0x28, 0x2B,
- 0x24, 0x27, 0x29, 0x2C,
- 0x24, 0x28, 0x2A, 0x2C,
- 0x24, 0x26, 0x2A, 0x2C,
- 0x24, 0x26, 0x28, 0x2C,
- 0x24, 0x2C, 0x2C, 0x2C,
- 0x24, 0x24, 0x2C, 0x2C,
- 0x24, 0x24, 0x24, 0x2C,
- 0x24, 0x28, 0x2B, 0x2F,
- 0x24, 0x29, 0x2D, 0x2F,
- 0x24, 0x26, 0x2D, 0x2F,
- 0x24, 0x26, 0x2A, 0x2F,
- 0x24, 0x2F, 0x2F, 0x2F,
- 0x24, 0x24, 0x2F, 0x2F,
- 0x24, 0x24, 0x24, 0x2F,
- 0x24, 0x29, 0x2D, 0x32,
- 0x24, 0x2B, 0x2F, 0x32,
- 0x24, 0x27, 0x2F, 0x32,
- 0x24, 0x27, 0x2B, 0x32,
- 0x24, 0x32, 0x32, 0x32,
- 0x24, 0x24, 0x32, 0x32,
- 0x24, 0x24, 0x24, 0x32,
- 0x24, 0x2A, 0x2F, 0x35,
- 0x24, 0x2C, 0x31, 0x35,
- 0x24, 0x28, 0x31, 0x35,
- 0x24, 0x28, 0x2D, 0x35,
- 0x24, 0x35, 0x35, 0x35,
- 0x24, 0x24, 0x35, 0x35,
- 0x24, 0x24, 0x24, 0x35,
- 0x24, 0x2B, 0x31, 0x38,
- 0x24, 0x2E, 0x33, 0x38,
- 0x24, 0x29, 0x33, 0x38,
- 0x24, 0x29, 0x2E, 0x38,
- 0x24, 0x38, 0x38, 0x38,
- 0x24, 0x24, 0x38, 0x38,
- 0x24, 0x24, 0x24, 0x38,
- 0x24, 0x2F, 0x36, 0x3B,
- 0x24, 0x29, 0x36, 0x3B,
- 0x24, 0x29, 0x30, 0x3B,
- 0x24, 0x3B, 0x3B, 0x3B,
- 0x24, 0x24, 0x3B, 0x3B,
- 0x24, 0x24, 0x24, 0x3B,
- 0x24, 0x31, 0x38, 0x3E,
- 0x24, 0x2A, 0x38, 0x3E,
- 0x24, 0x2A, 0x31, 0x3E,
- 0x24, 0x3E, 0x3E, 0x3E,
- 0x24, 0x24, 0x3E, 0x3E,
- 0x24, 0x24, 0x24, 0x3E,
- 0x25, 0x26, 0x26, 0x27,
- 0x25, 0x26, 0x27, 0x28,
- 0x25, 0x27, 0x28, 0x29,
- 0x25, 0x26, 0x28, 0x29,
- 0x25, 0x26, 0x27, 0x29,
- 0x25, 0x27, 0x28, 0x2A,
- 0x25, 0x27, 0x29, 0x2A,
- 0x25, 0x26, 0x29, 0x2A,
- 0x25, 0x26, 0x28, 0x2A,
- 0x25, 0x27, 0x29, 0x2B,
- 0x25, 0x28, 0x2A, 0x2B,
- 0x25, 0x26, 0x2A, 0x2B,
- 0x25, 0x26, 0x28, 0x2B,
- 0x25, 0x2B, 0x2B, 0x2B,
- 0x25, 0x25, 0x2B, 0x2B,
- 0x25, 0x25, 0x25, 0x2B,
- 0x25, 0x28, 0x29, 0x2C,
- 0x25, 0x28, 0x2B, 0x2C,
- 0x25, 0x26, 0x2B, 0x2C,
- 0x25, 0x26, 0x29, 0x2C,
- 0x25, 0x28, 0x2A, 0x2D,
- 0x25, 0x29, 0x2B, 0x2D,
- 0x25, 0x27, 0x2B, 0x2D,
- 0x25, 0x27, 0x29, 0x2D,
- 0x25, 0x2D, 0x2D, 0x2D,
- 0x25, 0x25, 0x2D, 0x2D,
- 0x25, 0x25, 0x25, 0x2D,
- 0x25, 0x29, 0x2C, 0x30,
- 0x25, 0x2A, 0x2E, 0x30,
- 0x25, 0x27, 0x2E, 0x30,
- 0x25, 0x27, 0x2B, 0x30,
- 0x25, 0x30, 0x30, 0x30,
- 0x25, 0x25, 0x30, 0x30,
- 0x25, 0x25, 0x25, 0x30,
- 0x25, 0x2A, 0x2E, 0x33,
- 0x25, 0x2C, 0x30, 0x33,
- 0x25, 0x28, 0x30, 0x33,
- 0x25, 0x28, 0x2C, 0x33,
- 0x25, 0x33, 0x33, 0x33,
- 0x25, 0x25, 0x33, 0x33,
- 0x25, 0x25, 0x25, 0x33,
- 0x25, 0x2B, 0x30, 0x36,
- 0x25, 0x2D, 0x32, 0x36,
- 0x25, 0x29, 0x32, 0x36,
- 0x25, 0x29, 0x2E, 0x36,
- 0x25, 0x36, 0x36, 0x36,
- 0x25, 0x25, 0x36, 0x36,
- 0x25, 0x25, 0x25, 0x36,
- 0x25, 0x2C, 0x32, 0x39,
- 0x25, 0x2F, 0x34, 0x39,
- 0x25, 0x2A, 0x34, 0x39,
- 0x25, 0x2A, 0x2F, 0x39,
- 0x25, 0x39, 0x39, 0x39,
- 0x25, 0x25, 0x39, 0x39,
- 0x25, 0x25, 0x25, 0x39,
- 0x25, 0x30, 0x37, 0x3C,
- 0x25, 0x2A, 0x37, 0x3C,
- 0x25, 0x2A, 0x31, 0x3C,
- 0x25, 0x3C, 0x3C, 0x3C,
- 0x25, 0x25, 0x3C, 0x3C,
- 0x25, 0x25, 0x25, 0x3C,
- 0x25, 0x32, 0x39, 0x3F,
- 0x25, 0x2B, 0x39, 0x3F,
- 0x25, 0x2B, 0x32, 0x3F,
- 0x25, 0x3F, 0x3F, 0x3F,
- 0x25, 0x25, 0x3F, 0x3F,
- 0x25, 0x25, 0x25, 0x3F,
- 0x26, 0x27, 0x27, 0x28,
- 0x26, 0x27, 0x28, 0x29,
- 0x26, 0x28, 0x29, 0x2A,
- 0x26, 0x27, 0x29, 0x2A,
- 0x26, 0x27, 0x28, 0x2A,
- 0x26, 0x28, 0x29, 0x2B,
- 0x26, 0x28, 0x2A, 0x2B,
- 0x26, 0x27, 0x2A, 0x2B,
- 0x26, 0x27, 0x29, 0x2B,
- 0x26, 0x28, 0x2A, 0x2C,
- 0x26, 0x29, 0x2B, 0x2C,
- 0x26, 0x27, 0x2B, 0x2C,
- 0x26, 0x27, 0x29, 0x2C,
- 0x26, 0x2C, 0x2C, 0x2C,
- 0x26, 0x26, 0x2C, 0x2C,
- 0x26, 0x26, 0x26, 0x2C,
- 0x26, 0x29, 0x2A, 0x2D,
- 0x26, 0x29, 0x2C, 0x2D,
- 0x26, 0x27, 0x2C, 0x2D,
- 0x26, 0x27, 0x2A, 0x2D,
- 0x26, 0x29, 0x2B, 0x2E,
- 0x26, 0x2A, 0x2C, 0x2E,
- 0x26, 0x28, 0x2C, 0x2E,
- 0x26, 0x28, 0x2A, 0x2E,
- 0x26, 0x2E, 0x2E, 0x2E,
- 0x26, 0x26, 0x2E, 0x2E,
- 0x26, 0x26, 0x26, 0x2E,
- 0x26, 0x2A, 0x2D, 0x31,
- 0x26, 0x2B, 0x2F, 0x31,
- 0x26, 0x28, 0x2F, 0x31,
- 0x26, 0x28, 0x2C, 0x31,
- 0x26, 0x31, 0x31, 0x31,
- 0x26, 0x26, 0x31, 0x31,
- 0x26, 0x26, 0x26, 0x31,
- 0x26, 0x2B, 0x2F, 0x34,
- 0x26, 0x2D, 0x31, 0x34,
- 0x26, 0x29, 0x31, 0x34,
- 0x26, 0x29, 0x2D, 0x34,
- 0x26, 0x34, 0x34, 0x34,
- 0x26, 0x26, 0x34, 0x34,
- 0x26, 0x26, 0x26, 0x34,
- 0x26, 0x2C, 0x31, 0x37,
- 0x26, 0x2E, 0x33, 0x37,
- 0x26, 0x2A, 0x33, 0x37,
- 0x26, 0x2A, 0x2F, 0x37,
- 0x26, 0x37, 0x37, 0x37,
- 0x26, 0x26, 0x37, 0x37,
- 0x26, 0x26, 0x26, 0x37,
- 0x26, 0x2D, 0x33, 0x3A,
- 0x26, 0x30, 0x35, 0x3A,
- 0x26, 0x2B, 0x35, 0x3A,
- 0x26, 0x2B, 0x30, 0x3A,
- 0x26, 0x3A, 0x3A, 0x3A,
- 0x26, 0x26, 0x3A, 0x3A,
- 0x26, 0x26, 0x26, 0x3A,
- 0x26, 0x31, 0x38, 0x3D,
- 0x26, 0x2B, 0x38, 0x3D,
- 0x26, 0x2B, 0x32, 0x3D,
- 0x26, 0x3D, 0x3D, 0x3D,
- 0x26, 0x26, 0x3D, 0x3D,
- 0x26, 0x26, 0x26, 0x3D,
- 0x27, 0x28, 0x28, 0x29,
- 0x27, 0x28, 0x29, 0x2A,
- 0x27, 0x29, 0x2A, 0x2B,
- 0x27, 0x28, 0x2A, 0x2B,
- 0x27, 0x28, 0x29, 0x2B,
- 0x27, 0x29, 0x2A, 0x2C,
- 0x27, 0x29, 0x2B, 0x2C,
- 0x27, 0x28, 0x2B, 0x2C,
- 0x27, 0x28, 0x2A, 0x2C,
- 0x27, 0x29, 0x2B, 0x2D,
- 0x27, 0x2A, 0x2C, 0x2D,
- 0x27, 0x28, 0x2C, 0x2D,
- 0x27, 0x28, 0x2A, 0x2D,
- 0x27, 0x2D, 0x2D, 0x2D,
- 0x27, 0x27, 0x2D, 0x2D,
- 0x27, 0x27, 0x27, 0x2D,
- 0x27, 0x2A, 0x2B, 0x2E,
- 0x27, 0x2A, 0x2D, 0x2E,
- 0x27, 0x28, 0x2D, 0x2E,
- 0x27, 0x28, 0x2B, 0x2E,
- 0x27, 0x2A, 0x2C, 0x2F,
- 0x27, 0x2B, 0x2D, 0x2F,
- 0x27, 0x29, 0x2D, 0x2F,
- 0x27, 0x29, 0x2B, 0x2F,
- 0x27, 0x2F, 0x2F, 0x2F,
- 0x27, 0x27, 0x2F, 0x2F,
- 0x27, 0x27, 0x27, 0x2F,
- 0x27, 0x2B, 0x2E, 0x32,
- 0x27, 0x2C, 0x30, 0x32,
- 0x27, 0x29, 0x30, 0x32,
- 0x27, 0x29, 0x2D, 0x32,
- 0x27, 0x32, 0x32, 0x32,
- 0x27, 0x27, 0x32, 0x32,
- 0x27, 0x27, 0x27, 0x32,
- 0x27, 0x2C, 0x30, 0x35,
- 0x27, 0x2E, 0x32, 0x35,
- 0x27, 0x2A, 0x32, 0x35,
- 0x27, 0x2A, 0x2E, 0x35,
- 0x27, 0x35, 0x35, 0x35,
- 0x27, 0x27, 0x35, 0x35,
- 0x27, 0x27, 0x27, 0x35,
- 0x27, 0x2D, 0x32, 0x38,
- 0x27, 0x2F, 0x34, 0x38,
- 0x27, 0x2B, 0x34, 0x38,
- 0x27, 0x2B, 0x30, 0x38,
- 0x27, 0x38, 0x38, 0x38,
- 0x27, 0x27, 0x38, 0x38,
- 0x27, 0x27, 0x27, 0x38,
- 0x27, 0x2E, 0x34, 0x3B,
- 0x27, 0x31, 0x36, 0x3B,
- 0x27, 0x2C, 0x36, 0x3B,
- 0x27, 0x2C, 0x31, 0x3B,
- 0x27, 0x3B, 0x3B, 0x3B,
- 0x27, 0x27, 0x3B, 0x3B,
- 0x27, 0x27, 0x27, 0x3B,
- 0x27, 0x32, 0x39, 0x3E,
- 0x27, 0x2C, 0x39, 0x3E,
- 0x27, 0x2C, 0x33, 0x3E,
- 0x27, 0x3E, 0x3E, 0x3E,
- 0x27, 0x27, 0x3E, 0x3E,
- 0x27, 0x27, 0x27, 0x3E,
- 0x28, 0x29, 0x29, 0x2A,
- 0x28, 0x29, 0x2A, 0x2B,
- 0x28, 0x2A, 0x2B, 0x2C,
- 0x28, 0x29, 0x2B, 0x2C,
- 0x28, 0x29, 0x2A, 0x2C,
- 0x28, 0x2A, 0x2B, 0x2D,
- 0x28, 0x2A, 0x2C, 0x2D,
- 0x28, 0x29, 0x2C, 0x2D,
- 0x28, 0x29, 0x2B, 0x2D,
- 0x28, 0x2A, 0x2C, 0x2E,
- 0x28, 0x2B, 0x2D, 0x2E,
- 0x28, 0x29, 0x2D, 0x2E,
- 0x28, 0x29, 0x2B, 0x2E,
- 0x28, 0x2E, 0x2E, 0x2E,
- 0x28, 0x28, 0x2E, 0x2E,
- 0x28, 0x28, 0x28, 0x2E,
- 0x28, 0x2B, 0x2C, 0x2F,
- 0x28, 0x2B, 0x2E, 0x2F,
- 0x28, 0x29, 0x2E, 0x2F,
- 0x28, 0x29, 0x2C, 0x2F,
- 0x28, 0x2B, 0x2D, 0x30,
- 0x28, 0x2C, 0x2E, 0x30,
- 0x28, 0x2A, 0x2E, 0x30,
- 0x28, 0x2A, 0x2C, 0x30,
- 0x28, 0x30, 0x30, 0x30,
- 0x28, 0x28, 0x30, 0x30,
- 0x28, 0x28, 0x28, 0x30,
- 0x28, 0x2C, 0x2F, 0x33,
- 0x28, 0x2D, 0x31, 0x33,
- 0x28, 0x2A, 0x31, 0x33,
- 0x28, 0x2A, 0x2E, 0x33,
- 0x28, 0x33, 0x33, 0x33,
- 0x28, 0x28, 0x33, 0x33,
- 0x28, 0x28, 0x28, 0x33,
- 0x28, 0x2D, 0x31, 0x36,
- 0x28, 0x2F, 0x33, 0x36,
- 0x28, 0x2B, 0x33, 0x36,
- 0x28, 0x2B, 0x2F, 0x36,
- 0x28, 0x36, 0x36, 0x36,
- 0x28, 0x28, 0x36, 0x36,
- 0x28, 0x28, 0x28, 0x36,
- 0x28, 0x2E, 0x33, 0x39,
- 0x28, 0x30, 0x35, 0x39,
- 0x28, 0x2C, 0x35, 0x39,
- 0x28, 0x2C, 0x31, 0x39,
- 0x28, 0x39, 0x39, 0x39,
- 0x28, 0x28, 0x39, 0x39,
- 0x28, 0x28, 0x28, 0x39,
- 0x28, 0x2F, 0x35, 0x3C,
- 0x28, 0x32, 0x37, 0x3C,
- 0x28, 0x2D, 0x37, 0x3C,
- 0x28, 0x2D, 0x32, 0x3C,
- 0x28, 0x3C, 0x3C, 0x3C,
- 0x28, 0x28, 0x3C, 0x3C,
- 0x28, 0x28, 0x28, 0x3C,
- 0x28, 0x33, 0x3A, 0x3F,
- 0x28, 0x2D, 0x3A, 0x3F,
- 0x28, 0x2D, 0x34, 0x3F,
- 0x28, 0x3F, 0x3F, 0x3F,
- 0x28, 0x28, 0x3F, 0x3F,
- 0x28, 0x28, 0x28, 0x3F,
- 0x29, 0x2A, 0x2A, 0x2B,
- 0x29, 0x2A, 0x2B, 0x2C,
- 0x29, 0x2B, 0x2C, 0x2D,
- 0x29, 0x2A, 0x2C, 0x2D,
- 0x29, 0x2A, 0x2B, 0x2D,
- 0x29, 0x2B, 0x2C, 0x2E,
- 0x29, 0x2B, 0x2D, 0x2E,
- 0x29, 0x2A, 0x2D, 0x2E,
- 0x29, 0x2A, 0x2C, 0x2E,
- 0x29, 0x2B, 0x2D, 0x2F,
- 0x29, 0x2C, 0x2E, 0x2F,
- 0x29, 0x2A, 0x2E, 0x2F,
- 0x29, 0x2A, 0x2C, 0x2F,
- 0x29, 0x2F, 0x2F, 0x2F,
- 0x29, 0x29, 0x2F, 0x2F,
- 0x29, 0x29, 0x29, 0x2F,
- 0x29, 0x2C, 0x2D, 0x30,
- 0x29, 0x2C, 0x2F, 0x30,
- 0x29, 0x2A, 0x2F, 0x30,
- 0x29, 0x2A, 0x2D, 0x30,
- 0x29, 0x2C, 0x2E, 0x31,
- 0x29, 0x2D, 0x2F, 0x31,
- 0x29, 0x2B, 0x2F, 0x31,
- 0x29, 0x2B, 0x2D, 0x31,
- 0x29, 0x31, 0x31, 0x31,
- 0x29, 0x29, 0x31, 0x31,
- 0x29, 0x29, 0x29, 0x31,
- 0x29, 0x2D, 0x30, 0x34,
- 0x29, 0x2E, 0x32, 0x34,
- 0x29, 0x2B, 0x32, 0x34,
- 0x29, 0x2B, 0x2F, 0x34,
- 0x29, 0x34, 0x34, 0x34,
- 0x29, 0x29, 0x34, 0x34,
- 0x29, 0x29, 0x29, 0x34,
- 0x29, 0x2E, 0x32, 0x37,
- 0x29, 0x30, 0x34, 0x37,
- 0x29, 0x2C, 0x34, 0x37,
- 0x29, 0x2C, 0x30, 0x37,
- 0x29, 0x37, 0x37, 0x37,
- 0x29, 0x29, 0x37, 0x37,
- 0x29, 0x29, 0x29, 0x37,
- 0x29, 0x2F, 0x34, 0x3A,
- 0x29, 0x31, 0x36, 0x3A,
- 0x29, 0x2D, 0x36, 0x3A,
- 0x29, 0x2D, 0x32, 0x3A,
- 0x29, 0x3A, 0x3A, 0x3A,
- 0x29, 0x29, 0x3A, 0x3A,
- 0x29, 0x29, 0x29, 0x3A,
- 0x29, 0x30, 0x36, 0x3D,
- 0x29, 0x33, 0x38, 0x3D,
- 0x29, 0x2E, 0x38, 0x3D,
- 0x29, 0x2E, 0x33, 0x3D,
- 0x29, 0x3D, 0x3D, 0x3D,
- 0x29, 0x29, 0x3D, 0x3D,
- 0x29, 0x29, 0x29, 0x3D,
- 0x2A, 0x2B, 0x2B, 0x2C,
- 0x2A, 0x2B, 0x2C, 0x2D,
- 0x2A, 0x2C, 0x2D, 0x2E,
- 0x2A, 0x2B, 0x2D, 0x2E,
- 0x2A, 0x2B, 0x2C, 0x2E,
- 0x2A, 0x2C, 0x2D, 0x2F,
- 0x2A, 0x2C, 0x2E, 0x2F,
- 0x2A, 0x2B, 0x2E, 0x2F,
- 0x2A, 0x2B, 0x2D, 0x2F,
- 0x2A, 0x2C, 0x2E, 0x30,
- 0x2A, 0x2D, 0x2F, 0x30,
- 0x2A, 0x2B, 0x2F, 0x30,
- 0x2A, 0x2B, 0x2D, 0x30,
- 0x2A, 0x30, 0x30, 0x30,
- 0x2A, 0x2A, 0x30, 0x30,
- 0x2A, 0x2A, 0x2A, 0x30,
- 0x2A, 0x2D, 0x2E, 0x31,
- 0x2A, 0x2D, 0x30, 0x31,
- 0x2A, 0x2B, 0x30, 0x31,
- 0x2A, 0x2B, 0x2E, 0x31,
- 0x2A, 0x2D, 0x2F, 0x32,
- 0x2A, 0x2E, 0x30, 0x32,
- 0x2A, 0x2C, 0x30, 0x32,
- 0x2A, 0x2C, 0x2E, 0x32,
- 0x2A, 0x32, 0x32, 0x32,
- 0x2A, 0x2A, 0x32, 0x32,
- 0x2A, 0x2A, 0x2A, 0x32,
- 0x2A, 0x2E, 0x31, 0x35,
- 0x2A, 0x2F, 0x33, 0x35,
- 0x2A, 0x2C, 0x33, 0x35,
- 0x2A, 0x2C, 0x30, 0x35,
- 0x2A, 0x35, 0x35, 0x35,
- 0x2A, 0x2A, 0x35, 0x35,
- 0x2A, 0x2A, 0x2A, 0x35,
- 0x2A, 0x2F, 0x33, 0x38,
- 0x2A, 0x31, 0x35, 0x38,
- 0x2A, 0x2D, 0x35, 0x38,
- 0x2A, 0x2D, 0x31, 0x38,
- 0x2A, 0x38, 0x38, 0x38,
- 0x2A, 0x2A, 0x38, 0x38,
- 0x2A, 0x2A, 0x2A, 0x38,
- 0x2A, 0x30, 0x35, 0x3B,
- 0x2A, 0x32, 0x37, 0x3B,
- 0x2A, 0x2E, 0x37, 0x3B,
- 0x2A, 0x2E, 0x33, 0x3B,
- 0x2A, 0x3B, 0x3B, 0x3B,
- 0x2A, 0x2A, 0x3B, 0x3B,
- 0x2A, 0x2A, 0x2A, 0x3B,
- 0x2A, 0x31, 0x37, 0x3E,
- 0x2A, 0x34, 0x39, 0x3E,
- 0x2A, 0x2F, 0x39, 0x3E,
- 0x2A, 0x2F, 0x34, 0x3E,
- 0x2A, 0x3E, 0x3E, 0x3E,
- 0x2A, 0x2A, 0x3E, 0x3E,
- 0x2A, 0x2A, 0x2A, 0x3E,
- 0x2B, 0x2C, 0x2C, 0x2D,
- 0x2B, 0x2C, 0x2D, 0x2E,
- 0x2B, 0x2D, 0x2E, 0x2F,
- 0x2B, 0x2C, 0x2E, 0x2F,
- 0x2B, 0x2C, 0x2D, 0x2F,
- 0x2B, 0x2D, 0x2E, 0x30,
- 0x2B, 0x2D, 0x2F, 0x30,
- 0x2B, 0x2C, 0x2F, 0x30,
- 0x2B, 0x2C, 0x2E, 0x30,
- 0x2B, 0x2D, 0x2F, 0x31,
- 0x2B, 0x2E, 0x30, 0x31,
- 0x2B, 0x2C, 0x30, 0x31,
- 0x2B, 0x2C, 0x2E, 0x31,
- 0x2B, 0x31, 0x31, 0x31,
- 0x2B, 0x2B, 0x31, 0x31,
- 0x2B, 0x2B, 0x2B, 0x31,
- 0x2B, 0x2E, 0x2F, 0x32,
- 0x2B, 0x2E, 0x31, 0x32,
- 0x2B, 0x2C, 0x31, 0x32,
- 0x2B, 0x2C, 0x2F, 0x32,
- 0x2B, 0x2E, 0x30, 0x33,
- 0x2B, 0x2F, 0x31, 0x33,
- 0x2B, 0x2D, 0x31, 0x33,
- 0x2B, 0x2D, 0x2F, 0x33,
- 0x2B, 0x33, 0x33, 0x33,
- 0x2B, 0x2B, 0x33, 0x33,
- 0x2B, 0x2B, 0x2B, 0x33,
- 0x2B, 0x2F, 0x32, 0x36,
- 0x2B, 0x30, 0x34, 0x36,
- 0x2B, 0x2D, 0x34, 0x36,
- 0x2B, 0x2D, 0x31, 0x36,
- 0x2B, 0x36, 0x36, 0x36,
- 0x2B, 0x2B, 0x36, 0x36,
- 0x2B, 0x2B, 0x2B, 0x36,
- 0x2B, 0x30, 0x34, 0x39,
- 0x2B, 0x32, 0x36, 0x39,
- 0x2B, 0x2E, 0x36, 0x39,
- 0x2B, 0x2E, 0x32, 0x39,
- 0x2B, 0x39, 0x39, 0x39,
- 0x2B, 0x2B, 0x39, 0x39,
- 0x2B, 0x2B, 0x2B, 0x39,
- 0x2B, 0x31, 0x36, 0x3C,
- 0x2B, 0x33, 0x38, 0x3C,
- 0x2B, 0x2F, 0x38, 0x3C,
- 0x2B, 0x2F, 0x34, 0x3C,
- 0x2B, 0x3C, 0x3C, 0x3C,
- 0x2B, 0x2B, 0x3C, 0x3C,
- 0x2B, 0x2B, 0x2B, 0x3C,
- 0x2B, 0x32, 0x38, 0x3F,
- 0x2B, 0x35, 0x3A, 0x3F,
- 0x2B, 0x30, 0x3A, 0x3F,
- 0x2B, 0x30, 0x35, 0x3F,
- 0x2B, 0x3F, 0x3F, 0x3F,
- 0x2B, 0x2B, 0x3F, 0x3F,
- 0x2B, 0x2B, 0x2B, 0x3F,
- 0x2C, 0x2D, 0x2D, 0x2E,
- 0x2C, 0x2D, 0x2E, 0x2F,
- 0x2C, 0x2E, 0x2F, 0x30,
- 0x2C, 0x2D, 0x2F, 0x30,
- 0x2C, 0x2D, 0x2E, 0x30,
- 0x2C, 0x2E, 0x2F, 0x31,
- 0x2C, 0x2E, 0x30, 0x31,
- 0x2C, 0x2D, 0x30, 0x31,
- 0x2C, 0x2D, 0x2F, 0x31,
- 0x2C, 0x2E, 0x30, 0x32,
- 0x2C, 0x2F, 0x31, 0x32,
- 0x2C, 0x2D, 0x31, 0x32,
- 0x2C, 0x2D, 0x2F, 0x32,
- 0x2C, 0x32, 0x32, 0x32,
- 0x2C, 0x2C, 0x32, 0x32,
- 0x2C, 0x2C, 0x2C, 0x32,
- 0x2C, 0x2F, 0x30, 0x33,
- 0x2C, 0x2F, 0x32, 0x33,
- 0x2C, 0x2D, 0x32, 0x33,
- 0x2C, 0x2D, 0x30, 0x33,
- 0x2C, 0x2F, 0x31, 0x34,
- 0x2C, 0x30, 0x32, 0x34,
- 0x2C, 0x2E, 0x32, 0x34,
- 0x2C, 0x2E, 0x30, 0x34,
- 0x2C, 0x34, 0x34, 0x34,
- 0x2C, 0x2C, 0x34, 0x34,
- 0x2C, 0x2C, 0x2C, 0x34,
- 0x2C, 0x30, 0x33, 0x37,
- 0x2C, 0x31, 0x35, 0x37,
- 0x2C, 0x2E, 0x35, 0x37,
- 0x2C, 0x2E, 0x32, 0x37,
- 0x2C, 0x37, 0x37, 0x37,
- 0x2C, 0x2C, 0x37, 0x37,
- 0x2C, 0x2C, 0x2C, 0x37,
- 0x2C, 0x31, 0x35, 0x3A,
- 0x2C, 0x33, 0x37, 0x3A,
- 0x2C, 0x2F, 0x37, 0x3A,
- 0x2C, 0x2F, 0x33, 0x3A,
- 0x2C, 0x3A, 0x3A, 0x3A,
- 0x2C, 0x2C, 0x3A, 0x3A,
- 0x2C, 0x2C, 0x2C, 0x3A,
- 0x2C, 0x32, 0x37, 0x3D,
- 0x2C, 0x34, 0x39, 0x3D,
- 0x2C, 0x30, 0x39, 0x3D,
- 0x2C, 0x30, 0x35, 0x3D,
- 0x2C, 0x3D, 0x3D, 0x3D,
- 0x2C, 0x2C, 0x3D, 0x3D,
- 0x2C, 0x2C, 0x2C, 0x3D,
- 0x2D, 0x2E, 0x2E, 0x2F,
- 0x2D, 0x2E, 0x2F, 0x30,
- 0x2D, 0x2F, 0x30, 0x31,
- 0x2D, 0x2E, 0x30, 0x31,
- 0x2D, 0x2E, 0x2F, 0x31,
- 0x2D, 0x2F, 0x30, 0x32,
- 0x2D, 0x2F, 0x31, 0x32,
- 0x2D, 0x2E, 0x31, 0x32,
- 0x2D, 0x2E, 0x30, 0x32,
- 0x2D, 0x2F, 0x31, 0x33,
- 0x2D, 0x30, 0x32, 0x33,
- 0x2D, 0x2E, 0x32, 0x33,
- 0x2D, 0x2E, 0x30, 0x33,
- 0x2D, 0x33, 0x33, 0x33,
- 0x2D, 0x2D, 0x33, 0x33,
- 0x2D, 0x2D, 0x2D, 0x33,
- 0x2D, 0x30, 0x31, 0x34,
- 0x2D, 0x30, 0x33, 0x34,
- 0x2D, 0x2E, 0x33, 0x34,
- 0x2D, 0x2E, 0x31, 0x34,
- 0x2D, 0x30, 0x32, 0x35,
- 0x2D, 0x31, 0x33, 0x35,
- 0x2D, 0x2F, 0x33, 0x35,
- 0x2D, 0x2F, 0x31, 0x35,
- 0x2D, 0x35, 0x35, 0x35,
- 0x2D, 0x2D, 0x35, 0x35,
- 0x2D, 0x2D, 0x2D, 0x35,
- 0x2D, 0x31, 0x34, 0x38,
- 0x2D, 0x32, 0x36, 0x38,
- 0x2D, 0x2F, 0x36, 0x38,
- 0x2D, 0x2F, 0x33, 0x38,
- 0x2D, 0x38, 0x38, 0x38,
- 0x2D, 0x2D, 0x38, 0x38,
- 0x2D, 0x2D, 0x2D, 0x38,
- 0x2D, 0x32, 0x36, 0x3B,
- 0x2D, 0x34, 0x38, 0x3B,
- 0x2D, 0x30, 0x38, 0x3B,
- 0x2D, 0x30, 0x34, 0x3B,
- 0x2D, 0x3B, 0x3B, 0x3B,
- 0x2D, 0x2D, 0x3B, 0x3B,
- 0x2D, 0x2D, 0x2D, 0x3B,
- 0x2D, 0x33, 0x38, 0x3E,
- 0x2D, 0x35, 0x3A, 0x3E,
- 0x2D, 0x31, 0x3A, 0x3E,
- 0x2D, 0x31, 0x36, 0x3E,
- 0x2D, 0x3E, 0x3E, 0x3E,
- 0x2D, 0x2D, 0x3E, 0x3E,
- 0x2D, 0x2D, 0x2D, 0x3E,
- 0x2E, 0x2F, 0x2F, 0x30,
- 0x2E, 0x2F, 0x30, 0x31,
- 0x2E, 0x30, 0x31, 0x32,
- 0x2E, 0x2F, 0x31, 0x32,
- 0x2E, 0x2F, 0x30, 0x32,
- 0x2E, 0x30, 0x31, 0x33,
- 0x2E, 0x30, 0x32, 0x33,
- 0x2E, 0x2F, 0x32, 0x33,
- 0x2E, 0x2F, 0x31, 0x33,
- 0x2E, 0x30, 0x32, 0x34,
- 0x2E, 0x31, 0x33, 0x34,
- 0x2E, 0x2F, 0x33, 0x34,
- 0x2E, 0x2F, 0x31, 0x34,
- 0x2E, 0x34, 0x34, 0x34,
- 0x2E, 0x2E, 0x34, 0x34,
- 0x2E, 0x2E, 0x2E, 0x34,
- 0x2E, 0x31, 0x32, 0x35,
- 0x2E, 0x31, 0x34, 0x35,
- 0x2E, 0x2F, 0x34, 0x35,
- 0x2E, 0x2F, 0x32, 0x35,
- 0x2E, 0x31, 0x33, 0x36,
- 0x2E, 0x32, 0x34, 0x36,
- 0x2E, 0x30, 0x34, 0x36,
- 0x2E, 0x30, 0x32, 0x36,
- 0x2E, 0x36, 0x36, 0x36,
- 0x2E, 0x2E, 0x36, 0x36,
- 0x2E, 0x2E, 0x2E, 0x36,
- 0x2E, 0x32, 0x35, 0x39,
- 0x2E, 0x33, 0x37, 0x39,
- 0x2E, 0x30, 0x37, 0x39,
- 0x2E, 0x30, 0x34, 0x39,
- 0x2E, 0x39, 0x39, 0x39,
- 0x2E, 0x2E, 0x39, 0x39,
- 0x2E, 0x2E, 0x2E, 0x39,
- 0x2E, 0x33, 0x37, 0x3C,
- 0x2E, 0x35, 0x39, 0x3C,
- 0x2E, 0x31, 0x39, 0x3C,
- 0x2E, 0x31, 0x35, 0x3C,
- 0x2E, 0x3C, 0x3C, 0x3C,
- 0x2E, 0x2E, 0x3C, 0x3C,
- 0x2E, 0x2E, 0x2E, 0x3C,
- 0x2E, 0x34, 0x39, 0x3F,
- 0x2E, 0x36, 0x3B, 0x3F,
- 0x2E, 0x32, 0x3B, 0x3F,
- 0x2E, 0x32, 0x37, 0x3F,
- 0x2E, 0x3F, 0x3F, 0x3F,
- 0x2E, 0x2E, 0x3F, 0x3F,
- 0x2E, 0x2E, 0x2E, 0x3F,
- 0x2F, 0x30, 0x30, 0x31,
- 0x2F, 0x30, 0x31, 0x32,
- 0x2F, 0x31, 0x32, 0x33,
- 0x2F, 0x30, 0x32, 0x33,
- 0x2F, 0x30, 0x31, 0x33,
- 0x2F, 0x31, 0x32, 0x34,
- 0x2F, 0x31, 0x33, 0x34,
- 0x2F, 0x30, 0x33, 0x34,
- 0x2F, 0x30, 0x32, 0x34,
- 0x2F, 0x31, 0x33, 0x35,
- 0x2F, 0x32, 0x34, 0x35,
- 0x2F, 0x30, 0x34, 0x35,
- 0x2F, 0x30, 0x32, 0x35,
- 0x2F, 0x35, 0x35, 0x35,
- 0x2F, 0x2F, 0x35, 0x35,
- 0x2F, 0x2F, 0x2F, 0x35,
- 0x2F, 0x32, 0x33, 0x36,
- 0x2F, 0x32, 0x35, 0x36,
- 0x2F, 0x30, 0x35, 0x36,
- 0x2F, 0x30, 0x33, 0x36,
- 0x2F, 0x32, 0x34, 0x37,
- 0x2F, 0x33, 0x35, 0x37,
- 0x2F, 0x31, 0x35, 0x37,
- 0x2F, 0x31, 0x33, 0x37,
- 0x2F, 0x37, 0x37, 0x37,
- 0x2F, 0x2F, 0x37, 0x37,
- 0x2F, 0x2F, 0x2F, 0x37,
- 0x2F, 0x33, 0x36, 0x3A,
- 0x2F, 0x34, 0x38, 0x3A,
- 0x2F, 0x31, 0x38, 0x3A,
- 0x2F, 0x31, 0x35, 0x3A,
- 0x2F, 0x3A, 0x3A, 0x3A,
- 0x2F, 0x2F, 0x3A, 0x3A,
- 0x2F, 0x2F, 0x2F, 0x3A,
- 0x2F, 0x34, 0x38, 0x3D,
- 0x2F, 0x36, 0x3A, 0x3D,
- 0x2F, 0x32, 0x3A, 0x3D,
- 0x2F, 0x32, 0x36, 0x3D,
- 0x2F, 0x3D, 0x3D, 0x3D,
- 0x2F, 0x2F, 0x3D, 0x3D,
- 0x2F, 0x2F, 0x2F, 0x3D,
- 0x30, 0x31, 0x31, 0x32,
- 0x30, 0x31, 0x32, 0x33,
- 0x30, 0x32, 0x33, 0x34,
- 0x30, 0x31, 0x33, 0x34,
- 0x30, 0x31, 0x32, 0x34,
- 0x30, 0x32, 0x33, 0x35,
- 0x30, 0x32, 0x34, 0x35,
- 0x30, 0x31, 0x34, 0x35,
- 0x30, 0x31, 0x33, 0x35,
- 0x30, 0x32, 0x34, 0x36,
- 0x30, 0x33, 0x35, 0x36,
- 0x30, 0x31, 0x35, 0x36,
- 0x30, 0x31, 0x33, 0x36,
- 0x30, 0x36, 0x36, 0x36,
- 0x30, 0x30, 0x36, 0x36,
- 0x30, 0x30, 0x30, 0x36,
- 0x30, 0x33, 0x34, 0x37,
- 0x30, 0x33, 0x36, 0x37,
- 0x30, 0x31, 0x36, 0x37,
- 0x30, 0x31, 0x34, 0x37,
- 0x30, 0x33, 0x35, 0x38,
- 0x30, 0x34, 0x36, 0x38,
- 0x30, 0x32, 0x36, 0x38,
- 0x30, 0x32, 0x34, 0x38,
- 0x30, 0x38, 0x38, 0x38,
- 0x30, 0x30, 0x38, 0x38,
- 0x30, 0x30, 0x30, 0x38,
- 0x30, 0x34, 0x37, 0x3B,
- 0x30, 0x35, 0x39, 0x3B,
- 0x30, 0x32, 0x39, 0x3B,
- 0x30, 0x32, 0x36, 0x3B,
- 0x30, 0x3B, 0x3B, 0x3B,
- 0x30, 0x30, 0x3B, 0x3B,
- 0x30, 0x30, 0x30, 0x3B,
- 0x30, 0x35, 0x39, 0x3E,
- 0x30, 0x37, 0x3B, 0x3E,
- 0x30, 0x33, 0x3B, 0x3E,
- 0x30, 0x33, 0x37, 0x3E,
- 0x30, 0x3E, 0x3E, 0x3E,
- 0x30, 0x30, 0x3E, 0x3E,
- 0x30, 0x30, 0x30, 0x3E,
- 0x31, 0x32, 0x32, 0x33,
- 0x31, 0x32, 0x33, 0x34,
- 0x31, 0x33, 0x34, 0x35,
- 0x31, 0x32, 0x34, 0x35,
- 0x31, 0x32, 0x33, 0x35,
- 0x31, 0x33, 0x34, 0x36,
- 0x31, 0x33, 0x35, 0x36,
- 0x31, 0x32, 0x35, 0x36,
- 0x31, 0x32, 0x34, 0x36,
- 0x31, 0x33, 0x35, 0x37,
- 0x31, 0x34, 0x36, 0x37,
- 0x31, 0x32, 0x36, 0x37,
- 0x31, 0x32, 0x34, 0x37,
- 0x31, 0x37, 0x37, 0x37,
- 0x31, 0x31, 0x37, 0x37,
- 0x31, 0x31, 0x31, 0x37,
- 0x31, 0x34, 0x35, 0x38,
- 0x31, 0x34, 0x37, 0x38,
- 0x31, 0x32, 0x37, 0x38,
- 0x31, 0x32, 0x35, 0x38,
- 0x31, 0x34, 0x36, 0x39,
- 0x31, 0x35, 0x37, 0x39,
- 0x31, 0x33, 0x37, 0x39,
- 0x31, 0x33, 0x35, 0x39,
- 0x31, 0x39, 0x39, 0x39,
- 0x31, 0x31, 0x39, 0x39,
- 0x31, 0x31, 0x31, 0x39,
- 0x31, 0x35, 0x38, 0x3C,
- 0x31, 0x36, 0x3A, 0x3C,
- 0x31, 0x33, 0x3A, 0x3C,
- 0x31, 0x33, 0x37, 0x3C,
- 0x31, 0x3C, 0x3C, 0x3C,
- 0x31, 0x31, 0x3C, 0x3C,
- 0x31, 0x31, 0x31, 0x3C,
- 0x31, 0x36, 0x3A, 0x3F,
- 0x31, 0x38, 0x3C, 0x3F,
- 0x31, 0x34, 0x3C, 0x3F,
- 0x31, 0x34, 0x38, 0x3F,
- 0x31, 0x3F, 0x3F, 0x3F,
- 0x31, 0x31, 0x3F, 0x3F,
- 0x31, 0x31, 0x31, 0x3F,
- 0x32, 0x33, 0x33, 0x34,
- 0x32, 0x33, 0x34, 0x35,
- 0x32, 0x34, 0x35, 0x36,
- 0x32, 0x33, 0x35, 0x36,
- 0x32, 0x33, 0x34, 0x36,
- 0x32, 0x34, 0x35, 0x37,
- 0x32, 0x34, 0x36, 0x37,
- 0x32, 0x33, 0x36, 0x37,
- 0x32, 0x33, 0x35, 0x37,
- 0x32, 0x34, 0x36, 0x38,
- 0x32, 0x35, 0x37, 0x38,
- 0x32, 0x33, 0x37, 0x38,
- 0x32, 0x33, 0x35, 0x38,
- 0x32, 0x38, 0x38, 0x38,
- 0x32, 0x32, 0x38, 0x38,
- 0x32, 0x32, 0x32, 0x38,
- 0x32, 0x35, 0x36, 0x39,
- 0x32, 0x35, 0x38, 0x39,
- 0x32, 0x33, 0x38, 0x39,
- 0x32, 0x33, 0x36, 0x39,
- 0x32, 0x35, 0x37, 0x3A,
- 0x32, 0x36, 0x38, 0x3A,
- 0x32, 0x34, 0x38, 0x3A,
- 0x32, 0x34, 0x36, 0x3A,
- 0x32, 0x3A, 0x3A, 0x3A,
- 0x32, 0x32, 0x3A, 0x3A,
- 0x32, 0x32, 0x32, 0x3A,
- 0x32, 0x36, 0x39, 0x3D,
- 0x32, 0x37, 0x3B, 0x3D,
- 0x32, 0x34, 0x3B, 0x3D,
- 0x32, 0x34, 0x38, 0x3D,
- 0x32, 0x3D, 0x3D, 0x3D,
- 0x32, 0x32, 0x3D, 0x3D,
- 0x32, 0x32, 0x32, 0x3D,
- 0x33, 0x34, 0x34, 0x35,
- 0x33, 0x34, 0x35, 0x36,
- 0x33, 0x35, 0x36, 0x37,
- 0x33, 0x34, 0x36, 0x37,
- 0x33, 0x34, 0x35, 0x37,
- 0x33, 0x35, 0x36, 0x38,
- 0x33, 0x35, 0x37, 0x38,
- 0x33, 0x34, 0x37, 0x38,
- 0x33, 0x34, 0x36, 0x38,
- 0x33, 0x35, 0x37, 0x39,
- 0x33, 0x36, 0x38, 0x39,
- 0x33, 0x34, 0x38, 0x39,
- 0x33, 0x34, 0x36, 0x39,
- 0x33, 0x39, 0x39, 0x39,
- 0x33, 0x33, 0x39, 0x39,
- 0x33, 0x33, 0x33, 0x39,
- 0x33, 0x36, 0x37, 0x3A,
- 0x33, 0x36, 0x39, 0x3A,
- 0x33, 0x34, 0x39, 0x3A,
- 0x33, 0x34, 0x37, 0x3A,
- 0x33, 0x36, 0x38, 0x3B,
- 0x33, 0x37, 0x39, 0x3B,
- 0x33, 0x35, 0x39, 0x3B,
- 0x33, 0x35, 0x37, 0x3B,
- 0x33, 0x3B, 0x3B, 0x3B,
- 0x33, 0x33, 0x3B, 0x3B,
- 0x33, 0x33, 0x33, 0x3B,
- 0x33, 0x37, 0x3A, 0x3E,
- 0x33, 0x38, 0x3C, 0x3E,
- 0x33, 0x35, 0x3C, 0x3E,
- 0x33, 0x35, 0x39, 0x3E,
- 0x33, 0x3E, 0x3E, 0x3E,
- 0x33, 0x33, 0x3E, 0x3E,
- 0x33, 0x33, 0x33, 0x3E,
- 0x34, 0x35, 0x35, 0x36,
- 0x34, 0x35, 0x36, 0x37,
- 0x34, 0x36, 0x37, 0x38,
- 0x34, 0x35, 0x37, 0x38,
- 0x34, 0x35, 0x36, 0x38,
- 0x34, 0x36, 0x37, 0x39,
- 0x34, 0x36, 0x38, 0x39,
- 0x34, 0x35, 0x38, 0x39,
- 0x34, 0x35, 0x37, 0x39,
- 0x34, 0x36, 0x38, 0x3A,
- 0x34, 0x37, 0x39, 0x3A,
- 0x34, 0x35, 0x39, 0x3A,
- 0x34, 0x35, 0x37, 0x3A,
- 0x34, 0x3A, 0x3A, 0x3A,
- 0x34, 0x34, 0x3A, 0x3A,
- 0x34, 0x34, 0x34, 0x3A,
- 0x34, 0x37, 0x38, 0x3B,
- 0x34, 0x37, 0x3A, 0x3B,
- 0x34, 0x35, 0x3A, 0x3B,
- 0x34, 0x35, 0x38, 0x3B,
- 0x34, 0x37, 0x39, 0x3C,
- 0x34, 0x38, 0x3A, 0x3C,
- 0x34, 0x36, 0x3A, 0x3C,
- 0x34, 0x36, 0x38, 0x3C,
- 0x34, 0x3C, 0x3C, 0x3C,
- 0x34, 0x34, 0x3C, 0x3C,
- 0x34, 0x34, 0x34, 0x3C,
- 0x34, 0x38, 0x3B, 0x3F,
- 0x34, 0x39, 0x3D, 0x3F,
- 0x34, 0x36, 0x3D, 0x3F,
- 0x34, 0x36, 0x3A, 0x3F,
- 0x34, 0x3F, 0x3F, 0x3F,
- 0x34, 0x34, 0x3F, 0x3F,
- 0x34, 0x34, 0x34, 0x3F,
- 0x35, 0x36, 0x36, 0x37,
- 0x35, 0x36, 0x37, 0x38,
- 0x35, 0x37, 0x38, 0x39,
- 0x35, 0x36, 0x38, 0x39,
- 0x35, 0x36, 0x37, 0x39,
- 0x35, 0x37, 0x38, 0x3A,
- 0x35, 0x37, 0x39, 0x3A,
- 0x35, 0x36, 0x39, 0x3A,
- 0x35, 0x36, 0x38, 0x3A,
- 0x35, 0x37, 0x39, 0x3B,
- 0x35, 0x38, 0x3A, 0x3B,
- 0x35, 0x36, 0x3A, 0x3B,
- 0x35, 0x36, 0x38, 0x3B,
- 0x35, 0x3B, 0x3B, 0x3B,
- 0x35, 0x35, 0x3B, 0x3B,
- 0x35, 0x35, 0x35, 0x3B,
- 0x35, 0x38, 0x39, 0x3C,
- 0x35, 0x38, 0x3B, 0x3C,
- 0x35, 0x36, 0x3B, 0x3C,
- 0x35, 0x36, 0x39, 0x3C,
- 0x35, 0x38, 0x3A, 0x3D,
- 0x35, 0x39, 0x3B, 0x3D,
- 0x35, 0x37, 0x3B, 0x3D,
- 0x35, 0x37, 0x39, 0x3D,
- 0x35, 0x3D, 0x3D, 0x3D,
- 0x35, 0x35, 0x3D, 0x3D,
- 0x35, 0x35, 0x35, 0x3D,
- 0x36, 0x37, 0x37, 0x38,
- 0x36, 0x37, 0x38, 0x39,
- 0x36, 0x38, 0x39, 0x3A,
- 0x36, 0x37, 0x39, 0x3A,
- 0x36, 0x37, 0x38, 0x3A,
- 0x36, 0x38, 0x39, 0x3B,
- 0x36, 0x38, 0x3A, 0x3B,
- 0x36, 0x37, 0x3A, 0x3B,
- 0x36, 0x37, 0x39, 0x3B,
- 0x36, 0x38, 0x3A, 0x3C,
- 0x36, 0x39, 0x3B, 0x3C,
- 0x36, 0x37, 0x3B, 0x3C,
- 0x36, 0x37, 0x39, 0x3C,
- 0x36, 0x3C, 0x3C, 0x3C,
- 0x36, 0x36, 0x3C, 0x3C,
- 0x36, 0x36, 0x36, 0x3C,
- 0x36, 0x39, 0x3A, 0x3D,
- 0x36, 0x39, 0x3C, 0x3D,
- 0x36, 0x37, 0x3C, 0x3D,
- 0x36, 0x37, 0x3A, 0x3D,
- 0x36, 0x39, 0x3B, 0x3E,
- 0x36, 0x3A, 0x3C, 0x3E,
- 0x36, 0x38, 0x3C, 0x3E,
- 0x36, 0x38, 0x3A, 0x3E,
- 0x36, 0x3E, 0x3E, 0x3E,
- 0x36, 0x36, 0x3E, 0x3E,
- 0x36, 0x36, 0x36, 0x3E,
- 0x37, 0x38, 0x38, 0x39,
- 0x37, 0x38, 0x39, 0x3A,
- 0x37, 0x39, 0x3A, 0x3B,
- 0x37, 0x38, 0x3A, 0x3B,
- 0x37, 0x38, 0x39, 0x3B,
- 0x37, 0x39, 0x3A, 0x3C,
- 0x37, 0x39, 0x3B, 0x3C,
- 0x37, 0x38, 0x3B, 0x3C,
- 0x37, 0x38, 0x3A, 0x3C,
- 0x37, 0x39, 0x3B, 0x3D,
- 0x37, 0x3A, 0x3C, 0x3D,
- 0x37, 0x38, 0x3C, 0x3D,
- 0x37, 0x38, 0x3A, 0x3D,
- 0x37, 0x3D, 0x3D, 0x3D,
- 0x37, 0x37, 0x3D, 0x3D,
- 0x37, 0x37, 0x37, 0x3D,
- 0x37, 0x3A, 0x3B, 0x3E,
- 0x37, 0x3A, 0x3D, 0x3E,
- 0x37, 0x38, 0x3D, 0x3E,
- 0x37, 0x38, 0x3B, 0x3E,
- 0x37, 0x3A, 0x3C, 0x3F,
- 0x37, 0x3B, 0x3D, 0x3F,
- 0x37, 0x39, 0x3D, 0x3F,
- 0x37, 0x39, 0x3B, 0x3F,
- 0x37, 0x3F, 0x3F, 0x3F,
- 0x37, 0x37, 0x3F, 0x3F,
- 0x37, 0x37, 0x37, 0x3F,
- 0x38, 0x39, 0x39, 0x3A,
- 0x38, 0x39, 0x3A, 0x3B,
- 0x38, 0x3A, 0x3B, 0x3C,
- 0x38, 0x39, 0x3B, 0x3C,
- 0x38, 0x39, 0x3A, 0x3C,
- 0x38, 0x3A, 0x3B, 0x3D,
- 0x38, 0x3A, 0x3C, 0x3D,
- 0x38, 0x39, 0x3C, 0x3D,
- 0x38, 0x39, 0x3B, 0x3D,
- 0x38, 0x3A, 0x3C, 0x3E,
- 0x38, 0x3B, 0x3D, 0x3E,
- 0x38, 0x39, 0x3D, 0x3E,
- 0x38, 0x39, 0x3B, 0x3E,
- 0x38, 0x3E, 0x3E, 0x3E,
- 0x38, 0x38, 0x3E, 0x3E,
- 0x38, 0x38, 0x38, 0x3E,
- 0x38, 0x3B, 0x3C, 0x3F,
- 0x38, 0x3B, 0x3E, 0x3F,
- 0x38, 0x39, 0x3E, 0x3F,
- 0x38, 0x39, 0x3C, 0x3F,
- 0x39, 0x3A, 0x3A, 0x3B,
- 0x39, 0x3A, 0x3B, 0x3C,
- 0x39, 0x3B, 0x3C, 0x3D,
- 0x39, 0x3A, 0x3C, 0x3D,
- 0x39, 0x3A, 0x3B, 0x3D,
- 0x39, 0x3B, 0x3C, 0x3E,
- 0x39, 0x3B, 0x3D, 0x3E,
- 0x39, 0x3A, 0x3D, 0x3E,
- 0x39, 0x3A, 0x3C, 0x3E,
- 0x39, 0x3B, 0x3D, 0x3F,
- 0x39, 0x3C, 0x3E, 0x3F,
- 0x39, 0x3A, 0x3E, 0x3F,
- 0x39, 0x3A, 0x3C, 0x3F,
- 0x39, 0x3F, 0x3F, 0x3F,
- 0x39, 0x39, 0x3F, 0x3F,
- 0x39, 0x39, 0x39, 0x3F,
- 0x3A, 0x3B, 0x3B, 0x3C,
- 0x3A, 0x3B, 0x3C, 0x3D,
- 0x3A, 0x3C, 0x3D, 0x3E,
- 0x3A, 0x3B, 0x3D, 0x3E,
- 0x3A, 0x3B, 0x3C, 0x3E,
- 0x3A, 0x3C, 0x3D, 0x3F,
- 0x3A, 0x3C, 0x3E, 0x3F,
- 0x3A, 0x3B, 0x3E, 0x3F,
- 0x3A, 0x3B, 0x3D, 0x3F,
- 0x3B, 0x3C, 0x3C, 0x3D,
- 0x3B, 0x3C, 0x3D, 0x3E,
- 0x3B, 0x3D, 0x3E, 0x3F,
- 0x3B, 0x3C, 0x3E, 0x3F,
- 0x3B, 0x3C, 0x3D, 0x3F,
- 0x3C, 0x3D, 0x3D, 0x3E,
- 0x3C, 0x3D, 0x3E, 0x3F,
- 0x3D, 0x3E, 0x3E, 0x3F
-};
-
-#endif /* AVCODEC_ULTI_CB_H */
+++ /dev/null
-/*
- * copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_UNARY_H
-#define AVCODEC_UNARY_H
-
-#include "get_bits.h"
-
-/**
- * Get unary code of limited length
- * @param gb GetBitContext
- * @param[in] stop The bitstop value (unary code of 1's or 0's)
- * @param[in] len Maximum length
- * @return Unary length/index
- */
-static inline int get_unary(GetBitContext *gb, int stop, int len)
-{
- int i;
-
- for(i = 0; i < len && get_bits1(gb) != stop; i++);
- return i;
-}
-
-/**
- * Get unary code terminated by a 0 with a maximum length of 33
- * @param gb GetBitContext
- * @return Unary length/index
- */
-static inline int get_unary_0_33(GetBitContext *gb)
-{
- return get_unary(gb, 0, 33);
-}
-
-static inline int get_unary_0_9(GetBitContext *gb)
-{
- return get_unary(gb, 0, 9);
-}
-
-#endif /* AVCODEC_UNARY_H */
+++ /dev/null
-/*
- * Video Acceleration API (shared data between FFmpeg and the video player)
- * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1
- *
- * Copyright (C) 2008-2009 Splitted-Desktop Systems
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VAAPI_H
-#define AVCODEC_VAAPI_H
-
-#include <stdint.h>
-
-/**
- * \defgroup VAAPI_Decoding VA API Decoding
- * \ingroup Decoder
- * @{
- */
-
-/**
- * This structure is used to share data between the FFmpeg library and
- * the client video application.
- * This shall be zero-allocated and available as
- * AVCodecContext.hwaccel_context. All user members can be set once
- * during initialization or through each AVCodecContext.get_buffer()
- * function call. In any case, they must be valid prior to calling
- * decoding functions.
- */
-struct vaapi_context {
- /**
- * Window system dependent data
- *
- * - encoding: unused
- * - decoding: Set by user
- */
- void *display;
-
- /**
- * Configuration ID
- *
- * - encoding: unused
- * - decoding: Set by user
- */
- uint32_t config_id;
-
- /**
- * Context ID (video decode pipeline)
- *
- * - encoding: unused
- * - decoding: Set by user
- */
- uint32_t context_id;
-
- /**
- * VAPictureParameterBuffer ID
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint32_t pic_param_buf_id;
-
- /**
- * VAIQMatrixBuffer ID
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint32_t iq_matrix_buf_id;
-
- /**
- * VABitPlaneBuffer ID (for VC-1 decoding)
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint32_t bitplane_buf_id;
-
- /**
- * Slice parameter/data buffer IDs
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint32_t *slice_buf_ids;
-
- /**
- * Number of effective slice buffer IDs to send to the HW
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int n_slice_buf_ids;
-
- /**
- * Size of pre-allocated slice_buf_ids
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int slice_buf_ids_alloc;
-
- /**
- * Pointer to VASliceParameterBuffers
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- void *slice_params;
-
- /**
- * Size of a VASliceParameterBuffer element
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int slice_param_size;
-
- /**
- * Size of pre-allocated slice_params
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int slice_params_alloc;
-
- /**
- * Number of slices currently filled in
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int slice_count;
-
- /**
- * Pointer to slice data buffer base
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- const uint8_t *slice_data;
-
- /**
- * Current size of slice data
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint32_t slice_data_size;
-};
-
-/* @} */
-
-#endif /* AVCODEC_VAAPI_H */
+++ /dev/null
-/*
- * Video Acceleration API (video decoding)
- * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1
- *
- * Copyright (C) 2008-2009 Splitted-Desktop Systems
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VAAPI_INTERNAL_H
-#define AVCODEC_VAAPI_INTERNAL_H
-
-#include <va/va.h>
-#include "vaapi.h"
-#include "avcodec.h"
-#include "mpegvideo.h"
-
-/**
- * \addtogroup VAAPI_Decoding
- *
- * @{
- */
-
-/** Extract VASurfaceID from a Picture */
-static inline VASurfaceID ff_vaapi_get_surface_id(Picture *pic)
-{
- return (uintptr_t)pic->data[3];
-}
-
-/** Common AVHWAccel.end_frame() implementation */
-int ff_vaapi_common_end_frame(MpegEncContext *s);
-
-/** Allocate a new picture parameter buffer */
-void *ff_vaapi_alloc_pic_param(struct vaapi_context *vactx, unsigned int size);
-
-/** Allocate a new IQ matrix buffer */
-void *ff_vaapi_alloc_iq_matrix(struct vaapi_context *vactx, unsigned int size);
-
-/** Allocate a new bit-plane buffer */
-uint8_t *ff_vaapi_alloc_bitplane(struct vaapi_context *vactx, uint32_t size);
-
-/**
- * Allocate a new slice descriptor for the input slice.
- *
- * @param vactx the VA API context
- * @param buffer the slice data buffer base
- * @param size the size of the slice in bytes
- * @return the newly allocated slice parameter
- */
-VASliceParameterBufferBase *ff_vaapi_alloc_slice(struct vaapi_context *vactx, const uint8_t *buffer, uint32_t size);
-
-/* @} */
-
-#endif /* AVCODEC_VAAPI_INTERNAL_H */
+++ /dev/null
-/*
- * VC-1 and WMV3 decoder
- * Copyright (c) 2006-2007 Konstantin Shishkov
- * Partly based on vc9.c (c) 2005 Anonymous, Alex Beregszaszi, Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VC1_H
-#define AVCODEC_VC1_H
-
-#include "avcodec.h"
-#include "mpegvideo.h"
-#include "intrax8.h"
-
-/** Markers used in VC-1 AP frame data */
-//@{
-enum VC1Code{
- VC1_CODE_RES0 = 0x00000100,
- VC1_CODE_ENDOFSEQ = 0x0000010A,
- VC1_CODE_SLICE,
- VC1_CODE_FIELD,
- VC1_CODE_FRAME,
- VC1_CODE_ENTRYPOINT,
- VC1_CODE_SEQHDR,
-};
-//@}
-
-#define IS_MARKER(x) (((x) & ~0xFF) == VC1_CODE_RES0)
-
-/** Available Profiles */
-//@{
-enum Profile {
- PROFILE_SIMPLE,
- PROFILE_MAIN,
- PROFILE_COMPLEX, ///< TODO: WMV9 specific
- PROFILE_ADVANCED
-};
-//@}
-
-/** Sequence quantizer mode */
-//@{
-enum QuantMode {
- QUANT_FRAME_IMPLICIT, ///< Implicitly specified at frame level
- QUANT_FRAME_EXPLICIT, ///< Explicitly specified at frame level
- QUANT_NON_UNIFORM, ///< Non-uniform quant used for all frames
- QUANT_UNIFORM ///< Uniform quant used for all frames
-};
-//@}
-
-/** Where quant can be changed */
-//@{
-enum DQProfile {
- DQPROFILE_FOUR_EDGES,
- DQPROFILE_DOUBLE_EDGES,
- DQPROFILE_SINGLE_EDGE,
- DQPROFILE_ALL_MBS
-};
-//@}
-
-/** @name Where quant can be changed
- */
-//@{
-enum DQSingleEdge {
- DQSINGLE_BEDGE_LEFT,
- DQSINGLE_BEDGE_TOP,
- DQSINGLE_BEDGE_RIGHT,
- DQSINGLE_BEDGE_BOTTOM
-};
-//@}
-
-/** Which pair of edges is quantized with ALTPQUANT */
-//@{
-enum DQDoubleEdge {
- DQDOUBLE_BEDGE_TOPLEFT,
- DQDOUBLE_BEDGE_TOPRIGHT,
- DQDOUBLE_BEDGE_BOTTOMRIGHT,
- DQDOUBLE_BEDGE_BOTTOMLEFT
-};
-//@}
-
-/** MV modes for P frames */
-//@{
-enum MVModes {
- MV_PMODE_1MV_HPEL_BILIN,
- MV_PMODE_1MV,
- MV_PMODE_1MV_HPEL,
- MV_PMODE_MIXED_MV,
- MV_PMODE_INTENSITY_COMP
-};
-//@}
-
-/** @name MV types for B frames */
-//@{
-enum BMVTypes {
- BMV_TYPE_BACKWARD,
- BMV_TYPE_FORWARD,
- BMV_TYPE_INTERPOLATED
-};
-//@}
-
-/** @name Block types for P/B frames */
-//@{
-enum TransformTypes {
- TT_8X8,
- TT_8X4_BOTTOM,
- TT_8X4_TOP,
- TT_8X4, //Both halves
- TT_4X8_RIGHT,
- TT_4X8_LEFT,
- TT_4X8, //Both halves
- TT_4X4
-};
-//@}
-
-enum CodingSet {
- CS_HIGH_MOT_INTRA = 0,
- CS_HIGH_MOT_INTER,
- CS_LOW_MOT_INTRA,
- CS_LOW_MOT_INTER,
- CS_MID_RATE_INTRA,
- CS_MID_RATE_INTER,
- CS_HIGH_RATE_INTRA,
- CS_HIGH_RATE_INTER
-};
-
-/** @name Overlap conditions for Advanced Profile */
-//@{
-enum COTypes {
- CONDOVER_NONE = 0,
- CONDOVER_ALL,
- CONDOVER_SELECT
-};
-//@}
-
-
-/** The VC1 Context
- * @todo Change size wherever another size is more efficient
- * Many members are only used for Advanced Profile
- */
-typedef struct VC1Context{
- MpegEncContext s;
- IntraX8Context x8;
-
- int bits;
-
- /** Simple/Main Profile sequence header */
- //@{
- int res_sm; ///< reserved, 2b
- int res_x8; ///< reserved
- int multires; ///< frame-level RESPIC syntax element present
- int res_fasttx; ///< reserved, always 1
- int res_transtab; ///< reserved, always 0
- int rangered; ///< RANGEREDFRM (range reduction) syntax element present
- ///< at frame level
- int res_rtm_flag; ///< reserved, set to 1
- int reserved; ///< reserved
- //@}
-
- /** Advanced Profile */
- //@{
- int level; ///< 3bits, for Advanced/Simple Profile, provided by TS layer
- int chromaformat; ///< 2bits, 2=4:2:0, only defined
- int postprocflag; ///< Per-frame processing suggestion flag present
- int broadcast; ///< TFF/RFF present
- int interlace; ///< Progressive/interlaced (RPTFTM syntax element)
- int tfcntrflag; ///< TFCNTR present
- int panscanflag; ///< NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present
- int refdist_flag; ///< REFDIST syntax element present in II, IP, PI or PP field picture headers
- int extended_dmv; ///< Additional extended dmv range at P/B frame-level
- int color_prim; ///< 8bits, chroma coordinates of the color primaries
- int transfer_char; ///< 8bits, Opto-electronic transfer characteristics
- int matrix_coef; ///< 8bits, Color primaries->YCbCr transform matrix
- int hrd_param_flag; ///< Presence of Hypothetical Reference
- ///< Decoder parameters
- int psf; ///< Progressive Segmented Frame
- //@}
-
- /** Sequence header data for all Profiles
- * TODO: choose between ints, uint8_ts and monobit flags
- */
- //@{
- int profile; ///< 2bits, Profile
- int frmrtq_postproc; ///< 3bits,
- int bitrtq_postproc; ///< 5bits, quantized framerate-based postprocessing strength
- int fastuvmc; ///< Rounding of qpel vector to hpel ? (not in Simple)
- int extended_mv; ///< Ext MV in P/B (not in Simple)
- int dquant; ///< How qscale varies with MBs, 2bits (not in Simple)
- int vstransform; ///< variable-size [48]x[48] transform type + info
- int overlap; ///< overlapped transforms in use
- int quantizer_mode; ///< 2bits, quantizer mode used for sequence, see QUANT_*
- int finterpflag; ///< INTERPFRM present
- //@}
-
- /** Frame decoding info for all profiles */
- //@{
- uint8_t mv_mode; ///< MV coding monde
- uint8_t mv_mode2; ///< Secondary MV coding mode (B frames)
- int k_x; ///< Number of bits for MVs (depends on MV range)
- int k_y; ///< Number of bits for MVs (depends on MV range)
- int range_x, range_y; ///< MV range
- uint8_t pq, altpq; ///< Current/alternate frame quantizer scale
- const uint8_t* zz_8x4;///< Zigzag scan table for TT_8x4 coding mode
- const uint8_t* zz_4x8;///< Zigzag scan table for TT_4x8 coding mode
- /** pquant parameters */
- //@{
- uint8_t dquantfrm;
- uint8_t dqprofile;
- uint8_t dqsbedge;
- uint8_t dqbilevel;
- //@}
- /** AC coding set indexes
- * @see 8.1.1.10, p(1)10
- */
- //@{
- int c_ac_table_index; ///< Chroma index from ACFRM element
- int y_ac_table_index; ///< Luma index from AC2FRM element
- //@}
- int ttfrm; ///< Transform type info present at frame level
- uint8_t ttmbf; ///< Transform type flag
- uint8_t ttblk4x4; ///< Value of ttblk which indicates a 4x4 transform
- int codingset; ///< index of current table set from 11.8 to use for luma block decoding
- int codingset2; ///< index of current table set from 11.8 to use for chroma block decoding
- int pqindex; ///< raw pqindex used in coding set selection
- int a_avail, c_avail;
- uint8_t *mb_type_base, *mb_type[3];
-
-
- /** Luma compensation parameters */
- //@{
- uint8_t lumscale;
- uint8_t lumshift;
- //@}
- int16_t bfraction; ///< Relative position % anchors=> how to scale MVs
- uint8_t halfpq; ///< Uniform quant over image and qp+.5
- uint8_t respic; ///< Frame-level flag for resized images
- int buffer_fullness; ///< HRD info
- /** Ranges:
- * -# 0 -> [-64n 63.f] x [-32, 31.f]
- * -# 1 -> [-128, 127.f] x [-64, 63.f]
- * -# 2 -> [-512, 511.f] x [-128, 127.f]
- * -# 3 -> [-1024, 1023.f] x [-256, 255.f]
- */
- uint8_t mvrange;
- uint8_t pquantizer; ///< Uniform (over sequence) quantizer in use
- VLC *cbpcy_vlc; ///< CBPCY VLC table
- int tt_index; ///< Index for Transform Type tables
- uint8_t* mv_type_mb_plane; ///< bitplane for mv_type == (4MV)
- uint8_t* direct_mb_plane; ///< bitplane for "direct" MBs
- int mv_type_is_raw; ///< mv type mb plane is not coded
- int dmb_is_raw; ///< direct mb plane is raw
- int skip_is_raw; ///< skip mb plane is not coded
- uint8_t luty[256], lutuv[256]; // lookup tables used for intensity compensation
- int use_ic; ///< use intensity compensation in B-frames
- int rnd; ///< rounding control
-
- /** Frame decoding info for S/M profiles only */
- //@{
- uint8_t rangeredfrm; ///< out_sample = CLIP((in_sample-128)*2+128)
- uint8_t interpfrm;
- //@}
-
- /** Frame decoding info for Advanced profile */
- //@{
- uint8_t fcm; ///< 0->Progressive, 2->Frame-Interlace, 3->Field-Interlace
- uint8_t numpanscanwin;
- uint8_t tfcntr;
- uint8_t rptfrm, tff, rff;
- uint16_t topleftx;
- uint16_t toplefty;
- uint16_t bottomrightx;
- uint16_t bottomrighty;
- uint8_t uvsamp;
- uint8_t postproc;
- int hrd_num_leaky_buckets;
- uint8_t bit_rate_exponent;
- uint8_t buffer_size_exponent;
- uint8_t* acpred_plane; ///< AC prediction flags bitplane
- int acpred_is_raw;
- uint8_t* over_flags_plane; ///< Overflags bitplane
- int overflg_is_raw;
- uint8_t condover;
- uint16_t *hrd_rate, *hrd_buffer;
- uint8_t *hrd_fullness;
- uint8_t range_mapy_flag;
- uint8_t range_mapuv_flag;
- uint8_t range_mapy;
- uint8_t range_mapuv;
- //@}
-
- int p_frame_skipped;
- int bi_type;
- int x8_type;
-
- uint32_t *cbp_base, *cbp;
- uint8_t bfraction_lut_index;///< Index for BFRACTION value (see Table 40, reproduced into ff_vc1_bfraction_lut[])
- uint8_t broken_link; ///< Broken link flag (BROKEN_LINK syntax element)
- uint8_t closed_entry; ///< Closed entry point flag (CLOSED_ENTRY syntax element)
-
- int parse_only; ///< Context is used within parser
-
- int warn_interlaced;
-} VC1Context;
-
-/** Find VC-1 marker in buffer
- * @return position where next marker starts or end of buffer if no marker found
- */
-static av_always_inline const uint8_t* find_next_marker(const uint8_t *src, const uint8_t *end)
-{
- uint32_t mrk = 0xFFFFFFFF;
-
- if(end-src < 4) return end;
- while(src < end){
- mrk = (mrk << 8) | *src++;
- if(IS_MARKER(mrk))
- return src-4;
- }
- return end;
-}
-
-static av_always_inline int vc1_unescape_buffer(const uint8_t *src, int size, uint8_t *dst)
-{
- int dsize = 0, i;
-
- if(size < 4){
- for(dsize = 0; dsize < size; dsize++) *dst++ = *src++;
- return size;
- }
- for(i = 0; i < size; i++, src++) {
- if(src[0] == 3 && i >= 2 && !src[-1] && !src[-2] && i < size-1 && src[1] < 4) {
- dst[dsize++] = src[1];
- src++;
- i++;
- } else
- dst[dsize++] = *src;
- }
- return dsize;
-}
-
-/**
- * Decode Simple/Main Profiles sequence header
- * @see Figure 7-8, p16-17
- * @param avctx Codec context
- * @param gb GetBit context initialized from Codec context extra_data
- * @return Status
- */
-int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb);
-
-int vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb);
-
-int vc1_parse_frame_header (VC1Context *v, GetBitContext *gb);
-int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb);
-
-#endif /* AVCODEC_VC1_H */
+++ /dev/null
-/*
- * VC-1 and WMV3 decoder
- * copyright (c) 2006 Konstantin Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VC1ACDATA_H
-#define AVCODEC_VC1ACDATA_H
-
-#include <stdint.h>
-
-#define AC_MODES 8
-
-static const int vc1_ac_sizes[AC_MODES] = {
- 186, 169, 133, 149, 103, 103, 163, 175
-};
-
-static const uint32_t vc1_ac_tables[AC_MODES][186][2] = {
-{
-{ 0x0001, 2}, { 0x0005, 3}, { 0x000D, 4}, { 0x0012, 5}, { 0x000E, 6}, { 0x0015, 7},
-{ 0x0013, 8}, { 0x003F, 8}, { 0x004B, 9}, { 0x011F, 9}, { 0x00B8, 10}, { 0x03E3, 10},
-{ 0x0172, 11}, { 0x024D, 12}, { 0x03DA, 12}, { 0x02DD, 13}, { 0x1F55, 13}, { 0x05B9, 14},
-{ 0x3EAE, 14}, { 0x0000, 4}, { 0x0010, 5}, { 0x0008, 7}, { 0x0020, 8}, { 0x0029, 9},
-{ 0x01F4, 9}, { 0x0233, 10}, { 0x01E0, 11}, { 0x012A, 12}, { 0x03DD, 12}, { 0x050A, 13},
-{ 0x1F29, 13}, { 0x0A42, 14}, { 0x1272, 15}, { 0x1737, 15}, { 0x0003, 5}, { 0x0011, 7},
-{ 0x00C4, 8}, { 0x004B, 10}, { 0x00B4, 11}, { 0x07D4, 11}, { 0x0345, 12}, { 0x02D7, 13},
-{ 0x07BF, 13}, { 0x0938, 14}, { 0x0BBB, 14}, { 0x095E, 15}, { 0x0013, 5}, { 0x0078, 7},
-{ 0x0069, 9}, { 0x0232, 10}, { 0x0461, 11}, { 0x03EC, 12}, { 0x0520, 13}, { 0x1F2A, 13},
-{ 0x3E50, 14}, { 0x3E51, 14}, { 0x1486, 15}, { 0x000C, 6}, { 0x0024, 9}, { 0x0094, 11},
-{ 0x08C0, 12}, { 0x0F09, 14}, { 0x1EF0, 15}, { 0x003D, 6}, { 0x0053, 9}, { 0x01A0, 11},
-{ 0x02D6, 13}, { 0x0F08, 14}, { 0x0013, 7}, { 0x007C, 9}, { 0x07C1, 11}, { 0x04AC, 14},
-{ 0x001B, 7}, { 0x00A0, 10}, { 0x0344, 12}, { 0x0F79, 14}, { 0x0079, 7}, { 0x03E1, 10},
-{ 0x02D4, 13}, { 0x2306, 14}, { 0x0021, 8}, { 0x023C, 10}, { 0x0FAE, 12}, { 0x23DE, 14},
-{ 0x0035, 8}, { 0x0175, 11}, { 0x07B3, 13}, { 0x00C5, 8}, { 0x0174, 11}, { 0x0785, 13},
-{ 0x0048, 9}, { 0x01A3, 11}, { 0x049E, 13}, { 0x002C, 9}, { 0x00FA, 10}, { 0x07D6, 11},
-{ 0x0092, 10}, { 0x05CC, 13}, { 0x1EF1, 15}, { 0x00A3, 10}, { 0x03ED, 12}, { 0x093E, 14},
-{ 0x01E2, 11}, { 0x1273, 15}, { 0x07C4, 11}, { 0x1487, 15}, { 0x0291, 12}, { 0x0293, 12},
-{ 0x0F8A, 12}, { 0x0509, 13}, { 0x0508, 13}, { 0x078D, 13}, { 0x07BE, 13}, { 0x078C, 13},
-{ 0x04AE, 14}, { 0x0BBA, 14}, { 0x2307, 14}, { 0x0B9A, 14}, { 0x1736, 15}, { 0x000E, 4},
-{ 0x0045, 7}, { 0x01F3, 9}, { 0x047A, 11}, { 0x05DC, 13}, { 0x23DF, 14}, { 0x0019, 5},
-{ 0x0028, 9}, { 0x0176, 11}, { 0x049D, 13}, { 0x23DD, 14}, { 0x0030, 6}, { 0x00A2, 10},
-{ 0x02EF, 12}, { 0x05B8, 14}, { 0x003F, 6}, { 0x00A5, 10}, { 0x03DB, 12}, { 0x093F, 14},
-{ 0x0044, 7}, { 0x07CB, 11}, { 0x095F, 15}, { 0x0063, 7}, { 0x03C3, 12}, { 0x0015, 8},
-{ 0x08F6, 12}, { 0x0017, 8}, { 0x0498, 13}, { 0x002C, 8}, { 0x07B2, 13}, { 0x002F, 8},
-{ 0x1F54, 13}, { 0x008D, 8}, { 0x07BD, 13}, { 0x008E, 8}, { 0x1182, 13}, { 0x00FB, 8},
-{ 0x050B, 13}, { 0x002D, 8}, { 0x07C0, 11}, { 0x0079, 9}, { 0x1F5F, 13}, { 0x007A, 9},
-{ 0x1F56, 13}, { 0x0231, 10}, { 0x03E4, 10}, { 0x01A1, 11}, { 0x0143, 11}, { 0x01F7, 11},
-{ 0x016F, 12}, { 0x0292, 12}, { 0x02E7, 12}, { 0x016C, 12}, { 0x016D, 12}, { 0x03DC, 12},
-{ 0x0F8B, 12}, { 0x0499, 13}, { 0x03D8, 12}, { 0x078E, 13}, { 0x02D5, 13}, { 0x1F5E, 13},
-{ 0x1F2B, 13}, { 0x078F, 13}, { 0x04AD, 14}, { 0x3EAF, 14}, { 0x23DC, 14}, { 0x004A, 9}
-},
-{
-{ 0x0000, 3}, { 0x0003, 4}, { 0x000B, 5}, { 0x0014, 6}, { 0x003F, 6}, { 0x005D, 7},
-{ 0x00A2, 8}, { 0x00AC, 9}, { 0x016E, 9}, { 0x020A, 10}, { 0x02E2, 10}, { 0x0432, 11},
-{ 0x05C9, 11}, { 0x0827, 12}, { 0x0B54, 12}, { 0x04E6, 13}, { 0x105F, 13}, { 0x172A, 13},
-{ 0x20B2, 14}, { 0x2D4E, 14}, { 0x39F0, 14}, { 0x4175, 15}, { 0x5A9E, 15}, { 0x0004, 4},
-{ 0x001E, 5}, { 0x0042, 7}, { 0x00B6, 8}, { 0x0173, 9}, { 0x0395, 10}, { 0x072E, 11},
-{ 0x0B94, 12}, { 0x16A4, 13}, { 0x20B3, 14}, { 0x2E45, 14}, { 0x0005, 5}, { 0x0040, 7},
-{ 0x0049, 9}, { 0x028F, 10}, { 0x05CB, 11}, { 0x048A, 13}, { 0x09DD, 14}, { 0x73E2, 15},
-{ 0x0018, 5}, { 0x0025, 8}, { 0x008A, 10}, { 0x051B, 11}, { 0x0E5F, 12}, { 0x09C9, 14},
-{ 0x139C, 15}, { 0x0029, 6}, { 0x004F, 9}, { 0x0412, 11}, { 0x048D, 13}, { 0x2E41, 14},
-{ 0x0038, 6}, { 0x010E, 9}, { 0x05A8, 11}, { 0x105C, 13}, { 0x39F2, 14}, { 0x0058, 7},
-{ 0x021F, 10}, { 0x0E7E, 12}, { 0x39FF, 14}, { 0x0023, 8}, { 0x02E3, 10}, { 0x04E5, 13},
-{ 0x2E40, 14}, { 0x00A1, 8}, { 0x05BE, 11}, { 0x09C8, 14}, { 0x0083, 8}, { 0x013A, 11},
-{ 0x1721, 13}, { 0x0044, 9}, { 0x0276, 12}, { 0x39F6, 14}, { 0x008B, 10}, { 0x04EF, 13},
-{ 0x5A9B, 15}, { 0x0208, 10}, { 0x1CFE, 13}, { 0x0399, 10}, { 0x1CB4, 13}, { 0x039E, 10},
-{ 0x39F3, 14}, { 0x05AB, 11}, { 0x73E3, 15}, { 0x0737, 11}, { 0x5A9F, 15}, { 0x082D, 12},
-{ 0x0E69, 12}, { 0x0E68, 12}, { 0x0433, 11}, { 0x0B7B, 12}, { 0x2DF8, 14}, { 0x2E56, 14},
-{ 0x2E57, 14}, { 0x39F7, 14}, { 0x51A5, 15}, { 0x0003, 3}, { 0x002A, 6}, { 0x00E4, 8},
-{ 0x028E, 10}, { 0x0735, 11}, { 0x1058, 13}, { 0x1CFA, 13}, { 0x2DF9, 14}, { 0x4174, 15},
-{ 0x0009, 4}, { 0x0054, 8}, { 0x0398, 10}, { 0x048B, 13}, { 0x139D, 15}, { 0x000D, 4},
-{ 0x00AD, 9}, { 0x0826, 12}, { 0x2D4C, 14}, { 0x0011, 5}, { 0x016B, 9}, { 0x0B7F, 12},
-{ 0x51A4, 15}, { 0x0019, 5}, { 0x021B, 10}, { 0x16FD, 13}, { 0x001D, 5}, { 0x0394, 10},
-{ 0x28D3, 14}, { 0x002B, 6}, { 0x05BC, 11}, { 0x5A9A, 15}, { 0x002F, 6}, { 0x0247, 12},
-{ 0x0010, 7}, { 0x0A35, 12}, { 0x003E, 6}, { 0x0B7A, 12}, { 0x0059, 7}, { 0x105E, 13},
-{ 0x0026, 8}, { 0x09CF, 14}, { 0x0055, 8}, { 0x1CB5, 13}, { 0x0057, 8}, { 0x0E5B, 12},
-{ 0x00A0, 8}, { 0x1468, 13}, { 0x0170, 9}, { 0x0090, 10}, { 0x01CE, 9}, { 0x021A, 10},
-{ 0x0218, 10}, { 0x0168, 9}, { 0x021E, 10}, { 0x0244, 12}, { 0x0736, 11}, { 0x0138, 11},
-{ 0x0519, 11}, { 0x0E5E, 12}, { 0x072C, 11}, { 0x0B55, 12}, { 0x09DC, 14}, { 0x20BB, 14},
-{ 0x048C, 13}, { 0x1723, 13}, { 0x2E44, 14}, { 0x16A5, 13}, { 0x0518, 11}, { 0x39FE, 14},
-{ 0x0169, 9}
-},
-{
-{ 0x0001, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x0016, 5}, { 0x0020, 6}, { 0x0018, 7},
-{ 0x0008, 8}, { 0x009A, 8}, { 0x0056, 9}, { 0x013E, 9}, { 0x00F0, 10}, { 0x03A5, 10},
-{ 0x0077, 11}, { 0x01EF, 11}, { 0x009A, 12}, { 0x005D, 13}, { 0x0001, 4}, { 0x0011, 5},
-{ 0x0002, 7}, { 0x000B, 8}, { 0x0012, 9}, { 0x01D6, 9}, { 0x027E, 10}, { 0x0191, 11},
-{ 0x00EA, 12}, { 0x03DC, 12}, { 0x013B, 13}, { 0x0004, 5}, { 0x0014, 7}, { 0x009E, 8},
-{ 0x0009, 10}, { 0x01AC, 11}, { 0x01E2, 11}, { 0x03CA, 12}, { 0x005F, 13}, { 0x0017, 5},
-{ 0x004E, 7}, { 0x005E, 9}, { 0x00F3, 10}, { 0x01AD, 11}, { 0x00EC, 12}, { 0x05F0, 13},
-{ 0x000E, 6}, { 0x00E1, 8}, { 0x03A4, 10}, { 0x009C, 12}, { 0x013D, 13}, { 0x003B, 6},
-{ 0x001C, 9}, { 0x0014, 11}, { 0x09BE, 12}, { 0x0006, 7}, { 0x007A, 9}, { 0x0190, 11},
-{ 0x0137, 13}, { 0x001B, 7}, { 0x0008, 10}, { 0x075C, 11}, { 0x0071, 7}, { 0x00D7, 10},
-{ 0x09BF, 12}, { 0x0007, 8}, { 0x00AF, 10}, { 0x04CC, 11}, { 0x0034, 8}, { 0x0265, 10},
-{ 0x009F, 12}, { 0x00E0, 8}, { 0x0016, 11}, { 0x0327, 12}, { 0x0015, 9}, { 0x017D, 11},
-{ 0x0EBB, 12}, { 0x0014, 9}, { 0x00F6, 10}, { 0x01E4, 11}, { 0x00CB, 10}, { 0x099D, 12},
-{ 0x00CA, 10}, { 0x02FC, 12}, { 0x017F, 11}, { 0x04CD, 11}, { 0x02FD, 12}, { 0x04FE, 11},
-{ 0x013A, 13}, { 0x000A, 4}, { 0x0042, 7}, { 0x01D3, 9}, { 0x04DD, 11}, { 0x0012, 5},
-{ 0x00E8, 8}, { 0x004C, 11}, { 0x0136, 13}, { 0x0039, 6}, { 0x0264, 10}, { 0x0EBA, 12},
-{ 0x0000, 7}, { 0x00AE, 10}, { 0x099C, 12}, { 0x001F, 7}, { 0x04DE, 11}, { 0x0043, 7},
-{ 0x04DC, 11}, { 0x0003, 8}, { 0x03CB, 12}, { 0x0006, 8}, { 0x099E, 12}, { 0x002A, 8},
-{ 0x05F1, 13}, { 0x000F, 8}, { 0x09FE, 12}, { 0x0033, 8}, { 0x09FF, 12}, { 0x0098, 8},
-{ 0x099F, 12}, { 0x00EA, 8}, { 0x013C, 13}, { 0x002E, 8}, { 0x0192, 11}, { 0x0136, 9},
-{ 0x006A, 9}, { 0x0015, 11}, { 0x03AF, 10}, { 0x01E3, 11}, { 0x0074, 11}, { 0x00EB, 12},
-{ 0x02F9, 12}, { 0x005C, 13}, { 0x00ED, 12}, { 0x03DD, 12}, { 0x0326, 12}, { 0x005E, 13},
-{ 0x0016, 7}
-},
-{
-{ 0x0004, 3}, { 0x0014, 5}, { 0x0017, 7}, { 0x007F, 8}, { 0x0154, 9}, { 0x01F2, 10},
-{ 0x00BF, 11}, { 0x0065, 12}, { 0x0AAA, 12}, { 0x0630, 13}, { 0x1597, 13}, { 0x03B7, 14},
-{ 0x2B22, 14}, { 0x0BE6, 15}, { 0x000B, 4}, { 0x0037, 7}, { 0x0062, 9}, { 0x0007, 11},
-{ 0x0166, 12}, { 0x00CE, 13}, { 0x1590, 13}, { 0x05F6, 14}, { 0x0BE7, 15}, { 0x0007, 5},
-{ 0x006D, 8}, { 0x0003, 11}, { 0x031F, 12}, { 0x05F2, 14}, { 0x0002, 6}, { 0x0061, 9},
-{ 0x0055, 12}, { 0x01DF, 14}, { 0x001A, 6}, { 0x001E, 10}, { 0x0AC9, 12}, { 0x2B23, 14},
-{ 0x001E, 6}, { 0x001F, 10}, { 0x0AC3, 12}, { 0x2B2B, 14}, { 0x0006, 7}, { 0x0004, 11},
-{ 0x02F8, 13}, { 0x0019, 7}, { 0x0006, 11}, { 0x063D, 13}, { 0x0057, 7}, { 0x0182, 11},
-{ 0x2AA2, 14}, { 0x0004, 8}, { 0x0180, 11}, { 0x059C, 14}, { 0x007D, 8}, { 0x0164, 12},
-{ 0x076D, 15}, { 0x0002, 9}, { 0x018D, 11}, { 0x1581, 13}, { 0x00AD, 8}, { 0x0060, 12},
-{ 0x0C67, 14}, { 0x001C, 9}, { 0x00EE, 13}, { 0x0003, 9}, { 0x02CF, 13}, { 0x00D9, 9},
-{ 0x1580, 13}, { 0x0002, 11}, { 0x0183, 11}, { 0x0057, 12}, { 0x0061, 12}, { 0x0031, 11},
-{ 0x0066, 12}, { 0x0631, 13}, { 0x0632, 13}, { 0x00AC, 13}, { 0x031D, 12}, { 0x0076, 12},
-{ 0x003A, 11}, { 0x0165, 12}, { 0x0C66, 14}, { 0x0003, 2}, { 0x0054, 7}, { 0x02AB, 10},
-{ 0x0016, 13}, { 0x05F7, 14}, { 0x0005, 4}, { 0x00F8, 9}, { 0x0AA9, 12}, { 0x005F, 15},
-{ 0x0004, 4}, { 0x001C, 10}, { 0x1550, 13}, { 0x0004, 5}, { 0x0077, 11}, { 0x076C, 15},
-{ 0x000E, 5}, { 0x000A, 12}, { 0x000C, 5}, { 0x0562, 11}, { 0x0004, 6}, { 0x031C, 12},
-{ 0x0006, 6}, { 0x00C8, 13}, { 0x000D, 6}, { 0x01DA, 13}, { 0x0007, 6}, { 0x00C9, 13},
-{ 0x0001, 7}, { 0x002E, 14}, { 0x0014, 7}, { 0x1596, 13}, { 0x000A, 7}, { 0x0AC2, 12},
-{ 0x0016, 7}, { 0x015B, 14}, { 0x0015, 7}, { 0x015A, 14}, { 0x000F, 8}, { 0x005E, 15},
-{ 0x007E, 8}, { 0x00AB, 8}, { 0x002D, 9}, { 0x00D8, 9}, { 0x000B, 9}, { 0x0014, 10},
-{ 0x02B3, 10}, { 0x01F3, 10}, { 0x003A, 10}, { 0x0000, 10}, { 0x0058, 10}, { 0x002E, 9},
-{ 0x005E, 10}, { 0x0563, 11}, { 0x00EC, 12}, { 0x0054, 12}, { 0x0AC1, 12}, { 0x1556, 13},
-{ 0x02FA, 13}, { 0x0181, 11}, { 0x1557, 13}, { 0x059D, 14}, { 0x2AA3, 14}, { 0x2B2A, 14},
-{ 0x01DE, 14}, { 0x063C, 13}, { 0x00CF, 13}, { 0x1594, 13}, { 0x000D, 9}
-},
-{
-{ 0x0002, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x000D, 5}, { 0x000C, 5}, { 0x0015, 6},
-{ 0x0013, 6}, { 0x0012, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x001E, 8}, { 0x001D, 8},
-{ 0x0025, 9}, { 0x0024, 9}, { 0x0023, 9}, { 0x0021, 9}, { 0x0021, 10}, { 0x0020, 10},
-{ 0x000F, 10}, { 0x000E, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, { 0x0021, 11},
-{ 0x0050, 12}, { 0x0051, 12}, { 0x0052, 12}, { 0x000E, 4}, { 0x0014, 6}, { 0x0016, 7},
-{ 0x001C, 8}, { 0x0020, 9}, { 0x001F, 9}, { 0x000D, 10}, { 0x0022, 11}, { 0x0053, 12},
-{ 0x0055, 12}, { 0x000B, 5}, { 0x0015, 7}, { 0x001E, 9}, { 0x000C, 10}, { 0x0056, 12},
-{ 0x0011, 6}, { 0x001B, 8}, { 0x001D, 9}, { 0x000B, 10}, { 0x0010, 6}, { 0x0022, 9},
-{ 0x000A, 10}, { 0x000D, 6}, { 0x001C, 9}, { 0x0008, 10}, { 0x0012, 7}, { 0x001B, 9},
-{ 0x0054, 12}, { 0x0014, 7}, { 0x001A, 9}, { 0x0057, 12}, { 0x0019, 8}, { 0x0009, 10},
-{ 0x0018, 8}, { 0x0023, 11}, { 0x0017, 8}, { 0x0019, 9}, { 0x0018, 9}, { 0x0007, 10},
-{ 0x0058, 12}, { 0x0007, 4}, { 0x000C, 6}, { 0x0016, 8}, { 0x0017, 9}, { 0x0006, 10},
-{ 0x0005, 11}, { 0x0004, 11}, { 0x0059, 12}, { 0x000F, 6}, { 0x0016, 9}, { 0x0005, 10},
-{ 0x000E, 6}, { 0x0004, 10}, { 0x0011, 7}, { 0x0024, 11}, { 0x0010, 7}, { 0x0025, 11},
-{ 0x0013, 7}, { 0x005A, 12}, { 0x0015, 8}, { 0x005B, 12}, { 0x0014, 8}, { 0x0013, 8},
-{ 0x001A, 8}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, { 0x0012, 9}, { 0x0011, 9},
-{ 0x0026, 11}, { 0x0027, 11}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12},
-{ 0x0003, 7}
-},
-{
-{ 0x0002, 2}, { 0x000F, 4}, { 0x0015, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x0025, 9},
-{ 0x0024, 9}, { 0x0021, 10}, { 0x0020, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11},
-{ 0x0006, 3}, { 0x0014, 6}, { 0x001E, 8}, { 0x000F, 10}, { 0x0021, 11}, { 0x0050, 12},
-{ 0x000E, 4}, { 0x001D, 8}, { 0x000E, 10}, { 0x0051, 12}, { 0x000D, 5}, { 0x0023, 9},
-{ 0x000D, 10}, { 0x000C, 5}, { 0x0022, 9}, { 0x0052, 12}, { 0x000B, 5}, { 0x000C, 10},
-{ 0x0053, 12}, { 0x0013, 6}, { 0x000B, 10}, { 0x0054, 12}, { 0x0012, 6}, { 0x000A, 10},
-{ 0x0011, 6}, { 0x0009, 10}, { 0x0010, 6}, { 0x0008, 10}, { 0x0016, 7}, { 0x0055, 12},
-{ 0x0015, 7}, { 0x0014, 7}, { 0x001C, 8}, { 0x001B, 8}, { 0x0021, 9}, { 0x0020, 9},
-{ 0x001F, 9}, { 0x001E, 9}, { 0x001D, 9}, { 0x001C, 9}, { 0x001B, 9}, { 0x001A, 9},
-{ 0x0022, 11}, { 0x0023, 11}, { 0x0056, 12}, { 0x0057, 12}, { 0x0007, 4}, { 0x0019, 9},
-{ 0x0005, 11}, { 0x000F, 6}, { 0x0004, 11}, { 0x000E, 6}, { 0x000D, 6}, { 0x000C, 6},
-{ 0x0013, 7}, { 0x0012, 7}, { 0x0011, 7}, { 0x0010, 7}, { 0x001A, 8}, { 0x0019, 8},
-{ 0x0018, 8}, { 0x0017, 8}, { 0x0016, 8}, { 0x0015, 8}, { 0x0014, 8}, { 0x0013, 8},
-{ 0x0018, 9}, { 0x0017, 9}, { 0x0016, 9}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9},
-{ 0x0012, 9}, { 0x0011, 9}, { 0x0007, 10}, { 0x0006, 10}, { 0x0005, 10}, { 0x0004, 10},
-{ 0x0024, 11}, { 0x0025, 11}, { 0x0026, 11}, { 0x0027, 11}, { 0x0058, 12}, { 0x0059, 12},
-{ 0x005A, 12}, { 0x005B, 12}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12},
-{ 0x0003, 7}
-},
-{
-{ 0x0000, 2}, { 0x0003, 3}, { 0x000D, 4}, { 0x0005, 4}, { 0x001C, 5}, { 0x0016, 5},
-{ 0x003F, 6}, { 0x003A, 6}, { 0x002E, 6}, { 0x0022, 6}, { 0x007B, 7}, { 0x0067, 7},
-{ 0x005F, 7}, { 0x0047, 7}, { 0x0026, 7}, { 0x00EF, 8}, { 0x00CD, 8}, { 0x00C1, 8},
-{ 0x00A9, 8}, { 0x004F, 8}, { 0x01F2, 9}, { 0x01DD, 9}, { 0x0199, 9}, { 0x0185, 9},
-{ 0x015D, 9}, { 0x011B, 9}, { 0x03EF, 10}, { 0x03E1, 10}, { 0x03C8, 10}, { 0x0331, 10},
-{ 0x0303, 10}, { 0x02F1, 10}, { 0x02A0, 10}, { 0x0233, 10}, { 0x0126, 10}, { 0x07C0, 11},
-{ 0x076F, 11}, { 0x076C, 11}, { 0x0661, 11}, { 0x0604, 11}, { 0x0572, 11}, { 0x0551, 11},
-{ 0x046A, 11}, { 0x0274, 11}, { 0x0F27, 12}, { 0x0F24, 12}, { 0x0EDB, 12}, { 0x0C8E, 12},
-{ 0x0C0B, 12}, { 0x0C0A, 12}, { 0x0AE3, 12}, { 0x08D6, 12}, { 0x0490, 12}, { 0x0495, 12},
-{ 0x1F19, 13}, { 0x1DB5, 13}, { 0x0009, 4}, { 0x0010, 5}, { 0x0029, 6}, { 0x0062, 7},
-{ 0x00F3, 8}, { 0x00AD, 8}, { 0x01E5, 9}, { 0x0179, 9}, { 0x009C, 9}, { 0x03B1, 10},
-{ 0x02AE, 10}, { 0x0127, 10}, { 0x076E, 11}, { 0x0570, 11}, { 0x0275, 11}, { 0x0F25, 12},
-{ 0x0EC0, 12}, { 0x0AA0, 12}, { 0x08D7, 12}, { 0x1E4C, 13}, { 0x0008, 5}, { 0x0063, 7},
-{ 0x00AF, 8}, { 0x017B, 9}, { 0x03B3, 10}, { 0x07DD, 11}, { 0x0640, 11}, { 0x0F8D, 12},
-{ 0x0BC1, 12}, { 0x0491, 12}, { 0x0028, 6}, { 0x00C3, 8}, { 0x0151, 9}, { 0x02A1, 10},
-{ 0x0573, 11}, { 0x0EC3, 12}, { 0x1F35, 13}, { 0x0065, 7}, { 0x01DA, 9}, { 0x02AF, 10},
-{ 0x0277, 11}, { 0x08C9, 12}, { 0x1781, 13}, { 0x0025, 7}, { 0x0118, 9}, { 0x0646, 11},
-{ 0x0AA6, 12}, { 0x1780, 13}, { 0x00C9, 8}, { 0x0321, 10}, { 0x0F9B, 12}, { 0x191E, 13},
-{ 0x0048, 8}, { 0x07CC, 11}, { 0x0AA1, 12}, { 0x0180, 9}, { 0x0465, 11}, { 0x1905, 13},
-{ 0x03E2, 10}, { 0x0EC1, 12}, { 0x3C9B, 14}, { 0x02F4, 10}, { 0x08C8, 12}, { 0x07C1, 11},
-{ 0x0928, 13}, { 0x05E1, 11}, { 0x320D, 14}, { 0x0EC2, 12}, { 0x6418, 15}, { 0x1F34, 13},
-{ 0x0078, 7}, { 0x0155, 9}, { 0x0552, 11}, { 0x191F, 13}, { 0x00FA, 8}, { 0x07DC, 11},
-{ 0x1907, 13}, { 0x00AC, 8}, { 0x0249, 11}, { 0x13B1, 14}, { 0x01F6, 9}, { 0x0AE2, 12},
-{ 0x01DC, 9}, { 0x04ED, 12}, { 0x0184, 9}, { 0x1904, 13}, { 0x0156, 9}, { 0x09D9, 13},
-{ 0x03E7, 10}, { 0x0929, 13}, { 0x03B2, 10}, { 0x3B68, 14}, { 0x02F5, 10}, { 0x13B0, 14},
-{ 0x0322, 10}, { 0x3B69, 14}, { 0x0234, 10}, { 0x7935, 15}, { 0x07C7, 11}, { 0xC833, 16},
-{ 0x0660, 11}, { 0x7934, 15}, { 0x024B, 11}, { 0xC832, 16}, { 0x0AA7, 12}, { 0x1F18, 13},
-{ 0x007A, 7}
-},
-{
-{ 0x0002, 2}, { 0x0000, 3}, { 0x001E, 5}, { 0x0004, 5}, { 0x0012, 6}, { 0x0070, 7},
-{ 0x001A, 7}, { 0x005F, 8}, { 0x0047, 8}, { 0x01D3, 9}, { 0x00B5, 9}, { 0x0057, 9},
-{ 0x03B5, 10}, { 0x016D, 10}, { 0x0162, 10}, { 0x07CE, 11}, { 0x0719, 11}, { 0x0691, 11},
-{ 0x02C6, 11}, { 0x0156, 11}, { 0x0F92, 12}, { 0x0D2E, 12}, { 0x0D20, 12}, { 0x059E, 12},
-{ 0x0468, 12}, { 0x02A6, 12}, { 0x1DA2, 13}, { 0x1C60, 13}, { 0x1A43, 13}, { 0x0B1D, 13},
-{ 0x08C0, 13}, { 0x055D, 13}, { 0x0003, 3}, { 0x000A, 5}, { 0x0077, 7}, { 0x00E5, 8},
-{ 0x01D9, 9}, { 0x03E5, 10}, { 0x0166, 10}, { 0x0694, 11}, { 0x0152, 11}, { 0x059F, 12},
-{ 0x1F3C, 13}, { 0x1A4B, 13}, { 0x055E, 13}, { 0x000C, 4}, { 0x007D, 7}, { 0x0044, 8},
-{ 0x03E0, 10}, { 0x0769, 11}, { 0x0E31, 12}, { 0x1F26, 13}, { 0x055C, 13}, { 0x001B, 5},
-{ 0x00E2, 8}, { 0x03A5, 10}, { 0x02C9, 11}, { 0x1F23, 13}, { 0x3B47, 14}, { 0x0007, 5},
-{ 0x01D8, 9}, { 0x02D8, 11}, { 0x1F27, 13}, { 0x3494, 14}, { 0x0035, 6}, { 0x03E1, 10},
-{ 0x059C, 12}, { 0x38C3, 14}, { 0x000C, 6}, { 0x0165, 10}, { 0x1D23, 13}, { 0x1638, 14},
-{ 0x0068, 7}, { 0x0693, 11}, { 0x3A45, 14}, { 0x0020, 7}, { 0x0F90, 12}, { 0x7CF6, 15},
-{ 0x00E8, 8}, { 0x058F, 12}, { 0x2CEF, 15}, { 0x0045, 8}, { 0x0B3A, 13}, { 0x01F1, 9},
-{ 0x3B46, 14}, { 0x01A7, 9}, { 0x1676, 14}, { 0x0056, 9}, { 0x692A, 15}, { 0x038D, 10},
-{ 0xE309, 16}, { 0x00AA, 10}, { 0x1C611, 17}, { 0x02DF, 11}, { 0xB3B9, 17}, { 0x02C8, 11},
-{ 0x38C20, 18}, { 0x01B0, 11}, { 0x16390, 18}, { 0x0F9F, 12}, { 0x16771, 18}, { 0x0ED0, 12},
-{ 0x71843, 19}, { 0x0D2A, 12}, { 0xF9E8C, 20}, { 0x0461, 12}, { 0xF9E8E, 20}, { 0x0B67, 13},
-{ 0x055F, 13}, { 0x003F, 6}, { 0x006D, 9}, { 0x0E90, 12}, { 0x054E, 13}, { 0x0013, 6},
-{ 0x0119, 10}, { 0x0B66, 13}, { 0x000B, 6}, { 0x0235, 11}, { 0x7CF5, 15}, { 0x0075, 7},
-{ 0x0D24, 12}, { 0xF9E9, 16}, { 0x002E, 7}, { 0x1F22, 13}, { 0x0021, 7}, { 0x054F, 13},
-{ 0x0014, 7}, { 0x3A44, 14}, { 0x00E4, 8}, { 0x7CF7, 15}, { 0x005E, 8}, { 0x7185, 15},
-{ 0x0037, 8}, { 0x2C73, 15}, { 0x01DB, 9}, { 0x59DD, 16}, { 0x01C7, 9}, { 0x692B, 15},
-{ 0x01A6, 9}, { 0x58E5, 16}, { 0x00B4, 9}, { 0x1F3D0, 17}, { 0x00B0, 9}, { 0xB1C9, 17},
-{ 0x03E6, 10}, { 0x16770, 18}, { 0x016E, 10}, { 0x3E7A2, 18}, { 0x011B, 10}, { 0xF9E8D, 20},
-{ 0x00D9, 10}, { 0xF9E8F, 20}, { 0x00A8, 10}, { 0x2C723, 19}, { 0x0749, 11}, { 0xE3084, 20},
-{ 0x0696, 11}, { 0x58E45, 20}, { 0x02DE, 11}, { 0xB1C88, 21}, { 0x0231, 11}, { 0x1C610A, 21},
-{ 0x01B1, 11}, { 0x71842D, 23}, { 0x0D2B, 12}, { 0x38C217, 22}, { 0x0D2F, 12}, { 0x163913, 22},
-{ 0x05B2, 12}, { 0x163912, 22}, { 0x0469, 12}, { 0x71842C, 23}, { 0x1A42, 13}, { 0x08C1, 13},
-{ 0x0073, 7}
-}
-};
-
-/* which indexes point to last=1 entries in tables */
-static const int vc1_last_decode_table[AC_MODES] = {
- 119, 99, 85, 81, 67, 58, 126, 109
-};
-
-static const uint8_t vc1_index_decode_table[AC_MODES][185][2] = {
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 0, 17}, { 0, 18}, { 0, 19}, { 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 1, 5},
-{ 1, 6}, { 1, 7}, { 1, 8}, { 1, 9}, { 1, 10}, { 1, 11}, { 1, 12}, { 1, 13},
-{ 1, 14}, { 1, 15}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 2, 5}, { 2, 6},
-{ 2, 7}, { 2, 8}, { 2, 9}, { 2, 10}, { 2, 11}, { 2, 12}, { 3, 1}, { 3, 2},
-{ 3, 3}, { 3, 4}, { 3, 5}, { 3, 6}, { 3, 7}, { 3, 8}, { 3, 9}, { 3, 10},
-{ 3, 11}, { 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 4, 5}, { 4, 6}, { 5, 1},
-{ 5, 2}, { 5, 3}, { 5, 4}, { 5, 5}, { 6, 1}, { 6, 2}, { 6, 3}, { 6, 4},
-{ 7, 1}, { 7, 2}, { 7, 3}, { 7, 4}, { 8, 1}, { 8, 2}, { 8, 3}, { 8, 4},
-{ 9, 1}, { 9, 2}, { 9, 3}, { 9, 4}, { 10, 1}, { 10, 2}, { 10, 3}, { 11, 1},
-{ 11, 2}, { 11, 3}, { 12, 1}, { 12, 2}, { 12, 3}, { 13, 1}, { 13, 2}, { 13, 3},
-{ 14, 1}, { 14, 2}, { 14, 3}, { 15, 1}, { 15, 2}, { 15, 3}, { 16, 1}, { 16, 2},
-{ 17, 1}, { 17, 2}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1},
-{ 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1}, { 29, 1}, { 30, 1}, { 0, 1},
-{ 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 1, 1}, { 1, 2}, { 1, 3},
-{ 1, 4}, { 1, 5}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 3, 1}, { 3, 2},
-{ 3, 3}, { 3, 4}, { 4, 1}, { 4, 2}, { 4, 3}, { 5, 1}, { 5, 2}, { 6, 1},
-{ 6, 2}, { 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1},
-{ 10, 2}, { 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1},
-{ 14, 2}, { 15, 1}, { 15, 2}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1},
-{ 21, 1}, { 22, 1}, { 23, 1}, { 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1},
-{ 29, 1}, { 30, 1}, { 31, 1}, { 32, 1}, { 33, 1}, { 34, 1}, { 35, 1}, { 36, 1},
-{ 37, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 0, 17}, { 0, 18}, { 0, 19}, { 0, 20}, { 0, 21}, { 0, 22}, { 0, 23}, { 1, 1},
-{ 1, 2}, { 1, 3}, { 1, 4}, { 1, 5}, { 1, 6}, { 1, 7}, { 1, 8}, { 1, 9},
-{ 1, 10}, { 1, 11}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 2, 5}, { 2, 6},
-{ 2, 7}, { 2, 8}, { 3, 1}, { 3, 2}, { 3, 3}, { 3, 4}, { 3, 5}, { 3, 6},
-{ 3, 7}, { 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 4, 5}, { 5, 1}, { 5, 2},
-{ 5, 3}, { 5, 4}, { 5, 5}, { 6, 1}, { 6, 2}, { 6, 3}, { 6, 4}, { 7, 1},
-{ 7, 2}, { 7, 3}, { 7, 4}, { 8, 1}, { 8, 2}, { 8, 3}, { 9, 1}, { 9, 2},
-{ 9, 3}, { 10, 1}, { 10, 2}, { 10, 3}, { 11, 1}, { 11, 2}, { 11, 3}, { 12, 1},
-{ 12, 2}, { 13, 1}, { 13, 2}, { 14, 1}, { 14, 2}, { 15, 1}, { 15, 2}, { 16, 1},
-{ 16, 2}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1},
-{ 24, 1}, { 25, 1}, { 26, 1}, { 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5},
-{ 0, 6}, { 0, 7}, { 0, 8}, { 0, 9}, { 1, 1}, { 1, 2}, { 1, 3}, { 1, 4},
-{ 1, 5}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 3, 1}, { 3, 2}, { 3, 3},
-{ 3, 4}, { 4, 1}, { 4, 2}, { 4, 3}, { 5, 1}, { 5, 2}, { 5, 3}, { 6, 1},
-{ 6, 2}, { 6, 3}, { 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2},
-{ 10, 1}, { 10, 2}, { 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2},
-{ 14, 1}, { 14, 2}, { 15, 1}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1},
-{ 21, 1}, { 22, 1}, { 23, 1}, { 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1},
-{ 29, 1}, { 30, 1}, { 31, 1}, { 32, 1}, { 33, 1}, { 34, 1}, { 35, 1}, { 36, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 1, 5}, { 1, 6}, { 1, 7}, { 1, 8},
-{ 1, 9}, { 1, 10}, { 1, 11}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 2, 5},
-{ 2, 6}, { 2, 7}, { 2, 8}, { 3, 1}, { 3, 2}, { 3, 3}, { 3, 4}, { 3, 5},
-{ 3, 6}, { 3, 7}, { 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 4, 5}, { 5, 1},
-{ 5, 2}, { 5, 3}, { 5, 4}, { 6, 1}, { 6, 2}, { 6, 3}, { 6, 4}, { 7, 1},
-{ 7, 2}, { 7, 3}, { 8, 1}, { 8, 2}, { 8, 3}, { 9, 1}, { 9, 2}, { 9, 3},
-{ 10, 1}, { 10, 2}, { 10, 3}, { 11, 1}, { 11, 2}, { 11, 3}, { 12, 1}, { 12, 2},
-{ 12, 3}, { 13, 1}, { 13, 2}, { 13, 3}, { 14, 1}, { 14, 2}, { 15, 1}, { 15, 2},
-{ 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 0, 1}, { 0, 2}, { 0, 3},
-{ 0, 4}, { 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 2, 1}, { 2, 2}, { 2, 3},
-{ 3, 1}, { 3, 2}, { 3, 3}, { 4, 1}, { 4, 2}, { 5, 1}, { 5, 2}, { 6, 1},
-{ 6, 2}, { 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1},
-{ 10, 2}, { 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1},
-{ 15, 1}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1},
-{ 23, 1}, { 24, 1}, { 25, 1}, { 26, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 1, 1}, { 1, 2},
-{ 1, 3}, { 1, 4}, { 1, 5}, { 1, 6}, { 1, 7}, { 1, 8}, { 1, 9}, { 2, 1},
-{ 2, 2}, { 2, 3}, { 2, 4}, { 2, 5}, { 3, 1}, { 3, 2}, { 3, 3}, { 3, 4},
-{ 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 5, 1}, { 5, 2}, { 5, 3}, { 5, 4},
-{ 6, 1}, { 6, 2}, { 6, 3}, { 7, 1}, { 7, 2}, { 7, 3}, { 8, 1}, { 8, 2},
-{ 8, 3}, { 9, 1}, { 9, 2}, { 9, 3}, { 10, 1}, { 10, 2}, { 10, 3}, { 11, 1},
-{ 11, 2}, { 11, 3}, { 12, 1}, { 12, 2}, { 12, 3}, { 13, 1}, { 13, 2}, { 14, 1},
-{ 14, 2}, { 15, 1}, { 15, 2}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1},
-{ 21, 1}, { 22, 1}, { 23, 1}, { 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1},
-{ 29, 1}, { 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 1, 1}, { 1, 2},
-{ 1, 3}, { 1, 4}, { 2, 1}, { 2, 2}, { 2, 3}, { 3, 1}, { 3, 2}, { 3, 3},
-{ 4, 1}, { 4, 2}, { 5, 1}, { 5, 2}, { 6, 1}, { 6, 2}, { 7, 1}, { 7, 2},
-{ 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1}, { 10, 2}, { 11, 1}, { 11, 2},
-{ 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1}, { 14, 2}, { 15, 1}, { 15, 2},
-{ 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1},
-{ 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1}, { 29, 1}, { 30, 1}, { 31, 1},
-{ 32, 1}, { 33, 1}, { 34, 1}, { 35, 1}, { 36, 1}, { 37, 1}, { 38, 1}, { 39, 1},
-{ 40, 1}, { 41, 1}, { 42, 1}, { 43, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 0, 17}, { 0, 18}, { 0, 19}, { 0, 20}, { 0, 21}, { 0, 22}, { 0, 23}, { 0, 24},
-{ 0, 25}, { 0, 26}, { 0, 27}, { 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 1, 5},
-{ 1, 6}, { 1, 7}, { 1, 8}, { 1, 9}, { 1, 10}, { 2, 1}, { 2, 2}, { 2, 3},
-{ 2, 4}, { 2, 5}, { 3, 1}, { 3, 2}, { 3, 3}, { 3, 4}, { 4, 1}, { 4, 2},
-{ 4, 3}, { 5, 1}, { 5, 2}, { 5, 3}, { 6, 1}, { 6, 2}, { 6, 3}, { 7, 1},
-{ 7, 2}, { 7, 3}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1}, { 11, 1},
-{ 12, 1}, { 13, 1}, { 14, 1}, { 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5},
-{ 0, 6}, { 0, 7}, { 0, 8}, { 1, 1}, { 1, 2}, { 1, 3}, { 2, 1}, { 2, 2},
-{ 3, 1}, { 3, 2}, { 4, 1}, { 4, 2}, { 5, 1}, { 5, 2}, { 6, 1}, { 6, 2},
-{ 7, 1}, { 8, 1}, { 9, 1}, { 10, 1}, { 11, 1}, { 12, 1}, { 13, 1}, { 14, 1},
-{ 15, 1}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 1, 1}, { 1, 2}, { 1, 3}, { 1, 4},
-{ 1, 5}, { 1, 6}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4}, { 3, 1}, { 3, 2},
-{ 3, 3}, { 4, 1}, { 4, 2}, { 4, 3}, { 5, 1}, { 5, 2}, { 5, 3}, { 6, 1},
-{ 6, 2}, { 6, 3}, { 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2},
-{ 10, 1}, { 10, 2}, { 11, 1}, { 12, 1}, { 13, 1}, { 14, 1}, { 15, 1}, { 16, 1},
-{ 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1}, { 24, 1},
-{ 25, 1}, { 26, 1}, { 0, 1}, { 0, 2}, { 0, 3}, { 1, 1}, { 1, 2}, { 2, 1},
-{ 3, 1}, { 4, 1}, { 5, 1}, { 6, 1}, { 7, 1}, { 8, 1}, { 9, 1}, { 10, 1},
-{ 11, 1}, { 12, 1}, { 13, 1}, { 14, 1}, { 15, 1}, { 16, 1}, { 17, 1}, { 18, 1},
-{ 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1}, { 24, 1}, { 25, 1}, { 26, 1},
-{ 27, 1}, { 28, 1}, { 29, 1}, { 30, 1}, { 31, 1}, { 32, 1}, { 33, 1}, { 34, 1},
-{ 35, 1}, { 36, 1}, { 37, 1}, { 38, 1}, { 39, 1}, { 40, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 0, 17}, { 0, 18}, { 0, 19}, { 0, 20}, { 0, 21}, { 0, 22}, { 0, 23}, { 0, 24},
-{ 0, 25}, { 0, 26}, { 0, 27}, { 0, 28}, { 0, 29}, { 0, 30}, { 0, 31}, { 0, 32},
-{ 0, 33}, { 0, 34}, { 0, 35}, { 0, 36}, { 0, 37}, { 0, 38}, { 0, 39}, { 0, 40},
-{ 0, 41}, { 0, 42}, { 0, 43}, { 0, 44}, { 0, 45}, { 0, 46}, { 0, 47}, { 0, 48},
-{ 0, 49}, { 0, 50}, { 0, 51}, { 0, 52}, { 0, 53}, { 0, 54}, { 0, 55}, { 0, 56},
-{ 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 1, 5}, { 1, 6}, { 1, 7}, { 1, 8},
-{ 1, 9}, { 1, 10}, { 1, 11}, { 1, 12}, { 1, 13}, { 1, 14}, { 1, 15}, { 1, 16},
-{ 1, 17}, { 1, 18}, { 1, 19}, { 1, 20}, { 2, 1}, { 2, 2}, { 2, 3}, { 2, 4},
-{ 2, 5}, { 2, 6}, { 2, 7}, { 2, 8}, { 2, 9}, { 2, 10}, { 3, 1}, { 3, 2},
-{ 3, 3}, { 3, 4}, { 3, 5}, { 3, 6}, { 3, 7}, { 4, 1}, { 4, 2}, { 4, 3},
-{ 4, 4}, { 4, 5}, { 4, 6}, { 5, 1}, { 5, 2}, { 5, 3}, { 5, 4}, { 5, 5},
-{ 6, 1}, { 6, 2}, { 6, 3}, { 6, 4}, { 7, 1}, { 7, 2}, { 7, 3}, { 8, 1},
-{ 8, 2}, { 8, 3}, { 9, 1}, { 9, 2}, { 9, 3}, { 10, 1}, { 10, 2}, { 11, 1},
-{ 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1}, { 0, 1}, { 0, 2},
-{ 0, 3}, { 0, 4}, { 1, 1}, { 1, 2}, { 1, 3}, { 2, 1}, { 2, 2}, { 2, 3},
-{ 3, 1}, { 3, 2}, { 4, 1}, { 4, 2}, { 5, 1}, { 5, 2}, { 6, 1}, { 6, 2},
-{ 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1}, { 10, 2},
-{ 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1}, { 14, 2},
-{ 15, 1}, { 16, 1}
-},
-{
-{ 0, 1}, { 0, 2}, { 0, 3}, { 0, 4}, { 0, 5}, { 0, 6}, { 0, 7}, { 0, 8},
-{ 0, 9}, { 0, 10}, { 0, 11}, { 0, 12}, { 0, 13}, { 0, 14}, { 0, 15}, { 0, 16},
-{ 0, 17}, { 0, 18}, { 0, 19}, { 0, 20}, { 0, 21}, { 0, 22}, { 0, 23}, { 0, 24},
-{ 0, 25}, { 0, 26}, { 0, 27}, { 0, 28}, { 0, 29}, { 0, 30}, { 0, 31}, { 0, 32},
-{ 1, 1}, { 1, 2}, { 1, 3}, { 1, 4}, { 1, 5}, { 1, 6}, { 1, 7}, { 1, 8},
-{ 1, 9}, { 1, 10}, { 1, 11}, { 1, 12}, { 1, 13}, { 2, 1}, { 2, 2}, { 2, 3},
-{ 2, 4}, { 2, 5}, { 2, 6}, { 2, 7}, { 2, 8}, { 3, 1}, { 3, 2}, { 3, 3},
-{ 3, 4}, { 3, 5}, { 3, 6}, { 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 4, 5},
-{ 5, 1}, { 5, 2}, { 5, 3}, { 5, 4}, { 6, 1}, { 6, 2}, { 6, 3}, { 6, 4},
-{ 7, 1}, { 7, 2}, { 7, 3}, { 8, 1}, { 8, 2}, { 8, 3}, { 9, 1}, { 9, 2},
-{ 9, 3}, { 10, 1}, { 10, 2}, { 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1},
-{ 13, 2}, { 14, 1}, { 14, 2}, { 15, 1}, { 15, 2}, { 16, 1}, { 16, 2}, { 17, 1},
-{ 17, 2}, { 18, 1}, { 18, 2}, { 19, 1}, { 19, 2}, { 20, 1}, { 20, 2}, { 21, 1},
-{ 21, 2}, { 22, 1}, { 22, 2}, { 23, 1}, { 24, 1}, { 0, 1}, { 0, 2}, { 0, 3},
-{ 0, 4}, { 1, 1}, { 1, 2}, { 1, 3}, { 2, 1}, { 2, 2}, { 2, 3}, { 3, 1},
-{ 3, 2}, { 3, 3}, { 4, 1}, { 4, 2}, { 5, 1}, { 5, 2}, { 6, 1}, { 6, 2},
-{ 7, 1}, { 7, 2}, { 8, 1}, { 8, 2}, { 9, 1}, { 9, 2}, { 10, 1}, { 10, 2},
-{ 11, 1}, { 11, 2}, { 12, 1}, { 12, 2}, { 13, 1}, { 13, 2}, { 14, 1}, { 14, 2},
-{ 15, 1}, { 15, 2}, { 16, 1}, { 16, 2}, { 17, 1}, { 17, 2}, { 18, 1}, { 18, 2},
-{ 19, 1}, { 19, 2}, { 20, 1}, { 20, 2}, { 21, 1}, { 21, 2}, { 22, 1}, { 22, 2},
-{ 23, 1}, { 23, 2}, { 24, 1}, { 24, 2}, { 25, 1}, { 25, 2}, { 26, 1}, { 26, 2},
-{ 27, 1}, { 27, 2}, { 28, 1}, { 28, 2}, { 29, 1}, { 30, 1}
-}
-};
-
-static const uint8_t vc1_delta_level_table[AC_MODES][31] = {
-{
- 19, 15, 12, 11, 6, 5, 4, 4, 4, 4,
- 3, 3, 3, 3, 3, 3, 2, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-},
-{
- 23, 11, 8, 7, 5, 5, 4, 4, 3, 3,
- 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
-},
-{
- 16, 11, 8, 7, 5, 4, 4, 3, 3, 3,
- 3, 3, 3, 3, 2, 2, 1, 1, 1, 1,
- 1
-},
-{
- 14, 9, 5, 4, 4, 4, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-},
-{
- 27, 10, 5, 4, 3, 3, 3, 3, 2, 2,
- 1, 1, 1, 1, 1
-},
-{
- 12, 6, 4, 3, 3, 3, 3, 2, 2, 2,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
-},
-{
- 56, 20, 10, 7, 6, 5, 4, 3, 3, 3,
- 2, 2, 2, 2, 1
-},
-{
- 32, 13, 8, 6, 5, 4, 4, 3, 3, 3,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 1, 1
-}
-};
-
-static const uint8_t vc1_last_delta_level_table[AC_MODES][44] = {
-{
- 6, 5, 4, 4, 3, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1
-},
-{
- 9, 5, 4, 4, 3, 3, 3, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
-},
-{
- 4, 4, 3, 3, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
-},
-{
- 5, 4, 3, 3, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1
-},
-{
- 8, 3, 2, 2, 2, 2, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-},
-{
- 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-},
-{
- 4, 3, 3, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 1
-},
-{
- 4, 3, 3, 3, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
- 1
-}
-};
-
-static const uint8_t vc1_delta_run_table[AC_MODES][57] = {
-{
- -1, 30, 17, 15, 9, 5, 4, 3, 3, 3,
- 3, 3, 2, 1, 1, 1, 0, 0, 0,
- 0
-},
-{
- -1, 26, 16, 11, 7, 5, 3, 3, 2, 1,
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0
-},
-{
- -1, 20, 15, 13, 6, 4, 3, 3, 2, 1,
- 1, 1, 0, 0, 0, 0, 0
-},
-{
- -1, 29, 15, 12, 5, 2, 1, 1, 1, 1,
- 0, 0, 0, 0, 0
-},
-{
- -1, 14, 9, 7, 3, 2, 1, 1, 1, 1,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
-},
-{
- -1, 26, 10, 6, 2, 1, 1, 0, 0, 0,
- 0, 0, 0
-},
-{
- -1, 14, 13, 9, 6, 5, 4, 3, 2, 2,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0
-},
-{
- -1, 24, 22, 9, 6, 4, 3, 2, 2, 1,
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0
-}
-};
-
-static const uint8_t vc1_last_delta_run_table[AC_MODES][10] = {
-{
- -1, 37, 15, 4, 3, 1, 0
-},
-{
- -1, 36, 14, 6, 3, 1, 0, 0, 0,
- 0
-},
-{
- -1, 26, 13, 3, 1
-},
-{
- -1, 43, 15, 3, 1, 0
-},
-{
- -1, 20, 6, 1, 0, 0, 0, 0, 0
-},
-{
- -1, 40, 1, 0
-},
-{
- -1, 16, 14, 2, 0
-},
-{
- -1, 30, 28, 3, 0
-}
-};
-
-#endif /* AVCODEC_VC1ACDATA_H */
+++ /dev/null
-/*
- * VC-1 and WMV3 decoder
- * copyright (c) 2006 Konstantin Shishkov
- * (c) 2005 anonymous, Alex Beregszaszi, Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * VC-1 tables.
- */
-
-#ifndef AVCODEC_VC1DATA_H
-#define AVCODEC_VC1DATA_H
-
-#include <stdint.h>
-#include "libavutil/rational.h"
-#include "get_bits.h"
-
-/** Table for conversion between TTBLK and TTMB */
-extern const int ff_vc1_ttblk_to_tt[3][8];
-
-extern const int ff_vc1_ttfrm_to_tt[4];
-
-/** MV P mode - the 5th element is only used for mode 1 */
-extern const uint8_t ff_vc1_mv_pmode_table[2][5];
-extern const uint8_t ff_vc1_mv_pmode_table2[2][4];
-
-extern const int ff_vc1_fps_nr[5], ff_vc1_fps_dr[2];
-extern const uint8_t ff_vc1_pquant_table[3][32];
-
-/** @name VC-1 VLC tables and defines
- * @todo TODO move this into the context
- */
-//@{
-#define VC1_BFRACTION_VLC_BITS 7
-extern VLC ff_vc1_bfraction_vlc;
-#define VC1_IMODE_VLC_BITS 4
-extern VLC ff_vc1_imode_vlc;
-#define VC1_NORM2_VLC_BITS 3
-extern VLC ff_vc1_norm2_vlc;
-#define VC1_NORM6_VLC_BITS 9
-extern VLC ff_vc1_norm6_vlc;
-/* Could be optimized, one table only needs 8 bits */
-#define VC1_TTMB_VLC_BITS 9 //12
-extern VLC ff_vc1_ttmb_vlc[3];
-#define VC1_MV_DIFF_VLC_BITS 9 //15
-extern VLC ff_vc1_mv_diff_vlc[4];
-#define VC1_CBPCY_P_VLC_BITS 9 //14
-extern VLC ff_vc1_cbpcy_p_vlc[4];
-#define VC1_4MV_BLOCK_PATTERN_VLC_BITS 6
-extern VLC ff_vc1_4mv_block_pattern_vlc[4];
-#define VC1_TTBLK_VLC_BITS 5
-extern VLC ff_vc1_ttblk_vlc[3];
-#define VC1_SUBBLKPAT_VLC_BITS 6
-extern VLC ff_vc1_subblkpat_vlc[3];
-
-extern VLC ff_vc1_ac_coeff_table[8];
-//@}
-
-
-#if 0 //original bfraction from vc9data.h, not conforming to standard
-/* Denominator used for ff_vc1_bfraction_lut */
-#define B_FRACTION_DEN 840
-
-/* bfraction is fractional, we scale to the GCD 3*5*7*8 = 840 */
-extern const int16_t ff_vc1_bfraction_lut[23];
-#else
-/* Denominator used for ff_vc1_bfraction_lut */
-#define B_FRACTION_DEN 256
-
-/* pre-computed scales for all bfractions and base=256 */
-extern const int16_t ff_vc1_bfraction_lut[23];
-#endif
-
-extern const uint8_t ff_vc1_bfraction_bits[23];
-extern const uint8_t ff_vc1_bfraction_codes[23];
-
-//Same as H.264
-extern const AVRational ff_vc1_pixel_aspect[16];
-
-/* BitPlane IMODE - such a small table... */
-extern const uint8_t ff_vc1_imode_codes[7];
-extern const uint8_t ff_vc1_imode_bits[7];
-
-/* Normal-2 imode */
-extern const uint8_t ff_vc1_norm2_codes[4];
-extern const uint8_t ff_vc1_norm2_bits[4];
-extern const uint16_t ff_vc1_norm6_codes[64];
-extern const uint8_t ff_vc1_norm6_bits[64];
-/* Normal-6 imode */
-extern const uint8_t ff_vc1_norm6_spec[64][5];
-
-/* 4MV Block pattern VLC tables */
-extern const uint8_t ff_vc1_4mv_block_pattern_codes[4][16];
-extern const uint8_t ff_vc1_4mv_block_pattern_bits[4][16];
-
-extern const uint8_t wmv3_dc_scale_table[32];
-
-/* P-Picture CBPCY VLC tables */
-extern const uint16_t ff_vc1_cbpcy_p_codes[4][64];
-extern const uint8_t ff_vc1_cbpcy_p_bits[4][64];
-
-/* MacroBlock Transform Type: 7.1.3.11, p89
- * 8x8:B
- * 8x4:B:btm 8x4:B:top 8x4:B:both,
- * 4x8:B:right 4x8:B:left 4x8:B:both
- * 4x4:B 8x8:MB
- * 8x4:MB:btm 8x4:MB:top 8x4,MB,both
- * 4x8,MB,right 4x8,MB,left
- * 4x4,MB */
-extern const uint16_t ff_vc1_ttmb_codes[3][16];
-
-extern const uint8_t ff_vc1_ttmb_bits[3][16];
-
-/* TTBLK (Transform Type per Block) tables */
-extern const uint8_t ff_vc1_ttblk_codes[3][8];
-extern const uint8_t ff_vc1_ttblk_bits[3][8];
-
-/* SUBBLKPAT tables, p93-94, reordered */
-extern const uint8_t ff_vc1_subblkpat_codes[3][15];
-extern const uint8_t ff_vc1_subblkpat_bits[3][15];
-
-/* MV differential tables, p265 */
-extern const uint16_t ff_vc1_mv_diff_codes[4][73];
-extern const uint8_t ff_vc1_mv_diff_bits[4][73];
-
-/* DC differentials low+hi-mo, p217 are the same as in msmpeg4data .h */
-
-/* Scantables/ZZ scan are at 11.9 (p262) and 8.1.1.12 (p10) */
-extern const int8_t ff_vc1_simple_progressive_4x4_zz [16];
-extern const int8_t ff_vc1_adv_progressive_8x4_zz [32];
-extern const int8_t ff_vc1_adv_progressive_4x8_zz [32];
-extern const int8_t ff_vc1_adv_interlaced_8x8_zz [64];
-extern const int8_t ff_vc1_adv_interlaced_8x4_zz [32];
-extern const int8_t ff_vc1_adv_interlaced_4x8_zz [32];
-extern const int8_t ff_vc1_adv_interlaced_4x4_zz [16];
-
-/* DQScale as specified in 8.1.3.9 - almost identical to 0x40000/i */
-extern const int32_t ff_vc1_dqscale[63];
-
-#endif /* AVCODEC_VC1DATA_H */
+++ /dev/null
-/*
- * The Video Decode and Presentation API for UNIX (VDPAU) is used for
- * hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1.
- *
- * Copyright (C) 2008 NVIDIA
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VDPAU_H
-#define AVCODEC_VDPAU_H
-
-/**
- * \defgroup Decoder VDPAU Decoder and Renderer
- *
- * VDPAU hardware acceleration has two modules
- * - VDPAU decoding
- * - VDPAU presentation
- *
- * The VDPAU decoding module parses all headers using FFmpeg
- * parsing mechanisms and uses VDPAU for the actual decoding.
- *
- * As per the current implementation, the actual decoding
- * and rendering (API calls) are done as part of the VDPAU
- * presentation (vo_vdpau.c) module.
- *
- * @{
- * \defgroup VDPAU_Decoding VDPAU Decoding
- * \ingroup Decoder
- * @{
- */
-
-#include <vdpau/vdpau.h>
-#include <vdpau/vdpau_x11.h>
-
-/** \brief The videoSurface is used for rendering. */
-#define FF_VDPAU_STATE_USED_FOR_RENDER 1
-
-/**
- * \brief The videoSurface is needed for reference/prediction.
- * The codec manipulates this.
- */
-#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2
-
-/**
- * \brief This structure is used as a callback between the FFmpeg
- * decoder (vd_) and presentation (vo_) module.
- * This is used for defining a video frame containing surface,
- * picture parameter, bitstream information etc which are passed
- * between the FFmpeg decoder and its clients.
- */
-struct vdpau_render_state {
- VdpVideoSurface surface; ///< Used as rendered surface, never changed.
-
- int state; ///< Holds FF_VDPAU_STATE_* values.
-
- /** picture parameter information for all supported codecs */
- union VdpPictureInfo {
- VdpPictureInfoH264 h264;
- VdpPictureInfoMPEG1Or2 mpeg;
- VdpPictureInfoVC1 vc1;
- VdpPictureInfoMPEG4Part2 mpeg4;
- } info;
-
- /** Describe size/location of the compressed video data.
- Set to 0 when freeing bitstream_buffers. */
- int bitstream_buffers_allocated;
- int bitstream_buffers_used;
- /** The user is responsible for freeing this buffer using av_freep(). */
- VdpBitstreamBuffer *bitstream_buffers;
-};
-
-/* @}*/
-
-#endif /* AVCODEC_VDPAU_H */
+++ /dev/null
-/*
- * Video Decode and Presentation API for UNIX (VDPAU) is used for
- * HW decode acceleration for MPEG-1/2, H.264 and VC-1.
- *
- * Copyright (C) 2008 NVIDIA
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VDPAU_INTERNAL_H
-#define AVCODEC_VDPAU_INTERNAL_H
-
-#include <stdint.h>
-#include "mpegvideo.h"
-
-void ff_vdpau_add_data_chunk(MpegEncContext *s, const uint8_t *buf,
- int buf_size);
-
-void ff_vdpau_mpeg_picture_complete(MpegEncContext *s, const uint8_t *buf,
- int buf_size, int slice_count);
-
-void ff_vdpau_h264_picture_start(MpegEncContext *s);
-void ff_vdpau_h264_set_reference_frames(MpegEncContext *s);
-void ff_vdpau_h264_picture_complete(MpegEncContext *s);
-
-void ff_vdpau_vc1_decode_picture(MpegEncContext *s, const uint8_t *buf,
- int buf_size);
-
-void ff_vdpau_mpeg4_decode_picture(MpegEncContext *s, const uint8_t *buf,
- int buf_size);
-
-#endif /* AVCODEC_VDPAU_INTERNAL_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Oded Shimon <ods15@ods15.dyndns.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VORBIS_H
-#define AVCODEC_VORBIS_H
-
-#include "avcodec.h"
-
-extern const float ff_vorbis_floor1_inverse_db_table[256];
-extern const float * const ff_vorbis_vwin[8];
-extern const uint8_t ff_vorbis_channel_layout_offsets[8][8];
-extern const int64_t ff_vorbis_channel_layouts[9];
-
-typedef struct {
- uint_fast16_t x;
- uint_fast16_t sort;
- uint_fast16_t low;
- uint_fast16_t high;
-} vorbis_floor1_entry;
-
-void ff_vorbis_ready_floor1_list(vorbis_floor1_entry * list, int values);
-unsigned int ff_vorbis_nth_root(unsigned int x, unsigned int n); // x^(1/n)
-int ff_vorbis_len2vlc(uint8_t *bits, uint32_t *codes, uint_fast32_t num);
-void ff_vorbis_floor1_render_list(vorbis_floor1_entry * list, int values,
- uint_fast16_t * y_list, int * flag,
- int multiplier, float * out, int samples);
-void vorbis_inverse_coupling(float *mag, float *ang, int blocksize);
-
-#define ilog(i) av_log2(2*(i))
-
-#endif /* AVCODEC_VORBIS_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Oded Shimon <ods15@ods15.dyndns.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VORBIS_ENC_DATA_H
-#define AVCODEC_VORBIS_ENC_DATA_H
-
-#include <stdint.h>
-
-static const uint8_t codebook0[] = {
- 2, 10, 8, 14, 7, 12, 11, 14, 1, 5, 3, 7, 4, 9, 7, 13,
-};
-
-static const uint8_t codebook1[] = {
- 1, 4, 2, 6, 3, 7, 5, 7,
-};
-
-static const uint8_t codebook2[] = {
- 1, 5, 7, 21, 5, 8, 9, 21, 10, 9, 12, 20, 20, 16, 20,
- 20, 4, 8, 9, 20, 6, 8, 9, 20, 11, 11, 13, 20, 20, 15,
- 17, 20, 9, 11, 14, 20, 8, 10, 15, 20, 11, 13, 15, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 13, 20, 20, 20, 18, 18, 20, 20,
- 20, 20, 20, 20, 3, 6, 8, 20, 6, 7, 9, 20, 10, 9, 12,
- 20, 20, 20, 20, 20, 5, 7, 9, 20, 6, 6, 9, 20, 10, 9,
- 12, 20, 20, 20, 20, 20, 8, 10, 13, 20, 8, 9, 12, 20, 11,
- 10, 12, 20, 20, 20, 20, 20, 18, 20, 20, 20, 15, 17, 18, 20,
- 18, 17, 18, 20, 20, 20, 20, 20, 7, 10, 12, 20, 8, 9, 11,
- 20, 14, 13, 14, 20, 20, 20, 20, 20, 6, 9, 12, 20, 7, 8,
- 11, 20, 12, 11, 13, 20, 20, 20, 20, 20, 9, 11, 15, 20, 8,
- 10, 14, 20, 12, 11, 14, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 11, 16, 18,
- 20, 15, 15, 17, 20, 20, 17, 20, 20, 20, 20, 20, 20, 9, 14,
- 16, 20, 12, 12, 15, 20, 17, 15, 18, 20, 20, 20, 20, 20, 16,
- 19, 18, 20, 15, 16, 20, 20, 17, 17, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20,
-};
-
-static const uint8_t codebook3[] = {
- 2, 3, 7, 13, 4, 4, 7, 15, 8, 6, 9, 17, 21, 16, 15,
- 21, 2, 5, 7, 11, 5, 5, 7, 14, 9, 7, 10, 16, 17, 15,
- 16, 21, 4, 7, 10, 17, 7, 7, 9, 15, 11, 9, 11, 16, 21,
- 18, 15, 21, 18, 21, 21, 21, 15, 17, 17, 19, 21, 19, 18, 20,
- 21, 21, 21, 20,
-};
-
-static const uint8_t codebook4[] = {
- 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6,
- 5, 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5,
- 7, 5, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, 10, 6, 10,
- 6, 11, 6, 11, 7, 11, 7, 12, 7, 12, 7, 12, 7, 12, 7,
- 12, 7, 12, 7, 12, 7, 12, 8, 13, 8, 12, 8, 12, 8, 13,
- 8, 13, 9, 13, 9, 13, 9, 13, 9, 12, 10, 12, 10, 13, 10,
- 14, 11, 14, 12, 14, 13, 14, 13, 14, 14, 15, 16, 15, 15, 15,
- 14, 15, 17, 21, 22, 22, 21, 22, 22, 22, 22, 22, 22, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
-};
-
-static const uint8_t codebook5[] = {
- 2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 6,
- 5, 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 6, 9, 6,
- 9, 6,
-};
-
-static const uint8_t codebook6[] = {
- 8, 5, 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9,
- 4, 9, 4, 9, 4, 9, 4, 8, 4, 8, 4, 9, 5, 9, 5,
- 9, 5, 9, 5, 9, 6, 10, 6, 10, 7, 10, 8, 11, 9, 11,
- 11, 12, 13, 12, 14, 13, 15, 13, 15, 14, 16, 14, 17, 15, 17,
- 15, 15, 16, 16, 15, 16, 16, 16, 15, 18, 16, 15, 17, 17, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19,
-};
-
-static const uint8_t codebook7[] = {
- 1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6,
- 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 9, 8, 10, 9,
- 10, 9,
-};
-
-static const uint8_t codebook8[] = {
- 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 5, 5, 6, 5, 6,
- 5, 7, 5, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 9, 8,
- 9, 9, 9, 9, 10, 10, 10, 11, 9, 12, 9, 12, 9, 15, 10,
- 14, 9, 13, 10, 13, 10, 12, 10, 12, 10, 13, 10, 12, 11, 13,
- 11, 14, 12, 13, 13, 14, 14, 13, 14, 15, 14, 16, 13, 13, 14,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 15, 15,
-};
-
-static const uint8_t codebook9[] = {
- 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 4, 5,
- 5, 5,
-};
-
-static const uint8_t codebook10[] = {
- 3, 3, 4, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 5,
- 7, 5, 8, 6, 8, 6, 9, 7, 10, 7, 10, 8, 10, 8, 11,
- 9, 11,
-};
-
-static const uint8_t codebook11[] = {
- 3, 7, 3, 8, 3, 10, 3, 8, 3, 9, 3, 8, 4, 9, 4,
- 9, 5, 9, 6, 10, 6, 9, 7, 11, 7, 12, 9, 13, 10, 13,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12,
-};
-
-static const uint8_t codebook12[] = {
- 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4,
- 5, 4,
-};
-
-static const uint8_t codebook13[] = {
- 4, 2, 4, 2, 5, 3, 5, 4, 6, 6, 6, 7, 7, 8, 7,
- 8, 7, 8, 7, 9, 8, 9, 8, 9, 8, 10, 8, 11, 9, 12,
- 9, 12,
-};
-
-static const uint8_t codebook14[] = {
- 2, 5, 2, 6, 3, 6, 4, 7, 4, 7, 5, 9, 5, 11, 6,
- 11, 6, 11, 7, 11, 6, 11, 6, 11, 9, 11, 8, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10,
- 10, 10, 10,
-};
-
-static const uint8_t codebook15[] = {
- 5, 6, 11, 11, 11, 11, 10, 10, 12, 11, 5, 2, 11, 5, 6,
- 6, 7, 9, 11, 13, 13, 10, 7, 11, 6, 7, 8, 9, 10, 12,
- 11, 5, 11, 6, 8, 7, 9, 11, 14, 15, 11, 6, 6, 8, 4,
- 5, 7, 8, 10, 13, 10, 5, 7, 7, 5, 5, 6, 8, 10, 11,
- 10, 7, 7, 8, 6, 5, 5, 7, 9, 9, 11, 8, 8, 11, 8,
- 7, 6, 6, 7, 9, 12, 11, 10, 13, 9, 9, 7, 7, 7, 9,
- 11, 13, 12, 15, 12, 11, 9, 8, 8, 8,
-};
-
-static const uint8_t codebook16[] = {
- 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0,
- 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0,
- 7, 8, 8, 0, 0, 0, 0, 0, 0, 6, 7, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7,
- 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 0, 0, 0,
- 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0,
- 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0,
- 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0,
- 7, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8,
- 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, 0,
- 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0,
- 0, 0, 0, 8, 9, 8,
-};
-
-static const uint8_t codebook17[] = {
- 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0,
- 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0,
- 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 10, 10, 0, 0,
- 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 10, 0, 0,
- 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, 10, 10, 0, 0,
- 0, 0, 0, 0, 0, 8, 10, 10, 0, 0, 0, 9, 9, 0, 0,
- 0, 9, 9, 0, 0, 0, 10, 10,
-};
-
-static const uint8_t codebook18[] = {
- 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 9, 9,
-};
-
-static const uint8_t codebook19[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0,
- 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5,
- 6, 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0,
- 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0,
- 0, 0, 0, 0, 0, 0, 9, 9,
-};
-
-static const uint8_t codebook20[] = {
- 1, 3, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 7,
- 8, 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7,
- 8, 8, 8, 8, 10, 10, 0, 0, 0, 8, 8, 8, 8, 10, 10,
- 0, 0, 0, 9, 9, 9, 9, 10, 10, 0, 0, 0, 9, 9, 9,
- 9, 10, 10, 0, 0, 0, 10, 10, 10, 10, 11, 11, 0, 0, 0,
- 0, 0, 10, 10, 11, 11,
-};
-
-static const uint8_t codebook21[] = {
- 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 10, 10,
- 11, 10, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10,
- 10, 10, 11, 11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,
- 10, 10, 10, 10, 11, 11, 0, 6, 6, 7, 7, 8, 8, 9, 9,
- 9, 9, 10, 10, 11, 11, 11, 11, 0, 0, 0, 7, 7, 8, 8,
- 9, 9, 9, 9, 10, 10, 11, 11, 11, 12, 0, 0, 0, 8, 8,
- 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 0, 0, 0,
- 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 0,
- 0, 0, 9, 9, 9, 9, 10, 10, 10, 10, 11, 10, 11, 11, 12,
- 12, 0, 0, 0, 0, 0, 9, 9, 10, 10, 10, 10, 11, 11, 11,
- 11, 12, 12, 0, 0, 0, 0, 0, 9, 8, 9, 9, 10, 10, 11,
- 11, 12, 12, 12, 12, 0, 0, 0, 0, 0, 8, 8, 9, 9, 10,
- 10, 11, 11, 12, 11, 12, 12, 0, 0, 0, 0, 0, 9, 10, 10,
- 10, 11, 11, 11, 11, 12, 12, 13, 13, 0, 0, 0, 0, 0, 0,
- 0, 10, 10, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0, 0, 0,
- 0, 0, 0, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 0, 0,
- 0, 0, 0, 0, 0, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13,
- 0, 0, 0, 0, 0, 0, 0, 11, 11, 12, 12, 12, 12, 13, 13,
- 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12,
- 13, 13, 13, 13,
-};
-
-static const uint8_t codebook22[] = {
- 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7, 10, 9, 9,
- 11, 9, 9, 4, 7, 7, 10, 9, 9, 11, 9, 9, 7, 10, 10,
- 11, 11, 10, 12, 11, 11, 6, 9, 9, 11, 10, 10, 11, 10, 10,
- 6, 9, 9, 11, 10, 10, 11, 10, 10, 7, 11, 11, 11, 11, 11,
- 12, 11, 11, 6, 9, 9, 11, 10, 10, 11, 10, 10, 6, 9, 9,
- 11, 10, 10, 11, 10, 10,
-};
-
-static const uint8_t codebook23[] = {
- 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 10, 5, 5, 6,
- 6, 7, 7, 8, 8, 8, 8, 10, 5, 5, 6, 6, 7, 7, 8,
- 8, 8, 8, 10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 10,
- 10, 10, 7, 7, 8, 7, 8, 8, 8, 8, 10, 10, 10, 8, 8,
- 8, 8, 8, 8, 8, 8, 10, 10, 10, 7, 8, 8, 8, 8, 8,
- 8, 8, 10, 10, 10, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10,
- 10, 10, 10, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 9,
- 9, 8, 8, 9, 8, 10, 10, 10, 10, 10, 8, 8, 8, 8, 8,
- 8,
-};
-
-static const uint8_t codebook24[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 6, 5,
- 5, 7, 7, 8, 8, 8, 8, 9, 9, 10, 10, 7, 5, 5, 7,
- 7, 8, 8, 8, 8, 9, 9, 11, 10, 0, 8, 8, 8, 8, 9,
- 9, 9, 9, 10, 10, 11, 11, 0, 8, 8, 8, 8, 9, 9, 9,
- 9, 10, 10, 11, 11, 0, 12, 12, 9, 9, 10, 10, 10, 10, 11,
- 11, 11, 12, 0, 13, 13, 9, 9, 10, 10, 10, 10, 11, 11, 12,
- 12, 0, 0, 0, 10, 10, 10, 10, 11, 11, 12, 12, 12, 12, 0,
- 0, 0, 10, 10, 10, 10, 11, 11, 12, 12, 12, 12, 0, 0, 0,
- 14, 14, 11, 11, 11, 11, 12, 12, 13, 13, 0, 0, 0, 14, 14,
- 11, 11, 11, 11, 12, 12, 13, 13, 0, 0, 0, 0, 0, 12, 12,
- 12, 12, 13, 13, 14, 13, 0, 0, 0, 0, 0, 13, 13, 12, 12,
- 13, 12, 14, 13,
-};
-
-static const uint8_t codebook25[] = {
- 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5,
- 6, 5, 5, 5, 5, 6, 6, 6, 5, 5,
-};
-
-static const uint8_t codebook26[] = {
- 1, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 9,
- 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 2, 9, 7, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11,
-};
-
-static const uint8_t codebook27[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 9, 10, 10, 10, 10,
- 6, 5, 5, 7, 7, 8, 8, 10, 8, 11, 10, 12, 12, 13, 13,
- 6, 5, 5, 7, 7, 8, 8, 10, 9, 11, 11, 12, 12, 13, 12,
- 18, 8, 8, 8, 8, 9, 9, 10, 9, 11, 10, 12, 12, 13, 13,
- 18, 8, 8, 8, 8, 9, 9, 10, 10, 11, 11, 13, 12, 14, 13,
- 18, 11, 11, 9, 9, 10, 10, 11, 11, 11, 12, 13, 12, 13, 14,
- 18, 11, 11, 9, 8, 11, 10, 11, 11, 11, 11, 12, 12, 14, 13,
- 18, 18, 18, 10, 11, 10, 11, 12, 12, 12, 12, 13, 12, 14, 13,
- 18, 18, 18, 10, 11, 11, 9, 12, 11, 12, 12, 12, 13, 13, 13,
- 18, 18, 17, 14, 14, 11, 11, 12, 12, 13, 12, 14, 12, 14, 13,
- 18, 18, 18, 14, 14, 11, 10, 12, 9, 12, 13, 13, 13, 13, 13,
- 18, 18, 17, 16, 18, 13, 13, 12, 12, 13, 11, 14, 12, 14, 14,
- 17, 18, 18, 17, 18, 13, 12, 13, 10, 12, 11, 14, 14, 14, 14,
- 17, 18, 18, 18, 18, 15, 16, 12, 12, 13, 10, 14, 12, 14, 15,
- 18, 18, 18, 16, 17, 16, 14, 12, 11, 13, 10, 13, 13, 14, 15,
-};
-
-static const uint8_t codebook28[] = {
- 2, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
- 8, 8, 10, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 10, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9, 9, 9, 10, 7, 7, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 7, 7, 8, 8,
- 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
- 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10,
- 10, 10, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10,
- 9, 10, 10, 10, 11, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 11, 10, 11, 11, 11, 9, 9, 9, 9, 9, 9, 10,
- 10, 9, 9, 10, 9, 11, 10, 11, 11, 11, 9, 9, 9, 9, 9,
- 9, 9, 9, 10, 10, 10, 9, 11, 11, 11, 11, 11, 9, 9, 9,
- 9, 10, 10, 9, 9, 9, 9, 10, 9, 11, 11, 11, 11, 11, 11,
- 11, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11,
- 11, 11, 11, 10, 9, 10, 10, 9, 10, 9, 9, 10, 9, 11, 10,
- 10, 11, 11, 11, 11, 9, 10, 9, 9, 9, 9, 10, 10, 10, 10,
- 11, 11, 11, 11, 11, 11, 10, 10, 10, 9, 9, 10, 9, 10, 9,
- 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 9, 9, 9, 9,
- 9, 10, 10, 10,
-};
-
-static const struct {
- int dim;
- int len;
- int real_len;
- const uint8_t *clens;
- int lookup;
- float min;
- float delta;
- const uint8_t *quant;
-} cvectors[] = {
- { 2, 16, 16, codebook0, 0 },
- { 2, 8, 8, codebook1, 0 },
- { 2, 256, 256, codebook2, 0 },
- { 2, 64, 64, codebook3, 0 },
- { 2, 128, 128, codebook4, 0 },
- { 2, 32, 32, codebook5, 0 },
- { 2, 96, 96, codebook6, 0 },
- { 2, 32, 32, codebook7, 0 },
- { 2, 96, 96, codebook8, 0 },
- { 2, 17, 17, codebook9, 0 },
- { 2, 32, 32, codebook10, 0 },
- { 2, 78, 78, codebook11, 0 },
- { 2, 17, 17, codebook12, 0 },
- { 2, 32, 32, codebook13, 0 },
- { 2, 78, 78, codebook14, 0 },
- { 2, 100, 100, codebook15, 0 },
- { 8, 1641, 6561, codebook16, 1, -1.0, 1.0, (const uint8_t[]){ 1, 0, 2, } },
- { 4, 443, 625, codebook17, 1, -2.0, 1.0, (const uint8_t[]){ 2, 1, 3, 0, 4, } },
- { 4, 105, 625, codebook18, 1, -2.0, 1.0, (const uint8_t[]){ 2, 1, 3, 0, 4, } },
- { 2, 68, 81, codebook19, 1, -4.0, 1.0, (const uint8_t[]){ 4, 3, 5, 2, 6, 1, 7, 0, 8, } },
- { 2, 81, 81, codebook20, 1, -4.0, 1.0, (const uint8_t[]){ 4, 3, 5, 2, 6, 1, 7, 0, 8, } },
- { 2, 289, 289, codebook21, 1, -8.0, 1.0, (const uint8_t[]){ 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, 0, 16, } },
- { 4, 81, 81, codebook22, 1, -11.0, 11.0, (const uint8_t[]){ 1, 0, 2, } },
- { 2, 121, 121, codebook23, 1, -5.0, 1.0, (const uint8_t[]){ 5, 4, 6, 3, 7, 2, 8, 1, 9, 0, 10, } },
- { 2, 169, 169, codebook24, 1, -30.0, 5.0, (const uint8_t[]){ 6, 5, 7, 4, 8, 3, 9, 2, 10, 1, 11, 0, 12, } },
- { 2, 25, 25, codebook25, 1, -2.0, 1.0, (const uint8_t[]){ 2, 1, 3, 0, 4, } },
- { 2, 169, 169, codebook26, 1, -1530.0, 255.0, (const uint8_t[]){ 6, 5, 7, 4, 8, 3, 9, 2, 10, 1, 11, 0, 12, } },
- { 2, 225, 225, codebook27, 1, -119.0, 17.0, (const uint8_t[]){ 7, 6, 8, 5, 9, 4, 10, 3, 11, 2, 12, 1, 13, 0, 14, } },
- { 2, 289, 289, codebook28, 1, -8.0, 1.0, (const uint8_t[]){ 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, 0, 16, } },
-};
-
-static const struct {
- int dim;
- int subclass;
- int masterbook;
- const int *nbooks;
-} floor_classes[] = {
- { 3, 0, 0, (const int[]){ 4 } },
- { 4, 1, 0, (const int[]){ 5, 6 } },
- { 3, 1, 1, (const int[]){ 7, 8 } },
- { 4, 2, 2, (const int[]){ -1, 9, 10, 11 } },
- { 3, 2, 3, (const int[]){ -1, 12, 13, 14 } },
-};
-
-#endif /* AVCODEC_VORBIS_ENC_DATA_H */
+++ /dev/null
-/*
- * copyright (C) 2003 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP3DATA_H
-#define AVCODEC_VP3DATA_H
-
-#include <stdint.h>
-#include <stdlib.h>
-
-/* these coefficients dequantize intraframe Y plane coefficients
- * (note: same as JPEG) */
-static const int16_t vp31_intra_y_dequant[64] =
-{ 16, 11, 10, 16, 24, 40, 51, 61,
- 12, 12, 14, 19, 26, 58, 60, 55,
- 14, 13, 16, 24, 40, 57, 69, 56,
- 14, 17, 22, 29, 51, 87, 80, 62,
- 18, 22, 37, 58, 68, 109, 103, 77,
- 24, 35, 55, 64, 81, 104, 113, 92,
- 49, 64, 78, 87, 103, 121, 120, 101,
- 72, 92, 95, 98, 112, 100, 103, 99
-};
-
-/* these coefficients dequantize intraframe C plane coefficients
- * (note: same as JPEG) */
-static const int16_t vp31_intra_c_dequant[64] =
-{ 17, 18, 24, 47, 99, 99, 99, 99,
- 18, 21, 26, 66, 99, 99, 99, 99,
- 24, 26, 56, 99, 99, 99, 99, 99,
- 47, 66, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99
-};
-
-/* these coefficients dequantize interframe coefficients (all planes) */
-static const int16_t vp31_inter_dequant[64] =
-{ 16, 16, 16, 20, 24, 28, 32, 40,
- 16, 16, 20, 24, 28, 32, 40, 48,
- 16, 20, 24, 28, 32, 40, 48, 64,
- 20, 24, 28, 32, 40, 48, 64, 64,
- 24, 28, 32, 40, 48, 64, 64, 64,
- 28, 32, 40, 48, 64, 64, 64, 96,
- 32, 40, 48, 64, 64, 64, 96, 128,
- 40, 48, 64, 64, 64, 96, 128, 128
-};
-
-static const int16_t vp31_dc_scale_factor[64] =
-{ 220, 200, 190, 180, 170, 170, 160, 160,
- 150, 150, 140, 140, 130, 130, 120, 120,
- 110, 110, 100, 100, 90, 90, 90, 80,
- 80, 80, 70, 70, 70, 60, 60, 60,
- 60, 50, 50, 50, 50, 40, 40, 40,
- 40, 40, 30, 30, 30, 30, 30, 30,
- 30, 20, 20, 20, 20, 20, 20, 20,
- 20, 10, 10, 10, 10, 10, 10, 10
-};
-
-static const uint32_t vp31_ac_scale_factor[64] =
-{ 500, 450, 400, 370, 340, 310, 285, 265,
- 245, 225, 210, 195, 185, 180, 170, 160,
- 150, 145, 135, 130, 125, 115, 110, 107,
- 100, 96, 93, 89, 85, 82, 75, 74,
- 70, 68, 64, 60, 57, 56, 52, 50,
- 49, 45, 44, 43, 40, 38, 37, 35,
- 33, 32, 30, 29, 28, 25, 24, 22,
- 21, 19, 18, 17, 15, 13, 12, 10
-};
-
-static const uint8_t vp31_filter_limit_values[64] =
-{ 30, 25, 20, 20, 15, 15, 14, 14,
- 13, 13, 12, 12, 11, 11, 10, 10,
- 9, 9, 8, 8, 7, 7, 7, 7,
- 6, 6, 6, 6, 5, 5, 5, 5,
- 4, 4, 4, 4, 3, 3, 3, 3,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static const uint16_t superblock_run_length_vlc_table[34][2] = {
- { 0, 1 },
-
- { 4, 3 }, { 5, 3 },
-
- { 0xC, 4 }, { 0xD, 4 },
-
- { 0x38, 6 }, { 0x39, 6 }, { 0x3A, 6 }, { 0x3B, 6 },
-
- { 0xF0, 8 }, { 0xF1, 8 }, { 0xF2, 8 }, { 0xF3, 8 },
- { 0xF4, 8 }, { 0xF5, 8 }, { 0xF6, 8 }, { 0xF7, 8 },
-
- { 0x3E0, 10 }, { 0x3E1, 10 }, { 0x3E2, 10 }, { 0x3E3, 10 },
- { 0x3E4, 10 }, { 0x3E5, 10 }, { 0x3E6, 10 }, { 0x3E7, 10 },
- { 0x3E8, 10 }, { 0x3E9, 10 }, { 0x3EA, 10 }, { 0x3EB, 10 },
- { 0x3EC, 10 }, { 0x3ED, 10 }, { 0x3EE, 10 }, { 0x3EF, 10 },
-
- { 0x3F, 6 } /* this last VLC is a special case for reading 12 more
- bits from stream and adding the value 34 */
-};
-
-static const uint16_t fragment_run_length_vlc_table[30][2] = {
- /* 1 -> 2 */
- { 0x0, 2 }, { 0x1, 2 },
-
- /* 3 -> 4 */
- { 0x4, 3 }, { 0x5, 3 },
-
- /* 5 -> 6 */
- { 0xC, 4 }, { 0xD, 4 },
-
- /* 7 -> 10 */
- { 0x38, 6 }, { 0x39, 6 },
- { 0x3A, 6 }, { 0x3B, 6 },
-
- /* 11 -> 14 */
- { 0x78, 7 }, { 0x79, 7 },
- { 0x7A, 7 }, { 0x7B, 7 },
-
- /* 15 -> 30 */
- { 0x1F0, 9 }, { 0x1F1, 9 }, { 0x1F2, 9 }, { 0x1F3, 9 },
- { 0x1F4, 9 }, { 0x1F5, 9 }, { 0x1F6, 9 }, { 0x1F7, 9 },
- { 0x1F8, 9 }, { 0x1F9, 9 }, { 0x1FA, 9 }, { 0x1FB, 9 },
- { 0x1FC, 9 }, { 0x1FD, 9 }, { 0x1FE, 9 }, { 0x1FF, 9 }
-};
-
-static const uint8_t mode_code_vlc_table[8][2] = {
- { 0, 1 }, { 2, 2 },
- { 6, 3 }, { 14, 4 },
- { 30, 5 }, { 62, 6 },
- { 126, 7 }, { 127, 7 }
-};
-
-static const uint8_t motion_vector_vlc_table[63][2] = {
- { 0, 3 },
- { 1, 3 },
- { 2, 3 },
-
- { 6, 4 }, { 7, 4 },
-
- { 8, 4 }, { 9, 4 },
-
- { 40, 6 }, { 41, 6 }, { 42, 6 }, { 43, 6 },
- { 44, 6 }, { 45, 6 }, { 46, 6 }, { 47, 6 },
-
- { 96, 7 }, { 97, 7 }, { 98, 7 }, { 99, 7 },
- { 100, 7 }, { 101, 7 }, { 102, 7 }, { 103, 7 },
- { 104, 7 }, { 105, 7 }, { 106, 7 }, { 107, 7 },
- { 108, 7 }, { 109, 7 }, { 110, 7 }, { 111, 7 },
-
- { 0xE0, 8 }, { 0xE1, 8 }, { 0xE2, 8 }, { 0xE3, 8 },
- { 0xE4, 8 }, { 0xE5, 8 }, { 0xE6, 8 }, { 0xE7, 8 },
- { 0xE8, 8 }, { 0xE9, 8 }, { 0xEA, 8 }, { 0xEB, 8 },
- { 0xEC, 8 }, { 0xED, 8 }, { 0xEE, 8 }, { 0xEF, 8 },
-
- { 0xF0, 8 }, { 0xF1, 8 }, { 0xF2, 8 }, { 0xF3, 8 },
- { 0xF4, 8 }, { 0xF5, 8 }, { 0xF6, 8 }, { 0xF7, 8 },
- { 0xF8, 8 }, { 0xF9, 8 }, { 0xFA, 8 }, { 0xFB, 8 },
- { 0xFC, 8 }, { 0xFD, 8 }, { 0xFE, 8 }, { 0xFF, 8 }
-};
-
-static const int motion_vector_table[63] = {
- 0, 1, -1,
- 2, -2,
- 3, -3,
- 4, -4, 5, -5, 6, -6, 7, -7,
- 8, -8, 9, -9, 10, -10, 11, -11, 12, -12, 13, -13, 14, -14, 15, -15,
- 16, -16, 17, -17, 18, -18, 19, -19, 20, -20, 21, -21, 22, -22, 23, -23,
- 24, -24, 25, -25, 26, -26, 27, -27, 28, -28, 29, -29, 30, -30, 31, -31
-};
-
-static const int8_t fixed_motion_vector_table[64] = {
- 0, 0, 1, -1, 2, -2, 3, -3,
- 4, -4, 5, -5, 6, -6, 7, -7,
- 8, -8, 9, -9, 10, -10, 11, -11,
- 12, -12, 13, -13, 14, -14, 15, -15,
- 16, -16, 17, -17, 18, -18, 19, -19,
- 20, -20, 21, -21, 22, -22, 23, -23,
- 24, -24, 25, -25, 26, -26, 27, -27,
- 28, -28, 29, -29, 30, -30, 31, -31
-};
-
-/* only tokens 0..6 indicate eob runs */
-static const int eob_run_base[7] = {
- 1, 2, 3, 4, 8, 16, 0
-};
-static const int eob_run_get_bits[7] = {
- 0, 0, 0, 2, 3, 4, 12
-};
-
-static const int zero_run_base[32] = {
- 0, 0, 0, 0, 0, 0, 0, /* 0..6 are never used */
- 0, 0, /* 7..8 */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9..22 */
- 1, 2, 3, 4, 5, /* 23..27 */
- 6, 10, 1, 2 /* 28..31 */
-};
-static const int zero_run_get_bits[32] = {
- 0, 0, 0, 0, 0, 0, 0, /* 0..6 are never used */
- 3, 6, /* 7..8 */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9..22 */
- 0, 0, 0, 0, 0, /* 23..27 */
- 2, 3, 0, 1 /* 28..31 */
-};
-
-static const int coeff_get_bits[32] = {
- 0, 0, 0, 0, 0, 0, 0, /* 0..6 are never used */
- 0, 0, 0, 0, 0, 0, /* 7..12 use constant coeffs */
- 1, 1, 1, 1, /* 13..16 are constants but still need sign bit */
- 2, 3, 4, 5, 6, 10, /* 17..22, for reading large coeffs */
- 1, 1, 1, 1, 1, 1, 1, /* 23..29 are constants but still need sign bit */
- 2, 2 /* 30..31 */
-};
-
-static const int16_t coeff_table_token_7_8[1] = { 0 };
-static const int16_t coeff_table_token_9[1] = { 1 };
-static const int16_t coeff_table_token_10[1] = { -1 };
-static const int16_t coeff_table_token_11[1] = { 2 };
-static const int16_t coeff_table_token_12[1] = { -2 };
-
-static const int16_t coeff_table_token_13[2] = { 3, -3 };
-static const int16_t coeff_table_token_14[2] = { 4, -4 };
-static const int16_t coeff_table_token_15[2] = { 5, -5 };
-static const int16_t coeff_table_token_16[2] = { 6, -6 };
-
-static const int16_t coeff_table_token_23_24_25_26_27_28_29[2] = { 1, -1 };
-static const int16_t coeff_table_token_30[4] = { 2, 3, -2, -3 };
-static const int16_t coeff_table_token_31[4] = { 2, 3, -2, -3 };
-
-static const int16_t coeff_table_token_17[4] = {
- 7, 8, -7, -8
-};
-
-static const int16_t coeff_table_token_18[8] = {
- 9, 10, 11, 12, -9, -10, -11, -12
-};
-
-static const int16_t coeff_table_token_19[16] = {
- 13, 14, 15, 16, 17, 18, 19, 20, -13, -14, -15, -16, -17, -18, -19, -20
-};
-
-static const int16_t coeff_table_token_20[32] = {
- 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36,
- -21, -22, -23, -24, -25, -26, -27, -28,
- -29, -30, -31, -32, -33, -34, -35, -36
-};
-
-static const int16_t coeff_table_token_21[64] = {
- 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68,
- -37, -38, -39, -40, -41, -42, -43, -44,
- -45, -46, -47, -48, -49, -50, -51, -52,
- -53, -54, -55, -56, -57, -58, -59, -60,
- -61, -62, -63, -64, -65, -66, -67, -68
-};
-
-static const int16_t coeff_table_token_22[1024] = {
- 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332,
- 333, 334, 335, 336, 337, 338, 339, 340,
- 341, 342, 343, 344, 345, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356,
- 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 383, 384, 385, 386, 387, 388,
- 389, 390, 391, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444,
- 445, 446, 447, 448, 449, 450, 451, 452,
- 453, 454, 455, 456, 457, 458, 459, 460,
- 461, 462, 463, 464, 465, 466, 467, 468,
- 469, 470, 471, 472, 473, 474, 475, 476,
- 477, 478, 479, 480, 481, 482, 483, 484,
- 485, 486, 487, 488, 489, 490, 491, 492,
- 493, 494, 495, 496, 497, 498, 499, 500,
- 501, 502, 503, 504, 505, 506, 507, 508,
- 509, 510, 511, 512, 513, 514, 515, 516,
- 517, 518, 519, 520, 521, 522, 523, 524,
- 525, 526, 527, 528, 529, 530, 531, 532,
- 533, 534, 535, 536, 537, 538, 539, 540,
- 541, 542, 543, 544, 545, 546, 547, 548,
- 549, 550, 551, 552, 553, 554, 555, 556,
- 557, 558, 559, 560, 561, 562, 563, 564,
- 565, 566, 567, 568, 569, 570, 571, 572,
- 573, 574, 575, 576, 577, 578, 579, 580,
- -69, -70, -71, -72, -73, -74, -75, -76,
- -77, -78, -79, -80, -81, -82, -83, -84,
- -85, -86, -87, -88, -89, -90, -91, -92,
- -93, -94, -95, -96, -97, -98, -99, -100,
- -101, -102, -103, -104, -105, -106, -107, -108,
- -109, -110, -111, -112, -113, -114, -115, -116,
- -117, -118, -119, -120, -121, -122, -123, -124,
- -125, -126, -127, -128, -129, -130, -131, -132,
- -133, -134, -135, -136, -137, -138, -139, -140,
- -141, -142, -143, -144, -145, -146, -147, -148,
- -149, -150, -151, -152, -153, -154, -155, -156,
- -157, -158, -159, -160, -161, -162, -163, -164,
- -165, -166, -167, -168, -169, -170, -171, -172,
- -173, -174, -175, -176, -177, -178, -179, -180,
- -181, -182, -183, -184, -185, -186, -187, -188,
- -189, -190, -191, -192, -193, -194, -195, -196,
- -197, -198, -199, -200, -201, -202, -203, -204,
- -205, -206, -207, -208, -209, -210, -211, -212,
- -213, -214, -215, -216, -217, -218, -219, -220,
- -221, -222, -223, -224, -225, -226, -227, -228,
- -229, -230, -231, -232, -233, -234, -235, -236,
- -237, -238, -239, -240, -241, -242, -243, -244,
- -245, -246, -247, -248, -249, -250, -251, -252,
- -253, -254, -255, -256, -257, -258, -259, -260,
- -261, -262, -263, -264, -265, -266, -267, -268,
- -269, -270, -271, -272, -273, -274, -275, -276,
- -277, -278, -279, -280, -281, -282, -283, -284,
- -285, -286, -287, -288, -289, -290, -291, -292,
- -293, -294, -295, -296, -297, -298, -299, -300,
- -301, -302, -303, -304, -305, -306, -307, -308,
- -309, -310, -311, -312, -313, -314, -315, -316,
- -317, -318, -319, -320, -321, -322, -323, -324,
- -325, -326, -327, -328, -329, -330, -331, -332,
- -333, -334, -335, -336, -337, -338, -339, -340,
- -341, -342, -343, -344, -345, -346, -347, -348,
- -349, -350, -351, -352, -353, -354, -355, -356,
- -357, -358, -359, -360, -361, -362, -363, -364,
- -365, -366, -367, -368, -369, -370, -371, -372,
- -373, -374, -375, -376, -377, -378, -379, -380,
- -381, -382, -383, -384, -385, -386, -387, -388,
- -389, -390, -391, -392, -393, -394, -395, -396,
- -397, -398, -399, -400, -401, -402, -403, -404,
- -405, -406, -407, -408, -409, -410, -411, -412,
- -413, -414, -415, -416, -417, -418, -419, -420,
- -421, -422, -423, -424, -425, -426, -427, -428,
- -429, -430, -431, -432, -433, -434, -435, -436,
- -437, -438, -439, -440, -441, -442, -443, -444,
- -445, -446, -447, -448, -449, -450, -451, -452,
- -453, -454, -455, -456, -457, -458, -459, -460,
- -461, -462, -463, -464, -465, -466, -467, -468,
- -469, -470, -471, -472, -473, -474, -475, -476,
- -477, -478, -479, -480, -481, -482, -483, -484,
- -485, -486, -487, -488, -489, -490, -491, -492,
- -493, -494, -495, -496, -497, -498, -499, -500,
- -501, -502, -503, -504, -505, -506, -507, -508,
- -509, -510, -511, -512, -513, -514, -515, -516,
- -517, -518, -519, -520, -521, -522, -523, -524,
- -525, -526, -527, -528, -529, -530, -531, -532,
- -533, -534, -535, -536, -537, -538, -539, -540,
- -541, -542, -543, -544, -545, -546, -547, -548,
- -549, -550, -551, -552, -553, -554, -555, -556,
- -557, -558, -559, -560, -561, -562, -563, -564,
- -565, -566, -567, -568, -569, -570, -571, -572,
- -573, -574, -575, -576, -577, -578, -579, -580
-};
-
-static const int16_t *const coeff_tables[32] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- coeff_table_token_7_8,
-
- coeff_table_token_7_8,
- coeff_table_token_9,
- coeff_table_token_10,
- coeff_table_token_11,
- coeff_table_token_12,
- coeff_table_token_13,
- coeff_table_token_14,
- coeff_table_token_15,
-
- coeff_table_token_16,
- coeff_table_token_17,
- coeff_table_token_18,
- coeff_table_token_19,
- coeff_table_token_20,
- coeff_table_token_21,
- coeff_table_token_22,
- coeff_table_token_23_24_25_26_27_28_29,
-
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_23_24_25_26_27_28_29,
- coeff_table_token_30,
- coeff_table_token_31
-};
-
-static const uint16_t dc_bias[16][32][2] = {
- { /* DC bias table 0 */
- { 0x2D, 6 },
- { 0x26, 7 },
- { 0x166, 9 },
- { 0x4E, 8 },
- { 0x2CE, 10 },
- { 0x59E, 11 },
- { 0x27D, 11 },
- { 0x8, 5 },
- { 0x4F9, 12 },
- { 0xF, 4 },
- { 0xE, 4 },
- { 0x1B, 5 },
- { 0x6, 4 },
- { 0x8, 4 },
- { 0x5, 4 },
- { 0x1A, 5 },
- { 0x15, 5 },
- { 0x7, 4 },
- { 0xC, 4 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0x9, 4 },
- { 0x17, 5 },
- { 0x29, 6 },
- { 0x28, 6 },
- { 0xB2, 8 },
- { 0x4F8, 12 },
- { 0x59F, 11 },
- { 0x9E, 9 },
- { 0x13F, 10 },
- { 0x12, 6 },
- { 0x58, 7 }
- },
- { /* DC bias table 1 */
- { 0x10, 5 },
- { 0x47, 7 },
- { 0x1FF, 9 },
- { 0x8C, 8 },
- { 0x3FC, 10 },
- { 0x46A, 11 },
- { 0x469, 11 },
- { 0x22, 6 },
- { 0x11A1, 13 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0x4, 4 },
- { 0x5, 4 },
- { 0x9, 4 },
- { 0x6, 4 },
- { 0x1E, 5 },
- { 0x16, 5 },
- { 0x7, 4 },
- { 0xC, 4 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xA, 4 },
- { 0x17, 5 },
- { 0x7D, 7 },
- { 0x7E, 7 },
- { 0x11B, 9 },
- { 0x8D1, 12 },
- { 0x3FD, 10 },
- { 0x46B, 11 },
- { 0x11A0, 13 },
- { 0x7C, 7 },
- { 0xFE, 8 }
- },
- { /* DC bias table 2 */
- { 0x16, 5 },
- { 0x20, 6 },
- { 0x86, 8 },
- { 0x87, 8 },
- { 0x367, 10 },
- { 0x6CC, 11 },
- { 0x6CB, 11 },
- { 0x6E, 7 },
- { 0x366D, 14 },
- { 0xF, 4 },
- { 0xE, 4 },
- { 0x4, 4 },
- { 0x5, 4 },
- { 0xA, 4 },
- { 0x6, 4 },
- { 0x1A, 5 },
- { 0x11, 5 },
- { 0x7, 4 },
- { 0xC, 4 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0x9, 4 },
- { 0x17, 5 },
- { 0x6F, 7 },
- { 0x6D, 7 },
- { 0x364, 10 },
- { 0xD9A, 12 },
- { 0x6CA, 11 },
- { 0x1B37, 13 },
- { 0x366C, 14 },
- { 0x42, 7 },
- { 0xD8, 8 }
- },
- { /* DC bias table 3 */
- { 0x0, 4 },
- { 0x2D, 6 },
- { 0xF7, 8 },
- { 0x58, 7 },
- { 0x167, 9 },
- { 0x2CB, 10 },
- { 0x2CA, 10 },
- { 0xE, 6 },
- { 0x1661, 13 },
- { 0x3, 3 },
- { 0x2, 3 },
- { 0x8, 4 },
- { 0x9, 4 },
- { 0xD, 4 },
- { 0x2, 4 },
- { 0x1F, 5 },
- { 0x17, 5 },
- { 0x1, 4 },
- { 0xC, 4 },
- { 0xE, 4 },
- { 0xA, 4 },
- { 0x6, 5 },
- { 0x78, 7 },
- { 0xF, 6 },
- { 0x7A, 7 },
- { 0x164, 9 },
- { 0x599, 11 },
- { 0x2CD, 10 },
- { 0xB31, 12 },
- { 0x1660, 13 },
- { 0x79, 7 },
- { 0xF6, 8 }
- },
- { /* DC bias table 4 */
- { 0x3, 4 },
- { 0x3C, 6 },
- { 0xF, 7 },
- { 0x7A, 7 },
- { 0x1D, 8 },
- { 0x20, 9 },
- { 0x72, 10 },
- { 0x6, 6 },
- { 0x399, 13 },
- { 0x4, 3 },
- { 0x5, 3 },
- { 0x5, 4 },
- { 0x6, 4 },
- { 0xE, 4 },
- { 0x4, 4 },
- { 0x0, 4 },
- { 0x19, 5 },
- { 0x2, 4 },
- { 0xD, 4 },
- { 0x7, 4 },
- { 0x1F, 5 },
- { 0x30, 6 },
- { 0x11, 8 },
- { 0x31, 6 },
- { 0x5, 6 },
- { 0x21, 9 },
- { 0xE7, 11 },
- { 0x38, 9 },
- { 0x1CD, 12 },
- { 0x398, 13 },
- { 0x7B, 7 },
- { 0x9, 7 }
- },
- { /* DC bias table 5 */
- { 0x9, 4 },
- { 0x2, 5 },
- { 0x74, 7 },
- { 0x7, 6 },
- { 0xEC, 8 },
- { 0xD1, 9 },
- { 0x1A6, 10 },
- { 0x6, 6 },
- { 0xD21, 13 },
- { 0x5, 3 },
- { 0x6, 3 },
- { 0x8, 4 },
- { 0x7, 4 },
- { 0xF, 4 },
- { 0x4, 4 },
- { 0x0, 4 },
- { 0x1C, 5 },
- { 0x2, 4 },
- { 0x5, 4 },
- { 0x3, 4 },
- { 0xC, 5 },
- { 0x35, 7 },
- { 0x1A7, 10 },
- { 0x1B, 6 },
- { 0x77, 7 },
- { 0x1A5, 10 },
- { 0x349, 11 },
- { 0xD0, 9 },
- { 0x691, 12 },
- { 0xD20, 13 },
- { 0x75, 7 },
- { 0xED, 8 }
- },
- { /* DC bias table 6 */
- { 0xA, 4 },
- { 0xC, 5 },
- { 0x12, 6 },
- { 0x1B, 6 },
- { 0xB7, 8 },
- { 0x16C, 9 },
- { 0x99, 9 },
- { 0x5A, 7 },
- { 0x16D8, 13 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x0, 3 },
- { 0x5, 4 },
- { 0x17, 5 },
- { 0xE, 5 },
- { 0x2, 4 },
- { 0x3, 4 },
- { 0xF, 5 },
- { 0x1A, 6 },
- { 0x4D, 8 },
- { 0x2DB3, 14 },
- { 0x2C, 6 },
- { 0x11, 6 },
- { 0x2DA, 10 },
- { 0x5B7, 11 },
- { 0x98, 9 },
- { 0xB6D, 12 },
- { 0x2DB2, 14 },
- { 0x10, 6 },
- { 0x27, 7 }
- },
- { /* DC bias table 7 */
- { 0xD, 4 },
- { 0xF, 5 },
- { 0x1D, 6 },
- { 0x8, 5 },
- { 0x51, 7 },
- { 0x56, 8 },
- { 0xAF, 9 },
- { 0x2A, 7 },
- { 0x148A, 13 },
- { 0x7, 3 },
- { 0x0, 2 },
- { 0x8, 4 },
- { 0x9, 4 },
- { 0xC, 4 },
- { 0x6, 4 },
- { 0x17, 5 },
- { 0xB, 5 },
- { 0x16, 5 },
- { 0x15, 5 },
- { 0x9, 5 },
- { 0x50, 7 },
- { 0xAE, 9 },
- { 0x2917, 14 },
- { 0x1C, 6 },
- { 0x14, 6 },
- { 0x290, 10 },
- { 0x523, 11 },
- { 0x149, 9 },
- { 0xA44, 12 },
- { 0x2916, 14 },
- { 0x53, 7 },
- { 0xA5, 8 }
- },
- { /* DC bias table 8 */
- { 0x1, 4 },
- { 0x1D, 6 },
- { 0xF5, 8 },
- { 0xF4, 8 },
- { 0x24D, 10 },
- { 0x499, 11 },
- { 0x498, 11 },
- { 0x1, 5 },
- { 0x21, 6 },
- { 0x6, 3 },
- { 0x5, 3 },
- { 0x6, 4 },
- { 0x5, 4 },
- { 0x2, 4 },
- { 0x7, 5 },
- { 0x25, 6 },
- { 0x7B, 7 },
- { 0x1C, 6 },
- { 0x20, 6 },
- { 0xD, 6 },
- { 0x48, 7 },
- { 0x92, 8 },
- { 0x127, 9 },
- { 0xE, 4 },
- { 0x4, 4 },
- { 0x11, 5 },
- { 0xC, 6 },
- { 0x3C, 6 },
- { 0xF, 5 },
- { 0x0, 5 },
- { 0x1F, 5 },
- { 0x13, 5 }
- },
- { /* DC bias table 9 */
- { 0x5, 4 },
- { 0x3C, 6 },
- { 0x40, 7 },
- { 0xD, 7 },
- { 0x31, 9 },
- { 0x61, 10 },
- { 0x60, 10 },
- { 0x2, 5 },
- { 0xF5, 8 },
- { 0x6, 3 },
- { 0x5, 3 },
- { 0x7, 4 },
- { 0x6, 4 },
- { 0x2, 4 },
- { 0x9, 5 },
- { 0x25, 6 },
- { 0x7, 6 },
- { 0x21, 6 },
- { 0x24, 6 },
- { 0x10, 6 },
- { 0x41, 7 },
- { 0xF4, 8 },
- { 0x19, 8 },
- { 0xE, 4 },
- { 0x3, 4 },
- { 0x11, 5 },
- { 0x11, 6 },
- { 0x3F, 6 },
- { 0x3E, 6 },
- { 0x7B, 7 },
- { 0x0, 4 },
- { 0x13, 5 }
- },
- { /* DC bias table 10 */
- { 0xA, 4 },
- { 0x7, 5 },
- { 0x1, 6 },
- { 0x9, 6 },
- { 0x131, 9 },
- { 0x261, 10 },
- { 0x260, 10 },
- { 0x15, 6 },
- { 0x1, 7 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x8, 4 },
- { 0x7, 4 },
- { 0x6, 4 },
- { 0x12, 5 },
- { 0x2F, 6 },
- { 0x14, 6 },
- { 0x27, 6 },
- { 0x2D, 6 },
- { 0x16, 6 },
- { 0x4D, 7 },
- { 0x99, 8 },
- { 0x0, 7 },
- { 0x4, 4 },
- { 0x1, 4 },
- { 0x5, 5 },
- { 0x17, 6 },
- { 0x2E, 6 },
- { 0x2C, 6 },
- { 0x8, 6 },
- { 0x6, 5 },
- { 0x1, 5 }
- },
- { /* DC bias table 11 */
- { 0x0, 3 },
- { 0xE, 5 },
- { 0x17, 6 },
- { 0x2A, 6 },
- { 0x10, 7 },
- { 0xF9, 10 },
- { 0xF8, 10 },
- { 0x1E, 7 },
- { 0x3F, 8 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x6, 4 },
- { 0xF, 5 },
- { 0x5, 5 },
- { 0x16, 6 },
- { 0x29, 6 },
- { 0x2B, 6 },
- { 0x15, 6 },
- { 0x50, 7 },
- { 0x11, 7 },
- { 0x7D, 9 },
- { 0x4, 4 },
- { 0x17, 5 },
- { 0x6, 5 },
- { 0x14, 6 },
- { 0x2C, 6 },
- { 0x2D, 6 },
- { 0xE, 6 },
- { 0x9, 6 },
- { 0x51, 7 }
- },
- { /* DC bias table 12 */
- { 0x2, 3 },
- { 0x18, 5 },
- { 0x2F, 6 },
- { 0xD, 5 },
- { 0x53, 7 },
- { 0x295, 10 },
- { 0x294, 10 },
- { 0xA4, 8 },
- { 0x7C, 8 },
- { 0x0, 2 },
- { 0x7, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x1B, 5 },
- { 0xC, 5 },
- { 0x28, 6 },
- { 0x6A, 7 },
- { 0x1E, 6 },
- { 0x1D, 6 },
- { 0x69, 7 },
- { 0xD7, 8 },
- { 0x7D, 8 },
- { 0x14B, 9 },
- { 0x19, 5 },
- { 0x16, 5 },
- { 0x2E, 6 },
- { 0x1C, 6 },
- { 0x2B, 6 },
- { 0x2A, 6 },
- { 0x68, 7 },
- { 0x3F, 7 },
- { 0xD6, 8 }
- },
- { /* DC bias table 13 */
- { 0x2, 3 },
- { 0x1B, 5 },
- { 0xC, 5 },
- { 0x18, 5 },
- { 0x29, 6 },
- { 0x7F, 8 },
- { 0x2F0, 10 },
- { 0x198, 9 },
- { 0x179, 9 },
- { 0x0, 2 },
- { 0x7, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x1A, 5 },
- { 0xD, 5 },
- { 0x2A, 6 },
- { 0x64, 7 },
- { 0x1E, 6 },
- { 0x67, 7 },
- { 0x5F, 7 },
- { 0xCD, 8 },
- { 0x7E, 8 },
- { 0x2F1, 10 },
- { 0x16, 5 },
- { 0xE, 5 },
- { 0x2E, 6 },
- { 0x65, 7 },
- { 0x2B, 6 },
- { 0x28, 6 },
- { 0x3E, 7 },
- { 0xBD, 8 },
- { 0x199, 9 }
- },
- { /* DC bias table 14 */
- { 0x2, 3 },
- { 0x7, 4 },
- { 0x16, 5 },
- { 0x6, 4 },
- { 0x36, 6 },
- { 0x5C, 7 },
- { 0x15D, 9 },
- { 0x15C, 9 },
- { 0x2BF, 10 },
- { 0x0, 2 },
- { 0x7, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x18, 5 },
- { 0x34, 6 },
- { 0x2A, 6 },
- { 0x5E, 7 },
- { 0x6A, 7 },
- { 0x64, 7 },
- { 0x5D, 7 },
- { 0xCB, 8 },
- { 0xAD, 8 },
- { 0x2BE, 10 },
- { 0x14, 5 },
- { 0x33, 6 },
- { 0x6E, 7 },
- { 0x5F, 7 },
- { 0x6F, 7 },
- { 0x6B, 7 },
- { 0xCA, 8 },
- { 0xAC, 8 },
- { 0x15E, 9 }
- },
- { /* DC bias table 15 */
- { 0xF, 4 },
- { 0x1D, 5 },
- { 0x18, 5 },
- { 0xB, 4 },
- { 0x19, 5 },
- { 0x29, 6 },
- { 0xD6, 8 },
- { 0x551, 11 },
- { 0xAA1, 12 },
- { 0x1, 2 },
- { 0x0, 2 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x1B, 5 },
- { 0x38, 6 },
- { 0x28, 6 },
- { 0x57, 7 },
- { 0x6A, 7 },
- { 0x68, 7 },
- { 0x56, 7 },
- { 0xE5, 8 },
- { 0x155, 9 },
- { 0xAA0, 12 },
- { 0x73, 7 },
- { 0x69, 7 },
- { 0xD7, 8 },
- { 0xAB, 8 },
- { 0xE4, 8 },
- { 0xA9, 8 },
- { 0x151, 9 },
- { 0x150, 9 },
- { 0x2A9, 10 }
- }
-};
-
-static const uint16_t ac_bias_0[16][32][2] = {
- { /* AC bias group 1, table 0 */
- { 0x8, 5 },
- { 0x25, 7 },
- { 0x17A, 9 },
- { 0x2F7, 10 },
- { 0xBDB, 12 },
- { 0x17B4, 13 },
- { 0x2F6B, 14 },
- { 0x1D, 5 },
- { 0x2F6A, 14 },
- { 0x8, 4 },
- { 0x7, 4 },
- { 0x1, 4 },
- { 0x2, 4 },
- { 0xA, 4 },
- { 0x6, 4 },
- { 0x0, 4 },
- { 0x1C, 5 },
- { 0x9, 4 },
- { 0xD, 4 },
- { 0xF, 4 },
- { 0xC, 4 },
- { 0x3, 4 },
- { 0xA, 5 },
- { 0x16, 5 },
- { 0x13, 6 },
- { 0x5D, 7 },
- { 0x24, 7 },
- { 0xBC, 8 },
- { 0x5C, 7 },
- { 0x5EC, 11 },
- { 0xB, 5 },
- { 0x5F, 7 }
- },
- { /* AC bias group 1, table 1 */
- { 0xF, 5 },
- { 0x10, 6 },
- { 0x4B, 8 },
- { 0xC6, 8 },
- { 0x31D, 10 },
- { 0xC71, 12 },
- { 0xC70, 12 },
- { 0x1, 4 },
- { 0xC73, 12 },
- { 0x8, 4 },
- { 0x9, 4 },
- { 0x2, 4 },
- { 0x3, 4 },
- { 0xB, 4 },
- { 0x6, 4 },
- { 0x0, 4 },
- { 0x1C, 5 },
- { 0x5, 4 },
- { 0xD, 4 },
- { 0xF, 4 },
- { 0xA, 4 },
- { 0x19, 5 },
- { 0x13, 6 },
- { 0x1D, 5 },
- { 0x30, 6 },
- { 0x62, 7 },
- { 0x24, 7 },
- { 0x4A, 8 },
- { 0x18F, 9 },
- { 0xC72, 12 },
- { 0xE, 5 },
- { 0x11, 6 }
- },
- { /* AC bias group 1, table 2 */
- { 0x1B, 5 },
- { 0x3, 6 },
- { 0x8D, 8 },
- { 0x40, 7 },
- { 0x239, 10 },
- { 0x471, 11 },
- { 0x8E0, 12 },
- { 0x3, 4 },
- { 0x11C3, 13 },
- { 0xA, 4 },
- { 0x9, 4 },
- { 0x4, 4 },
- { 0x5, 4 },
- { 0xE, 4 },
- { 0x7, 4 },
- { 0x1, 4 },
- { 0x1E, 5 },
- { 0x6, 4 },
- { 0xC, 4 },
- { 0xB, 4 },
- { 0x2, 4 },
- { 0x0, 5 },
- { 0x41, 7 },
- { 0x1F, 5 },
- { 0x22, 6 },
- { 0x2, 6 },
- { 0x8F, 8 },
- { 0x8C, 8 },
- { 0x11D, 9 },
- { 0x11C2, 13 },
- { 0x1A, 5 },
- { 0x21, 6 }
- },
- { /* AC bias group 1, table 3 */
- { 0x1F, 5 },
- { 0x3, 6 },
- { 0x3, 7 },
- { 0x43, 7 },
- { 0xB, 9 },
- { 0x15, 10 },
- { 0x51, 12 },
- { 0x3, 4 },
- { 0x50, 12 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x4, 4 },
- { 0x6, 4 },
- { 0xE, 4 },
- { 0xA, 4 },
- { 0x1, 4 },
- { 0x1E, 5 },
- { 0x5, 4 },
- { 0x9, 4 },
- { 0x7, 4 },
- { 0x11, 5 },
- { 0x2, 6 },
- { 0x4, 8 },
- { 0x2, 4 },
- { 0x2D, 6 },
- { 0x20, 6 },
- { 0x42, 7 },
- { 0x1, 7 },
- { 0x0, 7 },
- { 0x29, 11 },
- { 0x17, 5 },
- { 0x2C, 6 }
- },
- { /* AC bias group 1, table 4 */
- { 0x3, 4 },
- { 0x1F, 6 },
- { 0x3A, 7 },
- { 0x5D, 7 },
- { 0x173, 9 },
- { 0x2E4, 10 },
- { 0x172D, 13 },
- { 0x4, 4 },
- { 0x172C, 13 },
- { 0xF, 4 },
- { 0xE, 4 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0xC, 4 },
- { 0xA, 4 },
- { 0x1, 4 },
- { 0x16, 5 },
- { 0x2, 4 },
- { 0x5, 4 },
- { 0x1A, 5 },
- { 0x2F, 6 },
- { 0x38, 7 },
- { 0x5CA, 11 },
- { 0x6, 4 },
- { 0x37, 6 },
- { 0x1E, 6 },
- { 0x3B, 7 },
- { 0x39, 7 },
- { 0xB8, 8 },
- { 0xB97, 12 },
- { 0x0, 4 },
- { 0x36, 6 }
- },
- { /* AC bias group 1, table 5 */
- { 0x6, 4 },
- { 0x37, 6 },
- { 0x5D, 7 },
- { 0xC, 6 },
- { 0xB9, 8 },
- { 0x2E3, 10 },
- { 0x5C4, 11 },
- { 0x4, 4 },
- { 0x1715, 13 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0x8, 4 },
- { 0x7, 4 },
- { 0xC, 4 },
- { 0x9, 4 },
- { 0x1D, 5 },
- { 0x16, 5 },
- { 0x1C, 5 },
- { 0x1A, 5 },
- { 0xB, 5 },
- { 0x5E, 7 },
- { 0x170, 9 },
- { 0x1714, 13 },
- { 0xA, 4 },
- { 0xA, 5 },
- { 0x36, 6 },
- { 0x5F, 7 },
- { 0x1B, 7 },
- { 0x1A, 7 },
- { 0xB8B, 12 },
- { 0x2, 4 },
- { 0x7, 5 }
- },
- { /* AC bias group 1, table 6 */
- { 0xC, 4 },
- { 0xB, 5 },
- { 0x79, 7 },
- { 0x22, 6 },
- { 0xF0, 8 },
- { 0x119, 9 },
- { 0x230, 10 },
- { 0x1D, 5 },
- { 0x8C4, 12 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xA, 4 },
- { 0x9, 4 },
- { 0xB, 4 },
- { 0x7, 4 },
- { 0x1C, 5 },
- { 0x3D, 6 },
- { 0xD, 5 },
- { 0x8, 5 },
- { 0x15, 6 },
- { 0x8D, 8 },
- { 0x118B, 13 },
- { 0x118A, 13 },
- { 0xD, 4 },
- { 0x10, 5 },
- { 0x9, 5 },
- { 0x14, 6 },
- { 0x47, 7 },
- { 0xF1, 8 },
- { 0x463, 11 },
- { 0x1F, 5 },
- { 0xC, 5 }
- },
- { /* AC bias group 1, table 7 */
- { 0x0, 3 },
- { 0x1A, 5 },
- { 0x33, 6 },
- { 0xC, 5 },
- { 0x46, 7 },
- { 0x1E3, 9 },
- { 0x3C5, 10 },
- { 0x17, 5 },
- { 0x1E21, 13 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x9, 4 },
- { 0xA, 4 },
- { 0x7, 4 },
- { 0x1B, 5 },
- { 0x3D, 6 },
- { 0x1B, 6 },
- { 0x22, 6 },
- { 0x79, 7 },
- { 0xF0, 8 },
- { 0x1E20, 13 },
- { 0x1E23, 13 },
- { 0x1E22, 13 },
- { 0xE, 4 },
- { 0x16, 5 },
- { 0x18, 5 },
- { 0x32, 6 },
- { 0x1A, 6 },
- { 0x47, 7 },
- { 0x789, 11 },
- { 0x1F, 5 },
- { 0x10, 5 }
- },
- { /* AC bias group 1, table 8 */
- { 0x1D, 5 },
- { 0x61, 7 },
- { 0x4E, 8 },
- { 0x9E, 9 },
- { 0x27C, 11 },
- { 0x9F5, 13 },
- { 0x9F4, 13 },
- { 0x3, 4 },
- { 0x60, 7 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0xB, 4 },
- { 0xA, 4 },
- { 0x9, 4 },
- { 0x5, 4 },
- { 0xD, 5 },
- { 0x31, 6 },
- { 0x8, 5 },
- { 0x38, 6 },
- { 0x12, 6 },
- { 0x26, 7 },
- { 0x13F, 10 },
- { 0x4FB, 12 },
- { 0xD, 4 },
- { 0x2, 4 },
- { 0xC, 5 },
- { 0x39, 6 },
- { 0x1C, 6 },
- { 0xF, 5 },
- { 0x1D, 6 },
- { 0x8, 4 },
- { 0x19, 5 }
- },
- { /* AC bias group 1, table 9 */
- { 0x7, 4 },
- { 0x19, 6 },
- { 0xAB, 8 },
- { 0xAA, 8 },
- { 0x119, 10 },
- { 0x461, 12 },
- { 0x460, 12 },
- { 0x1B, 5 },
- { 0x47, 8 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xC, 4 },
- { 0xB, 4 },
- { 0x9, 4 },
- { 0x5, 4 },
- { 0xD, 5 },
- { 0x35, 6 },
- { 0x3D, 6 },
- { 0x3C, 6 },
- { 0x18, 6 },
- { 0x22, 7 },
- { 0x8D, 9 },
- { 0x231, 11 },
- { 0xE, 4 },
- { 0x1F, 5 },
- { 0x9, 5 },
- { 0x2B, 6 },
- { 0x10, 6 },
- { 0x34, 6 },
- { 0x54, 7 },
- { 0x8, 4 },
- { 0x14, 5 }
- },
- { /* AC bias group 1, table 10 */
- { 0xC, 4 },
- { 0x5, 5 },
- { 0x8, 6 },
- { 0x5B, 7 },
- { 0x4D, 9 },
- { 0x131, 11 },
- { 0x261, 12 },
- { 0x1A, 5 },
- { 0x12, 7 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0xA, 4 },
- { 0x9, 4 },
- { 0x6, 4 },
- { 0x1B, 5 },
- { 0x6, 5 },
- { 0x1C, 6 },
- { 0x2C, 6 },
- { 0x15, 6 },
- { 0x5A, 7 },
- { 0x27, 8 },
- { 0x99, 10 },
- { 0x260, 12 },
- { 0xE, 4 },
- { 0x4, 4 },
- { 0xF, 5 },
- { 0x7, 5 },
- { 0x1D, 6 },
- { 0xB, 5 },
- { 0x14, 6 },
- { 0x8, 4 },
- { 0x17, 5 }
- },
- { /* AC bias group 1, table 11 */
- { 0xF, 4 },
- { 0x13, 5 },
- { 0x75, 7 },
- { 0x24, 6 },
- { 0x95, 8 },
- { 0x251, 10 },
- { 0x4A0, 11 },
- { 0x10, 5 },
- { 0xC8, 8 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x1, 4 },
- { 0x0, 4 },
- { 0x1A, 5 },
- { 0x11, 5 },
- { 0x2C, 6 },
- { 0x65, 7 },
- { 0x74, 7 },
- { 0x4B, 7 },
- { 0xC9, 8 },
- { 0x129, 9 },
- { 0x943, 12 },
- { 0x942, 12 },
- { 0x3, 3 },
- { 0xA, 4 },
- { 0x1C, 5 },
- { 0x18, 5 },
- { 0x33, 6 },
- { 0x17, 5 },
- { 0x2D, 6 },
- { 0x1B, 5 },
- { 0x3B, 6 }
- },
- { /* AC bias group 1, table 12 */
- { 0x3, 3 },
- { 0x1A, 5 },
- { 0x2D, 6 },
- { 0x38, 6 },
- { 0x28, 7 },
- { 0x395, 10 },
- { 0xE51, 12 },
- { 0x37, 6 },
- { 0xE4, 8 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0x1F, 5 },
- { 0x1E, 5 },
- { 0x17, 5 },
- { 0x3A, 6 },
- { 0x73, 7 },
- { 0x2A, 7 },
- { 0x2B, 7 },
- { 0x29, 7 },
- { 0x1CB, 9 },
- { 0x729, 11 },
- { 0x1CA1, 13 },
- { 0x1CA0, 13 },
- { 0x4, 3 },
- { 0xA, 4 },
- { 0x4, 4 },
- { 0x18, 5 },
- { 0x36, 6 },
- { 0xB, 5 },
- { 0x2C, 6 },
- { 0x19, 5 },
- { 0x3B, 6 }
- },
- { /* AC bias group 1, table 13 */
- { 0x4, 3 },
- { 0x4, 4 },
- { 0x3F, 6 },
- { 0x17, 5 },
- { 0x75, 7 },
- { 0x1F5, 9 },
- { 0x7D1, 11 },
- { 0x17, 6 },
- { 0x1F6, 9 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0x1B, 5 },
- { 0x1A, 5 },
- { 0xA, 5 },
- { 0x32, 6 },
- { 0x74, 7 },
- { 0xF8, 8 },
- { 0xF9, 8 },
- { 0x1F7, 9 },
- { 0x3E9, 10 },
- { 0xFA0, 12 },
- { 0x1F43, 13 },
- { 0x1F42, 13 },
- { 0x3, 3 },
- { 0xA, 4 },
- { 0x1E, 5 },
- { 0x1C, 5 },
- { 0x3B, 6 },
- { 0x18, 5 },
- { 0x16, 6 },
- { 0x16, 5 },
- { 0x33, 6 }
- },
- { /* AC bias group 1, table 14 */
- { 0x4, 3 },
- { 0x7, 4 },
- { 0x18, 5 },
- { 0x1E, 5 },
- { 0x36, 6 },
- { 0x31, 7 },
- { 0x177, 9 },
- { 0x77, 7 },
- { 0x176, 9 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0x1A, 5 },
- { 0x19, 5 },
- { 0x3A, 6 },
- { 0x19, 6 },
- { 0x5C, 7 },
- { 0xBA, 8 },
- { 0x61, 8 },
- { 0xC1, 9 },
- { 0x180, 10 },
- { 0x302, 11 },
- { 0x607, 12 },
- { 0x606, 12 },
- { 0x2, 3 },
- { 0xA, 4 },
- { 0x1F, 5 },
- { 0x1C, 5 },
- { 0x37, 6 },
- { 0x16, 5 },
- { 0x76, 7 },
- { 0xD, 5 },
- { 0x2F, 6 }
- },
- { /* AC bias group 1, table 15 */
- { 0x0, 3 },
- { 0xA, 4 },
- { 0x1A, 5 },
- { 0xC, 4 },
- { 0x1D, 5 },
- { 0x39, 6 },
- { 0x78, 7 },
- { 0x5E, 7 },
- { 0x393, 11 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x16, 5 },
- { 0xF, 5 },
- { 0x2E, 6 },
- { 0x5F, 7 },
- { 0x73, 8 },
- { 0xE5, 9 },
- { 0x1C8, 10 },
- { 0xE4A, 13 },
- { 0x1C97, 14 },
- { 0x1C96, 14 },
- { 0xE49, 13 },
- { 0xE48, 13 },
- { 0x4, 3 },
- { 0x6, 4 },
- { 0x1F, 5 },
- { 0x1B, 5 },
- { 0x1D, 6 },
- { 0x38, 6 },
- { 0x38, 7 },
- { 0x3D, 6 },
- { 0x79, 7 }
- }
-};
-
-static const uint16_t ac_bias_1[16][32][2] = {
- { /* AC bias group 2, table 0 */
- { 0xB, 5 },
- { 0x2B, 7 },
- { 0x54, 8 },
- { 0x1B7, 9 },
- { 0x6D9, 11 },
- { 0xDB1, 12 },
- { 0xDB0, 12 },
- { 0x2, 4 },
- { 0xAB, 9 },
- { 0x9, 4 },
- { 0xA, 4 },
- { 0x7, 4 },
- { 0x8, 4 },
- { 0xF, 4 },
- { 0xC, 4 },
- { 0x3, 4 },
- { 0x1D, 5 },
- { 0x4, 4 },
- { 0xB, 4 },
- { 0x6, 4 },
- { 0x1A, 5 },
- { 0x3, 6 },
- { 0xAA, 9 },
- { 0x1, 4 },
- { 0x0, 5 },
- { 0x14, 6 },
- { 0x6C, 7 },
- { 0xDA, 8 },
- { 0x2, 6 },
- { 0x36D, 10 },
- { 0x1C, 5 },
- { 0x37, 6 }
- },
- { /* AC bias group 2, table 1 */
- { 0x1D, 5 },
- { 0x4, 6 },
- { 0xB6, 8 },
- { 0x6A, 8 },
- { 0x5B9, 11 },
- { 0x16E1, 13 },
- { 0x16E0, 13 },
- { 0x7, 4 },
- { 0x16F, 9 },
- { 0xC, 4 },
- { 0xD, 4 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0xF, 4 },
- { 0xA, 4 },
- { 0x3, 4 },
- { 0x17, 5 },
- { 0x2, 4 },
- { 0x4, 4 },
- { 0x1C, 5 },
- { 0x2C, 6 },
- { 0x6B, 8 },
- { 0xB71, 12 },
- { 0x5, 4 },
- { 0x3, 5 },
- { 0x1B, 6 },
- { 0x5A, 7 },
- { 0x34, 7 },
- { 0x5, 6 },
- { 0x2DD, 10 },
- { 0x0, 4 },
- { 0xC, 5 }
- },
- { /* AC bias group 2, table 2 */
- { 0x3, 4 },
- { 0x7F, 7 },
- { 0xA1, 8 },
- { 0xA0, 8 },
- { 0x20C, 10 },
- { 0x834, 12 },
- { 0x106B, 13 },
- { 0x7, 4 },
- { 0x82, 8 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0x0, 3 },
- { 0x9, 4 },
- { 0x2, 4 },
- { 0x11, 5 },
- { 0x1E, 5 },
- { 0x15, 5 },
- { 0x3E, 6 },
- { 0x40, 7 },
- { 0x41B, 11 },
- { 0x106A, 13 },
- { 0x6, 4 },
- { 0xA, 5 },
- { 0x29, 6 },
- { 0x7E, 7 },
- { 0x51, 7 },
- { 0x21, 6 },
- { 0x107, 9 },
- { 0x4, 4 },
- { 0xB, 5 }
- },
- { /* AC bias group 2, table 3 */
- { 0x7, 4 },
- { 0x1B, 6 },
- { 0xF6, 8 },
- { 0xE9, 8 },
- { 0x3A1, 10 },
- { 0x740, 11 },
- { 0xE82, 12 },
- { 0x1F, 5 },
- { 0x1EF, 9 },
- { 0x1, 3 },
- { 0x2, 3 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0xD, 4 },
- { 0x8, 4 },
- { 0x1C, 5 },
- { 0x3, 5 },
- { 0x12, 5 },
- { 0x2, 5 },
- { 0x75, 7 },
- { 0x1D1, 9 },
- { 0x1D07, 13 },
- { 0x1D06, 13 },
- { 0xA, 4 },
- { 0x13, 5 },
- { 0x3B, 6 },
- { 0x1A, 6 },
- { 0x7A, 7 },
- { 0x3C, 6 },
- { 0x1EE, 9 },
- { 0x0, 4 },
- { 0xC, 5 }
- },
- { /* AC bias group 2, table 4 */
- { 0xD, 4 },
- { 0x3D, 6 },
- { 0x42, 7 },
- { 0x37, 7 },
- { 0xD9, 9 },
- { 0x362, 11 },
- { 0x6C6, 12 },
- { 0x1F, 5 },
- { 0x86, 8 },
- { 0x1, 3 },
- { 0x2, 3 },
- { 0xC, 4 },
- { 0xB, 4 },
- { 0xA, 4 },
- { 0x1, 4 },
- { 0xF, 5 },
- { 0x25, 6 },
- { 0x3C, 6 },
- { 0x1A, 6 },
- { 0x87, 8 },
- { 0x1B0, 10 },
- { 0xD8F, 13 },
- { 0xD8E, 13 },
- { 0xE, 4 },
- { 0x13, 5 },
- { 0xC, 5 },
- { 0x24, 6 },
- { 0x20, 6 },
- { 0x11, 5 },
- { 0x6D, 8 },
- { 0x0, 4 },
- { 0xE, 5 }
- },
- { /* AC bias group 2, table 5 */
- { 0x0, 3 },
- { 0x12, 5 },
- { 0x76, 7 },
- { 0x77, 7 },
- { 0x14D, 9 },
- { 0x533, 11 },
- { 0x14C9, 13 },
- { 0x13, 5 },
- { 0xA5, 8 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0x8, 4 },
- { 0x1A, 5 },
- { 0x2B, 6 },
- { 0x75, 7 },
- { 0x74, 7 },
- { 0xA7, 8 },
- { 0x298, 10 },
- { 0x14C8, 13 },
- { 0x14CB, 13 },
- { 0x14CA, 13 },
- { 0xF, 4 },
- { 0x1C, 5 },
- { 0x7, 5 },
- { 0x2A, 6 },
- { 0x28, 6 },
- { 0x1B, 5 },
- { 0xA4, 8 },
- { 0x2, 4 },
- { 0x6, 5 }
- },
- { /* AC bias group 2, table 6 */
- { 0x2, 3 },
- { 0x1A, 5 },
- { 0x2B, 6 },
- { 0x3A, 6 },
- { 0xED, 8 },
- { 0x283, 10 },
- { 0xA0A, 12 },
- { 0x4, 5 },
- { 0xA1, 8 },
- { 0x4, 3 },
- { 0x3, 3 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0x1F, 5 },
- { 0x6, 5 },
- { 0x77, 7 },
- { 0xA3, 8 },
- { 0xA2, 8 },
- { 0x140, 9 },
- { 0x1417, 13 },
- { 0x1416, 13 },
- { 0xA09, 12 },
- { 0xA08, 12 },
- { 0x0, 3 },
- { 0x1E, 5 },
- { 0x7, 5 },
- { 0x2A, 6 },
- { 0x29, 6 },
- { 0x1C, 5 },
- { 0xEC, 8 },
- { 0x1B, 5 },
- { 0x5, 5 }
- },
- { /* AC bias group 2, table 7 */
- { 0x2, 3 },
- { 0x2, 4 },
- { 0x18, 5 },
- { 0x1D, 5 },
- { 0x35, 6 },
- { 0xE4, 8 },
- { 0x1CF, 11 },
- { 0x1D, 7 },
- { 0x72, 9 },
- { 0x4, 3 },
- { 0x5, 3 },
- { 0x6, 4 },
- { 0x7, 4 },
- { 0x6, 5 },
- { 0x73, 7 },
- { 0x38, 8 },
- { 0x1CE, 11 },
- { 0x39B, 12 },
- { 0x398, 12 },
- { 0x733, 13 },
- { 0x732, 13 },
- { 0x735, 13 },
- { 0x734, 13 },
- { 0x0, 3 },
- { 0x1F, 5 },
- { 0x1B, 5 },
- { 0x34, 6 },
- { 0xF, 6 },
- { 0x1E, 5 },
- { 0xE5, 8 },
- { 0x19, 5 },
- { 0x38, 6 }
- },
- { /* AC bias group 2, table 8 */
- { 0x16, 5 },
- { 0x50, 7 },
- { 0x172, 9 },
- { 0x2E7, 10 },
- { 0x1732, 13 },
- { 0x2E67, 14 },
- { 0x2E66, 14 },
- { 0x6, 4 },
- { 0x51, 7 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x9, 4 },
- { 0x1C, 5 },
- { 0x9, 5 },
- { 0x1C, 6 },
- { 0x1D, 6 },
- { 0x5D, 7 },
- { 0xB8, 8 },
- { 0x5CD, 11 },
- { 0x1731, 13 },
- { 0x1730, 13 },
- { 0xF, 4 },
- { 0x5, 4 },
- { 0xF, 5 },
- { 0x8, 5 },
- { 0x29, 6 },
- { 0x1D, 5 },
- { 0x2F, 6 },
- { 0x8, 4 },
- { 0x15, 5 }
- },
- { /* AC bias group 2, table 9 */
- { 0x9, 4 },
- { 0x21, 6 },
- { 0x40, 7 },
- { 0xAD, 8 },
- { 0x2B0, 10 },
- { 0x1589, 13 },
- { 0x1588, 13 },
- { 0x1C, 5 },
- { 0x5F, 7 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x6, 4 },
- { 0x11, 5 },
- { 0x2A, 6 },
- { 0x57, 7 },
- { 0x5E, 7 },
- { 0x41, 7 },
- { 0x159, 9 },
- { 0x563, 11 },
- { 0x158B, 13 },
- { 0x158A, 13 },
- { 0x1, 3 },
- { 0x5, 4 },
- { 0x14, 5 },
- { 0x3B, 6 },
- { 0x2E, 6 },
- { 0x4, 4 },
- { 0x3A, 6 },
- { 0x7, 4 },
- { 0x16, 5 }
- },
- { /* AC bias group 2, table 10 */
- { 0xE, 4 },
- { 0x7, 5 },
- { 0x46, 7 },
- { 0x45, 7 },
- { 0x64, 9 },
- { 0x32A, 12 },
- { 0x657, 13 },
- { 0x18, 5 },
- { 0xD, 6 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0xA, 4 },
- { 0xB, 4 },
- { 0x1A, 5 },
- { 0x36, 6 },
- { 0x47, 7 },
- { 0x44, 7 },
- { 0x18, 7 },
- { 0x33, 8 },
- { 0xCB, 10 },
- { 0x656, 13 },
- { 0x329, 12 },
- { 0x328, 12 },
- { 0x2, 3 },
- { 0x6, 4 },
- { 0x19, 5 },
- { 0xE, 5 },
- { 0x37, 6 },
- { 0x9, 4 },
- { 0xF, 5 },
- { 0x2, 4 },
- { 0x10, 5 }
- },
- { /* AC bias group 2, table 11 */
- { 0x3, 3 },
- { 0x18, 5 },
- { 0x23, 6 },
- { 0x77, 7 },
- { 0x194, 9 },
- { 0x1956, 13 },
- { 0x32AF, 14 },
- { 0x3A, 6 },
- { 0x76, 7 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x1F, 5 },
- { 0x1E, 5 },
- { 0x14, 5 },
- { 0x22, 6 },
- { 0x64, 7 },
- { 0x197, 9 },
- { 0x196, 9 },
- { 0x32B, 10 },
- { 0x654, 11 },
- { 0x32AE, 14 },
- { 0x1955, 13 },
- { 0x1954, 13 },
- { 0x0, 3 },
- { 0x9, 4 },
- { 0x1C, 5 },
- { 0x15, 5 },
- { 0x10, 5 },
- { 0xD, 4 },
- { 0x17, 5 },
- { 0x16, 5 },
- { 0x33, 6 }
- },
- { /* AC bias group 2, table 12 */
- { 0x5, 3 },
- { 0x6, 4 },
- { 0x3E, 6 },
- { 0x10, 5 },
- { 0x48, 7 },
- { 0x93F, 12 },
- { 0x24FA, 14 },
- { 0x32, 6 },
- { 0x67, 7 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x1B, 5 },
- { 0x1E, 5 },
- { 0x34, 6 },
- { 0x66, 7 },
- { 0x92, 8 },
- { 0x126, 9 },
- { 0x24E, 10 },
- { 0x49E, 11 },
- { 0x49F7, 15 },
- { 0x49F6, 15 },
- { 0x24F9, 14 },
- { 0x24F8, 14 },
- { 0x0, 3 },
- { 0x7, 4 },
- { 0x18, 5 },
- { 0x11, 5 },
- { 0x3F, 6 },
- { 0xE, 4 },
- { 0x13, 5 },
- { 0x35, 6 },
- { 0x25, 6 }
- },
- { /* AC bias group 2, table 13 */
- { 0x5, 3 },
- { 0x8, 4 },
- { 0x12, 5 },
- { 0x1C, 5 },
- { 0x1C, 6 },
- { 0xEA, 9 },
- { 0x1D75, 14 },
- { 0x1E, 6 },
- { 0x66, 7 },
- { 0x1, 3 },
- { 0x2, 3 },
- { 0x1B, 5 },
- { 0x1A, 5 },
- { 0x1F, 6 },
- { 0x3B, 7 },
- { 0x74, 8 },
- { 0x1D6, 10 },
- { 0x3AF, 11 },
- { 0x1D74, 14 },
- { 0x1D77, 14 },
- { 0x1D76, 14 },
- { 0xEB9, 13 },
- { 0xEB8, 13 },
- { 0xF, 4 },
- { 0x6, 4 },
- { 0x13, 5 },
- { 0x3B, 6 },
- { 0x3A, 6 },
- { 0x0, 3 },
- { 0x18, 5 },
- { 0x32, 6 },
- { 0x67, 7 }
- },
- { /* AC bias group 2, table 14 */
- { 0x4, 3 },
- { 0xA, 4 },
- { 0x1B, 5 },
- { 0xC, 4 },
- { 0xD, 5 },
- { 0xE6, 8 },
- { 0x684, 11 },
- { 0x72, 7 },
- { 0xE7, 8 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x17, 5 },
- { 0x16, 5 },
- { 0x18, 6 },
- { 0xD1, 8 },
- { 0x1A0, 9 },
- { 0x686, 11 },
- { 0xD0F, 12 },
- { 0xD0A, 12 },
- { 0x1A17, 13 },
- { 0x1A16, 13 },
- { 0x1A1D, 13 },
- { 0x1A1C, 13 },
- { 0xF, 4 },
- { 0x1D, 5 },
- { 0xE, 5 },
- { 0x35, 6 },
- { 0x38, 6 },
- { 0x0, 3 },
- { 0xF, 5 },
- { 0x19, 6 },
- { 0x69, 7 }
- },
- { /* AC bias group 2, table 15 */
- { 0x3, 3 },
- { 0xC, 4 },
- { 0x1B, 5 },
- { 0x0, 3 },
- { 0x3, 4 },
- { 0x2E, 6 },
- { 0x51, 9 },
- { 0xBC, 8 },
- { 0x53, 9 },
- { 0x4, 3 },
- { 0x2, 3 },
- { 0x16, 5 },
- { 0x15, 5 },
- { 0x15, 7 },
- { 0x50, 9 },
- { 0xA4, 10 },
- { 0x294, 12 },
- { 0x52B, 13 },
- { 0x52A, 13 },
- { 0x52D, 13 },
- { 0x52C, 13 },
- { 0x52F, 13 },
- { 0x52E, 13 },
- { 0xE, 4 },
- { 0x1A, 5 },
- { 0x4, 5 },
- { 0x28, 6 },
- { 0x29, 6 },
- { 0xF, 4 },
- { 0xB, 6 },
- { 0x5F, 7 },
- { 0xBD, 8 }
- }
-};
-
-static const uint16_t ac_bias_2[16][32][2] = {
- { /* AC bias group 3, table 0 */
- { 0x3, 4 },
- { 0x9, 6 },
- { 0xD0, 8 },
- { 0x1A3, 9 },
- { 0x344, 10 },
- { 0xD14, 12 },
- { 0x1A2B, 13 },
- { 0x4, 4 },
- { 0x15, 7 },
- { 0x0, 3 },
- { 0xF, 4 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0xE, 4 },
- { 0x9, 4 },
- { 0x1B, 5 },
- { 0xA, 5 },
- { 0x14, 5 },
- { 0xD, 5 },
- { 0x2A, 6 },
- { 0x14, 7 },
- { 0x68B, 11 },
- { 0x1A2A, 13 },
- { 0x8, 4 },
- { 0xB, 5 },
- { 0x2B, 6 },
- { 0xB, 6 },
- { 0x69, 7 },
- { 0x35, 6 },
- { 0x8, 6 },
- { 0x7, 4 },
- { 0xC, 5 }
- },
- { /* AC bias group 3, table 1 */
- { 0xA, 4 },
- { 0x3C, 6 },
- { 0x32, 7 },
- { 0x30, 7 },
- { 0xC5, 9 },
- { 0x621, 12 },
- { 0x620, 12 },
- { 0x1F, 5 },
- { 0x33, 7 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x4, 4 },
- { 0xD, 5 },
- { 0x26, 6 },
- { 0x27, 6 },
- { 0x14, 6 },
- { 0x63, 8 },
- { 0x189, 10 },
- { 0x623, 12 },
- { 0x622, 12 },
- { 0xB, 4 },
- { 0x12, 5 },
- { 0x3D, 6 },
- { 0x22, 6 },
- { 0x15, 6 },
- { 0xB, 5 },
- { 0x23, 6 },
- { 0x7, 4 },
- { 0x10, 5 }
- },
- { /* AC bias group 3, table 2 */
- { 0xF, 4 },
- { 0xC, 5 },
- { 0x43, 7 },
- { 0x10, 6 },
- { 0x44, 8 },
- { 0x114, 10 },
- { 0x455, 12 },
- { 0x18, 5 },
- { 0x23, 7 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0x9, 4 },
- { 0x19, 5 },
- { 0x9, 5 },
- { 0x17, 6 },
- { 0x16, 6 },
- { 0x42, 7 },
- { 0x8B, 9 },
- { 0x454, 12 },
- { 0x457, 12 },
- { 0x456, 12 },
- { 0xB, 4 },
- { 0x15, 5 },
- { 0xA, 5 },
- { 0x29, 6 },
- { 0x20, 6 },
- { 0xD, 5 },
- { 0x28, 6 },
- { 0x7, 4 },
- { 0x11, 5 }
- },
- { /* AC bias group 3, table 3 */
- { 0x1, 3 },
- { 0x1A, 5 },
- { 0x29, 6 },
- { 0x2A, 6 },
- { 0xA0, 8 },
- { 0x285, 10 },
- { 0x1425, 13 },
- { 0x2, 5 },
- { 0x0, 7 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0xC, 4 },
- { 0xB, 4 },
- { 0x8, 4 },
- { 0x12, 5 },
- { 0x1, 6 },
- { 0x51, 7 },
- { 0x1, 7 },
- { 0x143, 9 },
- { 0x508, 11 },
- { 0x1424, 13 },
- { 0x1427, 13 },
- { 0x1426, 13 },
- { 0xF, 4 },
- { 0x1C, 5 },
- { 0x3, 5 },
- { 0x37, 6 },
- { 0x2B, 6 },
- { 0x13, 5 },
- { 0x36, 6 },
- { 0x1D, 5 },
- { 0x1, 5 }
- },
- { /* AC bias group 3, table 4 */
- { 0x4, 3 },
- { 0x1F, 5 },
- { 0x3D, 6 },
- { 0x6, 5 },
- { 0x16, 7 },
- { 0x53, 9 },
- { 0x14A, 11 },
- { 0x34, 6 },
- { 0x2A, 8 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0xB, 4 },
- { 0xC, 4 },
- { 0x1C, 5 },
- { 0x37, 6 },
- { 0x17, 7 },
- { 0x2B, 8 },
- { 0x28, 8 },
- { 0xA4, 10 },
- { 0x52D, 13 },
- { 0x52C, 13 },
- { 0x52F, 13 },
- { 0x52E, 13 },
- { 0x0, 3 },
- { 0x1D, 5 },
- { 0x7, 5 },
- { 0x4, 5 },
- { 0x35, 6 },
- { 0x14, 5 },
- { 0x36, 6 },
- { 0x15, 5 },
- { 0x3C, 6 }
- },
- { /* AC bias group 3, table 5 */
- { 0x4, 3 },
- { 0xA, 4 },
- { 0x7, 5 },
- { 0x1D, 5 },
- { 0x9, 6 },
- { 0x1F3, 9 },
- { 0x7C7, 11 },
- { 0x8, 6 },
- { 0x1F0, 9 },
- { 0x3, 3 },
- { 0x2, 3 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x17, 5 },
- { 0x7D, 7 },
- { 0x1F2, 9 },
- { 0x7C6, 11 },
- { 0x7C5, 11 },
- { 0x1F12, 13 },
- { 0x3E27, 14 },
- { 0x3E26, 14 },
- { 0x1F11, 13 },
- { 0x1F10, 13 },
- { 0x0, 3 },
- { 0x1E, 5 },
- { 0x6, 5 },
- { 0x39, 6 },
- { 0x38, 6 },
- { 0x3F, 6 },
- { 0x2C, 6 },
- { 0x5, 5 },
- { 0x2D, 6 }
- },
- { /* AC bias group 3, table 6 */
- { 0x2, 3 },
- { 0x7, 4 },
- { 0x18, 5 },
- { 0x3, 4 },
- { 0x5, 5 },
- { 0x35, 7 },
- { 0x4F, 9 },
- { 0x12, 7 },
- { 0x4E5, 13 },
- { 0x5, 3 },
- { 0x4, 3 },
- { 0xD, 4 },
- { 0xE, 4 },
- { 0x33, 6 },
- { 0x26, 8 },
- { 0x9D, 10 },
- { 0x4E4, 13 },
- { 0x4E7, 13 },
- { 0x4E6, 13 },
- { 0x4E1, 13 },
- { 0x4E0, 13 },
- { 0x4E3, 13 },
- { 0x4E2, 13 },
- { 0x0, 3 },
- { 0x1F, 5 },
- { 0xC, 5 },
- { 0x3D, 6 },
- { 0x3C, 6 },
- { 0x32, 6 },
- { 0x34, 7 },
- { 0x1B, 6 },
- { 0x8, 6 }
- },
- { /* AC bias group 3, table 7 */
- { 0x0, 3 },
- { 0x4, 4 },
- { 0x1C, 5 },
- { 0xF, 4 },
- { 0x2, 4 },
- { 0x7, 5 },
- { 0x75, 7 },
- { 0xE8, 8 },
- { 0x1D2A, 13 },
- { 0x5, 3 },
- { 0x4, 3 },
- { 0xD, 4 },
- { 0xC, 4 },
- { 0x77, 7 },
- { 0xE96, 12 },
- { 0x3A57, 14 },
- { 0x3A56, 14 },
- { 0x3A5D, 14 },
- { 0x3A5C, 14 },
- { 0x3A5F, 14 },
- { 0x3A5E, 14 },
- { 0x1D29, 13 },
- { 0x1D28, 13 },
- { 0x3, 3 },
- { 0x6, 5 },
- { 0xA, 5 },
- { 0x2C, 7 },
- { 0x17, 6 },
- { 0x76, 7 },
- { 0x1D3, 9 },
- { 0x3A4, 10 },
- { 0x2D, 7 }
- },
- { /* AC bias group 3, table 8 */
- { 0xA, 4 },
- { 0x24, 6 },
- { 0xBF, 8 },
- { 0x85, 8 },
- { 0x211, 10 },
- { 0x842, 12 },
- { 0x1087, 13 },
- { 0x18, 5 },
- { 0x20, 6 },
- { 0x1, 3 },
- { 0x2, 3 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0x7, 4 },
- { 0x13, 5 },
- { 0x25, 6 },
- { 0x5E, 7 },
- { 0x43, 7 },
- { 0xBE, 8 },
- { 0x109, 9 },
- { 0x1086, 13 },
- { 0x841, 12 },
- { 0x840, 12 },
- { 0xF, 4 },
- { 0x1, 4 },
- { 0x11, 5 },
- { 0x0, 5 },
- { 0x2E, 6 },
- { 0x19, 5 },
- { 0x1, 5 },
- { 0x6, 4 },
- { 0x16, 5 }
- },
- { /* AC bias group 3, table 9 */
- { 0x2, 3 },
- { 0xF, 5 },
- { 0x6F, 7 },
- { 0x61, 7 },
- { 0x374, 10 },
- { 0x1BA8, 13 },
- { 0x3753, 14 },
- { 0x12, 5 },
- { 0x36, 6 },
- { 0x0, 3 },
- { 0x1, 3 },
- { 0xA, 4 },
- { 0xB, 4 },
- { 0x1A, 5 },
- { 0x31, 6 },
- { 0x60, 7 },
- { 0xDC, 8 },
- { 0x1BB, 9 },
- { 0x6EB, 11 },
- { 0x1BAB, 13 },
- { 0x3752, 14 },
- { 0x3755, 14 },
- { 0x3754, 14 },
- { 0xE, 4 },
- { 0x6, 4 },
- { 0x13, 5 },
- { 0xE, 5 },
- { 0x3E, 6 },
- { 0x8, 4 },
- { 0x1E, 5 },
- { 0x19, 5 },
- { 0x3F, 6 }
- },
- { /* AC bias group 3, table 10 */
- { 0x3, 3 },
- { 0x1C, 5 },
- { 0x25, 6 },
- { 0x24, 6 },
- { 0x1DA, 9 },
- { 0x1DBD, 13 },
- { 0x3B7C, 14 },
- { 0x3C, 6 },
- { 0x3D, 6 },
- { 0x0, 3 },
- { 0x1, 3 },
- { 0xB, 4 },
- { 0xA, 4 },
- { 0xB, 5 },
- { 0x77, 7 },
- { 0xEC, 8 },
- { 0x3B6, 10 },
- { 0x76E, 11 },
- { 0x1DBF, 13 },
- { 0x76FB, 15 },
- { 0x76FA, 15 },
- { 0x3B79, 14 },
- { 0x3B78, 14 },
- { 0xD, 4 },
- { 0x1F, 5 },
- { 0x13, 5 },
- { 0xA, 5 },
- { 0x8, 5 },
- { 0xC, 4 },
- { 0x8, 4 },
- { 0x9, 5 },
- { 0x3A, 6 }
- },
- { /* AC bias group 3, table 11 */
- { 0x5, 3 },
- { 0x3, 4 },
- { 0x4, 5 },
- { 0x10, 5 },
- { 0x8F, 8 },
- { 0x475, 11 },
- { 0x11D1, 13 },
- { 0x79, 7 },
- { 0x27, 6 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0x1, 4 },
- { 0x0, 4 },
- { 0x26, 6 },
- { 0x46, 7 },
- { 0x11C, 9 },
- { 0x477, 11 },
- { 0x8ED, 12 },
- { 0x11D0, 13 },
- { 0x11D3, 13 },
- { 0x11D2, 13 },
- { 0x11D9, 13 },
- { 0x11D8, 13 },
- { 0xD, 4 },
- { 0x1F, 5 },
- { 0x12, 5 },
- { 0x5, 5 },
- { 0x3D, 6 },
- { 0xC, 4 },
- { 0xE, 4 },
- { 0x22, 6 },
- { 0x78, 7 }
- },
- { /* AC bias group 3, table 12 */
- { 0x5, 3 },
- { 0xC, 4 },
- { 0x1B, 5 },
- { 0x0, 4 },
- { 0x6, 6 },
- { 0x3E2, 10 },
- { 0x3E3D, 14 },
- { 0xF, 7 },
- { 0x34, 6 },
- { 0x3, 3 },
- { 0x2, 3 },
- { 0x1E, 5 },
- { 0x1D, 5 },
- { 0x7D, 7 },
- { 0x1F0, 9 },
- { 0x7C6, 11 },
- { 0x3E3C, 14 },
- { 0x3E3F, 14 },
- { 0x3E3E, 14 },
- { 0x3E39, 14 },
- { 0x3E38, 14 },
- { 0x3E3B, 14 },
- { 0x3E3A, 14 },
- { 0x8, 4 },
- { 0x1C, 5 },
- { 0x2, 5 },
- { 0x3F, 6 },
- { 0x35, 6 },
- { 0x9, 4 },
- { 0x1, 3 },
- { 0xE, 7 },
- { 0xF9, 8 }
- },
- { /* AC bias group 3, table 13 */
- { 0x4, 3 },
- { 0xB, 4 },
- { 0x1, 4 },
- { 0xA, 4 },
- { 0x1E, 6 },
- { 0xE0, 9 },
- { 0xE1E, 13 },
- { 0x71, 8 },
- { 0x39, 7 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0xD, 5 },
- { 0xC, 5 },
- { 0x20, 7 },
- { 0x1C2, 10 },
- { 0x1C3F, 14 },
- { 0x1C3E, 14 },
- { 0xE19, 13 },
- { 0xE18, 13 },
- { 0xE1B, 13 },
- { 0xE1A, 13 },
- { 0xE1D, 13 },
- { 0xE1C, 13 },
- { 0x0, 4 },
- { 0x9, 5 },
- { 0x1D, 6 },
- { 0x1F, 6 },
- { 0x11, 6 },
- { 0x5, 4 },
- { 0x1, 3 },
- { 0x43, 8 },
- { 0x42, 8 }
- },
- { /* AC bias group 3, table 14 */
- { 0x4, 3 },
- { 0xD, 4 },
- { 0x7, 4 },
- { 0x2, 3 },
- { 0x14, 5 },
- { 0x16C, 9 },
- { 0x16D1, 13 },
- { 0x2DF, 10 },
- { 0x16E, 9 },
- { 0x0, 2 },
- { 0x7, 3 },
- { 0x2C, 6 },
- { 0x2B, 6 },
- { 0x2DE, 10 },
- { 0x16D0, 13 },
- { 0x16D3, 13 },
- { 0x16D2, 13 },
- { 0x2DB5, 14 },
- { 0x2DB4, 14 },
- { 0x2DB7, 14 },
- { 0x2DB6, 14 },
- { 0x16D9, 13 },
- { 0x16D8, 13 },
- { 0xC, 5 },
- { 0x2A, 6 },
- { 0x5A, 7 },
- { 0x1B, 6 },
- { 0x1A, 6 },
- { 0x17, 5 },
- { 0xC, 4 },
- { 0x5B7, 11 },
- { 0x5B5, 11 }
- },
- { /* AC bias group 3, table 15 */
- { 0x2, 2 },
- { 0xF, 4 },
- { 0x1C, 5 },
- { 0xC, 4 },
- { 0x3B, 6 },
- { 0x1AC, 9 },
- { 0x1AD8, 13 },
- { 0x35B3, 14 },
- { 0x35B2, 14 },
- { 0x1, 2 },
- { 0x0, 2 },
- { 0x69, 7 },
- { 0x68, 7 },
- { 0x35BD, 14 },
- { 0x35BC, 14 },
- { 0x35BF, 14 },
- { 0x35BE, 14 },
- { 0x35B9, 14 },
- { 0x35B8, 14 },
- { 0x35BB, 14 },
- { 0x35BA, 14 },
- { 0x35B5, 14 },
- { 0x35B4, 14 },
- { 0x1A9, 9 },
- { 0x1A8, 9 },
- { 0x35A, 10 },
- { 0xD7, 8 },
- { 0xD5, 8 },
- { 0x3A, 6 },
- { 0x1B, 5 },
- { 0x35B7, 14 },
- { 0x35B6, 14 }
- }
-};
-
-static const uint16_t ac_bias_3[16][32][2] = {
- { /* AC bias group 4, table 0 */
- { 0x0, 3 },
- { 0x10, 5 },
- { 0x72, 7 },
- { 0x71, 7 },
- { 0x154, 9 },
- { 0xAAB, 12 },
- { 0xAA8, 12 },
- { 0x14, 5 },
- { 0x70, 7 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0xC, 4 },
- { 0xB, 4 },
- { 0x3, 4 },
- { 0x11, 5 },
- { 0x73, 7 },
- { 0x54, 7 },
- { 0xAB, 8 },
- { 0x2AB, 10 },
- { 0x1553, 13 },
- { 0x1552, 13 },
- { 0x1555, 13 },
- { 0x1554, 13 },
- { 0xD, 4 },
- { 0x1E, 5 },
- { 0x12, 5 },
- { 0x3E, 6 },
- { 0x2B, 6 },
- { 0x2, 4 },
- { 0x3F, 6 },
- { 0x1D, 5 },
- { 0x13, 5 }
- },
- { /* AC bias group 4, table 1 */
- { 0x3, 3 },
- { 0x1F, 5 },
- { 0x29, 6 },
- { 0x3D, 6 },
- { 0xC, 7 },
- { 0x69, 10 },
- { 0x345, 13 },
- { 0x2, 5 },
- { 0x28, 6 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0xE, 4 },
- { 0xC, 4 },
- { 0x15, 5 },
- { 0x7, 6 },
- { 0x1B, 8 },
- { 0x6B, 10 },
- { 0x6A, 10 },
- { 0x344, 13 },
- { 0x347, 13 },
- { 0x346, 13 },
- { 0x1A1, 12 },
- { 0x1A0, 12 },
- { 0xB, 4 },
- { 0x1A, 5 },
- { 0x12, 5 },
- { 0x0, 5 },
- { 0x3C, 6 },
- { 0x8, 4 },
- { 0x1B, 5 },
- { 0x13, 5 },
- { 0x1, 5 }
- },
- { /* AC bias group 4, table 2 */
- { 0x4, 3 },
- { 0x4, 4 },
- { 0x3F, 6 },
- { 0x14, 5 },
- { 0x56, 7 },
- { 0x15C, 9 },
- { 0x15D5, 13 },
- { 0x3C, 6 },
- { 0x2A, 6 },
- { 0x0, 3 },
- { 0x1, 3 },
- { 0xE, 4 },
- { 0xD, 4 },
- { 0xC, 5 },
- { 0xAF, 8 },
- { 0x2BB, 10 },
- { 0x15D4, 13 },
- { 0x15D7, 13 },
- { 0x15D6, 13 },
- { 0x15D1, 13 },
- { 0x15D0, 13 },
- { 0x15D3, 13 },
- { 0x15D2, 13 },
- { 0xB, 4 },
- { 0x19, 5 },
- { 0xD, 5 },
- { 0x3E, 6 },
- { 0x31, 6 },
- { 0x7, 4 },
- { 0x5, 4 },
- { 0x3D, 6 },
- { 0x30, 6 }
- },
- { /* AC bias group 4, table 3 */
- { 0x5, 3 },
- { 0x8, 4 },
- { 0x1A, 5 },
- { 0x0, 4 },
- { 0x36, 6 },
- { 0x11, 8 },
- { 0x106, 12 },
- { 0xA, 7 },
- { 0x6E, 7 },
- { 0x2, 3 },
- { 0x3, 3 },
- { 0x3, 4 },
- { 0x2, 4 },
- { 0x6F, 7 },
- { 0x21, 9 },
- { 0x20F, 13 },
- { 0x20E, 13 },
- { 0x101, 12 },
- { 0x100, 12 },
- { 0x103, 12 },
- { 0x102, 12 },
- { 0x105, 12 },
- { 0x104, 12 },
- { 0xC, 4 },
- { 0x1E, 5 },
- { 0x3, 5 },
- { 0x3E, 6 },
- { 0x3F, 6 },
- { 0x9, 4 },
- { 0xE, 4 },
- { 0xB, 7 },
- { 0x9, 7 }
- },
- { /* AC bias group 4, table 4 */
- { 0x2, 3 },
- { 0xE, 4 },
- { 0x1E, 5 },
- { 0xC, 4 },
- { 0x1F, 5 },
- { 0x6E, 7 },
- { 0xAD, 10 },
- { 0xAF, 10 },
- { 0x14, 7 },
- { 0x4, 3 },
- { 0x3, 3 },
- { 0x1A, 5 },
- { 0x17, 5 },
- { 0x2A, 8 },
- { 0x576, 13 },
- { 0xAEF, 14 },
- { 0xAEE, 14 },
- { 0x571, 13 },
- { 0x570, 13 },
- { 0x573, 13 },
- { 0x572, 13 },
- { 0x575, 13 },
- { 0x574, 13 },
- { 0x3, 4 },
- { 0x16, 5 },
- { 0x4, 5 },
- { 0x36, 6 },
- { 0xB, 6 },
- { 0xA, 4 },
- { 0x0, 3 },
- { 0x6F, 7 },
- { 0xAC, 10 }
- },
- { /* AC bias group 4, table 5 */
- { 0x4, 3 },
- { 0x5, 4 },
- { 0x3, 3 },
- { 0x1, 3 },
- { 0x4, 4 },
- { 0x2F, 6 },
- { 0x526, 11 },
- { 0x1495, 13 },
- { 0xA6, 8 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x2D, 6 },
- { 0x2C, 6 },
- { 0x1494, 13 },
- { 0x1497, 13 },
- { 0x1496, 13 },
- { 0x1491, 13 },
- { 0x1490, 13 },
- { 0x1493, 13 },
- { 0x1492, 13 },
- { 0x293D, 14 },
- { 0x293C, 14 },
- { 0x293F, 14 },
- { 0x0, 3 },
- { 0x28, 6 },
- { 0xA5, 8 },
- { 0x148, 9 },
- { 0xA7, 8 },
- { 0x2E, 6 },
- { 0x15, 5 },
- { 0xA4E, 12 },
- { 0x293E, 14 }
- },
- { /* AC bias group 4, table 6 */
- { 0x4, 3 },
- { 0x5, 4 },
- { 0x3, 3 },
- { 0x1, 3 },
- { 0x4, 4 },
- { 0x2F, 6 },
- { 0x526, 11 },
- { 0x1495, 13 },
- { 0xA6, 8 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x2D, 6 },
- { 0x2C, 6 },
- { 0x1494, 13 },
- { 0x1497, 13 },
- { 0x1496, 13 },
- { 0x1491, 13 },
- { 0x1490, 13 },
- { 0x1493, 13 },
- { 0x1492, 13 },
- { 0x293D, 14 },
- { 0x293C, 14 },
- { 0x293F, 14 },
- { 0x0, 3 },
- { 0x28, 6 },
- { 0xA5, 8 },
- { 0x148, 9 },
- { 0xA7, 8 },
- { 0x2E, 6 },
- { 0x15, 5 },
- { 0xA4E, 12 },
- { 0x293E, 14 }
- },
- { /* AC bias group 4, table 7 */
- { 0x4, 3 },
- { 0x5, 4 },
- { 0x3, 3 },
- { 0x1, 3 },
- { 0x4, 4 },
- { 0x2F, 6 },
- { 0x526, 11 },
- { 0x1495, 13 },
- { 0xA6, 8 },
- { 0x7, 3 },
- { 0x6, 3 },
- { 0x2D, 6 },
- { 0x2C, 6 },
- { 0x1494, 13 },
- { 0x1497, 13 },
- { 0x1496, 13 },
- { 0x1491, 13 },
- { 0x1490, 13 },
- { 0x1493, 13 },
- { 0x1492, 13 },
- { 0x293D, 14 },
- { 0x293C, 14 },
- { 0x293F, 14 },
- { 0x0, 3 },
- { 0x28, 6 },
- { 0xA5, 8 },
- { 0x148, 9 },
- { 0xA7, 8 },
- { 0x2E, 6 },
- { 0x15, 5 },
- { 0xA4E, 12 },
- { 0x293E, 14 }
- },
- { /* AC bias group 4, table 8 */
- { 0x3, 3 },
- { 0x11, 5 },
- { 0x20, 6 },
- { 0x74, 7 },
- { 0x10D, 9 },
- { 0x863, 12 },
- { 0x860, 12 },
- { 0xA, 5 },
- { 0x75, 7 },
- { 0x1, 3 },
- { 0x0, 3 },
- { 0xB, 4 },
- { 0xA, 4 },
- { 0x18, 5 },
- { 0x38, 6 },
- { 0x42, 7 },
- { 0x10F, 9 },
- { 0x10E, 9 },
- { 0x219, 10 },
- { 0x10C3, 13 },
- { 0x10C2, 13 },
- { 0x10C5, 13 },
- { 0x10C4, 13 },
- { 0xF, 4 },
- { 0x4, 4 },
- { 0x19, 5 },
- { 0xB, 5 },
- { 0x39, 6 },
- { 0x9, 4 },
- { 0x1B, 5 },
- { 0x1A, 5 },
- { 0x3B, 6 }
- },
- { /* AC bias group 4, table 9 */
- { 0x5, 3 },
- { 0x1, 4 },
- { 0x3E, 6 },
- { 0x1, 5 },
- { 0xE2, 8 },
- { 0x1C6F, 13 },
- { 0x38D9, 14 },
- { 0x39, 6 },
- { 0x1F, 6 },
- { 0x2, 3 },
- { 0x1, 3 },
- { 0x9, 4 },
- { 0x8, 4 },
- { 0x0, 5 },
- { 0x70, 7 },
- { 0x1C7, 9 },
- { 0x38C, 10 },
- { 0x71A, 11 },
- { 0x38D8, 14 },
- { 0x38DB, 14 },
- { 0x38DA, 14 },
- { 0x38DD, 14 },
- { 0x38DC, 14 },
- { 0xD, 4 },
- { 0x1D, 5 },
- { 0xE, 5 },
- { 0x3F, 6 },
- { 0x3C, 6 },
- { 0xC, 4 },
- { 0x6, 4 },
- { 0x3D, 6 },
- { 0x1E, 6 }
- },
- { /* AC bias group 4, table 10 */
- { 0x6, 3 },
- { 0xB, 4 },
- { 0x11, 5 },
- { 0x1E, 5 },
- { 0x74, 7 },
- { 0x3AA, 10 },
- { 0x1D5C, 13 },
- { 0x1, 6 },
- { 0x21, 6 },
- { 0x1, 3 },
- { 0x2, 3 },
- { 0x7, 4 },
- { 0x6, 4 },
- { 0x3E, 6 },
- { 0xEB, 8 },
- { 0x1D4, 9 },
- { 0xEAF, 12 },
- { 0x3ABB, 14 },
- { 0x3ABA, 14 },
- { 0x1D59, 13 },
- { 0x1D58, 13 },
- { 0x1D5B, 13 },
- { 0x1D5A, 13 },
- { 0xA, 4 },
- { 0x1C, 5 },
- { 0x1, 5 },
- { 0x3F, 6 },
- { 0x3B, 6 },
- { 0x1, 4 },
- { 0x9, 4 },
- { 0x20, 6 },
- { 0x0, 6 }
- },
- { /* AC bias group 4, table 11 */
- { 0x4, 3 },
- { 0xA, 4 },
- { 0x17, 5 },
- { 0x4, 4 },
- { 0x16, 6 },
- { 0x16A, 9 },
- { 0x16B1, 13 },
- { 0x17, 7 },
- { 0x5B, 7 },
- { 0x6, 3 },
- { 0x7, 3 },
- { 0x1, 4 },
- { 0x0, 4 },
- { 0xA, 6 },
- { 0x2D7, 10 },
- { 0xB5A, 12 },
- { 0x16B0, 13 },
- { 0x16B3, 13 },
- { 0x16B2, 13 },
- { 0x2D6D, 14 },
- { 0x2D6C, 14 },
- { 0x2D6F, 14 },
- { 0x2D6E, 14 },
- { 0x6, 4 },
- { 0xA, 5 },
- { 0x4, 5 },
- { 0x2C, 6 },
- { 0x17, 6 },
- { 0x3, 4 },
- { 0x7, 4 },
- { 0x16, 7 },
- { 0xB4, 8 }
- },
- { /* AC bias group 4, table 12 */
- { 0x5, 3 },
- { 0xD, 4 },
- { 0x5, 4 },
- { 0x9, 4 },
- { 0x33, 6 },
- { 0x193, 9 },
- { 0x192C, 13 },
- { 0x61, 8 },
- { 0x31, 7 },
- { 0x0, 2 },
- { 0x7, 3 },
- { 0x10, 5 },
- { 0x11, 5 },
- { 0xC8, 8 },
- { 0x192F, 13 },
- { 0x325B, 14 },
- { 0x325A, 14 },
- { 0x1929, 13 },
- { 0x1928, 13 },
- { 0x192B, 13 },
- { 0x192A, 13 },
- { 0x325D, 14 },
- { 0x325C, 14 },
- { 0x18, 5 },
- { 0x1A, 6 },
- { 0x1B, 6 },
- { 0x65, 7 },
- { 0x19, 6 },
- { 0x4, 4 },
- { 0x7, 4 },
- { 0x60, 8 },
- { 0x324, 10 }
- },
- { /* AC bias group 4, table 13 */
- { 0x6, 3 },
- { 0x0, 3 },
- { 0x2, 4 },
- { 0xF, 4 },
- { 0x39, 6 },
- { 0x1D9, 9 },
- { 0x1D82, 13 },
- { 0x761, 11 },
- { 0x3BE, 10 },
- { 0x1, 2 },
- { 0x2, 2 },
- { 0xF, 6 },
- { 0xE, 6 },
- { 0x762, 11 },
- { 0x3B07, 14 },
- { 0x3B06, 14 },
- { 0x3B1D, 14 },
- { 0x3B1C, 14 },
- { 0x3B1F, 14 },
- { 0x3B1E, 14 },
- { 0x3B19, 14 },
- { 0x3B18, 14 },
- { 0x3B1B, 14 },
- { 0x38, 6 },
- { 0x1DE, 9 },
- { 0xED, 8 },
- { 0x3BF, 10 },
- { 0xEE, 8 },
- { 0x3A, 6 },
- { 0x6, 5 },
- { 0xEC0, 12 },
- { 0x3B1A, 14 }
- },
- { /* AC bias group 4, table 14 */
- { 0x0, 2 },
- { 0x2, 3 },
- { 0xF, 5 },
- { 0x6, 4 },
- { 0x1C, 6 },
- { 0x1D0, 10 },
- { 0xE8C, 13 },
- { 0x1D1B, 14 },
- { 0x1D1A, 14 },
- { 0x3, 2 },
- { 0x2, 2 },
- { 0xEA, 9 },
- { 0xE9, 9 },
- { 0xE89, 13 },
- { 0xE88, 13 },
- { 0xE8B, 13 },
- { 0xE8A, 13 },
- { 0x1D65, 14 },
- { 0x1D64, 14 },
- { 0x1D67, 14 },
- { 0x1D66, 14 },
- { 0x1D61, 14 },
- { 0x1D60, 14 },
- { 0x3AD, 11 },
- { 0x1D63, 14 },
- { 0x1D62, 14 },
- { 0x1D1D, 14 },
- { 0x1D1C, 14 },
- { 0x3B, 7 },
- { 0x1D7, 10 },
- { 0x1D1F, 14 },
- { 0x1D1E, 14 }
- },
- { /* AC bias group 4, table 15 */
- { 0x2, 2 },
- { 0xF, 4 },
- { 0x1C, 5 },
- { 0xC, 4 },
- { 0x3B, 6 },
- { 0x1AC, 9 },
- { 0x1AD8, 13 },
- { 0x35B3, 14 },
- { 0x35B2, 14 },
- { 0x1, 2 },
- { 0x0, 2 },
- { 0x69, 7 },
- { 0x68, 7 },
- { 0x35BD, 14 },
- { 0x35BC, 14 },
- { 0x35BF, 14 },
- { 0x35BE, 14 },
- { 0x35B9, 14 },
- { 0x35B8, 14 },
- { 0x35BB, 14 },
- { 0x35BA, 14 },
- { 0x35B5, 14 },
- { 0x35B4, 14 },
- { 0x1A9, 9 },
- { 0x1A8, 9 },
- { 0x35A, 10 },
- { 0xD7, 8 },
- { 0xD5, 8 },
- { 0x3A, 6 },
- { 0x1B, 5 },
- { 0x35B7, 14 },
- { 0x35B6, 14 }
- }
-};
-
-#endif /* AVCODEC_VP3DATA_H */
+++ /dev/null
-/**
- * @file
- * VP5 and VP6 compatible video decoder (common features)
- *
- * Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP56_H
-#define AVCODEC_VP56_H
-
-#include "vp56data.h"
-#include "dsputil.h"
-#include "get_bits.h"
-#include "bytestream.h"
-#include "vp56dsp.h"
-
-typedef struct vp56_context VP56Context;
-typedef struct vp56_mv VP56mv;
-
-typedef void (*VP56ParseVectorAdjustment)(VP56Context *s,
- VP56mv *vect);
-typedef void (*VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src,
- int offset1, int offset2, int stride,
- VP56mv mv, int mask, int select, int luma);
-typedef void (*VP56ParseCoeff)(VP56Context *s);
-typedef void (*VP56DefaultModelsInit)(VP56Context *s);
-typedef void (*VP56ParseVectorModels)(VP56Context *s);
-typedef void (*VP56ParseCoeffModels)(VP56Context *s);
-typedef int (*VP56ParseHeader)(VP56Context *s, const uint8_t *buf,
- int buf_size, int *golden_frame);
-
-typedef struct {
- int high;
- int bits;
- const uint8_t *buffer;
- const uint8_t *end;
- unsigned long code_word;
-} VP56RangeCoder;
-
-typedef struct {
- uint8_t not_null_dc;
- VP56Frame ref_frame;
- DCTELEM dc_coeff;
-} VP56RefDc;
-
-struct vp56_mv {
- int x;
- int y;
-};
-
-typedef struct {
- uint8_t type;
- VP56mv mv;
-} VP56Macroblock;
-
-typedef struct {
- uint8_t coeff_reorder[64]; /* used in vp6 only */
- uint8_t coeff_index_to_pos[64]; /* used in vp6 only */
- uint8_t vector_sig[2]; /* delta sign */
- uint8_t vector_dct[2]; /* delta coding types */
- uint8_t vector_pdi[2][2]; /* predefined delta init */
- uint8_t vector_pdv[2][7]; /* predefined delta values */
- uint8_t vector_fdv[2][8]; /* 8 bit delta value definition */
- uint8_t coeff_dccv[2][11]; /* DC coeff value */
- uint8_t coeff_ract[2][3][6][11]; /* Run/AC coding type and AC coeff value */
- uint8_t coeff_acct[2][3][3][6][5];/* vp5 only AC coding type for coding group < 3 */
- uint8_t coeff_dcct[2][36][5]; /* DC coeff coding type */
- uint8_t coeff_runv[2][14]; /* run value (vp6 only) */
- uint8_t mb_type[3][10][10]; /* model for decoding MB type */
- uint8_t mb_types_stats[3][10][2];/* contextual, next MB type stats */
-} VP56Model;
-
-struct vp56_context {
- AVCodecContext *avctx;
- DSPContext dsp;
- VP56DSPContext vp56dsp;
- ScanTable scantable;
- AVFrame frames[4];
- AVFrame *framep[6];
- uint8_t *edge_emu_buffer_alloc;
- uint8_t *edge_emu_buffer;
- VP56RangeCoder c;
- VP56RangeCoder cc;
- VP56RangeCoder *ccp;
- int sub_version;
-
- /* frame info */
- int plane_width[4];
- int plane_height[4];
- int mb_width; /* number of horizontal MB */
- int mb_height; /* number of vertical MB */
- int block_offset[6];
-
- int quantizer;
- uint16_t dequant_dc;
- uint16_t dequant_ac;
- int8_t *qscale_table;
-
- /* DC predictors management */
- VP56RefDc *above_blocks;
- VP56RefDc left_block[4];
- int above_block_idx[6];
- DCTELEM prev_dc[3][3]; /* [plan][ref_frame] */
-
- /* blocks / macroblock */
- VP56mb mb_type;
- VP56Macroblock *macroblocks;
- DECLARE_ALIGNED(16, DCTELEM, block_coeff)[6][64];
-
- /* motion vectors */
- VP56mv mv[6]; /* vectors for each block in MB */
- VP56mv vector_candidate[2];
- int vector_candidate_pos;
-
- /* filtering hints */
- int filter_header; /* used in vp6 only */
- int deblock_filtering;
- int filter_selection;
- int filter_mode;
- int max_vector_length;
- int sample_variance_threshold;
-
- uint8_t coeff_ctx[4][64]; /* used in vp5 only */
- uint8_t coeff_ctx_last[4]; /* used in vp5 only */
-
- int has_alpha;
-
- /* upside-down flipping hints */
- int flip; /* are we flipping ? */
- int frbi; /* first row block index in MB */
- int srbi; /* second row block index in MB */
- int stride[4]; /* stride for each plan */
-
- const uint8_t *vp56_coord_div;
- VP56ParseVectorAdjustment parse_vector_adjustment;
- VP56Filter filter;
- VP56ParseCoeff parse_coeff;
- VP56DefaultModelsInit default_models_init;
- VP56ParseVectorModels parse_vector_models;
- VP56ParseCoeffModels parse_coeff_models;
- VP56ParseHeader parse_header;
-
- VP56Model *modelp;
- VP56Model models[2];
-
- /* huffman decoding */
- int use_huffman;
- GetBitContext gb;
- VLC dccv_vlc[2];
- VLC runv_vlc[2];
- VLC ract_vlc[2][3][6];
- unsigned int nb_null[2][2]; /* number of consecutive NULL DC/AC */
-};
-
-
-void vp56_init(AVCodecContext *avctx, int flip, int has_alpha);
-int vp56_free(AVCodecContext *avctx);
-void vp56_init_dequant(VP56Context *s, int quantizer);
-int vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
- AVPacket *avpkt);
-
-
-/**
- * vp56 specific range coder implementation
- */
-
-static inline void vp56_init_range_decoder(VP56RangeCoder *c,
- const uint8_t *buf, int buf_size)
-{
- c->high = 255;
- c->bits = 8;
- c->buffer = buf;
- c->end = buf + buf_size;
- c->code_word = bytestream_get_be16(&c->buffer);
-}
-
-static inline int vp56_rac_get_prob(VP56RangeCoder *c, uint8_t prob)
-{
- unsigned int low = 1 + (((c->high - 1) * prob) / 256);
- unsigned int low_shift = low << 8;
- int bit = c->code_word >= low_shift;
-
- if (bit) {
- c->high -= low;
- c->code_word -= low_shift;
- } else {
- c->high = low;
- }
-
- /* normalize */
- while (c->high < 128) {
- c->high <<= 1;
- c->code_word <<= 1;
- if (--c->bits == 0 && c->buffer < c->end) {
- c->bits = 8;
- c->code_word |= *c->buffer++;
- }
- }
- return bit;
-}
-
-static inline int vp56_rac_get(VP56RangeCoder *c)
-{
- /* equiprobable */
- int low = (c->high + 1) >> 1;
- unsigned int low_shift = low << 8;
- int bit = c->code_word >= low_shift;
- if (bit) {
- c->high = (c->high - low) << 1;
- c->code_word -= low_shift;
- } else {
- c->high = low << 1;
- }
-
- /* normalize */
- c->code_word <<= 1;
- if (--c->bits == 0 && c->buffer < c->end) {
- c->bits = 8;
- c->code_word |= *c->buffer++;
- }
- return bit;
-}
-
-static inline int vp56_rac_gets(VP56RangeCoder *c, int bits)
-{
- int value = 0;
-
- while (bits--) {
- value = (value << 1) | vp56_rac_get(c);
- }
-
- return value;
-}
-
-static inline int vp56_rac_gets_nn(VP56RangeCoder *c, int bits)
-{
- int v = vp56_rac_gets(c, 7) << 1;
- return v + !v;
-}
-
-static inline int vp56_rac_get_tree(VP56RangeCoder *c,
- const VP56Tree *tree,
- const uint8_t *probs)
-{
- while (tree->val > 0) {
- if (vp56_rac_get_prob(c, probs[tree->prob_idx]))
- tree += tree->val;
- else
- tree++;
- }
- return -tree->val;
-}
-
-#endif /* AVCODEC_VP56_H */
+++ /dev/null
-/**
- * @file
- * VP5 and VP6 compatible video decoder (common data)
- *
- * Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP56DATA_H
-#define AVCODEC_VP56DATA_H
-
-#include "libavutil/common.h"
-
-typedef enum {
- VP56_FRAME_NONE =-1,
- VP56_FRAME_CURRENT = 0,
- VP56_FRAME_PREVIOUS = 1,
- VP56_FRAME_GOLDEN = 2,
- VP56_FRAME_GOLDEN2 = 3,
- VP56_FRAME_UNUSED = 4,
- VP56_FRAME_UNUSED2 = 5,
-} VP56Frame;
-
-typedef enum {
- VP56_MB_INTER_NOVEC_PF = 0, /**< Inter MB, no vector, from previous frame */
- VP56_MB_INTRA = 1, /**< Intra MB */
- VP56_MB_INTER_DELTA_PF = 2, /**< Inter MB, above/left vector + delta, from previous frame */
- VP56_MB_INTER_V1_PF = 3, /**< Inter MB, first vector, from previous frame */
- VP56_MB_INTER_V2_PF = 4, /**< Inter MB, second vector, from previous frame */
- VP56_MB_INTER_NOVEC_GF = 5, /**< Inter MB, no vector, from golden frame */
- VP56_MB_INTER_DELTA_GF = 6, /**< Inter MB, above/left vector + delta, from golden frame */
- VP56_MB_INTER_4V = 7, /**< Inter MB, 4 vectors, from previous frame */
- VP56_MB_INTER_V1_GF = 8, /**< Inter MB, first vector, from golden frame */
- VP56_MB_INTER_V2_GF = 9, /**< Inter MB, second vector, from golden frame */
-} VP56mb;
-
-typedef struct {
- int8_t val;
- int8_t prob_idx;
-} VP56Tree;
-
-extern const uint8_t vp56_b2p[];
-extern const uint8_t vp56_b6to4[];
-extern const uint8_t vp56_coeff_parse_table[6][11];
-extern const uint8_t vp56_def_mb_types_stats[3][10][2];
-extern const VP56Tree vp56_pva_tree[];
-extern const VP56Tree vp56_pc_tree[];
-extern const uint8_t vp56_coeff_bias[];
-extern const uint8_t vp56_coeff_bit_length[];
-
-static const VP56Frame vp56_reference_frame[] = {
- VP56_FRAME_PREVIOUS, /* VP56_MB_INTER_NOVEC_PF */
- VP56_FRAME_CURRENT, /* VP56_MB_INTRA */
- VP56_FRAME_PREVIOUS, /* VP56_MB_INTER_DELTA_PF */
- VP56_FRAME_PREVIOUS, /* VP56_MB_INTER_V1_PF */
- VP56_FRAME_PREVIOUS, /* VP56_MB_INTER_V2_PF */
- VP56_FRAME_GOLDEN, /* VP56_MB_INTER_NOVEC_GF */
- VP56_FRAME_GOLDEN, /* VP56_MB_INTER_DELTA_GF */
- VP56_FRAME_PREVIOUS, /* VP56_MB_INTER_4V */
- VP56_FRAME_GOLDEN, /* VP56_MB_INTER_V1_GF */
- VP56_FRAME_GOLDEN, /* VP56_MB_INTER_V2_GF */
-};
-
-static const uint8_t vp56_ac_dequant[64] = {
- 94, 92, 90, 88, 86, 82, 78, 74,
- 70, 66, 62, 58, 54, 53, 52, 51,
- 50, 49, 48, 47, 46, 45, 44, 43,
- 42, 40, 39, 37, 36, 35, 34, 33,
- 32, 31, 30, 29, 28, 27, 26, 25,
- 24, 23, 22, 21, 20, 19, 18, 17,
- 16, 15, 14, 13, 12, 11, 10, 9,
- 8, 7, 6, 5, 4, 3, 2, 1,
-};
-
-static const uint8_t vp56_dc_dequant[64] = {
- 47, 47, 47, 47, 45, 43, 43, 43,
- 43, 43, 42, 41, 41, 40, 40, 40,
- 40, 35, 35, 35, 35, 33, 33, 33,
- 33, 32, 32, 32, 27, 27, 26, 26,
- 25, 25, 24, 24, 23, 23, 19, 19,
- 19, 19, 18, 18, 17, 16, 16, 16,
- 16, 16, 15, 11, 11, 11, 10, 10,
- 9, 8, 7, 5, 3, 3, 2, 2,
-};
-
-static const uint8_t vp56_pre_def_mb_type_stats[16][3][10][2] = {
- { { { 9, 15 }, { 32, 25 }, { 7, 19 }, { 9, 21 }, { 1, 12 },
- { 14, 12 }, { 3, 18 }, { 14, 23 }, { 3, 10 }, { 0, 4 }, },
- { { 41, 22 }, { 1, 0 }, { 1, 31 }, { 0, 0 }, { 0, 0 },
- { 0, 1 }, { 1, 7 }, { 0, 1 }, { 98, 25 }, { 4, 10 }, },
- { { 2, 3 }, { 2, 3 }, { 0, 2 }, { 0, 2 }, { 0, 0 },
- { 11, 4 }, { 1, 4 }, { 0, 2 }, { 3, 2 }, { 0, 4 }, }, },
- { { { 48, 39 }, { 1, 2 }, { 11, 27 }, { 29, 44 }, { 7, 27 },
- { 1, 4 }, { 0, 3 }, { 1, 6 }, { 1, 2 }, { 0, 0 }, },
- { { 123, 37 }, { 6, 4 }, { 1, 27 }, { 0, 0 }, { 0, 0 },
- { 5, 8 }, { 1, 7 }, { 0, 1 }, { 12, 10 }, { 0, 2 }, },
- { { 49, 46 }, { 3, 4 }, { 7, 31 }, { 42, 41 }, { 0, 0 },
- { 2, 6 }, { 1, 7 }, { 1, 4 }, { 2, 4 }, { 0, 1 }, }, },
- { { { 21, 32 }, { 1, 2 }, { 4, 10 }, { 32, 43 }, { 6, 23 },
- { 2, 3 }, { 1, 19 }, { 1, 6 }, { 12, 21 }, { 0, 7 }, },
- { { 26, 14 }, { 14, 12 }, { 0, 24 }, { 0, 0 }, { 0, 0 },
- { 55, 17 }, { 1, 9 }, { 0, 36 }, { 5, 7 }, { 1, 3 }, },
- { { 26, 25 }, { 1, 1 }, { 2, 10 }, { 67, 39 }, { 0, 0 },
- { 1, 1 }, { 0, 14 }, { 0, 2 }, { 31, 26 }, { 1, 6 }, }, },
- { { { 69, 83 }, { 0, 0 }, { 0, 2 }, { 10, 29 }, { 3, 12 },
- { 0, 1 }, { 0, 3 }, { 0, 3 }, { 2, 2 }, { 0, 0 }, },
- { { 209, 5 }, { 0, 0 }, { 0, 27 }, { 0, 0 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 0 }, },
- { { 103, 46 }, { 1, 2 }, { 2, 10 }, { 33, 42 }, { 0, 0 },
- { 1, 4 }, { 0, 3 }, { 0, 1 }, { 1, 3 }, { 0, 0 }, }, },
- { { { 11, 20 }, { 1, 4 }, { 18, 36 }, { 43, 48 }, { 13, 35 },
- { 0, 2 }, { 0, 5 }, { 3, 12 }, { 1, 2 }, { 0, 0 }, },
- { { 2, 5 }, { 4, 5 }, { 0, 121 }, { 0, 0 }, { 0, 0 },
- { 0, 3 }, { 2, 4 }, { 1, 4 }, { 2, 2 }, { 0, 1 }, },
- { { 14, 31 }, { 9, 13 }, { 14, 54 }, { 22, 29 }, { 0, 0 },
- { 2, 6 }, { 4, 18 }, { 6, 13 }, { 1, 5 }, { 0, 1 }, }, },
- { { { 70, 44 }, { 0, 1 }, { 2, 10 }, { 37, 46 }, { 8, 26 },
- { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 1 }, { 0, 0 }, },
- { { 175, 5 }, { 0, 1 }, { 0, 48 }, { 0, 0 }, { 0, 0 },
- { 0, 2 }, { 0, 1 }, { 0, 2 }, { 0, 1 }, { 0, 0 }, },
- { { 85, 39 }, { 0, 0 }, { 1, 9 }, { 69, 40 }, { 0, 0 },
- { 0, 1 }, { 0, 3 }, { 0, 1 }, { 2, 3 }, { 0, 0 }, }, },
- { { { 8, 15 }, { 0, 1 }, { 8, 21 }, { 74, 53 }, { 22, 42 },
- { 0, 1 }, { 0, 2 }, { 0, 3 }, { 1, 2 }, { 0, 0 }, },
- { { 83, 5 }, { 2, 3 }, { 0, 102 }, { 0, 0 }, { 0, 0 },
- { 1, 3 }, { 0, 2 }, { 0, 1 }, { 0, 0 }, { 0, 0 }, },
- { { 31, 28 }, { 0, 0 }, { 3, 14 }, { 130, 34 }, { 0, 0 },
- { 0, 1 }, { 0, 3 }, { 0, 1 }, { 3, 3 }, { 0, 1 }, }, },
- { { { 141, 42 }, { 0, 0 }, { 1, 4 }, { 11, 24 }, { 1, 11 },
- { 0, 1 }, { 0, 1 }, { 0, 2 }, { 0, 0 }, { 0, 0 }, },
- { { 233, 6 }, { 0, 0 }, { 0, 8 }, { 0, 0 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 1 }, { 0, 0 }, },
- { { 171, 25 }, { 0, 0 }, { 1, 5 }, { 25, 21 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
- { { { 8, 19 }, { 4, 10 }, { 24, 45 }, { 21, 37 }, { 9, 29 },
- { 0, 3 }, { 1, 7 }, { 11, 25 }, { 0, 2 }, { 0, 1 }, },
- { { 34, 16 }, { 112, 21 }, { 1, 28 }, { 0, 0 }, { 0, 0 },
- { 6, 8 }, { 1, 7 }, { 0, 3 }, { 2, 5 }, { 0, 2 }, },
- { { 17, 21 }, { 68, 29 }, { 6, 15 }, { 13, 22 }, { 0, 0 },
- { 6, 12 }, { 3, 14 }, { 4, 10 }, { 1, 7 }, { 0, 3 }, }, },
- { { { 46, 42 }, { 0, 1 }, { 2, 10 }, { 54, 51 }, { 10, 30 },
- { 0, 2 }, { 0, 2 }, { 0, 1 }, { 0, 1 }, { 0, 0 }, },
- { { 159, 35 }, { 2, 2 }, { 0, 25 }, { 0, 0 }, { 0, 0 },
- { 3, 6 }, { 0, 5 }, { 0, 1 }, { 4, 4 }, { 0, 1 }, },
- { { 51, 39 }, { 0, 1 }, { 2, 12 }, { 91, 44 }, { 0, 0 },
- { 0, 2 }, { 0, 3 }, { 0, 1 }, { 2, 3 }, { 0, 1 }, }, },
- { { { 28, 32 }, { 0, 0 }, { 3, 10 }, { 75, 51 }, { 14, 33 },
- { 0, 1 }, { 0, 2 }, { 0, 1 }, { 1, 2 }, { 0, 0 }, },
- { { 75, 39 }, { 5, 7 }, { 2, 48 }, { 0, 0 }, { 0, 0 },
- { 3, 11 }, { 2, 16 }, { 1, 4 }, { 7, 10 }, { 0, 2 }, },
- { { 81, 25 }, { 0, 0 }, { 2, 9 }, { 106, 26 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 1, 1 }, { 0, 0 }, }, },
- { { { 100, 46 }, { 0, 1 }, { 3, 9 }, { 21, 37 }, { 5, 20 },
- { 0, 1 }, { 0, 2 }, { 1, 2 }, { 0, 1 }, { 0, 0 }, },
- { { 212, 21 }, { 0, 1 }, { 0, 9 }, { 0, 0 }, { 0, 0 },
- { 1, 2 }, { 0, 2 }, { 0, 0 }, { 2, 2 }, { 0, 0 }, },
- { { 140, 37 }, { 0, 1 }, { 1, 8 }, { 24, 33 }, { 0, 0 },
- { 1, 2 }, { 0, 2 }, { 0, 1 }, { 1, 2 }, { 0, 0 }, }, },
- { { { 27, 29 }, { 0, 1 }, { 9, 25 }, { 53, 51 }, { 12, 34 },
- { 0, 1 }, { 0, 3 }, { 1, 5 }, { 0, 2 }, { 0, 0 }, },
- { { 4, 2 }, { 0, 0 }, { 0, 172 }, { 0, 0 }, { 0, 0 },
- { 0, 1 }, { 0, 2 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, },
- { { 14, 23 }, { 1, 3 }, { 11, 53 }, { 90, 31 }, { 0, 0 },
- { 0, 3 }, { 1, 5 }, { 2, 6 }, { 1, 2 }, { 0, 0 }, }, },
- { { { 80, 38 }, { 0, 0 }, { 1, 4 }, { 69, 33 }, { 5, 16 },
- { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 1 }, { 0, 0 }, },
- { { 187, 22 }, { 1, 1 }, { 0, 17 }, { 0, 0 }, { 0, 0 },
- { 3, 6 }, { 0, 4 }, { 0, 1 }, { 4, 4 }, { 0, 1 }, },
- { { 123, 29 }, { 0, 0 }, { 1, 7 }, { 57, 30 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 0 }, }, },
- { { { 16, 20 }, { 0, 0 }, { 2, 8 }, { 104, 49 }, { 15, 33 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 1, 1 }, { 0, 0 }, },
- { { 133, 6 }, { 1, 2 }, { 1, 70 }, { 0, 0 }, { 0, 0 },
- { 0, 2 }, { 0, 4 }, { 0, 3 }, { 1, 1 }, { 0, 0 }, },
- { { 13, 14 }, { 0, 0 }, { 4, 20 }, { 175, 20 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 1, 1 }, { 0, 0 }, }, },
- { { { 194, 16 }, { 0, 0 }, { 1, 1 }, { 1, 9 }, { 1, 3 },
- { 0, 0 }, { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 0 }, },
- { { 251, 1 }, { 0, 0 }, { 0, 2 }, { 0, 0 }, { 0, 0 },
- { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
- { { 202, 23 }, { 0, 0 }, { 1, 3 }, { 2, 9 }, { 0, 0 },
- { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 0 }, { 0, 0 }, }, },
-};
-
-static const uint8_t vp56_filter_threshold[] = {
- 14, 14, 13, 13, 12, 12, 10, 10,
- 10, 10, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 7,
- 7, 7, 6, 6, 6, 6, 6, 6,
- 5, 5, 5, 5, 4, 4, 4, 4,
- 4, 4, 4, 3, 3, 3, 3, 2,
-};
-
-static const uint8_t vp56_mb_type_model_model[] = {
- 171, 83, 199, 140, 125, 104,
-};
-
-static const VP56Tree vp56_pmbtm_tree[] = {
- { 4, 0},
- { 2, 1}, {-8}, {-4},
- { 8, 2},
- { 6, 3},
- { 4, 4},
- { 2, 5}, {-24}, {-20}, {-16}, {-12}, {-0},
-};
-
-static const VP56Tree vp56_pmbt_tree[] = {
- { 8, 1},
- { 4, 2},
- { 2, 4}, {-VP56_MB_INTER_NOVEC_PF}, {-VP56_MB_INTER_DELTA_PF},
- { 2, 5}, {-VP56_MB_INTER_V1_PF}, {-VP56_MB_INTER_V2_PF},
- { 4, 3},
- { 2, 6}, {-VP56_MB_INTRA}, {-VP56_MB_INTER_4V},
- { 4, 7},
- { 2, 8}, {-VP56_MB_INTER_NOVEC_GF}, {-VP56_MB_INTER_DELTA_GF},
- { 2, 9}, {-VP56_MB_INTER_V1_GF}, {-VP56_MB_INTER_V2_GF},
-};
-
-/* relative pos of surrounding blocks, from closest to farthest */
-static const int8_t vp56_candidate_predictor_pos[12][2] = {
- { 0, -1 },
- { -1, 0 },
- { -1, -1 },
- { 1, -1 },
- { 0, -2 },
- { -2, 0 },
- { -2, -1 },
- { -1, -2 },
- { 1, -2 },
- { 2, -1 },
- { -2, -2 },
- { 2, -2 },
-};
-
-#endif /* AVCODEC_VP56DATA_H */
+++ /dev/null
-/*
- * Copyright (c) 2010 Mans Rullgard <mans@mansr.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP56DSP_H
-#define AVCODEC_VP56DSP_H
-
-#include <stdint.h>
-
-typedef struct VP56DSPContext {
- void (*edge_filter_hor)(uint8_t *yuv, int stride, int t);
- void (*edge_filter_ver)(uint8_t *yuv, int stride, int t);
-} VP56DSPContext;
-
-void ff_vp56dsp_init(VP56DSPContext *s, enum CodecID codec);
-void ff_vp56dsp_init_arm(VP56DSPContext *s, enum CodecID codec);
-
-#endif /* AVCODEC_VP56DSP_H */
+++ /dev/null
-/**
- * @file
- * VP5 compatible video decoder
- *
- * Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP5DATA_H
-#define AVCODEC_VP5DATA_H
-
-#include <stdint.h>
-
-static const uint8_t vp5_coeff_groups[] = {
- -1, 0, 1, 1, 2, 1, 1, 2,
- 2, 1, 1, 2, 2, 2, 1, 2,
- 2, 2, 2, 2, 1, 1, 2, 2,
- 3, 3, 4, 3, 4, 4, 4, 3,
- 3, 3, 3, 3, 4, 3, 3, 3,
- 4, 4, 4, 4, 4, 3, 3, 4,
- 4, 4, 3, 4, 4, 4, 4, 4,
- 4, 4, 5, 5, 5, 5, 5, 5,
-};
-
-static const uint8_t vp5_vmc_pct[2][11] = {
- { 243, 220, 251, 253, 237, 232, 241, 245, 247, 251, 253 },
- { 235, 211, 246, 249, 234, 231, 248, 249, 252, 252, 254 },
-};
-
-static const uint8_t vp5_dccv_pct[2][11] = {
- { 146, 197, 181, 207, 232, 243, 238, 251, 244, 250, 249 },
- { 179, 219, 214, 240, 250, 254, 244, 254, 254, 254, 254 },
-};
-
-static const uint8_t vp5_ract_pct[3][2][6][11] = {
- { { { 227, 246, 230, 247, 244, 254, 254, 254, 254, 254, 254 },
- { 202, 254, 209, 231, 231, 249, 249, 253, 254, 254, 254 },
- { 206, 254, 225, 242, 241, 251, 253, 254, 254, 254, 254 },
- { 235, 254, 241, 253, 252, 254, 254, 254, 254, 254, 254 },
- { 234, 254, 248, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } },
- { { 240, 254, 248, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 238, 254, 240, 253, 254, 254, 254, 254, 254, 254, 254 },
- { 244, 254, 251, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } } },
- { { { 206, 203, 227, 239, 247, 254, 253, 254, 254, 254, 254 },
- { 207, 199, 220, 236, 243, 252, 252, 254, 254, 254, 254 },
- { 212, 219, 230, 243, 244, 253, 252, 254, 254, 254, 254 },
- { 236, 237, 247, 252, 253, 254, 254, 254, 254, 254, 254 },
- { 240, 240, 248, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } },
- { { 230, 233, 249, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 238, 238, 250, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 248, 251, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } } },
- { { { 225, 239, 227, 231, 244, 253, 243, 254, 254, 253, 254 },
- { 232, 234, 224, 228, 242, 249, 242, 252, 251, 251, 254 },
- { 235, 249, 238, 240, 251, 254, 249, 254, 253, 253, 254 },
- { 249, 253, 251, 250, 254, 254, 254, 254, 254, 254, 254 },
- { 251, 250, 249, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } },
- { { 243, 244, 250, 250, 254, 254, 254, 254, 254, 254, 254 },
- { 249, 248, 250, 253, 254, 254, 254, 254, 254, 254, 254 },
- { 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 },
- { 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254 } } },
-};
-
-static const int16_t vp5_dccv_lc[5][36][2] = {
- { {154, 61}, {141, 54}, { 90, 45}, { 54, 34}, { 54, 13}, {128, 109},
- {136, 54}, {148, 45}, { 92, 41}, { 54, 33}, { 51, 15}, { 87, 113},
- { 87, 44}, { 97, 40}, { 67, 36}, { 46, 29}, { 41, 15}, { 64, 80},
- { 59, 33}, { 61, 31}, { 51, 28}, { 44, 22}, { 33, 12}, { 49, 63},
- { 69, 12}, { 59, 16}, { 46, 14}, { 31, 13}, { 26, 6}, { 92, 26},
- {128, 108}, { 77, 119}, { 54, 84}, { 26, 71}, { 87, 19}, { 95, 155} },
- { {154, 4}, {182, 0}, {159, -8}, {128, -5}, {143, -5}, {187, 55},
- {182, 0}, {228, -3}, {187, -7}, {174, -9}, {189, -11}, {169, 79},
- {161, -9}, {192, -8}, {187, -9}, {169, -10}, {136, -9}, {184, 40},
- {164, -11}, {179, -10}, {174, -10}, {161, -10}, {115, -7}, {197, 20},
- {195, -11}, {195, -11}, {146, -10}, {110, -6}, { 95, -4}, {195, 39},
- {182, 55}, {172, 77}, {177, 37}, {169, 29}, {172, 52}, { 92, 162} },
- { {174, 80}, {164, 80}, { 95, 80}, { 46, 66}, { 56, 24}, { 36, 193},
- {164, 80}, {166, 77}, {105, 76}, { 49, 68}, { 46, 31}, { 49, 186},
- { 97, 78}, {110, 74}, { 72, 72}, { 44, 60}, { 33, 30}, { 69, 131},
- { 61, 61}, { 69, 63}, { 51, 57}, { 31, 48}, { 26, 27}, { 64, 89},
- { 67, 23}, { 51, 32}, { 36, 33}, { 26, 28}, { 20, 12}, { 44, 68},
- { 26, 197}, { 41, 189}, { 61, 129}, { 28, 103}, { 49, 52}, {-12, 245} },
- { {102, 141}, { 79, 166}, { 72, 162}, { 97, 125}, {179, 4}, {307, 0},
- { 72, 168}, { 69, 175}, { 84, 160}, {105, 127}, {148, 34}, {310, 0},
- { 84, 151}, { 82, 161}, { 87, 153}, { 87, 135}, {115, 51}, {317, 0},
- { 97, 125}, {102, 131}, {105, 125}, { 87, 122}, { 84, 64}, { 54, 184},
- {166, 18}, {146, 43}, {125, 51}, { 90, 64}, { 95, 7}, { 38, 154},
- {294, 0}, { 13, 225}, { 10, 225}, { 67, 168}, { 0, 167}, {161, 94} },
- { {172, 76}, {172, 75}, {136, 80}, { 64, 98}, { 74, 67}, {315, 0},
- {169, 76}, {207, 56}, {164, 66}, { 97, 80}, { 67, 72}, {328, 0},
- {136, 80}, {187, 53}, {154, 62}, { 72, 85}, { -2, 105}, {305, 0},
- { 74, 91}, {128, 64}, {113, 64}, { 61, 77}, { 41, 75}, {259, 0},
- { 46, 84}, { 51, 81}, { 28, 89}, { 31, 78}, { 23, 77}, {202, 0},
- {323, 0}, {323, 0}, {300, 0}, {236, 0}, {195, 0}, {328, 0} },
-};
-
-static const int16_t vp5_ract_lc[3][3][5][6][2] = {
- { { { {276, 0}, {238, 0}, {195, 0}, {156, 0}, {113, 0}, {274, 0} },
- { { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1} },
- { {192, 59}, {182, 50}, {141, 48}, {110, 40}, { 92, 19}, {125,128} },
- { {169, 87}, {169, 83}, {184, 62}, {220, 16}, {184, 0}, {264, 0} },
- { {212, 40}, {212, 36}, {169, 49}, {174, 27}, { 8,120}, {182, 71} } },
- { { {259, 10}, {197, 19}, {143, 22}, {123, 16}, {110, 8}, {133, 88} },
- { { 0, 1}, {256, 0}, { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1} },
- { {207, 46}, {187, 50}, { 97, 83}, { 23,100}, { 41, 56}, { 56,188} },
- { {166, 90}, {146,108}, {161, 88}, {136, 95}, {174, 0}, {266, 0} },
- { {264, 7}, {243, 18}, {184, 43}, {-14,154}, { 20,112}, { 20,199} } },
- { { {230, 26}, {197, 22}, {159, 20}, {146, 12}, {136, 4}, { 54,162} },
- { { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1}, { 0, 1} },
- { {192, 59}, {156, 72}, { 84,101}, { 49,101}, { 79, 47}, { 79,167} },
- { {138,115}, {136,116}, {166, 80}, {238, 0}, {195, 0}, {261, 0} },
- { {225, 33}, {205, 42}, {159, 61}, { 79, 96}, { 92, 66}, { 28,195} } },
- }, {
- { { {200, 37}, {197, 18}, {159, 13}, {143, 7}, {102, 5}, {123,126} },
- { {197, 3}, {220, -9}, {210,-12}, {187, -6}, {151, -2}, {174, 80} },
- { {200, 53}, {187, 47}, {159, 40}, {118, 38}, {100, 18}, {141,111} },
- { {179, 78}, {166, 86}, {197, 50}, {207, 27}, {187, 0}, {115,139} },
- { {218, 34}, {220, 29}, {174, 46}, {128, 61}, { 54, 89}, {187, 65} } },
- { { {238, 14}, {197, 18}, {125, 26}, { 90, 25}, { 82, 13}, {161, 86} },
- { {189, 1}, {205, -2}, {156, -4}, {143, -4}, {146, -4}, {172, 72} },
- { {230, 31}, {192, 45}, {102, 76}, { 38, 85}, { 56, 41}, { 64,173} },
- { {166, 91}, {141,111}, {128,116}, {118,109}, {177, 0}, { 23,222} },
- { {253, 14}, {236, 21}, {174, 49}, { 33,118}, { 44, 93}, { 23,187} } },
- { { {218, 28}, {179, 28}, {118, 35}, { 95, 30}, { 72, 24}, {128,108} },
- { {187, 1}, {174, -1}, {125, -1}, {110, -1}, {108, -1}, {202, 52} },
- { {197, 53}, {146, 75}, { 46,118}, { 33,103}, { 64, 50}, {118,126} },
- { {138,114}, {128,122}, {161, 86}, {243, -6}, {195, 0}, { 38,210} },
- { {215, 39}, {179, 58}, { 97,101}, { 95, 85}, { 87, 70}, { 69,152} } },
- }, {
- { { {236, 24}, {205, 18}, {172, 12}, {154, 6}, {125, 1}, {169, 75} },
- { {187, 4}, {230, -2}, {228, -4}, {236, -4}, {241, -2}, {192, 66} },
- { {200, 46}, {187, 42}, {159, 34}, {136, 25}, {105, 10}, {179, 62} },
- { {207, 55}, {192, 63}, {192, 54}, {195, 36}, {177, 1}, {143, 98} },
- { {225, 27}, {207, 34}, {200, 30}, {131, 57}, { 97, 60}, {197, 45} } },
- { { {271, 8}, {218, 13}, {133, 19}, { 90, 19}, { 72, 7}, {182, 51} },
- { {179, 1}, {225, -1}, {154, -2}, {110, -1}, { 92, 0}, {195, 41} },
- { {241, 26}, {189, 40}, { 82, 64}, { 33, 60}, { 67, 17}, {120, 94} },
- { {192, 68}, {151, 94}, {146, 90}, {143, 72}, {161, 0}, {113,128} },
- { {256, 12}, {218, 29}, {166, 48}, { 44, 99}, { 31, 87}, {148, 78} } },
- { { {238, 20}, {184, 22}, {113, 27}, { 90, 22}, { 74, 9}, {192, 37} },
- { {184, 0}, {215, -1}, {141, -1}, { 97, 0}, { 49, 0}, {264, 13} },
- { {182, 51}, {138, 61}, { 95, 63}, { 54, 59}, { 64, 25}, {200, 45} },
- { {179, 75}, {156, 87}, {174, 65}, {177, 44}, {174, 0}, {164, 85} },
- { {195, 45}, {148, 65}, {105, 79}, { 95, 72}, { 87, 60}, {169, 63} } },
- }
-};
-
-static const uint8_t vp5_coord_div[] = { 2, 2, 2, 2, 4, 4 };
-
-#endif /* AVCODEC_VP5DATA_H */
+++ /dev/null
-/**
- * @file
- * VP6 compatible video decoder
- *
- * Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_VP6DATA_H
-#define AVCODEC_VP6DATA_H
-
-#include "vp56data.h"
-
-static const uint8_t vp6_def_fdv_vector_model[2][8] = {
- { 247, 210, 135, 68, 138, 220, 239, 246 },
- { 244, 184, 201, 44, 173, 221, 239, 253 },
-};
-
-static const uint8_t vp6_def_pdv_vector_model[2][7] = {
- { 225, 146, 172, 147, 214, 39, 156 },
- { 204, 170, 119, 235, 140, 230, 228 },
-};
-
-static const uint8_t vp6_def_coeff_reorder[] = {
- 0, 0, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 3, 3, 4, 4, 4,
- 5, 5, 5, 5, 6, 6, 7, 7,
- 7, 7, 7, 8, 8, 9, 9, 9,
- 9, 9, 9, 10, 10, 11, 11, 11,
- 11, 11, 11, 12, 12, 12, 12, 12,
- 12, 13, 13, 13, 13, 13, 14, 14,
- 14, 14, 15, 15, 15, 15, 15, 15,
-};
-
-static const uint8_t vp6_def_runv_coeff_model[2][14] = {
- { 198, 197, 196, 146, 198, 204, 169, 142, 130, 136, 149, 149, 191, 249 },
- { 135, 201, 181, 154, 98, 117, 132, 126, 146, 169, 184, 240, 246, 254 },
-};
-
-static const uint8_t vp6_sig_dct_pct[2][2] = {
- { 237, 246 },
- { 231, 243 },
-};
-
-static const uint8_t vp6_pdv_pct[2][7] = {
- { 253, 253, 254, 254, 254, 254, 254 },
- { 245, 253, 254, 254, 254, 254, 254 },
-};
-
-static const uint8_t vp6_fdv_pct[2][8] = {
- { 254, 254, 254, 254, 254, 250, 250, 252 },
- { 254, 254, 254, 254, 254, 251, 251, 254 },
-};
-
-static const uint8_t vp6_dccv_pct[2][11] = {
- { 146, 255, 181, 207, 232, 243, 238, 251, 244, 250, 249 },
- { 179, 255, 214, 240, 250, 255, 244, 255, 255, 255, 255 },
-};
-
-static const uint8_t vp6_coeff_reorder_pct[] = {
- 255, 132, 132, 159, 153, 151, 161, 170,
- 164, 162, 136, 110, 103, 114, 129, 118,
- 124, 125, 132, 136, 114, 110, 142, 135,
- 134, 123, 143, 126, 153, 183, 166, 161,
- 171, 180, 179, 164, 203, 218, 225, 217,
- 215, 206, 203, 217, 229, 241, 248, 243,
- 253, 255, 253, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255,
-};
-
-static const uint8_t vp6_runv_pct[2][14] = {
- { 219, 246, 238, 249, 232, 239, 249, 255, 248, 253, 239, 244, 241, 248 },
- { 198, 232, 251, 253, 219, 241, 253, 255, 248, 249, 244, 238, 251, 255 },
-};
-
-static const uint8_t vp6_ract_pct[3][2][6][11] = {
- { { { 227, 246, 230, 247, 244, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 209, 231, 231, 249, 249, 253, 255, 255, 255 },
- { 255, 255, 225, 242, 241, 251, 253, 255, 255, 255, 255 },
- { 255, 255, 241, 253, 252, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
- { { 240, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 240, 253, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
- { { { 206, 203, 227, 239, 247, 255, 253, 255, 255, 255, 255 },
- { 207, 199, 220, 236, 243, 252, 252, 255, 255, 255, 255 },
- { 212, 219, 230, 243, 244, 253, 252, 255, 255, 255, 255 },
- { 236, 237, 247, 252, 253, 255, 255, 255, 255, 255, 255 },
- { 240, 240, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
- { { 230, 233, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 238, 238, 250, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 248, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
- { { { 225, 239, 227, 231, 244, 253, 243, 255, 255, 253, 255 },
- { 232, 234, 224, 228, 242, 249, 242, 252, 251, 251, 255 },
- { 235, 249, 238, 240, 251, 255, 249, 255, 253, 253, 255 },
- { 249, 253, 251, 250, 255, 255, 255, 255, 255, 255, 255 },
- { 251, 250, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
- { { 243, 244, 250, 250, 255, 255, 255, 255, 255, 255, 255 },
- { 249, 248, 250, 253, 255, 255, 255, 255, 255, 255, 255 },
- { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
- { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } }
-};
-
-static const int vp6_dccv_lc[3][5][2] = {
- { { 122, 133 }, { 0, 1 }, { 78, 171 }, { 139, 117 }, { 168, 79 } },
- { { 133, 51 }, { 0, 1 }, { 169, 71 }, { 214, 44 }, { 210, 38 } },
- { { 142, -16 }, { 0, 1 }, { 221, -30 }, { 246, -3 }, { 203, 17 } },
-};
-
-static const uint8_t vp6_coeff_groups[] = {
- 0, 0, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5,
-};
-
-static const int16_t vp6_block_copy_filter[17][8][4] = {
- { { 0, 128, 0, 0 }, /* 0 */
- { -3, 122, 9, 0 },
- { -4, 109, 24, -1 },
- { -5, 91, 45, -3 },
- { -4, 68, 68, -4 },
- { -3, 45, 91, -5 },
- { -1, 24, 109, -4 },
- { 0, 9, 122, -3 } },
- { { 0, 128, 0, 0 }, /* 1 */
- { -4, 124, 9, -1 },
- { -5, 110, 25, -2 },
- { -6, 91, 46, -3 },
- { -5, 69, 69, -5 },
- { -3, 46, 91, -6 },
- { -2, 25, 110, -5 },
- { -1, 9, 124, -4 } },
- { { 0, 128, 0, 0 }, /* 2 */
- { -4, 123, 10, -1 },
- { -6, 110, 26, -2 },
- { -7, 92, 47, -4 },
- { -6, 70, 70, -6 },
- { -4, 47, 92, -7 },
- { -2, 26, 110, -6 },
- { -1, 10, 123, -4 } },
- { { 0, 128, 0, 0 }, /* 3 */
- { -5, 124, 10, -1 },
- { -7, 110, 27, -2 },
- { -7, 91, 48, -4 },
- { -6, 70, 70, -6 },
- { -4, 48, 92, -8 },
- { -2, 27, 110, -7 },
- { -1, 10, 124, -5 } },
- { { 0, 128, 0, 0 }, /* 4 */
- { -6, 124, 11, -1 },
- { -8, 111, 28, -3 },
- { -8, 92, 49, -5 },
- { -7, 71, 71, -7 },
- { -5, 49, 92, -8 },
- { -3, 28, 111, -8 },
- { -1, 11, 124, -6 } },
- { { 0, 128, 0, 0 }, /* 5 */
- { -6, 123, 12, -1 },
- { -9, 111, 29, -3 },
- { -9, 93, 50, -6 },
- { -8, 72, 72, -8 },
- { -6, 50, 93, -9 },
- { -3, 29, 111, -9 },
- { -1, 12, 123, -6 } },
- { { 0, 128, 0, 0 }, /* 6 */
- { -7, 124, 12, -1 },
- { -10, 111, 30, -3 },
- { -10, 93, 51, -6 },
- { -9, 73, 73, -9 },
- { -6, 51, 93, -10 },
- { -3, 30, 111, -10 },
- { -1, 12, 124, -7 } },
- { { 0, 128, 0, 0 }, /* 7 */
- { -7, 123, 13, -1 },
- { -11, 112, 31, -4 },
- { -11, 94, 52, -7 },
- { -10, 74, 74, -10 },
- { -7, 52, 94, -11 },
- { -4, 31, 112, -11 },
- { -1, 13, 123, -7 } },
- { { 0, 128, 0, 0 }, /* 8 */
- { -8, 124, 13, -1 },
- { -12, 112, 32, -4 },
- { -12, 94, 53, -7 },
- { -10, 74, 74, -10 },
- { -7, 53, 94, -12 },
- { -4, 32, 112, -12 },
- { -1, 13, 124, -8 } },
- { { 0, 128, 0, 0 }, /* 9 */
- { -9, 124, 14, -1 },
- { -13, 112, 33, -4 },
- { -13, 95, 54, -8 },
- { -11, 75, 75, -11 },
- { -8, 54, 95, -13 },
- { -4, 33, 112, -13 },
- { -1, 14, 124, -9 } },
- { { 0, 128, 0, 0 }, /* 10 */
- { -9, 123, 15, -1 },
- { -14, 113, 34, -5 },
- { -14, 95, 55, -8 },
- { -12, 76, 76, -12 },
- { -8, 55, 95, -14 },
- { -5, 34, 112, -13 },
- { -1, 15, 123, -9 } },
- { { 0, 128, 0, 0 }, /* 11 */
- { -10, 124, 15, -1 },
- { -14, 113, 34, -5 },
- { -15, 96, 56, -9 },
- { -13, 77, 77, -13 },
- { -9, 56, 96, -15 },
- { -5, 34, 113, -14 },
- { -1, 15, 124, -10 } },
- { { 0, 128, 0, 0 }, /* 12 */
- { -10, 123, 16, -1 },
- { -15, 113, 35, -5 },
- { -16, 98, 56, -10 },
- { -14, 78, 78, -14 },
- { -10, 56, 98, -16 },
- { -5, 35, 113, -15 },
- { -1, 16, 123, -10 } },
- { { 0, 128, 0, 0 }, /* 13 */
- { -11, 124, 17, -2 },
- { -16, 113, 36, -5 },
- { -17, 98, 57, -10 },
- { -14, 78, 78, -14 },
- { -10, 57, 98, -17 },
- { -5, 36, 113, -16 },
- { -2, 17, 124, -11 } },
- { { 0, 128, 0, 0 }, /* 14 */
- { -12, 125, 17, -2 },
- { -17, 114, 37, -6 },
- { -18, 99, 58, -11 },
- { -15, 79, 79, -15 },
- { -11, 58, 99, -18 },
- { -6, 37, 114, -17 },
- { -2, 17, 125, -12 } },
- { { 0, 128, 0, 0 }, /* 15 */
- { -12, 124, 18, -2 },
- { -18, 114, 38, -6 },
- { -19, 99, 59, -11 },
- { -16, 80, 80, -16 },
- { -11, 59, 99, -19 },
- { -6, 38, 114, -18 },
- { -2, 18, 124, -12 } },
- { { 0, 128, 0, 0 }, /* 16 */
- { -4, 118, 16, -2 },
- { -7, 106, 34, -5 },
- { -8, 90, 53, -7 },
- { -8, 72, 72, -8 },
- { -7, 53, 90, -8 },
- { -5, 34, 106, -7 },
- { -2, 16, 118, -4 } },
-};
-
-static const VP56Tree vp6_pcr_tree[] = {
- { 8, 0},
- { 4, 1},
- { 2, 2}, {-1}, {-2},
- { 2, 3}, {-3}, {-4},
- { 8, 4},
- { 4, 5},
- { 2, 6}, {-5}, {-6},
- { 2, 7}, {-7}, {-8},
- {-0},
-};
-
-static const uint8_t vp6_coord_div[] = { 4, 4, 4, 4, 8, 8 };
-
-static const uint8_t vp6_huff_coeff_map[] = {
- 13, 14, 11, 0, 1, 15, 16, 18, 2, 17, 3, 4, 19, 20, 5, 6, 21, 22, 7, 8, 9, 10
-};
-
-static const uint8_t vp6_huff_run_map[] = {
- 10, 13, 11, 12, 0, 1, 2, 3, 14, 8, 15, 16, 4, 5, 6, 7
-};
-
-#endif /* AVCODEC_VP6DATA_H */
+++ /dev/null
-/*
- * WMA compatible codec
- * Copyright (c) 2002-2007 The FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_WMA_H
-#define AVCODEC_WMA_H
-
-#include "get_bits.h"
-#include "put_bits.h"
-#include "dsputil.h"
-#include "fft.h"
-
-/* size of blocks */
-#define BLOCK_MIN_BITS 7
-#define BLOCK_MAX_BITS 11
-#define BLOCK_MAX_SIZE (1 << BLOCK_MAX_BITS)
-
-#define BLOCK_NB_SIZES (BLOCK_MAX_BITS - BLOCK_MIN_BITS + 1)
-
-/* XXX: find exact max size */
-#define HIGH_BAND_MAX_SIZE 16
-
-#define NB_LSP_COEFS 10
-
-/* XXX: is it a suitable value ? */
-#define MAX_CODED_SUPERFRAME_SIZE 16384
-
-#define MAX_CHANNELS 2
-
-#define NOISE_TAB_SIZE 8192
-
-#define LSP_POW_BITS 7
-
-//FIXME should be in wmadec
-#define VLCBITS 9
-#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
-
-typedef float WMACoef; ///< type for decoded coefficients, int16_t would be enough for wma 1/2
-
-typedef struct CoefVLCTable {
- int n; ///< total number of codes
- int max_level;
- const uint32_t *huffcodes; ///< VLC bit values
- const uint8_t *huffbits; ///< VLC bit size
- const uint16_t *levels; ///< table to build run/level tables
-} CoefVLCTable;
-
-typedef struct WMACodecContext {
- AVCodecContext* avctx;
- GetBitContext gb;
- PutBitContext pb;
- int sample_rate;
- int nb_channels;
- int bit_rate;
- int version; ///< 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2)
- int block_align;
- int use_bit_reservoir;
- int use_variable_block_len;
- int use_exp_vlc; ///< exponent coding: 0 = lsp, 1 = vlc + delta
- int use_noise_coding; ///< true if perceptual noise is added
- int byte_offset_bits;
- VLC exp_vlc;
- int exponent_sizes[BLOCK_NB_SIZES];
- uint16_t exponent_bands[BLOCK_NB_SIZES][25];
- int high_band_start[BLOCK_NB_SIZES]; ///< index of first coef in high band
- int coefs_start; ///< first coded coef
- int coefs_end[BLOCK_NB_SIZES]; ///< max number of coded coefficients
- int exponent_high_sizes[BLOCK_NB_SIZES];
- int exponent_high_bands[BLOCK_NB_SIZES][HIGH_BAND_MAX_SIZE];
- VLC hgain_vlc;
-
- /* coded values in high bands */
- int high_band_coded[MAX_CHANNELS][HIGH_BAND_MAX_SIZE];
- int high_band_values[MAX_CHANNELS][HIGH_BAND_MAX_SIZE];
-
- /* there are two possible tables for spectral coefficients */
-//FIXME the following 3 tables should be shared between decoders
- VLC coef_vlc[2];
- uint16_t *run_table[2];
- float *level_table[2];
- uint16_t *int_table[2];
- const CoefVLCTable *coef_vlcs[2];
- /* frame info */
- int frame_len; ///< frame length in samples
- int frame_len_bits; ///< frame_len = 1 << frame_len_bits
- int nb_block_sizes; ///< number of block sizes
- /* block info */
- int reset_block_lengths;
- int block_len_bits; ///< log2 of current block length
- int next_block_len_bits; ///< log2 of next block length
- int prev_block_len_bits; ///< log2 of prev block length
- int block_len; ///< block length in samples
- int block_num; ///< block number in current frame
- int block_pos; ///< current position in frame
- uint8_t ms_stereo; ///< true if mid/side stereo mode
- uint8_t channel_coded[MAX_CHANNELS]; ///< true if channel is coded
- int exponents_bsize[MAX_CHANNELS]; ///< log2 ratio frame/exp. length
- DECLARE_ALIGNED(16, float, exponents)[MAX_CHANNELS][BLOCK_MAX_SIZE];
- float max_exponent[MAX_CHANNELS];
- WMACoef coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
- DECLARE_ALIGNED(16, float, coefs)[MAX_CHANNELS][BLOCK_MAX_SIZE];
- DECLARE_ALIGNED(16, FFTSample, output)[BLOCK_MAX_SIZE * 2];
- FFTContext mdct_ctx[BLOCK_NB_SIZES];
- float *windows[BLOCK_NB_SIZES];
- /* output buffer for one frame and the last for IMDCT windowing */
- DECLARE_ALIGNED(16, float, frame_out)[MAX_CHANNELS][BLOCK_MAX_SIZE * 2];
- /* last frame info */
- uint8_t last_superframe[MAX_CODED_SUPERFRAME_SIZE + 4]; /* padding added */
- int last_bitoffset;
- int last_superframe_len;
- float noise_table[NOISE_TAB_SIZE];
- int noise_index;
- float noise_mult; /* XXX: suppress that and integrate it in the noise array */
- /* lsp_to_curve tables */
- float lsp_cos_table[BLOCK_MAX_SIZE];
- float lsp_pow_e_table[256];
- float lsp_pow_m_table1[(1 << LSP_POW_BITS)];
- float lsp_pow_m_table2[(1 << LSP_POW_BITS)];
- DSPContext dsp;
-
-#ifdef TRACE
- int frame_count;
-#endif
-} WMACodecContext;
-
-extern const uint16_t ff_wma_critical_freqs[25];
-extern const uint16_t ff_wma_hgain_huffcodes[37];
-extern const uint8_t ff_wma_hgain_huffbits[37];
-extern const float ff_wma_lsp_codebook[NB_LSP_COEFS][16];
-extern const uint32_t ff_aac_scalefactor_code[121];
-extern const uint8_t ff_aac_scalefactor_bits[121];
-
-int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version,
- unsigned int decode_flags);
-int ff_wma_init(AVCodecContext * avctx, int flags2);
-int ff_wma_total_gain_to_bits(int total_gain);
-int ff_wma_end(AVCodecContext *avctx);
-unsigned int ff_wma_get_large_val(GetBitContext* gb);
-int ff_wma_run_level_decode(AVCodecContext* avctx, GetBitContext* gb,
- VLC *vlc,
- const float *level_table, const uint16_t *run_table,
- int version, WMACoef *ptr, int offset,
- int num_coefs, int block_len, int frame_len_bits,
- int coef_nb_bits);
-
-#endif /* AVCODEC_WMA_H */
+++ /dev/null
-/*
- * WMA compatible decoder
- * copyright (c) 2002 The FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Various WMA tables.
- */
-
-#ifndef AVCODEC_WMADATA_H
-#define AVCODEC_WMADATA_H
-
-#include <stdint.h>
-#include "wma.h"
-
-const uint16_t ff_wma_critical_freqs[25] = {
- 100, 200, 300, 400, 510, 630, 770, 920,
- 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150,
- 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500,
- 24500,
-};
-
-/* first value is number of bands */
-static const uint8_t exponent_band_22050[3][25] = {
- { 10, 4, 8, 4, 8, 8, 12, 20, 24, 24, 16, },
- { 14, 4, 8, 8, 4, 12, 12, 16, 24, 16, 20, 24, 32, 40, 36, },
- { 23, 4, 4, 4, 8, 4, 4, 8, 8, 8, 8, 8, 12, 12, 16, 16, 24, 24, 32, 44, 48, 60, 84, 72, },
-};
-
-static const uint8_t exponent_band_32000[3][25] = {
- { 11, 4, 4, 8, 4, 4, 12, 16, 24, 20, 28, 4, },
- { 15, 4, 8, 4, 4, 8, 8, 16, 20, 12, 20, 20, 28, 40, 56, 8, },
- { 16, 8, 4, 8, 8, 12, 16, 20, 24, 40, 32, 32, 44, 56, 80, 112, 16, },
-};
-
-static const uint8_t exponent_band_44100[3][25] = {
- { 12, 4, 4, 4, 4, 4, 8, 8, 8, 12, 16, 20, 36, },
- { 15, 4, 8, 4, 8, 8, 4, 8, 8, 12, 12, 12, 24, 28, 40, 76, },
- { 17, 4, 8, 8, 4, 12, 12, 8, 8, 24, 16, 20, 24, 32, 40, 60, 80, 152, },
-};
-
-const uint16_t ff_wma_hgain_huffcodes[37] = {
- 0x00003, 0x002e7, 0x00001, 0x005cd, 0x0005d, 0x005c9, 0x0005e, 0x00003,
- 0x00016, 0x0000b, 0x00001, 0x00006, 0x00001, 0x00006, 0x00004, 0x00005,
- 0x00004, 0x00007, 0x00003, 0x00007, 0x00004, 0x0000a, 0x0000a, 0x00002,
- 0x00003, 0x00000, 0x00005, 0x00002, 0x0005f, 0x00004, 0x00003, 0x00002,
- 0x005c8, 0x000b8, 0x005ca, 0x005cb, 0x005cc,
-};
-
-const uint8_t ff_wma_hgain_huffbits[37] = {
- 10, 12, 10, 13, 9, 13, 9, 8,
- 7, 5, 5, 4, 4, 3, 3, 3,
- 4, 3, 4, 4, 5, 5, 6, 8,
- 7, 10, 8, 10, 9, 8, 9, 9,
- 13, 10, 13, 13, 13,
-};
-
-const float ff_wma_lsp_codebook[NB_LSP_COEFS][16] = {
- { 1.98732877, 1.97944528, 1.97179088, 1.96260549, 1.95038374, 1.93336114, 1.90719232, 1.86191415, },
- { 1.97260000, 1.96083160, 1.94982586, 1.93806164, 1.92516608, 1.91010199, 1.89232331, 1.87149812,
- 1.84564818, 1.81358067, 1.77620070, 1.73265264, 1.67907855, 1.60959081, 1.50829650, 1.33120330, },
- { 1.90109110, 1.86482426, 1.83419671, 1.80168452, 1.76650116, 1.72816320, 1.68502700, 1.63738256,
- 1.58501580, 1.51795181, 1.43679906, 1.33950585, 1.24176208, 1.12260729, 0.96749668, 0.74048265, },
- { 1.76943864, 1.67822463, 1.59946365, 1.53560582, 1.47470796, 1.41210167, 1.34509536, 1.27339507,
- 1.19303814, 1.09765169, 0.98818722, 0.87239446, 0.74369172, 0.59768184, 0.43168630, 0.17977021, },
- { 1.43428349, 1.32038354, 1.21074086, 1.10577988, 1.00561746, 0.90335924, 0.80437489, 0.70709671,
- 0.60427395, 0.49814048, 0.38509539, 0.27106800, 0.14407416, 0.00219910, -0.16725141, -0.36936085, },
- { 0.99895687, 0.84188166, 0.70753739, 0.57906595, 0.47055563, 0.36966965, 0.26826648, 0.17163380,
- 0.07208392, -0.03062936, -1.40037388, -0.25128968, -0.37213937, -0.51075646, -0.64887512, -0.80308031, },
- { 0.26515280, 0.06313551, -0.08872080, -0.21103548, -0.31069678, -0.39680323, -0.47223474, -0.54167135,
- -0.61444740, -0.68943343, -0.76580211, -0.85170082, -0.95289061, -1.06514703, -1.20510707, -1.37617746, },
- { -0.53940301, -0.73770929, -0.88424876, -1.01117930, -1.13389091, -1.26830073, -1.42041987, -1.62033919,
- -1.10158808, -1.16512566, -1.23337128, -1.30414401, -1.37663312, -1.46853845, -1.57625798, -1.66893638, },
- { -0.38601997, -0.56009350, -0.66978483, -0.76028471, -0.83846064, -0.90868087, -0.97408881, -1.03694962, },
- { -1.56144989, -1.65944032, -1.72689685, -1.77857740, -1.82203011, -1.86220079, -1.90283983, -1.94820479, },
-};
-
-static const uint32_t coef0_huffcodes[666] = {
- 0x00258, 0x0003d, 0x00000, 0x00005, 0x00008, 0x00008, 0x0000c, 0x0001b,
- 0x0001f, 0x00015, 0x00024, 0x00032, 0x0003a, 0x00026, 0x0002c, 0x0002f,
- 0x0004a, 0x0004d, 0x00061, 0x00070, 0x00073, 0x00048, 0x00052, 0x0005a,
- 0x0005d, 0x0006e, 0x00099, 0x0009e, 0x000c1, 0x000ce, 0x000e4, 0x000f0,
- 0x00093, 0x0009e, 0x000a2, 0x000a1, 0x000b8, 0x000d2, 0x000d3, 0x0012e,
- 0x00130, 0x000de, 0x0012d, 0x0019b, 0x001e4, 0x00139, 0x0013a, 0x0013f,
- 0x0014f, 0x0016d, 0x001a2, 0x0027c, 0x0027e, 0x00332, 0x0033c, 0x0033f,
- 0x0038b, 0x00396, 0x003c5, 0x00270, 0x0027c, 0x0025a, 0x00395, 0x00248,
- 0x004bd, 0x004fb, 0x00662, 0x00661, 0x0071b, 0x004e6, 0x004ff, 0x00666,
- 0x0071c, 0x0071a, 0x0071f, 0x00794, 0x00536, 0x004e2, 0x0078e, 0x004ee,
- 0x00518, 0x00535, 0x004fb, 0x0078d, 0x00530, 0x00680, 0x0068f, 0x005cb,
- 0x00965, 0x006a6, 0x00967, 0x0097f, 0x00682, 0x006ae, 0x00cd0, 0x00e28,
- 0x00f13, 0x00f1f, 0x009f5, 0x00cd3, 0x00f11, 0x00926, 0x00964, 0x00f32,
- 0x00f12, 0x00f30, 0x00966, 0x00d0b, 0x00a68, 0x00b91, 0x009c7, 0x00b73,
- 0x012fa, 0x0131d, 0x013f9, 0x01ca0, 0x0199c, 0x01c7a, 0x0198c, 0x01248,
- 0x01c74, 0x01c64, 0x0139e, 0x012fd, 0x00a77, 0x012fc, 0x01c7b, 0x012ca,
- 0x014cc, 0x014d2, 0x014e3, 0x014dc, 0x012dc, 0x03344, 0x02598, 0x0263c,
- 0x0333b, 0x025e6, 0x01a1c, 0x01e3c, 0x014e2, 0x033d4, 0x01a11, 0x03349,
- 0x03cce, 0x014e1, 0x01a34, 0x0273e, 0x02627, 0x0273f, 0x038ee, 0x03971,
- 0x03c67, 0x03c61, 0x0333d, 0x038c2, 0x0263f, 0x038cd, 0x02638, 0x02e41,
- 0x0351f, 0x03348, 0x03c66, 0x03562, 0x02989, 0x027d5, 0x0333c, 0x02e4f,
- 0x0343b, 0x02ddf, 0x04bc8, 0x029c0, 0x02e57, 0x04c72, 0x025b7, 0x03547,
- 0x03540, 0x029d3, 0x04c45, 0x025bb, 0x06600, 0x04c73, 0x04bce, 0x0357b,
- 0x029a6, 0x029d2, 0x0263e, 0x0298a, 0x07183, 0x06602, 0x07958, 0x04b66,
- 0x0537d, 0x05375, 0x04fe9, 0x04b67, 0x0799f, 0x04bc9, 0x051fe, 0x06a3b,
- 0x05bb6, 0x04fa8, 0x0728f, 0x05376, 0x0492c, 0x0537e, 0x0795a, 0x06a3c,
- 0x0e515, 0x07887, 0x0683a, 0x051f9, 0x051fd, 0x0cc6a, 0x06a8a, 0x0cc6d,
- 0x05bb3, 0x0683b, 0x051fc, 0x05378, 0x0728e, 0x07886, 0x05bb7, 0x0f2a4,
- 0x0795b, 0x0683c, 0x09fc1, 0x0683d, 0x0b752, 0x09678, 0x0a3e8, 0x06ac7,
- 0x051f0, 0x0b759, 0x06af3, 0x04b6b, 0x0f2a0, 0x0f2ad, 0x096c3, 0x0e518,
- 0x0b75c, 0x0d458, 0x0cc6b, 0x0537c, 0x067aa, 0x04fea, 0x0343a, 0x0cc71,
- 0x0967f, 0x09fc4, 0x096c2, 0x0e516, 0x0f2a1, 0x0d45c, 0x0d45d, 0x0d45e,
- 0x12fb9, 0x0967e, 0x1982f, 0x09883, 0x096c4, 0x0b753, 0x12fb8, 0x0f2a8,
- 0x1ca21, 0x096c5, 0x0e51a, 0x1ca27, 0x12f3c, 0x0d471, 0x0f2aa, 0x0b75b,
- 0x12fbb, 0x0f2a9, 0x0f2ac, 0x0d45a, 0x0b74f, 0x096c8, 0x16e91, 0x096ca,
- 0x12fbf, 0x0d0a7, 0x13103, 0x0d516, 0x16e99, 0x12cbd, 0x0a3ea, 0x19829,
- 0x0b755, 0x29ba7, 0x1ca28, 0x29ba5, 0x16e93, 0x1982c, 0x19828, 0x25994,
- 0x0a3eb, 0x1ca29, 0x16e90, 0x1ca25, 0x1982d, 0x1ca26, 0x16e9b, 0x0b756,
- 0x0967c, 0x25997, 0x0b75f, 0x198d3, 0x0b757, 0x19a2a, 0x0d45b, 0x0e517,
- 0x1ca24, 0x1ca23, 0x1ca22, 0x0b758, 0x16e97, 0x0cd14, 0x13100, 0x00007,
- 0x0003b, 0x0006b, 0x00097, 0x00138, 0x00125, 0x00173, 0x00258, 0x00335,
- 0x0028e, 0x004c6, 0x00715, 0x00729, 0x004ef, 0x00519, 0x004ed, 0x00532,
- 0x0068c, 0x00686, 0x00978, 0x00e5d, 0x00e31, 0x009f4, 0x00b92, 0x012f8,
- 0x00d06, 0x00a67, 0x00d44, 0x00a76, 0x00d59, 0x012cd, 0x01c78, 0x01c75,
- 0x0199f, 0x0198f, 0x01c67, 0x014c6, 0x01c79, 0x01c76, 0x00b94, 0x00d1b,
- 0x01e32, 0x01e31, 0x01ab0, 0x01a05, 0x01aa1, 0x0333a, 0x025e5, 0x02626,
- 0x03541, 0x03544, 0x03421, 0x03546, 0x02e55, 0x02e56, 0x0492d, 0x02dde,
- 0x0299b, 0x02ddc, 0x0357a, 0x0249c, 0x0668b, 0x1c77f, 0x1ca20, 0x0d45f,
- 0x09886, 0x16e9a, 0x0f2a7, 0x0b751, 0x0a3ee, 0x0cf59, 0x0cf57, 0x0b754,
- 0x0d0a6, 0x16e98, 0x0b760, 0x06ac6, 0x0a3f0, 0x12fbe, 0x13104, 0x0f2a5,
- 0x0a3ef, 0x0d472, 0x12cba, 0x1982e, 0x16e9c, 0x1c77e, 0x198d0, 0x13105,
- 0x16e92, 0x0b75d, 0x0d459, 0x0001a, 0x000c0, 0x0016c, 0x003cd, 0x00350,
- 0x0067b, 0x0051e, 0x006a9, 0x009f4, 0x00b72, 0x00d09, 0x01249, 0x01e3d,
- 0x01ca1, 0x01a1f, 0x01721, 0x01a8a, 0x016e8, 0x03347, 0x01a35, 0x0249d,
- 0x0299a, 0x02596, 0x02e4e, 0x0298b, 0x07182, 0x04c46, 0x025ba, 0x02e40,
- 0x027d6, 0x04fe8, 0x06607, 0x05310, 0x09884, 0x072e1, 0x06a3d, 0x04b6a,
- 0x04c7a, 0x06603, 0x04c7b, 0x03428, 0x06605, 0x09664, 0x09fc0, 0x071de,
- 0x06601, 0x05bb2, 0x09885, 0x0a3e2, 0x1c61f, 0x12cbb, 0x0b750, 0x0cf58,
- 0x0967d, 0x25995, 0x668ad, 0x0b75a, 0x09fc2, 0x0537f, 0x0b75e, 0x13fae,
- 0x12fbc, 0x00031, 0x001c4, 0x004c5, 0x005b8, 0x00cf4, 0x0096f, 0x00d46,
- 0x01e57, 0x01a04, 0x02625, 0x03346, 0x028f9, 0x04c47, 0x072e0, 0x04b69,
- 0x03420, 0x07957, 0x06639, 0x0799e, 0x07959, 0x07881, 0x04b68, 0x09fc3,
- 0x09fd6, 0x0cc70, 0x0a3f1, 0x12cbe, 0x0e30e, 0x0e51b, 0x06af2, 0x12cbc,
- 0x1c77d, 0x0f2ab, 0x12fbd, 0x1aa2f, 0x0a3ec, 0x0d473, 0x05377, 0x0a3e9,
- 0x1982b, 0x0e300, 0x12f3f, 0x0cf5f, 0x096c0, 0x38c3c, 0x16e94, 0x16e95,
- 0x12f3d, 0x29ba4, 0x29ba6, 0x1c77c, 0x6a8ba, 0x3545c, 0x33457, 0x668ac,
- 0x6a8bb, 0x16e9d, 0x0e519, 0x25996, 0x12f3e, 0x00036, 0x0033e, 0x006ad,
- 0x00d03, 0x012c8, 0x0124a, 0x03c42, 0x03ccd, 0x06606, 0x07880, 0x06852,
- 0x06a3a, 0x05bb4, 0x0f2a2, 0x09fc7, 0x12cb9, 0x0cc6c, 0x0a6e8, 0x096c1,
- 0x0004a, 0x00355, 0x012f9, 0x014e8, 0x01abe, 0x025b6, 0x0492e, 0x09fc6,
- 0x051ff, 0x0cc6f, 0x096cb, 0x0d071, 0x198d1, 0x12cb8, 0x38c3d, 0x13faf,
- 0x096c9, 0x0009d, 0x00539, 0x012ce, 0x0341f, 0x029c1, 0x04b33, 0x0a3e3,
- 0x0d070, 0x16e96, 0x0b763, 0x000a0, 0x009ce, 0x038cc, 0x0343d, 0x051fa,
- 0x09888, 0x12fba, 0x000df, 0x00a75, 0x029a7, 0x09fc5, 0x0e301, 0x0967b,
- 0x001e7, 0x012c9, 0x051fb, 0x09889, 0x0f2a6, 0x0016f, 0x01cb9, 0x0cf5a,
- 0x12cbf, 0x09679, 0x00272, 0x01a15, 0x0967a, 0x003cb, 0x025f6, 0x0b762,
- 0x0028d, 0x03c60, 0x0cf5e, 0x00352, 0x03ccc, 0x0072f, 0x07186, 0x004ec,
- 0x05379, 0x0068e, 0x09887, 0x006a7, 0x06af1, 0x00e29, 0x0cf5b, 0x00f31,
- 0x0d470, 0x009c6, 0x013fb, 0x13102, 0x019a5, 0x13101, 0x01983, 0x01c65,
- 0x0124f, 0x014c7, 0x01726, 0x01abf, 0x03304, 0x02624, 0x03c41, 0x027d7,
- 0x02ddd, 0x02e54, 0x0343c, 0x06604, 0x07181, 0x0663a, 0x04fa9, 0x0663b,
- 0x05311, 0x0537a, 0x06839, 0x05bb5, 0x0492f, 0x06af0, 0x096c7, 0x0cc6e,
- 0x0537b, 0x0cf5c, 0x0cf56, 0x198d2, 0x0cf5d, 0x0a3ed, 0x0f2a3, 0x1982a,
- 0x0b761, 0x096c6,
-};
-
-static const uint8_t coef0_huffbits[666] = {
- 11, 6, 2, 3, 4, 5, 5, 5,
- 5, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 11, 11, 11, 10, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 12, 12, 11, 12,
- 12, 12, 12, 11, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 13, 13, 12,
- 12, 12, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 14,
- 13, 13, 13, 13, 13, 13, 13, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 13, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 15,
- 15, 14, 14, 15, 15, 15, 14, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 14, 15, 15, 15, 15, 16,
- 16, 16, 15, 16, 15, 15, 16, 16,
- 16, 16, 15, 16, 16, 16, 15, 16,
- 16, 15, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 15, 15, 16, 16,
- 15, 16, 16, 16, 17, 17, 17, 16,
- 16, 17, 16, 16, 16, 16, 17, 16,
- 17, 17, 16, 16, 15, 15, 15, 16,
- 17, 16, 17, 16, 16, 17, 17, 17,
- 17, 17, 17, 16, 17, 17, 17, 16,
- 17, 17, 16, 17, 17, 17, 16, 17,
- 17, 16, 16, 17, 17, 17, 18, 17,
- 17, 17, 17, 17, 18, 18, 17, 17,
- 17, 19, 17, 19, 18, 17, 17, 18,
- 17, 17, 18, 17, 17, 17, 18, 17,
- 17, 18, 17, 17, 17, 17, 17, 16,
- 17, 17, 17, 17, 18, 16, 17, 4,
- 6, 8, 9, 9, 10, 10, 10, 10,
- 11, 11, 11, 11, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 14, 13, 13, 13, 13,
- 13, 13, 14, 14, 14, 14, 14, 14,
- 15, 15, 15, 15, 15, 15, 16, 15,
- 15, 15, 15, 15, 15, 17, 17, 17,
- 16, 18, 16, 17, 17, 16, 16, 17,
- 17, 18, 17, 16, 17, 17, 17, 16,
- 17, 17, 18, 17, 18, 17, 17, 17,
- 18, 17, 17, 5, 8, 10, 10, 11,
- 11, 12, 12, 12, 13, 13, 14, 13,
- 13, 14, 14, 14, 14, 14, 14, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 16, 16, 15, 16, 16,
- 15, 15, 15, 15, 15, 16, 16, 15,
- 15, 16, 16, 17, 17, 18, 17, 16,
- 17, 18, 19, 17, 16, 16, 17, 17,
- 17, 6, 9, 11, 12, 12, 13, 13,
- 13, 14, 14, 14, 15, 15, 15, 16,
- 15, 15, 15, 15, 15, 15, 16, 16,
- 16, 16, 17, 18, 16, 16, 16, 18,
- 17, 16, 17, 18, 17, 17, 16, 17,
- 17, 16, 17, 16, 17, 18, 18, 18,
- 17, 19, 19, 17, 20, 19, 18, 19,
- 20, 18, 16, 18, 17, 7, 10, 12,
- 13, 13, 14, 14, 14, 15, 15, 16,
- 16, 16, 16, 16, 18, 16, 17, 17,
- 8, 11, 13, 14, 14, 15, 16, 16,
- 16, 16, 17, 17, 17, 18, 18, 17,
- 17, 8, 12, 14, 15, 15, 15, 17,
- 17, 18, 17, 9, 12, 14, 15, 16,
- 16, 17, 9, 13, 15, 16, 16, 17,
- 9, 13, 16, 16, 16, 10, 13, 16,
- 18, 17, 10, 14, 17, 10, 14, 17,
- 11, 14, 16, 11, 14, 11, 15, 12,
- 16, 12, 16, 12, 16, 12, 16, 12,
- 17, 13, 13, 17, 13, 17, 13, 13,
- 14, 14, 14, 14, 14, 14, 14, 15,
- 15, 15, 15, 15, 15, 15, 16, 15,
- 16, 16, 16, 16, 16, 16, 17, 16,
- 16, 16, 16, 17, 16, 17, 16, 17,
- 17, 17,
-};
-
-static const uint32_t coef1_huffcodes[555] = {
- 0x00115, 0x00002, 0x00001, 0x00000, 0x0000d, 0x00007, 0x00013, 0x0001d,
- 0x00008, 0x0000c, 0x00023, 0x0002b, 0x0003f, 0x00017, 0x0001b, 0x00043,
- 0x00049, 0x00050, 0x00055, 0x00054, 0x00067, 0x00064, 0x0007b, 0x0002d,
- 0x00028, 0x0002a, 0x00085, 0x00089, 0x0002b, 0x00035, 0x00090, 0x00091,
- 0x00094, 0x00088, 0x000c1, 0x000c6, 0x000f2, 0x000e3, 0x000c5, 0x000e2,
- 0x00036, 0x000f0, 0x000a7, 0x000cd, 0x000fb, 0x00059, 0x00116, 0x00103,
- 0x00108, 0x0012b, 0x0012d, 0x00188, 0x0012e, 0x0014c, 0x001c3, 0x00187,
- 0x001e7, 0x0006f, 0x00094, 0x00069, 0x001e6, 0x001ca, 0x00147, 0x00195,
- 0x000a7, 0x00213, 0x00209, 0x00303, 0x00295, 0x00289, 0x0028c, 0x0028d,
- 0x00312, 0x00330, 0x0029b, 0x00308, 0x00328, 0x0029a, 0x0025e, 0x003c5,
- 0x00384, 0x0039f, 0x00397, 0x00296, 0x0032e, 0x00332, 0x003c6, 0x003e6,
- 0x0012d, 0x000d1, 0x00402, 0x000dd, 0x00161, 0x0012b, 0x00127, 0x0045d,
- 0x00601, 0x004ab, 0x0045f, 0x00410, 0x004bf, 0x00528, 0x0045c, 0x00424,
- 0x00400, 0x00511, 0x00618, 0x0073d, 0x0063a, 0x00614, 0x0073c, 0x007c0,
- 0x007cf, 0x00802, 0x00966, 0x00964, 0x00951, 0x008a0, 0x00346, 0x00803,
- 0x00a52, 0x0024a, 0x007c1, 0x0063f, 0x00126, 0x00406, 0x00789, 0x008a2,
- 0x00960, 0x00967, 0x00c05, 0x00c70, 0x00c79, 0x00a5d, 0x00c26, 0x00c4d,
- 0x00372, 0x008a5, 0x00c08, 0x002c5, 0x00f11, 0x00cc4, 0x00f8e, 0x00e16,
- 0x00496, 0x00e77, 0x00f9c, 0x00c25, 0x00f1e, 0x00c27, 0x00f1f, 0x00e17,
- 0x00ccd, 0x00355, 0x00c09, 0x00c78, 0x00f90, 0x00521, 0x00357, 0x00356,
- 0x0068e, 0x00f9d, 0x00c04, 0x00e58, 0x00a20, 0x00a2c, 0x00c4c, 0x0052f,
- 0x00f8d, 0x01178, 0x01053, 0x01097, 0x0180f, 0x0180d, 0x012fb, 0x012aa,
- 0x0202a, 0x00a40, 0x018ed, 0x01ceb, 0x01455, 0x018e3, 0x012a1, 0x00354,
- 0x00353, 0x00f1c, 0x00c7b, 0x00c37, 0x0101d, 0x012cb, 0x01142, 0x0197d,
- 0x01095, 0x01e3b, 0x0186b, 0x00588, 0x01c2a, 0x014b8, 0x01e3a, 0x018ec,
- 0x01f46, 0x012fa, 0x00a53, 0x01ce8, 0x00a55, 0x01c29, 0x0117b, 0x01052,
- 0x012a0, 0x00589, 0x00950, 0x01c2b, 0x00a50, 0x0208b, 0x0180e, 0x02027,
- 0x02556, 0x01e20, 0x006e7, 0x01c28, 0x0197a, 0x00684, 0x020a2, 0x01f22,
- 0x03018, 0x039cf, 0x03e25, 0x02557, 0x0294c, 0x028a6, 0x00d11, 0x028a9,
- 0x02979, 0x00d46, 0x00a56, 0x039ce, 0x030cc, 0x0329a, 0x0149d, 0x0510f,
- 0x0451c, 0x02028, 0x03299, 0x01ced, 0x014b9, 0x00f85, 0x00c7a, 0x01800,
- 0x00341, 0x012ca, 0x039c8, 0x0329d, 0x00d0d, 0x03e20, 0x05144, 0x00d45,
- 0x030d0, 0x0186d, 0x030d5, 0x00d0f, 0x00d40, 0x04114, 0x020a1, 0x0297f,
- 0x03e24, 0x032f1, 0x04047, 0x030d4, 0x028a8, 0x00d0e, 0x0451d, 0x04044,
- 0x0297e, 0x04042, 0x030d2, 0x030cf, 0x03e21, 0x03e26, 0x028a5, 0x0451a,
- 0x00d48, 0x01a16, 0x00d44, 0x04518, 0x0149b, 0x039ca, 0x01498, 0x0403d,
- 0x0451b, 0x0149c, 0x032f3, 0x030cb, 0x08073, 0x03e22, 0x0529a, 0x020aa,
- 0x039cc, 0x0738a, 0x06530, 0x07389, 0x06193, 0x08071, 0x04043, 0x030ce,
- 0x05147, 0x07388, 0x05145, 0x08072, 0x04521, 0x00d47, 0x0297c, 0x030cd,
- 0x030ca, 0x0000b, 0x0000c, 0x00083, 0x000e4, 0x00048, 0x00102, 0x001cc,
- 0x001f5, 0x00097, 0x0020b, 0x00124, 0x00453, 0x00627, 0x00639, 0x00605,
- 0x00517, 0x001b8, 0x00663, 0x00667, 0x007c3, 0x00823, 0x00961, 0x00963,
- 0x00e5a, 0x00e59, 0x00a2b, 0x00cbf, 0x00292, 0x00a2d, 0x007d0, 0x00953,
- 0x00cc5, 0x00f84, 0x004ab, 0x014a7, 0x0068a, 0x0117a, 0x0052e, 0x01442,
- 0x0052c, 0x00c77, 0x00f8f, 0x004aa, 0x01094, 0x01801, 0x012c4, 0x0297b,
- 0x00952, 0x01f19, 0x006a5, 0x01149, 0x012c5, 0x01803, 0x022f2, 0x0329b,
- 0x04520, 0x0149e, 0x00d13, 0x01f16, 0x01ce9, 0x0101c, 0x006e6, 0x039c9,
- 0x06191, 0x07c8e, 0x06192, 0x0ca63, 0x039cd, 0x06190, 0x06884, 0x06885,
- 0x07382, 0x00d49, 0x00d41, 0x0450c, 0x0149a, 0x030d1, 0x08077, 0x03e23,
- 0x01a15, 0x0e701, 0x0e702, 0x08079, 0x0822a, 0x0a218, 0x07887, 0x0403f,
- 0x0520b, 0x0529b, 0x0e700, 0x04519, 0x00007, 0x000e0, 0x000d0, 0x0039b,
- 0x003e5, 0x00163, 0x0063e, 0x007c9, 0x00806, 0x00954, 0x01044, 0x01f44,
- 0x0197c, 0x01f45, 0x00a51, 0x01f47, 0x00951, 0x0052d, 0x02291, 0x0092f,
- 0x00a54, 0x00d12, 0x0297d, 0x00d0c, 0x01499, 0x0329e, 0x032f0, 0x02025,
- 0x039c6, 0x00a57, 0x03e46, 0x00d42, 0x0738b, 0x05146, 0x04046, 0x08078,
- 0x0510e, 0x07886, 0x02904, 0x04156, 0x04157, 0x06032, 0x030d3, 0x08bce,
- 0x04040, 0x0403e, 0x0a414, 0x10457, 0x08075, 0x06887, 0x07c8f, 0x039c7,
- 0x07387, 0x08070, 0x08bcf, 0x1482a, 0x10456, 0x1482b, 0x01a17, 0x06886,
- 0x0450d, 0x00013, 0x0006b, 0x00615, 0x0080b, 0x0082b, 0x00952, 0x00e5b,
- 0x018e2, 0x0186c, 0x01f18, 0x0329f, 0x00d43, 0x03e29, 0x05140, 0x05141,
- 0x0ca62, 0x06033, 0x03c42, 0x03e28, 0x0450f, 0x0a21a, 0x07384, 0x0a219,
- 0x0e703, 0x0a21b, 0x01a14, 0x07383, 0x045e6, 0x0007a, 0x0012c, 0x00ccc,
- 0x0068f, 0x01802, 0x00a52, 0x00953, 0x04045, 0x01a20, 0x0451f, 0x000a4,
- 0x00735, 0x01cec, 0x02029, 0x020a3, 0x0451e, 0x00069, 0x00c24, 0x02024,
- 0x032f2, 0x05142, 0x00196, 0x00523, 0x000a6, 0x0197b, 0x0030b, 0x0092e,
- 0x003e9, 0x03e27, 0x00160, 0x05143, 0x00652, 0x04041, 0x00734, 0x028a7,
- 0x0080f, 0x01483, 0x0097c, 0x00340, 0x0068b, 0x00522, 0x01054, 0x01096,
- 0x01f17, 0x0202b, 0x01cea, 0x020a0, 0x02978, 0x02026, 0x0297a, 0x039cb,
- 0x03e2b, 0x0149f, 0x0329c, 0x07385, 0x08074, 0x0450e, 0x03e2a, 0x05149,
- 0x08076, 0x07386, 0x05148,
-};
-
-static const uint8_t coef1_huffbits[555] = {
- 9, 5, 2, 4, 4, 5, 5, 5,
- 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 9, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 10, 10, 10, 9, 9, 9, 9,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 11, 11, 11, 11, 11, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 13, 12, 12, 12, 12, 12, 12, 12,
- 13, 12, 12, 12, 12, 12, 12, 12,
- 12, 13, 12, 12, 12, 13, 13, 13,
- 13, 12, 12, 12, 12, 12, 12, 13,
- 12, 13, 13, 13, 13, 13, 13, 13,
- 14, 14, 13, 13, 13, 13, 13, 13,
- 13, 12, 12, 12, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 14, 13, 14, 13, 13, 13,
- 13, 13, 14, 13, 14, 14, 13, 14,
- 14, 13, 14, 13, 13, 14, 14, 13,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 15, 14, 14, 14, 14, 15, 15,
- 15, 14, 14, 13, 13, 12, 12, 13,
- 13, 13, 14, 14, 15, 14, 15, 15,
- 14, 13, 14, 15, 15, 15, 14, 14,
- 14, 14, 15, 14, 14, 15, 15, 15,
- 14, 15, 14, 14, 14, 14, 14, 15,
- 15, 16, 15, 15, 15, 14, 15, 15,
- 15, 15, 14, 14, 16, 14, 15, 14,
- 14, 15, 15, 15, 15, 16, 15, 14,
- 15, 15, 15, 16, 15, 15, 14, 14,
- 14, 4, 7, 8, 8, 9, 9, 9,
- 9, 10, 10, 11, 11, 11, 11, 11,
- 11, 12, 11, 11, 11, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 11, 12,
- 12, 12, 13, 13, 13, 13, 13, 13,
- 13, 12, 12, 13, 13, 13, 13, 14,
- 14, 13, 14, 13, 13, 13, 14, 14,
- 15, 15, 14, 13, 13, 13, 14, 14,
- 15, 15, 15, 16, 14, 15, 17, 17,
- 15, 15, 15, 15, 15, 14, 16, 14,
- 16, 16, 16, 16, 16, 16, 15, 15,
- 17, 15, 16, 15, 6, 8, 10, 10,
- 10, 11, 11, 11, 12, 12, 13, 13,
- 13, 13, 14, 13, 14, 13, 14, 14,
- 14, 14, 14, 15, 15, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 15, 16,
- 15, 15, 16, 15, 15, 15, 14, 16,
- 15, 15, 18, 17, 16, 17, 15, 14,
- 15, 16, 16, 19, 17, 19, 16, 17,
- 15, 7, 10, 11, 12, 12, 12, 12,
- 13, 13, 13, 14, 15, 14, 15, 15,
- 16, 15, 14, 14, 15, 16, 15, 16,
- 16, 16, 16, 15, 15, 7, 11, 12,
- 13, 13, 14, 14, 15, 15, 15, 8,
- 11, 13, 14, 14, 15, 9, 12, 14,
- 14, 15, 9, 13, 10, 13, 10, 14,
- 10, 14, 11, 15, 11, 15, 11, 14,
- 12, 15, 12, 13, 13, 13, 13, 13,
- 13, 14, 13, 14, 14, 14, 14, 14,
- 14, 15, 14, 15, 16, 15, 14, 15,
- 16, 15, 15,
-};
-
-static const uint32_t coef2_huffcodes[1336] = {
- 0x003e6, 0x000f6, 0x00000, 0x00002, 0x00006, 0x0000f, 0x0001b, 0x00028,
- 0x00039, 0x0003f, 0x0006b, 0x00076, 0x000b7, 0x000e8, 0x000ef, 0x00169,
- 0x001a7, 0x001d4, 0x001dc, 0x002c4, 0x00349, 0x00355, 0x00391, 0x003dc,
- 0x00581, 0x005b2, 0x00698, 0x0070c, 0x00755, 0x0073a, 0x00774, 0x007cf,
- 0x00b0a, 0x00b66, 0x00d2e, 0x00d5e, 0x00e1b, 0x00eac, 0x00e5a, 0x00f7e,
- 0x00fa1, 0x0163e, 0x01a37, 0x01a52, 0x01c39, 0x01ab3, 0x01d5f, 0x01cb6,
- 0x01f52, 0x01dd9, 0x02c04, 0x02c2e, 0x02c2d, 0x02c23, 0x03467, 0x034a3,
- 0x0351b, 0x03501, 0x03a5d, 0x0351c, 0x03875, 0x03dea, 0x0397b, 0x039db,
- 0x03df1, 0x039d8, 0x03bb4, 0x0580a, 0x0584d, 0x05842, 0x05b13, 0x058ea,
- 0x0697d, 0x06a06, 0x068cc, 0x06ac7, 0x06a96, 0x072f4, 0x07543, 0x072b4,
- 0x07d20, 0x0b003, 0x073b5, 0x07be6, 0x0d180, 0x07bd1, 0x07cb8, 0x07d06,
- 0x07d25, 0x0d2f2, 0x0d19a, 0x0d334, 0x0e1dc, 0x0d529, 0x0d584, 0x0e1d2,
- 0x0e5e3, 0x0eec4, 0x0e564, 0x0fa49, 0x16001, 0x0eedc, 0x0f7fa, 0x1a32c,
- 0x16131, 0x16003, 0x0f9c8, 0x1ef80, 0x1d2a0, 0x1aa4b, 0x0f7ce, 0x1abfe,
- 0x1aa50, 0x1a458, 0x1a816, 0x1cae4, 0x1d2fe, 0x1d52e, 0x1aa4c, 0x2c245,
- 0x1d2a1, 0x1a35d, 0x1ca1b, 0x1d5d8, 0x1f531, 0x1ca1c, 0x1f389, 0x1f4af,
- 0x3a5e7, 0x351fb, 0x2c24b, 0x34bce, 0x2c24d, 0x2c249, 0x2c24a, 0x72dfc,
- 0x357ef, 0x35002, 0x3a5e6, 0x39431, 0x5843b, 0x34a77, 0x58431, 0x3a5f3,
- 0x3a5dd, 0x3e5e5, 0x356bd, 0x3976e, 0x6a3d2, 0x3500d, 0x694c4, 0x580bd,
- 0x3e5e8, 0x74b95, 0x34a6e, 0x3977c, 0x39432, 0x5b0d2, 0x6a3d8, 0x580b8,
- 0x5b0cb, 0x5b0d7, 0x72dee, 0x72ded, 0x72dec, 0x74b9c, 0x3977f, 0x72dea,
- 0x74b9e, 0x7be7d, 0x580bf, 0x5b0d5, 0x7cba8, 0x74b91, 0x3e5dd, 0xb6171,
- 0xd46b3, 0xd46b9, 0x7cba1, 0x74b9f, 0x72de1, 0xe59f5, 0x3e5eb, 0x00004,
- 0x00015, 0x00038, 0x00075, 0x000e8, 0x001d3, 0x00347, 0x0039c, 0x00690,
- 0x0074a, 0x00b60, 0x00e93, 0x00f74, 0x0163d, 0x01a5a, 0x01d24, 0x01cbe,
- 0x01f4b, 0x03468, 0x03562, 0x03947, 0x03e82, 0x05804, 0x05b12, 0x05803,
- 0x0696d, 0x06a9e, 0x0697c, 0x06978, 0x06afb, 0x074b2, 0x072f5, 0x073c0,
- 0x07541, 0x06944, 0x074b7, 0x070d3, 0x07ba9, 0x0b0b1, 0x0d1af, 0x0e1dd,
- 0x0e5e2, 0x0e1a3, 0x0eec3, 0x1612f, 0x0e961, 0x0eeda, 0x0e78e, 0x0fa48,
- 0x1612c, 0x0e511, 0x0e565, 0x0e953, 0x1aa4a, 0x0e59d, 0x1d52c, 0x1a811,
- 0x1cae7, 0x1abfc, 0x1d52d, 0x1cacf, 0x1cf05, 0x2c254, 0x34a72, 0x1f4ac,
- 0x3976b, 0x34a71, 0x2c6d9, 0x2d873, 0x34a6a, 0x357e7, 0x3464c, 0x3e5f5,
- 0x58433, 0x1f53a, 0x3500a, 0x357ea, 0x34a73, 0x3942f, 0x357e5, 0x39775,
- 0x694cd, 0x39772, 0x7cba5, 0x6a3ef, 0x35483, 0x74b98, 0x5b0c1, 0x39770,
- 0x3a5d7, 0x39433, 0x39434, 0x694ce, 0x580be, 0x3e5ff, 0x6a3ec, 0xb616f,
- 0xd46b1, 0x6a3d1, 0x72de5, 0x74b6e, 0x72de9, 0x3e700, 0xd46b6, 0x6a3e9,
- 0x74b69, 0xe5675, 0xd46b8, 0x7cbaa, 0x3a5d1, 0x0000c, 0x0003c, 0x000eb,
- 0x001f1, 0x003a4, 0x006a8, 0x007d5, 0x00d43, 0x00e77, 0x016c5, 0x01cb1,
- 0x02c5d, 0x03a55, 0x03a56, 0x03e51, 0x03bb5, 0x05b0a, 0x06a9f, 0x074b8,
- 0x07d28, 0x0d187, 0x0d40e, 0x0d52e, 0x0d425, 0x0eae3, 0x0e1d3, 0x1612e,
- 0x0e59e, 0x0eec2, 0x0e578, 0x0e51a, 0x0e579, 0x0e515, 0x0e960, 0x0d183,
- 0x0d220, 0x0d2cb, 0x0e512, 0x16c3e, 0x16002, 0x16c42, 0x1cae9, 0x3461a,
- 0x1d2fa, 0x1a308, 0x1a849, 0x1cf07, 0x1f38f, 0x34b65, 0x2c253, 0x1ef9e,
- 0x1cbc3, 0x1cbc1, 0x2c255, 0x1f384, 0x58435, 0x2c5cd, 0x3a5f7, 0x2c252,
- 0x3959c, 0x2c6d8, 0x3a5d3, 0x6ad78, 0x6a3f2, 0x7cba9, 0xb6176, 0x72deb,
- 0x39764, 0x3e5f6, 0x3a5d8, 0x74a8c, 0x6a3e6, 0x694d1, 0x6ad79, 0x1a4592,
- 0xe59fb, 0x7cbb3, 0x5b0cd, 0x00017, 0x000b5, 0x002c3, 0x005b7, 0x00b1c,
- 0x00e5c, 0x0163f, 0x01ab2, 0x01efa, 0x0348a, 0x0396e, 0x058da, 0x06963,
- 0x06a30, 0x072cd, 0x073cf, 0x07ce7, 0x0d2ca, 0x0d2d8, 0x0e764, 0x0e794,
- 0x16008, 0x16167, 0x1617e, 0x1aa49, 0x1a30b, 0x1a813, 0x2c6da, 0x1a580,
- 0x1cbc2, 0x0f9ca, 0x1617f, 0x1d2fe, 0x0f7fc, 0x16c40, 0x0e513, 0x0eec5,
- 0x0f7c3, 0x1d508, 0x1a81e, 0x1d2fd, 0x39430, 0x35486, 0x3e5fd, 0x2c24c,
- 0x2c75a, 0x34a74, 0x3a5f4, 0x3464d, 0x694ca, 0x3a5f1, 0x1d509, 0x1d5c0,
- 0x34648, 0x3464e, 0x6a3d5, 0x6a3e8, 0x6a3e7, 0x5b0c3, 0x2c248, 0x1f38a,
- 0x3a5f2, 0x6a3e5, 0x00029, 0x00168, 0x0058c, 0x00b67, 0x00f9d, 0x01c3d,
- 0x01cbf, 0x02c20, 0x0351d, 0x03df6, 0x06af9, 0x072b5, 0x0b1d7, 0x0b0b2,
- 0x0d40a, 0x0d52b, 0x0e952, 0x0e797, 0x163c3, 0x1c3a0, 0x1f386, 0x1ca21,
- 0x34655, 0x2c247, 0x1f53b, 0x2c250, 0x2c24f, 0x1f385, 0x1ef5d, 0x1cf15,
- 0x1caea, 0x1ab0a, 0x1cf19, 0x1f53d, 0x1d5c2, 0x1d2fb, 0x1ef58, 0x34a78,
- 0x357ec, 0x1f533, 0x3a5e1, 0x694d2, 0x58482, 0x3a5ee, 0x2c6dc, 0x357eb,
- 0x5b0c4, 0x39778, 0x6a3e1, 0x7cbb4, 0x3a5e1, 0x74b68, 0x3a5ef, 0x3a5d2,
- 0x39424, 0x72de2, 0xe59f6, 0xe59f7, 0x3e702, 0x3e5ec, 0x1f38b, 0x0003b,
- 0x001f0, 0x00777, 0x00fa8, 0x01cb2, 0x02d84, 0x03a57, 0x03dd6, 0x06917,
- 0x06a11, 0x07d07, 0x0eae2, 0x0e796, 0x0f9c9, 0x0f7fb, 0x16166, 0x16160,
- 0x1ab1b, 0x1abfa, 0x2d87b, 0x1d2f7, 0x39768, 0x1f38c, 0x34653, 0x34651,
- 0x6a3d9, 0x35001, 0x3abbd, 0x38742, 0x39426, 0x34a76, 0x3a5ec, 0x34a75,
- 0x35000, 0x35488, 0x1cf10, 0x2c6db, 0x357ed, 0x357e8, 0x357e9, 0x3a5f0,
- 0x694c2, 0xb6178, 0x72df5, 0x39425, 0x3942b, 0x74b6d, 0x74b6f, 0xb6177,
- 0xb6179, 0x74b6a, 0xb6172, 0x58487, 0x3e5ee, 0x3e5ed, 0x72df2, 0x72df4,
- 0x7cbae, 0x6a3ca, 0x70e86, 0x34bcf, 0x6a3c8, 0x00059, 0x00384, 0x00d5b,
- 0x01c38, 0x03560, 0x0395b, 0x0584e, 0x06964, 0x073cd, 0x0b1e7, 0x0e798,
- 0x0e78d, 0x0fa43, 0x1a848, 0x1a32f, 0x1aa4e, 0x3464a, 0x1f4ab, 0x1f38d,
- 0x3a5eb, 0x3a5d4, 0x3548a, 0x6a3c7, 0x5b0d0, 0x6a3c5, 0x7cbb0, 0x694cb,
- 0x3a5e5, 0x3e5e2, 0x3942c, 0x2d872, 0x1f4ae, 0x3a5d5, 0x694d3, 0x58481,
- 0x35009, 0x39774, 0x58432, 0xb616c, 0x5b0db, 0x3548b, 0xb6174, 0x1d5d95,
- 0xb004c, 0x7cbb2, 0x3a5e5, 0x74a8f, 0xe59f9, 0x72df6, 0xe59fd, 0x7cbad,
- 0xd427d, 0x72cff, 0x3977a, 0x5b0d9, 0xb616d, 0xb616b, 0x1a4593, 0x7cbaf,
- 0x5b0da, 0x00071, 0x003eb, 0x01603, 0x02c6c, 0x03961, 0x068c8, 0x06a31,
- 0x072bd, 0x0d2c2, 0x0e51b, 0x0e5e6, 0x1abfb, 0x1d2ff, 0x1cae5, 0x1ef5c,
- 0x1ef5e, 0x1cf13, 0x34a6d, 0x3976d, 0xb616a, 0x3e5f2, 0x6a3c4, 0xb6169,
- 0x3e5dc, 0x580b9, 0x74b99, 0x75764, 0x58434, 0x3a5d9, 0x6945a, 0x69459,
- 0x3548c, 0x3a5e9, 0x69457, 0x72df1, 0x6945e, 0x6a35e, 0x3e701, 0xb6168,
- 0x5b0dd, 0x3a5de, 0x6a3c2, 0xd4278, 0x6a3cc, 0x72dfd, 0xb6165, 0x16009a,
- 0x7cbb1, 0xd427c, 0xb6162, 0xe765e, 0x1cecbe, 0x7cbb6, 0x69454, 0xb6160,
- 0xd427a, 0x1d5d96, 0xb1d6d, 0xe59f4, 0x72de8, 0x3a5db, 0x0007a, 0x006ae,
- 0x01c3c, 0x03aba, 0x058e9, 0x072cc, 0x0d2dd, 0x0d22d, 0x0eec1, 0x0eedb,
- 0x1d2a2, 0x1ef5b, 0x357e2, 0x3abbf, 0x1d2f9, 0x35004, 0x3a5dc, 0x351fc,
- 0x3976c, 0x6a3c6, 0x6a3cb, 0x3e5ea, 0xe59f3, 0x6a3ce, 0x69452, 0xe59f0,
- 0x74b90, 0xd4279, 0xd427b, 0x7cbb5, 0x5b0c5, 0x3a5e3, 0x3a5e2, 0x000d0,
- 0x00775, 0x01efe, 0x03dd5, 0x0728c, 0x07cb9, 0x0e1a2, 0x0ea85, 0x0eed8,
- 0x1a30a, 0x1aa4f, 0x3a5df, 0x35008, 0x3a5e0, 0x3e5f4, 0x3e5f7, 0xb1d6c,
- 0x5843e, 0x34a70, 0x72df8, 0x74b6b, 0xd427f, 0x72df0, 0x5b0bf, 0x5b0c0,
- 0xd46b0, 0x72def, 0xe59f8, 0x162e64, 0xb1d6f, 0x3a5e0, 0x39427, 0x69166,
- 0x6a3e2, 0x6a3e3, 0x74a8d, 0xd427e, 0x1d5d97, 0xd46b4, 0x5b0d8, 0x6a3d3,
- 0x000e0, 0x00b63, 0x034cc, 0x06a33, 0x073c9, 0x0e1a0, 0x0f7fd, 0x0f9cc,
- 0x1617d, 0x1caeb, 0x1f4a9, 0x3abb3, 0x69450, 0x39420, 0x39777, 0x3e5e0,
- 0x6a3d4, 0x6a3ed, 0xb6166, 0xe59f1, 0xb1d6e, 0xe5676, 0x6a3ea, 0xe5674,
- 0xb6163, 0xd46b7, 0x7cba6, 0xd46ba, 0x1d5d94, 0xb6164, 0x6a3f1, 0x7cba2,
- 0x69451, 0x72dfa, 0xd46bb, 0x72df7, 0x74b94, 0x1cecbf, 0xe59fa, 0x16009b,
- 0x6a3e4, 0x000e6, 0x00e94, 0x03876, 0x070ef, 0x0d52a, 0x16015, 0x16014,
- 0x1abf9, 0x1cf17, 0x34a79, 0x34650, 0x3e705, 0x6a3d0, 0x58430, 0x74b9d,
- 0x7be7e, 0x5b0be, 0x39773, 0x6a3de, 0x000fb, 0x00f7b, 0x03dd7, 0x07bd0,
- 0x0e59c, 0x0f9cd, 0x1cf18, 0x1d2ff, 0x34a7a, 0x39429, 0x3500c, 0x72de0,
- 0x69456, 0x7be7c, 0xd46b5, 0xd46b2, 0x6a3dd, 0x001a2, 0x0163b, 0x06913,
- 0x0b016, 0x0fa42, 0x1a32d, 0x1cf06, 0x34a7c, 0x34a7d, 0xb6161, 0x35481,
- 0x3e5fa, 0x7cba0, 0x7be7f, 0x7cba3, 0x7cba7, 0x5b0d3, 0x72de6, 0x6a3dc,
- 0x001a9, 0x01ab4, 0x06a34, 0x0d46a, 0x16130, 0x1ef5f, 0x1f532, 0x1f536,
- 0x3942e, 0x58436, 0x6a3db, 0x6945b, 0x001c9, 0x01ca0, 0x0728b, 0x0eed9,
- 0x1f539, 0x1ca1d, 0x39765, 0x39766, 0x58439, 0x6945d, 0x39767, 0x001d3,
- 0x01f2c, 0x07bfc, 0x16161, 0x34652, 0x3a5ed, 0x3548d, 0x58438, 0x6a3da,
- 0x002c1, 0x02c5e, 0x0d335, 0x1ab1a, 0x2d874, 0x35006, 0x35484, 0x5b0cc,
- 0x74b9a, 0x72df3, 0x6a3d6, 0x002da, 0x034b3, 0x0d5ae, 0x1caee, 0x2d871,
- 0x357e3, 0x74b97, 0x72df9, 0x580ba, 0x5b0d4, 0x0034d, 0x0354e, 0x0f750,
- 0x1cbc0, 0x3a5e7, 0x3a5e4, 0x00385, 0x03a58, 0x16c41, 0x2c5cf, 0x3e5e1,
- 0x74b6c, 0xe5677, 0x6a3df, 0x00390, 0x03e50, 0x163c2, 0x2d876, 0x35482,
- 0x5b0d6, 0x5843a, 0x0039f, 0x0585e, 0x1a583, 0x3500f, 0x74b93, 0x39771,
- 0x003e4, 0x06912, 0x16c43, 0x357e1, 0x0058a, 0x0696f, 0x1f538, 0x5b0c9,
- 0x6a3cf, 0x005b6, 0x06af8, 0x1f534, 0x58483, 0x6a3e0, 0x00695, 0x07d02,
- 0x1cae8, 0x58485, 0x006a2, 0x0754a, 0x357ee, 0x3977b, 0x00748, 0x074b2,
- 0x34a7b, 0x00729, 0x0b1e0, 0x34649, 0x3e5e3, 0x0073d, 0x0d2c4, 0x3e5e6,
- 0x007bb, 0x0b099, 0x39762, 0x5b0ce, 0x6945f, 0x007d1, 0x0d5ab, 0x39779,
- 0x007d3, 0x0d52f, 0x39763, 0x6945c, 0x00b1a, 0x0d2c5, 0x35489, 0x00d23,
- 0x0eaed, 0x3e5f8, 0x00d32, 0x16016, 0x3e5fb, 0x00d41, 0x0e768, 0x3a5ed,
- 0x00e1f, 0x16017, 0x58027, 0x00ead, 0x0fa07, 0x69455, 0x00e54, 0x1612b,
- 0x00e55, 0x1a581, 0x00f78, 0x1a32b, 0x580bc, 0x6a3ee, 0x00f79, 0x1abfd,
- 0x00f95, 0x1ab18, 0x6a3f0, 0x01637, 0x1aa4d, 0x0162d, 0x1f53c, 0x6a3f3,
- 0x01a31, 0x1a810, 0x39769, 0x01a50, 0x1caef, 0x01a36, 0x1a32e, 0x01a67,
- 0x1f38e, 0x01a85, 0x1ef59, 0x01aa6, 0x1ef83, 0x01d51, 0x2c012, 0x01d53,
- 0x2d879, 0x01d5e, 0x35005, 0x01cba, 0x1cf04, 0x69453, 0x01d2d, 0x351ff,
- 0x01f2d, 0x2d86f, 0x01f29, 0x35007, 0x02c22, 0x351fa, 0x02c03, 0x3a5ec,
- 0x02c5f, 0x3a5eb, 0x02c58, 0x34a6b, 0x03469, 0x356be, 0x02c59, 0x34a6c,
- 0x0346a, 0x3a5ea, 0x034bd, 0x034bf, 0x356bf, 0x0386a, 0x03ab9, 0x5843f,
- 0x0386b, 0x3a5f5, 0x03a4b, 0x39421, 0x03aa4, 0x3a5e9, 0x03a5a, 0x03960,
- 0x3977e, 0x03de9, 0x03958, 0x03df7, 0x039e1, 0x3e5e4, 0x0395f, 0x69458,
- 0x03e91, 0x03df2, 0x39428, 0x058f2, 0x03e80, 0x6a3c3, 0x03e93, 0x694c0,
- 0x058b8, 0x5b0ca, 0x0584f, 0x694c1, 0x058f1, 0x068d6, 0x06a10, 0x06ac3,
- 0x06a32, 0x070d2, 0x06911, 0x074b1, 0x07494, 0x06ad4, 0x06ad6, 0x072b8,
- 0x06afa, 0x074b3, 0x07540, 0x073ce, 0x0b005, 0x074b3, 0x07495, 0x074b9,
- 0x0d336, 0x07bff, 0x07763, 0x073c8, 0x07d29, 0x0b622, 0x0d221, 0x0d181,
- 0x0b1d1, 0x074b8, 0x0b1d0, 0x0d19b, 0x0d2c3, 0x0b172, 0x0d2dc, 0x0b623,
- 0x0d5aa, 0x0d426, 0x0d182, 0x0e795, 0x0e1d1, 0x0d337, 0x0e96c, 0x0e5e4,
- 0x0e514, 0x0eaee, 0x16000, 0x0e767, 0x0e1a1, 0x0e78f, 0x16004, 0x0f7c2,
- 0x0e799, 0x0e5e7, 0x0e566, 0x0e769, 0x0f751, 0x0eede, 0x0fa06, 0x16005,
- 0x0fa9f, 0x1a5e6, 0x0e766, 0x1636f, 0x0eedd, 0x0eec0, 0x1a309, 0x1ceca,
- 0x163cd, 0x0f9cb, 0x0eedf, 0x1a582, 0x1612d, 0x0e5e5, 0x1abf8, 0x1a30c,
- 0x1ca1f, 0x163cc, 0x1a35c, 0x1ca1e, 0x1aa51, 0x163ac, 0x1a84e, 0x1a53f,
- 0x1cf16, 0x1d2fc, 0x1a5b3, 0x1ab19, 0x1a81f, 0x1d5c3, 0x16c3f, 0x1d5c1,
- 0x1d2fc, 0x1f4aa, 0x1a812, 0x1f535, 0x1cf12, 0x1a817, 0x1617c, 0x1ab0b,
- 0x1d2f8, 0x1ef82, 0x2d87a, 0x1d52f, 0x1f530, 0x1aa48, 0x35487, 0x1d2fd,
- 0x1f4ad, 0x1cf11, 0x3461b, 0x35485, 0x1ca20, 0x1caed, 0x1cae6, 0x1abff,
- 0x3464f, 0x34a6f, 0x1ef81, 0x3464b, 0x39d96, 0x1f383, 0x1f537, 0x1cf14,
- 0x2c5ce, 0x3500e, 0x2c251, 0x1caec, 0x1f387, 0x34654, 0x357e4, 0x2d878,
- 0x3500b, 0x35480, 0x3a5e8, 0x3548e, 0x34b64, 0x1f4a8, 0x35003, 0x3e5df,
- 0x2d870, 0x357e6, 0x3e5f0, 0x1ef5a, 0x3a5ea, 0x1f388, 0x3e703, 0x2c24e,
- 0x3a5e2, 0x351fd, 0x2c6dd, 0x3e704, 0x351fe, 0x2d875, 0x5b0c7, 0x3976a,
- 0x3a5e6, 0x39423, 0x58480, 0x2c246, 0x3a5e3, 0x2d877, 0x3e5f1, 0x3abbe,
- 0x58489, 0x3e5f9, 0x357e0, 0x3abbc, 0x5b0c6, 0x69167, 0x69165, 0x3e5e9,
- 0x39422, 0x3976f, 0x3977d, 0x3e5de, 0x6a3c9, 0x58b98, 0x3a5f6, 0x3a5d0,
- 0x58486, 0x6a3c1, 0x3e5fc, 0x5b0dc, 0x3548f, 0x3942d, 0x694c9, 0x58484,
- 0x3a5e8, 0x74b9b, 0x74b96, 0x694d0, 0x58488, 0x3a5e4, 0x3942a, 0x72ec2,
- 0x39776, 0x5b0d1, 0x5b0cf, 0x3a5d6, 0xe59fc, 0x5b0c8, 0x3e5e7, 0x7cbb7,
- 0x70e87, 0x7cbab, 0x5b0c2, 0x694c3, 0x74a8e, 0x3e5f3, 0x6a3cd, 0x72dfe,
- 0x73b2e, 0x72ec0, 0x694c5, 0x58437, 0x694c8, 0x72dff, 0x39435, 0x5843d,
- 0x6a3d7, 0x72ec1, 0xd22c8, 0x694cf, 0xb6173, 0x3e5fe, 0x580bb, 0xe59f2,
- 0xb616e, 0xb6175, 0x3a5da, 0x5b0bd, 0x694cc, 0x5843c, 0x694c7, 0x74b92,
- 0x72ec3, 0x694c6, 0xb6170, 0x7cbac, 0xb1733, 0x7cba4, 0xb6167, 0x72de7,
- 0x72de4, 0x6a3c0, 0x3e5ef, 0x162e65, 0x72de3, 0x72dfb, 0x6a35f, 0x6a3eb,
-};
-
-static const uint8_t coef2_huffbits[1336] = {
- 11, 9, 2, 3, 4, 4, 5, 6,
- 6, 7, 7, 8, 8, 8, 9, 9,
- 9, 9, 10, 10, 10, 10, 11, 11,
- 11, 11, 11, 11, 11, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 16, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 18, 17, 17, 17, 17,
- 17, 17, 17, 18, 18, 17, 17, 18,
- 17, 17, 18, 17, 18, 18, 18, 18,
- 19, 18, 18, 18, 18, 18, 18, 20,
- 18, 18, 18, 19, 19, 18, 19, 18,
- 19, 19, 18, 19, 19, 18, 19, 19,
- 19, 19, 18, 19, 19, 19, 19, 19,
- 19, 19, 20, 20, 20, 19, 19, 20,
- 19, 20, 19, 19, 20, 19, 19, 20,
- 20, 20, 20, 19, 20, 21, 19, 3,
- 5, 7, 8, 9, 9, 10, 11, 11,
- 12, 12, 12, 13, 13, 13, 13, 14,
- 14, 14, 14, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 16, 16,
- 15, 15, 15, 15, 16, 16, 16, 16,
- 17, 16, 17, 17, 16, 17, 17, 17,
- 17, 17, 17, 16, 17, 17, 17, 17,
- 18, 17, 17, 18, 18, 18, 18, 18,
- 19, 18, 18, 18, 18, 18, 18, 19,
- 19, 18, 18, 18, 18, 19, 18, 19,
- 19, 19, 20, 19, 18, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 20,
- 20, 19, 20, 19, 20, 19, 20, 19,
- 19, 21, 20, 20, 19, 4, 7, 8,
- 10, 11, 11, 12, 12, 13, 13, 14,
- 14, 14, 14, 15, 15, 15, 15, 15,
- 16, 16, 16, 16, 16, 16, 16, 17,
- 17, 17, 17, 17, 17, 17, 16, 16,
- 16, 16, 17, 17, 17, 17, 18, 18,
- 18, 17, 17, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 19, 18, 18, 18,
- 19, 18, 19, 19, 19, 20, 20, 20,
- 19, 19, 19, 19, 19, 19, 19, 21,
- 21, 20, 19, 5, 8, 10, 11, 12,
- 13, 13, 13, 14, 14, 15, 15, 15,
- 15, 16, 16, 16, 16, 16, 17, 17,
- 17, 17, 17, 17, 17, 17, 18, 17,
- 18, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 19, 18, 19, 18,
- 18, 18, 18, 18, 19, 18, 17, 17,
- 18, 18, 19, 19, 19, 19, 18, 18,
- 18, 19, 6, 9, 11, 12, 13, 13,
- 14, 14, 14, 15, 15, 16, 16, 16,
- 16, 16, 16, 17, 17, 17, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 17, 18, 18, 17, 18, 18, 18,
- 18, 18, 18, 19, 19, 18, 18, 18,
- 19, 19, 19, 20, 19, 19, 18, 19,
- 19, 20, 21, 21, 19, 19, 18, 6,
- 10, 12, 13, 14, 14, 14, 15, 15,
- 15, 16, 16, 17, 17, 17, 17, 17,
- 17, 17, 18, 18, 19, 18, 18, 18,
- 19, 18, 18, 18, 19, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18,
- 19, 20, 20, 19, 19, 19, 19, 20,
- 20, 19, 20, 19, 19, 19, 20, 20,
- 20, 19, 19, 18, 19, 7, 10, 12,
- 13, 14, 15, 15, 15, 16, 16, 17,
- 17, 17, 17, 17, 17, 18, 18, 18,
- 18, 19, 18, 19, 19, 19, 20, 19,
- 18, 19, 19, 18, 18, 19, 19, 19,
- 18, 19, 19, 20, 19, 18, 20, 21,
- 20, 20, 19, 19, 21, 20, 21, 20,
- 20, 20, 19, 19, 20, 20, 21, 20,
- 19, 7, 11, 13, 14, 15, 15, 15,
- 16, 16, 17, 17, 17, 17, 18, 18,
- 18, 18, 18, 19, 20, 19, 19, 20,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 18, 18, 19, 20, 19, 19, 19, 20,
- 19, 19, 19, 20, 19, 20, 20, 21,
- 20, 20, 20, 21, 22, 20, 19, 20,
- 20, 21, 20, 21, 20, 19, 8, 11,
- 13, 14, 15, 16, 16, 16, 17, 17,
- 17, 18, 18, 18, 18, 18, 19, 18,
- 19, 19, 19, 19, 21, 19, 19, 21,
- 19, 20, 20, 20, 19, 18, 18, 8,
- 12, 14, 15, 16, 16, 16, 16, 17,
- 17, 17, 19, 18, 18, 19, 19, 20,
- 19, 18, 20, 19, 20, 20, 19, 19,
- 20, 20, 21, 21, 20, 19, 19, 19,
- 19, 19, 19, 20, 21, 20, 19, 19,
- 8, 12, 14, 15, 16, 16, 17, 17,
- 17, 18, 18, 18, 19, 19, 19, 19,
- 19, 19, 20, 21, 20, 21, 19, 21,
- 20, 20, 20, 20, 21, 20, 19, 20,
- 19, 20, 20, 20, 19, 22, 21, 21,
- 19, 9, 12, 14, 15, 16, 17, 17,
- 17, 18, 18, 18, 19, 19, 19, 19,
- 20, 19, 19, 19, 9, 13, 15, 16,
- 17, 17, 18, 18, 18, 19, 18, 20,
- 19, 20, 20, 20, 19, 9, 13, 15,
- 16, 17, 17, 18, 18, 18, 20, 18,
- 19, 20, 20, 20, 20, 19, 20, 19,
- 9, 13, 15, 16, 17, 18, 18, 18,
- 19, 19, 19, 19, 10, 14, 16, 17,
- 18, 18, 19, 19, 19, 19, 19, 10,
- 14, 16, 17, 18, 18, 18, 19, 19,
- 10, 14, 16, 17, 18, 18, 18, 19,
- 19, 20, 19, 10, 14, 16, 18, 18,
- 18, 19, 20, 19, 19, 10, 14, 17,
- 18, 18, 18, 10, 15, 17, 18, 19,
- 19, 21, 19, 11, 15, 17, 18, 18,
- 19, 19, 11, 15, 17, 18, 19, 19,
- 11, 15, 17, 18, 11, 15, 18, 19,
- 19, 11, 15, 18, 19, 19, 11, 16,
- 18, 19, 11, 15, 18, 19, 11, 16,
- 18, 12, 16, 18, 19, 12, 16, 19,
- 12, 16, 19, 19, 19, 12, 16, 19,
- 12, 16, 19, 19, 12, 16, 18, 12,
- 16, 19, 12, 17, 19, 12, 17, 19,
- 12, 17, 19, 12, 17, 19, 13, 17,
- 13, 17, 13, 17, 19, 19, 13, 17,
- 13, 17, 19, 13, 17, 13, 18, 19,
- 13, 17, 19, 13, 18, 13, 17, 13,
- 18, 13, 18, 13, 18, 13, 18, 13,
- 18, 13, 18, 14, 18, 19, 14, 18,
- 14, 18, 14, 18, 14, 18, 14, 19,
- 14, 19, 14, 18, 14, 18, 14, 18,
- 14, 19, 14, 14, 18, 14, 14, 19,
- 14, 18, 14, 19, 14, 19, 14, 15,
- 19, 15, 15, 15, 15, 19, 15, 19,
- 15, 15, 19, 15, 15, 19, 15, 19,
- 15, 19, 15, 19, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 16,
- 15, 15, 15, 16, 16, 16, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 17, 16, 16, 16, 17,
- 17, 16, 17, 17, 16, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 18,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 18, 17, 17, 18, 17, 17, 17, 17,
- 18, 18, 17, 17, 17, 17, 17, 17,
- 17, 18, 17, 18, 18, 17, 17, 17,
- 18, 18, 18, 17, 18, 17, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 17,
- 18, 18, 18, 18, 19, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 19,
- 18, 18, 19, 18, 18, 18, 19, 18,
- 19, 18, 18, 19, 18, 18, 19, 19,
- 19, 19, 19, 18, 19, 18, 19, 18,
- 19, 19, 18, 18, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 18, 19,
- 19, 19, 19, 19, 18, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 20,
- 19, 19, 19, 19, 21, 19, 19, 20,
- 19, 20, 19, 19, 19, 19, 19, 20,
- 20, 20, 19, 19, 19, 20, 19, 19,
- 19, 20, 20, 19, 20, 19, 19, 21,
- 20, 20, 19, 19, 19, 19, 19, 19,
- 20, 19, 20, 20, 20, 20, 20, 20,
- 20, 19, 19, 21, 20, 20, 19, 19,
-};
-
-static const uint32_t coef3_huffcodes[1072] = {
- 0x001b2, 0x00069, 0x00000, 0x00004, 0x00006, 0x0000e, 0x00014, 0x00019,
- 0x00016, 0x0002b, 0x00030, 0x0003d, 0x0003c, 0x0005a, 0x0005f, 0x0006d,
- 0x0007e, 0x0005f, 0x0007f, 0x000b6, 0x000bc, 0x000d8, 0x000f2, 0x000fe,
- 0x000bc, 0x000fc, 0x00161, 0x0016e, 0x00174, 0x00176, 0x001a2, 0x001e3,
- 0x001f3, 0x00174, 0x0017a, 0x001ea, 0x002a8, 0x002c4, 0x002e6, 0x00314,
- 0x00346, 0x00367, 0x003e9, 0x002e5, 0x002ee, 0x003d6, 0x00555, 0x00554,
- 0x00557, 0x005c3, 0x005d6, 0x006e0, 0x0062f, 0x006e2, 0x00799, 0x00789,
- 0x007fa, 0x005ce, 0x007fe, 0x005ec, 0x007cc, 0x007af, 0x00aa7, 0x00b19,
- 0x00b94, 0x00b85, 0x00b9f, 0x00c48, 0x00c45, 0x00dd8, 0x00c4c, 0x00c4b,
- 0x00d99, 0x00d1f, 0x00dc2, 0x00f95, 0x00fa2, 0x00bb5, 0x00b9f, 0x00f5d,
- 0x00bbf, 0x00f47, 0x0154a, 0x00fd5, 0x00f45, 0x00f7f, 0x0160d, 0x01889,
- 0x01757, 0x01722, 0x018b3, 0x0172d, 0x01a39, 0x01a18, 0x01bb3, 0x01b30,
- 0x01e63, 0x0173c, 0x01b35, 0x01723, 0x01e80, 0x01fee, 0x01761, 0x01ffc,
- 0x01f7f, 0x02c7c, 0x01fa1, 0x0177b, 0x01755, 0x0175a, 0x01fa6, 0x02eab,
- 0x0310a, 0x02c69, 0x03669, 0x03127, 0x03103, 0x02e43, 0x03662, 0x03165,
- 0x03124, 0x0313b, 0x03111, 0x03668, 0x0343b, 0x03c52, 0x03efc, 0x02e6c,
- 0x03fda, 0x03ef8, 0x02e7b, 0x03ee2, 0x03cc5, 0x03d72, 0x058c0, 0x03df8,
- 0x02ea9, 0x03e7e, 0x0556d, 0x05c82, 0x03d71, 0x03e7b, 0x03c42, 0x058d7,
- 0x03f4e, 0x06200, 0x03d70, 0x05cb2, 0x05c96, 0x05cb0, 0x03f45, 0x05cb1,
- 0x02e6d, 0x03110, 0x02f68, 0x05c90, 0x07ca6, 0x07c88, 0x06204, 0x062c8,
- 0x078a6, 0x07986, 0x079d5, 0x0b1ad, 0x07989, 0x0b079, 0x05cdd, 0x0aad4,
- 0x05de8, 0x07dcd, 0x07987, 0x05d67, 0x05d99, 0x0b91d, 0x07cf1, 0x05d9b,
- 0x079d7, 0x0b07b, 0x05c85, 0x05d9a, 0x07dcc, 0x07ebf, 0x07dce, 0x07dfb,
- 0x07ec0, 0x07d1a, 0x07a07, 0x05c84, 0x0c471, 0x07cf2, 0x0baef, 0x0b9d2,
- 0x05deb, 0x07bd6, 0x0b845, 0x05d98, 0x0b91a, 0x0bae8, 0x0c4e0, 0x0dc31,
- 0x0f93d, 0x0bbce, 0x0d1d2, 0x0f7a9, 0x0d9b9, 0x0bbcb, 0x0b900, 0x0aad7,
- 0x0babd, 0x0c4e1, 0x0f46f, 0x0c588, 0x0c58b, 0x160e6, 0x0bbcf, 0x0bac3,
- 0x0f945, 0x0f7a3, 0x0d1c1, 0x0fb8e, 0x0f7a4, 0x0fb8c, 0x0f40c, 0x0c473,
- 0x0fd72, 0x0bbcd, 0x0fffa, 0x0f940, 0x0bbc9, 0x0f7a8, 0x1a1ed, 0x0bbc5,
- 0x1f26f, 0x163fd, 0x160c7, 0x1a1f5, 0x0f947, 0x163fc, 0x154b3, 0x0fff6,
- 0x163f6, 0x160e9, 0x1a1f0, 0x0bab9, 0x0baba, 0x17086, 0x0b903, 0x0fd75,
- 0x0f308, 0x176f3, 0x163ff, 0x0fd7d, 0x1bb78, 0x163fb, 0x188db, 0x1a1f7,
- 0x154b2, 0x172fd, 0x163f4, 0x1bb73, 0x172ff, 0x0babc, 0x0f97d, 0x1a1f3,
- 0x1bb6d, 0x1ffd5, 0x1a1f4, 0x1f272, 0x17380, 0x17382, 0x1ffe7, 0x0bac8,
- 0x0bbc4, 0x188d3, 0x160e0, 0x0fd7b, 0x1725f, 0x172f5, 0x1bb79, 0x1fad9,
- 0x1f269, 0x188d0, 0x0bac4, 0x0bac5, 0x31185, 0x188d2, 0x188cc, 0x31187,
- 0x3e7fe, 0x188d1, 0x1bb6c, 0x1f268, 0x1fad2, 0x1ffd9, 0x1a1ea, 0x1bb68,
- 0x1facb, 0x3fdb2, 0x1e81a, 0x188ce, 0x172fb, 0x1a1ef, 0x1face, 0x1bb70,
- 0x0bac1, 0x1bb6b, 0x172f8, 0x1bb66, 0x1ffdf, 0x1bb6a, 0x1ffd7, 0x1f266,
- 0x176f8, 0x37653, 0x1fa7e, 0x31182, 0x1fac8, 0x2c7e3, 0x370ee, 0x176ec,
- 0x176e9, 0x2e4bc, 0x160c5, 0x3765a, 0x3ce9c, 0x17373, 0x176e8, 0x188d4,
- 0x176f1, 0x176ef, 0x37659, 0x1bb7c, 0x1ffde, 0x176f2, 0x3118b, 0x2c7d4,
- 0x37651, 0x5ce9f, 0x37650, 0x31191, 0x3f4f6, 0x3f4f5, 0x7a06c, 0x1fac1,
- 0x5c97b, 0x2c7e0, 0x79d3a, 0x3e7fd, 0x2c7df, 0x3f4f0, 0x7a06d, 0x376c1,
- 0x79d3b, 0x00004, 0x00014, 0x00059, 0x000ab, 0x000b8, 0x00177, 0x001f5,
- 0x001f2, 0x00315, 0x003fc, 0x005bd, 0x0062d, 0x006e8, 0x007dd, 0x00b04,
- 0x007cd, 0x00b1e, 0x00d1e, 0x00f15, 0x00f3b, 0x00f41, 0x01548, 0x018b0,
- 0x0173b, 0x01884, 0x01a1c, 0x01bb4, 0x01f25, 0x017b5, 0x0176d, 0x01ef8,
- 0x02e73, 0x03107, 0x03125, 0x03105, 0x02e49, 0x03ce8, 0x03ef9, 0x03e5e,
- 0x02e72, 0x03471, 0x03fd9, 0x0623f, 0x078a0, 0x06867, 0x05cb3, 0x06272,
- 0x068ec, 0x06e9a, 0x079d4, 0x06e98, 0x0b1aa, 0x06e1a, 0x07985, 0x068ee,
- 0x06e9b, 0x05c88, 0x0b1ac, 0x07dfa, 0x05d65, 0x07cf0, 0x07cbf, 0x0c475,
- 0x160eb, 0x1bb7e, 0x0f7a6, 0x1fedd, 0x160e3, 0x0fffb, 0x0fb8d, 0x0fff9,
- 0x0d1c0, 0x0c58c, 0x1a1e9, 0x0bab8, 0x0f5cf, 0x0fff5, 0x376c5, 0x1a1ec,
- 0x160ed, 0x1fede, 0x1fac9, 0x1a1eb, 0x1f224, 0x176ee, 0x0fd79, 0x17080,
- 0x17387, 0x1bb7a, 0x1ffe9, 0x176f7, 0x17385, 0x17781, 0x2c7d5, 0x17785,
- 0x1ffe3, 0x163f5, 0x1fac2, 0x3e7f9, 0x3118d, 0x3fdb1, 0x1ffe2, 0x1f226,
- 0x3118a, 0x2c7d9, 0x31190, 0x3118c, 0x3f4f3, 0x1bb7f, 0x1bb72, 0x31184,
- 0xb92f4, 0x3e7fb, 0x6e1d9, 0x1faca, 0x62300, 0x3fdb8, 0x3d037, 0x3e7fc,
- 0x62301, 0x3f4f2, 0x1f26a, 0x0000e, 0x00063, 0x000f8, 0x001ee, 0x00377,
- 0x003f7, 0x006e3, 0x005cc, 0x00b05, 0x00dd2, 0x00fd4, 0x0172e, 0x0172a,
- 0x01e23, 0x01f2d, 0x01763, 0x01769, 0x0176c, 0x02e75, 0x03104, 0x02ec1,
- 0x03e58, 0x0583f, 0x03f62, 0x03f44, 0x058c5, 0x0623c, 0x05cf4, 0x07bd7,
- 0x05d9d, 0x0aad2, 0x05d66, 0x0b1a9, 0x0b078, 0x07cfe, 0x0b918, 0x0c46f,
- 0x0b919, 0x0b847, 0x06e1b, 0x0b84b, 0x0aad8, 0x0fd74, 0x172f4, 0x17081,
- 0x0f97c, 0x1f273, 0x0f7a0, 0x0fd7c, 0x172f7, 0x0fd7a, 0x1bb77, 0x172fe,
- 0x1f270, 0x0fd73, 0x1bb7b, 0x1a1bc, 0x1bb7d, 0x0bbc3, 0x172f6, 0x0baeb,
- 0x0fb8f, 0x3f4f4, 0x3fdb4, 0x376c8, 0x3e7fa, 0x1ffd0, 0x62303, 0xb92f5,
- 0x1f261, 0x31189, 0x3fdb5, 0x2c7db, 0x376c9, 0x1fad6, 0x1fad1, 0x00015,
- 0x000f0, 0x002e0, 0x0058e, 0x005d7, 0x00c4d, 0x00fa1, 0x00bdb, 0x01756,
- 0x01f70, 0x02c19, 0x0313c, 0x0370f, 0x03cc0, 0x02ea8, 0x058c6, 0x058c7,
- 0x02eb7, 0x058d0, 0x07d18, 0x0aa58, 0x0b848, 0x05d9e, 0x05d6c, 0x0b84c,
- 0x0c589, 0x0b901, 0x163f8, 0x0bac9, 0x0b9c5, 0x0f93c, 0x188d8, 0x0bbc7,
- 0x160ec, 0x0fd6f, 0x188d9, 0x160ea, 0x0f7a7, 0x0f944, 0x0baab, 0x0dc3a,
- 0x188cf, 0x176fb, 0x2c7d8, 0x2c7d7, 0x1bb75, 0x5ce9e, 0x62302, 0x370ed,
- 0x176f4, 0x1ffd1, 0x370ef, 0x3f4f8, 0x376c7, 0x1ffe1, 0x376c6, 0x176ff,
- 0x6e1d8, 0x176f6, 0x17087, 0x0f5cd, 0x00035, 0x001a0, 0x0058b, 0x00aac,
- 0x00b9a, 0x0175f, 0x01e22, 0x01e8c, 0x01fb2, 0x0310b, 0x058d1, 0x0552e,
- 0x05c27, 0x0686e, 0x07ca7, 0x0c474, 0x0dc33, 0x07bf2, 0x05de9, 0x07a35,
- 0x0baaa, 0x0b9eb, 0x0fb95, 0x0b9b8, 0x17381, 0x1f262, 0x188cd, 0x17088,
- 0x172fa, 0x0f7a2, 0x1fad3, 0x0bac0, 0x3765c, 0x1fedf, 0x1f225, 0x1fad4,
- 0x2c7da, 0x5ce9d, 0x3e7f8, 0x1e203, 0x188d7, 0x00054, 0x002c0, 0x007a1,
- 0x00f78, 0x01b36, 0x01fa3, 0x0313a, 0x03436, 0x0343a, 0x07d1d, 0x07bd8,
- 0x05cdf, 0x0b846, 0x0b189, 0x0d9b8, 0x0fff8, 0x0d9be, 0x0c58a, 0x05dea,
- 0x0d1d3, 0x160e4, 0x1f26b, 0x188da, 0x1e202, 0x2c7d2, 0x163fe, 0x31193,
- 0x17782, 0x376c2, 0x2c7d1, 0x3fdb0, 0x3765d, 0x2c7d0, 0x1fad0, 0x1e201,
- 0x188dd, 0x2c7e2, 0x37657, 0x37655, 0x376c4, 0x376c0, 0x176ea, 0x0006f,
- 0x003cf, 0x00dd5, 0x01f23, 0x02c61, 0x02ed0, 0x05d54, 0x0552d, 0x07883,
- 0x0b1a8, 0x0b91c, 0x0babf, 0x0b902, 0x0f7aa, 0x0f7a5, 0x1a1e8, 0x1ffd6,
- 0x0babe, 0x1a1bf, 0x163f3, 0x1ffd8, 0x1fad7, 0x1f275, 0x1ffdc, 0x0007d,
- 0x005bc, 0x01549, 0x02a99, 0x03def, 0x06273, 0x079d6, 0x07d1b, 0x0aad3,
- 0x0d0fc, 0x2c7dd, 0x188d6, 0x0bac2, 0x2c7e1, 0x1bb76, 0x1a1bd, 0x31186,
- 0x0fd78, 0x1a1be, 0x31183, 0x3fdb6, 0x3f4f1, 0x37652, 0x1fad5, 0x3f4f9,
- 0x3e7ff, 0x5ce9c, 0x3765b, 0x31188, 0x17372, 0x000bd, 0x0078b, 0x01f21,
- 0x03c43, 0x03ded, 0x0aad6, 0x07ec1, 0x0f942, 0x05c86, 0x17089, 0x0babb,
- 0x1ffe8, 0x2c7de, 0x1f26e, 0x1fac4, 0x3f4f7, 0x37656, 0x1fa7d, 0x376c3,
- 0x3fdb3, 0x3118f, 0x1fac6, 0x000f8, 0x007ed, 0x01efd, 0x03e7a, 0x05c91,
- 0x0aad9, 0x0baec, 0x0dc32, 0x0f46e, 0x1e200, 0x176fa, 0x3765e, 0x3fdb7,
- 0x2c7d6, 0x3fdb9, 0x37654, 0x37658, 0x3118e, 0x1ffdb, 0x000f6, 0x00c43,
- 0x03106, 0x068ef, 0x0b84d, 0x0b188, 0x0bbcc, 0x1f264, 0x1bb69, 0x17386,
- 0x1fac0, 0x00171, 0x00f39, 0x03e41, 0x068ed, 0x0d9bc, 0x0f7a1, 0x1bb67,
- 0x1ffdd, 0x176f9, 0x001b9, 0x00f7d, 0x03f63, 0x0d0fd, 0x0b9ea, 0x188dc,
- 0x1fac3, 0x1a1f2, 0x31192, 0x1ffe4, 0x001f6, 0x01754, 0x06865, 0x0f309,
- 0x160e5, 0x176f5, 0x3765f, 0x1facc, 0x001e9, 0x01a1a, 0x06201, 0x0f105,
- 0x176f0, 0x002df, 0x01756, 0x05d6d, 0x163fa, 0x176ed, 0x00342, 0x02e40,
- 0x0d0ff, 0x17082, 0x003cd, 0x02a98, 0x0fffc, 0x2c7dc, 0x1fa7f, 0x003fe,
- 0x03764, 0x0fffd, 0x176fc, 0x1fac5, 0x002f7, 0x02ed1, 0x0fb97, 0x0058a,
- 0x02edc, 0x0bbc8, 0x005d4, 0x0623d, 0x160e8, 0x0062e, 0x05830, 0x163f9,
- 0x006eb, 0x06205, 0x1f274, 0x007de, 0x062c9, 0x1f265, 0x005c9, 0x05cde,
- 0x1ffd3, 0x005d4, 0x07988, 0x007ce, 0x0b849, 0x00b1b, 0x05c89, 0x1fac7,
- 0x00b93, 0x05c83, 0x00b9e, 0x0f14f, 0x00c4a, 0x0b9c7, 0x00dd4, 0x0c470,
- 0x1f271, 0x00f38, 0x0fb96, 0x176eb, 0x00fa0, 0x163f7, 0x00bb2, 0x0b91b,
- 0x00bbe, 0x0f102, 0x00f44, 0x0f946, 0x1facd, 0x00f79, 0x0d9bd, 0x0154d,
- 0x0bbc6, 0x00fd2, 0x160e7, 0x0172b, 0x188cb, 0x0175e, 0x0fd76, 0x0175c,
- 0x1bb71, 0x0189f, 0x1a1ee, 0x01f24, 0x1a1f6, 0x01ba7, 0x0bbca, 0x01f7d,
- 0x0ffff, 0x01f2e, 0x1bb65, 0x01bb5, 0x172f9, 0x01fef, 0x1f26c, 0x01f3e,
- 0x0fd77, 0x01762, 0x1bb6e, 0x01ef9, 0x172fc, 0x01fa0, 0x02ab7, 0x02e4a,
- 0x1f267, 0x01fb3, 0x1ffda, 0x02e42, 0x03101, 0x17780, 0x0313d, 0x03475,
- 0x17784, 0x03126, 0x1facf, 0x03c51, 0x17783, 0x03e40, 0x1ffe5, 0x03663,
- 0x1ffe0, 0x03e8f, 0x1f26d, 0x0343c, 0x03cc1, 0x176fd, 0x03e45, 0x02ec0,
- 0x03f61, 0x03dee, 0x03fd8, 0x0583e, 0x02e45, 0x03e59, 0x03d02, 0x05ce8,
- 0x05568, 0x176fe, 0x02f69, 0x1fad8, 0x058c1, 0x05c83, 0x1ffe6, 0x06271,
- 0x06e1c, 0x062c7, 0x068e1, 0x0552f, 0x06864, 0x06866, 0x06e99, 0x05cbc,
- 0x07ca5, 0x078a1, 0x05c82, 0x07dcf, 0x0623b, 0x0623e, 0x068e8, 0x07a36,
- 0x05d9c, 0x0b077, 0x07cf3, 0x07a34, 0x07ca4, 0x07d19, 0x079d2, 0x07d1c,
- 0x07bd9, 0x0b84a, 0x0fb94, 0x0aad5, 0x0dc30, 0x07bf3, 0x0baee, 0x0b07a,
- 0x0c472, 0x0b91e, 0x0d9ba, 0x05d9f, 0x0d0fe, 0x0b9c6, 0x05c87, 0x0f14e,
- 0x0baed, 0x0b92e, 0x0f103, 0x0b9c4, 0x0fb91, 0x0d9bb, 0x0b1ab, 0x0c58d,
- 0x0fffe, 0x0f93b, 0x0f941, 0x0baea, 0x0b91f, 0x0f5cc, 0x0d9bf, 0x0f943,
- 0x0f104, 0x1f260, 0x0fb92, 0x0f93f, 0x0f3a6, 0x0bac7, 0x0f7ab, 0x0bac6,
- 0x17383, 0x0fd6d, 0x0bae9, 0x0fd6e, 0x1e74f, 0x188ca, 0x1f227, 0x0fb93,
- 0x0fb90, 0x0fff7, 0x17085, 0x17083, 0x160e1, 0x17084, 0x0f93e, 0x160e2,
- 0x160c6, 0x1a1f1, 0x1bb6f, 0x17384, 0x0fd70, 0x1f263, 0x188d5, 0x173a6,
- 0x0f5ce, 0x163f2, 0x0fd71, 0x1ffd2, 0x160c4, 0x1ffd4, 0x2c7d3, 0x1bb74,
-};
-
-static const uint8_t coef3_huffbits[1072] = {
- 9, 7, 2, 3, 4, 4, 5, 5,
- 6, 6, 6, 6, 7, 7, 7, 7,
- 7, 8, 8, 8, 8, 8, 8, 8,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 12, 11, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 14, 13, 14, 14, 13, 14, 13,
- 13, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 15,
- 14, 14, 15, 14, 14, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 14, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 14, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 16, 15, 16, 16, 16,
- 16, 15, 15, 16, 16, 16, 16, 16,
- 15, 16, 16, 16, 15, 16, 15, 15,
- 16, 15, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 17, 16, 17, 16, 17, 17, 16,
- 17, 16, 17, 16, 16, 17, 17, 17,
- 16, 17, 16, 16, 17, 16, 17, 16,
- 17, 17, 16, 16, 17, 17, 17, 17,
- 17, 17, 17, 17, 16, 17, 17, 16,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 16, 18, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 16, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 18,
- 17, 17, 17, 17, 18, 17, 17, 18,
- 19, 17, 17, 17, 18, 17, 17, 17,
- 18, 18, 18, 17, 17, 17, 18, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 17, 18, 18, 18, 18, 17,
- 18, 18, 18, 17, 17, 18, 18, 18,
- 18, 19, 18, 18, 19, 19, 20, 18,
- 19, 18, 19, 19, 18, 19, 20, 18,
- 19, 4, 6, 7, 8, 9, 9, 9,
- 10, 10, 10, 11, 11, 11, 11, 12,
- 12, 12, 12, 12, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 16, 15, 15, 15,
- 15, 16, 16, 15, 16, 16, 15, 16,
- 17, 17, 17, 17, 17, 16, 16, 16,
- 16, 16, 17, 17, 17, 16, 18, 17,
- 17, 17, 18, 17, 17, 18, 17, 17,
- 17, 17, 17, 18, 17, 18, 18, 18,
- 17, 17, 18, 19, 18, 18, 17, 17,
- 18, 18, 18, 18, 19, 17, 17, 18,
- 20, 19, 19, 18, 19, 18, 19, 19,
- 19, 19, 17, 5, 7, 9, 10, 10,
- 11, 11, 12, 12, 12, 13, 13, 13,
- 13, 13, 14, 14, 14, 14, 14, 15,
- 14, 15, 15, 15, 15, 15, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 15, 16, 16, 17, 17, 17,
- 16, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 16,
- 16, 19, 18, 18, 19, 17, 19, 20,
- 17, 18, 18, 18, 18, 18, 18, 6,
- 8, 10, 11, 12, 12, 12, 13, 13,
- 13, 14, 14, 14, 14, 15, 15, 15,
- 15, 15, 15, 16, 16, 16, 16, 16,
- 16, 17, 17, 17, 16, 16, 17, 17,
- 17, 17, 17, 17, 17, 16, 16, 16,
- 17, 18, 18, 18, 17, 19, 19, 18,
- 18, 17, 18, 19, 18, 17, 18, 18,
- 19, 18, 17, 17, 6, 9, 11, 12,
- 13, 13, 13, 14, 14, 14, 15, 15,
- 15, 15, 15, 16, 16, 16, 16, 16,
- 16, 17, 16, 17, 17, 17, 17, 17,
- 17, 17, 18, 17, 18, 17, 17, 18,
- 18, 19, 19, 17, 17, 7, 10, 12,
- 13, 13, 14, 14, 14, 14, 15, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 17, 17, 17, 17, 18, 17, 18,
- 18, 18, 18, 18, 18, 18, 18, 17,
- 17, 18, 18, 18, 18, 18, 18, 7,
- 10, 12, 13, 14, 15, 15, 15, 15,
- 16, 16, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 18, 17, 17, 8,
- 11, 13, 14, 15, 15, 15, 15, 16,
- 16, 18, 17, 17, 18, 17, 17, 18,
- 17, 17, 18, 18, 19, 18, 18, 19,
- 19, 19, 18, 18, 18, 8, 11, 13,
- 14, 15, 16, 16, 16, 16, 17, 17,
- 17, 18, 17, 18, 19, 18, 18, 18,
- 18, 18, 18, 8, 12, 14, 15, 15,
- 16, 16, 16, 17, 17, 18, 18, 18,
- 18, 18, 18, 18, 18, 17, 9, 12,
- 14, 15, 16, 16, 17, 17, 17, 17,
- 18, 9, 12, 14, 15, 16, 17, 17,
- 17, 18, 9, 13, 15, 16, 17, 17,
- 18, 17, 18, 17, 9, 13, 15, 16,
- 17, 18, 18, 18, 10, 13, 15, 16,
- 18, 10, 14, 16, 17, 18, 10, 14,
- 16, 17, 10, 14, 16, 18, 18, 10,
- 14, 16, 18, 18, 11, 15, 16, 11,
- 15, 17, 11, 15, 17, 11, 15, 17,
- 11, 15, 17, 11, 15, 17, 12, 16,
- 17, 12, 15, 12, 16, 12, 16, 18,
- 12, 16, 12, 16, 12, 16, 12, 16,
- 17, 12, 16, 18, 12, 17, 13, 16,
- 13, 16, 13, 16, 18, 13, 16, 13,
- 17, 13, 17, 13, 17, 13, 17, 13,
- 17, 13, 17, 13, 17, 13, 17, 13,
- 16, 13, 17, 13, 17, 13, 17, 14,
- 17, 14, 17, 14, 17, 14, 14, 14,
- 17, 14, 17, 14, 14, 18, 14, 14,
- 18, 14, 18, 14, 18, 14, 17, 14,
- 17, 14, 17, 14, 14, 18, 14, 15,
- 15, 15, 14, 15, 15, 14, 15, 15,
- 15, 18, 15, 18, 15, 15, 17, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 16, 15, 15, 15, 15, 16,
- 16, 16, 16, 16, 15, 15, 15, 15,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 17, 16, 16,
- 16, 17, 16, 16, 16, 17, 17, 17,
- 17, 17, 16, 17, 17, 17, 17, 16,
- 16, 16, 17, 17, 17, 17, 16, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 18, 17,
-};
-
-static const uint32_t coef4_huffcodes[476] = {
- 0x00f01, 0x0001e, 0x00000, 0x00004, 0x00006, 0x0000d, 0x0000a, 0x00017,
- 0x0001d, 0x00017, 0x0002c, 0x00031, 0x00039, 0x0003e, 0x00039, 0x0005a,
- 0x00066, 0x00070, 0x0007b, 0x00070, 0x00077, 0x000af, 0x000c9, 0x000f2,
- 0x000f4, 0x000b2, 0x000e3, 0x0015b, 0x0015d, 0x00181, 0x0019d, 0x001e3,
- 0x001c5, 0x002b5, 0x002db, 0x00338, 0x003c3, 0x003cc, 0x003f0, 0x002cd,
- 0x003fa, 0x003a1, 0x005b4, 0x00657, 0x007ab, 0x0074d, 0x0074c, 0x00ac1,
- 0x00ac5, 0x0076b, 0x00ca8, 0x00f04, 0x00f00, 0x00fe3, 0x00f3c, 0x00f10,
- 0x00f39, 0x00fe6, 0x00e26, 0x00e90, 0x016c5, 0x01827, 0x01954, 0x015c5,
- 0x01958, 0x01f8a, 0x01c4a, 0x02b0f, 0x02b41, 0x02b0e, 0x033c6, 0x03050,
- 0x01c4f, 0x02d88, 0x0305c, 0x03c18, 0x02b4f, 0x02cc2, 0x03a47, 0x05680,
- 0x0569d, 0x06442, 0x06443, 0x06446, 0x0656e, 0x06444, 0x07120, 0x0748a,
- 0x0c1ba, 0x07e22, 0x07aa6, 0x07f25, 0x07aa7, 0x07e20, 0x0c11b, 0x0c118,
- 0x07aa5, 0x0ad0a, 0x0f389, 0x19ebb, 0x0caad, 0x0fe42, 0x0fe40, 0x16c34,
- 0x2b4e5, 0x33d65, 0x16c30, 0x1e7ae, 0x1e25c, 0x18370, 0x1e703, 0x19eba,
- 0x16c37, 0x0e234, 0x16c6e, 0x00004, 0x0002a, 0x00061, 0x00075, 0x000cb,
- 0x000ff, 0x00190, 0x001eb, 0x001d1, 0x002b9, 0x00307, 0x00339, 0x0033f,
- 0x003fb, 0x003b4, 0x0060c, 0x00679, 0x00645, 0x0067d, 0x0078a, 0x007e3,
- 0x00749, 0x00ac4, 0x00ad2, 0x00ae3, 0x00c10, 0x00c16, 0x00ad1, 0x00cf4,
- 0x00fe2, 0x01586, 0x00e9d, 0x019f1, 0x01664, 0x01e26, 0x01d38, 0x02b4d,
- 0x033c5, 0x01fc2, 0x01fc3, 0x01d28, 0x03c1d, 0x0598e, 0x0f094, 0x07aa4,
- 0x0ad38, 0x0ac0c, 0x0c11a, 0x079ea, 0x0c881, 0x0fe44, 0x0b635, 0x0ac0d,
- 0x0b61e, 0x05987, 0x07121, 0x0f382, 0x0f387, 0x0e237, 0x0fe47, 0x0f383,
- 0x0f091, 0x0f385, 0x0e233, 0x182ee, 0x19eb8, 0x1663e, 0x0f093, 0x00014,
- 0x00058, 0x00159, 0x00167, 0x00300, 0x003d4, 0x005b5, 0x0079d, 0x0076a,
- 0x00b67, 0x00b60, 0x00f05, 0x00cf0, 0x00f17, 0x00e95, 0x01822, 0x01913,
- 0x016c2, 0x0182f, 0x01959, 0x01fcb, 0x01e27, 0x01c40, 0x033c7, 0x01e7b,
- 0x01c49, 0x02d89, 0x01e23, 0x01660, 0x03f12, 0x02cc6, 0x033e1, 0x05b34,
- 0x0609a, 0x06569, 0x07488, 0x07e21, 0x0cf5f, 0x0712c, 0x0389d, 0x067cf,
- 0x07f28, 0x1663f, 0x33d67, 0x1663d, 0x1e25d, 0x3c1ab, 0x15c44, 0x16c36,
- 0x0001f, 0x000ec, 0x00323, 0x005b2, 0x0079f, 0x00ac2, 0x00f16, 0x00e9e,
- 0x01956, 0x01e0f, 0x019ea, 0x01666, 0x02b89, 0x02b02, 0x02d8c, 0x03c1b,
- 0x03c19, 0x032b5, 0x03f9c, 0x02ccf, 0x03897, 0x05b35, 0x0ad02, 0x07f29,
- 0x06441, 0x03884, 0x07888, 0x0784e, 0x06568, 0x0c1bb, 0x05986, 0x067cc,
- 0x0fe49, 0x0fe48, 0x0c1bc, 0x0fe41, 0x18371, 0x1663c, 0x0e231, 0x0711e,
- 0x0ad09, 0x0f092, 0x0002d, 0x001db, 0x00781, 0x00c1a, 0x00f55, 0x01580,
- 0x01ea8, 0x02d9b, 0x032af, 0x03f16, 0x03c1c, 0x07834, 0x03c45, 0x0389c,
- 0x067ce, 0x06445, 0x0c1b9, 0x07889, 0x07f3a, 0x0784f, 0x07f2b, 0x0ad0b,
- 0x0f090, 0x0c11d, 0x0e94e, 0x0711f, 0x0e9f1, 0x0f38e, 0x079e9, 0x0ad03,
- 0x0f09b, 0x0caae, 0x0fe46, 0x2b4e6, 0x0e9f0, 0x19eb6, 0x67ac1, 0x67ac0,
- 0x33d66, 0x0f388, 0x00071, 0x003a0, 0x00ca9, 0x01829, 0x01d39, 0x02b43,
- 0x02cc4, 0x06554, 0x0f09a, 0x0b61f, 0x067cd, 0x0711c, 0x0b636, 0x07f2a,
- 0x0b634, 0x0c11f, 0x0cf5e, 0x0b61d, 0x0f06b, 0x0caab, 0x0c1be, 0x0e94c,
- 0x0f099, 0x182ed, 0x0e94f, 0x0c119, 0x0e232, 0x2b4e4, 0x0f38a, 0x19eb4,
- 0x1e25f, 0x0e94d, 0x000b7, 0x00785, 0x016cc, 0x03051, 0x033c4, 0x0656f,
- 0x03891, 0x0711d, 0x0caaf, 0x0f097, 0x07489, 0x0f098, 0x0c880, 0x0caaa,
- 0x0f386, 0x19eb7, 0x16c6f, 0x0f384, 0x182e8, 0x182e9, 0x0e230, 0x1e700,
- 0x33d62, 0x33d63, 0x33d64, 0x16c33, 0x0e216, 0x000fd, 0x00c15, 0x01665,
- 0x03c4a, 0x07f3b, 0x07896, 0x0c11c, 0x0e215, 0x16c32, 0x0f38b, 0x0f38d,
- 0x182ea, 0x1e701, 0x712df, 0x15c46, 0x00194, 0x00fe0, 0x03f13, 0x0748b,
- 0x0f096, 0x0cf80, 0x1e25e, 0xe25bd, 0x33d61, 0x16c31, 0x001f9, 0x01912,
- 0x05710, 0x0f3d0, 0x0c1bf, 0x00301, 0x01e24, 0x0ad08, 0x003cd, 0x01c41,
- 0x0c1bd, 0x00563, 0x03a52, 0x0f3d1, 0x00570, 0x02cce, 0x0e217, 0x0067b,
- 0x0655d, 0x0074b, 0x06447, 0x00c12, 0x074fb, 0x00f08, 0x0b61c, 0x00e22,
- 0x0fe43, 0x016c7, 0x01836, 0x019f2, 0x01c43, 0x01d3f, 0x01fcf, 0x02b4c,
- 0x0304c, 0x032b6, 0x03a46, 0x05607, 0x03f17, 0x02cc5, 0x0609b, 0x0655c,
- 0x07e23, 0x067c1, 0x07f26, 0x07f27, 0x0f095, 0x0e9f3, 0x0cf81, 0x0c11e,
- 0x0caac, 0x0f38f, 0x0e9f2, 0x074fa, 0x0e236, 0x0fe45, 0x1c428, 0x0e235,
- 0x182ef, 0x19eb5, 0x0f3d6, 0x182ec, 0x16c35, 0x0f38c, 0x2b4e7, 0x15c47,
- 0xe25bc, 0x1e702, 0x1c4b6, 0x0e25a, 0x3c1aa, 0x15c45, 0x1c429, 0x19eb9,
- 0x1e7af, 0x182eb, 0x1e0d4, 0x3896e,
-};
-
-static const uint8_t coef4_huffbits[476] = {
- 12, 6, 2, 3, 4, 4, 5, 5,
- 5, 6, 6, 6, 6, 6, 7, 7,
- 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 9, 9, 9, 9,
- 10, 10, 10, 10, 10, 10, 10, 11,
- 10, 11, 11, 11, 11, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 13, 13, 13, 13, 13, 13,
- 13, 13, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 16, 16,
- 16, 15, 15, 15, 15, 15, 16, 16,
- 15, 16, 16, 17, 16, 16, 16, 17,
- 18, 18, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 4, 6, 7, 8, 8,
- 8, 9, 9, 10, 10, 10, 10, 10,
- 10, 11, 11, 11, 11, 11, 11, 11,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 13, 13, 13, 14, 13, 14, 14,
- 14, 13, 13, 14, 14, 16, 16, 15,
- 16, 16, 16, 15, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 17, 16, 16,
- 16, 16, 17, 17, 17, 18, 16, 5,
- 8, 9, 10, 10, 10, 11, 11, 12,
- 12, 12, 12, 12, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 14, 14, 13,
- 14, 14, 13, 14, 14, 15, 14, 15,
- 15, 15, 16, 15, 16, 16, 15, 15,
- 15, 18, 18, 18, 17, 18, 17, 17,
- 6, 9, 10, 11, 11, 12, 12, 13,
- 13, 13, 13, 14, 14, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 16, 15,
- 15, 15, 15, 15, 15, 16, 16, 15,
- 16, 16, 16, 16, 17, 18, 17, 16,
- 16, 16, 7, 10, 11, 12, 12, 13,
- 13, 14, 14, 14, 14, 15, 14, 15,
- 15, 15, 16, 15, 15, 15, 15, 16,
- 16, 16, 17, 16, 17, 16, 15, 16,
- 16, 16, 16, 18, 17, 17, 19, 19,
- 18, 16, 7, 11, 12, 13, 14, 14,
- 15, 15, 16, 16, 15, 16, 16, 15,
- 16, 16, 16, 16, 16, 16, 16, 17,
- 16, 17, 17, 16, 17, 18, 16, 17,
- 17, 17, 8, 11, 13, 14, 14, 15,
- 15, 16, 16, 16, 16, 16, 16, 16,
- 16, 17, 17, 16, 17, 17, 17, 17,
- 18, 18, 18, 17, 17, 8, 12, 14,
- 14, 15, 15, 16, 17, 17, 16, 16,
- 17, 17, 20, 17, 9, 12, 14, 16,
- 16, 16, 17, 21, 18, 17, 9, 13,
- 15, 16, 16, 10, 13, 16, 10, 14,
- 16, 11, 15, 16, 11, 15, 17, 11,
- 15, 12, 15, 12, 16, 12, 16, 13,
- 16, 13, 13, 13, 14, 14, 13, 14,
- 14, 14, 15, 15, 14, 15, 15, 15,
- 15, 15, 15, 15, 16, 17, 16, 16,
- 16, 16, 17, 16, 17, 16, 18, 17,
- 17, 17, 16, 17, 17, 16, 18, 17,
- 21, 17, 18, 17, 18, 17, 18, 17,
- 17, 17, 17, 19,
-};
-
-static const uint32_t coef5_huffcodes[435] = {
- 0x00347, 0x0000b, 0x00001, 0x00001, 0x0000c, 0x00004, 0x00010, 0x00015,
- 0x0001f, 0x0000b, 0x00023, 0x00026, 0x00029, 0x00035, 0x00037, 0x00001,
- 0x00015, 0x0001a, 0x0001d, 0x0001c, 0x0001e, 0x0004e, 0x00049, 0x00051,
- 0x00078, 0x00004, 0x00000, 0x00008, 0x0000d, 0x0007b, 0x00005, 0x00032,
- 0x00095, 0x00091, 0x00096, 0x000a1, 0x000d9, 0x00003, 0x00019, 0x00061,
- 0x00066, 0x00060, 0x00017, 0x0000e, 0x00063, 0x001a0, 0x001b7, 0x001e6,
- 0x001e7, 0x001b6, 0x00018, 0x001e8, 0x00038, 0x00031, 0x00005, 0x0003d,
- 0x00027, 0x001ea, 0x0001a, 0x000c5, 0x000f9, 0x000ff, 0x000db, 0x00250,
- 0x000fc, 0x0025c, 0x00008, 0x00075, 0x003d7, 0x003d3, 0x001b0, 0x0007c,
- 0x003ca, 0x00036, 0x00189, 0x004a6, 0x004a2, 0x004fb, 0x000c0, 0x0007f,
- 0x0009a, 0x00311, 0x0006e, 0x0009b, 0x0068c, 0x006c0, 0x00484, 0x00012,
- 0x000c3, 0x0094f, 0x00979, 0x009f9, 0x00d09, 0x00da6, 0x00da8, 0x00901,
- 0x000c1, 0x00373, 0x00d08, 0x009fa, 0x00d8b, 0x00d85, 0x00d86, 0x000df,
- 0x006e2, 0x000ce, 0x00f24, 0x009fe, 0x001f7, 0x007c1, 0x000cf, 0x009fc,
- 0x009ff, 0x00d89, 0x00da9, 0x009fd, 0x001f8, 0x01a36, 0x0128c, 0x0129d,
- 0x01a37, 0x00196, 0x003ea, 0x00f8b, 0x00d93, 0x01e45, 0x01e58, 0x01e4b,
- 0x01e59, 0x013f1, 0x00309, 0x00265, 0x00308, 0x0243a, 0x027e1, 0x00f89,
- 0x00324, 0x03cbc, 0x03c86, 0x03695, 0x0243c, 0x0243b, 0x0243e, 0x01e4a,
- 0x003a5, 0x03468, 0x03428, 0x03c84, 0x027e0, 0x025e2, 0x01880, 0x00197,
- 0x00325, 0x03cb7, 0x0791e, 0x007ec, 0x06c75, 0x004c8, 0x04bc7, 0x004c6,
- 0x00983, 0x0481e, 0x01b53, 0x0251b, 0x01b58, 0x00984, 0x04fa8, 0x03cbb,
- 0x00f8a, 0x00322, 0x0346a, 0x0243d, 0x00326, 0x03469, 0x0481f, 0x0481d,
- 0x00746, 0x09032, 0x01b50, 0x01d13, 0x0d8e4, 0x0481b, 0x06c74, 0x0796b,
- 0x07969, 0x00985, 0x0d8e3, 0x00986, 0x00fa2, 0x01301, 0x06c7c, 0x00987,
- 0x03cb8, 0x0f4af, 0x00e88, 0x1b1c0, 0x00fce, 0x033eb, 0x03f6a, 0x03f69,
- 0x00fcf, 0x0791f, 0x004c9, 0x04871, 0x00fcd, 0x00982, 0x00fcc, 0x00fa3,
- 0x01d12, 0x0796c, 0x01b47, 0x00321, 0x0796a, 0x0d8e2, 0x04872, 0x04873,
- 0x0000e, 0x00014, 0x0000a, 0x000a0, 0x00012, 0x0007d, 0x001a2, 0x0003b,
- 0x0025f, 0x000dd, 0x0027c, 0x00343, 0x00368, 0x0036b, 0x0003e, 0x001fa,
- 0x00485, 0x001b3, 0x0007f, 0x001b1, 0x0019e, 0x004ba, 0x007ad, 0x00339,
- 0x00066, 0x007a4, 0x00793, 0x006c6, 0x0007e, 0x000f1, 0x00372, 0x009fb,
- 0x00d83, 0x00d8a, 0x00947, 0x009f4, 0x001d0, 0x01b09, 0x01b4b, 0x007ec,
- 0x003e1, 0x000ca, 0x003ec, 0x02539, 0x04fa9, 0x01b57, 0x03429, 0x03d2a,
- 0x00d97, 0x003a7, 0x00dc0, 0x00d96, 0x00dc1, 0x007eb, 0x03cba, 0x00c43,
- 0x00c41, 0x01b52, 0x007ef, 0x00323, 0x03cb9, 0x03c83, 0x007d0, 0x007ed,
- 0x06c7f, 0x09033, 0x03f6c, 0x36383, 0x1e95d, 0x06c78, 0x00747, 0x01b51,
- 0x00022, 0x00016, 0x00039, 0x00252, 0x00079, 0x00486, 0x00338, 0x00369,
- 0x00d88, 0x00026, 0x00d87, 0x00f4b, 0x00d82, 0x00027, 0x001e1, 0x01a15,
- 0x007c7, 0x012f0, 0x001e0, 0x006d0, 0x01a16, 0x01e44, 0x01e5f, 0x03690,
- 0x00d90, 0x00c42, 0x00daf, 0x00d92, 0x00f80, 0x00cfb, 0x0342f, 0x0487f,
- 0x01b46, 0x07968, 0x00d95, 0x00d91, 0x01b55, 0x03f68, 0x04bc6, 0x03cbd,
- 0x00f81, 0x00320, 0x00069, 0x000fe, 0x006d5, 0x0033f, 0x000de, 0x007c6,
- 0x01e40, 0x00d94, 0x00f88, 0x03c8e, 0x03694, 0x00dae, 0x00dad, 0x00267,
- 0x003a6, 0x00327, 0x0487e, 0x007ee, 0x00749, 0x004c7, 0x03692, 0x01b56,
- 0x00fd1, 0x07a56, 0x06c77, 0x09031, 0x00748, 0x06c7a, 0x0796d, 0x033ea,
- 0x06c76, 0x00fd0, 0x36382, 0x1e417, 0x00745, 0x04faf, 0x0d8e1, 0x03f6b,
- 0x1e95c, 0x04fad, 0x0009e, 0x004bd, 0x0067c, 0x01b08, 0x003eb, 0x01b45,
- 0x03691, 0x0d8e5, 0x07904, 0x00981, 0x007ea, 0x019f4, 0x06c7d, 0x04fab,
- 0x04fac, 0x06c7e, 0x01300, 0x06c7b, 0x0006f, 0x003f7, 0x03c85, 0x004c4,
- 0x0001e, 0x006e1, 0x03693, 0x01b44, 0x00241, 0x01e46, 0x0019d, 0x00266,
- 0x004bb, 0x02538, 0x007ac, 0x01b54, 0x00902, 0x04870, 0x00da7, 0x00900,
- 0x00185, 0x06c79, 0x006e3, 0x003e9, 0x01e94, 0x003ed, 0x003f2, 0x0342e,
- 0x0346b, 0x0251a, 0x004c5, 0x01881, 0x0481c, 0x01b59, 0x03c87, 0x04fae,
- 0x007e9, 0x03f6d, 0x0f20a, 0x09030, 0x04faa, 0x0d8e6, 0x03f6f, 0x0481a,
- 0x03f6e, 0x1e416, 0x0d8e7,
-};
-
-static const uint8_t coef5_huffbits[435] = {
- 10, 4, 2, 4, 4, 5, 5, 5,
- 5, 6, 6, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 8, 8, 8, 7, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 10, 9, 10, 10, 10, 10,
- 10, 9, 10, 10, 10, 10, 10, 10,
- 10, 10, 11, 11, 10, 10, 11, 11,
- 10, 11, 11, 11, 11, 11, 12, 12,
- 12, 12, 12, 12, 11, 11, 11, 12,
- 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 13,
- 13, 13, 12, 12, 13, 13, 13, 12,
- 12, 12, 12, 12, 13, 13, 13, 13,
- 13, 14, 14, 14, 14, 13, 13, 13,
- 13, 13, 14, 14, 14, 14, 14, 14,
- 15, 14, 14, 14, 14, 14, 14, 13,
- 14, 14, 14, 14, 14, 14, 15, 14,
- 15, 14, 15, 15, 15, 15, 15, 15,
- 16, 15, 15, 14, 15, 16, 15, 14,
- 14, 15, 14, 14, 15, 14, 15, 15,
- 15, 16, 15, 17, 16, 15, 15, 15,
- 15, 16, 16, 16, 16, 17, 15, 16,
- 14, 16, 16, 17, 16, 16, 16, 16,
- 16, 15, 15, 15, 16, 16, 16, 16,
- 17, 15, 15, 15, 15, 16, 15, 15,
- 4, 7, 8, 8, 9, 9, 9, 10,
- 10, 10, 10, 10, 10, 10, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 12,
- 12, 11, 11, 11, 12, 12, 12, 12,
- 12, 12, 12, 12, 13, 13, 13, 13,
- 12, 13, 14, 14, 15, 15, 14, 14,
- 14, 14, 14, 14, 14, 15, 14, 14,
- 14, 15, 15, 15, 14, 14, 15, 15,
- 15, 16, 16, 18, 17, 15, 15, 15,
- 6, 9, 10, 10, 11, 11, 12, 12,
- 12, 13, 12, 12, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 14,
- 14, 14, 14, 14, 14, 14, 14, 15,
- 15, 15, 14, 14, 15, 16, 15, 14,
- 14, 15, 7, 10, 11, 12, 13, 13,
- 13, 14, 14, 14, 14, 14, 14, 14,
- 14, 15, 15, 15, 15, 15, 14, 15,
- 16, 15, 15, 16, 15, 15, 15, 16,
- 15, 16, 18, 17, 15, 15, 16, 16,
- 17, 15, 8, 11, 13, 13, 14, 15,
- 14, 16, 15, 16, 15, 15, 15, 15,
- 15, 15, 17, 15, 9, 12, 14, 15,
- 10, 13, 14, 15, 10, 13, 11, 14,
- 11, 14, 11, 15, 12, 15, 12, 12,
- 13, 15, 13, 14, 13, 14, 14, 14,
- 14, 14, 15, 15, 15, 15, 14, 15,
- 15, 16, 16, 16, 15, 16, 16, 15,
- 16, 17, 16,
-};
-
-static const uint16_t levels0[60] = {
-317, 92, 62, 60, 19, 17, 10, 7,
- 6, 5, 5, 3, 3, 3, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1,
-};
-
-static const uint16_t levels1[40] = {
-311, 91, 61, 28, 10, 6, 5, 2,
- 2, 2, 2, 2, 2, 2, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
-};
-
-static const uint16_t levels2[340] = {
-181,110, 78, 63, 61, 62, 60, 61,
- 33, 41, 41, 19, 17, 19, 12, 11,
- 9, 11, 10, 6, 8, 7, 6, 4,
- 5, 5, 4, 4, 3, 4, 3, 5,
- 3, 4, 3, 3, 3, 3, 3, 3,
- 2, 2, 4, 2, 3, 2, 3, 3,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 3, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 1, 2, 1, 2, 2,
- 2, 2, 1, 2, 1, 1, 1, 2,
- 2, 1, 2, 1, 2, 2, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1,
-};
-
-static const uint16_t levels3[180] = {
-351,122, 76, 61, 41, 42, 24, 30,
- 22, 19, 11, 9, 10, 8, 5, 5,
- 4, 5, 5, 3, 3, 3, 3, 3,
- 3, 3, 2, 2, 3, 2, 2, 2,
- 3, 3, 2, 2, 2, 3, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 1,
- 2, 2, 1, 2, 1, 2, 2, 2,
- 2, 2, 2, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1,
-};
-
-static const uint16_t levels4[70] = {
-113, 68, 49, 42, 40, 32, 27, 15,
- 10, 5, 3, 3, 3, 3, 2, 2,
- 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1,
-};
-
-static const uint16_t levels5[40] = {
-214, 72, 42, 40, 18, 4, 4, 2,
- 2, 2, 2, 2, 1, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
-};
-
-static const CoefVLCTable coef_vlcs[6] = {
- {
- sizeof(coef0_huffbits), sizeof(levels0)/2, coef0_huffcodes, coef0_huffbits, levels0,
- },
- {
- sizeof(coef1_huffbits), sizeof(levels1)/2, coef1_huffcodes, coef1_huffbits, levels1,
- },
- {
- sizeof(coef2_huffbits), sizeof(levels2)/2, coef2_huffcodes, coef2_huffbits, levels2,
- },
- {
- sizeof(coef3_huffbits), sizeof(levels3)/2, coef3_huffcodes, coef3_huffbits, levels3,
- },
- {
- sizeof(coef4_huffbits), sizeof(levels4)/2, coef4_huffcodes, coef4_huffbits, levels4,
- },
- {
- sizeof(coef5_huffbits), sizeof(levels5)/2, coef5_huffcodes, coef5_huffbits, levels5,
- },
-};
-
-#endif /* AVCODEC_WMADATA_H */
+++ /dev/null
-/*
- * WMA 9/3/PRO compatible decoder
- * Copyright (c) 2007 Baptiste Coudurier, Benjamin Larsson, Ulion
- * Copyright (c) 2008 - 2009 Sascha Sommer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief tables for wmapro decoding
- */
-
-#ifndef AVCODEC_WMAPRODATA_H
-#define AVCODEC_WMAPRODATA_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-/**
- * @brief frequencies to divide the frequency spectrum into scale factor bands
- */
-static const uint16_t critical_freq[] = {
- 100, 200, 300, 400, 510, 630, 770,
- 920, 1080, 1270, 1480, 1720, 2000, 2320,
- 2700, 3150, 3700, 4400, 5300, 6400, 7700,
- 9500, 12000, 15500, 20675, 28575, 41375, 63875,
-};
-
-
-/**
- * @name Huffman tables for DPCM-coded scale factors
- * @{
- */
-#define HUFF_SCALE_SIZE 121
-#define HUFF_SCALE_MAXBITS 19
-static const uint16_t scale_huffcodes[HUFF_SCALE_SIZE] = {
- 0xE639, 0xE6C2, 0xE6C1, 0xE6C0, 0xE63F, 0xE63E, 0xE63D, 0xE63C,
- 0xE63B, 0xE63A, 0xE638, 0xE637, 0xE636, 0xE635, 0xE634, 0xE632,
- 0xE633, 0xE620, 0x737B, 0xE610, 0xE611, 0xE612, 0xE613, 0xE614,
- 0xE615, 0xE616, 0xE617, 0xE618, 0xE619, 0xE61A, 0xE61B, 0xE61C,
- 0xE61D, 0xE61E, 0xE61F, 0xE6C3, 0xE621, 0xE622, 0xE623, 0xE624,
- 0xE625, 0xE626, 0xE627, 0xE628, 0xE629, 0xE62A, 0xE62B, 0xE62C,
- 0xE62D, 0xE62E, 0xE62F, 0xE630, 0xE631, 0x1CDF, 0x0E60, 0x0399,
- 0x00E7, 0x001D, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006,
- 0x0002, 0x0007, 0x0006, 0x000F, 0x0038, 0x0072, 0x039A, 0xE6C4,
- 0xE6C5, 0xE6C6, 0xE6C7, 0xE6C8, 0xE6C9, 0xE6CA, 0xE6CB, 0xE6CC,
- 0xE6CD, 0xE6CE, 0xE6CF, 0xE6D0, 0xE6D1, 0xE6D2, 0xE6D3, 0xE6D4,
- 0xE6D5, 0xE6D6, 0xE6D7, 0xE6D8, 0xE6D9, 0xE6DA, 0xE6DB, 0xE6DC,
- 0xE6DD, 0xE6DE, 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, 0xE6E3, 0xE6E4,
- 0xE6E5, 0xE6E6, 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, 0xE6EB, 0xE6EC,
- 0xE6ED, 0xE6EE, 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, 0xE6F3, 0xE6F4,
- 0xE6F5,
-};
-
-static const uint8_t scale_huffbits[HUFF_SCALE_SIZE] = {
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 18, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 16, 15, 13,
- 11, 8, 5, 2, 1, 3, 5, 6,
- 6, 7, 7, 7, 9, 10, 13, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19,
-};
-/** @} */
-
-
-/**
- * @name Huffman, run and level tables for runlevel-coded scale factors
- * @{
- */
-#define HUFF_SCALE_RL_SIZE 120
-#define HUFF_SCALE_RL_MAXBITS 21
-static const uint32_t scale_rl_huffcodes[HUFF_SCALE_RL_SIZE] = {
- 0x00010C, 0x000001, 0x10FE2A, 0x000003, 0x000003, 0x000001, 0x000013,
- 0x000020, 0x000029, 0x000014, 0x000016, 0x000045, 0x000049, 0x00002F,
- 0x000042, 0x00008E, 0x00008F, 0x000129, 0x000009, 0x00000D, 0x0004AC,
- 0x00002C, 0x000561, 0x0002E6, 0x00087C, 0x0002E2, 0x00095C, 0x000018,
- 0x000001, 0x000016, 0x000044, 0x00002A, 0x000007, 0x000159, 0x000143,
- 0x000128, 0x00015A, 0x00012D, 0x00002B, 0x0000A0, 0x000142, 0x00012A,
- 0x0002EF, 0x0004AF, 0x00087D, 0x004AE9, 0x0043F9, 0x000067, 0x000199,
- 0x002B05, 0x001583, 0x0021FE, 0x10FE2C, 0x000004, 0x00002E, 0x00010D,
- 0x00000A, 0x000244, 0x000017, 0x000245, 0x000011, 0x00010E, 0x00012C,
- 0x00002A, 0x00002F, 0x000121, 0x000046, 0x00087E, 0x0000BA, 0x000032,
- 0x0087F0, 0x0056DC, 0x0002EC, 0x0043FA, 0x002B6F, 0x004AE8, 0x0002B7,
- 0x10FE2B, 0x000001, 0x000051, 0x000010, 0x0002EE, 0x000B9C, 0x002576,
- 0x000198, 0x0056DD, 0x0000CD, 0x000AC0, 0x000170, 0x004AEF, 0x00002D,
- 0x0004AD, 0x0021FF, 0x0005CF, 0x002B04, 0x10FE29, 0x10FE28, 0x0002ED,
- 0x002E74, 0x021FC4, 0x004AEE, 0x010FE3, 0x087F17, 0x000000, 0x000097,
- 0x0002E3, 0x000ADA, 0x002575, 0x00173B, 0x0043FB, 0x002E75, 0x10FE2D,
- 0x0015B6, 0x00056C, 0x000057, 0x000123, 0x000120, 0x00021E, 0x000172,
- 0x0002B1,
-};
-
-static const uint8_t scale_rl_huffbits[HUFF_SCALE_RL_SIZE] = {
- 9, 2, 21, 2, 4, 5, 5,
- 6, 6, 7, 7, 7, 7, 6,
- 7, 8, 8, 9, 10, 10, 11,
- 12, 11, 12, 12, 12, 12, 11,
- 4, 5, 7, 8, 9, 9, 9,
- 9, 9, 9, 8, 8, 9, 9,
- 12, 11, 12, 15, 15, 13, 15,
- 14, 13, 14, 21, 5, 6, 9,
- 10, 10, 11, 10, 11, 9, 9,
- 6, 8, 9, 7, 12, 10, 12,
- 16, 15, 12, 15, 14, 15, 10,
- 21, 6, 7, 11, 12, 14, 14,
- 15, 15, 14, 12, 11, 15, 12,
- 11, 14, 13, 14, 21, 21, 12,
- 16, 18, 15, 17, 20, 7, 8,
- 12, 12, 14, 15, 15, 16, 21,
- 13, 11, 7, 9, 9, 10, 11,
- 10,
-};
-
-
-static const uint8_t scale_rl_run[HUFF_SCALE_RL_SIZE] = {
- 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 0, 1, 0, 1, 0, 1,
-};
-
-static const uint8_t scale_rl_level[HUFF_SCALE_RL_SIZE] = {
- 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 7, 7, 8, 8, 9, 9,
-};
-/** @} */
-
-
-/**
- * @name Huffman, run and level codes for runlevel-coded coefficients
- * @{
- */
-#define HUFF_COEF0_SIZE 272
-#define HUFF_COEF0_MAXBITS 21
-static const uint32_t coef0_huffcodes[HUFF_COEF0_SIZE] = {
- 0x00004A, 0x00002B, 0x000000, 0x000003, 0x000006, 0x000009, 0x00000F,
- 0x000010, 0x000016, 0x000011, 0x000016, 0x000028, 0x00002F, 0x000026,
- 0x000029, 0x000045, 0x000055, 0x00005D, 0x000042, 0x00004E, 0x000051,
- 0x00005E, 0x00008D, 0x0000A8, 0x0000AD, 0x000080, 0x000096, 0x00009F,
- 0x0000AA, 0x0000BE, 0x00011C, 0x000153, 0x000158, 0x000170, 0x000104,
- 0x00010D, 0x000105, 0x000103, 0x00012F, 0x000177, 0x000175, 0x000157,
- 0x000174, 0x000225, 0x00023B, 0x00020D, 0x00021F, 0x000281, 0x00027B,
- 0x000282, 0x0002AC, 0x0002FD, 0x00044F, 0x000478, 0x00044D, 0x0002EC,
- 0x00044E, 0x000564, 0x000409, 0x00040B, 0x000501, 0x000545, 0x0004F3,
- 0x000541, 0x00043B, 0x0004F1, 0x0004F4, 0x0008FD, 0x000A94, 0x000811,
- 0x000B88, 0x000B91, 0x000B93, 0x0008EA, 0x000899, 0x000B8A, 0x000972,
- 0x0009E5, 0x000A8F, 0x000A84, 0x000A8E, 0x000A00, 0x000830, 0x0008E8,
- 0x000B95, 0x000871, 0x00083A, 0x000814, 0x000873, 0x000BFE, 0x001728,
- 0x001595, 0x001712, 0x00102A, 0x001021, 0x001729, 0x00152E, 0x0013C3,
- 0x001721, 0x001597, 0x00151B, 0x0010F2, 0x001403, 0x001703, 0x001503,
- 0x001708, 0x0013C1, 0x00170E, 0x00170C, 0x0010E1, 0x0011EA, 0x001020,
- 0x001500, 0x0017FA, 0x001704, 0x001705, 0x0017F0, 0x0017FB, 0x0021E6,
- 0x002B2D, 0x0020C6, 0x002B29, 0x002E4A, 0x0023AC, 0x001519, 0x0023F3,
- 0x002B2C, 0x0021C0, 0x0017FE, 0x0023D7, 0x0017F9, 0x0012E7, 0x0013C0,
- 0x002261, 0x0023D3, 0x002057, 0x002056, 0x0021D2, 0x0020C7, 0x0023D2,
- 0x0020EC, 0x0044C0, 0x002FE2, 0x00475B, 0x002A03, 0x002FE3, 0x0021E2,
- 0x0021D0, 0x002A31, 0x002E13, 0x002E05, 0x0047E5, 0x00000E, 0x000024,
- 0x000088, 0x0000B9, 0x00010C, 0x000224, 0x0002B3, 0x000283, 0x0002ED,
- 0x00047B, 0x00041E, 0x00043D, 0x0004F5, 0x0005FD, 0x000A92, 0x000B96,
- 0x000838, 0x000971, 0x000B83, 0x000B80, 0x000BF9, 0x0011D3, 0x0011E8,
- 0x0011D7, 0x001527, 0x0011F8, 0x001073, 0x0010F0, 0x0010E4, 0x0017F8,
- 0x001062, 0x001402, 0x0017E3, 0x00151A, 0x001077, 0x00152B, 0x00170D,
- 0x0021D3, 0x002E41, 0x0013C2, 0x000029, 0x0000A9, 0x00025D, 0x000419,
- 0x000544, 0x000B8B, 0x0009E4, 0x0011D2, 0x001526, 0x001724, 0x0012E6,
- 0x00150B, 0x0017FF, 0x002E26, 0x002E4B, 0x002B28, 0x0021E3, 0x002A14,
- 0x00475A, 0x002E12, 0x000057, 0x00023E, 0x000A90, 0x000BF0, 0x001072,
- 0x001502, 0x0023D6, 0x0020ED, 0x002A30, 0x0044C7, 0x00008C, 0x00047F,
- 0x00152A, 0x002262, 0x002E04, 0x0000A1, 0x0005F9, 0x000173, 0x000875,
- 0x000171, 0x00152D, 0x0002E3, 0x0017E2, 0x0002AD, 0x0021C1, 0x000479,
- 0x0021E7, 0x00041F, 0x005C4E, 0x000543, 0x005C4F, 0x000A91, 0x00898D,
- 0x000B97, 0x008746, 0x000970, 0x008745, 0x000B85, 0x00A856, 0x00152F,
- 0x010E8E, 0x0010E5, 0x00A857, 0x00170F, 0x021D11, 0x002A58, 0x010E8F,
- 0x002E40, 0x021D13, 0x002A59, 0x043A25, 0x002A02, 0x043A21, 0x0044C1,
- 0x087448, 0x0047E4, 0x043A20, 0x00542A, 0x087449, 0x00898C,
-};
-
-static const uint8_t coef0_huffbits[HUFF_COEF0_SIZE] = {
- 8, 7, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 8, 8, 8,
- 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 10,
- 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 13,
- 12, 12, 12, 12, 12, 12, 13,
- 13, 13, 13, 13, 13, 13, 12,
- 12, 13, 13, 13, 13, 13, 13,
- 13, 13, 14, 14, 13, 13, 14,
- 13, 13, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 13, 14,
- 14, 14, 14, 14, 14, 14, 15,
- 14, 15, 14, 14, 14, 14, 14,
- 14, 15, 14, 14, 14, 14, 14,
- 14, 14, 15, 15, 15, 15, 14,
- 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 4, 7,
- 8, 9, 10, 10, 10, 11, 11,
- 11, 12, 12, 12, 12, 12, 12,
- 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 13, 14,
- 15, 14, 14, 6, 9, 11, 12,
- 12, 12, 13, 13, 13, 13, 14,
- 14, 14, 14, 14, 14, 15, 15,
- 15, 15, 7, 10, 12, 13, 14,
- 14, 14, 15, 15, 15, 8, 11,
- 13, 14, 15, 9, 12, 9, 13,
- 10, 13, 10, 14, 11, 15, 11,
- 15, 12, 15, 12, 15, 12, 16,
- 12, 17, 13, 17, 13, 17, 13,
- 18, 14, 17, 14, 19, 14, 18,
- 14, 19, 14, 20, 15, 20, 15,
- 21, 15, 20, 16, 21, 16,
-};
-
-
-#define HUFF_COEF1_SIZE 244
-#define HUFF_COEF1_MAXBITS 22
-static const uint32_t coef1_huffcodes[HUFF_COEF1_SIZE] = {
- 0x0001E2, 0x00007F, 0x000000, 0x000002, 0x000008, 0x00000E, 0x000019,
- 0x00002F, 0x000037, 0x000060, 0x00006C, 0x000095, 0x0000C6, 0x0000F0,
- 0x00012E, 0x000189, 0x0001A5, 0x0001F8, 0x000253, 0x00030A, 0x000344,
- 0x00034D, 0x0003F2, 0x0004BD, 0x0005D7, 0x00062A, 0x00068B, 0x000693,
- 0x000797, 0x00097D, 0x000BAB, 0x000C52, 0x000C5E, 0x000D21, 0x000D20,
- 0x000F1A, 0x000FCE, 0x000FD1, 0x0012F1, 0x001759, 0x0018AC, 0x0018A7,
- 0x0018BF, 0x001A2B, 0x001E52, 0x001E50, 0x001E31, 0x001FB8, 0x0025E6,
- 0x0025E7, 0x002EB4, 0x002EB7, 0x003169, 0x00315B, 0x00317C, 0x00316C,
- 0x0034CA, 0x00348D, 0x003F40, 0x003CA2, 0x003F76, 0x004BC3, 0x004BE5,
- 0x003F73, 0x004BF8, 0x004BF9, 0x006131, 0x00628B, 0x006289, 0x0062DA,
- 0x00628A, 0x0062D4, 0x006997, 0x0062B4, 0x006918, 0x00794D, 0x007E7B,
- 0x007E87, 0x007EEA, 0x00794E, 0x00699D, 0x007967, 0x00699F, 0x0062DB,
- 0x007E7A, 0x007EEB, 0x00BAC0, 0x0097C9, 0x00C537, 0x00C5AB, 0x00D233,
- 0x00D338, 0x00BAC1, 0x00D23D, 0x012F91, 0x00D339, 0x00FDC8, 0x00D23C,
- 0x00FDDC, 0x00FDC9, 0x00FDDD, 0x00D33C, 0x000003, 0x000016, 0x00003E,
- 0x0000C3, 0x0001A1, 0x000347, 0x00062E, 0x000BAA, 0x000F2D, 0x001A2A,
- 0x001E58, 0x00309B, 0x003CA3, 0x005D6A, 0x00629A, 0x006996, 0x00794F,
- 0x007EE5, 0x00BAD7, 0x00C5AA, 0x00C5F4, 0x00FDDF, 0x00FDDE, 0x018A20,
- 0x018A6D, 0x01A67B, 0x01A464, 0x025F21, 0x01F9E2, 0x01F9E3, 0x00000A,
- 0x00003D, 0x000128, 0x0003C7, 0x000C24, 0x0018A3, 0x002EB1, 0x003CB2,
- 0x00691F, 0x007E79, 0x000013, 0x0000BB, 0x00034E, 0x000D14, 0x0025FD,
- 0x004BE7, 0x000024, 0x000188, 0x0007EF, 0x000035, 0x000308, 0x0012F2,
- 0x00005C, 0x0003F6, 0x0025E0, 0x00006D, 0x000698, 0x000096, 0x000C25,
- 0x0000C7, 0x000F1B, 0x0000F3, 0x0012FF, 0x000174, 0x001A66, 0x0001A0,
- 0x003099, 0x0001E4, 0x00316B, 0x000252, 0x003F31, 0x00030B, 0x004BE6,
- 0x000346, 0x0062FB, 0x00034F, 0x007966, 0x0003F5, 0x007E86, 0x0005D4,
- 0x00C511, 0x00062C, 0x00C5F5, 0x000692, 0x00F299, 0x000795, 0x00F298,
- 0x0007E9, 0x018A21, 0x00097E, 0x0175AD, 0x000C27, 0x01A67A, 0x000C57,
- 0x02EB59, 0x000D22, 0x0314D9, 0x000F19, 0x03F3C2, 0x000FCD, 0x0348CB,
- 0x0012F8, 0x04BE41, 0x0018A0, 0x03F3C1, 0x0018A1, 0x04BE40, 0x0018B7,
- 0x0629B0, 0x001A64, 0x0D2329, 0x001E30, 0x03F3C3, 0x001F9F, 0x0BAD62,
- 0x001F99, 0x0FCF00, 0x00309A, 0x0629B1, 0x002EB6, 0x175AC3, 0x00314C,
- 0x069195, 0x003168, 0x0BAD63, 0x00348E, 0x175AC1, 0x003F30, 0x07E781,
- 0x003F41, 0x0D2328, 0x003F42, 0x1F9E03, 0x004BC2, 0x175AC2, 0x003F74,
- 0x175AC0, 0x005D61, 0x3F3C05, 0x006130, 0x3F3C04, 0x0062B5,
-};
-
-static const uint8_t coef1_huffbits[HUFF_COEF1_SIZE] = {
- 9, 7, 2, 3, 4, 4, 5,
- 6, 6, 7, 7, 8, 8, 8,
- 9, 9, 9, 9, 10, 10, 10,
- 10, 10, 11, 11, 11, 11, 11,
- 11, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 14,
- 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 15, 15,
- 14, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 16, 16, 16, 16, 16,
- 16, 16, 16, 17, 16, 16, 16,
- 16, 16, 16, 16, 3, 5, 6,
- 8, 9, 10, 11, 12, 12, 13,
- 13, 14, 14, 15, 15, 15, 15,
- 15, 16, 16, 16, 16, 16, 17,
- 17, 17, 17, 18, 17, 17, 4,
- 6, 9, 10, 12, 13, 14, 14,
- 15, 15, 5, 8, 10, 12, 14,
- 15, 6, 9, 11, 6, 10, 13,
- 7, 10, 14, 7, 11, 8, 12,
- 8, 12, 8, 13, 9, 13, 9,
- 14, 9, 14, 10, 14, 10, 15,
- 10, 15, 10, 15, 10, 15, 11,
- 16, 11, 16, 11, 16, 11, 16,
- 11, 17, 12, 17, 12, 17, 12,
- 18, 12, 18, 12, 18, 12, 18,
- 13, 19, 13, 18, 13, 19, 13,
- 19, 13, 20, 13, 18, 13, 20,
- 13, 20, 14, 19, 14, 21, 14,
- 19, 14, 20, 14, 21, 14, 19,
- 14, 20, 14, 21, 15, 21, 14,
- 21, 15, 22, 15, 22, 15,
-};
-
-
-static const uint16_t coef0_run[HUFF_COEF0_SIZE] = {
- 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 0, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
- 2, 3, 4, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0,
-};
-
-static const float coef0_level[HUFF_COEF0_SIZE] = {
- 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
- 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11,
- 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18,
- 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25,
- 25, 26, 26, 27, 27, 28,
-};
-
-
-static const uint16_t coef1_run[HUFF_COEF1_SIZE] = {
- 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 0, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
- 2, 3, 4, 5, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 0, 0,
-};
-
-static const float coef1_level[HUFF_COEF1_SIZE] = {
- 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
- 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9, 10,
- 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19,
- 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28,
- 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37,
- 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46,
- 46, 47, 47, 48, 48, 49, 49, 50, 51, 52,
-};
-/** @} */
-
-
-/**
- * @name Huffman and vector lookup tables for vector-coded coefficients
- * @{
- */
-#define HUFF_VEC4_SIZE 127
-#define HUFF_VEC4_MAXBITS 14
-static const uint16_t vec4_huffcodes[HUFF_VEC4_SIZE] = {
- 0x0019, 0x0027, 0x00F2, 0x03BA, 0x0930, 0x1267, 0x0031, 0x0030,
- 0x0097, 0x0221, 0x058B, 0x0124, 0x00EB, 0x01D4, 0x03D8, 0x0584,
- 0x0364, 0x045F, 0x0F66, 0x0931, 0x24CD, 0x002F, 0x0039, 0x00E8,
- 0x02C3, 0x078A, 0x0037, 0x0029, 0x0084, 0x01B1, 0x00ED, 0x0086,
- 0x00F9, 0x03AB, 0x01EB, 0x08BC, 0x011E, 0x00F3, 0x0220, 0x058A,
- 0x00EC, 0x008E, 0x012B, 0x01EA, 0x0119, 0x04B0, 0x04B1, 0x03B8,
- 0x0691, 0x0365, 0x01ED, 0x049A, 0x0EA9, 0x0EA8, 0x08BD, 0x24CC,
- 0x0026, 0x0035, 0x00DB, 0x02C4, 0x07B2, 0x0038, 0x002B, 0x007F,
- 0x01B3, 0x00F4, 0x0091, 0x0116, 0x03BB, 0x0215, 0x0932, 0x002D,
- 0x002A, 0x008A, 0x01DE, 0x0028, 0x0020, 0x005C, 0x0090, 0x0068,
- 0x01EE, 0x00E9, 0x008D, 0x012A, 0x0087, 0x005D, 0x0118, 0x0349,
- 0x01EF, 0x01E3, 0x08B9, 0x00F0, 0x00D3, 0x0214, 0x049B, 0x00DA,
- 0x0089, 0x0125, 0x0217, 0x012D, 0x0690, 0x0094, 0x007D, 0x011F,
- 0x007E, 0x0059, 0x0127, 0x01A5, 0x0111, 0x00F8, 0x045D, 0x03B9,
- 0x0259, 0x0580, 0x02C1, 0x01DF, 0x0585, 0x0216, 0x0163, 0x01B0,
- 0x03C4, 0x08B8, 0x078B, 0x0755, 0x0581, 0x0F67, 0x0000,
-};
-
-static const uint8_t vec4_huffbits[HUFF_VEC4_SIZE] = {
- 5, 6, 8, 10, 12, 13, 6, 6,
- 8, 10, 11, 9, 8, 9, 10, 11,
- 10, 11, 12, 12, 14, 6, 6, 8,
- 10, 11, 6, 6, 8, 9, 8, 8,
- 8, 10, 9, 12, 9, 8, 10, 11,
- 8, 8, 9, 9, 9, 11, 11, 10,
- 11, 10, 9, 11, 12, 12, 12, 14,
- 6, 6, 8, 10, 11, 6, 6, 7,
- 9, 8, 8, 9, 10, 10, 12, 6,
- 6, 8, 9, 6, 6, 7, 8, 7,
- 9, 8, 8, 9, 8, 7, 9, 10,
- 9, 9, 12, 8, 8, 10, 11, 8,
- 8, 9, 10, 9, 11, 8, 7, 9,
- 7, 7, 9, 9, 9, 8, 11, 10,
- 10, 11, 10, 9, 11, 10, 9, 9,
- 10, 12, 11, 11, 11, 12, 1,
-};
-
-
-#define HUFF_VEC2_SIZE 137
-#define HUFF_VEC2_MAXBITS 12
-static const uint16_t vec2_huffcodes[HUFF_VEC2_SIZE] = {
- 0x055, 0x01C, 0x01A, 0x02B, 0x028, 0x067, 0x08B, 0x039,
- 0x170, 0x10D, 0x2A5, 0x047, 0x464, 0x697, 0x523, 0x8CB,
- 0x01B, 0x00E, 0x000, 0x010, 0x012, 0x036, 0x048, 0x04C,
- 0x0C2, 0x09B, 0x171, 0x03B, 0x224, 0x34A, 0x2D6, 0x019,
- 0x00F, 0x002, 0x014, 0x017, 0x006, 0x05D, 0x054, 0x0C7,
- 0x0B4, 0x192, 0x10E, 0x233, 0x043, 0x02C, 0x00F, 0x013,
- 0x006, 0x02F, 0x02C, 0x068, 0x077, 0x0DF, 0x111, 0x1A4,
- 0x16A, 0x2A4, 0x027, 0x011, 0x018, 0x02D, 0x00F, 0x04A,
- 0x040, 0x097, 0x01F, 0x11B, 0x022, 0x16D, 0x066, 0x035,
- 0x005, 0x02B, 0x049, 0x009, 0x075, 0x0CB, 0x0AA, 0x187,
- 0x106, 0x08A, 0x047, 0x060, 0x06E, 0x01D, 0x074, 0x0C4,
- 0x01E, 0x118, 0x1A7, 0x038, 0x042, 0x053, 0x076, 0x0A8,
- 0x0CA, 0x082, 0x110, 0x18D, 0x12D, 0x0B9, 0x0C8, 0x0DE,
- 0x01C, 0x0AB, 0x113, 0x18C, 0x10F, 0x09A, 0x0A5, 0x0B7,
- 0x11A, 0x186, 0x1A6, 0x259, 0x153, 0x18A, 0x193, 0x020,
- 0x10C, 0x046, 0x03A, 0x107, 0x149, 0x16C, 0x2D7, 0x225,
- 0x258, 0x316, 0x696, 0x317, 0x042, 0x522, 0x290, 0x8CA,
- 0x001,
-};
-
-static const uint8_t vec2_huffbits[HUFF_VEC2_SIZE] = {
- 7, 6, 6, 6, 7, 7, 8, 9,
- 9, 10, 10, 11, 11, 11, 12, 12,
- 6, 4, 5, 5, 6, 6, 7, 8,
- 8, 9, 9, 10, 10, 10, 11, 6,
- 4, 5, 5, 6, 7, 7, 8, 8,
- 9, 9, 10, 10, 11, 6, 5, 5,
- 6, 6, 7, 7, 8, 8, 9, 9,
- 10, 10, 7, 6, 6, 6, 7, 7,
- 8, 8, 9, 9, 10, 10, 7, 6,
- 7, 7, 7, 8, 8, 8, 9, 9,
- 10, 8, 7, 7, 7, 8, 8, 8,
- 9, 9, 9, 9, 8, 8, 8, 8,
- 8, 9, 9, 9, 9, 8, 8, 8,
- 9, 9, 9, 9, 10, 9, 9, 9,
- 9, 9, 9, 10, 9, 9, 9, 10,
- 10, 11, 10, 10, 10, 10, 11, 10,
- 10, 10, 11, 10, 11, 12, 11, 12,
- 3,
-};
-
-
-#define HUFF_VEC1_SIZE 101
-#define HUFF_VEC1_MAXBITS 11
-static const uint16_t vec1_huffcodes[HUFF_VEC1_SIZE] = {
- 0x01A, 0x003, 0x017, 0x010, 0x00C, 0x009, 0x005, 0x000,
- 0x00D, 0x00A, 0x009, 0x00C, 0x00F, 0x002, 0x004, 0x007,
- 0x00B, 0x00F, 0x01C, 0x006, 0x010, 0x015, 0x01C, 0x022,
- 0x03B, 0x00E, 0x019, 0x023, 0x034, 0x036, 0x03A, 0x047,
- 0x008, 0x00A, 0x01E, 0x031, 0x037, 0x050, 0x053, 0x06B,
- 0x06F, 0x08C, 0x0E8, 0x0EA, 0x0EB, 0x016, 0x03E, 0x03F,
- 0x06C, 0x089, 0x08A, 0x0A3, 0x0A4, 0x0D4, 0x0DD, 0x0EC,
- 0x0EE, 0x11A, 0x1D2, 0x024, 0x025, 0x02E, 0x027, 0x0C2,
- 0x0C0, 0x0DA, 0x0DB, 0x111, 0x144, 0x116, 0x14A, 0x145,
- 0x1B8, 0x1AB, 0x1DA, 0x1DE, 0x1DB, 0x1DF, 0x236, 0x237,
- 0x3A6, 0x3A7, 0x04D, 0x04C, 0x05E, 0x05F, 0x183, 0x182,
- 0x186, 0x221, 0x187, 0x220, 0x22E, 0x22F, 0x296, 0x354,
- 0x297, 0x355, 0x372, 0x373, 0x016,
-};
-
-static const uint8_t vec1_huffbits[HUFF_VEC1_SIZE] = {
- 7, 6, 5, 5, 5, 5, 5, 5,
- 4, 4, 4, 4, 4, 5, 5, 5,
- 5, 5, 5, 6, 6, 6, 6, 6,
- 6, 7, 7, 7, 7, 7, 7, 7,
- 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 5,
-};
-
-
-static const uint16_t symbol_to_vec4[HUFF_VEC4_SIZE] = {
- 0, 1, 2, 3, 4, 5, 16, 17, 18, 19,
- 20, 32, 33, 34, 35, 48, 49, 50, 64, 65,
- 80, 256, 257, 258, 259, 260, 272, 273, 274, 275,
- 288, 289, 290, 304, 305, 320, 512, 513, 514, 515,
- 528, 529, 530, 544, 545, 560, 768, 769, 770, 784,
- 785, 800, 1024, 1025, 1040, 1280, 4096, 4097, 4098, 4099,
- 4100, 4112, 4113, 4114, 4115, 4128, 4129, 4130, 4144, 4145,
- 4160, 4352, 4353, 4354, 4355, 4368, 4369, 4370, 4384, 4385,
- 4400, 4608, 4609, 4610, 4624, 4625, 4640, 4864, 4865, 4880,
- 5120, 8192, 8193, 8194, 8195, 8208, 8209, 8210, 8224, 8225,
- 8240, 8448, 8449, 8450, 8464, 8465, 8480, 8704, 8705, 8720,
- 8960, 12288, 12289, 12290, 12304, 12305, 12320, 12544, 12545, 12560,
- 12800, 16384, 16385, 16400, 16640, 20480, 0,
-};
-
-
-static const uint8_t symbol_to_vec2[HUFF_VEC2_SIZE] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 112, 113, 114, 115, 116, 117, 118, 119, 120, 128, 129, 130, 131, 132,
- 133, 134, 135, 144, 145, 146, 147, 148, 149, 150, 160, 161, 162, 163, 164,
- 165, 176, 177, 178, 179, 180, 192, 193, 194, 195, 208, 209, 210, 224, 225,
- 240, 0,
-};
-/** @} */
-
-
-/**
- * @brief decorrelation matrix for multichannel streams
- **/
-static const float default_decorrelation_matrices[] = {
- 1.000000, 0.707031, -0.707031, 0.707031, 0.707031, 0.578125, 0.707031,
- 0.410156, 0.578125, -0.707031, 0.410156, 0.578125, 0.000000, -0.816406,
- 0.500000, 0.652344, 0.500000, 0.269531, 0.500000, 0.269531, -0.500000,
- -0.652344, 0.500000, -0.269531, -0.500000, 0.652344, 0.500000, -0.652344,
- 0.500000, -0.269531, 0.445312, 0.601562, 0.511719, 0.371094, 0.195312,
- 0.445312, 0.371094, -0.195312, -0.601562, -0.511719, 0.445312, 0.000000,
- -0.632812, 0.000000, 0.632812, 0.445312, -0.371094, -0.195312, 0.601562,
- -0.511719, 0.445312, -0.601562, 0.511719, -0.371094, 0.195312, 0.410156,
- 0.558594, 0.500000, 0.410156, 0.289062, 0.148438, 0.410156, 0.410156,
- 0.000000, -0.410156, -0.578125, -0.410156, 0.410156, 0.148438, -0.500000,
- -0.410156, 0.289062, 0.558594, 0.410156, -0.148438, -0.500000, 0.410156,
- 0.289062, -0.558594, 0.410156, -0.410156, 0.000000, 0.410156, -0.578125,
- 0.410156, 0.410156, -0.558594, 0.500000, -0.410156, 0.289062, -0.148438,
-};
-
-/**
- * @brief default decorrelation matrix offsets
- */
-static const float * const default_decorrelation[] = {
- NULL,
- &default_decorrelation_matrices[0],
- &default_decorrelation_matrices[1],
- &default_decorrelation_matrices[5],
- &default_decorrelation_matrices[14],
- &default_decorrelation_matrices[30],
- &default_decorrelation_matrices[55]
-};
-
-#endif /* AVCODEC_WMAPRODATA_H */
+++ /dev/null
-/*
- * Windows Media Voice (WMAVoice) tables.
- * Copyright (c) 2009 Ronald S. Bultje
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * @brief Windows Media Voice (WMAVoice) tables
- * @author Ronald S. Bultje <rsbultje@gmail.com>
- */
-
-#ifndef AVCODEC_WMAVOICE_DATA_H
-#define AVCODEC_WMAVOICE_DATA_H
-
-#include <stdint.h>
-
-static const uint8_t wmavoice_dq_lsp10i[0xf00] = {
- 125, 109, 84, 55, 34, 51, 109, 112, 118, 132,
- 122, 102, 78, 80, 132, 119, 132, 132, 125, 131,
- 109, 91, 131, 131, 136, 136, 137, 137, 140, 145,
- 140, 143, 117, 136, 122, 106, 109, 91, 115, 119,
- 133, 117, 103, 80, 55, 117, 123, 102, 93, 80,
- 139, 116, 70, 39, 95, 89, 103, 113, 112, 122,
- 135, 244, 229, 215, 199, 181, 163, 150, 146, 144,
- 143, 173, 171, 154, 155, 154, 151, 148, 145, 143,
- 132, 138, 116, 85, 117, 94, 108, 117, 107, 116,
- 132, 118, 123, 119, 88, 67, 49, 95, 84, 95,
- 121, 103, 74, 70, 179, 164, 141, 126, 107, 112,
- 119, 95, 103, 149, 139, 148, 144, 147, 148, 141,
- 151, 133, 142, 129, 111, 131, 108, 128, 122, 108,
- 121, 96, 115, 138, 116, 93, 105, 115, 115, 123,
- 129, 106, 136, 180, 147, 130, 108, 141, 131, 118,
- 136, 155, 176, 156, 135, 129, 140, 146, 142, 134,
- 141, 130, 109, 80, 52, 38, 18, 47, 118, 134,
- 155, 141, 100, 78, 72, 89, 79, 96, 92, 98,
- 133, 111, 83, 91, 72, 58, 105, 115, 112, 120,
- 145, 127, 135, 113, 113, 105, 105, 85, 69, 61,
- 115, 96, 116, 145, 159, 170, 175, 175, 168, 155,
- 140, 120, 84, 52, 80, 145, 125, 127, 116, 126,
- 128, 108, 101, 198, 227, 200, 178, 159, 147, 148,
- 121, 88, 46, 109, 124, 126, 126, 137, 147, 147,
- 129, 107, 164, 148, 127, 117, 134, 120, 111, 116,
- 120, 103, 98, 73, 66, 61, 70, 115, 116, 125,
- 126, 100, 77, 188, 162, 140, 114, 128, 139, 123,
- 145, 165, 164, 134, 109, 100, 108, 118, 127, 130,
- 156, 182, 190, 173, 167, 165, 162, 157, 152, 147,
- 150, 164, 179, 183, 173, 155, 140, 136, 134, 135,
- 122, 92, 69, 140, 132, 118, 108, 128, 138, 132,
- 123, 127, 148, 137, 150, 149, 139, 127, 124, 130,
- 136, 138, 112, 70, 41, 37, 132, 140, 129, 125,
- 130, 111, 78, 33, 51, 161, 141, 136, 120, 122,
- 126, 110, 87, 106, 85, 68, 48, 81, 112, 113,
- 135, 125, 98, 85, 102, 80, 100, 87, 86, 116,
- 142, 133, 110, 66, 48, 152, 139, 135, 136, 123,
- 128, 116, 89, 102, 128, 99, 83, 61, 105, 124,
- 120, 94, 73, 83, 78, 100, 122, 124, 128, 132,
- 144, 137, 116, 102, 75, 144, 136, 127, 140, 127,
- 154, 144, 118, 99, 90, 90, 89, 75, 68, 83,
- 123, 103, 89, 198, 180, 154, 138, 122, 136, 120,
- 138, 118, 121, 136, 110, 105, 85, 111, 101, 104,
- 121, 126, 139, 115, 99, 101, 107, 110, 123, 126,
- 127, 115, 88, 109, 164, 134, 138, 138, 120, 121,
- 130, 202, 195, 202, 199, 201, 181, 164, 159, 148,
- 120, 116, 194, 199, 186, 171, 154, 142, 137, 133,
- 137, 129, 112, 149, 134, 112, 149, 138, 120, 134,
- 119, 102, 107, 83, 79, 114, 119, 127, 128, 128,
- 144, 148, 165, 155, 161, 150, 135, 122, 116, 115,
- 120, 99, 80, 120, 123, 124, 111, 89, 70, 108,
- 118, 95, 66, 53, 105, 126, 125, 105, 83, 111,
- 129, 197, 191, 197, 206, 213, 216, 208, 196, 169,
- 133, 109, 127, 164, 134, 121, 99, 92, 82, 71,
- 131, 121, 93, 91, 136, 105, 115, 140, 120, 110,
- 150, 164, 139, 108, 87, 81, 93, 92, 104, 116,
- 133, 114, 125, 126, 111, 136, 110, 156, 147, 133,
- 113, 94, 118, 120, 115, 125, 124, 126, 127, 134,
- 116, 131, 161, 158, 166, 157, 150, 150, 144, 141,
- 125, 185, 169, 142, 140, 143, 139, 131, 134, 138,
- 179, 188, 170, 150, 134, 140, 144, 133, 127, 127,
- 150, 177, 204, 184, 192, 194, 190, 193, 177, 158,
- 114, 113, 138, 116, 137, 135, 132, 131, 127, 134,
- 120, 147, 163, 135, 133, 137, 136, 136, 133, 135,
- 137, 120, 95, 73, 46, 48, 111, 97, 97, 123,
- 139, 130, 109, 76, 52, 72, 61, 61, 125, 127,
- 132, 119, 119, 90, 66, 41, 64, 156, 143, 129,
- 131, 106, 58, 25, 99, 115, 122, 136, 129, 132,
- 134, 123, 97, 53, 27, 114, 125, 114, 120, 123,
- 122, 107, 93, 57, 47, 133, 128, 138, 141, 131,
- 145, 132, 122, 110, 79, 57, 30, 73, 153, 144,
- 150, 132, 85, 59, 133, 125, 130, 115, 100, 96,
- 148, 127, 111, 86, 61, 38, 110, 121, 108, 99,
- 157, 143, 105, 77, 116, 118, 115, 131, 122, 122,
- 133, 119, 134, 108, 86, 61, 129, 165, 143, 127,
- 125, 105, 89, 111, 97, 85, 113, 99, 98, 117,
- 149, 131, 101, 106, 88, 95, 79, 119, 123, 120,
- 125, 109, 81, 100, 201, 183, 156, 138, 115, 116,
- 141, 119, 129, 105, 76, 60, 110, 99, 92, 82,
- 150, 156, 129, 95, 69, 115, 115, 113, 134, 125,
- 118, 97, 67, 96, 203, 197, 171, 151, 133, 125,
- 143, 131, 120, 134, 105, 80, 51, 60, 139, 134,
- 129, 160, 223, 219, 219, 212, 197, 173, 157, 146,
- 132, 112, 164, 144, 119, 102, 92, 76, 73, 94,
- 132, 112, 124, 114, 93, 92, 83, 73, 69, 99,
- 129, 103, 188, 163, 142, 132, 127, 101, 82, 59,
- 140, 141, 111, 74, 46, 105, 113, 99, 127, 122,
- 125, 94, 63, 112, 116, 101, 81, 120, 136, 134,
- 133, 190, 224, 193, 179, 158, 146, 143, 140, 136,
- 152, 161, 132, 120, 112, 94, 114, 102, 92, 116,
- 129, 194, 196, 202, 211, 212, 210, 190, 169, 152,
- 166, 166, 145, 111, 91, 132, 133, 128, 136, 130,
- 118, 94, 72, 74, 92, 86, 89, 92, 106, 123,
- 126, 100, 86, 137, 117, 92, 76, 104, 106, 114,
- 133, 109, 204, 192, 166, 148, 138, 128, 111, 81,
- 118, 99, 79, 146, 169, 141, 123, 102, 131, 120,
- 127, 105, 136, 204, 170, 154, 131, 145, 135, 119,
- 117, 95, 64, 83, 141, 136, 118, 96, 99, 126,
- 115, 93, 98, 102, 95, 105, 106, 114, 119, 128,
- 131, 121, 98, 139, 149, 119, 109, 86, 105, 129,
- 134, 119, 104, 169, 185, 155, 141, 122, 107, 127,
- 136, 115, 85, 108, 87, 126, 102, 128, 136, 129,
- 125, 99, 126, 158, 133, 139, 132, 113, 91, 107,
- 141, 122, 128, 161, 130, 127, 105, 120, 118, 106,
- 122, 140, 161, 168, 187, 184, 176, 158, 144, 140,
- 127, 111, 89, 130, 132, 105, 134, 121, 100, 122,
- 129, 110, 128, 115, 129, 116, 132, 118, 114, 119,
- 138, 133, 132, 188, 183, 159, 161, 147, 134, 140,
- 132, 113, 84, 167, 147, 132, 124, 109, 133, 121,
- 132, 128, 116, 121, 98, 101, 145, 129, 128, 129,
- 124, 112, 152, 158, 136, 161, 139, 165, 158, 142,
- 139, 138, 110, 127, 148, 117, 126, 118, 101, 116,
- 155, 168, 154, 128, 120, 152, 150, 141, 140, 135,
- 127, 111, 109, 134, 104, 133, 110, 112, 132, 114,
- 111, 87, 68, 89, 107, 121, 121, 126, 126, 129,
- 120, 148, 169, 163, 173, 178, 185, 188, 178, 163,
- 122, 97, 86, 117, 101, 138, 118, 142, 155, 139,
- 125, 114, 131, 138, 153, 149, 163, 150, 143, 141,
- 157, 161, 138, 152, 134, 121, 122, 109, 110, 124,
- 151, 171, 196, 168, 145, 139, 147, 151, 146, 139,
- 134, 169, 179, 170, 175, 178, 177, 173, 165, 154,
- 120, 151, 118, 107, 125, 129, 133, 133, 136, 139,
- 119, 141, 159, 151, 160, 165, 168, 169, 162, 152,
- 115, 111, 119, 94, 117, 121, 127, 127, 132, 136,
- 134, 153, 147, 142, 142, 147, 159, 159, 154, 147,
- 110, 106, 139, 135, 143, 142, 147, 146, 147, 147,
- 115, 133, 151, 133, 141, 142, 151, 152, 147, 144,
- 115, 132, 144, 131, 125, 126, 128, 130, 131, 136,
- 138, 118, 96, 71, 48, 26, 43, 130, 125, 125,
- 134, 122, 98, 54, 28, 84, 77, 73, 109, 125,
- 133, 112, 67, 48, 141, 129, 126, 113, 112, 118,
- 143, 123, 89, 54, 71, 73, 75, 131, 123, 123,
- 126, 109, 81, 31, 15, 94, 110, 109, 119, 128,
- 132, 122, 97, 92, 73, 50, 27, 22, 104, 133,
- 133, 119, 94, 48, 34, 168, 160, 154, 151, 130,
- 147, 133, 90, 54, 71, 123, 106, 105, 93, 117,
- 143, 132, 107, 69, 45, 78, 178, 169, 150, 139,
- 138, 123, 116, 96, 69, 49, 32, 113, 103, 112,
- 154, 151, 125, 79, 60, 152, 160, 154, 155, 137,
- 142, 151, 124, 88, 66, 59, 94, 87, 95, 119,
- 166, 154, 122, 92, 138, 132, 124, 114, 97, 97,
- 122, 99, 98, 219, 191, 176, 165, 159, 153, 131,
- 130, 119, 91, 51, 24, 41, 144, 156, 147, 139,
- 139, 122, 81, 65, 124, 111, 104, 90, 94, 98,
- 138, 120, 112, 91, 63, 65, 89, 75, 78, 106,
- 126, 107, 91, 85, 69, 95, 90, 84, 108, 120,
- 155, 139, 100, 78, 120, 110, 109, 91, 77, 73,
- 144, 130, 135, 112, 88, 65, 62, 142, 129, 126,
- 170, 154, 150, 131, 121, 116, 100, 92, 83, 86,
- 131, 122, 98, 107, 102, 75, 54, 38, 117, 130,
- 146, 139, 117, 107, 86, 66, 44, 30, 97, 128,
- 129, 116, 100, 59, 108, 127, 119, 139, 129, 129,
- 124, 106, 79, 49, 154, 190, 166, 152, 133, 123,
- 141, 149, 123, 89, 61, 70, 143, 132, 125, 126,
- 136, 113, 177, 166, 141, 123, 109, 108, 105, 93,
- 137, 117, 147, 123, 99, 85, 109, 98, 91, 75,
- 129, 121, 102, 78, 53, 90, 149, 136, 134, 135,
- 144, 136, 126, 90, 114, 152, 137, 152, 138, 128,
- 133, 115, 107, 129, 99, 78, 60, 129, 125, 118,
- 147, 141, 119, 124, 110, 91, 79, 64, 106, 117,
- 134, 111, 164, 143, 123, 113, 116, 95, 76, 56,
- 147, 159, 140, 109, 83, 84, 140, 135, 127, 129,
- 123, 104, 116, 99, 91, 87, 80, 110, 113, 121,
- 124, 106, 174, 174, 152, 141, 132, 134, 126, 124,
- 140, 190, 240, 215, 212, 189, 173, 158, 144, 137,
- 123, 97, 79, 102, 110, 111, 90, 75, 126, 124,
- 134, 121, 104, 145, 127, 100, 77, 65, 120, 118,
- 123, 106, 87, 41, 68, 119, 106, 115, 109, 119,
- 137, 232, 241, 225, 217, 202, 183, 169, 156, 145,
- 161, 146, 127, 110, 97, 107, 88, 114, 108, 106,
- 141, 244, 216, 192, 172, 163, 148, 143, 144, 144,
- 128, 127, 109, 89, 77, 68, 124, 120, 121, 125,
- 125, 94, 48, 71, 116, 113, 104, 120, 142, 137,
- 133, 129, 115, 82, 68, 120, 99, 133, 134, 124,
- 130, 106, 108, 160, 130, 111, 89, 129, 124, 119,
- 134, 120, 149, 143, 116, 95, 87, 142, 132, 122,
- 126, 114, 108, 107, 80, 141, 133, 123, 137, 124,
- 117, 95, 69, 43, 62, 98, 114, 116, 112, 120,
- 122, 99, 87, 164, 145, 123, 99, 95, 118, 105,
- 126, 101, 102, 120, 113, 110, 92, 139, 134, 126,
- 148, 194, 241, 219, 221, 215, 200, 193, 174, 151,
- 127, 104, 122, 136, 113, 106, 110, 95, 78, 106,
- 131, 163, 217, 199, 194, 175, 164, 155, 142, 138,
- 139, 124, 88, 57, 161, 161, 145, 139, 124, 116,
- 127, 110, 91, 98, 126, 104, 113, 98, 94, 94,
- 145, 138, 114, 90, 75, 130, 117, 107, 99, 90,
- 119, 98, 86, 101, 148, 133, 103, 83, 124, 131,
- 143, 168, 169, 133, 110, 117, 139, 149, 147, 137,
- 124, 106, 80, 138, 194, 163, 142, 119, 106, 130,
- 136, 125, 105, 114, 87, 113, 101, 89, 108, 102,
- 114, 90, 53, 46, 105, 116, 126, 122, 118, 122,
- 124, 102, 92, 195, 167, 160, 144, 154, 154, 132,
- 118, 97, 88, 72, 98, 120, 112, 98, 79, 117,
- 114, 107, 185, 191, 191, 188, 175, 165, 153, 143,
- 119, 97, 90, 89, 120, 151, 136, 113, 99, 112,
- 141, 121, 144, 122, 125, 113, 133, 111, 92, 69,
- 120, 98, 78, 109, 151, 145, 157, 157, 151, 143,
- 130, 110, 120, 188, 159, 141, 119, 112, 109, 98,
- 126, 112, 83, 110, 169, 139, 127, 105, 93, 123,
- 141, 145, 117, 106, 91, 78, 123, 107, 101, 125,
- 117, 95, 71, 147, 176, 153, 148, 133, 135, 127,
- 124, 106, 79, 64, 115, 96, 108, 115, 106, 105,
- 127, 115, 90, 98, 105, 81, 144, 135, 117, 125,
- 126, 104, 98, 165, 138, 136, 112, 149, 148, 131,
- 119, 144, 186, 185, 204, 202, 209, 200, 182, 161,
- 123, 153, 190, 189, 199, 194, 191, 176, 157, 147,
- 121, 103, 119, 98, 100, 120, 106, 97, 95, 126,
- 137, 130, 102, 117, 117, 92, 126, 114, 101, 118,
- 131, 219, 190, 167, 153, 151, 144, 140, 142, 143,
- 114, 102, 151, 152, 132, 120, 112, 120, 127, 131,
- 138, 122, 91, 143, 118, 120, 114, 104, 124, 117,
- 148, 142, 117, 126, 97, 125, 108, 116, 142, 125,
- 126, 106, 91, 169, 208, 178, 158, 138, 127, 135,
- 133, 126, 101, 83, 147, 130, 125, 117, 114, 117,
- 120, 103, 94, 149, 136, 129, 139, 118, 133, 133,
- 147, 152, 126, 132, 119, 97, 132, 129, 114, 126,
- 112, 107, 148, 125, 112, 114, 124, 125, 129, 135,
- 139, 121, 157, 151, 131, 140, 118, 147, 136, 121,
- 115, 105, 159, 167, 185, 191, 196, 190, 176, 160,
- 124, 106, 104, 122, 130, 114, 152, 144, 134, 136,
- 136, 152, 159, 153, 131, 114, 116, 126, 129, 129,
- 124, 109, 87, 131, 107, 115, 130, 107, 144, 131,
- 126, 162, 176, 175, 180, 176, 160, 141, 134, 134,
- 136, 127, 108, 161, 162, 133, 141, 124, 112, 128,
- 130, 115, 110, 140, 107, 155, 134, 131, 156, 137,
- 122, 106, 116, 127, 118, 161, 150, 170, 167, 152,
- 139, 177, 203, 176, 155, 139, 130, 128, 129, 132,
- 137, 119, 125, 103, 110, 123, 107, 120, 108, 101,
- 113, 107, 160, 154, 160, 166, 169, 176, 168, 156,
- 115, 90, 65, 115, 115, 104, 120, 112, 109, 124,
- 131, 123, 100, 109, 185, 158, 141, 132, 116, 119,
- 139, 130, 119, 156, 124, 138, 127, 116, 141, 128,
- 133, 118, 115, 180, 149, 151, 135, 130, 147, 129,
- 117, 90, 80, 119, 124, 128, 132, 130, 128, 135,
- 112, 97, 142, 161, 167, 165, 154, 142, 136, 135,
- 118, 141, 193, 172, 157, 152, 148, 145, 146, 141,
- 125, 147, 165, 166, 149, 133, 123, 122, 128, 131,
- 128, 193, 177, 174, 182, 186, 197, 193, 191, 173,
- 124, 144, 162, 133, 113, 113, 123, 128, 129, 130,
- 117, 98, 121, 122, 137, 132, 110, 97, 111, 130,
- 128, 176, 151, 125, 126, 134, 130, 121, 127, 130,
- 122, 151, 142, 111, 106, 121, 126, 126, 130, 134,
- 148, 167, 186, 153, 129, 122, 124, 128, 130, 128,
- 148, 172, 206, 178, 171, 182, 169, 180, 172, 156,
- 133, 164, 174, 160, 155, 163, 163, 172, 169, 158,
- 132, 150, 147, 142, 152, 140, 140, 140, 134, 135,
- 137, 158, 167, 172, 163, 153, 169, 158, 146, 147,
- 150, 161, 162, 172, 153, 133, 140, 144, 136, 135,
- 109, 84, 101, 120, 129, 134, 133, 136, 137, 143,
- 112, 114, 157, 147, 141, 136, 135, 133, 135, 138,
- 121, 154, 161, 150, 149, 154, 151, 144, 146, 144,
- 111, 117, 125, 125, 130, 131, 135, 137, 143, 148,
- 121, 141, 146, 131, 138, 126, 118, 111, 119, 130,
- 120, 135, 145, 121, 140, 134, 138, 137, 131, 134,
- 115, 137, 132, 137, 139, 138, 138, 139, 145, 149,
- 131, 149, 147, 133, 132, 126, 131, 134, 130, 133,
- 110, 98, 84, 141, 107, 169, 169, 123, 125, 126,
- 118, 210, 98, 126, 132, 138, 128, 139, 156, 157,
- 140, 142, 129, 95, 192, 178, 182, 186, 183, 159,
- 135, 134, 144, 124, 100, 228, 203, 161, 122, 104,
- 139, 159, 134, 161, 121, 126, 192, 152, 218, 180,
- 132, 132, 119, 99, 96, 97, 80, 53, 134, 143,
- 102, 114, 133, 114, 127, 83, 77, 126, 85, 107,
- 110, 114, 194, 186, 139, 116, 147, 104, 129, 138,
- 126, 133, 109, 144, 115, 45, 130, 97, 159, 155,
- 157, 162, 189, 185, 168, 163, 151, 151, 142, 135,
- 144, 147, 120, 74, 192, 186, 149, 118, 71, 84,
- 143, 156, 133, 178, 168, 107, 119, 149, 105, 112,
- 182, 184, 158, 118, 118, 148, 128, 177, 171, 152,
- 139, 135, 126, 209, 171, 150, 123, 100, 190, 158,
- 166, 97, 136, 123, 136, 139, 128, 138, 126, 121,
- 132, 131, 128, 95, 60, 168, 127, 140, 208, 161,
- 109, 102, 119, 162, 150, 137, 107, 200, 156, 136,
- 136, 128, 103, 95, 74, 91, 220, 173, 152, 138,
- 139, 129, 140, 136, 122, 82, 180, 115, 53, 90,
- 121, 107, 99, 148, 116, 139, 100, 63, 191, 155,
- 130, 129, 163, 155, 98, 175, 95, 151, 127, 107,
- 124, 124, 116, 88, 71, 164, 148, 96, 57, 89,
- 125, 117, 77, 63, 162, 144, 113, 109, 137, 134,
- 134, 130, 149, 174, 158, 158, 130, 81, 28, 67,
- 142, 139, 129, 100, 194, 134, 68, 175, 131, 103,
- 136, 132, 122, 96, 119, 82, 115, 249, 215, 168,
- 125, 139, 199, 96, 146, 123, 136, 179, 142, 137,
- 181, 166, 106, 86, 122, 106, 123, 131, 106, 119,
- 129, 189, 188, 147, 126, 110, 101, 114, 147, 136,
- 132, 106, 72, 175, 148, 99, 130, 153, 125, 136,
- 123, 119, 147, 170, 157, 126, 209, 188, 158, 152,
- 101, 89, 142, 131, 161, 150, 148, 124, 89, 119,
- 141, 137, 131, 103, 81, 85, 64, 175, 129, 121,
- 137, 144, 142, 145, 119, 205, 148, 80, 165, 138,
- 143, 137, 167, 165, 148, 149, 110, 234, 217, 170,
- 167, 152, 75, 140, 155, 155, 175, 129, 136, 134,
- 136, 152, 161, 131, 140, 121, 91, 79, 255, 209,
- 132, 147, 120, 114, 177, 128, 110, 61, 89, 131,
- 125, 127, 93, 87, 167, 115, 186, 162, 107, 106,
- 134, 162, 151, 100, 79, 67, 151, 116, 130, 142,
- 162, 153, 155, 143, 122, 85, 202, 187, 135, 125,
- 158, 155, 103, 129, 74, 149, 130, 98, 129, 126,
- 148, 152, 153, 133, 118, 94, 80, 70, 47, 90,
- 124, 118, 143, 184, 158, 126, 70, 82, 111, 113,
- 126, 135, 175, 141, 203, 166, 123, 123, 134, 133,
- 113, 111, 128, 76, 128, 177, 151, 178, 134, 125,
- 120, 120, 193, 106, 98, 134, 101, 86, 101, 114,
- 136, 127, 134, 196, 86, 105, 145, 128, 119, 137,
- 138, 126, 230, 161, 141, 128, 129, 136, 88, 83,
- 103, 118, 178, 123, 89, 101, 161, 173, 165, 147,
- 130, 123, 171, 158, 131, 81, 50, 177, 162, 136,
- 125, 115, 82, 173, 195, 168, 130, 112, 112, 121,
- 152, 148, 167, 87, 82, 161, 142, 147, 98, 89,
- 168, 138, 97, 157, 132, 114, 74, 126, 161, 141,
- 135, 123, 68, 137, 124, 118, 112, 92, 65, 96,
- 191, 181, 161, 151, 141, 145, 129, 102, 97, 111,
- 144, 128, 55, 128, 115, 155, 129, 184, 167, 147,
- 131, 141, 125, 33, 127, 111, 127, 131, 125, 130,
- 137, 130, 121, 195, 172, 177, 176, 149, 98, 97,
- 126, 106, 168, 159, 144, 185, 156, 151, 182, 158,
- 123, 93, 110, 116, 98, 99, 125, 136, 139, 148,
- 79, 112, 149, 128, 147, 136, 118, 105, 166, 152,
- 117, 115, 92, 128, 148, 132, 170, 143, 226, 190,
- 122, 192, 165, 121, 143, 144, 174, 124, 113, 124,
- 122, 135, 34, 93, 118, 111, 111, 136, 123, 116,
- 99, 195, 139, 99, 114, 102, 96, 108, 111, 112,
- 113, 129, 172, 137, 105, 139, 154, 86, 113, 108,
- 132, 79, 63, 120, 93, 162, 90, 103, 94, 95,
- 117, 127, 104, 100, 142, 129, 93, 27, 196, 153,
- 113, 91, 101, 90, 84, 68, 138, 38, 118, 148,
- 87, 103, 125, 109, 96, 152, 100, 56, 31, 62,
- 176, 129, 124, 115, 103, 92, 100, 121, 130, 125,
- 128, 71, 82, 71, 152, 85, 107, 116, 138, 133,
- 103, 116, 139, 144, 72, 37, 118, 141, 109, 95,
- 86, 92, 121, 167, 156, 104, 92, 91, 122, 114,
- 89, 61, 172, 128, 95, 103, 84, 101, 88, 84,
- 116, 125, 108, 62, 74, 108, 160, 143, 189, 164,
- 91, 115, 144, 43, 116, 79, 106, 108, 74, 83,
- 87, 90, 61, 71, 76, 76, 95, 130, 89, 94,
- 114, 107, 101, 145, 161, 147, 143, 163, 147, 129,
- 101, 73, 111, 108, 93, 104, 186, 141, 99, 89,
- 112, 126, 111, 113, 152, 41, 159, 115, 131, 124,
- 117, 101, 115, 130, 124, 87, 59, 177, 63, 85,
- 109, 116, 103, 68, 145, 132, 29, 119, 96, 89,
- 117, 90, 181, 103, 101, 111, 97, 96, 199, 171,
- 113, 120, 93, 119, 101, 64, 56, 55, 63, 90,
- 105, 101, 86, 45, 136, 179, 142, 102, 115, 114,
- 113, 108, 121, 84, 23, 125, 76, 102, 119, 107,
- 120, 104, 73, 177, 83, 114, 128, 85, 152, 126,
- 137, 115, 149, 109, 163, 133, 110, 98, 54, 61,
- 95, 111, 135, 103, 88, 164, 115, 187, 122, 98,
- 129, 132, 95, 86, 71, 119, 146, 111, 38, 67,
- 102, 100, 66, 148, 137, 103, 145, 95, 35, 85,
- 44, 136, 102, 111, 108, 115, 136, 105, 120, 110,
- 108, 147, 112, 169, 116, 146, 81, 120, 94, 84,
- 93, 97, 90, 119, 102, 91, 48, 147, 204, 151,
- 148, 160, 144, 131, 144, 175, 158, 133, 212, 163,
- 172, 152, 151, 112, 148, 151, 145, 179, 160, 124,
- 164, 164, 167, 161, 141, 120, 131, 141, 198, 177,
- 169, 156, 146, 156, 124, 185, 164, 195, 181, 193,
- 201, 147, 148, 168, 165, 159, 162, 148, 150, 148,
- 146, 157, 158, 149, 164, 129, 160, 214, 174, 166,
- 154, 176, 146, 141, 155, 140, 140, 169, 106, 155,
- 166, 162, 134, 193, 157, 155, 146, 196, 171, 107,
- 177, 174, 163, 155, 147, 203, 162, 146, 150, 83,
- 157, 170, 180, 178, 159, 157, 151, 117, 115, 183,
- 170, 180, 174, 150, 177, 173, 136, 181, 196, 184,
- 164, 168, 165, 148, 175, 168, 209, 189, 159, 114,
- 157, 158, 141, 168, 170, 139, 175, 128, 151, 39,
- 128, 154, 159, 161, 148, 180, 131, 165, 159, 131,
- 163, 150, 174, 178, 178, 198, 172, 138, 184, 191,
- 143, 164, 161, 163, 210, 171, 155, 168, 150, 116,
- 182, 170, 145, 152, 141, 139, 191, 149, 160, 202,
- 145, 169, 145, 181, 148, 183, 197, 165, 146, 171,
- 161, 153, 157, 170, 164, 149, 183, 167, 246, 235,
- 162, 144, 170, 152, 173, 150, 113, 135, 156, 154,
- 158, 148, 178, 159, 161, 114, 180, 156, 116, 163,
- 164, 161, 122, 164, 164, 183, 135, 135, 144, 182,
- 160, 147, 163, 152, 169, 185, 159, 177, 99, 211,
- 168, 167, 215, 170, 150, 157, 154, 176, 154, 143,
- 163, 117, 178, 160, 163, 165, 164, 166, 174, 136,
- 159, 169, 152, 123, 199, 149, 169, 140, 159, 208,
- 155, 161, 186, 122, 134, 167, 171, 145, 148, 176,
- 148, 137, 114, 160, 166, 153, 162, 156, 164, 172,
- 155, 148, 155, 182, 114, 150, 157, 154, 140, 159,
- 166, 160, 169, 206, 182, 145, 157, 165, 147, 202,
- 131, 154, 193, 162, 162, 149, 167, 157, 191, 188,
- 149, 205, 147, 166, 150, 150, 159, 153, 171, 160
-};
-
-static const uint8_t wmavoice_dq_lsp16i1[0x640] = {
- 142, 121, 141, 112, 99, 119, 92, 122, 183, 155,
- 122, 98, 75, 78, 85, 101, 108, 134, 128, 123,
- 115, 90, 79, 58, 73, 127, 106, 60, 97, 107,
- 141, 163, 130, 123, 136, 156, 201, 189, 204, 206,
- 140, 116, 69, 60, 117, 123, 106, 124, 91, 63,
- 150, 144, 110, 80, 63, 112, 80, 70, 76, 63,
- 114, 86, 147, 165, 137, 125, 120, 140, 115, 101,
- 101, 99, 166, 158, 158, 104, 126, 131, 134, 143,
- 121, 102, 73, 36, 83, 132, 113, 76, 38, 20,
- 132, 111, 78, 73, 51, 131, 108, 131, 105, 80,
- 148, 138, 101, 65, 47, 115, 86, 50, 124, 129,
- 116, 89, 85, 87, 64, 111, 74, 39, 115, 113,
- 112, 83, 75, 122, 127, 114, 91, 106, 125, 130,
- 131, 108, 79, 136, 112, 110, 147, 164, 144, 124,
- 121, 236, 218, 190, 168, 106, 101, 160, 172, 191,
- 113, 138, 102, 91, 109, 100, 71, 85, 112, 119,
- 121, 96, 51, 64, 126, 135, 114, 76, 34, 104,
- 145, 127, 90, 56, 131, 142, 131, 92, 123, 102,
- 128, 105, 63, 24, 95, 115, 87, 49, 156, 174,
- 123, 105, 88, 58, 55, 141, 119, 99, 75, 81,
- 137, 117, 114, 80, 56, 119, 91, 106, 166, 135,
- 114, 84, 38, 93, 116, 129, 103, 97, 87, 97,
- 115, 184, 193, 173, 157, 117, 88, 114, 151, 121,
- 126, 111, 75, 129, 133, 130, 107, 71, 115, 92,
- 128, 108, 120, 100, 97, 111, 80, 119, 122, 91,
- 114, 94, 149, 129, 136, 114, 88, 132, 110, 85,
- 116, 99, 101, 71, 71, 110, 140, 142, 131, 110,
- 122, 98, 83, 127, 100, 106, 130, 123, 114, 103,
- 113, 87, 140, 116, 113, 140, 161, 171, 145, 129,
- 115, 178, 158, 161, 160, 118, 195, 209, 221, 228,
- 99, 83, 140, 134, 140, 127, 186, 168, 187, 187,
- 107, 114, 100, 111, 111, 104, 130, 131, 116, 128,
- 128, 104, 64, 18, 49, 126, 107, 69, 56, 153,
- 154, 142, 110, 113, 89, 120, 93, 73, 190, 172,
- 119, 96, 57, 21, 60, 126, 122, 81, 99, 117,
- 159, 141, 108, 88, 120, 144, 125, 89, 44, 94,
- 147, 131, 93, 81, 61, 133, 113, 85, 47, 62,
- 123, 121, 87, 53, 90, 120, 94, 76, 70, 48,
- 125, 103, 93, 64, 35, 140, 129, 88, 47, 30,
- 127, 104, 58, 51, 103, 124, 100, 102, 76, 47,
- 115, 87, 54, 46, 77, 182, 218, 174, 163, 145,
- 140, 126, 89, 105, 82, 125, 119, 101, 69, 58,
- 125, 107, 172, 145, 128, 138, 113, 109, 92, 90,
- 117, 93, 83, 93, 132, 125, 102, 67, 148, 161,
- 131, 110, 96, 99, 74, 119, 92, 54, 84, 81,
- 110, 152, 120, 106, 131, 108, 74, 68, 99, 107,
- 121, 97, 120, 101, 78, 132, 110, 127, 164, 134,
- 111, 159, 204, 189, 178, 158, 183, 146, 144, 137,
- 123, 106, 136, 108, 135, 117, 91, 163, 135, 113,
- 119, 177, 134, 122, 121, 132, 109, 157, 131, 113,
- 115, 87, 87, 100, 92, 120, 95, 59, 146, 139,
- 129, 101, 135, 122, 101, 119, 100, 112, 88, 99,
- 118, 90, 123, 125, 107, 121, 98, 73, 104, 80,
- 112, 79, 86, 122, 96, 104, 81, 107, 90, 93,
- 112, 150, 140, 109, 115, 113, 86, 73, 76, 112,
- 130, 111, 101, 112, 84, 123, 97, 63, 134, 115,
- 109, 77, 128, 141, 119, 125, 101, 108, 147, 119,
- 134, 149, 150, 127, 115, 136, 244, 220, 210, 189,
- 105, 138, 171, 156, 174, 117, 162, 133, 146, 141,
- 115, 93, 119, 98, 122, 114, 106, 154, 145, 162,
- 107, 131, 189, 165, 152, 101, 107, 129, 114, 139,
- 116, 186, 186, 161, 180, 100, 89, 137, 116, 116,
- 106, 130, 194, 196, 207, 110, 156, 157, 138, 149,
- 102, 93, 159, 138, 120, 109, 132, 105, 122, 135,
- 148, 128, 85, 76, 102, 168, 154, 141, 117, 100,
- 125, 106, 62, 101, 146, 124, 102, 65, 25, 15,
- 120, 94, 46, 21, 94, 149, 128, 115, 85, 92,
- 119, 93, 70, 52, 30, 162, 151, 123, 91, 80,
- 126, 112, 84, 47, 33, 138, 114, 73, 60, 87,
- 126, 211, 174, 158, 143, 129, 106, 65, 31, 133,
- 119, 95, 52, 99, 173, 123, 96, 119, 206, 178,
- 127, 104, 60, 61, 67, 152, 136, 104, 63, 83,
- 133, 130, 92, 64, 45, 120, 96, 53, 30, 130,
- 128, 103, 74, 59, 35, 135, 114, 77, 30, 57,
- 108, 130, 123, 90, 87, 143, 125, 93, 54, 60,
- 133, 118, 79, 87, 95, 115, 89, 111, 88, 65,
- 124, 102, 70, 40, 47, 148, 131, 123, 130, 104,
- 127, 109, 87, 56, 121, 147, 123, 121, 107, 85,
- 178, 237, 200, 193, 170, 139, 118, 100, 75, 110,
- 133, 121, 81, 73, 68, 120, 195, 157, 141, 131,
- 127, 102, 107, 88, 60, 136, 113, 100, 69, 45,
- 128, 105, 93, 77, 67, 131, 116, 149, 184, 156,
- 115, 85, 35, 45, 112, 128, 108, 68, 73, 111,
- 118, 93, 187, 162, 139, 136, 115, 84, 57, 37,
- 131, 133, 125, 98, 85, 138, 115, 92, 86, 61,
- 116, 96, 70, 52, 110, 115, 109, 135, 104, 88,
- 136, 159, 122, 109, 115, 122, 110, 98, 70, 95,
- 112, 81, 68, 85, 90, 124, 101, 87, 56, 89,
- 109, 82, 98, 100, 115, 124, 102, 76, 88, 63,
- 111, 78, 42, 78, 102, 110, 71, 64, 131, 111,
- 125, 104, 107, 87, 123, 129, 131, 99, 85, 68,
- 147, 137, 102, 99, 75, 120, 155, 142, 109, 91,
- 132, 109, 131, 141, 113, 136, 119, 94, 152, 128,
- 127, 102, 79, 159, 134, 111, 78, 98, 109, 80,
- 115, 86, 51, 63, 103, 116, 86, 170, 149, 123,
- 135, 178, 159, 125, 114, 113, 189, 226, 203, 202,
- 140, 117, 116, 94, 70, 128, 103, 94, 174, 149,
- 118, 98, 83, 84, 106, 115, 157, 120, 94, 95,
- 131, 112, 75, 96, 74, 121, 97, 144, 117, 95,
- 120, 90, 140, 138, 110, 119, 93, 55, 92, 114,
- 114, 87, 151, 125, 100, 111, 82, 83, 160, 139,
- 114, 86, 56, 90, 138, 104, 109, 101, 77, 118,
- 140, 142, 143, 148, 126, 121, 102, 129, 107, 111,
- 113, 79, 58, 111, 91, 120, 94, 63, 115, 98,
- 121, 94, 99, 97, 78, 120, 92, 68, 173, 148,
- 122, 114, 109, 87, 82, 132, 229, 192, 176, 155,
- 137, 116, 123, 97, 115, 132, 115, 86, 120, 95,
- 135, 116, 101, 136, 108, 109, 74, 100, 125, 115,
- 112, 158, 144, 124, 134, 114, 83, 73, 147, 120,
- 120, 104, 150, 122, 116, 110, 104, 192, 183, 174,
- 134, 112, 116, 120, 93, 121, 101, 93, 110, 90,
- 121, 93, 147, 152, 122, 115, 153, 171, 161, 142,
- 123, 95, 116, 114, 93, 113, 89, 96, 77, 93,
- 113, 174, 180, 143, 138, 116, 86, 100, 135, 106,
- 103, 121, 149, 115, 103, 121, 95, 82, 149, 121,
- 117, 92, 93, 111, 114, 123, 209, 196, 193, 183,
- 125, 102, 107, 130, 104, 115, 91, 113, 103, 99,
- 114, 86, 68, 108, 110, 111, 159, 162, 125, 113,
- 125, 235, 234, 225, 214, 99, 74, 118, 121, 127,
- 104, 123, 158, 128, 127, 113, 96, 116, 136, 158,
- 100, 80, 138, 155, 166, 118, 143, 115, 125, 114,
- 119, 137, 133, 136, 139, 151, 188, 172, 174, 173,
- 138, 161, 158, 158, 155, 121, 198, 194, 211, 202,
- 100, 90, 112, 110, 122, 100, 91, 122, 128, 135,
- 101, 109, 127, 101, 114, 105, 126, 160, 147, 143,
- 109, 138, 142, 158, 163, 113, 174, 185, 188, 206,
- 112, 154, 166, 176, 183, 101, 108, 140, 140, 143,
- 106, 135, 130, 137, 126, 103, 114, 115, 128, 126,
- 107, 86, 21, 115, 75, 117, 139, 97, 65, 105,
- 64, 191, 101, 106, 139, 107, 98, 218, 132, 104,
- 73, 136, 165, 84, 118, 150, 111, 58, 130, 107,
- 99, 136, 132, 56, 52, 102, 136, 69, 78, 163,
- 85, 173, 148, 138, 85, 69, 106, 128, 133, 155,
- 104, 91, 149, 56, 104, 103, 101, 172, 96, 57,
- 104, 97, 125, 197, 166, 107, 169, 47, 120, 103,
- 150, 89, 99, 139, 162, 101, 69, 137, 158, 126,
- 191, 173, 127, 79, 155, 51, 131, 112, 86, 74,
- 135, 61, 114, 81, 125, 117, 112, 72, 175, 72,
- 127, 123, 142, 132, 78, 116, 158, 111, 121, 143,
- 108, 102, 89, 20, 194, 81, 99, 107, 65, 150,
- 103, 78, 91, 69, 96, 104, 116, 116, 103, 105,
- 107, 117, 110, 130, 28, 88, 103, 62, 72, 85,
- 125, 126, 141, 126, 178, 121, 102, 57, 46, 124,
- 97, 91, 89, 138, 95, 98, 143, 99, 169, 123,
- 140, 119, 113, 82, 140, 118, 112, 91, 92, 241,
- 134, 89, 95, 112, 78, 167, 140, 145, 121, 100,
- 109, 205, 144, 91, 100, 113, 103, 142, 175, 95,
- 117, 121, 35, 121, 127, 159, 129, 85, 64, 75,
- 116, 98, 103, 127, 129, 66, 68, 110, 96, 86,
- 79, 100, 156, 133, 92, 135, 96, 164, 132, 121,
- 93, 163, 134, 91, 208, 104, 77, 126, 116, 58,
- 136, 118, 132, 81, 61, 73, 115, 66, 129, 123,
- 111, 85, 42, 178, 134, 108, 132, 159, 45, 157,
- 105, 164, 100, 94, 60, 96, 57, 154, 105, 102,
- 103, 114, 96, 12, 91, 119, 115, 67, 92, 64,
- 94, 61, 106, 106, 165, 105, 94, 98, 68, 30,
- 146, 130, 107, 173, 140, 102, 90, 163, 106, 184,
- 100, 53, 68, 131, 92, 105, 111, 68, 153, 186,
- 101, 82, 48, 99, 147, 122, 136, 176, 96, 96,
- 104, 132, 167, 149, 136, 138, 144, 97, 120, 92
-};
-
-static const uint8_t wmavoice_dq_lsp16i2[0x3c0] = {
- 23, 12, 107, 119, 110, 205, 214, 212, 208, 201,
- 102, 95, 69, 117, 107, 118, 123, 118, 123, 121,
- 82, 58, 83, 95, 84, 139, 145, 153, 161, 169,
- 102, 100, 138, 121, 101, 129, 130, 138, 150, 139,
- 76, 104, 86, 112, 133, 113, 91, 63, 73, 129,
- 199, 193, 182, 181, 172, 119, 101, 83, 94, 76,
- 161, 157, 152, 157, 158, 110, 90, 121, 96, 79,
- 124, 107, 114, 88, 73, 152, 137, 121, 107, 99,
- 57, 50, 100, 81, 74, 115, 96, 72, 49, 69,
- 83, 68, 40, 53, 103, 36, 131, 107, 84, 64,
- 236, 245, 242, 231, 213, 95, 109, 88, 69, 110,
- 228, 221, 204, 182, 170, 129, 110, 97, 118, 104,
- 98, 76, 98, 75, 61, 93, 77, 113, 91, 72,
- 116, 94, 106, 134, 118, 177, 188, 169, 162, 153,
- 163, 149, 131, 131, 132, 177, 163, 173, 168, 158,
- 113, 131, 107, 113, 100, 132, 143, 131, 134, 142,
- 45, 36, 121, 113, 102, 43, 95, 84, 67, 56,
- 76, 82, 68, 48, 33, 55, 58, 59, 43, 65,
- 66, 85, 66, 81, 94, 102, 82, 54, 33, 94,
- 113, 111, 89, 60, 34, 138, 120, 101, 101, 86,
- 88, 73, 55, 114, 115, 92, 74, 93, 77, 123,
- 90, 117, 99, 79, 59, 97, 75, 97, 122, 104,
- 233, 237, 227, 208, 190, 209, 230, 233, 240, 241,
- 195, 197, 188, 167, 147, 204, 185, 168, 162, 157,
- 142, 124, 119, 123, 106, 117, 110, 81, 121, 123,
- 74, 116, 124, 119, 120, 178, 168, 146, 132, 125,
- 102, 104, 105, 110, 114, 104, 82, 78, 100, 86,
- 120, 102, 105, 93, 143, 127, 108, 128, 106, 88,
- 177, 189, 203, 207, 215, 101, 131, 119, 95, 73,
- 149, 139, 135, 147, 153, 160, 167, 165, 174, 177,
- 120, 109, 134, 140, 145, 131, 130, 142, 139, 161,
- 143, 158, 148, 145, 145, 123, 142, 132, 116, 102,
- 40, 23, 79, 82, 84, 26, 83, 141, 130, 122,
- 65, 46, 43, 89, 86, 28, 75, 80, 79, 98,
- 84, 65, 47, 26, 44, 49, 112, 101, 100, 94,
- 88, 76, 75, 48, 82, 104, 100, 75, 45, 15,
- 99, 83, 63, 34, 30, 66, 55, 94, 118, 113,
- 122, 106, 91, 68, 60, 135, 122, 104, 77, 59,
- 82, 102, 84, 62, 46, 92, 74, 55, 82, 71,
- 145, 134, 118, 93, 75, 79, 62, 83, 65, 55,
- 91, 94, 64, 70, 98, 89, 117, 110, 87, 97,
- 210, 223, 225, 223, 213, 83, 103, 86, 101, 85,
- 126, 106, 81, 79, 105, 216, 219, 217, 199, 179,
- 86, 78, 115, 138, 135, 102, 84, 87, 59, 46,
- 219, 206, 184, 167, 158, 201, 188, 165, 145, 135,
- 87, 113, 142, 152, 155, 190, 170, 153, 149, 146,
- 205, 208, 201, 185, 167, 84, 73, 124, 104, 96,
- 76, 88, 99, 74, 80, 110, 125, 122, 99, 112,
- 108, 84, 70, 130, 137, 161, 152, 136, 119, 105,
- 110, 91, 101, 74, 96, 111, 101, 93, 153, 149,
- 133, 124, 102, 97, 120, 101, 93, 75, 81, 64,
- 111, 94, 107, 79, 58, 188, 206, 215, 221, 232,
- 163, 175, 165, 150, 136, 103, 106, 123, 133, 132,
- 168, 184, 191, 183, 170, 110, 117, 90, 98, 93,
- 104, 87, 122, 98, 127, 129, 110, 127, 113, 125,
- 134, 118, 102, 140, 132, 186, 199, 202, 198, 188,
- 149, 147, 175, 185, 186, 117, 93, 99, 112, 93,
- 107, 138, 138, 129, 128, 96, 129, 104, 118, 134,
- 145, 136, 115, 121, 129, 138, 155, 148, 134, 120,
- 170, 151, 150, 145, 138, 168, 173, 185, 194, 200,
- 144, 159, 172, 168, 156, 121, 121, 138, 173, 168,
- 126, 111, 140, 139, 117, 149, 133, 142, 137, 130,
- 143, 139, 158, 158, 146, 119, 128, 121, 132, 145,
- 122, 136, 159, 153, 141, 133, 133, 130, 129, 126,
- 120, 76, 50, 149, 109, 92, 155, 118, 90, 66,
- 132, 117, 87, 156, 117, 119, 102, 44, 83, 91,
- 109, 73, 106, 84, 29, 55, 130, 112, 81, 241,
- 75, 40, 91, 89, 67, 112, 90, 149, 81, 72,
- 128, 90, 71, 28, 160, 73, 157, 123, 143, 108,
- 63, 88, 70, 81, 97, 75, 111, 149, 113, 96,
- 78, 104, 83, 179, 95, 105, 106, 65, 130, 66,
- 51, 118, 92, 53, 68, 105, 75, 176, 151, 115,
- 94, 75, 68, 95, 220, 103, 125, 105, 43, 95,
- 39, 114, 65, 145, 135, 33, 142, 138, 103, 52,
- 82, 85, 117, 110, 67, 102, 74, 42, 62, 118,
- 144, 121, 82, 57, 102, 67, 75, 44, 129, 96,
- 75, 63, 88, 48, 116, 135, 94, 85, 102, 66,
- 122, 77, 105, 122, 152, 120, 56, 90, 83, 100,
- 90, 128, 63, 80, 103, 126, 117, 103, 80, 193,
- 42, 73, 117, 93, 91, 95, 128, 100, 128, 162,
- 70, 120, 126, 73, 123, 99, 99, 91, 75, 135,
- 81, 125, 111, 77, 13, 94, 78, 85, 187, 157,
- 11, 143, 109, 99, 119, 53, 141, 82, 122, 68,
- 132, 89, 136, 119, 88, 75, 49, 174, 119, 70,
- 138, 121, 108, 78, 52, 104, 90, 96, 93, 93,
- 114, 90, 78, 46, 58, 62, 114, 69, 44, 162,
- 103, 58, 98, 141, 83, 137, 95, 119, 73, 111,
- 81, 46, 126, 111, 123, 107, 117, 122, 121, 54,
- 106, 104, 59, 110, 148, 97, 155, 97, 83, 133,
- 97, 71, 57, 91, 58, 52, 79, 127, 152, 109,
- 96, 92, 145, 107, 149, 102, 61, 125, 61, 170,
- 56, 89, 77, 106, 38, 147, 96, 77, 105, 123,
- 85, 83, 117, 63, 69, 126, 133, 93, 107, 92,
- 77, 115, 95, 111, 103, 61, 87, 103, 98, 155,
- 94, 111, 80, 78, 54, 117, 128, 130, 99, 109,
- 106, 99, 113, 133, 115, 89, 65, 74, 112, 127
-};
-
-static const uint8_t wmavoice_dq_lsp16i3[0x300] = {
- 70, 100, 121, 129, 132, 132, 201, 188, 165, 145, 144, 136,
- 112, 127, 116, 125, 130, 129, 124, 135, 135, 146, 129, 128,
- 162, 158, 144, 151, 135, 129, 103, 86, 111, 113, 112, 122,
- 90, 139, 129, 117, 126, 129, 142, 145, 167, 147, 124, 124,
- 230, 209, 189, 175, 156, 141, 64, 80, 86, 108, 121, 129,
- 44, 79, 115, 113, 115, 128, 133, 106, 79, 109, 125, 127,
- 171, 156, 132, 109, 103, 115, 106, 70, 93, 145, 141, 128,
- 148, 125, 122, 107, 110, 117, 146, 145, 128, 110, 98, 111,
- 237, 212, 185, 156, 139, 133, 84, 55, 26, 77, 114, 127,
- 172, 170, 171, 168, 162, 143, 82, 82, 76, 70, 104, 126,
- 17, 95, 109, 111, 120, 132, 81, 74, 57, 126, 141, 131,
- 110, 127, 162, 148, 129, 123, 177, 172, 155, 151, 145, 134,
- 144, 123, 90, 66, 109, 130, 82, 127, 103, 123, 132, 131,
- 127, 97, 97, 142, 140, 128, 159, 134, 136, 123, 113, 117,
- 131, 140, 154, 169, 158, 134, 96, 109, 150, 122, 105, 120,
- 120, 150, 152, 122, 119, 125, 123, 126, 124, 107, 100, 113,
- 248, 233, 216, 189, 160, 142, 58, 24, 13, 77, 111, 127,
- 183, 189, 182, 157, 140, 131, 96, 83, 59, 43, 73, 119,
- 222, 196, 171, 146, 129, 128, 32, 13, 53, 101, 114, 127,
- 119, 101, 70, 70, 110, 127, 77, 86, 161, 148, 130, 118,
- 199, 183, 170, 167, 156, 141, 30, 115, 142, 133, 131, 130,
- 101, 103, 181, 176, 152, 126, 66, 44, 73, 94, 111, 128,
- 150, 122, 100, 101, 104, 118, 61, 110, 87, 76, 93, 125,
- 190, 170, 150, 134, 135, 129, 112, 89, 63, 123, 141, 132,
- 175, 154, 136, 142, 140, 132, 117, 143, 129, 128, 136, 132,
- 168, 142, 112, 113, 128, 128, 155, 169, 159, 144, 139, 131,
- 61, 136, 144, 124, 112, 123, 86, 81, 104, 121, 129, 130,
- 160, 127, 118, 150, 151, 134, 126, 115, 121, 132, 134, 131,
- 137, 148, 144, 139, 140, 134, 106, 102, 105, 90, 87, 113,
- 134, 129, 128, 121, 121, 123, 153, 151, 129, 139, 142, 134,
- 150, 142, 141, 148, 149, 141, 100, 121, 133, 147, 150, 134,
- 163, 158, 147, 132, 141, 132, 142, 127, 141, 136, 136, 132,
- 232, 218, 205, 189, 169, 146, 243, 224, 201, 171, 147, 138,
- 224, 196, 169, 162, 154, 140, 51, 20, 59, 111, 121, 128,
- 203, 197, 193, 177, 162, 145, 75, 40, 47, 122, 130, 129,
- 102, 77, 47, 83, 121, 129, 111, 108, 84, 56, 63, 114,
- 211, 181, 154, 137, 126, 125, 213, 198, 186, 162, 144, 138,
- 41, 45, 90, 110, 118, 130, 83, 63, 130, 164, 153, 128,
- 195, 167, 142, 123, 113, 119, 19, 42, 105, 113, 120, 132,
- 50, 63, 49, 64, 112, 128, 114, 90, 132, 171, 162, 134,
- 129, 128, 107, 83, 74, 110, 50, 116, 109, 120, 128, 132,
- 94, 59, 73, 111, 117, 126, 197, 170, 166, 153, 138, 132,
- 65, 48, 109, 133, 131, 128, 170, 163, 172, 158, 138, 130,
- 66, 126, 147, 160, 151, 132, 42, 129, 117, 95, 91, 120,
- 97, 165, 164, 142, 133, 125, 163, 142, 114, 88, 97, 122,
- 104, 77, 142, 143, 128, 120, 136, 160, 188, 169, 149, 130,
- 113, 83, 85, 102, 114, 125, 164, 169, 142, 120, 122, 124,
- 98, 152, 132, 105, 92, 117, 42, 71, 125, 155, 151, 137,
- 94, 105, 81, 107, 118, 126, 84, 56, 123, 117, 108, 122,
- 174, 179, 166, 137, 118, 121, 130, 103, 147, 152, 134, 124,
- 148, 127, 94, 117, 144, 134, 129, 106, 102, 95, 106, 118,
- 147, 157, 153, 125, 103, 117, 155, 128, 113, 132, 120, 122,
- 181, 151, 136, 126, 122, 122, 110, 111, 109, 108, 120, 124,
- 97, 130, 103, 89, 107, 124, 179, 158, 158, 142, 131, 128,
- 142, 111, 115, 122, 126, 125, 145, 145, 134, 115, 129, 128,
- 130, 139, 112, 99, 121, 125, 79, 104, 119, 102, 105, 123,
- 116, 121, 136, 125, 126, 127, 124, 100, 122, 119, 111, 119,
- 159, 140, 139, 128, 138, 131, 105, 100, 116, 128, 135, 132,
- 159, 142, 156, 147, 140, 134, 130, 150, 129, 126, 114, 120,
- 138, 124, 146, 131, 109, 119, 93, 115, 125, 131, 125, 129,
- 125, 121, 101, 119, 114, 120, 163, 154, 151, 153, 153, 139,
- 166, 153, 150, 133, 119, 121, 159, 151, 128, 130, 122, 123,
- 147, 154, 144, 133, 128, 127, 129, 131, 134, 140, 148, 138,
- 138, 136, 120, 131, 135, 131, 150, 140, 137, 144, 129, 129
-};
-
-static const uint8_t wmavoice_dq_lsp10r[0x1400] = {
- 128, 128, 129, 129, 130, 130, 131, 130, 129, 129,
- 134, 133, 127, 125, 136, 135, 135, 134, 173, 172,
- 133, 139, 136, 165, 133, 176, 137, 159, 135, 152,
- 147, 161, 147, 152, 149, 156, 146, 146, 140, 136,
- 134, 135, 136, 140, 139, 155, 123, 133, 132, 142,
- 132, 148, 143, 177, 124, 143, 123, 136, 126, 134,
- 126, 125, 125, 124, 129, 128, 123, 123, 133, 133,
- 116, 116, 121, 121, 121, 120, 129, 128, 131, 131,
- 132, 133, 132, 129, 138, 124, 138, 124, 132, 100,
- 135, 94, 149, 111, 152, 115, 150, 128, 141, 133,
- 129, 129, 130, 129, 147, 145, 136, 137, 120, 122,
- 120, 122, 127, 129, 104, 108, 113, 115, 124, 124,
- 140, 139, 147, 145, 132, 130, 184, 177, 201, 196,
- 170, 171, 160, 161, 145, 147, 137, 145, 131, 131,
- 130, 130, 130, 130, 130, 130, 132, 134, 131, 132,
- 131, 133, 141, 144, 142, 149, 84, 93, 103, 104,
- 139, 139, 142, 140, 147, 147, 172, 165, 122, 121,
- 98, 100, 101, 106, 112, 117, 122, 124, 124, 124,
- 134, 133, 133, 133, 146, 142, 147, 145, 156, 156,
- 143, 146, 119, 124, 129, 132, 151, 149, 136, 135,
- 147, 148, 181, 180, 199, 188, 190, 173, 166, 161,
- 147, 142, 153, 149, 154, 146, 150, 146, 138, 134,
- 131, 135, 96, 136, 48, 138, 56, 131, 63, 124,
- 85, 128, 103, 132, 117, 134, 120, 132, 125, 129,
- 131, 130, 129, 128, 129, 128, 163, 168, 117, 120,
- 121, 121, 136, 138, 131, 132, 135, 136, 131, 133,
- 133, 133, 133, 134, 117, 118, 105, 109, 142, 151,
- 144, 159, 131, 138, 121, 126, 123, 123, 121, 124,
- 131, 131, 129, 129, 141, 140, 142, 134, 87, 90,
- 109, 109, 130, 127, 139, 143, 133, 131, 127, 126,
- 134, 135, 134, 136, 97, 98, 130, 132, 134, 137,
- 115, 119, 125, 130, 107, 109, 119, 118, 126, 127,
- 134, 135, 127, 132, 172, 203, 160, 196, 152, 179,
- 152, 172, 148, 168, 153, 172, 145, 156, 137, 140,
- 102, 116, 42, 56, 74, 61, 82, 70, 86, 78,
- 101, 97, 104, 100, 115, 108, 116, 108, 123, 118,
- 149, 143, 166, 129, 168, 96, 142, 95, 135, 98,
- 117, 86, 116, 93, 121, 108, 119, 107, 121, 117,
- 135, 135, 127, 138, 72, 132, 99, 136, 112, 147,
- 120, 152, 136, 155, 138, 146, 140, 142, 134, 139,
- 163, 145, 192, 130, 147, 124, 147, 125, 133, 125,
- 127, 124, 128, 123, 129, 122, 130, 122, 130, 125,
- 130, 137, 135, 180, 124, 133, 130, 129, 132, 133,
- 124, 124, 131, 130, 132, 136, 126, 124, 127, 125,
- 132, 132, 133, 133, 144, 140, 143, 142, 137, 135,
- 143, 138, 152, 149, 221, 219, 158, 161, 143, 141,
- 130, 129, 140, 135, 170, 145, 193, 156, 186, 152,
- 167, 139, 151, 131, 142, 127, 134, 120, 131, 125,
- 135, 133, 141, 125, 199, 109, 137, 126, 134, 123,
- 130, 129, 132, 123, 128, 125, 122, 126, 125, 125,
- 130, 128, 91, 89, 138, 135, 139, 134, 133, 129,
- 132, 130, 125, 128, 136, 135, 129, 127, 126, 126,
- 132, 131, 133, 131, 128, 120, 132, 126, 126, 119,
- 134, 130, 131, 123, 104, 95, 140, 141, 136, 137,
- 133, 133, 133, 134, 117, 98, 74, 49, 112, 111,
- 123, 122, 126, 127, 131, 131, 127, 126, 128, 129,
- 130, 131, 124, 127, 101, 107, 108, 109, 115, 115,
- 100, 99, 130, 128, 134, 136, 125, 127, 128, 130,
- 136, 137, 145, 150, 149, 164, 136, 151, 114, 111,
- 124, 125, 143, 150, 162, 174, 158, 169, 136, 137,
- 131, 131, 131, 131, 132, 133, 111, 110, 122, 121,
- 136, 136, 134, 133, 131, 132, 127, 127, 125, 125,
- 128, 129, 129, 130, 125, 127, 140, 140, 148, 149,
- 133, 136, 146, 153, 110, 118, 127, 129, 128, 129,
- 131, 133, 127, 131, 140, 161, 167, 224, 131, 139,
- 136, 143, 135, 139, 138, 143, 149, 155, 141, 143,
- 134, 132, 120, 111, 83, 83, 121, 126, 102, 107,
- 112, 115, 97, 104, 120, 115, 129, 123, 122, 122,
- 134, 135, 122, 131, 102, 124, 114, 119, 93, 103,
- 78, 79, 67, 72, 66, 73, 78, 82, 103, 102,
- 144, 135, 165, 139, 165, 129, 160, 126, 153, 127,
- 161, 134, 160, 142, 160, 143, 148, 140, 138, 135,
- 138, 95, 147, 54, 143, 78, 140, 112, 142, 113,
- 140, 121, 135, 117, 135, 122, 136, 131, 131, 132,
- 147, 159, 140, 156, 127, 81, 142, 128, 146, 127,
- 144, 125, 146, 128, 149, 130, 144, 135, 133, 128,
- 130, 131, 131, 131, 134, 139, 126, 134, 141, 154,
- 168, 205, 153, 176, 148, 163, 147, 158, 141, 143,
- 131, 135, 126, 146, 108, 157, 107, 156, 119, 146,
- 100, 138, 104, 125, 119, 134, 101, 122, 113, 122,
- 95, 133, 52, 140, 83, 136, 110, 133, 114, 131,
- 123, 131, 133, 131, 138, 135, 132, 132, 127, 127,
- 129, 128, 124, 122, 128, 126, 145, 170, 143, 172,
- 141, 163, 143, 176, 138, 164, 139, 155, 135, 145,
- 135, 136, 136, 127, 132, 76, 128, 76, 127, 63,
- 125, 66, 123, 67, 120, 71, 124, 92, 122, 111,
- 133, 133, 135, 136, 139, 140, 147, 147, 150, 144,
- 156, 147, 150, 145, 154, 146, 120, 123, 123, 124,
- 137, 133, 170, 141, 124, 124, 135, 134, 134, 135,
- 132, 132, 129, 129, 130, 130, 136, 136, 130, 132,
- 147, 159, 135, 158, 115, 146, 120, 148, 117, 136,
- 115, 137, 113, 132, 133, 142, 140, 144, 132, 134,
- 134, 135, 134, 137, 137, 147, 162, 178, 136, 147,
- 134, 144, 123, 132, 111, 113, 113, 113, 124, 124,
- 132, 131, 126, 126, 117, 114, 100, 95, 130, 125,
- 157, 145, 164, 156, 163, 158, 145, 145, 133, 134,
- 134, 134, 127, 126, 113, 102, 136, 130, 124, 122,
- 143, 145, 127, 131, 135, 143, 133, 137, 132, 132,
- 92, 94, 122, 125, 128, 129, 131, 130, 134, 135,
- 132, 128, 129, 127, 132, 132, 131, 129, 127, 127,
- 129, 129, 132, 131, 139, 131, 137, 132, 216, 178,
- 146, 134, 147, 137, 151, 142, 148, 139, 144, 138,
- 128, 127, 129, 129, 123, 131, 71, 91, 126, 128,
- 130, 134, 117, 123, 125, 125, 135, 140, 129, 132,
- 132, 132, 133, 134, 124, 130, 127, 133, 133, 138,
- 142, 149, 135, 141, 145, 149, 154, 164, 135, 138,
- 135, 135, 141, 142, 138, 137, 116, 96, 105, 86,
- 127, 118, 128, 120, 124, 117, 125, 117, 125, 121,
- 131, 131, 132, 134, 144, 145, 112, 112, 121, 123,
- 113, 116, 121, 123, 139, 138, 128, 128, 131, 131,
- 134, 132, 132, 132, 125, 128, 127, 130, 125, 131,
- 120, 128, 90, 119, 68, 98, 99, 112, 115, 124,
- 135, 135, 134, 134, 128, 129, 137, 137, 137, 138,
- 110, 114, 129, 130, 144, 145, 123, 125, 129, 129,
- 132, 133, 129, 130, 168, 187, 140, 149, 137, 144,
- 129, 130, 129, 134, 133, 138, 118, 118, 122, 120,
- 131, 130, 129, 128, 133, 133, 125, 125, 124, 123,
- 181, 179, 129, 129, 131, 127, 139, 136, 130, 128,
- 133, 133, 132, 132, 121, 120, 122, 119, 132, 129,
- 129, 125, 107, 96, 136, 137, 150, 146, 135, 134,
- 131, 131, 130, 130, 126, 123, 126, 123, 128, 125,
- 130, 123, 134, 127, 183, 159, 143, 135, 137, 134,
- 129, 129, 128, 128, 134, 133, 139, 138, 133, 132,
- 129, 127, 154, 151, 150, 144, 146, 146, 141, 142,
- 132, 132, 131, 131, 130, 130, 132, 133, 114, 115,
- 132, 132, 122, 122, 132, 131, 115, 117, 120, 120,
- 129, 129, 130, 130, 130, 129, 130, 131, 129, 131,
- 130, 130, 129, 129, 133, 132, 143, 144, 91, 91,
- 137, 136, 118, 107, 60, 45, 56, 49, 57, 52,
- 60, 56, 71, 75, 77, 80, 92, 97, 106, 106,
- 112, 131, 58, 121, 19, 65, 84, 101, 108, 122,
- 121, 127, 112, 117, 106, 112, 117, 124, 126, 127,
- 130, 129, 138, 133, 166, 155, 192, 179, 192, 177,
- 208, 191, 204, 192, 186, 179, 163, 163, 138, 142,
- 134, 134, 144, 142, 243, 236, 148, 146, 141, 137,
- 145, 141, 151, 144, 147, 143, 135, 139, 134, 133,
- 134, 128, 138, 88, 142, 10, 127, 76, 130, 96,
- 129, 102, 128, 108, 123, 111, 127, 119, 127, 124,
- 136, 136, 139, 139, 142, 140, 246, 241, 158, 167,
- 143, 145, 146, 149, 143, 145, 148, 152, 133, 134,
- 139, 135, 135, 136, 99, 137, 95, 133, 75, 138,
- 67, 135, 73, 128, 83, 132, 96, 126, 115, 127,
- 130, 132, 137, 136, 140, 135, 134, 130, 137, 131,
- 159, 151, 215, 197, 181, 170, 160, 149, 150, 143,
- 145, 148, 186, 207, 141, 147, 135, 137, 122, 122,
- 126, 125, 128, 126, 127, 127, 134, 126, 131, 123,
- 133, 133, 126, 122, 128, 122, 99, 93, 59, 60,
- 82, 82, 106, 107, 119, 123, 124, 128, 128, 129,
- 134, 137, 133, 139, 133, 136, 141, 132, 139, 122,
- 142, 97, 130, 81, 128, 89, 129, 101, 125, 112,
- 137, 140, 129, 148, 101, 159, 118, 180, 122, 178,
- 120, 178, 116, 168, 118, 153, 127, 151, 126, 136,
- 132, 134, 125, 126, 118, 105, 156, 124, 180, 132,
- 163, 124, 148, 121, 131, 112, 127, 115, 125, 122,
- 129, 131, 128, 129, 136, 134, 142, 141, 165, 158,
- 203, 182, 141, 136, 132, 130, 135, 135, 130, 130,
- 133, 133, 132, 132, 127, 126, 106, 105, 112, 110,
- 106, 105, 80, 84, 100, 101, 122, 125, 126, 128,
- 101, 109, 46, 59, 114, 112, 119, 119, 126, 121,
- 129, 124, 128, 125, 125, 122, 123, 120, 125, 122,
- 135, 134, 121, 134, 56, 139, 131, 145, 135, 138,
- 136, 139, 126, 130, 122, 132, 126, 129, 124, 129,
- 153, 169, 146, 179, 138, 139, 151, 143, 148, 138,
- 153, 137, 142, 129, 144, 126, 140, 128, 133, 126,
- 136, 134, 154, 149, 173, 157, 152, 144, 149, 141,
- 137, 136, 127, 121, 123, 121, 121, 126, 120, 123,
- 157, 143, 166, 135, 120, 122, 112, 118, 102, 118,
- 111, 124, 134, 131, 141, 138, 135, 134, 126, 129,
- 140, 123, 152, 76, 131, 116, 138, 136, 126, 134,
- 130, 142, 126, 136, 120, 132, 126, 128, 124, 127,
- 131, 138, 80, 147, 126, 138, 130, 140, 129, 134,
- 133, 135, 131, 132, 126, 127, 127, 125, 125, 123,
- 132, 132, 130, 132, 123, 130, 102, 102, 107, 110,
- 116, 127, 132, 152, 142, 160, 143, 151, 142, 146,
- 132, 132, 132, 132, 125, 126, 132, 140, 158, 199,
- 135, 149, 134, 140, 135, 131, 129, 120, 127, 121,
- 129, 130, 122, 123, 125, 124, 138, 138, 138, 135,
- 140, 141, 101, 94, 105, 98, 121, 122, 127, 128,
- 126, 127, 119, 121, 133, 156, 132, 159, 130, 148,
- 137, 164, 127, 138, 130, 137, 135, 140, 126, 126,
- 128, 129, 129, 129, 126, 124, 130, 128, 143, 138,
- 149, 143, 185, 170, 129, 127, 138, 133, 138, 135,
- 132, 134, 137, 144, 139, 183, 131, 145, 127, 128,
- 128, 127, 128, 122, 129, 125, 145, 139, 135, 131,
- 132, 133, 132, 130, 152, 96, 159, 85, 150, 105,
- 154, 115, 143, 120, 138, 126, 134, 124, 130, 126,
- 128, 127, 121, 123, 122, 123, 116, 125, 84, 87,
- 133, 135, 129, 131, 123, 126, 133, 135, 131, 130,
- 136, 134, 129, 119, 79, 63, 116, 116, 136, 133,
- 133, 130, 140, 143, 127, 127, 124, 125, 127, 128,
- 128, 126, 124, 120, 139, 128, 153, 134, 151, 134,
- 174, 145, 159, 136, 165, 144, 171, 149, 143, 135,
- 134, 134, 133, 133, 121, 119, 177, 162, 166, 154,
- 127, 130, 132, 132, 136, 137, 142, 143, 138, 137,
- 167, 151, 162, 142, 128, 136, 142, 148, 128, 143,
- 145, 153, 140, 149, 132, 141, 128, 139, 127, 133,
- 156, 169, 131, 129, 126, 120, 127, 125, 129, 120,
- 131, 126, 126, 123, 124, 121, 122, 121, 123, 123,
- 138, 140, 149, 156, 145, 152, 105, 102, 131, 126,
- 151, 146, 147, 139, 144, 137, 143, 133, 135, 130,
- 132, 130, 131, 129, 126, 130, 126, 129, 110, 135,
- 115, 139, 108, 146, 105, 147, 121, 134, 124, 133,
- 137, 137, 135, 134, 143, 142, 146, 146, 120, 121,
- 139, 137, 133, 129, 149, 145, 139, 133, 130, 127,
- 134, 134, 134, 134, 125, 124, 117, 119, 120, 113,
- 84, 80, 122, 125, 108, 112, 97, 102, 118, 120,
- 124, 123, 115, 116, 110, 111, 98, 97, 127, 124,
- 129, 127, 120, 117, 114, 109, 106, 104, 116, 116,
- 138, 138, 139, 141, 142, 146, 127, 125, 133, 130,
- 134, 128, 134, 127, 116, 91, 105, 84, 114, 106,
- 128, 128, 126, 126, 131, 137, 126, 129, 133, 139,
- 134, 145, 132, 143, 150, 192, 131, 142, 138, 141,
- 132, 130, 132, 130, 149, 138, 196, 152, 137, 125,
- 134, 125, 139, 128, 133, 125, 141, 134, 134, 135,
- 134, 135, 134, 135, 131, 130, 136, 133, 110, 106,
- 142, 144, 153, 162, 131, 129, 134, 132, 131, 130,
- 126, 125, 132, 130, 168, 153, 126, 124, 130, 126,
- 140, 135, 140, 134, 138, 133, 145, 137, 135, 134,
- 130, 130, 132, 131, 133, 132, 129, 129, 125, 128,
- 128, 130, 133, 139, 143, 152, 193, 215, 152, 160,
- 130, 131, 129, 131, 130, 131, 135, 136, 136, 141,
- 83, 81, 121, 120, 136, 130, 150, 145, 147, 145,
- 134, 133, 135, 133, 146, 142, 135, 131, 127, 128,
- 134, 135, 93, 102, 126, 132, 131, 133, 127, 129,
- 124, 125, 120, 122, 103, 106, 128, 129, 139, 138,
- 127, 128, 134, 134, 143, 138, 139, 134, 135, 133,
- 131, 130, 133, 131, 139, 134, 138, 136, 166, 156,
- 119, 116, 121, 122, 126, 124, 116, 117, 123, 124,
- 131, 131, 129, 129, 130, 128, 141, 138, 135, 132,
- 154, 145, 137, 129, 131, 125, 146, 137, 138, 135,
- 131, 131, 131, 132, 129, 130, 134, 138, 111, 116,
- 113, 118, 123, 125, 122, 124, 143, 147, 138, 140,
- 116, 113, 114, 112, 130, 126, 117, 115, 127, 126,
- 139, 137, 141, 139, 131, 132, 143, 144, 139, 140,
- 130, 130, 129, 128, 136, 134, 119, 117, 152, 143,
- 155, 143, 120, 119, 142, 139, 124, 130, 126, 128,
- 112, 110, 112, 109, 136, 132, 125, 118, 121, 115,
- 103, 101, 109, 100, 125, 120, 121, 117, 122, 121,
- 128, 128, 127, 127, 124, 124, 128, 127, 131, 129,
- 142, 138, 147, 141, 115, 108, 113, 109, 122, 119,
- 136, 133, 150, 139, 142, 131, 119, 111, 151, 137,
- 121, 116, 146, 134, 137, 129, 121, 123, 127, 129,
- 130, 130, 130, 130, 136, 137, 126, 126, 136, 136,
- 133, 133, 139, 139, 142, 143, 119, 120, 134, 134,
- 132, 132, 133, 133, 135, 138, 129, 131, 133, 134,
- 135, 138, 126, 130, 117, 118, 131, 132, 135, 135,
- 129, 129, 128, 128, 126, 129, 127, 129, 123, 125,
- 115, 117, 156, 157, 127, 131, 129, 129, 128, 129,
- 129, 130, 131, 131, 126, 127, 135, 134, 136, 135,
- 140, 136, 117, 113, 132, 128, 104, 97, 109, 106,
- 131, 131, 131, 131, 121, 123, 124, 125, 126, 127,
- 127, 127, 135, 135, 128, 128, 130, 130, 141, 140,
- 129, 129, 129, 129, 129, 127, 127, 125, 149, 146,
- 125, 123, 134, 133, 134, 132, 152, 150, 138, 138,
- 128, 128, 126, 125, 132, 133, 141, 143, 136, 136,
- 126, 127, 126, 127, 129, 131, 128, 129, 135, 134,
- 176, 139, 192, 135, 145, 122, 149, 117, 155, 134,
- 169, 133, 157, 139, 142, 136, 151, 152, 142, 147,
- 166, 174, 103, 107, 141, 134, 140, 136, 144, 135,
- 147, 135, 156, 131, 153, 127, 133, 126, 130, 124,
- 127, 130, 123, 124, 114, 105, 195, 193, 156, 157,
- 165, 158, 126, 122, 149, 141, 174, 173, 152, 147,
- 136, 139, 131, 138, 163, 169, 103, 124, 80, 102,
- 153, 186, 121, 151, 134, 161, 156, 190, 141, 151,
- 121, 123, 124, 127, 119, 127, 133, 134, 157, 156,
- 81, 69, 136, 134, 160, 169, 118, 114, 135, 128,
- 114, 116, 97, 97, 117, 122, 152, 161, 115, 121,
- 106, 122, 135, 137, 111, 113, 125, 135, 141, 145,
- 143, 146, 143, 150, 132, 136, 142, 150, 151, 167,
- 101, 107, 155, 173, 112, 124, 105, 100, 128, 126,
- 127, 130, 133, 134, 142, 121, 131, 116, 176, 145,
- 161, 120, 209, 150, 196, 133, 147, 115, 149, 130,
- 144, 145, 144, 145, 120, 119, 163, 160, 117, 118,
- 123, 117, 154, 119, 193, 98, 149, 101, 137, 116,
- 133, 135, 140, 143, 144, 156, 131, 146, 186, 201,
- 140, 139, 123, 125, 158, 169, 157, 166, 142, 143,
- 130, 131, 132, 132, 128, 128, 141, 142, 147, 149,
- 145, 148, 137, 139, 129, 129, 107, 108, 157, 157,
- 120, 121, 119, 119, 140, 132, 137, 131, 118, 113,
- 143, 136, 134, 135, 164, 158, 133, 125, 127, 124,
- 148, 122, 197, 130, 173, 145, 110, 139, 123, 165,
- 83, 158, 90, 167, 93, 142, 136, 169, 134, 152,
- 130, 126, 154, 138, 227, 150, 156, 114, 147, 114,
- 142, 109, 135, 110, 166, 135, 176, 150, 152, 142,
- 132, 132, 136, 136, 130, 135, 143, 152, 136, 144,
- 152, 160, 177, 185, 112, 112, 165, 166, 160, 161,
- 145, 145, 138, 139, 116, 118, 127, 131, 66, 80,
- 132, 142, 119, 127, 101, 108, 120, 130, 126, 130,
- 135, 135, 142, 139, 153, 137, 55, 30, 142, 139,
- 139, 143, 135, 133, 129, 133, 109, 108, 129, 129,
- 136, 135, 134, 131, 129, 132, 132, 134, 135, 149,
- 79, 206, 123, 137, 135, 143, 130, 140, 131, 134,
- 100, 99, 165, 164, 142, 123, 148, 133, 133, 122,
- 142, 133, 138, 125, 119, 111, 129, 123, 137, 130,
- 131, 132, 123, 129, 174, 185, 196, 181, 127, 111,
- 156, 141, 132, 114, 129, 106, 132, 107, 126, 117,
- 134, 140, 131, 136, 119, 146, 92, 246, 128, 132,
- 125, 129, 132, 140, 128, 141, 126, 145, 137, 142,
- 130, 130, 110, 115, 124, 139, 127, 151, 118, 152,
- 98, 146, 36, 108, 126, 158, 112, 146, 112, 130,
- 138, 136, 145, 138, 153, 145, 116, 125, 90, 103,
- 137, 138, 189, 185, 141, 151, 86, 93, 111, 111,
- 133, 171, 125, 209, 140, 132, 130, 134, 129, 101,
- 142, 120, 142, 132, 135, 126, 141, 140, 140, 134,
- 128, 123, 131, 123, 138, 118, 163, 133, 240, 197,
- 176, 151, 126, 123, 81, 94, 109, 118, 124, 133,
- 135, 133, 137, 134, 154, 135, 140, 155, 69, 190,
- 119, 149, 141, 151, 142, 123, 135, 125, 129, 130,
- 127, 125, 132, 127, 107, 80, 123, 103, 145, 131,
- 133, 107, 140, 103, 135, 106, 170, 145, 159, 143,
- 136, 137, 127, 130, 105, 119, 129, 134, 141, 151,
- 116, 127, 119, 140, 75, 119, 152, 162, 149, 152,
- 72, 138, 9, 143, 118, 160, 126, 134, 141, 147,
- 135, 131, 129, 129, 135, 129, 136, 126, 133, 125,
- 137, 135, 146, 141, 145, 139, 141, 140, 133, 130,
- 213, 208, 139, 130, 139, 136, 117, 117, 126, 125,
- 133, 130, 138, 131, 141, 100, 145, 93, 159, 121,
- 144, 132, 117, 160, 102, 187, 99, 162, 117, 144,
- 132, 132, 134, 134, 140, 141, 127, 126, 128, 131,
- 116, 116, 121, 127, 119, 126, 114, 114, 99, 100,
- 141, 144, 148, 159, 179, 224, 95, 131, 100, 125,
- 87, 110, 112, 132, 134, 147, 111, 125, 122, 122,
- 137, 140, 141, 129, 169, 12, 144, 132, 133, 144,
- 141, 146, 137, 147, 136, 122, 133, 130, 131, 128,
- 141, 142, 128, 139, 15, 69, 160, 159, 142, 130,
- 137, 126, 159, 141, 145, 143, 128, 125, 134, 128,
- 131, 130, 127, 127, 114, 104, 119, 98, 83, 68,
- 139, 120, 173, 142, 199, 154, 191, 153, 158, 145,
- 128, 130, 127, 127, 148, 150, 110, 99, 119, 109,
- 120, 113, 163, 154, 110, 90, 138, 129, 149, 144,
- 131, 134, 124, 142, 76, 217, 130, 129, 140, 138,
- 133, 135, 145, 150, 136, 138, 127, 130, 130, 134,
- 144, 119, 178, 70, 143, 130, 115, 136, 139, 138,
- 129, 109, 136, 116, 147, 122, 126, 112, 126, 123,
- 132, 139, 128, 144, 107, 156, 75, 163, 120, 164,
- 151, 136, 151, 99, 160, 112, 159, 126, 143, 126,
- 140, 138, 137, 135, 152, 108, 251, 85, 138, 116,
- 137, 118, 141, 119, 136, 121, 150, 134, 138, 131,
- 137, 137, 143, 144, 150, 153, 148, 154, 152, 151,
- 117, 104, 124, 96, 93, 67, 146, 138, 149, 148,
- 149, 153, 172, 193, 108, 114, 125, 128, 145, 165,
- 149, 160, 121, 130, 115, 120, 110, 112, 121, 118,
- 145, 146, 141, 142, 127, 127, 103, 95, 138, 143,
- 114, 126, 109, 115, 143, 136, 153, 149, 144, 142,
- 140, 138, 150, 144, 128, 116, 142, 136, 135, 122,
- 93, 88, 164, 163, 141, 142, 171, 182, 154, 160,
- 124, 125, 122, 123, 158, 155, 111, 97, 138, 130,
- 157, 134, 101, 65, 129, 118, 121, 114, 124, 119,
- 131, 133, 125, 129, 136, 147, 135, 152, 131, 133,
- 110, 115, 118, 114, 161, 159, 233, 218, 172, 166,
- 140, 107, 125, 0, 140, 103, 140, 115, 125, 113,
- 132, 135, 128, 133, 138, 146, 131, 145, 127, 133,
- 131, 131, 122, 122, 135, 132, 126, 124, 132, 133,
- 164, 167, 121, 127, 117, 120, 167, 162, 145, 143,
- 135, 134, 136, 134, 156, 146, 195, 177, 127, 139,
- 108, 140, 141, 173, 141, 178, 131, 155, 129, 141,
- 134, 134, 119, 114, 184, 184, 127, 126, 147, 151,
- 130, 140, 146, 159, 134, 145, 131, 136, 137, 142,
- 135, 137, 128, 136, 83, 108, 97, 98, 152, 119,
- 207, 144, 142, 121, 144, 129, 131, 127, 130, 132,
- 124, 125, 108, 107, 94, 116, 81, 114, 139, 173,
- 131, 158, 145, 177, 141, 163, 136, 140, 143, 144,
- 135, 141, 132, 136, 134, 142, 142, 136, 173, 50,
- 143, 106, 142, 127, 134, 139, 127, 133, 125, 125,
- 129, 130, 131, 133, 132, 148, 110, 138, 113, 135,
- 138, 175, 108, 151, 55, 119, 51, 100, 93, 116,
- 121, 121, 146, 151, 99, 120, 127, 137, 107, 122,
- 125, 139, 110, 132, 135, 156, 141, 156, 148, 157,
- 137, 137, 141, 140, 139, 137, 130, 128, 138, 136,
- 132, 134, 115, 110, 177, 179, 81, 86, 100, 98,
- 84, 83, 121, 121, 148, 157, 127, 133, 146, 156,
- 127, 136, 143, 151, 135, 139, 138, 142, 136, 136,
- 201, 164, 151, 129, 123, 136, 147, 148, 127, 142,
- 128, 143, 101, 126, 119, 133, 114, 131, 116, 126,
- 132, 133, 140, 140, 126, 125, 156, 153, 142, 129,
- 140, 130, 77, 69, 134, 132, 146, 148, 135, 136,
- 133, 132, 123, 116, 116, 103, 150, 135, 144, 127,
- 130, 117, 136, 122, 122, 106, 48, 38, 81, 78,
- 145, 146, 135, 136, 123, 122, 126, 133, 133, 138,
- 145, 145, 144, 150, 160, 181, 142, 139, 150, 150,
- 136, 136, 139, 139, 133, 133, 139, 135, 134, 129,
- 140, 137, 153, 145, 132, 131, 151, 144, 68, 66,
- 137, 137, 139, 139, 146, 146, 142, 139, 129, 128,
- 131, 129, 133, 132, 135, 134, 135, 134, 201, 200,
- 137, 136, 146, 143, 155, 153, 157, 158, 131, 138,
- 140, 139, 143, 144, 128, 123, 216, 192, 159, 150,
- 137, 138, 136, 142, 145, 148, 126, 162, 140, 170,
- 186, 95, 131, 140, 143, 148, 133, 128, 130, 133,
- 141, 139, 153, 150, 122, 122, 134, 144, 124, 130,
- 159, 166, 133, 139, 151, 150, 138, 139, 131, 134,
- 121, 121, 131, 129, 148, 180, 121, 135, 118, 131,
- 124, 148, 119, 119, 129, 126, 150, 156, 155, 160,
- 40, 154, 115, 157, 133, 129, 140, 133, 143, 133,
- 143, 132, 144, 130, 141, 131, 134, 130, 137, 133,
- 134, 136, 141, 140, 145, 137, 152, 124, 183, 91,
- 118, 154, 123, 158, 136, 134, 140, 142, 138, 142,
- 138, 135, 131, 131, 138, 129, 121, 128, 146, 219,
- 124, 123, 125, 135, 120, 126, 127, 141, 133, 136,
- 127, 124, 120, 107, 152, 125, 149, 108, 158, 144,
- 196, 185, 174, 164, 151, 149, 138, 131, 140, 137,
- 149, 148, 144, 145, 143, 145, 140, 143, 141, 147,
- 112, 125, 113, 113, 149, 155, 143, 149, 146, 151,
- 138, 138, 141, 138, 144, 129, 134, 125, 143, 140,
- 153, 154, 142, 123, 162, 42, 154, 106, 153, 130,
- 153, 153, 137, 137, 144, 144, 142, 140, 165, 151,
- 161, 140, 144, 134, 156, 124, 167, 143, 166, 155,
- 132, 132, 137, 138, 137, 132, 124, 127, 140, 144,
- 134, 140, 162, 180, 127, 131, 152, 169, 145, 156,
- 133, 134, 131, 133, 130, 132, 147, 149, 125, 117,
- 127, 118, 159, 155, 147, 142, 122, 117, 145, 144,
- 138, 137, 130, 133, 113, 149, 168, 224, 166, 201,
- 129, 151, 147, 154, 136, 135, 140, 136, 152, 141,
- 120, 112, 140, 127, 161, 100, 132, 115, 118, 125,
- 115, 133, 115, 157, 144, 146, 114, 135, 127, 139,
- 138, 141, 135, 135, 137, 136, 147, 142, 143, 144,
- 139, 152, 142, 136, 147, 143, 177, 39, 125, 71,
- 147, 143, 66, 88, 132, 158, 123, 126, 116, 135,
- 119, 124, 128, 135, 133, 140, 137, 126, 137, 130,
- 155, 38, 149, 103, 130, 135, 139, 143, 127, 137,
- 135, 141, 138, 148, 131, 148, 136, 147, 132, 139,
- 136, 140, 115, 129, 115, 151, 136, 160, 87, 131,
- 157, 176, 150, 164, 140, 141, 135, 119, 137, 133,
- 141, 140, 140, 139, 134, 134, 142, 144, 131, 132,
- 131, 134, 131, 132, 116, 114, 129, 133, 205, 207,
- 130, 133, 160, 170, 137, 127, 124, 112, 158, 146,
- 155, 137, 134, 136, 137, 142, 177, 184, 149, 152,
- 135, 134, 133, 132, 135, 129, 144, 136, 139, 134,
- 161, 155, 126, 109, 215, 186, 177, 153, 160, 149,
- 139, 139, 136, 140, 140, 142, 186, 71, 129, 144,
- 131, 165, 142, 152, 140, 151, 141, 143, 137, 139,
- 144, 138, 150, 135, 133, 126, 136, 143, 99, 152,
- 139, 131, 190, 118, 122, 147, 134, 155, 136, 143,
- 138, 135, 137, 132, 147, 144, 150, 144, 138, 134,
- 129, 133, 130, 138, 56, 175, 129, 166, 147, 165,
- 140, 138, 144, 137, 141, 133, 150, 139, 129, 135,
- 40, 83, 126, 130, 110, 120, 100, 110, 126, 128,
- 141, 142, 217, 175, 172, 151, 146, 153, 125, 132,
- 128, 137, 141, 141, 145, 145, 140, 133, 132, 131,
- 129, 144, 128, 177, 133, 195, 147, 120, 138, 131,
- 161, 114, 166, 134, 162, 118, 161, 115, 155, 129,
- 137, 136, 141, 129, 141, 132, 55, 168, 121, 126,
- 136, 139, 120, 133, 149, 147, 132, 141, 131, 136,
- 147, 150, 151, 132, 101, 31, 117, 101, 129, 132,
- 122, 138, 128, 137, 140, 170, 131, 143, 131, 134,
- 149, 192, 122, 158, 136, 146, 133, 166, 143, 141,
- 141, 136, 141, 129, 125, 155, 140, 138, 137, 131,
- 111, 112, 131, 132, 120, 127, 149, 148, 151, 141,
- 156, 148, 133, 129, 127, 124, 144, 137, 142, 139,
- 134, 133, 141, 138, 133, 135, 124, 96, 226, 152,
- 116, 108, 128, 105, 155, 130, 153, 138, 144, 139,
- 142, 141, 137, 135, 142, 143, 156, 162, 136, 89,
- 188, 145, 181, 152, 138, 146, 146, 154, 145, 149,
- 152, 133, 158, 133, 42, 153, 117, 144, 149, 139,
- 125, 139, 134, 128, 150, 128, 143, 125, 135, 132,
- 143, 141, 143, 141, 164, 173, 141, 142, 156, 155,
- 154, 154, 169, 170, 77, 80, 112, 105, 135, 134,
- 126, 143, 120, 172, 111, 144, 120, 154, 107, 153,
- 95, 134, 104, 134, 128, 116, 163, 131, 151, 136,
- 135, 133, 142, 143, 152, 204, 149, 112, 156, 128,
- 150, 126, 127, 129, 139, 175, 143, 141, 138, 135,
- 168, 148, 152, 105, 164, 121, 134, 122, 119, 109,
- 122, 148, 136, 143, 153, 132, 158, 148, 149, 150,
- 133, 131, 142, 141, 150, 149, 156, 173, 138, 155,
- 129, 144, 111, 107, 130, 129, 96, 89, 106, 104,
- 135, 135, 144, 146, 131, 153, 134, 154, 146, 166,
- 117, 138, 163, 187, 190, 216, 149, 156, 149, 152,
- 142, 142, 153, 154, 109, 145, 40, 102, 116, 126,
- 137, 139, 149, 157, 108, 124, 139, 146, 142, 147,
- 130, 126, 120, 111, 172, 146, 169, 136, 150, 135,
- 126, 96, 159, 143, 150, 122, 162, 129, 156, 142,
- 135, 142, 144, 138, 222, 109, 137, 145, 144, 142,
- 141, 143, 138, 136, 124, 150, 133, 144, 137, 145,
- 141, 144, 139, 144, 134, 154, 114, 136, 145, 173,
- 151, 215, 110, 115, 127, 134, 145, 150, 145, 144,
- 144, 142, 139, 131, 147, 132, 141, 119, 143, 106,
- 165, 41, 147, 129, 129, 144, 138, 135, 138, 140,
- 128, 150, 89, 163, 154, 115, 141, 127, 132, 145,
- 135, 157, 143, 145, 140, 141, 127, 135, 127, 129,
- 142, 147, 116, 147, 104, 162, 153, 143, 146, 130,
- 144, 110, 133, 123, 130, 137, 118, 198, 126, 152,
- 154, 146, 139, 127, 147, 112, 207, 151, 156, 136,
- 162, 137, 108, 121, 130, 135, 125, 131, 131, 134,
- 134, 134, 141, 144, 107, 143, 137, 144, 124, 136,
- 115, 147, 130, 157, 119, 167, 71, 144, 97, 128,
- 134, 138, 132, 133, 138, 138, 146, 146, 147, 131,
- 141, 138, 185, 65, 145, 123, 139, 130, 142, 128,
- 139, 136, 157, 147, 124, 119, 164, 148, 170, 154,
- 133, 130, 157, 148, 140, 141, 130, 135, 134, 137,
- 136, 137, 143, 144, 144, 144, 178, 186, 71, 73,
- 120, 118, 127, 124, 152, 151, 155, 146, 141, 138,
- 142, 143, 139, 143, 133, 134, 139, 140, 138, 135,
- 146, 141, 78, 198, 129, 139, 141, 141, 134, 141,
- 137, 136, 120, 120, 124, 118, 143, 148, 148, 152,
- 131, 143, 129, 137, 152, 158, 157, 160, 175, 178,
- 137, 139, 131, 133, 146, 152, 121, 147, 142, 143,
- 129, 136, 149, 145, 197, 114, 103, 141, 124, 140,
- 141, 140, 129, 129, 127, 130, 131, 124, 123, 117,
- 150, 139, 120, 109, 119, 120, 163, 163, 117, 121,
- 139, 139, 136, 136, 94, 74, 150, 145, 126, 127,
- 147, 150, 158, 162, 84, 74, 136, 129, 140, 132,
- 136, 135, 146, 145, 124, 116, 129, 120, 130, 129,
- 130, 109, 122, 111, 160, 141, 135, 113, 131, 121,
- 136, 135, 135, 135, 147, 147, 140, 140, 144, 145,
- 139, 142, 131, 137, 145, 145, 143, 153, 48, 49,
- 145, 143, 151, 147, 158, 146, 135, 124, 124, 116,
- 159, 140, 131, 126, 123, 120, 103, 117, 113, 119,
- 148, 146, 128, 124, 123, 126, 123, 120, 158, 141,
- 148, 137, 146, 143, 125, 143, 89, 107, 116, 123,
- 149, 147, 141, 139, 149, 153, 118, 121, 139, 138,
- 105, 119, 168, 147, 139, 141, 143, 138, 133, 130,
- 126, 126, 143, 142, 146, 144, 124, 123, 143, 145,
- 149, 148, 147, 141, 151, 143, 118, 113, 175, 171
-};
-
-static const uint8_t wmavoice_dq_lsp16r1[0x500] = {
- 147, 145, 193, 168, 188, 156, 141, 145, 141, 139,
- 148, 149, 148, 149, 153, 157, 144, 144, 152, 152,
- 141, 145, 153, 143, 243, 134, 151, 133, 166, 135,
- 150, 149, 135, 132, 32, 39, 110, 111, 109, 114,
- 126, 127, 147, 146, 177, 169, 162, 156, 210, 187,
- 141, 147, 95, 150, 127, 155, 108, 133, 139, 148,
- 138, 138, 140, 140, 147, 146, 134, 130, 136, 134,
- 147, 146, 142, 150, 62, 174, 126, 151, 122, 156,
- 154, 156, 179, 184, 115, 107, 105, 99, 127, 124,
- 146, 131, 140, 44, 132, 125, 156, 146, 153, 153,
- 136, 137, 145, 144, 141, 139, 158, 152, 138, 132,
- 145, 145, 147, 145, 146, 141, 144, 140, 110, 97,
- 140, 141, 143, 142, 130, 123, 127, 117, 126, 120,
- 147, 146, 161, 155, 169, 135, 122, 117, 166, 155,
- 144, 144, 142, 142, 125, 122, 137, 128, 194, 172,
- 127, 85, 148, 143, 153, 141, 147, 147, 140, 143,
- 118, 140, 0, 69, 51, 60, 111, 123, 137, 135,
- 146, 146, 164, 165, 207, 214, 145, 143, 149, 147,
- 178, 168, 197, 170, 134, 154, 148, 159, 115, 140,
- 103, 118, 13, 38, 139, 138, 135, 138, 140, 141,
- 144, 144, 140, 140, 150, 150, 156, 157, 164, 171,
- 143, 143, 140, 142, 118, 120, 172, 172, 160, 163,
- 146, 147, 150, 151, 176, 176, 230, 237, 153, 153,
- 168, 156, 173, 149, 164, 148, 162, 146, 178, 158,
- 147, 145, 143, 145, 111, 126, 111, 130, 89, 118,
- 153, 158, 122, 120, 142, 125, 124, 105, 148, 138,
- 145, 144, 156, 151, 193, 154, 146, 147, 119, 135,
- 142, 141, 145, 145, 152, 147, 142, 141, 146, 146,
- 139, 138, 154, 154, 148, 150, 147, 149, 144, 145,
- 134, 134, 141, 140, 135, 134, 145, 147, 160, 163,
- 144, 145, 149, 146, 115, 67, 127, 119, 141, 135,
- 145, 141, 130, 124, 143, 144, 151, 165, 141, 144,
- 154, 152, 160, 136, 115, 82, 64, 71, 64, 65,
- 143, 143, 151, 149, 240, 251, 165, 173, 173, 179,
- 148, 134, 156, 55, 160, 105, 133, 91, 129, 96,
- 149, 149, 145, 144, 160, 154, 171, 159, 140, 142,
- 154, 163, 178, 244, 147, 140, 153, 150, 137, 121,
- 145, 144, 145, 146, 138, 139, 149, 152, 189, 198,
- 148, 148, 156, 158, 168, 182, 165, 182, 172, 201,
- 143, 142, 99, 92, 152, 152, 143, 143, 127, 127,
- 165, 148, 173, 124, 113, 122, 134, 142, 127, 142,
- 124, 126, 137, 137, 131, 132, 144, 142, 141, 138,
- 172, 176, 138, 111, 152, 136, 167, 154, 156, 137,
- 140, 150, 78, 145, 158, 157, 161, 154, 155, 147,
- 153, 164, 156, 191, 129, 109, 153, 146, 153, 141,
- 138, 137, 141, 138, 115, 94, 144, 141, 155, 147,
- 144, 142, 144, 137, 168, 113, 141, 134, 145, 137,
- 146, 144, 150, 148, 140, 155, 103, 178, 137, 149,
- 145, 147, 148, 153, 175, 201, 138, 146, 110, 108,
- 143, 146, 124, 134, 124, 127, 164, 158, 127, 135,
- 145, 146, 150, 150, 145, 147, 95, 80, 150, 151,
- 149, 149, 162, 162, 144, 152, 170, 169, 145, 154,
- 145, 149, 143, 146, 142, 145, 152, 146, 160, 98,
- 141, 141, 153, 153, 140, 137, 131, 131, 145, 146,
- 133, 132, 127, 124, 158, 150, 173, 164, 178, 167,
- 146, 146, 154, 155, 117, 127, 143, 147, 147, 156,
- 142, 143, 144, 145, 146, 152, 170, 199, 151, 165,
- 146, 147, 139, 140, 147, 149, 132, 134, 147, 149,
- 138, 139, 142, 143, 162, 188, 145, 149, 160, 164,
- 150, 150, 139, 139, 143, 142, 146, 146, 137, 138,
- 142, 142, 141, 140, 152, 153, 164, 171, 110, 112,
- 139, 139, 143, 143, 138, 138, 142, 142, 143, 143,
- 137, 140, 142, 142, 145, 141, 149, 141, 182, 135,
- 146, 146, 150, 150, 144, 145, 150, 151, 135, 137,
- 137, 145, 51, 62, 68, 54, 69, 57, 62, 41,
- 137, 139, 139, 144, 135, 150, 225, 232, 208, 197,
- 136, 135, 141, 143, 145, 150, 160, 169, 213, 247,
- 142, 137, 72, 54, 110, 107, 105, 107, 127, 130,
- 145, 143, 169, 155, 219, 174, 195, 164, 183, 157,
- 155, 157, 239, 232, 169, 164, 170, 172, 156, 159,
- 142, 143, 136, 144, 59, 100, 139, 142, 130, 138,
- 147, 146, 150, 161, 128, 235, 143, 155, 146, 167,
- 154, 149, 128, 151, 42, 149, 55, 136, 59, 127,
- 128, 126, 74, 92, 143, 153, 140, 150, 166, 176,
- 146, 152, 150, 145, 140, 100, 140, 105, 124, 59,
- 195, 191, 146, 148, 144, 136, 136, 133, 129, 122,
- 133, 148, 40, 147, 102, 140, 123, 148, 118, 136,
- 143, 143, 150, 148, 184, 153, 160, 147, 166, 149,
- 58, 68, 127, 135, 141, 145, 143, 147, 150, 151,
- 140, 143, 137, 137, 120, 114, 71, 65, 125, 123,
- 153, 148, 215, 159, 136, 135, 150, 146, 150, 150,
- 148, 138, 166, 94, 150, 145, 145, 139, 147, 145,
- 146, 147, 150, 139, 171, 63, 158, 142, 153, 133,
- 147, 148, 143, 143, 76, 72, 155, 159, 164, 176,
- 149, 149, 173, 195, 145, 165, 138, 144, 150, 167,
- 180, 169, 146, 151, 146, 166, 147, 166, 149, 171,
- 157, 156, 168, 166, 147, 149, 121, 122, 116, 124,
- 145, 145, 147, 148, 172, 189, 168, 180, 144, 146,
- 139, 145, 141, 150, 115, 172, 141, 146, 143, 148,
- 145, 145, 142, 143, 145, 147, 138, 143, 58, 73,
- 141, 142, 146, 145, 163, 149, 218, 161, 147, 132,
- 152, 147, 146, 147, 140, 150, 141, 152, 89, 150,
- 78, 134, 135, 137, 139, 142, 140, 137, 137, 130,
- 144, 144, 152, 151, 145, 140, 181, 170, 191, 168,
- 164, 166, 136, 148, 112, 124, 139, 144, 146, 149,
- 142, 151, 113, 182, 137, 150, 143, 156, 138, 147,
- 154, 156, 108, 102, 118, 119, 133, 139, 113, 111,
- 145, 144, 150, 147, 175, 151, 104, 106, 116, 114,
- 143, 144, 151, 157, 151, 191, 135, 113, 138, 123,
- 146, 146, 155, 157, 106, 145, 132, 127, 140, 125,
- 161, 165, 146, 150, 151, 154, 139, 140, 142, 143,
- 144, 148, 145, 149, 147, 138, 168, 104, 146, 136,
- 138, 140, 91, 108, 111, 110, 145, 140, 158, 154,
- 130, 112, 122, 118, 136, 135, 119, 118, 141, 140,
- 147, 146, 146, 145, 138, 138, 182, 188, 132, 132,
- 144, 144, 156, 155, 168, 172, 123, 128, 144, 151,
- 142, 140, 145, 145, 137, 144, 141, 152, 128, 188,
- 149, 149, 160, 161, 160, 160, 166, 163, 130, 107,
- 143, 143, 142, 142, 149, 149, 132, 132, 170, 174,
- 148, 148, 154, 153, 118, 111, 157, 155, 114, 109,
- 140, 139, 138, 137, 205, 187, 137, 133, 147, 144,
- 144, 145, 147, 149, 105, 125, 108, 117, 155, 162,
- 146, 146, 162, 157, 144, 122, 154, 143, 161, 139,
- 141, 142, 130, 131, 144, 144, 142, 141, 144, 142,
- 132, 132, 141, 141, 150, 151, 139, 141, 151, 153,
- 142, 142, 154, 154, 150, 150, 148, 148, 166, 165,
- 143, 142, 144, 144, 132, 132, 142, 144, 130, 128,
- 142, 142, 143, 143, 153, 153, 147, 142, 129, 125,
- 142, 141, 143, 142, 143, 147, 105, 122, 135, 140,
- 141, 140, 140, 140, 151, 151, 156, 155, 146, 146,
- 133, 134, 140, 142, 142, 145, 141, 146, 112, 133,
- 142, 142, 145, 145, 137, 138, 155, 157, 149, 150,
- 144, 144, 139, 138, 130, 128, 132, 131, 147, 147,
- 139, 140, 142, 143, 115, 121, 141, 143, 137, 141,
- 146, 146, 150, 150, 145, 144, 133, 133, 133, 135,
- 143, 144, 144, 144, 166, 167, 139, 142, 139, 140,
- 150, 149, 138, 138, 142, 140, 148, 147, 160, 155,
- 146, 146, 147, 147, 138, 137, 143, 142, 151, 150
-};
-
-static const uint8_t wmavoice_dq_lsp16r2[0x500] = {
- 98, 98, 119, 121, 109, 112, 128, 135, 115, 121,
- 159, 113, 113, 106, 127, 114, 101, 102, 105, 111,
- 161, 162, 137, 138, 161, 159, 152, 150, 150, 148,
- 128, 79, 131, 102, 142, 120, 133, 119, 130, 117,
- 121, 115, 142, 133, 186, 155, 179, 144, 169, 135,
- 107, 103, 106, 106, 122, 122, 111, 112, 112, 115,
- 127, 123, 118, 115, 128, 125, 123, 119, 115, 109,
- 124, 130, 117, 126, 121, 133, 84, 144, 99, 114,
- 122, 125, 123, 131, 124, 135, 176, 200, 158, 176,
- 68, 74, 86, 87, 117, 115, 119, 116, 135, 128,
- 115, 116, 102, 104, 119, 123, 133, 148, 102, 109,
- 71, 121, 106, 117, 107, 127, 106, 122, 100, 110,
- 117, 115, 129, 128, 87, 84, 116, 116, 151, 157,
- 116, 128, 110, 117, 119, 134, 100, 114, 120, 129,
- 142, 141, 146, 151, 94, 91, 114, 114, 118, 118,
- 114, 112, 112, 109, 115, 112, 123, 123, 147, 148,
- 110, 164, 106, 152, 110, 158, 106, 151, 105, 135,
- 85, 51, 71, 27, 71, 34, 74, 45, 85, 53,
- 145, 134, 140, 130, 136, 134, 118, 122, 118, 126,
- 117, 84, 121, 81, 106, 80, 109, 106, 121, 127,
- 95, 94, 112, 110, 90, 94, 109, 107, 114, 109,
- 117, 118, 118, 123, 107, 107, 86, 93, 29, 31,
- 125, 112, 104, 60, 121, 111, 127, 116, 133, 130,
- 118, 117, 148, 145, 122, 126, 124, 127, 90, 91,
- 113, 110, 119, 118, 152, 147, 115, 112, 132, 131,
- 129, 140, 98, 112, 73, 85, 109, 115, 122, 126,
- 123, 122, 122, 122, 126, 125, 137, 140, 203, 210,
- 164, 176, 114, 114, 125, 122, 119, 112, 125, 120,
- 124, 122, 118, 115, 95, 96, 141, 144, 132, 131,
- 127, 130, 132, 134, 116, 114, 122, 123, 137, 134,
- 111, 111, 112, 116, 106, 118, 77, 101, 104, 115,
- 111, 111, 125, 126, 118, 121, 113, 115, 113, 113,
- 171, 170, 202, 199, 221, 206, 199, 184, 177, 167,
- 73, 90, 61, 93, 43, 74, 51, 71, 51, 72,
- 130, 130, 140, 137, 134, 132, 164, 160, 118, 111,
- 123, 136, 133, 154, 130, 158, 106, 110, 110, 114,
- 97, 97, 91, 94, 70, 69, 125, 123, 141, 140,
- 119, 100, 116, 77, 111, 67, 105, 52, 95, 34,
- 100, 122, 90, 124, 68, 120, 43, 117, 50, 112,
- 130, 129, 192, 188, 123, 118, 124, 117, 121, 115,
- 122, 111, 129, 111, 157, 85, 125, 109, 125, 119,
- 143, 152, 119, 128, 114, 116, 129, 136, 148, 157,
- 119, 117, 115, 115, 150, 148, 163, 154, 109, 102,
- 120, 126, 73, 119, 106, 121, 102, 122, 96, 113,
- 84, 83, 117, 115, 122, 117, 154, 143, 159, 142,
- 118, 122, 114, 117, 115, 122, 114, 130, 99, 156,
- 123, 120, 122, 116, 100, 81, 99, 91, 121, 112,
- 139, 131, 164, 142, 132, 119, 145, 133, 157, 141,
- 112, 109, 118, 116, 142, 134, 108, 110, 96, 99,
- 111, 110, 113, 112, 111, 104, 98, 94, 131, 131,
- 115, 114, 121, 118, 120, 115, 173, 148, 123, 117,
- 121, 124, 122, 124, 140, 146, 78, 82, 96, 93,
- 86, 90, 124, 125, 121, 123, 105, 106, 134, 135,
- 107, 109, 132, 141, 100, 95, 113, 114, 102, 105,
- 113, 130, 98, 145, 116, 115, 124, 117, 115, 105,
- 120, 123, 89, 87, 109, 108, 102, 101, 117, 117,
- 113, 122, 132, 138, 77, 116, 86, 99, 118, 126,
- 123, 120, 117, 111, 124, 119, 129, 118, 63, 58,
- 141, 135, 108, 106, 109, 111, 108, 110, 135, 138,
- 117, 114, 134, 127, 139, 129, 138, 130, 126, 122,
- 121, 118, 124, 121, 133, 130, 98, 85, 130, 123,
- 147, 129, 118, 112, 148, 130, 136, 123, 148, 131,
- 113, 112, 123, 118, 123, 115, 147, 95, 117, 110,
- 118, 119, 112, 113, 112, 113, 119, 119, 120, 120,
- 158, 133, 198, 145, 188, 129, 197, 137, 195, 133,
- 132, 140, 140, 139, 158, 156, 223, 217, 233, 233,
- 48, 56, 34, 37, 82, 84, 102, 102, 108, 110,
- 120, 142, 136, 169, 146, 195, 136, 186, 140, 182,
- 196, 186, 158, 155, 142, 134, 132, 125, 120, 119,
- 97, 105, 72, 75, 82, 85, 81, 84, 107, 109,
- 67, 121, 43, 119, 69, 124, 87, 129, 88, 128,
- 53, 57, 93, 98, 91, 94, 93, 98, 104, 104,
- 124, 123, 133, 133, 182, 181, 119, 121, 114, 116,
- 128, 105, 134, 112, 131, 72, 119, 59, 111, 84,
- 132, 142, 145, 180, 124, 132, 131, 143, 122, 134,
- 88, 85, 103, 103, 136, 140, 131, 143, 114, 132,
- 116, 57, 113, 57, 121, 76, 126, 80, 118, 86,
- 127, 112, 127, 97, 131, 100, 149, 91, 163, 86,
- 122, 119, 128, 121, 128, 116, 142, 127, 173, 139,
- 162, 116, 166, 107, 149, 103, 152, 107, 141, 108,
- 114, 113, 118, 116, 56, 43, 90, 90, 105, 105,
- 132, 134, 110, 107, 106, 105, 82, 84, 84, 84,
- 102, 106, 79, 89, 99, 99, 127, 129, 114, 118,
- 139, 157, 116, 123, 116, 123, 87, 89, 110, 113,
- 119, 126, 97, 97, 155, 163, 142, 153, 143, 146,
- 117, 114, 66, 67, 125, 126, 127, 128, 114, 113,
- 111, 114, 127, 133, 123, 132, 143, 162, 133, 148,
- 105, 108, 114, 114, 110, 109, 57, 48, 109, 106,
- 113, 130, 104, 131, 88, 139, 102, 169, 100, 172,
- 129, 114, 150, 97, 114, 112, 117, 119, 109, 116,
- 92, 107, 96, 116, 90, 125, 101, 122, 125, 140,
- 125, 133, 122, 129, 136, 153, 125, 135, 131, 139,
- 84, 71, 129, 123, 135, 120, 114, 103, 112, 101,
- 108, 121, 115, 156, 106, 123, 116, 131, 127, 139,
- 137, 147, 109, 117, 119, 126, 135, 144, 117, 119,
- 120, 127, 76, 105, 111, 116, 120, 125, 141, 138,
- 107, 104, 162, 155, 135, 130, 127, 123, 127, 121,
- 102, 104, 84, 87, 112, 115, 97, 102, 78, 82,
- 119, 118, 120, 123, 91, 105, 114, 119, 119, 126,
- 130, 126, 134, 126, 158, 134, 133, 99, 116, 100,
- 125, 122, 145, 143, 126, 117, 98, 96, 121, 120,
- 152, 148, 131, 126, 130, 129, 126, 119, 87, 87,
- 131, 131, 139, 137, 101, 102, 104, 105, 86, 83,
- 92, 89, 111, 105, 121, 115, 137, 124, 96, 84,
- 100, 96, 122, 119, 107, 108, 93, 96, 79, 82,
- 128, 123, 108, 106, 123, 120, 150, 150, 143, 140,
- 121, 120, 97, 99, 79, 80, 116, 116, 88, 90,
- 128, 131, 101, 97, 140, 140, 117, 116, 116, 118,
- 137, 135, 100, 91, 115, 112, 134, 121, 107, 99,
- 120, 122, 122, 125, 124, 126, 136, 141, 89, 95,
- 103, 119, 103, 116, 122, 139, 125, 137, 152, 170,
- 121, 122, 124, 124, 98, 97, 137, 140, 96, 92,
- 115, 113, 136, 136, 128, 132, 122, 124, 151, 158,
- 100, 107, 121, 131, 131, 158, 119, 130, 113, 114,
- 114, 109, 148, 130, 103, 95, 127, 116, 137, 120,
- 103, 108, 97, 97, 133, 128, 113, 109, 136, 128,
- 125, 124, 118, 118, 122, 121, 101, 99, 157, 152,
- 138, 134, 124, 115, 113, 101, 123, 112, 124, 110,
- 116, 113, 128, 121, 119, 110, 124, 113, 128, 67,
- 114, 118, 114, 123, 109, 121, 102, 123, 56, 116,
- 117, 111, 112, 99, 124, 114, 112, 79, 114, 88,
- 112, 113, 115, 117, 126, 127, 130, 132, 123, 122,
- 111, 104, 111, 102, 112, 102, 129, 118, 129, 115,
- 123, 124, 130, 133, 114, 117, 125, 127, 112, 117,
- 124, 125, 119, 120, 117, 116, 105, 104, 110, 110,
- 125, 124, 118, 116, 124, 123, 124, 121, 133, 132,
- 111, 111, 124, 124, 120, 119, 116, 116, 134, 130,
- 114, 116, 112, 113, 109, 111, 116, 118, 95, 98
-};
-
-static const uint8_t wmavoice_dq_lsp16r3[0x600] = {
- 84, 82, 95, 94, 125, 131, 98, 102, 94, 93, 104, 104,
- 127, 113, 87, 77, 125, 114, 109, 94, 94, 91, 106, 105,
- 168, 125, 163, 120, 128, 100, 119, 99, 108, 97, 108, 106,
- 86, 85, 128, 125, 79, 73, 103, 102, 123, 123, 116, 117,
- 84, 76, 135, 131, 133, 133, 129, 130, 125, 123, 115, 114,
- 94, 97, 79, 81, 115, 115, 94, 93, 128, 127, 126, 125,
- 124, 111, 105, 114, 104, 117, 109, 110, 124, 125, 118, 117,
- 107, 110, 106, 110, 93, 93, 149, 148, 118, 119, 111, 110,
- 147, 157, 143, 156, 134, 136, 118, 121, 106, 107, 105, 105,
- 114, 83, 114, 46, 106, 53, 110, 83, 107, 94, 105, 103,
- 92, 90, 109, 106, 172, 160, 114, 110, 109, 110, 110, 109,
- 90, 98, 98, 109, 102, 98, 97, 92, 100, 100, 101, 102,
- 123, 117, 124, 98, 82, 80, 117, 115, 112, 110, 109, 108,
- 107, 111, 100, 115, 105, 120, 104, 105, 83, 82, 95, 96,
- 109, 120, 72, 71, 97, 104, 69, 74, 99, 102, 118, 117,
- 137, 133, 142, 135, 105, 110, 121, 121, 125, 122, 114, 112,
- 151, 186, 115, 132, 103, 111, 100, 104, 99, 101, 104, 105,
- 18, 38, 56, 65, 76, 83, 85, 91, 101, 103, 108, 110,
- 144, 135, 126, 121, 115, 113, 79, 80, 118, 117, 117, 117,
- 117, 124, 115, 115, 126, 113, 130, 116, 112, 106, 108, 105,
- 77, 76, 76, 80, 109, 109, 125, 129, 130, 133, 116, 118,
- 96, 86, 109, 99, 102, 69, 84, 69, 107, 103, 114, 113,
- 78, 118, 82, 114, 84, 129, 69, 112, 78, 98, 96, 103,
- 89, 137, 96, 111, 105, 97, 93, 93, 101, 105, 105, 105,
- 141, 123, 102, 93, 91, 79, 87, 81, 102, 99, 109, 108,
- 94, 92, 124, 123, 130, 134, 100, 107, 71, 75, 92, 91,
- 94, 104, 107, 83, 106, 101, 113, 114, 122, 122, 114, 114,
- 118, 124, 103, 106, 95, 116, 90, 93, 107, 104, 109, 107,
- 116, 118, 76, 72, 88, 88, 132, 132, 140, 141, 116, 116,
- 90, 81, 111, 95, 139, 97, 123, 96, 112, 100, 110, 108,
- 112, 116, 133, 140, 112, 120, 80, 85, 55, 55, 85, 84,
- 125, 94, 111, 104, 116, 103, 112, 86, 93, 84, 99, 98,
- 180, 179, 197, 197, 169, 163, 149, 146, 130, 124, 116, 115,
- 76, 47, 36, 11, 43, 28, 66, 53, 82, 80, 102, 99,
- 119, 123, 176, 201, 113, 120, 112, 111, 103, 105, 106, 110,
- 145, 114, 112, 89, 120, 93, 123, 104, 131, 123, 113, 111,
- 97, 109, 82, 106, 75, 104, 103, 115, 120, 124, 111, 114,
- 114, 111, 113, 105, 34, 33, 63, 63, 105, 106, 122, 122,
- 51, 41, 96, 92, 125, 125, 118, 118, 118, 119, 113, 113,
- 111, 180, 108, 178, 107, 171, 110, 160, 105, 136, 102, 117,
- 76, 79, 90, 92, 80, 88, 88, 93, 123, 124, 122, 122,
- 131, 128, 123, 122, 151, 158, 108, 107, 129, 128, 119, 119,
- 97, 99, 114, 120, 121, 125, 151, 157, 82, 89, 95, 96,
- 128, 94, 130, 95, 149, 113, 149, 120, 127, 115, 113, 109,
- 167, 171, 83, 80, 84, 79, 106, 106, 112, 110, 107, 108,
- 130, 139, 81, 88, 107, 106, 112, 112, 119, 118, 114, 112,
- 108, 105, 100, 98, 120, 116, 122, 117, 38, 37, 72, 73,
- 118, 125, 110, 120, 114, 126, 135, 142, 139, 142, 118, 119,
- 119, 119, 156, 145, 78, 75, 94, 94, 112, 110, 113, 113,
- 101, 108, 98, 104, 103, 109, 117, 118, 167, 167, 132, 132,
- 116, 108, 118, 111, 149, 136, 85, 74, 95, 92, 113, 112,
- 74, 69, 104, 107, 96, 100, 117, 121, 103, 105, 103, 103,
- 110, 106, 111, 101, 82, 72, 96, 92, 132, 130, 120, 121,
- 116, 113, 138, 139, 104, 103, 131, 131, 68, 69, 92, 92,
- 97, 97, 146, 151, 122, 132, 97, 95, 117, 116, 115, 116,
- 139, 134, 110, 110, 124, 129, 100, 110, 86, 91, 100, 102,
- 116, 136, 88, 90, 137, 139, 103, 114, 114, 117, 111, 110,
- 82, 83, 104, 102, 97, 99, 97, 97, 58, 56, 84, 84,
- 83, 122, 76, 105, 112, 126, 120, 134, 112, 120, 108, 110,
- 114, 128, 73, 90, 72, 76, 98, 100, 95, 96, 101, 102,
- 101, 108, 118, 126, 94, 102, 81, 83, 138, 140, 131, 130,
- 88, 100, 112, 124, 105, 106, 122, 123, 121, 121, 114, 114,
- 76, 108, 73, 83, 93, 95, 110, 111, 98, 99, 103, 103,
- 105, 112, 98, 108, 114, 95, 117, 98, 120, 116, 116, 115,
- 231, 238, 150, 146, 124, 126, 115, 122, 117, 121, 112, 112,
- 74, 73, 72, 74, 60, 61, 62, 61, 85, 85, 101, 101,
- 67, 69, 50, 51, 83, 83, 110, 110, 118, 113, 112, 111,
- 199, 124, 184, 115, 176, 117, 165, 120, 138, 115, 116, 114,
- 52, 116, 36, 107, 49, 99, 72, 106, 91, 107, 104, 105,
- 140, 138, 141, 135, 154, 147, 166, 159, 139, 136, 116, 115,
- 130, 119, 180, 157, 183, 149, 136, 121, 119, 114, 111, 110,
- 104, 129, 113, 154, 111, 148, 108, 132, 105, 117, 106, 111,
- 114, 35, 99, 65, 113, 94, 110, 98, 111, 107, 107, 106,
- 106, 110, 128, 135, 162, 175, 143, 155, 115, 116, 109, 109,
- 168, 155, 112, 109, 125, 125, 126, 122, 126, 124, 111, 112,
- 128, 96, 160, 77, 151, 77, 121, 80, 114, 94, 107, 103,
- 97, 104, 101, 116, 56, 79, 74, 83, 92, 95, 104, 106,
- 63, 68, 76, 77, 110, 107, 96, 90, 85, 83, 97, 96,
- 116, 110, 46, 42, 103, 100, 122, 120, 102, 101, 104, 104,
- 106, 101, 109, 98, 96, 61, 67, 35, 72, 61, 96, 93,
- 88, 80, 81, 76, 113, 110, 144, 143, 88, 89, 93, 94,
- 95, 96, 100, 101, 136, 132, 166, 160, 148, 147, 115, 116,
- 80, 78, 130, 129, 120, 108, 91, 85, 95, 91, 104, 102,
- 151, 147, 106, 109, 110, 110, 64, 69, 68, 67, 96, 96,
- 90, 166, 97, 128, 99, 120, 104, 121, 109, 118, 105, 109,
- 122, 138, 110, 143, 75, 97, 83, 94, 89, 94, 102, 103,
- 136, 142, 103, 110, 83, 89, 99, 101, 138, 138, 120, 122,
- 168, 88, 105, 90, 109, 107, 110, 111, 106, 105, 103, 102,
- 68, 72, 102, 104, 92, 102, 65, 75, 89, 94, 106, 106,
- 83, 74, 93, 85, 73, 66, 106, 102, 100, 92, 99, 97,
- 93, 99, 101, 96, 116, 112, 125, 120, 88, 88, 96, 96,
- 44, 98, 93, 115, 104, 116, 103, 107, 112, 113, 107, 107,
- 93, 83, 105, 99, 93, 84, 127, 125, 141, 143, 117, 118,
- 106, 103, 126, 121, 137, 123, 123, 114, 147, 142, 127, 123,
- 103, 110, 89, 91, 121, 124, 66, 71, 68, 69, 96, 97,
- 114, 105, 68, 65, 69, 67, 96, 94, 131, 130, 123, 121,
- 111, 104, 130, 121, 95, 95, 72, 74, 88, 88, 105, 104,
- 135, 124, 110, 98, 114, 111, 159, 158, 111, 113, 104, 106,
- 103, 108, 94, 107, 55, 57, 115, 118, 121, 122, 111, 111,
- 97, 99, 106, 111, 119, 126, 59, 62, 111, 112, 124, 125,
- 86, 93, 100, 110, 118, 145, 113, 132, 120, 125, 112, 112,
- 101, 115, 78, 149, 81, 114, 111, 121, 108, 112, 107, 108,
- 104, 104, 94, 96, 84, 83, 135, 132, 71, 69, 88, 86,
- 100, 98, 62, 60, 81, 80, 90, 89, 63, 66, 89, 90,
- 123, 116, 108, 99, 90, 86, 91, 92, 65, 65, 88, 88,
- 84, 79, 115, 109, 123, 111, 99, 99, 134, 136, 121, 123,
- 127, 137, 84, 88, 104, 107, 128, 130, 74, 69, 89, 89,
- 118, 112, 143, 132, 141, 131, 113, 113, 99, 102, 104, 105,
- 117, 115, 100, 99, 131, 126, 90, 88, 145, 144, 128, 127,
- 112, 114, 131, 133, 85, 84, 118, 119, 151, 152, 117, 117,
- 110, 105, 162, 140, 116, 107, 140, 134, 124, 122, 113, 113,
- 107, 110, 124, 133, 98, 103, 99, 107, 109, 113, 112, 112,
- 115, 105, 82, 77, 125, 122, 133, 132, 118, 120, 113, 113,
- 101, 88, 84, 80, 97, 99, 91, 91, 94, 94, 101, 100,
- 121, 86, 139, 108, 106, 93, 103, 99, 112, 108, 108, 107,
- 113, 83, 105, 102, 125, 125, 114, 115, 110, 112, 108, 109,
- 93, 112, 113, 121, 125, 131, 101, 101, 107, 109, 111, 111,
- 98, 102, 117, 126, 80, 84, 107, 109, 83, 84, 96, 97,
- 132, 136, 112, 118, 94, 93, 121, 118, 99, 98, 102, 103,
- 122, 127, 128, 133, 118, 104, 102, 88, 100, 94, 104, 102,
- 115, 116, 102, 105, 140, 142, 135, 130, 90, 88, 100, 101,
- 94, 86, 112, 112, 89, 121, 92, 101, 109, 108, 110, 112,
- 99, 93, 129, 114, 109, 99, 131, 119, 102, 97, 103, 103,
- 103, 116, 124, 101, 115, 95, 105, 101, 94, 91, 100, 100,
- 113, 90, 94, 86, 92, 92, 117, 111, 106, 103, 106, 105,
- 115, 99, 110, 91, 107, 104, 81, 90, 108, 113, 112, 113,
- 113, 114, 93, 101, 101, 102, 101, 126, 93, 103, 104, 105,
- 117, 106, 124, 107, 104, 119, 108, 133, 104, 111, 104, 106
-};
-
-static const float wmavoice_lsp10_intercoeff_a[32][2][10] = {
- { { 0.5108627081, 0.0480548441, -1.5099149644, 0.6736935377,
- 0.7536551058, 0.7651474178, 0.8510628343, 0.6667704582,
- 0.7576012611, 0.7091397047 },
- { 0.1351471841, -0.1965375543, -1.6313457787, 0.3218626380,
- 0.4132472873, 0.4663473070, 0.5805781186, 0.3962165117,
- 0.4818550050, 0.4907165468 } },
- { { 0.8556320667, 0.7774704993, -0.0175759494, -0.1882298589,
- 0.1892164350, 0.4850396216, 0.6270319819, 0.6327089071,
- 0.6513319910, 0.6075088978 },
- { 0.4374088347, 0.3505934179, -0.0762144327, -0.2830760479,
- -0.0626451969, 0.1500318050, 0.2602472305, 0.2781780064,
- 0.3167395592, 0.3596626520 } },
- { { 0.1899779737, 0.0650856197, 0.1699010432, 0.9122628570,
- 0.9097705483, 0.7433397174, 0.6304935217, 0.5164704025,
- 0.4174703658, 0.5215242505 },
- { 0.0704856217, 0.0169009864, 0.0188394487, 0.5587704182,
- 0.5194473267, 0.3539164960, 0.2426626086, 0.1721164286,
- 0.1371548772, 0.2594856918 } },
- { { 0.8858859241, 0.9100474715, 0.8921859264, 0.9332397878,
- 1.0225475132, 1.0555013716, 1.0983552337, 1.1290244758,
- 1.0363244414, 0.9277705550 },
- { 0.4810934663, 0.5782935023, 0.6835935414, 0.7650781870,
- 0.9018090069, 0.9996321201, 1.0219936669, 1.0474705994,
- 0.9109474719, 0.7774704993 } },
- { { 0.4359549880, 0.2275702953, 0.0993548632, 0.1763395071,
- 0.1055856347, 0.1018471718, 0.1170087159, 0.1221317947,
- 0.1834010482, 0.2988780141 },
- { 0.1573702693, 0.1041317880, 0.0506856143, 0.0781702399,
- 0.0058932900, -0.0026913285, -0.0031067133, 0.0070702136,
- 0.0116394460, 0.0566394627 } },
- { { 0.8528628349, 0.8028782010, 0.4680088460, 0.9055474699,
- 1.3742399514, 1.1093629301, 0.4122780561, 0.4003703594,
- 0.6360319853, 0.6415704489 },
- { 0.4252934456, 0.3823703527, 0.1676856577, 0.5241550207,
- 1.1995706558, 0.9088013172, 0.1224087179, 0.0730471611,
- 0.3071857095, 0.3772472739 } },
- { { 0.5508781075, 0.2829549313, -0.0022067130, 0.1042702496,
- 1.0318244398, 1.3258476257, 1.3550630212, 0.9931936562,
- 0.7195243239, 0.6807550788 },
- { 0.2679318488, 0.0960317850, -0.1357529163, -0.1291759908,
- 0.6451012194, 0.9968628883, 0.9510321021, 0.6608166099,
- 0.3799472749, 0.3735780418 } },
- { { 0.9967244267, 1.0255244374, 0.9800398052, 0.7939474285,
- 0.8288397491, 0.8390166759, 0.8660166860, 0.9247936308,
- 0.9127474725, 0.8684397638 },
- { 0.7921474278, 0.9416859448, 0.8547320664, 0.5348165631,
- 0.6231550574, 0.6703012288, 0.6987550855, 0.8147858977,
- 0.7406397164, 0.6496012211 } },
- { { 0.1439394951, -0.3193529844, -0.2024914026, -0.1854606271,
- 0.0877240896, 0.1617318094, 0.3087087870, 0.3777318895,
- 0.3910242021, 0.4797780812 },
- { -0.0157067180, -0.1778452396, -0.1554836929, -0.1759760082,
- -0.0607759655, -0.0161221027, 0.0393317640, 0.0758856237,
- 0.1163856387, 0.1947548985 } },
- { { 1.1021629274, 0.9958244264, 0.4658626914, 0.3089164793,
- 0.3740626574, 0.2962472439, 0.3170857131, 0.2420395315,
- 0.2649549246, 0.2936857045 },
- { 0.4700857699, 0.1809087396, 0.0311625302, 0.0106009841,
- 0.0311625302, 0.0266625285, 0.0221625268, 0.0156548321,
- 0.0551163852, 0.1010164022 } },
- { { 0.2925087810, 0.3418011069, 0.7339243293, 0.7322627902,
- 0.7288704813, 0.7924935818, 0.7724166512, 0.7819012702,
- 0.8325782120, 0.7954705060 },
- { 0.0559471548, -0.0456144214, -0.0462374985, -0.1005144417,
- -0.0511528850, -0.0455451906, -0.0044220984, 0.0451471508,
- 0.1232394874, 0.2085318267 } },
- { { 0.2230702937, -0.9052532017, 1.2441552877, 1.0825706124,
- 0.9088705480, 0.8797243834, 0.8648397624, 0.8091089725,
- 0.7633474171, 0.7468704879 },
- { -0.2030452490, -1.4167303145, 1.3542322516, 0.8369397521,
- 0.6148473620, 0.5560704172, 0.5450627208, 0.4978473186,
- 0.4200319052, 0.4904396236 } },
- { { 0.6088242829, 0.5965704322, 0.6547242999, 0.8554936051,
- -0.2989298999, 0.2404472232, 0.3573780358, 0.7499166429,
- 0.7691628039, 0.6824858487 },
- { 0.2582395375, 0.2721549273, 0.3462318778, 0.4820626974,
- -0.4780299664, -0.0712990463, 0.0200163722, 0.4246703684,
- 0.4660011530, 0.4172626734 } },
- { { 1.1749937236, 1.0773090720, 1.0566782951, 1.0249013603,
- 0.9947167337, 0.9626628757, 0.9562244117, 0.9072782397,
- 0.7654243410, 0.6448935270 },
- { 1.1595552564, 0.9340013266, 0.3959395885, 0.3693549633,
- 0.3915780485, 0.3104395568, 0.3499011099, 0.2236933708,
- 0.1638087332, 0.1811856627 } },
- { { 0.9572628736, 0.9389859438, 0.6619243026, 0.6849089265,
- 0.7276935577, 0.7839781940, 0.7987243533, 0.7748397291,
- 0.7101089358, 0.7277627885 },
- { 0.5809935033, 0.5575934947, 0.3544703424, 0.3636780381,
- 0.3736472726, 0.4486242235, 0.4684934616, 0.4481396079,
- 0.3456780314, 0.4478626847 } },
- { { 0.1259394884, 1.3096476197, 1.0794552267, 1.0009475052,
- 0.9061013162, 0.9216782451, 0.8954397738, 0.9160013199,
- 0.8575012982, 0.7479089499 },
- { -0.3689222336, 1.5293861628, 0.7323320210, 0.4102703631,
- 0.3825780451, 0.2828164697, 0.2644010782, 0.2455010712,
- 0.2482010722, 0.2335241437 } },
- { { 0.5380704105, 0.1600702703, -0.0657605827, -0.2390452623,
- -0.3885837793, -0.4150299430, -0.3001760542, -0.1451683044,
- 0.1312010288, 0.2798395455 },
- { 0.2074933648, 0.0560163856, -0.0956682861, -0.2893068194,
- -0.3889991641, -0.3918376267, -0.3550068438, -0.2649375796,
- -0.0554451942, 0.1167317927 } },
- { { 0.6092396677, 0.5101011693, 0.4012011290, 0.5416011810,
- 0.5715781152, 0.6476627588, 0.6988243163, 0.7306012511,
- 0.7531704903, 0.6534781456 },
- { 0.2060395181, 0.1409625709, 0.1024702489, 0.1834010482,
- 0.1946856678, 0.2547779977, 0.3134857118, 0.3283011019,
- 0.3837549686, 0.3501780331 } },
- { { 0.4516011477, 0.5351627171, 0.8068243563, 0.7049858570,
- 0.7165473998, 0.6005858183, 0.4870473146, 0.2500010729,
- 0.3132087886, 0.4462703764 },
- { 0.1053087115, 0.1348702610, 0.4457857609, 0.3499703407,
- 0.3537780344, 0.2628780007, 0.1665087342, 0.0200856030,
- 0.0329625309, 0.1525241137 } },
- { { 0.7058166265, 0.7305320203, 1.1684860289, 1.4524707496,
- 1.3212091625, 1.2613245249, 1.1712552607, 1.1154552400,
- 1.0487167537, 0.9153782427 },
- { 0.2286087573, 0.2851703167, 1.2016475797, 1.5154707730,
- 1.2726091444, 1.1459167898, 0.9801090360, 0.9296397865,
- 0.8490551412, 0.6772243083 } },
- { { 0.6686396897, 0.5728935003, 0.4734780788, 0.6970243156,
- 0.5852165818, -0.0762836635, -0.2054683268, -0.1380375326,
- 0.1282933354, 0.3467164934 },
- { 0.2925087810, 0.2344933748, 0.1677548885, 0.2747856975,
- 0.2097087502, -0.2795452774, -0.3761222363, -0.3183837533,
- -0.0834836662, 0.1482318044 } },
- { { 0.6559704542, 0.7737320364, 0.9867551923, 0.9912551939,
- 0.9508936405, 0.9114320874, 0.8336859047, 0.7905551195,
- 0.7672935724, 0.7532397211 },
- { 0.1843702793, 0.2565087676, 0.7571858764, 0.7545551062,
- 0.6793704629, 0.5981627405, 0.5078165531, 0.4282011390,
- 0.3948318958, 0.4502165318 } },
- { { 0.4430857599, 0.6102781296, 0.8485012949, 0.8573628366,
- 0.9078320861, 0.9979705811, 1.0411013663, 1.0524552166,
- 1.0194321275, 0.9023628533 },
- { 0.0070009828, 0.0084548295, 0.1613856554, 0.3484472632,
- 0.4385857582, 0.5895088911, 0.6367935240, 0.6736935377,
- 0.7026320100, 0.5924165845 } },
- { { 1.0532859862, 1.1059706211, 1.1311013997, 1.1250783205,
- 1.0425552130, 0.9993551970, 0.9673013389, 0.9386397898,
- 0.8836013079, 0.8336859047 },
- { 0.9791398048, 1.1481321752, 1.1275706291, 1.0082167387,
- 0.8809705377, 0.8031551242, 0.7287320197, 0.6496704519,
- 0.5211088657, 0.4734088480 } },
- { { -0.0251221061, -0.0443682671, 0.1282241046, 0.3850703537,
- 0.4252934456, 0.4547857642, 0.4690473080, 0.4873242378,
- 0.6001012027, 0.5882627368 },
- { -0.0562759638, -0.0246374905, 0.0070009828, 0.0971394777,
- 0.1232394874, 0.1278779507, 0.1302317977, 0.1462241113,
- 0.2073549032, 0.2446010709 } },
- { { 1.1749244928, 1.1155937016, 0.9236167073, 0.6288319826,
- 0.6515396833, 0.5391781032, 0.5398011804, 0.4997165501,
- 0.4066703618, 0.3998857439 },
- { 0.9403013289, 0.7346166372, 0.1841625869, 0.1319625676,
- 0.1395087242, 0.0857856274, 0.0952702463, 0.0860625505,
- 0.0829471648, 0.1132010221 } },
- { { 0.9047167003, 0.9840551913, 0.9933321178, 0.9360090196,
- 0.9164859354, 0.9213320911, 0.8701705337, 0.8815936148,
- 0.8414397538, 0.8188012838 },
- { 0.0961010158, -0.0147374868, 0.0202240646, 0.1002548635,
- 0.1407548785, 0.1837472022, 0.1858241260, 0.2064549029,
- 0.2228626013, 0.2859318554 } },
- { { 0.4034165144, 0.1918472052, 2.1959402561, 0.4763165414,
- 0.6577012241, 0.7036704719, 0.6626858413, 0.7650089562,
- 0.7702704966, 0.6543781459 },
- { 0.0940933228, -0.1222529113, 2.3491480052, 0.1385394931,
- 0.3052472472, 0.3665857315, 0.3350857198, 0.4722319245,
- 0.4313857555, 0.3846549690 } },
- { { 0.8215012848, 0.8613782227, 1.0399936736, 1.4082322717,
- 0.4075011313, 0.4091626704, 0.5230473280, 0.6101396680,
- 0.7510243356, 0.7237474024 },
- { 0.4810934663, 0.5670088828, 0.9207782447, 1.3007860780,
- 0.0453548431, 0.0858548582, 0.1803548932, 0.2790087759,
- 0.3974626660, 0.4581780732 } },
- { { 1.5921784937, 1.4987169206, 1.1321398616, 0.8235089779,
- 0.6888550818, 0.6621319950, 0.6192089021, 0.6533396840,
- 0.7196627855, 0.6549319923 },
- { 1.5911400318, 1.4768399894, 0.9358705580, 0.4674549997,
- 0.3522549570, 0.3144549429, 0.2985318601, 0.3559241891,
- 0.4061857462, 0.3958703578 } },
- { { 0.7975474298, 0.8712782264, 0.8974474669, 0.3008164763,
- 0.5562088788, 0.6655935347, 0.8921166956, 1.0918475389,
- 0.9544936419, 0.8554936051 },
- { 0.3769703507, 0.4930703938, 0.6619243026, -0.0382759571,
- 0.1766856611, 0.3015780151, 0.5952550471, 0.8903859258,
- 0.7395320237, 0.6205935180 } },
- { { 0.2206472158, 2.4467634261, 1.2920629978, 1.0239321291,
- 0.9014628530, 0.8552166820, 0.8219859004, 0.9005628526,
- 0.7614781857, 0.7763628066 },
- { -0.2722068131, 2.8967635930, 1.3039706945, 0.7695089579,
- 0.6132550538, 0.5701242685, 0.5737935007, 0.6533396840,
- 0.5422934890, 0.5150857866 } },
-};
-
-static const float wmavoice_lsp10_intercoeff_b[32][2][10] = {
- { { 0.4881048799, -0.1998192370, -0.3872502148, 0.0109423101,
- 0.0406953394, 0.1788437665, 0.1673750877, 0.3409781158,
- 0.4061202109, 0.5221177042 },
- { 0.1492218077, -0.1372330189, -0.2683691680, -0.0621950924,
- -0.0624572337, -0.0068177581, -0.0076041818, 0.0680235624,
- 0.1055752933, 0.1199930608 } },
- { { 0.7934338748, 0.0012430847, 0.4239458144, 0.5521328747,
- 0.6497149467, 0.6423749924, 0.7170197070, 0.7169541717,
- 0.7778364718, 0.8397018015 },
- { 0.2768190503, -0.0491535664, -0.0325731337, 0.0261465013,
- 0.0469867289, 0.0649434030, 0.0781815350, 0.1031504869,
- 0.1194687784, 0.2451654971 } },
- { { 0.7212139666, 0.1658677757, 0.0101558864, 0.5636015534,
- 1.3175852597, 1.1911676526, 1.1266809106, 0.8230558336,
- 0.8604109585, 0.8094900250 },
- { 0.3658815324, 0.0816549063, -0.2092563212, 0.1946377754,
- 1.0856558084, 0.9491457641, 0.8461242616, 0.5193652213,
- 0.5975488424, 0.5293265879 } },
- { { 0.9507186115, 0.9078585207, 0.8773190677, 0.8677509129,
- 0.8024122119, 0.8127667904, 0.8246286809, 0.8779088855,
- 0.9454102516, 0.9863698184 },
- { 0.6883807778, 0.6900191605, 0.7059442401, 0.6552854478,
- 0.5843107104, 0.5553441048, 0.5887671113, 0.6494528055,
- 0.7725936472, 0.7792782485 } },
- { { 0.2399882078, 0.1938513517, 0.4441962242, 0.4475385249,
- 0.3055235147, 0.1745184362, 0.1174371839, 0.0679580271,
- 0.0782470703, 0.1695377529 },
- { 0.0170370936, 0.0253600776, 0.2072205544, 0.1907711923,
- 0.1096384823, 0.0327000320, -0.0134368241, -0.0461389422,
- -0.0372916758, -0.0243156850 } },
- { { 0.5457104146, 0.3774812818, 0.5235594809, 0.2994287312,
- 0.2394639254, 0.5731041729, 0.9971176088, 1.1646913886,
- 0.9028123021, 0.7777709365 },
- { 0.2288472056, 0.1181580722, 0.2074171603, 0.0355180502,
- -0.0024924278, 0.2596487999, 0.7474936247, 0.9103488624,
- 0.5927647650, 0.4772915542 } },
- { { 0.6541713476, 0.6412608922, 0.7625012100, 0.7826205492,
- 0.4839106202, 0.3311478198, 0.4577620327, 0.8572652638,
- 0.9442306161, 0.8282986581 },
- { 0.2852075696, 0.2614837885, 0.4221763611, 0.4314823747,
- 0.1434547007, 0.0435788929, 0.1397191882, 0.5525916219,
- 0.6752081811, 0.5487250388 } },
- { { 0.6742251515, 1.0610800683, 1.0500701368, 0.9570100009,
- 0.9325653315, 0.9243078828, 0.9148707986, 0.8317720294,
- 0.7696445584, 0.6784849465 },
- { 0.2283884585, 0.9739181101, 0.5336519182, 0.4974764287,
- 0.3998288214, 0.3674543798, 0.2719694376, 0.2608939707,
- 0.2087934017, 0.1675716937 } },
- { { 0.3736146986, -1.5457833707, 0.9216864705, 0.7959242165,
- 0.7358283401, 0.7233110964, 0.7271121442, 0.6852350831,
- 0.6891672015, 0.6589554250 },
- { 0.1246460676, -1.7167649865, 0.7037160397, 0.4803061783,
- 0.4694928527, 0.4654951990, 0.5208069980, 0.5305717587,
- 0.5288023055, 0.5278192759 } },
- { { 1.0116009116, 0.9882703424, 0.8393741250, 0.8889843524,
- 0.8934407532, 0.8906227350, 0.9222107530, 0.8973073363,
- 0.9257496595, 0.9306648076 },
- { 0.5097970665, -0.0106843412, 0.1419473886, 0.2804890275,
- 0.3719763160, 0.3694859743, 0.4640534222, 0.5034401417,
- 0.5592106879, 0.6652468145 } },
- { { 0.9718209803, 0.7615181804, 0.2172474563, 0.4920369983,
- 0.4310891628, 0.5038333535, 0.4668059051, 0.5339140594,
- 0.4453758597, 0.4050061107 },
- { 0.6543679535, 0.1205173433, -0.0050483048, 0.1580035388,
- 0.1308719218, 0.1700620353, 0.1740596890, 0.2179683447,
- 0.1967349052, 0.1703897119 } },
- { { 0.7663022578, 0.4025157690, 1.3811545074, 1.1642981768,
- 1.0709758997, 0.9812580645, 1.0092416406, 0.9089070857,
- 0.7776398659, 0.8189926445 },
- { 0.3471384346, 0.0602248609, 1.3968829811, 1.0841484964,
- 0.8940305710, 0.7313719392, 0.7345176339, 0.5304406881,
- 0.4076275229, 0.4535677731 } },
- { { 0.1300854981, 0.1323136985, 0.7564064264, 0.7335346043,
- 0.7924508452, 0.6039057672, 0.6896914840, 0.3694859743,
- 0.2825861573, 0.3179096878 },
- { -0.0208423138, -0.0530856848, 0.3449102342, 0.3819376826,
- 0.4466865659, 0.2807511687, 0.3842969537, 0.1144880950,
- 0.0617321730, 0.0767397583 } },
- { { 0.7559476793, 0.8462553322, 0.6452585459, 1.1308751702,
- 1.0606868565, 0.9498666525, 0.7425129414, 0.6221901178,
- 0.6574481130, 0.6976212561 },
- { 0.3420922160, 0.4310236275, 0.2800958157, 0.9317133725,
- 0.8210897744, 0.6144569516, 0.3227593005, 0.2464762032,
- 0.2769501209, 0.3521846533 } },
- { { 0.7609938979, 0.6943444908, 1.1490939856, 0.4350868165,
- 0.6101971567, 0.6246149242, 0.7370079756, 0.6522052884,
- 0.6966382265, 0.7565374970 },
- { 0.3939306438, 0.3449102342, 0.9874839187, 0.0910919905,
- 0.2804234922, 0.2888775468, 0.4060546756, 0.3284608722,
- 0.3483836055, 0.4819445610 } },
- { { 0.7828826904, 1.1833034158, 1.9916158915, 0.8667678833,
- 0.9218830764, 0.8856420517, 0.9373494089, 0.7415299118,
- 0.7450032830, 0.7074515522 },
- { 0.4685098231, 1.1713104546, 1.9853245020, 0.6206828058,
- 0.6664264500, 0.6033814847, 0.6089519858, 0.3784643114,
- 0.4212588668, 0.3441893458 } },
- { { 0.4671335816, 0.4177199602, 0.0804097354, -0.1836975515,
- -0.1802241802, -0.0775958896, -0.0250365734, 0.0884050429,
- 0.2136430144, 0.3472039700 },
- { 0.1187478900, 0.1122598946, -0.0381436348, -0.2284581661,
- -0.2302276194, -0.1738672554, -0.1350048184, -0.0547896028,
- 0.0000634491, 0.0545888245 } },
- { { 0.5545576811, 0.4791920781, 0.8204999566, 0.8462553322,
- 0.9212277234, 0.8946203887, 0.9659883380, 0.9137566984,
- 0.9225384295, 0.9207034409 },
- { 0.1176993251, -0.0429277122, -0.0330318809, 0.0566859543,
- 0.0983008742, 0.1593797803, 0.1732077301, 0.2320584357,
- 0.2739354968, 0.3753186166 } },
- { { 0.7157745361, 0.6367389560, -1.2036890686, 0.7107283175,
- 0.6885118484, 0.7332724631, 0.7436270416, 0.7113181353,
- 0.5935511887, 0.6023984551 },
- { 0.3664058149, 0.3280676603, -1.3082178831, 0.3909815550,
- 0.3641776145, 0.3926854730, 0.3898674548, 0.4086760879,
- 0.3127979338, 0.3949792087 } },
- { { 1.0267395675, 1.0621941686, 1.0415505469, 0.9971176088,
- 0.9764739871, 0.9904330075, 0.9591071308, 0.9338760376,
- 0.9026156962, 0.9073997736 },
- { 0.9855833948, 1.0548542142, 0.9787021875, 0.8573307991,
- 0.8360973597, 0.8193203211, 0.7386463583, 0.7038471103,
- 0.6333966553, 0.6434235573 } },
- { { 0.6235008240, 0.7635497749, 0.8094900250, 0.7227212787,
- -0.0610809922, -0.1357912421, -0.2359291911, 0.0800165236,
- 0.3972729445, 0.5078965425 },
- { 0.2983146310, 0.4983939230, 0.4145742655, 0.3284608722,
- -0.3203386664, -0.3495018780, -0.4734291434, -0.1808139980,
- 0.1211071610, 0.2001427412 } },
- { { 0.8925887942, 0.8804647624, 0.6153089106, 0.6760601401,
- 0.7887153327, 1.0065546930, 1.0829033256, 1.0347348750,
- 0.9800128937, 0.9125770628 },
- { 0.5955827832, 0.6195687056, 0.2924164534, 0.3553958833,
- 0.5417127609, 0.8713553548, 0.9977729619, 0.8817754686,
- 0.7645328045, 0.6604627371 } },
- { { 1.1581378579, 1.0359145105, 0.7731179297, 0.6839243770,
- 0.6839899123, 0.6664264500, 0.6910677254, 0.6579068601,
- 0.6779606640, 0.6243527830 },
- { 1.1508634388, 0.8400294781, 0.2358594835, 0.2542749047,
- 0.2484422624, 0.2620736063, 0.2676441073, 0.2713796198,
- 0.3068997562, 0.3223005533 } },
- { { 0.1376220584, 1.2572927773, 0.8593623936, 0.6218624413,
- 0.5128116906, 0.5393534899, 0.4436064065, 0.4334484339,
- 0.4494390488, 0.4002220333 },
- { -0.1159995794, 1.2433337569, 0.4805027843, 0.2632532418,
- 0.1769432425, 0.1868390739, 0.1555131972, 0.1530228555,
- 0.1490252018, 0.1559064090 } },
- { { 0.1817273200, -0.0085216761, 0.0739872754, 0.1808098257,
- 0.2770811915, 0.3344901204, 0.4292541742, 0.5404020548,
- 0.5780193210, 0.5707449019 },
- { -0.0035409927, -0.0188107193, -0.0057691932, 0.0132360458,
- 0.0560961366, 0.0534747243, 0.1002013981, 0.1737320125,
- 0.1706518531, 0.1637706459 } },
- { { 0.9648087025, 1.0030813217, 0.9501943290, 0.8381944895,
- 0.7545059025, 0.7621735334, 0.7121700943, 0.7328792512,
- 0.7534573376, 0.7414643764 },
- { 0.1872322857, -0.0081939995, 0.0663851798, 0.0963348150,
- 0.0509188473, 0.0565548837, 0.0471833348, 0.0809340179,
- 0.1049199402, 0.1751082540 } },
- { { 0.6792713702, 0.9521603882, 0.5296542645, 0.3657504618,
- 0.3905883431, 0.3121425807, 0.2726903260, 0.3156159520,
- 0.2859284580, 0.3179096878 },
- { 0.2307477295, 0.3771536052, 0.0743804872, 0.0260154307,
- 0.0477731526, 0.0391880274, 0.0228042006, 0.0572757721,
- 0.0337485969, 0.0492149293 } },
- { { 0.8649328947, 0.9505875409, 1.0443030298, 1.1704584956,
- 1.2709241211, 1.3232212961, 1.2477901578, 1.1513877213,
- 1.0346038043, 0.9695272446 },
- { 0.4620873630, 0.5685822368, 0.8975039423, 1.0476453304,
- 1.2278674245, 1.2290470600, 1.1962138712, 1.0051129162,
- 0.8706344664, 0.7477557659 } },
- { { 0.4188340604, 0.6011532843, 0.4726385474, 0.6389671564,
- 0.6753392518, 0.7842589319, 0.6147846282, 0.6708828509,
- 0.6406055391, 0.5398777723 },
- { 0.1012499630, 0.2312064767, 0.1773364544, 0.2800302804,
- 0.3348177969, 0.4343003929, 0.2822584808, 0.3293128312,
- 0.3024433553, 0.2401848137 } },
- { { 0.5049474537, 0.7943513691, 0.9536021650, 0.9407572448,
- 0.9823721647, 0.9747045338, 1.0145500004, 0.9629737139,
- 0.9526191354, 0.9283710718 },
- { 0.0566204190, 0.0973178446, 0.5812305510, 0.5687133074,
- 0.6834000945, 0.6616423726, 0.7611905038, 0.6683925092,
- 0.6463071108, 0.6118355393 } },
- { { 0.8969141245, 0.9359731674, 0.8756151497, 0.8419300020,
- 0.8353109360, 0.6807131469, 0.3358008265, 0.3386188447,
- 0.3524467945, 0.4495045841 },
- { 0.5298508704, 0.4606455863, 0.4934132397, 0.4415748119,
- 0.4015327394, 0.2052544951, -0.0329663455, -0.0154684186,
- 0.0418094397, 0.1631152928 } },
- { { 0.6345762908, 2.5209445655, 1.0373562872, 0.9166402519,
- 0.8865595460, 0.8907538056, 0.8522190452, 0.7290782034,
- 0.7385808229, 0.6345107555 },
- { 0.2641707361, 2.5696372986, 0.8539884984, 0.6532538533,
- 0.6087553799, 0.5851626694, 0.5276226699, 0.4330552220,
- 0.3971418738, 0.3599833548 } },
-};
-
-static const float wmavoice_lsp16_intercoeff_a[32][2][16] = {
- { { 0.5337238312, 0.4810695648, -0.3766536713, -0.1204767227,
- -0.0898437500, -0.0070896149, 0.1134738922, 0.1337728500,
- 0.3739156723, 0.3849058151, 0.4220180511, 0.5404901505,
- 0.5224876404, 0.5502910614, 0.5313453674, 0.4405946732 },
- { 0.1775283813, 0.1679325104, -0.2702789307, -0.1359367371,
- -0.1452455521, -0.0888595581, -0.0256662369, -0.0023736954,
- 0.1074047089, 0.1431636810, 0.1357412338, 0.2045526505,
- 0.2686481476, 0.3404531479, 0.3209333420, 0.1493968964 } },
- { { 0.7402400970, 0.0838251114, 0.6486282349, 0.6145095825,
- 0.7331047058, 0.7183008194, 0.7436847687, 0.7627944946,
- 0.7653779984, 0.7795667648, 0.8399305344, 0.8393154144,
- 0.8219690323, 0.7474164963, 0.6681070328, 0.6490793228 },
- { 0.2850513458, -0.0544128418, -0.0300130844, 0.0204677582,
- 0.0328931808, 0.0589332581, 0.0796422958, 0.1187639236,
- 0.1320505142, 0.1539077759, 0.2189874649, 0.2865276337,
- 0.2973947525, 0.2614307404, 0.2416648865, 0.2428951263 } },
- { { 0.6129922867, 0.7300701141, 0.2073822021, 0.5005893707,
- 0.5713691711, 0.5374965668, 0.6293134689, 0.5639057159,
- 0.7402811050, 0.6982889175, 0.4668397903, 0.6698703766,
- 0.8758535385, 0.8678569794, 0.8678569794, 0.7810840607 },
- { 0.2986249924, 0.3269615173, 0.0096416473, 0.1800708771,
- 0.2474060059, 0.2203407288, 0.3007984161, 0.2674179077,
- 0.4424810410, 0.4046306610, 0.2063980103, 0.4230022430,
- 0.6222190857, 0.6574449539, 0.6776618958, 0.6604385376 } },
- { { 0.7258052826, 0.5073966980, -0.3947381973, 0.5254812241,
- 1.0561246872, 0.9706230164, 0.9727144241, 0.9185838699,
- 0.8184833527, 0.9093980789, 0.8645353317, 0.7870302200,
- 0.6347675323, 0.5123996735, 0.2846002579, 0.3252801895 },
- { 0.4306297302, 0.2182903290, -0.4902458191, 0.1783485413,
- 0.7783365250, 0.7152252197, 0.7404451370, 0.6012639999,
- 0.5421304703, 0.6619558334, 0.6316919327, 0.5596818924,
- 0.3952398300, 0.3567333221, 0.1505041122, 0.1290159225 } },
- { { 0.3077287674, 0.2543363571, 0.2834520340, 0.5282287598,
- 0.5350360870, 0.4943971634, 0.4521999359, 0.3086309433,
- 0.2372770309, 0.0819387436, -0.1385612488, -0.0848407745,
- -0.0380916595, 0.1192150116, 0.3228197098, 0.3012905121 },
- { 0.0567188263, 0.0196886063, 0.0682420731, 0.2102527618,
- 0.2452325821, 0.2060699463, 0.1620273590, 0.0784120560,
- 0.0418329239, -0.0508041382, -0.2193880081, -0.1644783020,
- -0.1361827850, -0.0307512283, 0.1486587524, 0.2356367111 } },
- { { 0.4387903214, 0.5723943710, 0.6147556305, 0.9973602295,
- 1.1645498276, 1.1898927689, 1.0326681137, 0.6939010620,
- 0.6064310074, 0.4686441422, 0.4646663666, 0.4895582199,
- 0.5654230118, 0.6004848480, 0.6179132462, 0.6439123154 },
- { 0.1324195862, 0.2426080704, 0.3132238388, 0.7359752655,
- 0.9749288559, 0.9535636902, 0.8105278015, 0.4118890762,
- 0.3013315201, 0.2006158829, 0.2331352234, 0.2535161972,
- 0.3375005722, 0.4103307724, 0.4102897644, 0.4529380798 } },
- { { 0.7335557938, 0.9203472137, 0.4852113724, 0.8646993637,
- 0.7304391861, 0.7503690720, 0.6289854050, 0.6900463104,
- 0.6421079636, 0.5184278488, 0.4444904327, 0.2660236359,
- 0.2143125534, 0.2406396866, 0.4836940765, 0.5597229004 },
- { 0.3689947128, 0.4967346191, 0.1176567078, 0.5127687454,
- 0.3235168457, 0.3426265717, 0.2417469025, 0.3310623169,
- 0.2629890442, 0.2130823135, 0.1329116821, 0.0468769073,
- -0.0081968307, 0.0146446228, 0.2440433502, 0.3408632278 } },
- { { 0.9425325394, 0.9597969055, 0.6160678864, 0.7050962448,
- 0.8063859940, 0.9063224792, 0.9890356064, 1.0038805008,
- 1.0338163376, 0.9453620911, 0.9634056091, 0.8068370819,
- 0.6859455109, 0.8909034729, 0.9990415573, 1.0122871399 },
- { 0.6895952225, 0.6451835632, 0.3169965744, 0.4268569946,
- 0.5666122437, 0.7722673416, 0.8845882416, 0.9061584473,
- 0.9550399780, 0.8118810654, 0.8601064682, 0.6129922867,
- 0.5069866180, 0.7065315247, 0.7862920761, 0.7766551971 } },
- { { 0.5641517639, -0.0941905975, 0.0412998199, 0.1810550690,
- 0.3459482193, 0.4213209152, 0.4401025772, 0.5397109985,
- 0.5607891083, 0.6348905563, 0.6861915588, 0.7280607224,
- 0.7267074585, 0.6447324753, 0.5948257446, 0.5475025177 },
- { 0.1906919479, -0.0519113541, -0.0608100891, -0.0018815994,
- 0.0383062363, 0.0362558365, 0.0529870987, 0.0692672729,
- 0.0953073502, 0.1327886581, 0.1390628815, 0.1904459000,
- 0.2362518311, 0.2063980103, 0.2311668396, 0.2291574478 } },
- { { 0.9901428223, 0.9589767456, 0.9012374878, 0.8017930984,
- 0.8929538727, 0.8512077332, 0.8790111542, 0.8832759857,
- 0.8949632645, 0.9159183502, 0.9293279648, 0.9152622223,
- 0.9247350693, 0.8753614426, 0.8730239868, 0.8066730499 },
- { 0.4230432510, -0.0464572906, 0.0182533264, 0.1159753799,
- 0.2349395752, 0.2740612030, 0.2987070084, 0.3620643616,
- 0.3923282623, 0.4694643021, 0.5202322006, 0.5356512070,
- 0.5564012527, 0.5362663269, 0.4791831970, 0.5046901703 } },
- { { 0.9785375595, 0.8820457458, 0.3965110779, 0.4790191650,
- 0.3907699585, 0.4195575714, 0.2938270569, 0.4091415405,
- 0.3659191132, 0.4030723572, 0.4168510437, 0.5030908585,
- 0.5023117065, 0.5511522293, 0.5354051590, 0.5563192368 },
- { 0.6592903137, 0.2933759689, 0.0562677383, 0.1286878586,
- 0.0758285522, 0.1192560196, 0.0508956909, 0.1175336838,
- 0.0684061050, 0.0988750458, 0.0923957825, 0.1819572449,
- 0.1965150833, 0.2257537842, 0.3049812317, 0.2993221283 } },
- { { 0.7120265961, 0.7847747803, 0.6065950394, 0.7235908508,
- 0.6740531921, 0.6535081863, 0.3734235764, 0.4788551331,
- 0.4410867691, 0.6927528381, 1.0758495331, 1.1148891449,
- 1.0708875656, 0.8896322250, 0.6401805878, 0.5057153702 },
- { 0.4210338593, 0.4763126373, 0.3229017258, 0.4079113007,
- 0.3922462463, 0.3529195786, 0.1258993149, 0.2168960571,
- 0.2207508087, 0.4605655670, 0.8759355545, 0.9526205063,
- 0.8843832016, 0.7001342773, 0.4503545761, 0.3484086990 } },
- { { 0.5254402161, 0.5349540710, 0.7036199570, 0.6240234375,
- 0.6464548111, 0.7537727356, 0.8311548233, 0.7334327698,
- 0.3484907150, 0.1846637726, 0.0894021988, 0.3977823257,
- 0.7672233582, 0.9224796295, 0.8818407059, 0.7453250885 },
- { 0.2587652206, 0.2524499893, 0.4135704041, 0.3129367828,
- 0.3403711319, 0.4473199844, 0.5330266953, 0.4227561951,
- 0.1080198288, -0.0044651031, -0.0727024078, 0.1583776474,
- 0.5302381516, 0.7313823700, 0.6735610962, 0.5630855560 } },
- { { 0.7936325073, 0.8551034927, 0.9755849838, 0.8953323364,
- 0.9345769882, 0.7202281952, 0.8388233185, 0.7941656113,
- 0.7550849915, 0.7894906998, 0.8590402603, 0.7813711166,
- 0.8483371735, 0.8652324677, 0.8586711884, 0.9584846497 },
- { 0.4781579971, 0.4731960297, 0.8289403915, 0.6175031662,
- 0.7262973785, 0.3638277054, 0.5544328690, 0.4761896133,
- 0.4388723373, 0.5021476746, 0.5630445480, 0.4562187195,
- 0.5190429688, 0.5937595367, 0.6121721268, 0.6973457336 } },
- { { 1.0724458694, 1.0449705124, 0.8594503403, 0.7604160309,
- 0.7837905884, 0.8136444092, 0.7623023987, 0.6098756790,
- 0.6432561874, 0.6395244598, 0.6853713989, 0.7401580811,
- 0.7399530411, 0.7652549744, 0.7675104141, 0.7393789291 },
- { 0.9382266998, 0.8419809341, 0.3087539673, 0.3620233536,
- 0.3547649384, 0.4241094589, 0.2857894897, 0.2123851776,
- 0.2355957031, 0.2794332504, 0.3219995499, 0.3898267746,
- 0.3937635422, 0.4058198929, 0.4228382111, 0.4181222916 } },
- { { 1.0275421143, 1.0940570831, 1.0164289474, 0.9097671509,
- 0.9400720596, 0.8976287842, 0.9175586700, 0.8900833130,
- 0.9154262543, 0.9492578506, 1.0011329651, 1.0361537933,
- 1.0359487534, 0.9320344925, 0.8974237442, 0.8811845779 },
- { 1.0046186447, 1.0860195160, 0.9442958832, 0.7473344803,
- 0.7876043320, 0.7410602570, 0.7422084808, 0.6844692230,
- 0.7256412506, 0.8455486298, 0.8969316483, 0.9362173080,
- 0.9092340469, 0.8227071762, 0.7481546402, 0.7088689804 } },
- { { 0.2205047607, -0.0129537582, 0.0972347260, 0.1154832840,
- 0.0951843262, 0.1532516479, 0.1288108826, 0.1749858856,
- 0.1591157913, 0.2134923935, 0.2477340698, 0.2634811401,
- 0.3032999039, 0.3272485733, 0.3170785904, 0.3172016144 },
- { 0.0032854080, -0.0446119308, 0.0284643173, 0.0155467987,
- -0.0063104630, 0.0226001740, 0.0086984634, 0.0262088776,
- 0.0173921585, 0.0360507965, 0.0366659164, 0.0215339661,
- 0.0412178040, 0.1047391891, 0.1258172989, 0.0609836578 } },
- { { 0.1495609283, 0.3275766373, 0.8598194122, 0.6847562790,
- 0.7550849915, 0.5662431717, 0.6930398941, 0.7526245117,
- 0.7300291061, 0.7284708023, 0.6608896255, 0.5224056244,
- 0.4273900986, 0.5757160187, 0.4625749588, 0.5123586655 },
- { -0.0352210999, -0.0428895950, 0.3110914230, 0.2699604034,
- 0.3307752609, 0.2059469223, 0.2332172394, 0.3204412460,
- 0.2846412659, 0.3354911804, 0.2448635101, 0.1514062881,
- 0.1062564850, 0.2613077164, 0.2123441696, 0.3000602722 } },
- { { 0.6218910217, 0.6033554077, 0.4551525116, 0.3161764145,
- 0.2864866257, 0.6195125580, 0.7577505112, 1.0062179565,
- 0.8485012054, 0.6777849197, 0.7455301285, 0.3630485535,
- 0.2327661514, 0.5563192368, 0.4448595047, 0.3806819916 },
- { 0.2624969482, 0.2679510117, 0.1839666367, 0.0335903168,
- 0.0294075012, 0.2902593613, 0.4959144592, 0.7905979156,
- 0.5748548508, 0.3753919601, 0.4855394363, 0.1089630127,
- 0.0362968445, 0.3632535934, 0.2681150436, 0.2735691071 } },
- { { 0.7064495087, 0.4431781769, 0.7628355026, 0.7271585464,
- 0.7812070847, 0.7806739807, 0.8909854889, 0.8958654404,
- 0.9126787186, 0.9038209915, 0.9246120453, 0.9624624252,
- 0.9732475281, 0.7420034409, 0.5060844421, 0.5189199448 },
- { 0.3457021713, -0.0149221420, 0.3174476624, 0.3580865860,
- 0.4243965149, 0.4275541306, 0.5887155533, 0.6478490829,
- 0.6320610046, 0.6627349854, 0.6868886948, 0.7396659851,
- 0.7551259995, 0.5275316238, 0.3075237274, 0.3806819916 } },
- { { 0.4376831055, 0.4904603958, 0.6262788773, 0.5901098251,
- 0.4176712036, 0.0221490860, -0.1612796783, -0.2236118317,
- -0.1087894440, -0.0022506714, 0.1051902771, 0.3307752609,
- 0.4167690277, 0.4997692108, 0.4645843506, 0.5228567123 },
- { 0.1228237152, 0.1671123505, 0.2931299210, 0.2549924850,
- 0.1435737610, -0.1124801636, -0.2181987762, -0.2723293304,
- -0.1573429108, -0.0837745667, -0.0325555801, 0.1024427414,
- 0.1938495636, 0.2825498581, 0.2247285843, 0.2879629135 } },
- { { 0.6100807190, 0.7900238037, 0.9581155777, 0.8999662399,
- 0.9277286530, 0.9720993042, 0.9966220856, 0.9630365372,
- 0.9571723938, 0.8992280960, 0.8370189667, 0.7417984009,
- 0.7174396515, 0.6122951508, 0.6746683121, 0.7030458450 },
- { 0.0859165192, 0.0914115906, 0.6077432632, 0.5471334457,
- 0.5943746567, 0.6805324554, 0.6680250168, 0.6033554077,
- 0.6302976608, 0.4874258041, 0.3647298813, 0.2770137787,
- 0.2544183731, 0.2608156204, 0.3331537247, 0.4950942993 } },
- { { 0.4051227570, 1.1022176743, 0.8262338638, 0.6573219299,
- 0.5948667526, 0.5426225662, 0.4987850189, 0.4370269775,
- 0.4421119690, 0.3837165833, 0.3728494644, 0.3706760406,
- 0.4169740677, 0.3559951782, 0.2994041443, 0.3896217346 },
- { 0.0716867447, 0.9253911972, 0.2780799866, 0.2460117340,
- 0.1675224304, 0.1527595520, 0.1278266907, 0.1226596832,
- 0.1165084839, 0.0982189178, 0.0952253342, 0.1113414764,
- 0.1498889923, 0.0940361023, 0.0802984238, 0.1560811996 } },
- { { 0.7024717331, 0.7363853455, 0.9629545212, 0.9635286331,
- 1.0819597244, 1.1529855728, 1.2984409332, 1.2693252563,
- 1.2848672867, 1.2877378464, 1.2133083344, 1.0696573257,
- 1.0864706039, 0.9851808548, 0.8312368393, 0.8047866821 },
- { 0.3001422882, 0.2273120880, 0.6279602051, 0.6936140060,
- 0.8097076416, 0.9440498352, 1.1028738022, 1.1766471863,
- 1.1199741364, 1.1608181000, 1.0665817261, 0.8872537613,
- 0.9082908630, 0.7602519989, 0.6542053223, 0.7317514420 } },
- { { 0.0643463135, -0.6808919907, 0.2889881134, 0.6142225266,
- 0.6356697083, 0.6825828552, 0.6259508133, 0.4945611954,
- 0.5866651535, 0.6357517242, 0.5208883286, 0.4207878113,
- 0.5125637054, 0.3758020401, 0.5424175262, 0.6172571182 },
- { -0.0636806488, -0.7585611343, 0.0850553513, 0.2996912003,
- 0.3620643616, 0.4444084167, 0.4597454071, 0.3120756149,
- 0.4016780853, 0.5026807785, 0.4111919403, 0.3183498383,
- 0.3666572571, 0.1829824448, 0.3269205093, 0.4095926285 } },
- { { 0.9277286530, 0.9651279449, 0.9602069855, 0.9327726364,
- 0.9208393097, 0.8868436813, 0.9011554718, 0.8569488525,
- 0.9015245438, 0.8969726562, 0.9367094040, 0.9445009232,
- 0.8617057800, 0.8215589523, 0.8333692551, 0.7939195633 },
- { 0.1719102859, 0.1142530441, 0.1245460510, 0.1646108627,
- 0.1408672333, 0.0949792862, 0.0271930695, 0.0265779495,
- -0.0064334869, -0.0109033585, 0.0152187347, 0.0252656937,
- 0.0166950226, 0.0736141205, 0.1205682755, 0.1895437241 } },
- { { 0.5964250565, 0.6065130234, 0.7228116989, 0.7348270416,
- 0.0718097687, 0.2369899750, 0.2456426620, 0.4961194992,
- 0.6410417557, 0.6765956879, 0.6771287918, 0.7285938263,
- 0.6706905365, 0.5105543137, 0.5068635941, 0.5430326462 },
- { 0.2782440186, 0.2620048523, 0.4424400330, 0.4124631882,
- -0.1158838272, 0.0186223984, 0.0059919357, 0.1853609085,
- 0.3568563461, 0.3791646957, 0.4100847244, 0.4654865265,
- 0.4614677429, 0.3209743500, 0.3199081421, 0.3836755753 } },
- { { 0.8051557541, 0.8506336212, 0.9544658661, 0.5584516525,
- 0.5874032974, 0.5727224350, 0.6177902222, 0.7659521103,
- 0.9526205063, 1.0424280167, 1.0705595016, 1.0042905807,
- 0.6005258560, 0.3886785507, 0.4739751816, 0.6542463303 },
- { 0.4775428772, 0.5541868210, 0.7128057480, 0.2146816254,
- 0.2502765656, 0.2488822937, 0.3009214401, 0.4667987823,
- 0.6929988861, 0.8599834442, 0.8784780502, 0.7463912964,
- 0.3217535019, 0.1274986267, 0.2767267227, 0.5119485855 } },
- { { 0.5978193283, 0.5092830658, 1.0738401413, 0.7688636780,
- 0.8214769363, 0.7682075500, 0.4970626831, 0.2783260345,
- 0.2652854919, 0.3625154495, 0.5700569153, 0.5044031143,
- 0.4003248215, 0.5162544250, 0.5727634430, 0.5538587570 },
- { 0.2752094269, 0.1747808456, 0.8557186127, 0.4280872345,
- 0.5143680573, 0.4139804840, 0.1810960770, 0.0109539032,
- 0.0317039490, 0.0842351913, 0.3129367828, 0.2614717484,
- 0.1564092636, 0.2352676392, 0.3249931335, 0.3505821228 } },
- { { 0.7093610764, 0.7587757111, 1.8517618179, 1.0092525482,
- 0.8078622818, 0.8792982101, 0.8210668564, 0.8600654602,
- 0.6913585663, 0.6436662674, 0.6216859818, 0.6123771667,
- 0.5940465927, 0.5910940170, 0.6505966187, 0.5801038742 },
- { 0.3370904922, 0.4681930542, 1.9236078262, 0.8053607941,
- 0.5321245193, 0.6342344284, 0.5054693222, 0.5788326263,
- 0.4400615692, 0.4086904526, 0.3924102783, 0.4220180511,
- 0.3835115433, 0.4230432510, 0.5190839767, 0.3990535736 } },
- { { 0.6277141571, 1.1122236252, 1.0259838104, 0.9486427307,
- 0.9184608459, 0.9059944153, 0.9080038071, 0.8282022476,
- 0.8440313339, 0.7887935638, 0.7468013763, 0.6746683121,
- 0.6319379807, 0.6246795654, 0.7263793945, 0.7349090576 },
- { 0.2427721024, 1.0851583481, 0.6180362701, 0.5837125778,
- 0.4324750900, 0.4684801102, 0.3745307922, 0.3027257919,
- 0.3646888733, 0.2409267426, 0.2158298492, 0.2052907944,
- 0.2100887299, 0.2276401520, 0.3409452438, 0.4045896530 } },
- { { 0.8391513824, 0.8713426590, 1.1366233826, 1.1440868378,
- 1.1443738937, 1.0877418518, 1.0516138077, 1.0099496841,
- 0.9216184616, 0.8990640640, 0.9001302719, 0.8993101120,
- 0.8055248260, 0.8150796890, 0.7272815704, 0.7196130753 },
- { 0.4634771347, 0.5807189941, 1.1287908554, 1.1066875458,
- 1.0765056610, 0.9287538528, 0.8956193924, 0.8026132584,
- 0.6725769043, 0.5856809616, 0.5527515411, 0.5183868408,
- 0.4529380798, 0.5074377060, 0.4632720947, 0.5554990768 } },
-};
-
-static const float wmavoice_lsp16_intercoeff_b[32][2][16] = {
- { { 0.5431776047, -0.1212130189, -0.2471650839, 0.0683670044,
- 0.1418520808, 0.2518971562, 0.3708084226, 0.4141484499,
- 0.5712364912, 0.5852659345, 0.5670641661, 0.6401320100,
- 0.6447737217, 0.6726239920, 0.4994724989, 0.5574678183 },
- { 0.2040718794, -0.1271064281, -0.2266163826, -0.0406349897,
- -0.0145058036, 0.0283126831, 0.0851084590, 0.0913147926,
- 0.1307432652, 0.1926501393, 0.2310355306, 0.2828245163,
- 0.3171940446, 0.4424681067, 0.2960716486, 0.3510941863 } },
- { { 0.8073900938, 0.0403081179, 0.5392660499, 0.6928597689,
- 0.6499369740, 0.7328097820, 0.7755761147, 0.7766191959,
- 0.8820225596, 0.8423333168, 0.8898978233, 0.8488525748,
- 0.8654375672, 0.6728326082, 0.6169234514, 0.6755967736 },
- { 0.3653843999, -0.0846008658, -0.0224332213, 0.1120721102,
- 0.1020585299, 0.1741876006, 0.2129902244, 0.2160151601,
- 0.3619422317, 0.4185815454, 0.5455245376, 0.5363975763,
- 0.5429168344, 0.3505726457, 0.3296067119, 0.3620986938 } },
- { { 0.1843576431, 0.0179861784, 0.3122915626, 0.3600125313,
- 0.2466817498, 0.2172668576, 0.1975526214, 0.1177569032,
- 0.1196866035, 0.0849519968, 0.0962694287, 0.1591672301,
- 0.2300446033, 0.3082756996, 0.4047607183, 0.3925045133 },
- { -0.0275964737, -0.0794897676, 0.1168181300, 0.1591150761,
- 0.0915755630, 0.0460972190, 0.0562151074, 0.0084419847,
- -0.0095511675, -0.0408957601, -0.0376100540, -0.0166962743,
- 0.0656028390, 0.1226072311, 0.2293144464, 0.2142419219 } },
- { { 0.4781936407, -1.2478972673, 0.4884679914, 0.7755239606,
- 0.6785174012, 0.6590117812, 0.6177057624, 0.6427918673,
- 0.5402048230, 0.5512614846, 0.6424267888, 0.4229103327,
- 0.5106334686, 0.5136062503, 0.4490395188, 0.4753251672 },
- { 0.2852236032, -1.3815159798, 0.1904075146, 0.4874770641,
- 0.4593138695, 0.4182686210, 0.4174863100, 0.4604612589,
- 0.4089330435, 0.3891666532, 0.4700576067, 0.2383370996,
- 0.2801646590, 0.3398289084, 0.2766703367, 0.3374298215 } },
- { { 0.5925153494, 0.3858809471, 1.0754098296, 0.5752002001,
- 0.5516265631, 0.4853909016, 0.4719351530, 0.5018194318,
- 0.3037382960, 0.5154316425, 0.8809794784, 0.7755761147,
- 0.5941321254, 0.3974069953, 0.5925675035, 0.6097261906 },
- { 0.3008176684, 0.0706617832, 0.8484353423, 0.2574254870,
- 0.2815728188, 0.1930673718, 0.2523665428, 0.2691601515,
- 0.1271967888, 0.2653007507, 0.6473292708, 0.5275835395,
- 0.3928174376, 0.2405275702, 0.4008491635, 0.4556109309 } },
- { { 0.7339050174, 0.4290645123, 0.6859754324, 0.6349166036,
- 0.8034263849, 0.8509387374, 0.8591269255, 1.1049811840,
- 1.3928194642, 1.3423343301, 1.0849018693, 0.8943830729,
- 0.8579795361, 0.6920774579, 0.5613272190, 0.4303162098 },
- { 0.4534726143, 0.0901674032, 0.3465046287, 0.3470261693,
- 0.5217422843, 0.5874564052, 0.6014336944, 0.9161834717,
- 1.2823571563, 1.2193550467, 0.8868207335, 0.6514494419,
- 0.6249030232, 0.4453887343, 0.3665317893, 0.2242033482 } },
- { { 0.4293252826, 0.3303368688, 0.6181751490, 0.9884168506,
- 0.9915460944, 0.7939864993, 0.3019129038, 0.2443348169,
- 0.4543070793, 0.5617444515, 0.4895110726, 0.6600027084,
- 0.6290231943, 0.5580936670, 0.5459417701, 0.4647378922 },
- { 0.1409133077, -0.0050137639, 0.2551307082, 0.6764833927,
- 0.7112701535, 0.4648943543, 0.0301380754, -0.0235806108,
- 0.1018499136, 0.2422486544, 0.2406318784, 0.4000146985,
- 0.3713299632, 0.3259559274, 0.3820737004, 0.2888743877 } },
- { { 0.7733334899, 0.8321111202, 1.3098945022, 1.0331128836,
- 1.0380675197, 0.9479974508, 0.9740223289, 0.9442945123,
- 0.8926619887, 0.8719046712, 0.8640815616, 0.8404036164,
- 0.8359183669, 0.7675965428, 0.6895219088, 0.7266034484 },
- { 0.3655408621, 0.4643206596, 1.2171645761, 0.8341451287,
- 0.8387868404, 0.6713201404, 0.6814901829, 0.6294404268,
- 0.5172048807, 0.5205948949, 0.5408828259, 0.5298783183,
- 0.5781729817, 0.5000983477, 0.4727174640, 0.4326109886 } },
- { { 0.8902629018, 0.4598354101, 0.6392975450, 0.4483093619,
- 0.6220867038, 0.6323089004, 0.7063676715, 0.3717993498,
- 0.6718416810, 0.7876758575, 0.2807383537, 0.3118221760,
- 0.6703813672, 0.7662405372, 0.7122610807, 0.7851724625 },
- { 0.6301705837, 0.1221378446, 0.3532846570, 0.1412783861,
- 0.3471826315, 0.3435318470, 0.4466925859, 0.1390357614,
- 0.4092981219, 0.5406742096, 0.0690450072, 0.0829179883,
- 0.4625995755, 0.5700891018, 0.5542864203, 0.6545265317 } },
- { { -0.1100520492, 0.3803526163, 0.8075987101, 0.6903563738,
- 0.8012359142, 0.7835035324, 0.8195941448, 0.8381088376,
- 0.8033220768, 0.7511680126, 0.6393496990, 0.6096218824,
- 0.6934856176, 0.6690253615, 0.6401841640, 0.5600233674 },
- { -0.1776958704, -0.0293175578, 0.1520742774, 0.1746048331,
- 0.2222214937, 0.3052507639, 0.2977927327, 0.3797789216,
- 0.3395681381, 0.2976884246, 0.2516885400, 0.2403711081,
- 0.3567789793, 0.3302847147, 0.3368039727, 0.3310148716 } },
- { { 0.5587195158, 0.4676063657, 0.1392965317, -0.0990996957,
- -0.0816280842, -0.1146416068, -0.0116894841, 0.0521992445,
- 0.1626615524, 0.2923687100, 0.4029874802, 0.4528989196,
- 0.4694839120, 0.5058352947, 0.5369191170, 0.5105291605 },
- { 0.2193530202, 0.1211469173, 0.0179861784, -0.2022604346,
- -0.1409794092, -0.2121175528, -0.1152674556, -0.0594626069,
- -0.0122110248, 0.0274260640, 0.1414870024, 0.2044369578,
- 0.2167974710, 0.2615978122, 0.3348221183, 0.3707562685 } },
- { { 0.5948622823, 0.7065241337, 0.9414781928, 0.9340723157,
- 0.8835350275, 0.9730835557, 0.8503650427, 0.8902629018,
- 0.8746688366, 0.6910865307, 0.6404449344, 0.6976057887,
- 0.5916287303, 0.6022160053, 0.7729684114, 0.6096740365 },
- { 0.1262058616, 0.1300652623, 0.6594290137, 0.6535877585,
- 0.5639349222, 0.6982316375, 0.4828875065, 0.5577285886,
- 0.4591052532, 0.2964367270, 0.2695252299, 0.3324751854,
- 0.2860580683, 0.2902825475, 0.4623388052, 0.3369604349 } },
- { { 0.8821268678, 0.8539636731, 0.2898653150, 0.7478301525,
- 0.5109463930, 0.8577187657, 0.4884679914, 0.7846509218,
- 0.7684310079, 0.7032384276, 0.6691296697, 0.8593355417,
- 0.9383489490, 0.9808023572, 0.6804992557, 0.6403927803 },
- { 0.5590324402, 0.4209806323, 0.0259135962, 0.4318808317,
- 0.2104346752, 0.5453680754, 0.1783599257, 0.4467447400,
- 0.4352708459, 0.4089330435, 0.3994410038, 0.5984609127,
- 0.6872792840, 0.7321317792, 0.4408513308, 0.4542027712 } },
- { { 0.6371070743, 0.6311093569, 0.7152860165, 0.6929640770,
- 0.2292101383, 0.3234525323, 0.9644259810, 0.9881039262,
- 0.8722697496, 0.4370440841, 0.4051779509, 0.4944135547,
- 0.5392660499, 0.5969484448, 0.4268740416, 0.4990552664 },
- { 0.4233797193, 0.3647063971, 0.4345406890, 0.4180078506,
- -0.0006328225, 0.0586141944, 0.7620160580, 0.8152132034,
- 0.6707985997, 0.2095480561, 0.2178405523, 0.2776612639,
- 0.3142212629, 0.3808741570, 0.2676998377, 0.2804775834 } },
- { { 0.4509170651, 0.9490405321, 0.8557890654, 0.8271043301,
- 0.6915559173, 0.7321839333, 0.6257896423, 0.6274064183,
- 0.5238284469, 0.5194996595, 0.4116972089, 0.3382642865,
- 0.3755022883, 0.4867990613, 0.5686287880, 0.5106856227 },
- { 0.0989292860, 0.6244857907, 0.4700576067, 0.3905226588,
- 0.2630059719, 0.3009741306, 0.2150763869, 0.2067838907,
- 0.1533781290, 0.1815934777, 0.1023714542, 0.0373874903,
- 0.0897501707, 0.1849313378, 0.2852757573, 0.2625887394 } },
- { { 0.9954054952, 0.9554033279, 0.8237664700, 0.9780903459,
- 0.7261862159, 0.7884581685, 0.7933084965, 0.7393290401,
- 0.8783196211, 1.0409359932, 1.0217954516, 0.9159227014,
- 0.8698185086, 0.7057939768, 0.7662926912, 0.7339571714 },
- { 0.7913266420, 0.6739278436, 0.5061482191, 0.7058982849,
- 0.3480692506, 0.4338105321, 0.4428853393, 0.3758152127,
- 0.5962182879, 0.7925261855, 0.7968549728, 0.6629754901,
- 0.6325175166, 0.4598354101, 0.5310778618, 0.5518873334 } },
- { { 0.4638512731, 0.0604917407, 0.1897295117, 0.3403504491,
- 0.4708399177, 0.5241413713, 0.6061275601, 0.6446694136,
- 0.7313494682, 0.7208143473, 0.6268848777, 0.6081094146,
- 0.4913364649, 0.3529717326, 0.4954566360, 0.5767126679 },
- { 0.1353849769, -0.0274400115, 0.0002537966, 0.0272174478,
- 0.0555371046, 0.0652899146, 0.1010676026, 0.1073260903,
- 0.1568724513, 0.2207611799, 0.1434167027, 0.2262373567,
- 0.1177047491, 0.0162650943, 0.2529402375, 0.4087765813 } },
- { { 0.9700064659, 0.9917025566, 0.9159227014, 0.9309430718,
- 0.8991290927, 0.9314124584, 0.9059612751, 0.9473194480,
- 0.9604622722, 0.9377752542, 0.9197821021, 0.8869771957,
- 0.8506779671, 0.8594920039, 0.8320589662, 0.8739908338 },
- { 0.2892394662, 0.0551198721, 0.0892807841, 0.1158793569,
- 0.0905846357, 0.0738953352, 0.0395258069, 0.0240360498,
- 0.0477139950, 0.0751470327, 0.1171310544, 0.1555164456,
- 0.1384620667, 0.1818542480, 0.2104868293, 0.1288135648 } },
- { { 0.4101847410, 0.3326316476, 0.4666675925, 0.5077128410,
- 0.5892296433, 0.4272912741, 0.0603352785, -0.8668596745,
- -1.1103670001, -0.0900248885, 0.1626615524, 0.1487885714,
- 0.4130010605, 0.5119373202, 0.5820323825, 0.5486016273 },
- { 0.0383262634, 0.1300652623, 0.2295230627, 0.2706204653,
- 0.3722165823, 0.1698066592, -0.0934670568, -0.8677462935,
- -1.0724509954, -0.2164463401, -0.0056917667, -0.0301520228,
- 0.1299088001, 0.2579991817, 0.3482257128, 0.2469425201 } },
- { { 0.6031547785, 0.5515222549, 0.4292209744, 0.5027582049,
- 0.8167778254, 1.0925685167, 0.9878953099, 0.7019345760,
- 0.2509583831, 0.2475162148, 0.5660732388, 0.5145971775,
- 0.4824181199, 0.5970005989, 0.5996604562, 0.5384315848 },
- { 0.3677313328, 0.2650399804, 0.1585935354, 0.2213348746,
- 0.5566333532, 0.8425940871, 0.7604514360, 0.4523773789,
- 0.0681062341, 0.0737388730, 0.3169854283, 0.2868403792,
- 0.2661873698, 0.3635068536, 0.4300554395, 0.3743027449 } },
- { { 0.5017672777, 0.6634970307, 0.6869142056, 0.7066284418,
- 0.5669598579, 0.0621085167, 0.0634645224, 0.2321307659,
- 0.8322675824, 0.9855483770, 0.8296598792, 0.6140028238,
- 0.5462546945, 0.6730412245, 0.6856103539, 0.5975221395 },
- { 0.2680649161, 0.3324230313, 0.3688787222, 0.3886451125,
- 0.2774004936, -0.1695076823, -0.1353467703, 0.0159000158,
- 0.5895425677, 0.7586781979, 0.5639870763, 0.3687744141,
- 0.3401418328, 0.4477356672, 0.4782979488, 0.4034568667 } },
- { { 0.8838479519, 0.9025712609, 0.7326533198, 0.8124490380,
- 0.8956347704, 1.1007045507, 1.2731780410, 1.2029786706,
- 1.0839109421, 0.9664078355, 0.7356782556, 0.6942157745,
- 0.6917645335, 0.6383587718, 0.6503020525, 0.5989302993 },
- { 0.5576764345, 0.4596789479, 0.3790487647, 0.5514179468,
- 0.7333834767, 0.9612445831, 1.1976589561, 1.1094664335,
- 0.8868207335, 0.6789346337, 0.4643206596, 0.4029353261,
- 0.4384522438, 0.3871847987, 0.4326109886, 0.3691916466 } },
- { { 0.8520861268, 0.8413423896, 0.7238392830, 0.9103943706,
- 0.7072542906, 0.6479029655, 0.4557673931, 0.1908247471,
- -0.0569070578, -0.1013423204, 0.2517406940, 0.4854952097,
- 0.5820845366, 0.5886037946, 0.6177579165, 0.6226603985 },
- { 0.6160889864, 0.4592095613, 0.4752208591, 0.6685559750,
- 0.4326109886, 0.4077335000, 0.2314006090, 0.0173603296,
- -0.2208272815, -0.3014574647, 0.0321199298, 0.2559130192,
- 0.3603254557, 0.3466089368, 0.4072119594, 0.4776199460 } },
- { { 0.7083495259, 0.9001721740, 0.6795083284, 1.2743254304,
- 1.3672639728, 1.2563322783, 0.8557369113, 0.8287732601,
- 0.7942472696, 0.8006622195, 0.7034991980, 0.5479236245,
- 0.6391932368, 0.6248508692, 0.5495925546, 0.4719351530 },
- { 0.4000146985, 0.6493632793, 0.4583229423, 1.1484255195,
- 1.2521599531, 1.1232351065, 0.6150459051, 0.5347808003,
- 0.4726653099, 0.5269576907, 0.4278128147, 0.2745841742,
- 0.3868718743, 0.4183729291, 0.3474434018, 0.3150035739 } },
- { { 0.9070043564, 0.7648323774, 0.4281778932, 0.5475063920,
- 0.4134704471, 0.4706834555, 0.4549329281, 0.4648422003,
- 0.4572798610, 0.4823138118, 0.4666154385, 0.4841913581,
- 0.4018922448, 0.4297946692, 0.4646857381, 0.6091003418 },
- { 0.4925360084, 0.2065231204, 0.0948612690, 0.1716842055,
- 0.0992422104, 0.1332988143, 0.1255800128, 0.1257364750,
- 0.0955392718, 0.1118634939, 0.1372103691, 0.1525958180,
- 0.0902717113, 0.1591672301, 0.2335910797, 0.3767018318 } },
- { { 0.3185500503, 0.8677845001, 0.7776622772, 0.8160476685,
- 0.8624126315, 0.8057211637, 0.8852561116, 0.8471314907,
- 0.9145145416, 0.8945916891, 0.8638729453, 0.8531292081,
- 0.7425104380, 0.6215651631, 0.6501455903, 0.6341864467 },
- { -0.0499705672, 0.0687842369, 0.3051464558, 0.3368039727,
- 0.4942049384, 0.3823344707, 0.5683158636, 0.5044271350,
- 0.6278236508, 0.5777035952, 0.5745221972, 0.5502184033,
- 0.4244228005, 0.3163595796, 0.3525545001, 0.3582914472 } },
- { { 0.3200625181, 0.9415303469, 0.6067534089, 0.3568832874,
- 0.1600538492, 0.2938811779, 0.2037589550, 0.3017564416,
- 0.2572168708, 0.4796018004, 0.6938506961, 0.6847758889,
- 0.7232134342, 0.6111343503, 0.5159531832, 0.4856516719 },
- { 0.0680540800, 0.6285016537, 0.2514277697, 0.0790064335,
- -0.0687981844, 0.0521992445, -0.0055874586, 0.0537117124,
- 0.0188206434, 0.1883213520, 0.4493002892, 0.4300554395,
- 0.4750122428, 0.3658016324, 0.3119786382, 0.2818335891 } },
- { { 0.6864969730, 1.0815640092, 0.9838794470, 0.8845259547,
- 0.9438772798, 0.8888025880, 0.8178730607, 0.8581881523,
- 0.7128347754, 0.7120524645, 0.7345308661, 0.7945601940,
- 0.7854853868, 0.8261655569, 0.6941114664, 0.6646444201 },
- { 0.2847542167, 0.9535257816, 0.6691818237, 0.5026538968,
- 0.5945493579, 0.4125838280, 0.3886451125, 0.3740941286,
- 0.2453778982, 0.2928902507, 0.3219922185, 0.4065861106,
- 0.3838469386, 0.4289602041, 0.3910441995, 0.3821780086 } },
- { { 1.1335094571, 1.0390062928, 0.7019867301, 0.6203134656,
- 0.6951545477, 0.4863818288, 0.6171320677, 0.6247465611,
- 0.5907421112, 0.6711115241, 0.7322882414, 0.7042293549,
- 0.5635698438, 0.6174449921, 0.6727283001, 0.6431047916 },
- { 1.0146503448, 0.7762541175, 0.2200310230, 0.2459515929,
- 0.2703596950, 0.1376276016, 0.2522100806, 0.2622758150,
- 0.2389107943, 0.2956544161, 0.3799875379, 0.3653843999,
- 0.2561216354, 0.2842326760, 0.4034568667, 0.3700782657 } },
- { { 0.6342907548, 0.9627570510, 0.5214815140, -0.0226939917,
- 0.5616401434, 0.7231091261, 0.7417802811, 0.9092991352,
- 0.9739701748, 0.7804785967, 0.6771092415, 0.6352295280,
- 0.4660417438, 0.5869870186, 0.6692339778, 0.5986173749 },
- { 0.3988673091, 0.6997441053, 0.2316613793, -0.2566571236,
- 0.2685343027, 0.4484136701, 0.4490395188, 0.6886874437,
- 0.7703085542, 0.5847443938, 0.4539941549, 0.4098196626,
- 0.2579991817, 0.3376384377, 0.4754816294, 0.5095382333 } },
- { { 0.4443456531, 2.0296727419, 0.6569256186, 0.6439914107,
- 0.6436263323, 0.5507399440, 0.6095175743, 0.6066491008,
- 0.5347808003, 0.2529402375, 0.4443978071, 0.7000570297,
- 0.8259569407, 0.5927761197, 0.5078171492, 0.4418422580 },
- { 0.2430831194, 1.9133691788, 0.3723730445, 0.3764410615,
- 0.3874977231, 0.3212099075, 0.3832210898, 0.4474227428,
- 0.3644977808, 0.0814055204, 0.2752621770, 0.4647378922,
- 0.6619845629, 0.4304205179, 0.3143777251, 0.2705683112 } },
- { { 0.9740744829, 1.0730628967, 0.9743352532, 0.9098728299,
- 0.9453375936, 0.9661470652, 0.9270836711, 0.9643738270,
- 0.9989519715, 0.9627048969, 0.9348546267, 0.9865393043,
- 0.9399657249, 0.9752218723, 0.8440544009, 0.8819182515 },
- { 0.9258319736, 1.0357205868, 0.8463491797, 0.8108844161,
- 0.8391519189, 0.8566235304, 0.8305986524, 0.8880724311,
- 0.9181653261, 0.8670021892, 0.8305986524, 0.8995984793,
- 0.8300249577, 0.8711223602, 0.7195626497, 0.8138571978 } },
-};
-
-static const double wmavoice_mean_lsf10[2][10] = {
- { 0.2235394066, 0.4097484909, 0.7025292732, 1.1077160169,
- 1.3939179044, 1.6741291716, 1.9552949226, 2.2199793918,
- 2.5103400247, 2.7829212906 },
- { 0.1493683393, 0.3714357373, 0.7702730245, 1.0609411394,
- 1.3270362536, 1.5806033119, 1.8398507524, 2.1116740248,
- 2.3823505771, 2.6865718527 }
-};
-
-static const double wmavoice_mean_lsf16[2][16] = {
- { 0.0999206754, 0.2345933590, 0.4621011210, 0.6772546160,
- 0.8346396060, 1.0067495130, 1.1571691668, 1.3292508688,
- 1.4941465650, 1.6600755584, 1.8461284908, 2.0529487333,
- 2.2690810112, 2.4949894820, 2.7172752965, 2.9164840903 },
- { 0.0918298402, 0.2475621892, 0.4782937721, 0.6284774045,
- 0.7861951264, 0.9303736000, 1.0940441024, 1.2521029300,
- 1.4434732098, 1.6551410742, 1.8917962963, 2.0967280403,
- 2.2981430375, 2.4826173497, 2.6827972461, 2.8811350800 }
-};
-
-static const float wmavoice_std_codebook[1000] = {
- -0.185013, -0.150405, -0.707267, -0.284100, 0.882898,
- -0.788627, 0.061005, 0.374431, 0.053843, -0.909826,
- 0.543602, 0.219326, 0.285698, 0.154709, -0.455005,
- 0.426276, -0.868852, -0.952324, -0.550001, 0.813814,
- -0.352815, 0.242122, 0.820495, -0.189574, -0.449538,
- 0.499132, -0.247783, 0.598159, 0.732040, -0.564406,
- -0.631788, -0.452973, 0.285189, -0.339055, 0.262927,
- 0.168087, -0.127682, -0.676067, -0.457481, 0.926161,
- -0.585893, -0.913880, 0.145487, 0.699804, 0.240829,
- 0.690482, 0.126081, 0.371977, 0.738158, 0.576080,
- 0.185791, -0.614657, -0.181799, 0.006285, 0.195768,
- 0.368663, -0.494583, 0.947985, -0.033178, -0.762543,
- -0.616421, 0.335034, -0.215516, 0.668769, 0.995979,
- -0.952588, -0.163144, -0.131704, -0.628655, 0.379374,
- -0.205543, -0.214549, 0.465494, 0.939944, -0.514744,
- -0.293676, 0.630426, 0.611336, -0.921699, 0.368584,
- 0.187416, 0.264092, 0.753927, -0.994382, -0.729623,
- -0.050304, 0.374280, -0.224205, -0.102319, -0.658897,
- 0.013252, 0.281260, 0.676137, 0.797736, -0.049971,
- 0.672115, 0.845148, 0.786885, -0.459588, -0.783507,
- 0.166259, 0.334869, 0.001944, -0.368247, 0.274813,
- 0.487200, 0.338077, -0.094761, 0.098536, 0.416378,
- -0.726176, -0.714048, -0.319530, -0.972249, -0.708430,
- -0.049153, -0.022553, 0.665850, 0.726642, 0.875127,
- -0.993047, -0.260106, 0.156387, 0.683090, -0.462370,
- -0.893584, 0.355205, -0.617222, 0.893301, 0.895617,
- -0.400729, 0.059559, 0.230486, 0.601215, 0.691313,
- -0.494701, 0.088415, 0.029390, 0.410539, -0.813049,
- -0.554232, 0.684362, -0.527097, 0.126238, 0.712113,
- -0.235528, -0.922915, -0.310440, -0.569678, 0.803727,
- -0.435313, -0.562725, -0.456380, 0.721075, -0.879635,
- 0.081250, 0.827491, 0.475570, 0.464029, 0.720792,
- 0.371187, -0.936700, -0.219649, -0.398327, 0.664515,
- -0.528336, 0.106972, -0.247070, 0.501053, -0.482490,
- -0.060119, 0.946821, -0.798127, 0.412784, 0.073058,
- 0.913986, -0.822744, 0.150143, -0.396453, -0.392421,
- -0.046130, 0.168234, 0.044854, 0.497490, -0.110691,
- 0.165219, -0.421259, -0.283200, -0.359212, -0.957231,
- -0.562409, -0.988025, -0.893931, 0.217942, -0.386352,
- 0.770585, 0.689606, 0.720620, -0.476485, 0.190659,
- -0.761870, 0.463395, 0.137480, -0.559997, -0.123821,
- -0.789461, -0.646011, 0.053435, 0.360682, -0.042464,
- 0.661014, -0.685448, -0.874230, -0.294133, 0.812042,
- 0.015078, 0.871086, -0.609218, 0.731878, -0.488126,
- -0.566448, -0.830530, -0.476150, -0.460379, 0.387412,
- 0.137497, -0.689794, 0.077018, -0.141883, -0.166280,
- -0.732322, 0.096247, -0.702884, 0.405158, 0.536250,
- 0.173295, 0.615696, 0.890239, -0.773270, -0.023622,
- -0.152226, 0.887744, 0.290930, -0.026456, -0.406389,
- 0.102972, 0.988622, -0.535303, 0.493754, 0.720500,
- -0.023428, 0.927306, 0.889970, 0.500421, -0.533073,
- 0.277382, -0.362081, -0.222867, -0.645599, 0.496035,
- 0.610853, -0.377922, -0.407718, 0.907969, -0.972764,
- -0.871468, 0.081264, 0.642933, -0.981230, 0.307994,
- -0.380689, -0.133456, 0.195738, 0.910241, 0.840088,
- 0.789349, 0.013213, 0.828710, -0.745954, -0.493033,
- 0.549210, 0.230618, -0.565727, 0.439180, -0.268961,
- -0.098800, -0.283438, 0.368958, 0.678333, 0.070963,
- -0.135007, 0.289186, 0.693041, 0.457275, 0.197155,
- 0.720277, 0.585807, -0.721581, 0.363210, 0.604577,
- 0.586413, 0.982521, -0.528878, -0.217849, 0.892762,
- -0.688791, -0.428500, -0.094025, -0.860081, -0.174454,
- 0.412942, 0.689129, -0.943836, 0.847215, 0.128309,
- -0.212797, -0.251585, 0.844871, -0.843839, -0.573252,
- -0.084167, 0.021154, 0.715935, -0.391126, -0.521570,
- -0.086910, -0.670848, -0.935763, 0.191509, 0.692361,
- 0.668814, -0.222078, 0.674882, -0.860064, 0.560073,
- 0.567644, -0.548855, -0.868427, -0.526382, -0.408936,
- -0.042881, 0.886560, -0.719807, 0.013283, 0.733775,
- 0.408502, 0.800487, -0.517810, 0.253372, 0.956648,
- -0.091062, -0.830794, -0.022198, -0.375127, -0.221920,
- 0.456232, 0.537963, 0.107232, 0.520469, -0.270529,
- -0.200406, 0.189284, 0.507393, -0.525524, 0.329220,
- 0.067466, -0.957881, 0.780365, 0.199039, -0.484262,
- -0.628570, -0.843843, -0.597703, -0.348377, 0.169441,
- -0.863928, -0.939875, -0.030073, -0.381738, 0.313497,
- -0.073425, 0.527200, 0.482703, 0.904377, -0.847927,
- -0.739217, 0.360609, 0.690035, 0.368015, -0.118921,
- -0.580493, -0.832391, -0.929638, 0.926900, -0.357915,
- 0.399582, -0.005634, -0.315796, 0.179947, -0.806596,
- 0.393360, 0.732931, -0.415833, -0.724526, 0.957347,
- -0.892887, 0.475366, 0.173583, -0.418554, -0.302536,
- 0.627315, 0.782000, 0.497542, 0.139082, 0.570111,
- 0.732375, -0.454643, 0.302218, -0.019505, 0.881778,
- -0.057606, 0.273041, 0.414170, -0.503501, -0.079602,
- -0.083941, 0.007178, -0.171925, 0.506856, 0.520953,
- 0.631684, -0.099784, 0.253885, -0.784149, 0.175691,
- 0.211231, -0.677036, -0.348943, -0.615186, -0.095591,
- 0.348521, -0.987871, -0.313590, -0.153938, 0.151210,
- -0.743479, -0.421562, 0.696567, 0.558739, 0.558933,
- 0.578346, -0.498867, -0.168026, -0.007485, -0.002368,
- 0.752372, 0.908575, -0.995190, -0.419553, 0.415430,
- 0.525763, -0.787869, -0.684353, -0.220353, -0.572018,
- 0.491337, 0.990879, -0.249054, -0.857606, -0.624307,
- 0.655355, 0.490915, -0.612178, -0.658235, -0.663023,
- 0.539032, -0.401714, -0.084585, 0.235599, -0.842975,
- -0.525653, -0.186055, -0.341841, 0.306321, 0.806460,
- 0.655791, 0.058693, 0.715035, 0.660601, 0.639140,
- 0.130465, 0.186363, 0.851271, 0.446112, 0.966011,
- -0.720746, -0.062551, 0.956890, 0.030200, 0.079843,
- -0.667418, -0.314445, -0.429243, -0.279596, 0.027320,
- -0.092266, -0.740564, 0.625606, 0.823149, 0.495035,
- 0.782632, -0.702504, -0.691020, -0.559209, 0.603818,
- -0.884560, -0.903419, -0.337489, 0.830475, 0.757182,
- -0.698349, -0.039060, -0.056455, -0.847078, -0.592948,
- -0.090444, -0.567824, 0.344501, -0.133554, 0.462375,
- -0.575656, 0.199028, -0.852070, -0.004899, 0.919432,
- 0.175251, 0.902835, -0.821132, -0.199143, 0.725984,
- 0.673903, -0.416511, -0.976519, 0.982883, 0.024279,
- 0.627298, -0.901677, 0.120861, -0.710191, 0.928798,
- -0.121958, -0.408540, -0.110261, 0.821588, -0.255618,
- 0.296790, -0.268856, 0.176557, -0.358709, 0.597589,
- -0.361067, 0.065635, -0.203382, -0.213137, -0.939264,
- -0.283951, 0.962113, 0.963571, -0.105083, -0.237030,
- 0.689556, -0.431180, 0.346459, 0.713037, -0.448297,
- -0.629262, 0.340335, -0.349973, 0.491599, 0.630144,
- -0.421175, -0.630359, -0.778396, 0.468564, -0.808771,
- -0.034014, -0.234646, -0.077627, -0.857457, 0.406645,
- -0.480038, -0.218524, -0.527720, 0.316580, 0.568338,
- -0.466984, -0.967371, 0.530452, -0.503413, -0.072454,
- -0.706578, -0.813857, 0.496366, 0.639881, 0.899179,
- -0.951931, -0.989381, 0.239514, -0.301904, 0.502218,
- -0.130341, 0.276921, 0.871860, 0.091262, -0.254515,
- -0.936911, -0.942752, 0.510839, -0.014539, -0.800209,
- -0.082516, 0.505423, -0.018733, 0.389763, -0.177997,
- -0.450395, 0.922779, -0.145368, -0.919943, -0.580634,
- 0.782178, -0.626521, -0.394491, 0.278545, -0.986640,
- -0.495312, 0.326614, -0.976021, 0.744203, -0.975290,
- 0.526197, -0.386139, 0.301631, 0.398057, 0.705124,
- -0.952884, 0.461146, 0.762372, 0.557954, -0.553393,
- 0.962163, -0.524562, 0.952030, -0.056570, 0.865202,
- -0.225967, 0.493035, 0.787981, 0.628665, 0.573093,
- -0.792653, 0.410844, 0.946571, -0.187144, -0.310612,
- 0.959931, 0.317544, -0.983998, 0.983911, 0.061747,
- -0.959287, 0.510108, 0.675608, 0.342344, -0.091835,
- 0.380731, 0.389460, -0.630689, 0.143103, -0.052586,
- -0.184083, 0.105266, 0.422852, -0.232052, -0.951303,
- 0.288054, 0.541981, 0.541732, 0.076035, 0.170646,
- 0.114825, 0.283382, -0.418510, 0.061396, -0.903763,
- 0.270879, 0.021327, 0.413782, 0.286881, 0.005238,
- -0.524472, 0.327594, -0.484654, -0.848864, -0.330063,
- 0.423511, 0.531868, -0.940603, 0.792822, -0.325029,
- 0.006811, -0.391261, 0.780237, -0.570337, 0.376687,
- 0.828934, 0.717717, -0.081333, 0.370666, -0.206248,
- -0.910686, -0.514510, -0.922867, -0.329196, 0.546886,
- -0.826629, 0.941683, -0.431786, 0.587152, 0.228564,
- 0.573452, -0.937320, -0.443843, -0.911202, -0.786184,
- 0.226094, 0.512309, 0.745684, 0.285491, 0.305131,
- -0.579345, -0.707698, 0.913870, -0.799108, -0.278035,
- 0.290556, -0.970174, -0.560318, -0.790776, 0.400492,
- 0.233434, -0.701462, 0.885982, 0.310567, -0.030658,
- 0.432868, 0.483938, -0.088976, -0.998918, 0.071090,
- -0.860412, 0.574534, 0.133770, -0.304255, 0.663332,
- 0.347586, 0.921839, 0.175641, 0.093270, 0.207330,
- -0.519228, 0.513925, 0.499633, -0.605358, 0.714817,
- -0.778402, 0.685198, 0.744643, -0.338720, 0.894422,
- 0.145135, 0.894714, -0.807041, 0.031117, 0.205281,
- 0.162301, -0.536015, -0.310781, -0.926675, -0.534932,
- 0.760308, -0.787088, -0.960398, -0.105922, -0.091343,
- 0.702934, -0.758336, -0.169504, -0.121425, 0.334935,
- -0.962173, 0.359347, -0.151140, 0.537460, 0.753989,
- -0.436323, 0.759058, 0.439187, -0.691680, -0.579662,
- 0.333608, 0.453454, -0.684948, 0.526567, -0.515429,
- 0.520333, -0.311132, -0.051443, -0.790448, -0.237807,
- 0.413625, 0.969861, -0.024895, 0.453226, -0.136061,
- 0.883762, 0.156160, 0.105603, -0.285741, -0.965264,
- -0.559462, -0.247914, 0.394083, 0.289398, -0.710455,
- 0.148072, 0.853074, -0.951397, -0.412742, -0.838606,
- -0.531059, 0.920866, 0.614848, -0.216007, 0.447434,
- -0.900580, -0.695673, -0.863698, 0.047977, -0.486121,
- -0.101505, -0.538399, -0.516261, 0.873600, 0.914828,
- 0.347678, 0.757362, 0.070988, -0.546718, -0.528380,
- 0.105724, -0.106180, 0.223706, -0.500194, -0.816782,
- 0.513251, 0.647878, -0.963708, 0.561854, -0.764864,
- -0.802314, -0.969205, -0.843997, 0.812534, -0.185212,
- 0.603436, 0.911954, 0.119114, 0.739738, -0.040069,
- 0.632993, -0.361767, 0.421532, -0.883268, -0.488168,
- 0.336360, 0.464411, -0.730806, -0.592652, 0.917693,
- -0.259186, 0.513071, -0.188487, 0.964520, -0.987122,
- -0.005270, 0.477771, 0.660756, 0.031023, 0.039625,
- 0.895892, 0.228709, 0.070419, -0.948105, 0.041243,
- 0.885207, 0.655331, -0.046803, 0.004321, 0.395069,
- 0.913128, -0.362686, -0.966698, 0.334661, -0.245954,
- -0.454865, -0.328980, -0.781543, -0.185671, 0.078368,
- -0.863850, 0.555143, -0.408560, -0.052338, 0.519663,
- -0.395683, 0.942393, -0.002565, -0.734927, -0.026585,
- -0.962941, -0.839035, -0.797876, 0.107479, -0.787140,
- 0.243367, -0.007314, 0.868191, -0.803435, 0.997007,
- 0.263261, -0.890307, -0.365679, 0.296563, 0.444354,
- 0.388367, 0.841698, -0.884626, 0.606824, -0.343973,
- 0.193743, 0.742974, -0.788830, 0.785182, -0.309364,
- 0.730833, -0.610500, -0.366971, -0.271732, -0.345427,
- 0.606444, -0.234673, -0.184462, 0.808568, 0.872806,
- 0.028398, 0.051936, -0.134508, -0.103410, 0.248500,
- -0.137501, -0.840150, 0.358194, 0.496819, 0.456413,
- -0.197453, -0.114814, 0.298111, -0.082078, -0.507990,
- 0.954138, -0.888336, -0.765016, -0.834692, 0.896847,
- -0.074380, 0.896141, -0.713654, 0.558649, -0.375591,
- -0.059081, 0.165093, 0.389736, 0.756458, -0.026339,
- 0.262542, -0.215144, -0.974403, -0.871966, 0.681446
-};
-
-static const float wmavoice_gain_silence[256] = {
- 0.0000188351, 0.0000249147, 0.0000294447, 0.0000365973,
- 0.0000423193, 0.0000464916, 0.0000498295, 0.0000525713,
- 0.0000550747, 0.0000574589, 0.0000596046, 0.0000615120,
- 0.0000634193, 0.0000649691, 0.0000665188, 0.0000679493,
- 0.0000692606, 0.0000704527, 0.0000716448, 0.0000728369,
- 0.0000737906, 0.0000747442, 0.0000755787, 0.0000762939,
- 0.0000770092, 0.0000778437, 0.0000785589, 0.0000792742,
- 0.0000799894, 0.0000807047, 0.0000814199, 0.0000822544,
- 0.0000829697, 0.0000838041, 0.0000845194, 0.0000854731,
- 0.0000865459, 0.0000876188, 0.0000889301, 0.0000904799,
- 0.0000923872, 0.0000950098, 0.0000988245, 0.0001032352,
- 0.0001088381, 0.0001147985, 0.0001225471, 0.0001319647,
- 0.0001431704, 0.0001568794, 0.0001744032, 0.0001952648,
- 0.0002206564, 0.0002535582, 0.0002965927, 0.0003464222,
- 0.0004109144, 0.0004891157, 0.0005909204, 0.0007261038,
- 0.0008867979, 0.0010721684, 0.0012696981, 0.0015079975,
- 0.0017461777, 0.0019979477, 0.0022052526, 0.0023679733,
- 0.0025173426, 0.0026556253, 0.0027927160, 0.0029264688,
- 0.0030447245, 0.0031807423, 0.0033060312, 0.0034313202,
- 0.0035454035, 0.0036598444, 0.0037686825, 0.0038731098,
- 0.0039769411, 0.0040702820, 0.0041661263, 0.0042562485,
- 0.0043400526, 0.0044249296, 0.0045082569, 0.0045900345,
- 0.0046693087, 0.0047430992, 0.0048171282, 0.0048881769,
- 0.0049589872, 0.0050252676, 0.0050880909, 0.0051497221,
- 0.0052082539, 0.0052671432, 0.0053246021, 0.0053800344,
- 0.0054348707, 0.0054861307, 0.0055367947, 0.0055862665,
- 0.0056355000, 0.0056805611, 0.0057252645, 0.0057705641,
- 0.0058110952, 0.0058538914, 0.0058966875, 0.0059366226,
- 0.0059723854, 0.0060091019, 0.0060437918, 0.0060794353,
- 0.0061159134, 0.0061485767, 0.0061824322, 0.0062153339,
- 0.0062497854, 0.0062820911, 0.0063197613, 0.0063550472,
- 0.0063927174, 0.0064336061, 0.0064769983, 0.0065194368,
- 0.0065603256, 0.0066006184, 0.0066410303, 0.0066826344,
- 0.0067234039, 0.0067654848, 0.0068060160, 0.0068466663,
- 0.0068866014, 0.0069231987, 0.0069609880, 0.0069983006,
- 0.0070366859, 0.0070750713, 0.0071122646, 0.0071535110,
- 0.0071973801, 0.0072410107, 0.0072846413, 0.0073343515,
- 0.0073832273, 0.0074360371, 0.0074878931, 0.0075426102,
- 0.0076007843, 0.0076560974, 0.0077134371, 0.0077683926,
- 0.0078265667, 0.0078855753, 0.0079488754, 0.0080170631,
- 0.0080827475, 0.0081528425, 0.0082212687, 0.0082877874,
- 0.0083510876, 0.0084129572, 0.0084775686, 0.0085455179,
- 0.0086110830, 0.0086781979, 0.0087503195, 0.0088242292,
- 0.0089002848, 0.0089734793, 0.0090423822, 0.0091133118,
- 0.0091816187, 0.0092473030, 0.0093164444, 0.0093911886,
- 0.0094678402, 0.0095427036, 0.0096175671, 0.0096931458,
- 0.0097666979, 0.0098397732, 0.0099166632, 0.0099946260,
- 0.0100749731, 0.0101612806, 0.0102528334, 0.0103493929,
- 0.0104434490, 0.0105448961, 0.0106583834, 0.0107737780,
- 0.0108981133, 0.0110142231, 0.0111318827, 0.0112472773,
- 0.0113576651, 0.0114786625, 0.0116028786, 0.0117331743,
- 0.0118676424, 0.0120122433, 0.0121580362, 0.0123010874,
- 0.0124633312, 0.0126402378, 0.0128232241, 0.0130140781,
- 0.0132108927, 0.0134289265, 0.0136625767, 0.0138912201,
- 0.0141364336, 0.0144006014, 0.0146615505, 0.0149335861,
- 0.0152134895, 0.0155050755, 0.0158376694, 0.0162067413,
- 0.0165973902, 0.0169926882, 0.0174319744, 0.0179271698,
- 0.0184448957, 0.0190744400, 0.0197248459, 0.0204203129,
- 0.0212460756, 0.0221523046, 0.0231562853, 0.0243031979,
- 0.0256397724, 0.0271918774, 0.0289602280, 0.0310072899,
- 0.0333702564, 0.0363805294, 0.0401413441, 0.0443998575,
- 0.0498176813, 0.0562580824, 0.0640066862, 0.0732775927,
- 0.0836604834, 0.0962959528, 0.1122496128, 0.1335854530,
- 0.1608980894, 0.1990102530, 0.2616490126, 0.3926030397
-};
-
-static const float wmavoice_gain_universal[64] = {
- 0.0000000000, 0.0000000000, 0.0000015497, 0.0000015497,
- 0.0000095367, 0.0000164509, 0.0000379086, 0.0000494719,
- 0.0000799894, 0.0001058578, 0.0001349449, 0.0001627207,
- 0.0001972914, 0.0002325773, 0.0002671480, 0.0003106594,
- 0.0003589392, 0.0004127026, 0.0004582405, 0.0005071163,
- 0.0005759001, 0.0006588697, 0.0007554293, 0.0008602142,
- 0.0009772778, 0.0011068583, 0.0012603998, 0.0013889074,
- 0.0015437603, 0.0016924143, 0.0018980503, 0.0021264553,
- 0.0023632050, 0.0025693178, 0.0028522015, 0.0031896830,
- 0.0034654140, 0.0037885904, 0.0041683912, 0.0046081543,
- 0.0050576925, 0.0055632591, 0.0061818361, 0.0068151951,
- 0.0073953867, 0.0081818104, 0.0091186762, 0.0102789402,
- 0.0119919777, 0.0134155750, 0.0154829025, 0.0173798800,
- 0.0199711323, 0.0229473114, 0.0268185139, 0.0319474936,
- 0.0393068790, 0.0460114479, 0.0523469448, 0.0637906790,
- 0.0845471621, 0.1105458736, 0.1499300003, 0.2219169140
-};
-
-static const float wmavoice_gain_codebook_acb[128] = {
- 0.05, 0.14, 0.16, 0.05, 0.17, 0.25, 0.07, 0.21,
- 0.12, 0.22, 0.23, 0.13, 0.24, 0.32, 0.14, 0.29,
- 0.31, 0.41, 0.43, 0.32, 0.43, 0.51, 0.34, 0.48,
- 0.38, 0.47, 0.49, 0.38, 0.49, 0.57, 0.40, 0.54,
- 0.49, 0.59, 0.61, 0.50, 0.61, 0.69, 0.52, 0.66,
- 0.56, 0.65, 0.67, 0.56, 0.67, 0.75, 0.58, 0.72,
- 0.65, 0.74, 0.76, 0.65, 0.76, 0.84, 0.67, 0.81,
- 0.71, 0.80, 0.82, 0.71, 0.82, 0.90, 0.73, 0.87,
- 0.81, 0.90, 0.92, 0.81, 0.93, 1.01, 0.83, 0.97,
- 0.87, 0.96, 0.98, 0.87, 0.98, 1.06, 0.89, 1.03,
- 0.92, 1.02, 1.04, 0.93, 1.04, 1.12, 0.95, 1.09,
- 0.93, 1.02, 1.04, 0.93, 1.04, 1.12, 0.95, 1.09,
- 0.94, 1.04, 1.05, 0.10, 1.06, 1.14, 0.96, 1.11,
- 0.98, 1.08, 1.10, 0.99, 1.10, 1.18, 1.01, 1.15,
- 1.06, 1.15, 1.17, 1.06, 1.17, 1.25, 1.08, 1.22,
- 1.16, 1.25, 1.27, 1.16, 1.28, 1.36, 1.18, 1.32
-};
-
-static const float wmavoice_gain_codebook_fcb[128] = {
- -0.8439700703 /* log(0.430) */, -0.6143360001 /* log(0.541) */,
- -0.1531511795 /* log(0.858) */, -0.0998203353 /* log(0.905) */,
- 0.3213585988 /* log(1.379) */, 0.3777512695 /* log(1.459) */,
- 0.7158866675 /* log(2.046) */, 1.2700414043 /* log(3.561) */,
- -1.6873994539 /* log(0.185) */, -1.2173958247 /* log(0.296) */,
- -0.4893903430 /* log(0.613) */, -0.4155154440 /* log(0.660) */,
- 0.1257512053 /* log(1.134) */, 0.1947440768 /* log(1.215) */,
- 0.5883420662 /* log(1.801) */, 1.1987592373 /* log(3.316) */,
- -1.3586791941 /* log(0.257) */, -0.9996723408 /* log(0.368) */,
- -0.3768776513 /* log(0.686) */, -0.3119747650 /* log(0.732) */,
- 0.1881379421 /* log(1.207) */, 0.2523139286 /* log(1.287) */,
- 0.6280751838 /* log(1.874) */, 1.2202397768 /* log(3.388) */,
- -0.7381445465 /* log(0.478) */, -0.5310283311 /* log(0.588) */,
- -0.0987159729 /* log(0.906) */, -0.0491902442 /* log(0.952) */,
- 0.3555743385 /* log(1.427) */, 0.4101209196 /* log(1.507) */,
- 0.7390761124 /* log(2.094) */, 1.2831536022 /* log(3.608) */,
- -0.2497442331 /* log(0.779) */, -0.1165338163 /* log(0.890) */,
- 0.1881379421 /* log(1.207) */, 0.2255406759 /* log(1.253) */,
- 0.5469646704 /* log(1.728) */, 0.5922212620 /* log(1.808) */,
- 0.8733832309 /* log(2.395) */, 1.3632815868 /* log(3.909) */,
- -1.3903023825 /* log(0.249) */, -1.0216512475 /* log(0.360) */,
- -0.3900840061 /* log(0.677) */, -0.3229638866 /* log(0.724) */,
- 0.1806534997 /* log(1.198) */, 0.2460785226 /* log(1.279) */,
- 0.6232610531 /* log(1.865) */, 1.2178757095 /* log(3.380) */,
- -0.6033064766 /* log(0.547) */, -0.4185503477 /* log(0.658) */,
- -0.0253178080 /* log(0.975) */, 0.0217614918 /* log(1.022) */,
- 0.4027948796 /* log(1.496) */, 0.4555243080 /* log(1.577) */,
- 0.7714961470 /* log(2.163) */, 1.3023691262 /* log(3.678) */,
- -1.1056369036 /* log(0.331) */, -0.8164453969 /* log(0.442) */,
- -0.2757535016 /* log(0.759) */, -0.2156715365 /* log(0.806) */,
- 0.2468600779 /* log(1.280) */, 0.3082197237 /* log(1.361) */,
- 0.6662897264 /* log(1.947) */, 1.2418464568 /* log(3.462) */,
- -0.5395680926 /* log(0.583) */, -0.3652833185 /* log(0.694) */,
- 0.0109399400 /* log(1.011) */, 0.0554347069 /* log(1.057) */,
- 0.4265740713 /* log(1.532) */, 0.4774756441 /* log(1.612) */,
- 0.7880027116 /* log(2.199) */, 1.3118401752 /* log(3.713) */,
- -0.9571127264 /* log(0.384) */, -0.7031975164 /* log(0.495) */,
- -0.2082549388 /* log(0.812) */, -0.1519863570 /* log(0.859) */,
- 0.2874320412 /* log(1.333) */, 0.3464225675 /* log(1.414) */,
- 0.6931471806 /* log(2.000) */, 1.2570395253 /* log(3.515) */,
- -0.2420715612 /* log(0.785) */, -0.1098148660 /* log(0.896) */,
- 0.1930966300 /* log(1.213) */, 0.2311117210 /* log(1.260) */,
- 0.5504308784 /* log(1.734) */, 0.5960854677 /* log(1.815) */,
- 0.8758853172 /* log(2.401) */, 1.3650707247 /* log(3.916) */,
- 0.6564831962 /* log(1.928) */, 0.7124594916 /* log(2.039) */,
- 0.8569652658 /* log(2.356) */, 0.8767179568 /* log(2.403) */,
- 1.0567480846 /* log(2.877) */, 1.0841752409 /* log(2.957) */,
- 1.2652560327 /* log(3.544) */, 1.6211688353 /* log(5.059) */,
- -1.5417792640 /* log(0.214) */, -1.1239300967 /* log(0.325) */,
- -0.4431669753 /* log(0.642) */, -5.2983173665 /* log(0.005) */,
- 0.1510028735 /* log(1.163) */, 0.2183319943 /* log(1.244) */,
- 0.6043159669 /* log(1.830) */, 1.2074666936 /* log(3.345) */,
- -0.5124936809 /* log(0.599) */, -0.3424903089 /* log(0.710) */,
- 0.0266419309 /* log(1.027) */, 0.0713899961 /* log(1.074) */,
- 0.4369637752 /* log(1.548) */, 0.4879663296 /* log(1.629) */,
- 0.7952524035 /* log(2.215) */, 1.3164082337 /* log(3.730) */,
- -0.8867319296 /* log(0.412) */, -0.6481738149 /* log(0.523) */,
- -0.1743533871 /* log(0.840) */, -0.1199102967 /* log(0.887) */,
- 0.3089542077 /* log(1.362) */, 0.3660310389 /* log(1.442) */,
- 0.7075430608 /* log(2.029) */, 1.2649738259 /* log(3.543) */,
- -0.0943106795 /* log(0.910) */, 0.0207825392 /* log(1.021) */,
- 0.2911759617 /* log(1.338) */, 0.3249778572 /* log(1.384) */,
- 0.6200387087 /* log(1.859) */, 0.6621723763 /* log(1.939) */,
- 0.9266370239 /* log(2.526) */, 1.3962446920 /* log(4.040) */
-};
-
-static const float wmavoice_ipol1_coeffs[17*9] = {
- 0,
- 0.6308171151, 0.7613050340, 0.8632577061, 0.9280143976,
- 0.9499985575, 0.9273047447, 0.8618999123, 0.7594153284,
- -0.1791058179, -0.1351341452, -0.0589959878, 0.0472882274,
- 0.1784339990, 0.3262237605, 0.4801855979, 0.6285545824,
- 0,
- -0.1921342459, -0.1786532696, -0.1341681625, -0.0575229186,
- 0.0492091286, 0.1806929555, 0.3286687729, 0.4826357064,
- 0.0807464118, 0.0506337392, 0.0080115446, -0.0428523305,
- -0.0958572026, -0.1436148431, -0.1782128509, -0.1921164688,
- 0,
- 0.0960653644, 0.0803771760, 0.0500416081, 0.0072485465,
- -0.0437018941, -0.0966834794, -0.1442930843, -0.1786170151,
- -0.0391932014, -0.0189622506, 0.0070230183, 0.0356589290,
- 0.0630142610, 0.0847979258, 0.0969368290, 0.0961942221,
- 0,
- -0.0515680681, -0.0389267015, -0.0185848991, 0.0074699190,
- 0.0361179407, 0.0634181346, 0.0850781347, 0.0970333587,
- 0.0178811825, 0.0048708571, -0.0108041526, -0.0271167825,
- -0.0416534986, -0.0519338618, -0.0557823736, -0.0517020743,
- 0,
- 0.0267091128, 0.0177022810, 0.0046363524, -0.0110662053,
- -0.0273700613, -0.0418578978, -0.0520511451, -0.0557823028,
- -0.0069270437, 0.0008217385, 0.0097293532, 0.0185749526,
- 0.0259542684, 0.0304777338, 0.0309953480, 0.0268154419,
- 0,
- -0.0125539196, -0.0068173436, 0.0009580161, 0.0098749646,
- 0.0187084037, 0.0260526291, 0.0305201071, 0.0309665180,
- 0.0019149571, -0.0022503408, -0.0068592466, -0.0112465904,
- -0.0146595868, -0.0163685936, -0.0157934162, -0.0126258885,
- 0,
- 0.0050976076, 0.0018546581, -0.0023221741, -0.0069331308,
- -0.0113109085, -0.0147021576, -0.0163786146, -0.0157635096,
- -0.0001162733, 0.0019313511, 0.0040823850, 0.0060192454,
- 0.0073876535, 0.0078486321, 0.0071403184, 0.0051400312,
- 0,
- -0.0017920607, -0.0000857157, 0.0019657183, 0.0041159806,
- 0.0060465694, 0.0074030068, 0.0078470460, 0.0071185785,
- -0.0004100171, -0.0015364708, -0.0025490071, -0.0033188616,
- -0.0037196307, -0.0036417283, -0.0030119629, -0.0018155784,
- 0,
- 0.0006907531, -0.0004282868, -0.0015539061, -0.0025635813,
- -0.0033285026, -0.0037224069, -0.0036361245, -0.0029972247,
- 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/**
- * Hamming-window sinc function (num = 32, x = [ 0, 31 ]):
- * (0.54 + 0.46 * cos(2 * M_PI * x / (num - 1))) *
- * sin(x * M_PI / 4) / (x * M_PI / 4)
- */
-static const float wmavoice_ipol2_coeffs[32] = {
- 1, 0.8563459515, 0.5888634918, 0.2648358640,
- 0, -0.1360490318, -0.1434589471, -0.0758505310,
- 0, 0.0410402636, 0.0412485781, 0.0200064587,
- 0, -0.0081391358, -0.0068223253, -0.0029313546,
- 0, 0.0025864919, 0.0053062555, 0.0055688801,
- 0, -0.0104795941, -0.0187493577, -0.0160592399,
- 0, 0.0212381664, 0.0331059131, 0.0251942366,
- 0, -0.0273968070, -0.0392575669, -0.0276240534
-};
-
-/**
- * LUT for 1.071575641632 * pow(1.0331663, n - 127)
- */
-static const float wmavoice_energy_table[128] = {
- 0.0169982178, 0.0175619858, 0.0181444519, 0.0187462362,
- 0.0193679795, 0.0200103437, 0.0206740128, 0.0213596933,
- 0.0220681153, 0.0228000330, 0.0235562258, 0.0243374986,
- 0.0251446834, 0.0259786395, 0.0268402549, 0.0277304468,
- 0.0286501631, 0.0296003830, 0.0305821182, 0.0315964139,
- 0.0326443501, 0.0337270424, 0.0348456436, 0.0360013446,
- 0.0371953760, 0.0384290090, 0.0397035571, 0.0410203772,
- 0.0423808713, 0.0437864880, 0.0452387238, 0.0467391249,
- 0.0482892887, 0.0498908657, 0.0515455612, 0.0532551367,
- 0.0550214125, 0.0568462692, 0.0587316496, 0.0606795611,
- 0.0626920777, 0.0647713419, 0.0669195677, 0.0691390421,
- 0.0714321284, 0.0738012678, 0.0762489827, 0.0787778794,
- 0.0813906502, 0.0840900769, 0.0868790336, 0.0897604897,
- 0.0927375130, 0.0958132732, 0.0989910450, 0.1022742117,
- 0.1056662688, 0.1091708280, 0.1127916204, 0.1165325012,
- 0.1203974531, 0.1243905911, 0.1285161668, 0.1327785725,
- 0.1371823465, 0.1417321773, 0.1464329093, 0.1512895470,
- 0.1563072616, 0.1614913951, 0.1668474671, 0.1723811803,
- 0.1780984262, 0.1840052921, 0.1901080668, 0.1964132480,
- 0.2029275487, 0.2096579046, 0.2166114816, 0.2237956830,
- 0.2312181577, 0.2388868085, 0.2468098001, 0.2549955679,
- 0.2634528274, 0.2721905830, 0.2812181375, 0.2905451026,
- 0.3001814086, 0.3101373153, 0.3204234225, 0.3310506819,
- 0.3420304081, 0.3533742912, 0.3650944090, 0.3772032397,
- 0.3897136755, 0.4026390362, 0.4159930832, 0.4297900346,
- 0.4440445799, 0.4587718956, 0.4739876619, 0.4897080789,
- 0.5059498840, 0.5227303696, 0.5400674019, 0.5579794393,
- 0.5764855528, 0.5956054456, 0.6153594745, 0.6357686714,
- 0.6568547659, 0.6786402082, 0.7011481929, 0.7244026842,
- 0.7484284410, 0.7732510432, 0.7988969192, 0.8253933741,
- 0.8527686184, 0.8810517982, 0.9102730265, 0.9404634147,
- 0.9716551065, 1.0038813113, 1.0371763400, 1.0715756416
-};
-
-/**
- * LUT for f(x,y) = pow((y + 6.9) / 64, 0.025 * (x + 1)).
- */
-static const float wmavoice_denoise_power_table[12][64] = {
- { 0.9458379339, 0.9490436287, 0.9518757236, 0.9544130754,
- 0.9567118717, 0.9588135761, 0.9607496688, 0.9625446194,
- 0.9642178285, 0.9657849396, 0.9672587526, 0.9686498743,
- 0.9699671937, 0.9712182343, 0.9724094211, 0.9735462842,
- 0.9746336187, 0.9756756090, 0.9766759291, 0.9776378218,
- 0.9785641645, 0.9794575217, 0.9803201890, 0.9811542296,
- 0.9819615045, 0.9827436985, 0.9835023412, 0.9842388263,
- 0.9849544265, 0.9856503078, 0.9863275406, 0.9869871101,
- 0.9876299254, 0.9882568267, 0.9888685922, 0.9894659445,
- 0.9900495551, 0.9906200497, 0.9911780119, 0.9917239872,
- 0.9922584859, 0.9927819864, 0.9932949377, 0.9937977618,
- 0.9942908555, 0.9947745929, 0.9952493267, 0.9957153901,
- 0.9961730980, 0.9966227482, 0.9970646231, 0.9974989903,
- 0.9979261037, 0.9983462046, 0.9987595223, 0.9991662752,
- 0.9995666709, 0.9999609077, 1.0003491745, 1.0007316515,
- 1.0011085110, 1.0014799178, 1.0018460292, 1.0022069960 },
- { 0.8946093973, 0.9006838092, 0.9060673931, 0.9109043185,
- 0.9152976055, 0.9193234737, 0.9230399260, 0.9264921443,
- 0.9297160207, 0.9327405496, 0.9355894944, 0.9382825789,
- 0.9408363568, 0.9432648587, 0.9455800822, 0.9477923675,
- 0.9499106907, 0.9519428941, 0.9538958704, 0.9557757107,
- 0.9575878241, 0.9593370368, 0.9610276730, 0.9626636222,
- 0.9642483964, 0.9657851769, 0.9672768552, 0.9687260672,
- 0.9701352224, 0.9715065293, 0.9728420173, 0.9741435556,
- 0.9754128696, 0.9766515555, 0.9778610927, 0.9790428553,
- 0.9801981216, 0.9813280829, 0.9824338513, 0.9835164667,
- 0.9845769028, 0.9856160726, 0.9866348334, 0.9876339913,
- 0.9886143053, 0.9895764906, 0.9905212223, 0.9914491381,
- 0.9923608411, 0.9932569022, 0.9941378627, 0.9950042356,
- 0.9958565084, 0.9966951442, 0.9975205834, 0.9983332454,
- 0.9991335296, 0.9999218170, 1.0006984708, 1.0014638383,
- 1.0022182509, 1.0029620257, 1.0036954662, 1.0044188628 },
- { 0.8461555040, 0.8547882305, 0.8624635555, 0.8693789920,
- 0.8756760853, 0.8814598273, 0.8868103032, 0.8917900284,
- 0.8964487626, 0.9008267754, 0.9049571273, 0.9088673021,
- 0.9125804007, 0.9161160306, 0.9194909803, 0.9227197376,
- 0.9258148939, 0.9287874629, 0.9316471355, 0.9344024839,
- 0.9370611291, 0.9396298766, 0.9421148300, 0.9445214846,
- 0.9468548060, 0.9491192967, 0.9513190517, 0.9534578074,
- 0.9555389816, 0.9575657096, 0.9595408742, 0.9614671327,
- 0.9633469396, 0.9651825670, 0.9669761222, 0.9687295635,
- 0.9704447142, 0.9721232742, 0.9737668316, 0.9753768718,
- 0.9769547868, 0.9785018824, 0.9800193854, 0.9815084500,
- 0.9829701633, 0.9844055505, 0.9858155796, 0.9872011653,
- 0.9885631734, 0.9899024236, 0.9912196934, 0.9925157203,
- 0.9937912053, 0.9950468143, 0.9962831814, 0.9975009102,
- 0.9987005760, 0.9998827277, 1.0010478892, 1.0021965608,
- 1.0033292209, 1.0044463270, 1.0055483173, 1.0066356112 },
- { 0.8003259737, 0.8112313241, 0.8209581209, 0.8297466775,
- 0.8377697066, 0.8451556492, 0.8520027051, 0.8583876935,
- 0.8643718792, 0.8700049328, 0.8753277020, 0.8803741979,
- 0.8851730502, 0.8897485937, 0.8941216918, 0.8983103719,
- 0.9023303202, 0.9061952736, 0.9099173316, 0.9135072091,
- 0.9169744409, 0.9203275502, 0.9235741882, 0.9267212496,
- 0.9297749699, 0.9327410079, 0.9356245146, 0.9384301933,
- 0.9411623497, 0.9438249364, 0.9464215906, 0.9489556668,
- 0.9514302661, 0.9538482608, 0.9562123167, 0.9585249126,
- 0.9607883576, 0.9630048062, 0.9651762722, 0.9673046403,
- 0.9693916775, 0.9714390425, 0.9734482944, 0.9754209007,
- 0.9773582446, 0.9792616307, 0.9811322918, 0.9829713934,
- 0.9847800389, 0.9865592739, 0.9883100900, 0.9900334289,
- 0.9917301853, 0.9934012104, 0.9950473143, 0.9966692689,
- 0.9982678100, 0.9998436400, 1.0013974295, 1.0029298194,
- 1.0044414224, 1.0059328250, 1.0074045889, 1.0088572520 },
- { 0.7569786654, 0.7698939195, 0.7814501054, 0.7919210783,
- 0.8015042240, 0.8103467104, 0.8185613167, 0.8262364557,
- 0.8334427763, 0.8402376615, 0.8466683811, 0.8527743561,
- 0.8585888194, 0.8641400582, 0.8694523567, 0.8745467247,
- 0.8794414652, 0.8841526254, 0.8886943552, 0.8930791981,
- 0.8973183276, 0.9014217415, 0.9053984227, 0.9092564737,
- 0.9130032283, 0.9166453478, 0.9201889007, 0.9236394320,
- 0.9270020224, 0.9302813390, 0.9334816797, 0.9366070112,
- 0.9396610028, 0.9426470554, 0.9455683275, 0.9484277579,
- 0.9512280860, 0.9539718690, 0.9566614986, 0.9592992147,
- 0.9618871182, 0.9644271823, 0.9669212630, 0.9693711079,
- 0.9717783651, 0.9741445900, 0.9764712529, 0.9787597445,
- 0.9810113822, 0.9832274148, 0.9854090274, 0.9875573457,
- 0.9896734398, 0.9917583281, 0.9938129803, 0.9958383209,
- 0.9978352315, 0.9998045539, 1.0017470919, 1.0036636145,
- 1.0055548568, 1.0074215229, 1.0092642871, 1.0110837959 },
- { 0.7159791370, 0.7306629191, 0.7438433845, 0.7558198318,
- 0.7668086064, 0.7769714272, 0.7864325139, 0.7952894548,
- 0.8036203840, 0.8114888792, 0.8189474022, 0.8260397728,
- 0.8328029877, 0.8392685815, 0.8454636629, 0.8514117142,
- 0.8571332177, 0.8626461513, 0.8679663850, 0.8731080020,
- 0.8780835596, 0.8829043049, 0.8875803529, 0.8921208349,
- 0.8965340237, 0.9008274393, 0.9050079382, 0.9090817905,
- 0.9130547454, 0.9169320882, 0.9207186893, 0.9244190474,
- 0.9280373261, 0.9315773876, 0.9350428208, 0.9384369673,
- 0.9417629433, 0.9450236603, 0.9482218422, 0.9513600421,
- 0.9544406555, 0.9574659338, 0.9604379957, 0.9633588374,
- 0.9662303420, 0.9690542879, 0.9718323569, 0.9745661408,
- 0.9772571477, 0.9799068082, 0.9825164805, 0.9850874551,
- 0.9876209597, 0.9901181627, 0.9925801775, 0.9950080658,
- 0.9974028405, 0.9997654692, 1.0020968764, 1.0043979464,
- 1.0066695255, 1.0089124239, 1.0111274185, 1.0133152537 },
- { 0.6772002277, 0.6934309881, 0.7080464599, 0.7213643301,
- 0.7336148970, 0.7449707526, 0.7555647772, 0.7655015856,
- 0.7748651015, 0.7837237382, 0.7921340426, 0.8001433220,
- 0.8077915768, 0.8151129499, 0.8221368310, 0.8288887107,
- 0.8353908496, 0.8416628090, 0.8477218755, 0.8535834053,
- 0.8592611049, 0.8647672624, 0.8701129393, 0.8753081305,
- 0.8803618988, 0.8852824894, 0.8900774261, 0.8947535945,
- 0.8993173131, 0.9037743949, 0.9081302004, 0.9123896841,
- 0.9165574352, 0.9206377129, 0.9246344779, 0.9285514202,
- 0.9323919830, 0.9361593853, 0.9398566405, 0.9434865742,
- 0.9470518396, 0.9505549317, 0.9539981992, 0.9573838564,
- 0.9607139933, 0.9639905847, 0.9672154989, 0.9703905051,
- 0.9735172803, 0.9765974162, 0.9796324243, 0.9826237418,
- 0.9855727362, 0.9884807098, 0.9913489039, 0.9941785028,
- 0.9969706369, 0.9997263861, 1.0024467831, 1.0051328157,
- 1.0077854297, 1.0104055314, 1.0129939892, 1.0155516364 },
- { 0.6405216642, 0.6580962612, 0.6739722363, 0.6884795488,
- 0.7018580813, 0.7142880714, 0.7259086094, 0.7368294324,
- 0.7471387455, 0.7569085832, 0.7661985859, 0.7750587283,
- 0.7835313288, 0.7916525600, 0.7994535998, 0.8069615243,
- 0.8142000068, 0.8211898738, 0.8279495504, 0.8344954211,
- 0.8408421252, 0.8470027997, 0.8529892811, 0.8588122744,
- 0.8644814947, 0.8700057878, 0.8753932324, 0.8806512276,
- 0.8857865684, 0.8908055105, 0.8957138271, 0.9005168576,
- 0.9052195513, 0.9098265046, 0.9143419945, 0.9187700080,
- 0.9231142680, 0.9273782568, 0.9315652364, 0.9356782672,
- 0.9397202245, 0.9436938133, 0.9476015819, 0.9514459336,
- 0.9552291382, 0.9589533414, 0.9626205741, 0.9662327603,
- 0.9697917251, 0.9732992008, 0.9767568340, 0.9801661903,
- 0.9835287605, 0.9868459649, 0.9901191578, 0.9933496315,
- 0.9965386205, 0.9996873045, 1.0027968119, 1.0058682226,
- 1.0089025710, 1.0119008485, 1.0148640056, 1.0177929548 },
- { 0.6058296875, 0.6245620637, 0.6415378101, 0.6570938835,
- 0.6714759586, 0.6848691001, 0.6974164561, 0.7092312055,
- 0.7204044988, 0.7310109103, 0.7411122884, 0.7507605397,
- 0.7599996842, 0.7688674015, 0.7773962122, 0.7856143935,
- 0.7935466990, 0.8012149303, 0.8086383963, 0.8158342858,
- 0.8228179717, 0.8296032631, 0.8362026133, 0.8426272954,
- 0.8488875492, 0.8549927056, 0.8609512936, 0.8667711307,
- 0.8724594015, 0.8780227256, 0.8834672161, 0.8887985309,
- 0.8940219180, 0.8991422543, 0.9041640810, 0.9090916337,
- 0.9139288704, 0.9186794948, 0.9233469789, 0.9279345818,
- 0.9324453671, 0.9368822185, 0.9412478543, 0.9455448393,
- 0.9497755970, 0.9539424198, 0.9580474782, 0.9620928299,
- 0.9660804271, 0.9700121244, 0.9738896845, 0.9777147851,
- 0.9814890239, 0.9852139236, 0.9888909370, 0.9925214512,
- 0.9961067913, 0.9996482244, 1.0031469629, 1.0066041676,
- 1.0100209506, 1.0133983785, 1.0167374742, 1.0200392198 },
- { 0.5730166999, 0.5927366473, 0.6106642672, 0.6271389942,
- 0.6424090212, 0.6566617910, 0.6700426292, 0.6826666808,
- 0.6946268614, 0.7059993279, 0.7168473476, 0.7272241023,
- 0.7371747608, 0.7467380401, 0.7559474006, 0.7648319736,
- 0.7734172908, 0.7817258650, 0.7897776570, 0.7975904541,
- 0.8051801811, 0.8125611560, 0.8197463039, 0.8267473349,
- 0.8335748949, 0.8402386937, 0.8467476129, 0.8531098003,
- 0.8593327495, 0.8654233698, 0.8713880464, 0.8772326935,
- 0.8829628002, 0.8885834710, 0.8940994619, 0.8995152120,
- 0.9048348715, 0.9100623268, 0.9152012229, 0.9202549833,
- 0.9252268281, 0.9301197899, 0.9349367288, 0.9396803449,
- 0.9443531909, 0.9489576823, 0.9534961076, 0.9579706374,
- 0.9623833320, 0.9667361492, 0.9710309512, 0.9752695109,
- 0.9794535174, 0.9835845813, 0.9876642399, 0.9916939614,
- 0.9956751493, 0.9996091459, 1.0034972362, 1.0073406510,
- 1.0111405700, 1.0148981248, 1.0186144013, 1.0222904422 },
- { 0.5419809316, 0.5625329386, 0.5812764912, 0.5985496562,
- 0.6146003370, 0.6296162401, 0.6437432340, 0.6570971404,
- 0.6697716039, 0.6818435182, 0.6933768712, 0.7044255353,
- 0.7150353340, 0.7252456009, 0.7350903742, 0.7445993259,
- 0.7537984929, 0.7627108595, 0.7713568269, 0.7797545943,
- 0.7879204712, 0.7958691361, 0.8036138516, 0.8111666444,
- 0.8185384580, 0.8257392814, 0.8327782597, 0.8396637886,
- 0.8464035955, 0.8530048108, 0.8594740287, 0.8658173611,
- 0.8720404845, 0.8781486812, 0.8841468762, 0.8900396688,
- 0.8958313620, 0.9015259874, 0.9071273286, 0.9126389413,
- 0.9180641715, 0.9234061727, 0.9286679198, 0.9338522236,
- 0.9389617420, 0.9439989920, 0.9489663591, 0.9538661069,
- 0.9587003852, 0.9634712378, 0.9681806094, 0.9728303524,
- 0.9774222323, 0.9819579336, 0.9864390644, 0.9908671615,
- 0.9952436943, 0.9995700689, 1.0038476318, 1.0080776733,
- 1.0122614305, 1.0164000906, 1.0204947932, 1.0245466331 },
- { 0.5126261246, 0.5338683013, 0.5533029807, 0.5712636181,
- 0.5879954388, 0.6036845987, 0.6184760989, 0.6324853169,
- 0.6458057215, 0.6585142011, 0.6706748475, 0.6823417062,
- 0.6935608163, 0.7043717519, 0.7148088052, 0.7249019070,
- 0.7346773529, 0.7441583823, 0.7533656456, 0.7623175831,
- 0.7710307376, 0.7795200117, 0.7877988829, 0.7958795841,
- 0.8037732557, 0.8114900754, 0.8190393682, 0.8264297018,
- 0.8336689680, 0.8407644543, 0.8477229049, 0.8545505751,
- 0.8612532786, 0.8678364291, 0.8743050768, 0.8806639416,
- 0.8869174414, 0.8930697184, 0.8991246621, 0.9050859297,
- 0.9109569648, 0.9167410144, 0.9224411436, 0.9280602496,
- 0.9336010737, 0.9390662129, 0.9444581300, 0.9497791628,
- 0.9550315328, 0.9602173528, 0.9653386345, 0.9703972943,
- 0.9753951600, 0.9803339761, 0.9852154088, 0.9900410510,
- 0.9948124263, 0.9995309934, 1.0041981497, 1.0088152348,
- 1.0133835335, 1.0179042791, 1.0223786564, 1.0268078035 },
-};
-
-#endif /* AVCODEC_WMAVOICE_DATA_H */
+++ /dev/null
-/*
- * Copyright (c) 2002 The FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_WMV2_H
-#define AVCODEC_WMV2_H
-
-#include "avcodec.h"
-#include "dsputil.h"
-#include "mpegvideo.h"
-#include "intrax8.h"
-
-#define SKIP_TYPE_NONE 0
-#define SKIP_TYPE_MPEG 1
-#define SKIP_TYPE_ROW 2
-#define SKIP_TYPE_COL 3
-
-
-typedef struct Wmv2Context{
- MpegEncContext s;
- IntraX8Context x8;
- int j_type_bit;
- int j_type;
- int abt_flag;
- int abt_type;
- int abt_type_table[6];
- int per_mb_abt;
- int per_block_abt;
- int mspel_bit;
- int cbp_table_index;
- int top_left_mv_flag;
- int per_mb_rl_bit;
- int skip_type;
- int hshift;
-
- ScanTable abt_scantable[2];
- DECLARE_ALIGNED(16, DCTELEM, abt_block2)[6][64];
-}Wmv2Context;
-
-void ff_wmv2_common_init(Wmv2Context * w);
-
-#endif /* AVCODEC_WMV2_H */
+++ /dev/null
-/*
- * Copyright (C) 2007 FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_XIPH_H
-#define AVCODEC_XIPH_H
-
-#include "libavutil/common.h"
-
-/**
- * Splits a single extradata buffer into the three headers that most
- * Xiph codecs use. (e.g. Theora and Vorbis)
- * Works both with Matroska's packing and lavc's packing.
- *
- * @param[in] extradata The single chunk that combines all three headers
- * @param[in] extradata_size The size of the extradata buffer
- * @param[in] first_header_size The size of the first header, used to
- * differentiate between the Matroska packing and lavc packing.
- * @param[out] header_start Pointers to the start of the three separate headers.
- * @param[out] header_len The sizes of each of the three headers.
- * @return On error a negative value is returned, on success zero.
- */
-int ff_split_xiph_headers(uint8_t *extradata, int extradata_size,
- int first_header_size, uint8_t *header_start[3],
- int header_len[3]);
-
-#endif /* AVCODEC_XIPH_H */
+++ /dev/null
-/*
- * Copyright (C) 2003 Ivan Kalvachev
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_XVMC_H
-#define AVCODEC_XVMC_H
-
-#include <X11/extensions/XvMC.h>
-
-#include "avcodec.h"
-
-#if LIBAVCODEC_VERSION_MAJOR < 53
-#define AV_XVMC_STATE_DISPLAY_PENDING 1 /** the surface should be shown, the video driver manipulates this */
-#define AV_XVMC_STATE_PREDICTION 2 /** the surface is needed for prediction, the codec manipulates this */
-#define AV_XVMC_STATE_OSD_SOURCE 4 /** the surface is needed for subpicture rendering */
-#endif
-#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct
- the number is 1337 speak for the letters IDCT MCo (motion compensation) */
-
-struct xvmc_pix_fmt {
- /** The field contains the special constant value AV_XVMC_ID.
- It is used as a test that the application correctly uses the API,
- and that there is no corruption caused by pixel routines.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int xvmc_id;
-
- /** Pointer to the block array allocated by XvMCCreateBlocks().
- The array has to be freed by XvMCDestroyBlocks().
- Each group of 64 values represents one data block of differential
- pixel information (in MoCo mode) or coefficients for IDCT.
- - application - set the pointer during initialization
- - libavcodec - fills coefficients/pixel data into the array
- */
- short* data_blocks;
-
- /** Pointer to the macroblock description array allocated by
- XvMCCreateMacroBlocks() and freed by XvMCDestroyMacroBlocks().
- - application - set the pointer during initialization
- - libavcodec - fills description data into the array
- */
- XvMCMacroBlock* mv_blocks;
-
- /** Number of macroblock descriptions that can be stored in the mv_blocks
- array.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int allocated_mv_blocks;
-
- /** Number of blocks that can be stored at once in the data_blocks array.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int allocated_data_blocks;
-
- /** Indicates that the hardware would interpret data_blocks as IDCT
- coefficients and perform IDCT on them.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int idct;
-
- /** In MoCo mode it indicates that intra macroblocks are assumed to be in
- unsigned format; same as the XVMC_INTRA_UNSIGNED flag.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int unsigned_intra;
-
- /** Pointer to the surface allocated by XvMCCreateSurface().
- It has to be freed by XvMCDestroySurface() on application exit.
- It identifies the frame and its state on the video hardware.
- - application - set during initialization
- - libavcodec - unchanged
- */
- XvMCSurface* p_surface;
-
-/** Set by the decoder before calling ff_draw_horiz_band(),
- needed by the XvMCRenderSurface function. */
-//@{
- /** Pointer to the surface used as past reference
- - application - unchanged
- - libavcodec - set
- */
- XvMCSurface* p_past_surface;
-
- /** Pointer to the surface used as future reference
- - application - unchanged
- - libavcodec - set
- */
- XvMCSurface* p_future_surface;
-
- /** top/bottom field or frame
- - application - unchanged
- - libavcodec - set
- */
- unsigned int picture_structure;
-
- /** XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
- - application - unchanged
- - libavcodec - set
- */
- unsigned int flags;
-//}@
-
- /** Number of macroblock descriptions in the mv_blocks array
- that have already been passed to the hardware.
- - application - zeroes it on get_buffer().
- A successful ff_draw_horiz_band() may increment it
- with filled_mb_block_num or zero both.
- - libavcodec - unchanged
- */
- int start_mv_blocks_num;
-
- /** Number of new macroblock descriptions in the mv_blocks array (after
- start_mv_blocks_num) that are filled by libavcodec and have to be
- passed to the hardware.
- - application - zeroes it on get_buffer() or after successful
- ff_draw_horiz_band().
- - libavcodec - increment with one of each stored MB
- */
- int filled_mv_blocks_num;
-
- /** Number of the the next free data block; one data block consists of
- 64 short values in the data_blocks array.
- All blocks before this one have already been claimed by placing their
- position into the corresponding block description structure field,
- that are part of the mv_blocks array.
- - application - zeroes it on get_buffer().
- A successful ff_draw_horiz_band() may zero it together
- with start_mb_blocks_num.
- - libavcodec - each decoded macroblock increases it by the number
- of coded blocks it contains.
- */
- int next_free_data_block_num;
-
-/** extensions may be placed here */
-#if LIBAVCODEC_VERSION_MAJOR < 53
-//@{
- /** State flags used to work around limitations in the MPlayer video system.
- 0 - Surface is not used.
- 1 - Surface is still held in application to be displayed or is
- still visible.
- 2 - Surface is still held in libavcodec buffer for prediction.
- */
- int state;
-
- /** pointer to the surface where the subpicture is rendered */
- void* p_osd_target_surface_render;
-//}@
-#endif
-};
-
-#endif /* AVCODEC_XVMC_H */
+++ /dev/null
-/*
- * XVideo Motion Compensation internal functions
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_INTERNAL_XVMC_H
-#define AVCODEC_INTERNAL_XVMC_H
-
-#include "avcodec.h"
-#include "mpegvideo.h"
-
-void ff_xvmc_init_block(MpegEncContext *s);
-void ff_xvmc_pack_pblocks(MpegEncContext *s, int cbp);
-int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx);
-void ff_xvmc_field_end(MpegEncContext *s);
-void ff_xvmc_decode_mb(MpegEncContext *s);
-
-#endif /* AVCODEC_INTERNAL_XVMC_H */
+++ /dev/null
-/*
- * ALSA input and output
- * Copyright (c) 2007 Luca Abeni ( lucabe72 email it )
- * Copyright (c) 2007 Benoit Fouet ( benoit fouet free fr )
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * ALSA input and output: definitions and structures
- * @author Luca Abeni ( lucabe72 email it )
- * @author Benoit Fouet ( benoit fouet free fr )
- */
-
-#ifndef AVDEVICE_ALSA_AUDIO_H
-#define AVDEVICE_ALSA_AUDIO_H
-
-#include <alsa/asoundlib.h>
-#include "config.h"
-#include "libavformat/avformat.h"
-
-/* XXX: we make the assumption that the soundcard accepts this format */
-/* XXX: find better solution with "preinit" method, needed also in
- other formats */
-#if HAVE_BIGENDIAN
-#define DEFAULT_CODEC_ID CODEC_ID_PCM_S16BE
-#else
-#define DEFAULT_CODEC_ID CODEC_ID_PCM_S16LE
-#endif
-
-typedef struct {
- snd_pcm_t *h;
- int frame_size; ///< preferred size for reads and writes
- int period_size; ///< bytes per sample * channels
-} AlsaData;
-
-/**
- * Opens an ALSA PCM.
- *
- * @param s media file handle
- * @param mode either SND_PCM_STREAM_CAPTURE or SND_PCM_STREAM_PLAYBACK
- * @param sample_rate in: requested sample rate;
- * out: actually selected sample rate
- * @param channels number of channels
- * @param codec_id in: requested CodecID or CODEC_ID_NONE;
- * out: actually selected CodecID, changed only if
- * CODEC_ID_NONE was requested
- *
- * @return 0 if OK, AVERROR_xxx on error
- */
-int ff_alsa_open(AVFormatContext *s, snd_pcm_stream_t mode,
- unsigned int *sample_rate,
- int channels, enum CodecID *codec_id);
-
-/**
- * Closes the ALSA PCM.
- *
- * @param s1 media file handle
- *
- * @return 0
- */
-int ff_alsa_close(AVFormatContext *s1);
-
-/**
- * Tries to recover from ALSA buffer underrun.
- *
- * @param s1 media file handle
- * @param err error code reported by the previous ALSA call
- *
- * @return 0 if OK, AVERROR_xxx on error
- */
-int ff_alsa_xrun_recover(AVFormatContext *s1, int err);
-
-#endif /* AVDEVICE_ALSA_AUDIO_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVDEVICE_AVDEVICE_H
-#define AVDEVICE_AVDEVICE_H
-
-#include "libavutil/avutil.h"
-
-#define LIBAVDEVICE_VERSION_MAJOR 52
-#define LIBAVDEVICE_VERSION_MINOR 2
-#define LIBAVDEVICE_VERSION_MICRO 0
-
-#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
- LIBAVDEVICE_VERSION_MINOR, \
- LIBAVDEVICE_VERSION_MICRO)
-#define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \
- LIBAVDEVICE_VERSION_MINOR, \
- LIBAVDEVICE_VERSION_MICRO)
-#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT
-
-/**
- * Returns the LIBAVDEVICE_VERSION_INT constant.
- */
-unsigned avdevice_version(void);
-
-/**
- * Returns the libavdevice build-time configuration.
- */
-const char *avdevice_configuration(void);
-
-/**
- * Returns the libavdevice license.
- */
-const char *avdevice_license(void);
-
-/**
- * Initialize libavdevice and register all the input and output devices.
- * @warning This function is not thread safe.
- */
-void avdevice_register_all(void);
-
-#endif /* AVDEVICE_AVDEVICE_H */
-
+++ /dev/null
-/*
- * DV input/output over IEEE 1394 on OHCI chips
- * Copyright (C)2001 Daniel Maas <dmaas@dcine.com>
- * receive, proc_fs by Dan Dennedy <dan@dennedy.org>
- *
- * based on:
- * video1394.h - driver for OHCI 1394 boards
- * Copyright (C)1999,2000 Sebastien Rougeaux <sebastien.rougeaux@anu.edu.au>
- * Peter Schlaile <udbz@rz.uni-karlsruhe.de>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVDEVICE_DV1394_H
-#define AVDEVICE_DV1394_H
-
-#define DV1394_DEFAULT_CHANNEL 63
-#define DV1394_DEFAULT_CARD 0
-#define DV1394_RING_FRAMES 20
-
-#define DV1394_WIDTH 720
-#define DV1394_NTSC_HEIGHT 480
-#define DV1394_PAL_HEIGHT 576
-
-/* This is the public user-space interface. Try not to break it. */
-
-#define DV1394_API_VERSION 0x20011127
-
-/* ********************
- ** **
- ** DV1394 API **
- ** **
- ********************
-
- There are two methods of operating the DV1394 DV output device.
-
- 1)
-
- The simplest is an interface based on write(): simply write
- full DV frames of data to the device, and they will be transmitted
- as quickly as possible. The FD may be set for non-blocking I/O,
- in which case you can use select() or poll() to wait for output
- buffer space.
-
- To set the DV output parameters (e.g. whether you want NTSC or PAL
- video), use the DV1394_INIT ioctl, passing in the parameters you
- want in a struct dv1394_init.
-
- Example 1:
- To play a raw .DV file: cat foo.DV > /dev/dv1394
- (cat will use write() internally)
-
- Example 2:
- static struct dv1394_init init = {
- 0x63, (broadcast channel)
- 4, (four-frame ringbuffer)
- DV1394_NTSC, (send NTSC video)
- 0, 0 (default empty packet rate)
- }
-
- ioctl(fd, DV1394_INIT, &init);
-
- while(1) {
- read( <a raw DV file>, buf, DV1394_NTSC_FRAME_SIZE );
- write( <the dv1394 FD>, buf, DV1394_NTSC_FRAME_SIZE );
- }
-
- 2)
-
- For more control over buffering, and to avoid unnecessary copies
- of the DV data, you can use the more sophisticated the mmap() interface.
- First, call the DV1394_INIT ioctl to specify your parameters,
- including the number of frames in the ringbuffer. Then, calling mmap()
- on the dv1394 device will give you direct access to the ringbuffer
- from which the DV card reads your frame data.
-
- The ringbuffer is simply one large, contiguous region of memory
- containing two or more frames of packed DV data. Each frame of DV data
- is 120000 bytes (NTSC) or 144000 bytes (PAL).
-
- Fill one or more frames in the ringbuffer, then use the DV1394_SUBMIT_FRAMES
- ioctl to begin I/O. You can use either the DV1394_WAIT_FRAMES ioctl
- or select()/poll() to wait until the frames are transmitted. Next, you'll
- need to call the DV1394_GET_STATUS ioctl to determine which ringbuffer
- frames are clear (ready to be filled with new DV data). Finally, use
- DV1394_SUBMIT_FRAMES again to send the new data to the DV output.
-
-
- Example: here is what a four-frame ringbuffer might look like
- during DV transmission:
-
-
- frame 0 frame 1 frame 2 frame 3
-
- *--------------------------------------*
- | CLEAR | DV data | DV data | CLEAR |
- *--------------------------------------*
- <ACTIVE>
-
- transmission goes in this direction --->>>
-
-
- The DV hardware is currently transmitting the data in frame 1.
- Once frame 1 is finished, it will automatically transmit frame 2.
- (if frame 2 finishes before frame 3 is submitted, the device
- will continue to transmit frame 2, and will increase the dropped_frames
- counter each time it repeats the transmission).
-
-
- If you called DV1394_GET_STATUS at this instant, you would
- receive the following values:
-
- n_frames = 4
- active_frame = 1
- first_clear_frame = 3
- n_clear_frames = 2
-
- At this point, you should write new DV data into frame 3 and optionally
- frame 0. Then call DV1394_SUBMIT_FRAMES to inform the device that
- it may transmit the new frames.
-
- ERROR HANDLING
-
- An error (buffer underflow/overflow or a break in the DV stream due
- to a 1394 bus reset) can be detected by checking the dropped_frames
- field of struct dv1394_status (obtained through the
- DV1394_GET_STATUS ioctl).
-
- The best way to recover from such an error is to re-initialize
- dv1394, either by using the DV1394_INIT ioctl call, or closing the
- file descriptor and opening it again. (note that you must unmap all
- ringbuffer mappings when closing the file descriptor, or else
- dv1394 will still be considered 'in use').
-
- MAIN LOOP
-
- For maximum efficiency and robustness against bus errors, you are
- advised to model the main loop of your application after the
- following pseudo-code example:
-
- (checks of system call return values omitted for brevity; always
- check return values in your code!)
-
- while( frames left ) {
-
- struct pollfd *pfd = ...;
-
- pfd->fd = dv1394_fd;
- pfd->revents = 0;
- pfd->events = POLLOUT | POLLIN; (OUT for transmit, IN for receive)
-
- (add other sources of I/O here)
-
- poll(pfd, 1, -1); (or select(); add a timeout if you want)
-
- if(pfd->revents) {
- struct dv1394_status status;
-
- ioctl(dv1394_fd, DV1394_GET_STATUS, &status);
-
- if(status.dropped_frames > 0) {
- reset_dv1394();
- } else {
- for(int i = 0; i < status.n_clear_frames; i++) {
- copy_DV_frame();
- }
- }
- }
- }
-
- where copy_DV_frame() reads or writes on the dv1394 file descriptor
- (read/write mode) or copies data to/from the mmap ringbuffer and
- then calls ioctl(DV1394_SUBMIT_FRAMES) to notify dv1394 that new
- frames are availble (mmap mode).
-
- reset_dv1394() is called in the event of a buffer
- underflow/overflow or a halt in the DV stream (e.g. due to a 1394
- bus reset). To guarantee recovery from the error, this function
- should close the dv1394 file descriptor (and munmap() all
- ringbuffer mappings, if you are using them), then re-open the
- dv1394 device (and re-map the ringbuffer).
-
-*/
-
-
-/* maximum number of frames in the ringbuffer */
-#define DV1394_MAX_FRAMES 32
-
-/* number of *full* isochronous packets per DV frame */
-#define DV1394_NTSC_PACKETS_PER_FRAME 250
-#define DV1394_PAL_PACKETS_PER_FRAME 300
-
-/* size of one frame's worth of DV data, in bytes */
-#define DV1394_NTSC_FRAME_SIZE (480 * DV1394_NTSC_PACKETS_PER_FRAME)
-#define DV1394_PAL_FRAME_SIZE (480 * DV1394_PAL_PACKETS_PER_FRAME)
-
-
-/* ioctl() commands */
-
-enum {
- /* I don't like using 0 as a valid ioctl() */
- DV1394_INVALID = 0,
-
-
- /* get the driver ready to transmit video.
- pass a struct dv1394_init* as the parameter (see below),
- or NULL to get default parameters */
- DV1394_INIT,
-
-
- /* stop transmitting video and free the ringbuffer */
- DV1394_SHUTDOWN,
-
-
- /* submit N new frames to be transmitted, where
- the index of the first new frame is first_clear_buffer,
- and the index of the last new frame is
- (first_clear_buffer + N) % n_frames */
- DV1394_SUBMIT_FRAMES,
-
-
- /* block until N buffers are clear (pass N as the parameter)
- Because we re-transmit the last frame on underrun, there
- will at most be n_frames - 1 clear frames at any time */
- DV1394_WAIT_FRAMES,
-
- /* capture new frames that have been received, where
- the index of the first new frame is first_clear_buffer,
- and the index of the last new frame is
- (first_clear_buffer + N) % n_frames */
- DV1394_RECEIVE_FRAMES,
-
-
- DV1394_START_RECEIVE,
-
-
- /* pass a struct dv1394_status* as the parameter (see below) */
- DV1394_GET_STATUS,
-};
-
-
-
-enum pal_or_ntsc {
- DV1394_NTSC = 0,
- DV1394_PAL
-};
-
-
-
-
-/* this is the argument to DV1394_INIT */
-struct dv1394_init {
- /* DV1394_API_VERSION */
- unsigned int api_version;
-
- /* isochronous transmission channel to use */
- unsigned int channel;
-
- /* number of frames in the ringbuffer. Must be at least 2
- and at most DV1394_MAX_FRAMES. */
- unsigned int n_frames;
-
- /* send/receive PAL or NTSC video format */
- enum pal_or_ntsc format;
-
- /* the following are used only for transmission */
-
- /* set these to zero unless you want a
- non-default empty packet rate (see below) */
- unsigned long cip_n;
- unsigned long cip_d;
-
- /* set this to zero unless you want a
- non-default SYT cycle offset (default = 3 cycles) */
- unsigned int syt_offset;
-};
-
-/* NOTE: you may only allocate the DV frame ringbuffer once each time
- you open the dv1394 device. DV1394_INIT will fail if you call it a
- second time with different 'n_frames' or 'format' arguments (which
- would imply a different size for the ringbuffer). If you need a
- different buffer size, simply close and re-open the device, then
- initialize it with your new settings. */
-
-/* Q: What are cip_n and cip_d? */
-
-/*
- A: DV video streams do not utilize 100% of the potential bandwidth offered
- by IEEE 1394 (FireWire). To achieve the correct rate of data transmission,
- DV devices must periodically insert empty packets into the 1394 data stream.
- Typically there is one empty packet per 14-16 data-carrying packets.
-
- Some DV devices will accept a wide range of empty packet rates, while others
- require a precise rate. If the dv1394 driver produces empty packets at
- a rate that your device does not accept, you may see ugly patterns on the
- DV output, or even no output at all.
-
- The default empty packet insertion rate seems to work for many people; if
- your DV output is stable, you can simply ignore this discussion. However,
- we have exposed the empty packet rate as a parameter to support devices that
- do not work with the default rate.
-
- The decision to insert an empty packet is made with a numerator/denominator
- algorithm. Empty packets are produced at an average rate of CIP_N / CIP_D.
- You can alter the empty packet rate by passing non-zero values for cip_n
- and cip_d to the INIT ioctl.
-
- */
-
-
-
-struct dv1394_status {
- /* this embedded init struct returns the current dv1394
- parameters in use */
- struct dv1394_init init;
-
- /* the ringbuffer frame that is currently being
- displayed. (-1 if the device is not transmitting anything) */
- int active_frame;
-
- /* index of the first buffer (ahead of active_frame) that
- is ready to be filled with data */
- unsigned int first_clear_frame;
-
- /* how many buffers, including first_clear_buffer, are
- ready to be filled with data */
- unsigned int n_clear_frames;
-
- /* how many times the DV stream has underflowed, overflowed,
- or otherwise encountered an error, since the previous call
- to DV1394_GET_STATUS */
- unsigned int dropped_frames;
-
- /* N.B. The dropped_frames counter is only a lower bound on the actual
- number of dropped frames, with the special case that if dropped_frames
- is zero, then it is guaranteed that NO frames have been dropped
- since the last call to DV1394_GET_STATUS.
- */
-};
-
-
-#endif /* AVDEVICE_DV1394_H */
+++ /dev/null
-/*
- * ADTS muxer.
- * Copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@smartjog.com>
- * Mans Rullgard <mans@mansr.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ADTS_H
-#define AVFORMAT_ADTS_H
-
-#include "avformat.h"
-#include "libavcodec/mpeg4audio.h"
-
-#define ADTS_HEADER_SIZE 7
-
-typedef struct {
- int write_adts;
- int objecttype;
- int sample_rate_index;
- int channel_conf;
- int pce_size;
- uint8_t pce_data[MAX_PCE_SIZE];
-} ADTSContext;
-
-int ff_adts_write_frame_header(ADTSContext *ctx, uint8_t *buf,
- int size, int pce_size);
-int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts,
- uint8_t *buf, int size);
-
-#endif /* AVFORMAT_ADTS_H */
+++ /dev/null
-/*
- * AIFF/AIFF-C muxer/demuxer common header
- * Copyright (c) 2006 Patrick Guimond
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * common header for AIFF muxer and demuxer
- */
-
-#ifndef AVFORMAT_AIFF_H
-#define AVFORMAT_AIFF_H
-
-#include "avformat.h"
-#include "riff.h"
-
-static const AVCodecTag ff_codec_aiff_tags[] = {
- { CODEC_ID_PCM_S16BE, MKTAG('N','O','N','E') },
- { CODEC_ID_PCM_S8, MKTAG('N','O','N','E') },
- { CODEC_ID_PCM_S24BE, MKTAG('N','O','N','E') },
- { CODEC_ID_PCM_S32BE, MKTAG('N','O','N','E') },
- { CODEC_ID_PCM_F32BE, MKTAG('f','l','3','2') },
- { CODEC_ID_PCM_F64BE, MKTAG('f','l','6','4') },
- { CODEC_ID_PCM_ALAW, MKTAG('a','l','a','w') },
- { CODEC_ID_PCM_MULAW, MKTAG('u','l','a','w') },
- { CODEC_ID_MACE3, MKTAG('M','A','C','3') },
- { CODEC_ID_MACE6, MKTAG('M','A','C','6') },
- { CODEC_ID_GSM, MKTAG('G','S','M',' ') },
- { CODEC_ID_ADPCM_G726, MKTAG('G','7','2','6') },
- { CODEC_ID_PCM_S16LE, MKTAG('s','o','w','t') },
- { CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') },
- { CODEC_ID_QDM2, MKTAG('Q','D','M','2') },
- { CODEC_ID_QCELP, MKTAG('Q','c','l','p') },
- { CODEC_ID_NONE, 0 },
-};
-
-#endif /* AVFORMAT_AIFF_H */
+++ /dev/null
-/*
- * APE tag handling
- * Copyright (c) 2007 Benjamin Zores <ben@geexbox.org>
- * based upon libdemac from Dave Chapman.
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_APETAG_H
-#define AVFORMAT_APETAG_H
-
-#include "avformat.h"
-
-/**
- * Read and parse an APE tag
- */
-void ff_ape_parse_tag(AVFormatContext *s);
-
-#endif /* AVFORMAT_ID3V2_H */
+++ /dev/null
-/*
- * Copyright (c) 2000, 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ASF_H
-#define AVFORMAT_ASF_H
-
-#include <stdint.h>
-#include "avformat.h"
-#include "metadata.h"
-
-#define PACKET_SIZE 3200
-
-typedef struct {
- int num;
- unsigned char seq;
- /* use for reading */
- AVPacket pkt;
- int frag_offset;
- int timestamp;
- int64_t duration;
-
- int ds_span; /* descrambling */
- int ds_packet_size;
- int ds_chunk_size;
-
- int64_t packet_pos;
-
- uint16_t stream_language_index;
-
-} ASFStream;
-
-typedef uint8_t ff_asf_guid[16];
-
-typedef struct {
- ff_asf_guid guid; ///< generated by client computer
- uint64_t file_size; /**< in bytes
- * invalid if broadcasting */
- uint64_t create_time; /**< time of creation, in 100-nanosecond units since 1.1.1601
- * invalid if broadcasting */
- uint64_t play_time; /**< play time, in 100-nanosecond units
- * invalid if broadcasting */
- uint64_t send_time; /**< time to send file, in 100-nanosecond units
- * invalid if broadcasting (could be ignored) */
- uint32_t preroll; /**< timestamp of the first packet, in milliseconds
- * if nonzero - subtract from time */
- uint32_t ignore; ///< preroll is 64bit - but let's just ignore it
- uint32_t flags; /**< 0x01 - broadcast
- * 0x02 - seekable
- * rest is reserved should be 0 */
- uint32_t min_pktsize; /**< size of a data packet
- * invalid if broadcasting */
- uint32_t max_pktsize; /**< shall be the same as for min_pktsize
- * invalid if broadcasting */
- uint32_t max_bitrate; /**< bandwidth of stream in bps
- * should be the sum of bitrates of the
- * individual media streams */
-} ASFMainHeader;
-
-
-typedef struct {
- uint32_t packet_number;
- uint16_t packet_count;
-} ASFIndex;
-
-
-typedef struct {
- uint32_t seqno;
- int is_streamed;
- int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID
- ASFStream streams[128]; ///< it's max number and it's not that big
- uint32_t stream_bitrates[128]; ///< max number of streams, bitrate for each (for streaming)
- char stream_languages[128][6]; ///< max number of streams, language for each (RFC1766, e.g. en-US)
- /* non streamed additonnal info */
- uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting
- int64_t duration; ///< in 100ns units
- /* packet filling */
- unsigned char multi_payloads_present;
- int packet_size_left;
- int packet_timestamp_start;
- int packet_timestamp_end;
- unsigned int packet_nb_payloads;
- int packet_nb_frames;
- uint8_t packet_buf[PACKET_SIZE];
- ByteIOContext pb;
- /* only for reading */
- uint64_t data_offset; ///< beginning of the first data packet
- uint64_t data_object_offset; ///< data object offset (excl. GUID & size)
- uint64_t data_object_size; ///< size of the data object
- int index_read;
-
- ASFMainHeader hdr;
-
- int packet_flags;
- int packet_property;
- int packet_timestamp;
- int packet_segsizetype;
- int packet_segments;
- int packet_seq;
- int packet_replic_size;
- int packet_key_frame;
- int packet_padsize;
- unsigned int packet_frag_offset;
- unsigned int packet_frag_size;
- int64_t packet_frag_timestamp;
- int packet_multi_size;
- int packet_obj_size;
- int packet_time_delta;
- int packet_time_start;
- int64_t packet_pos;
-
- int stream_index;
-
-
- int64_t last_indexed_pts;
- ASFIndex* index_ptr;
- uint32_t nb_index_count;
- uint32_t nb_index_memory_alloc;
- uint16_t maximum_packet;
-
- ASFStream* asf_st; ///< currently decoded stream
-} ASFContext;
-
-extern const ff_asf_guid ff_asf_header;
-extern const ff_asf_guid ff_asf_file_header;
-extern const ff_asf_guid ff_asf_stream_header;
-extern const ff_asf_guid ff_asf_ext_stream_header;
-extern const ff_asf_guid ff_asf_audio_stream;
-extern const ff_asf_guid ff_asf_audio_conceal_none;
-extern const ff_asf_guid ff_asf_audio_conceal_spread;
-extern const ff_asf_guid ff_asf_video_stream;
-extern const ff_asf_guid ff_asf_video_conceal_none;
-extern const ff_asf_guid ff_asf_command_stream;
-extern const ff_asf_guid ff_asf_comment_header;
-extern const ff_asf_guid ff_asf_codec_comment_header;
-extern const ff_asf_guid ff_asf_codec_comment1_header;
-extern const ff_asf_guid ff_asf_data_header;
-extern const ff_asf_guid ff_asf_head1_guid;
-extern const ff_asf_guid ff_asf_head2_guid;
-extern const ff_asf_guid ff_asf_extended_content_header;
-extern const ff_asf_guid ff_asf_simple_index_header;
-extern const ff_asf_guid ff_asf_ext_stream_embed_stream_header;
-extern const ff_asf_guid ff_asf_ext_stream_audio_stream;
-extern const ff_asf_guid ff_asf_metadata_header;
-extern const ff_asf_guid ff_asf_marker_header;
-extern const ff_asf_guid ff_asf_my_guid;
-extern const ff_asf_guid ff_asf_language_guid;
-extern const ff_asf_guid ff_asf_content_encryption;
-extern const ff_asf_guid ff_asf_ext_content_encryption;
-extern const ff_asf_guid ff_asf_digital_signature;
-
-extern const AVMetadataConv ff_asf_metadata_conv[];
-
-#define ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT 0x80 //1000 0000
-
-
-// ASF data packet structure
-// =========================
-//
-//
-// -----------------------------------
-// | Error Correction Data | Optional
-// -----------------------------------
-// | Payload Parsing Information (PPI) |
-// -----------------------------------
-// | Payload Data |
-// -----------------------------------
-// | Padding Data |
-// -----------------------------------
-
-
-// PPI_FLAG - Payload parsing information flags
-#define ASF_PPI_FLAG_MULTIPLE_PAYLOADS_PRESENT 1
-
-#define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_BYTE 0x02 //0000 0010
-#define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_WORD 0x04 //0000 0100
-#define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_DWORD 0x06 //0000 0110
-#define ASF_PPI_MASK_SEQUENCE_FIELD_SIZE 0x06 //0000 0110
-
-#define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_BYTE 0x08 //0000 1000
-#define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_WORD 0x10 //0001 0000
-#define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_DWORD 0x18 //0001 1000
-#define ASF_PPI_MASK_PADDING_LENGTH_FIELD_SIZE 0x18 //0001 1000
-
-#define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_BYTE 0x20 //0010 0000
-#define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_WORD 0x40 //0100 0000
-#define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_DWORD 0x60 //0110 0000
-#define ASF_PPI_MASK_PACKET_LENGTH_FIELD_SIZE 0x60 //0110 0000
-
-// PL_FLAG - Payload flags
-#define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_BYTE 0x01 //0000 0001
-#define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_WORD 0x02 //0000 0010
-#define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_DWORD 0x03 //0000 0011
-#define ASF_PL_MASK_REPLICATED_DATA_LENGTH_FIELD_SIZE 0x03 //0000 0011
-
-#define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_BYTE 0x04 //0000 0100
-#define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_WORD 0x08 //0000 1000
-#define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_DWORD 0x0c //0000 1100
-#define ASF_PL_MASK_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_SIZE 0x0c //0000 1100
-
-#define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_BYTE 0x10 //0001 0000
-#define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_WORD 0x20 //0010 0000
-#define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_DWORD 0x30 //0011 0000
-#define ASF_PL_MASK_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_SIZE 0x30 //0011 0000
-
-#define ASF_PL_FLAG_STREAM_NUMBER_LENGTH_FIELD_IS_BYTE 0x40 //0100 0000
-#define ASF_PL_MASK_STREAM_NUMBER_LENGTH_FIELD_SIZE 0xc0 //1100 0000
-
-#define ASF_PL_FLAG_PAYLOAD_LENGTH_FIELD_IS_BYTE 0x40 //0100 0000
-#define ASF_PL_FLAG_PAYLOAD_LENGTH_FIELD_IS_WORD 0x80 //1000 0000
-#define ASF_PL_MASK_PAYLOAD_LENGTH_FIELD_SIZE 0xc0 //1100 0000
-
-#define ASF_PL_FLAG_KEY_FRAME 0x80 //1000 0000
-
-extern AVInputFormat asf_demuxer;
-int ff_put_str16_nolen(ByteIOContext *s, const char *tag);
-
-#endif /* AVFORMAT_ASF_H */
+++ /dev/null
-/*
- * ASF decryption
- * Copyright (c) 2007 Reimar Doeffinger
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ASFCRYPT_H
-#define AVFORMAT_ASFCRYPT_H
-
-#include <inttypes.h>
-
-void ff_asfcrypt_dec(const uint8_t key[20], uint8_t *data, int len);
-
-#endif /* AVFORMAT_ASFCRYPT_H */
+++ /dev/null
-/*
- * audio interleaving prototypes and declarations
- *
- * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_AUDIOINTERLEAVE_H
-#define AVFORMAT_AUDIOINTERLEAVE_H
-
-#include "libavutil/fifo.h"
-#include "avformat.h"
-
-typedef struct {
- AVFifoBuffer *fifo;
- unsigned fifo_size; ///< size of currently allocated FIFO
- uint64_t dts; ///< current dts
- int sample_size; ///< size of one sample all channels included
- const int *samples_per_frame; ///< must be 0-terminated
- const int *samples; ///< current samples per frame, pointer to samples_per_frame
- AVRational time_base; ///< time base of output audio packets
-} AudioInterleaveContext;
-
-int ff_audio_interleave_init(AVFormatContext *s, const int *samples_per_frame, AVRational time_base);
-void ff_audio_interleave_close(AVFormatContext *s);
-
-int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacket *pkt);
-/**
- * Rechunk audio PCM packets per AudioInterleaveContext->samples_per_frame
- * and interleave them correctly.
- * The first element of AVStream->priv_data must be AudioInterleaveContext
- * when using this function.
- *
- * @param get_packet function will output a packet when streams are correctly interleaved.
- * @param compare_ts function will compare AVPackets and decide interleaving order.
- */
-int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush,
- int (*get_packet)(AVFormatContext *, AVPacket *, AVPacket *, int),
- int (*compare_ts)(AVFormatContext *, AVPacket *, AVPacket *));
-
-#endif /* AVFORMAT_AUDIOINTERLEAVE_H */
+++ /dev/null
-/*
- * AVC helper functions for muxers
- * Copyright (c) 2008 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_AVC_H
-#define AVFORMAT_AVC_H
-
-#include <stdint.h>
-#include "avio.h"
-
-int ff_avc_parse_nal_units(ByteIOContext *s, const uint8_t *buf, int size);
-int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size);
-int ff_isom_write_avcc(ByteIOContext *pb, const uint8_t *data, int len);
-const uint8_t *ff_avc_find_startcode(const uint8_t *p, const uint8_t *end);
-
-#endif /* AVFORMAT_AVC_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_AVFORMAT_H
-#define AVFORMAT_AVFORMAT_H
-
-#ifndef GST_EXT_FFMUX_ENHANCEMENT
-#define GST_EXT_FFMUX_ENHANCEMENT
-#endif
-
-#define LIBAVFORMAT_VERSION_MAJOR 52
-#define LIBAVFORMAT_VERSION_MINOR 64
-#define LIBAVFORMAT_VERSION_MICRO 2
-
-#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
- LIBAVFORMAT_VERSION_MINOR, \
- LIBAVFORMAT_VERSION_MICRO)
-#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \
- LIBAVFORMAT_VERSION_MINOR, \
- LIBAVFORMAT_VERSION_MICRO)
-#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
-
-#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
-
-/**
- * I return the LIBAVFORMAT_VERSION_INT constant. You got
- * a fucking problem with that, douchebag?
- */
-unsigned avformat_version(void);
-
-/**
- * Returns the libavformat build-time configuration.
- */
-const char *avformat_configuration(void);
-
-/**
- * Returns the libavformat license.
- */
-const char *avformat_license(void);
-
-#include <time.h>
-#include <stdio.h> /* FILE */
-#include "libavcodec/avcodec.h"
-
-#include "avio.h"
-
-struct AVFormatContext;
-
-
-/*
- * Public Metadata API.
- * The metadata API allows libavformat to export metadata tags to a client
- * application using a sequence of key/value pairs. Like all strings in FFmpeg,
- * metadata must be stored as UTF-8 encoded Unicode. Note that metadata
- * exported by demuxers isn't checked to be valid UTF-8 in most cases.
- * Important concepts to keep in mind:
- * 1. Keys are unique; there can never be 2 tags with the same key. This is
- * also meant semantically, i.e., a demuxer should not knowingly produce
- * several keys that are literally different but semantically identical.
- * E.g., key=Author5, key=Author6. In this example, all authors must be
- * placed in the same tag.
- * 2. Metadata is flat, not hierarchical; there are no subtags. If you
- * want to store, e.g., the email address of the child of producer Alice
- * and actor Bob, that could have key=alice_and_bobs_childs_email_address.
- * 3. Several modifiers can be applied to the tag name. This is done by
- * appending a dash character ('-') and the modifier name in the order
- * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng.
- * a) language -- a tag whose value is localized for a particular language
- * is appended with the ISO 639-2/B 3-letter language code.
- * For example: Author-ger=Michael, Author-eng=Mike
- * The original/default language is in the unqualified "Author" tag.
- * A demuxer should set a default if it sets any translated tag.
- * b) sorting -- a modified version of a tag that should be used for
- * sorting will have '-sort' appended. E.g. artist="The Beatles",
- * artist-sort="Beatles, The".
- *
- * 4. Tag names are normally exported exactly as stored in the container to
- * allow lossless remuxing to the same format. For container-independent
- * handling of metadata, av_metadata_conv() can convert it to ffmpeg generic
- * format. Follows a list of generic tag names:
- *
- * album -- name of the set this work belongs to
- * album_artist -- main creator of the set/album, if different from artist.
- * e.g. "Various Artists" for compilation albums.
- * artist -- main creator of the work
- * comment -- any additional description of the file.
- * composer -- who composed the work, if different from artist.
- * copyright -- name of copyright holder.
- * date -- date when the work was created, preferably in ISO 8601.
- * disc -- number of a subset, e.g. disc in a multi-disc collection.
- * encoder -- name/settings of the software/hardware that produced the file.
- * encoded_by -- person/group who created the file.
- * filename -- original name of the file.
- * genre -- <self-evident>.
- * language -- main language in which the work is performed, preferably
- * in ISO 639-2 format.
- * performer -- artist who performed the work, if different from artist.
- * E.g for "Also sprach Zarathustra", artist would be "Richard
- * Strauss" and performer "London Philharmonic Orchestra".
- * publisher -- name of the label/publisher.
- * title -- name of the work.
- * track -- number of this work in the set, can be in form current/total.
- */
-
-#define AV_METADATA_MATCH_CASE 1
-#define AV_METADATA_IGNORE_SUFFIX 2
-#define AV_METADATA_DONT_STRDUP_KEY 4
-#define AV_METADATA_DONT_STRDUP_VAL 8
-#define AV_METADATA_DONT_OVERWRITE 16 ///< Don't overwrite existing tags.
-
-typedef struct {
- char *key;
- char *value;
-}AVMetadataTag;
-
-typedef struct AVMetadata AVMetadata;
-typedef struct AVMetadataConv AVMetadataConv;
-
-/**
- * Gets a metadata element with matching key.
- * @param prev Set to the previous matching element to find the next.
- * If set to NULL the first matching element is returned.
- * @param flags Allows case as well as suffix-insensitive comparisons.
- * @return Found tag or NULL, changing key or value leads to undefined behavior.
- */
-AVMetadataTag *
-av_metadata_get(AVMetadata *m, const char *key, const AVMetadataTag *prev, int flags);
-
-#if LIBAVFORMAT_VERSION_MAJOR == 52
-/**
- * Sets the given tag in m, overwriting an existing tag.
- * @param key tag key to add to m (will be av_strduped)
- * @param value tag value to add to m (will be av_strduped)
- * @return >= 0 on success otherwise an error code <0
- * @deprecated Use av_metadata_set2() instead.
- */
-attribute_deprecated int av_metadata_set(AVMetadata **pm, const char *key, const char *value);
-#endif
-
-/**
- * Sets the given tag in m, overwriting an existing tag.
- * @param key tag key to add to m (will be av_strduped depending on flags)
- * @param value tag value to add to m (will be av_strduped depending on flags)
- * @return >= 0 on success otherwise an error code <0
- */
-int av_metadata_set2(AVMetadata **pm, const char *key, const char *value, int flags);
-
-/**
- * Converts all the metadata sets from ctx according to the source and
- * destination conversion tables. If one of the tables is NULL, then
- * tags are converted to/from ffmpeg generic tag names.
- * @param d_conv destination tags format conversion table
- * @param s_conv source tags format conversion table
- */
-void av_metadata_conv(struct AVFormatContext *ctx,const AVMetadataConv *d_conv,
- const AVMetadataConv *s_conv);
-
-/**
- * Frees all the memory allocated for an AVMetadata struct.
- */
-void av_metadata_free(AVMetadata **m);
-
-
-/* packet functions */
-
-
-/**
- * Allocates and reads the payload of a packet and initializes its
- * fields with default values.
- *
- * @param pkt packet
- * @param size desired payload size
- * @return >0 (read size) if OK, AVERROR_xxx otherwise
- */
-int av_get_packet(ByteIOContext *s, AVPacket *pkt, int size);
-
-
-/*************************************************/
-/* fractional numbers for exact pts handling */
-
-/**
- * The exact value of the fractional number is: 'val + num / den'.
- * num is assumed to be 0 <= num < den.
- */
-typedef struct AVFrac {
- int64_t val, num, den;
-} AVFrac;
-
-/*************************************************/
-/* input/output formats */
-
-struct AVCodecTag;
-
-/** This structure contains the data a format has to probe a file. */
-typedef struct AVProbeData {
- const char *filename;
- unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */
- int buf_size; /**< Size of buf except extra allocated bytes */
-} AVProbeData;
-
-#define AVPROBE_SCORE_MAX 100 ///< maximum score, half of that is used for file-extension-based detection
-#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer
-
-typedef struct AVFormatParameters {
- AVRational time_base;
- int sample_rate;
- int channels;
- int width;
- int height;
- enum PixelFormat pix_fmt;
- int channel; /**< Used to select DV channel. */
- const char *standard; /**< TV standard, NTSC, PAL, SECAM */
- unsigned int mpeg2ts_raw:1; /**< Force raw MPEG-2 transport stream output, if possible. */
- unsigned int mpeg2ts_compute_pcr:1; /**< Compute exact PCR for each transport
- stream packet (only meaningful if
- mpeg2ts_raw is TRUE). */
- unsigned int initial_pause:1; /**< Do not begin to play the stream
- immediately (RTSP only). */
- unsigned int prealloced_context:1;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- enum CodecID video_codec_id;
- enum CodecID audio_codec_id;
-#endif
-} AVFormatParameters;
-
-//! Demuxer will use url_fopen, no opened file should be provided by the caller.
-#define AVFMT_NOFILE 0x0001
-#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */
-#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
-#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for
- raw picture data. */
-#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */
-#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */
-#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */
-#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. */
-#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */
-#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */
-
-typedef struct AVOutputFormat {
- const char *name;
- /**
- * Descriptive name for the format, meant to be more human-readable
- * than name. You should use the NULL_IF_CONFIG_SMALL() macro
- * to define it.
- */
- const char *long_name;
- const char *mime_type;
- const char *extensions; /**< comma-separated filename extensions */
- /** size of private data so that it can be allocated in the wrapper */
- int priv_data_size;
- /* output support */
- enum CodecID audio_codec; /**< default audio codec */
- enum CodecID video_codec; /**< default video codec */
- int (*write_header)(struct AVFormatContext *);
- int (*write_packet)(struct AVFormatContext *, AVPacket *pkt);
- int (*write_trailer)(struct AVFormatContext *);
- /** can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER */
- int flags;
- /** Currently only used to set pixel format if not YUV420P. */
- int (*set_parameters)(struct AVFormatContext *, AVFormatParameters *);
- int (*interleave_packet)(struct AVFormatContext *, AVPacket *out,
- AVPacket *in, int flush);
-
- /**
- * List of supported codec_id-codec_tag pairs, ordered by "better
- * choice first". The arrays are all terminated by CODEC_ID_NONE.
- */
- const struct AVCodecTag * const *codec_tag;
-
- enum CodecID subtitle_codec; /**< default subtitle codec */
-
- const AVMetadataConv *metadata_conv;
-
- /* private fields */
- struct AVOutputFormat *next;
-} AVOutputFormat;
-
-typedef struct AVInputFormat {
- const char *name;
- /**
- * Descriptive name for the format, meant to be more human-readable
- * than name. You should use the NULL_IF_CONFIG_SMALL() macro
- * to define it.
- */
- const char *long_name;
- /** Size of private data so that it can be allocated in the wrapper. */
- int priv_data_size;
- /**
- * Tell if a given file has a chance of being parsed as this format.
- * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
- * big so you do not have to check for that unless you need more.
- */
- int (*read_probe)(AVProbeData *);
- /** Read the format header and initialize the AVFormatContext
- structure. Return 0 if OK. 'ap' if non-NULL contains
- additional parameters. Only used in raw format right
- now. 'av_new_stream' should be called to create new streams. */
- int (*read_header)(struct AVFormatContext *,
- AVFormatParameters *ap);
- /** Read one packet and put it in 'pkt'. pts and flags are also
- set. 'av_new_stream' can be called only if the flag
- AVFMTCTX_NOHEADER is used.
- @return 0 on success, < 0 on error.
- When returning an error, pkt must not have been allocated
- or must be freed before returning */
- int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
- /** Close the stream. The AVFormatContext and AVStreams are not
- freed by this function */
- int (*read_close)(struct AVFormatContext *);
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
- /**
- * Seek to a given timestamp relative to the frames in
- * stream component stream_index.
- * @param stream_index Must not be -1.
- * @param flags Selects which direction should be preferred if no exact
- * match is available.
- * @return >= 0 on success (but not necessarily the new offset)
- */
- int (*read_seek)(struct AVFormatContext *,
- int stream_index, int64_t timestamp, int flags);
-#endif
- /**
- * Gets the next timestamp in stream[stream_index].time_base units.
- * @return the timestamp or AV_NOPTS_VALUE if an error occurred
- */
- int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
- int64_t *pos, int64_t pos_limit);
- /** Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER. */
- int flags;
- /** If extensions are defined, then no probe is done. You should
- usually not use extension format guessing because it is not
- reliable enough */
- const char *extensions;
- /** General purpose read-only value that the format can use. */
- int value;
-
- /** Starts/resumes playing - only meaningful if using a network-based format
- (RTSP). */
- int (*read_play)(struct AVFormatContext *);
-
- /** Pauses playing - only meaningful if using a network-based format
- (RTSP). */
- int (*read_pause)(struct AVFormatContext *);
-
- const struct AVCodecTag * const *codec_tag;
-
- /**
- * Seeks to timestamp ts.
- * Seeking will be done so that the point from which all active streams
- * can be presented successfully will be closest to ts and within min/max_ts.
- * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
- */
- int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
-
- const AVMetadataConv *metadata_conv;
-
- /* private fields */
- struct AVInputFormat *next;
-} AVInputFormat;
-
-enum AVStreamParseType {
- AVSTREAM_PARSE_NONE,
- AVSTREAM_PARSE_FULL, /**< full parsing and repack */
- AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */
- AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */
-};
-
-typedef struct AVIndexEntry {
- int64_t pos;
- int64_t timestamp;
-#define AVINDEX_KEYFRAME 0x0001
- int flags:2;
- int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment).
- int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */
-} AVIndexEntry;
-
-#define AV_DISPOSITION_DEFAULT 0x0001
-#define AV_DISPOSITION_DUB 0x0002
-#define AV_DISPOSITION_ORIGINAL 0x0004
-#define AV_DISPOSITION_COMMENT 0x0008
-#define AV_DISPOSITION_LYRICS 0x0010
-#define AV_DISPOSITION_KARAOKE 0x0020
-
-/**
- * Stream structure.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVStream) must not be used outside libav*.
- */
-typedef struct AVStream {
- int index; /**< stream index in AVFormatContext */
- int id; /**< format-specific stream ID */
- AVCodecContext *codec; /**< codec context */
- /**
- * Real base framerate of the stream.
- * This is the lowest framerate with which all timestamps can be
- * represented accurately (it is the least common multiple of all
- * framerates in the stream). Note, this value is just a guess!
- * For example, if the time base is 1/90000 and all frames have either
- * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.
- */
- AVRational r_frame_rate;
- void *priv_data;
-
- /* internal data used in av_find_stream_info() */
- int64_t first_dts;
- /** encoding: pts generation when outputting stream */
- struct AVFrac pts;
-
- /**
- * This is the fundamental unit of time (in seconds) in terms
- * of which frame timestamps are represented. For fixed-fps content,
- * time base should be 1/framerate and timestamp increments should be 1.
- */
- AVRational time_base;
- int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
- /* ffmpeg.c private use */
- int stream_copy; /**< If set, just copy stream. */
- enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
- //FIXME move stuff to a flags field?
- /** Quality, as it has been removed from AVCodecContext and put in AVVideoFrame.
- * MN: dunno if that is the right place for it */
- float quality;
- /**
- * Decoding: pts of the first frame of the stream, in stream time base.
- * Only set this if you are absolutely 100% sure that the value you set
- * it to really is the pts of the first frame.
- * This may be undefined (AV_NOPTS_VALUE).
- * @note The ASF header does NOT contain a correct start_time the ASF
- * demuxer must NOT set this.
- */
- int64_t start_time;
- /**
- * Decoding: duration of the stream, in stream time base.
- * If a source file does not specify a duration, but does specify
- * a bitrate, this value will be estimated from bitrate and file size.
- */
- int64_t duration;
-
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- char language[4]; /** ISO 639-2/B 3-letter language code (empty string if undefined) */
-#endif
-
- /* av_read_frame() support */
- enum AVStreamParseType need_parsing;
- struct AVCodecParserContext *parser;
-
- int64_t cur_dts;
- int last_IP_duration;
- int64_t last_IP_pts;
- /* av_seek_frame() support */
- AVIndexEntry *index_entries; /**< Only used if the format does not
- support seeking natively. */
- int nb_index_entries;
- unsigned int index_entries_allocated_size;
-
- int64_t nb_frames; ///< number of frames in this stream if known or 0
-
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- int64_t unused[4+1];
-
- char *filename; /**< source filename of the stream */
-#endif
-
- int disposition; /**< AV_DISPOSITION_* bit field */
-
- AVProbeData probe_data;
-#define MAX_REORDER_DELAY 16
- int64_t pts_buffer[MAX_REORDER_DELAY+1];
-
- /**
- * sample aspect ratio (0 if unknown)
- * - encoding: Set by user.
- * - decoding: Set by libavformat.
- */
- AVRational sample_aspect_ratio;
-
- AVMetadata *metadata;
-
- /* av_read_frame() support */
- const uint8_t *cur_ptr;
- int cur_len;
- AVPacket cur_pkt;
-
- // Timestamp generation support:
- /**
- * Timestamp corresponding to the last dts sync point.
- *
- * Initialized when AVCodecParserContext.dts_sync_point >= 0 and
- * a DTS is received from the underlying container. Otherwise set to
- * AV_NOPTS_VALUE by default.
- */
- int64_t reference_dts;
-
- /**
- * Number of packets to buffer for codec probing
- * NOT PART OF PUBLIC API
- */
-#define MAX_PROBE_PACKETS 2500
- int probe_packets;
-
- /**
- * last packet in packet_buffer for this stream when muxing.
- * used internally, NOT PART OF PUBLIC API, dont read or write from outside of libav*
- */
- struct AVPacketList *last_in_packet_buffer;
-
- /**
- * Average framerate
- */
- AVRational avg_frame_rate;
-
- /**
- * Number of frames that have been demuxed during av_find_stream_info()
- */
- int codec_info_nb_frames;
-} AVStream;
-
-#define AV_PROGRAM_RUNNING 1
-
-/**
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVProgram) must not be used outside libav*.
- */
-typedef struct AVProgram {
- int id;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- char *provider_name; ///< network name for DVB streams
- char *name; ///< service name for DVB streams
-#endif
- int flags;
- enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller
- unsigned int *stream_index;
- unsigned int nb_stream_indexes;
- AVMetadata *metadata;
-} AVProgram;
-
-#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present
- (streams are added dynamically) */
-
-typedef struct AVChapter {
- int id; ///< unique ID to identify the chapter
- AVRational time_base; ///< time base in which the start/end timestamps are specified
- int64_t start, end; ///< chapter start/end time in time_base units
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- char *title; ///< chapter title
-#endif
- AVMetadata *metadata;
-} AVChapter;
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-#define MAX_STREAMS 20
-#else
-#define MAX_STREAMS 100
-#endif
-
-/**
- * Format I/O context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVFormatContext) must not be used outside libav*.
- */
-typedef struct AVFormatContext {
- const AVClass *av_class; /**< Set by avformat_alloc_context. */
- /* Can only be iformat or oformat, not both at the same time. */
- struct AVInputFormat *iformat;
- struct AVOutputFormat *oformat;
- void *priv_data;
- ByteIOContext *pb;
- unsigned int nb_streams;
- AVStream *streams[MAX_STREAMS];
- char filename[1024]; /**< input or output filename */
- /* stream info */
- int64_t timestamp;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- char title[512];
- char author[512];
- char copyright[512];
- char comment[512];
- char album[512];
- int year; /**< ID3 year, 0 if none */
- int track; /**< track number, 0 if none */
- char genre[32]; /**< ID3 genre */
-#endif
-
- int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */
- /* private data for pts handling (do not modify directly). */
- /** This buffer is only needed when packets were already buffered but
- not decoded, for example to get the codec parameters in MPEG
- streams. */
- struct AVPacketList *packet_buffer;
-
- /** Decoding: position of the first frame of the component, in
- AV_TIME_BASE fractional seconds. NEVER set this value directly:
- It is deduced from the AVStream values. */
- int64_t start_time;
- /** Decoding: duration of the stream, in AV_TIME_BASE fractional
- seconds. Only set this value if you know none of the individual stream
- durations and also dont set any of them. This is deduced from the
- AVStream values if not set. */
- int64_t duration;
- /** decoding: total file size, 0 if unknown */
- int64_t file_size;
- /** Decoding: total stream bitrate in bit/s, 0 if not
- available. Never set it directly if the file_size and the
- duration are known as FFmpeg can compute it automatically. */
- int bit_rate;
-
- /* av_read_frame() support */
- AVStream *cur_st;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
- const uint8_t *cur_ptr_deprecated;
- int cur_len_deprecated;
- AVPacket cur_pkt_deprecated;
-#endif
-
- /* av_seek_frame() support */
- int64_t data_offset; /** offset of the first packet */
- int index_built;
-
- int mux_rate;
- unsigned int packet_size;
- int preload;
- int max_delay;
-
-#define AVFMT_NOOUTPUTLOOP -1
-#define AVFMT_INFINITEOUTPUTLOOP 0
- /** number of times to loop output in formats that support it */
- int loop_output;
-
- int flags;
-#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames.
-#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index.
-#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input.
-#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS
-#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container
-#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
-#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Add RTP hinting to the output file
-
- int loop_input;
- /** decoding: size of data to probe; encoding: unused. */
- unsigned int probesize;
-
- /**
- * Maximum time (in AV_TIME_BASE units) during which the input should
- * be analyzed in av_find_stream_info().
- */
- int max_analyze_duration;
-
- const uint8_t *key;
- int keylen;
-
- unsigned int nb_programs;
- AVProgram **programs;
-
- /**
- * Forced video codec_id.
- * Demuxing: Set by user.
- */
- enum CodecID video_codec_id;
- /**
- * Forced audio codec_id.
- * Demuxing: Set by user.
- */
- enum CodecID audio_codec_id;
- /**
- * Forced subtitle codec_id.
- * Demuxing: Set by user.
- */
- enum CodecID subtitle_codec_id;
-
- /**
- * Maximum amount of memory in bytes to use for the index of each stream.
- * If the index exceeds this size, entries will be discarded as
- * needed to maintain a smaller size. This can lead to slower or less
- * accurate seeking (depends on demuxer).
- * Demuxers for which a full in-memory index is mandatory will ignore
- * this.
- * muxing : unused
- * demuxing: set by user
- */
- unsigned int max_index_size;
-
- /**
- * Maximum amount of memory in bytes to use for buffering frames
- * obtained from realtime capture devices.
- */
- unsigned int max_picture_buffer;
-
- unsigned int nb_chapters;
- AVChapter **chapters;
-
- /**
- * Flags to enable debugging.
- */
- int debug;
-#define FF_FDEBUG_TS 0x0001
-
- /**
- * Raw packets from the demuxer, prior to parsing and decoding.
- * This buffer is used for buffering packets until the codec can
- * be identified, as parsing cannot be done without knowing the
- * codec.
- */
- struct AVPacketList *raw_packet_buffer;
- struct AVPacketList *raw_packet_buffer_end;
-
- struct AVPacketList *packet_buffer_end;
-
- AVMetadata *metadata;
-
- /**
- * Remaining size available for raw_packet_buffer, in bytes.
- * NOT PART OF PUBLIC API
- */
-#define RAW_PACKET_BUFFER_SIZE 2500000
- int raw_packet_buffer_remaining_size;
-
- /**
- * Start time of the stream in real world time, in microseconds
- * since the unix epoch (00:00 1st January 1970). That is, pts=0
- * in the stream was captured at this real world time.
- * - encoding: Set by user.
- * - decoding: Unused.
- */
- int64_t start_time_realtime;
-} AVFormatContext;
-
-typedef struct AVPacketList {
- AVPacket pkt;
- struct AVPacketList *next;
-} AVPacketList;
-
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
-extern AVInputFormat *first_iformat;
-extern AVOutputFormat *first_oformat;
-#endif
-
-/**
- * If f is NULL, returns the first registered input format,
- * if f is non-NULL, returns the next registered input format after f
- * or NULL if f is the last one.
- */
-AVInputFormat *av_iformat_next(AVInputFormat *f);
-
-/**
- * If f is NULL, returns the first registered output format,
- * if f is non-NULL, returns the next registered output format after f
- * or NULL if f is the last one.
- */
-AVOutputFormat *av_oformat_next(AVOutputFormat *f);
-
-enum CodecID av_guess_image2_codec(const char *filename);
-
-/* XXX: Use automatic init with either ELF sections or C file parser */
-/* modules. */
-
-/* utils.c */
-void av_register_input_format(AVInputFormat *format);
-void av_register_output_format(AVOutputFormat *format);
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-attribute_deprecated AVOutputFormat *guess_stream_format(const char *short_name,
- const char *filename,
- const char *mime_type);
-
-/**
- * @deprecated Use av_guess_format() instead.
- */
-attribute_deprecated AVOutputFormat *guess_format(const char *short_name,
- const char *filename,
- const char *mime_type);
-#endif
-
-/**
- * Returns the output format in the list of registered output formats
- * which best matches the provided parameters, or returns NULL if
- * there is no match.
- *
- * @param short_name if non-NULL checks if short_name matches with the
- * names of the registered formats
- * @param filename if non-NULL checks if filename terminates with the
- * extensions of the registered formats
- * @param mime_type if non-NULL checks if mime_type matches with the
- * MIME type of the registered formats
- */
-AVOutputFormat *av_guess_format(const char *short_name,
- const char *filename,
- const char *mime_type);
-
-/**
- * Guesses the codec ID based upon muxer and filename.
- */
-enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
- const char *filename, const char *mime_type,
- enum AVMediaType type);
-
-/**
- * Sends a nice hexadecimal dump of a buffer to the specified file stream.
- *
- * @param f The file stream pointer where the dump should be sent to.
- * @param buf buffer
- * @param size buffer size
- *
- * @see av_hex_dump_log, av_pkt_dump, av_pkt_dump_log
- */
-void av_hex_dump(FILE *f, uint8_t *buf, int size);
-
-/**
- * Sends a nice hexadecimal dump of a buffer to the log.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message, lower values signifying
- * higher importance.
- * @param buf buffer
- * @param size buffer size
- *
- * @see av_hex_dump, av_pkt_dump, av_pkt_dump_log
- */
-void av_hex_dump_log(void *avcl, int level, uint8_t *buf, int size);
-
-/**
- * Sends a nice dump of a packet to the specified file stream.
- *
- * @param f The file stream pointer where the dump should be sent to.
- * @param pkt packet to dump
- * @param dump_payload True if the payload must be displayed, too.
- */
-void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload);
-
-/**
- * Sends a nice dump of a packet to the log.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message, lower values signifying
- * higher importance.
- * @param pkt packet to dump
- * @param dump_payload True if the payload must be displayed, too.
- */
-void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, int dump_payload);
-
-/**
- * Initializes libavformat and registers all the muxers, demuxers and
- * protocols. If you do not call this function, then you can select
- * exactly which formats you want to support.
- *
- * @see av_register_input_format()
- * @see av_register_output_format()
- * @see av_register_protocol()
- */
-void av_register_all(void);
-
-/** codec tag <-> codec id */
-enum CodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag);
-unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum CodecID id);
-
-/* media file input */
-
-/**
- * Finds AVInputFormat based on the short name of the input format.
- */
-AVInputFormat *av_find_input_format(const char *short_name);
-
-/**
- * Guesses the file format.
- *
- * @param is_opened Whether the file is already opened; determines whether
- * demuxers with or without AVFMT_NOFILE are probed.
- */
-AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
-
-/**
- * Guesses the file format.
- *
- * @param is_opened Whether the file is already opened; determines whether
- * demuxers with or without AVFMT_NOFILE are probed.
- * @param score_max A probe score larger that this is required to accept a
- * detection, the variable is set to the actual detection
- * score afterwards.
- * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended
- * to retry with a larger probe buffer.
- */
-AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max);
-
-/**
- * Allocates all the structures needed to read an input stream.
- * This does not open the needed codecs for decoding the stream[s].
- */
-int av_open_input_stream(AVFormatContext **ic_ptr,
- ByteIOContext *pb, const char *filename,
- AVInputFormat *fmt, AVFormatParameters *ap);
-
-/**
- * Opens a media file as input. The codecs are not opened. Only the file
- * header (if present) is read.
- *
- * @param ic_ptr The opened media file handle is put here.
- * @param filename filename to open
- * @param fmt If non-NULL, force the file format to use.
- * @param buf_size optional buffer size (zero if default is OK)
- * @param ap Additional parameters needed when opening the file
- * (NULL if default).
- * @return 0 if OK, AVERROR_xxx otherwise
- */
-int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
- AVInputFormat *fmt,
- int buf_size,
- AVFormatParameters *ap);
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-/**
- * @deprecated Use avformat_alloc_context() instead.
- */
-attribute_deprecated AVFormatContext *av_alloc_format_context(void);
-#endif
-
-/**
- * Allocates an AVFormatContext.
- * Can be freed with av_free() but do not forget to free everything you
- * explicitly allocated as well!
- */
-AVFormatContext *avformat_alloc_context(void);
-
-/**
- * Reads packets of a media file to get stream information. This
- * is useful for file formats with no headers such as MPEG. This
- * function also computes the real framerate in case of MPEG-2 repeat
- * frame mode.
- * The logical file position is not changed by this function;
- * examined packets may be buffered for later processing.
- *
- * @param ic media file handle
- * @return >=0 if OK, AVERROR_xxx on error
- * @todo Let the user decide somehow what information is needed so that
- * we do not waste time getting stuff the user does not need.
- */
-int av_find_stream_info(AVFormatContext *ic);
-
-/**
- * Reads a transport packet from a media file.
- *
- * This function is obsolete and should never be used.
- * Use av_read_frame() instead.
- *
- * @param s media file handle
- * @param pkt is filled
- * @return 0 if OK, AVERROR_xxx on error
- */
-int av_read_packet(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Returns the next frame of a stream.
- *
- * The returned packet is valid
- * until the next av_read_frame() or until av_close_input_file() and
- * must be freed with av_free_packet. For video, the packet contains
- * exactly one frame. For audio, it contains an integer number of
- * frames if each frame has a known fixed size (e.g. PCM or ADPCM
- * data). If the audio frames have a variable size (e.g. MPEG audio),
- * then it contains one frame.
- *
- * pkt->pts, pkt->dts and pkt->duration are always set to correct
- * values in AVStream.time_base units (and guessed if the format cannot
- * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format
- * has B-frames, so it is better to rely on pkt->dts if you do not
- * decompress the payload.
- *
- * @return 0 if OK, < 0 on error or end of file
- */
-int av_read_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Seeks to the keyframe at timestamp.
- * 'timestamp' in 'stream_index'.
- * @param stream_index If stream_index is (-1), a default
- * stream is selected, and timestamp is automatically converted
- * from AV_TIME_BASE units to the stream specific time_base.
- * @param timestamp Timestamp in AVStream.time_base units
- * or, if no stream is specified, in AV_TIME_BASE units.
- * @param flags flags which select direction and seeking mode
- * @return >= 0 on success
- */
-int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
- int flags);
-
-/**
- * Seeks to timestamp ts.
- * Seeking will be done so that the point from which all active streams
- * can be presented successfully will be closest to ts and within min/max_ts.
- * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
- *
- * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and
- * are the file position (this may not be supported by all demuxers).
- * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames
- * in the stream with stream_index (this may not be supported by all demuxers).
- * Otherwise all timestamps are in units of the stream selected by stream_index
- * or if stream_index is -1, in AV_TIME_BASE units.
- * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as
- * keyframes (this may not be supported by all demuxers).
- *
- * @param stream_index index of the stream which is used as time base reference
- * @param min_ts smallest acceptable timestamp
- * @param ts target timestamp
- * @param max_ts largest acceptable timestamp
- * @param flags flags
- * @return >=0 on success, error code otherwise
- *
- * @NOTE This is part of the new seek API which is still under construction.
- * Thus do not use this yet. It may change at any time, do not expect
- * ABI compatibility yet!
- */
-int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
-
-/**
- * Starts playing a network-based stream (e.g. RTSP stream) at the
- * current position.
- */
-int av_read_play(AVFormatContext *s);
-
-/**
- * Pauses a network-based stream (e.g. RTSP stream).
- *
- * Use av_read_play() to resume it.
- */
-int av_read_pause(AVFormatContext *s);
-
-/**
- * Frees a AVFormatContext allocated by av_open_input_stream.
- * @param s context to free
- */
-void av_close_input_stream(AVFormatContext *s);
-
-/**
- * Closes a media file (but not its codecs).
- *
- * @param s media file handle
- */
-void av_close_input_file(AVFormatContext *s);
-
-/**
- * Adds a new stream to a media file.
- *
- * Can only be called in the read_header() function. If the flag
- * AVFMTCTX_NOHEADER is in the format context, then new streams
- * can be added in read_packet too.
- *
- * @param s media file handle
- * @param id file-format-dependent stream ID
- */
-AVStream *av_new_stream(AVFormatContext *s, int id);
-AVProgram *av_new_program(AVFormatContext *s, int id);
-
-/**
- * Adds a new chapter.
- * This function is NOT part of the public API
- * and should ONLY be used by demuxers.
- *
- * @param s media file handle
- * @param id unique ID for this chapter
- * @param start chapter start time in time_base units
- * @param end chapter end time in time_base units
- * @param title chapter title
- *
- * @return AVChapter or NULL on error
- */
-AVChapter *ff_new_chapter(AVFormatContext *s, int id, AVRational time_base,
- int64_t start, int64_t end, const char *title);
-
-/**
- * Sets the pts for a given stream.
- *
- * @param s stream
- * @param pts_wrap_bits number of bits effectively used by the pts
- * (used for wrap control, 33 is the value for MPEG)
- * @param pts_num numerator to convert to seconds (MPEG: 1)
- * @param pts_den denominator to convert to seconds (MPEG: 90000)
- */
-void av_set_pts_info(AVStream *s, int pts_wrap_bits,
- unsigned int pts_num, unsigned int pts_den);
-
-#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward
-#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes
-#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes
-#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number
-
-int av_find_default_stream_index(AVFormatContext *s);
-
-/**
- * Gets the index for a specific timestamp.
- * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond
- * to the timestamp which is <= the requested one, if backward
- * is 0, then it will be >=
- * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise
- * @return < 0 if no such timestamp could be found
- */
-int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags);
-
-/**
- * Ensures the index uses less memory than the maximum specified in
- * AVFormatContext.max_index_size by discarding entries if it grows
- * too large.
- * This function is not part of the public API and should only be called
- * by demuxers.
- */
-void ff_reduce_index(AVFormatContext *s, int stream_index);
-
-/**
- * Adds an index entry into a sorted list. Updates the entry if the list
- * already contains it.
- *
- * @param timestamp timestamp in the time base of the given stream
- */
-int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp,
- int size, int distance, int flags);
-
-/**
- * Does a binary search using av_index_search_timestamp() and
- * AVCodec.read_timestamp().
- * This is not supposed to be called directly by a user application,
- * but by demuxers.
- * @param target_ts target timestamp in the time base of the given stream
- * @param stream_index stream number
- */
-int av_seek_frame_binary(AVFormatContext *s, int stream_index,
- int64_t target_ts, int flags);
-
-/**
- * Updates cur_dts of all streams based on the given timestamp and AVStream.
- *
- * Stream ref_st unchanged, others set cur_dts in their native time base.
- * Only needed for timestamp wrapping or if (dts not set and pts!=dts).
- * @param timestamp new dts expressed in time_base of param ref_st
- * @param ref_st reference stream giving time_base of param timestamp
- */
-void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp);
-
-/**
- * Does a binary search using read_timestamp().
- * This is not supposed to be called directly by a user application,
- * but by demuxers.
- * @param target_ts target timestamp in the time base of the given stream
- * @param stream_index stream number
- */
-int64_t av_gen_search(AVFormatContext *s, int stream_index,
- int64_t target_ts, int64_t pos_min,
- int64_t pos_max, int64_t pos_limit,
- int64_t ts_min, int64_t ts_max,
- int flags, int64_t *ts_ret,
- int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t ));
-
-/** media file output */
-int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap);
-
-/**
- * Allocates the stream private data and writes the stream header to an
- * output media file.
- *
- * @param s media file handle
- * @return 0 if OK, AVERROR_xxx on error
- */
-int av_write_header(AVFormatContext *s);
-
-/**
- * Writes a packet to an output media file.
- *
- * The packet shall contain one audio or video frame.
- * The packet must be correctly interleaved according to the container
- * specification, if not then av_interleaved_write_frame must be used.
- *
- * @param s media file handle
- * @param pkt The packet, which contains the stream_index, buf/buf_size,
- dts/pts, ...
- * @return < 0 on error, = 0 if OK, 1 if end of stream wanted
- */
-int av_write_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Writes a packet to an output media file ensuring correct interleaving.
- *
- * The packet must contain one audio or video frame.
- * If the packets are already correctly interleaved, the application should
- * call av_write_frame() instead as it is slightly faster. It is also important
- * to keep in mind that completely non-interleaved input will need huge amounts
- * of memory to interleave with this, so it is preferable to interleave at the
- * demuxer level.
- *
- * @param s media file handle
- * @param pkt The packet, which contains the stream_index, buf/buf_size,
- dts/pts, ...
- * @return < 0 on error, = 0 if OK, 1 if end of stream wanted
- */
-int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Interleaves a packet per dts in an output media file.
- *
- * Packets with pkt->destruct == av_destruct_packet will be freed inside this
- * function, so they cannot be used after it. Note that calling av_free_packet()
- * on them is still safe.
- *
- * @param s media file handle
- * @param out the interleaved packet will be output here
- * @param in the input packet
- * @param flush 1 if no further packets are available as input and all
- * remaining packets should be output
- * @return 1 if a packet was output, 0 if no packet could be output,
- * < 0 if an error occurred
- */
-int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
- AVPacket *pkt, int flush);
-
-/**
- * Writes the stream trailer to an output media file and frees the
- * file private data.
- *
- * May only be called after a successful call to av_write_header.
- *
- * @param s media file handle
- * @return 0 if OK, AVERROR_xxx on error
- */
-int av_write_trailer(AVFormatContext *s);
-
-void dump_format(AVFormatContext *ic,
- int index,
- const char *url,
- int is_output);
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-/**
- * Parses width and height out of string str.
- * @deprecated Use av_parse_video_frame_size instead.
- */
-attribute_deprecated int parse_image_size(int *width_ptr, int *height_ptr,
- const char *str);
-
-/**
- * Converts framerate from a string to a fraction.
- * @deprecated Use av_parse_video_frame_rate instead.
- */
-attribute_deprecated int parse_frame_rate(int *frame_rate, int *frame_rate_base,
- const char *arg);
-#endif
-
-/**
- * Parses datestr and returns a corresponding number of microseconds.
- * @param datestr String representing a date or a duration.
- * - If a date the syntax is:
- * @code
- * [{YYYY-MM-DD|YYYYMMDD}]{T| }{HH[:MM[:SS[.m...]]][Z]|HH[MM[SS[.m...]]][Z]}
- * @endcode
- * Time is local time unless Z is appended, in which case it is
- * interpreted as UTC.
- * If the year-month-day part is not specified it takes the current
- * year-month-day.
- * Returns the number of microseconds since 1st of January, 1970 up to
- * the time of the parsed date or INT64_MIN if datestr cannot be
- * successfully parsed.
- * - If a duration the syntax is:
- * @code
- * [-]HH[:MM[:SS[.m...]]]
- * [-]S+[.m...]
- * @endcode
- * Returns the number of microseconds contained in a time interval
- * with the specified duration or INT64_MIN if datestr cannot be
- * successfully parsed.
- * @param duration Flag which tells how to interpret datestr, if
- * not zero datestr is interpreted as a duration, otherwise as a
- * date.
- */
-int64_t parse_date(const char *datestr, int duration);
-
-/** Gets the current time in microseconds. */
-int64_t av_gettime(void);
-
-/* ffm-specific for ffserver */
-#define FFM_PACKET_SIZE 4096
-int64_t ffm_read_write_index(int fd);
-int ffm_write_write_index(int fd, int64_t pos);
-void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size);
-
-/**
- * Attempts to find a specific tag in a URL.
- *
- * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
- * Return 1 if found.
- */
-int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info);
-
-/**
- * Returns in 'buf' the path with '%d' replaced by a number.
- *
- * Also handles the '%0nd' format where 'n' is the total number
- * of digits and '%%'.
- *
- * @param buf destination buffer
- * @param buf_size destination buffer size
- * @param path numbered sequence string
- * @param number frame number
- * @return 0 if OK, -1 on format error
- */
-int av_get_frame_filename(char *buf, int buf_size,
- const char *path, int number);
-
-/**
- * Checks whether filename actually is a numbered sequence generator.
- *
- * @param filename possible numbered sequence string
- * @return 1 if a valid numbered sequence string, 0 otherwise
- */
-int av_filename_number_test(const char *filename);
-
-/**
- * Generates an SDP for an RTP session.
- *
- * @param ac array of AVFormatContexts describing the RTP streams. If the
- * array is composed by only one context, such context can contain
- * multiple AVStreams (one AVStream per RTP stream). Otherwise,
- * all the contexts in the array (an AVCodecContext per RTP stream)
- * must contain only one AVStream.
- * @param n_files number of AVCodecContexts contained in ac
- * @param buff buffer where the SDP will be stored (must be allocated by
- * the caller)
- * @param size the size of the buffer
- * @return 0 if OK, AVERROR_xxx on error
- */
-int avf_sdp_create(AVFormatContext *ac[], int n_files, char *buff, int size);
-
-/**
- * Returns a positive value if the given filename has one of the given
- * extensions, 0 otherwise.
- *
- * @param extensions a comma-separated list of filename extensions
- */
-int av_match_ext(const char *filename, const char *extensions);
-
-#endif /* AVFORMAT_AVFORMAT_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_AVI_H
-#define AVFORMAT_AVI_H
-
-#include "metadata.h"
-
-#define AVIF_HASINDEX 0x00000010 // Index at end of file?
-#define AVIF_MUSTUSEINDEX 0x00000020
-#define AVIF_ISINTERLEAVED 0x00000100
-#define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames?
-#define AVIF_WASCAPTUREFILE 0x00010000
-#define AVIF_COPYRIGHTED 0x00020000
-
-#define AVI_MAX_RIFF_SIZE 0x40000000LL
-#define AVI_MASTER_INDEX_SIZE 256
-
-/* index flags */
-#define AVIIF_INDEX 0x10
-
-extern const AVMetadataConv ff_avi_metadata_conv[];
-
-/**
- * A list of AVI info tags.
- */
-extern const char ff_avi_tags[][5];
-
-#endif /* AVFORMAT_AVI_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_AVIO_H
-#define AVFORMAT_AVIO_H
-
-/**
- * @file
- * unbuffered I/O operations
- *
- * @warning This file has to be considered an internal but installed
- * header, so it should not be directly included in your projects.
- */
-
-#include <stdint.h>
-
-#include "libavutil/common.h"
-
-/* unbuffered I/O */
-
-/**
- * URL Context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(URLContext) must not be used outside libav*.
- */
-typedef struct URLContext {
-#if LIBAVFORMAT_VERSION_MAJOR >= 53
- const AVClass *av_class; ///< information for av_log(). Set by url_open().
-#endif
- struct URLProtocol *prot;
- int flags;
- int is_streamed; /**< true if streamed (no seek possible), default = false */
- int max_packet_size; /**< if non zero, the stream is packetized with this max packet size */
- void *priv_data;
- char *filename; /**< specified URL */
-} URLContext;
-
-typedef struct URLPollEntry {
- URLContext *handle;
- int events;
- int revents;
-} URLPollEntry;
-
-#define URL_RDONLY 0
-#define URL_WRONLY 1
-#define URL_RDWR 2
-
-typedef int URLInterruptCB(void);
-
-/**
- * Creates an URLContext for accessing to the resource indicated by
- * url, and opens it using the URLProtocol up.
- *
- * @param puc pointer to the location where, in case of success, the
- * function puts the pointer to the created URLContext
- * @param flags flags which control how the resource indicated by url
- * is to be opened
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int url_open_protocol (URLContext **puc, struct URLProtocol *up,
- const char *url, int flags);
-
-/**
- * Creates an URLContext for accessing to the resource indicated by
- * url, and opens it.
- *
- * @param puc pointer to the location where, in case of success, the
- * function puts the pointer to the created URLContext
- * @param flags flags which control how the resource indicated by url
- * is to be opened
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int url_open(URLContext **h, const char *url, int flags);
-
-/**
- * Reads up to size bytes from the resource accessed by h, and stores
- * the read bytes in buf.
- *
- * @return The number of bytes actually read, or a negative value
- * corresponding to an AVERROR code in case of error. A value of zero
- * indicates that it is not possible to read more from the accessed
- * resource (except if the value of the size argument is also zero).
- */
-int url_read(URLContext *h, unsigned char *buf, int size);
-
-/**
- * Read as many bytes as possible (up to size), calling the
- * read function multiple times if necessary.
- * Will also retry if the read function returns AVERROR(EAGAIN).
- * This makes special short-read handling in applications
- * unnecessary, if the return value is < size then it is
- * certain there was either an error or the end of file was reached.
- */
-int url_read_complete(URLContext *h, unsigned char *buf, int size);
-int url_write(URLContext *h, unsigned char *buf, int size);
-
-/**
- * Changes the position that will be used by the next read/write
- * operation on the resource accessed by h.
- *
- * @param pos specifies the new position to set
- * @param whence specifies how pos should be interpreted, it must be
- * one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the
- * current position), SEEK_END (seek from the end), or AVSEEK_SIZE
- * (return the filesize of the requested resource, pos is ignored).
- * @return a negative value corresponding to an AVERROR code in case
- * of failure, or the resulting file position, measured in bytes from
- * the beginning of the file. You can use this feature together with
- * SEEK_CUR to read the current file position.
- */
-int64_t url_seek(URLContext *h, int64_t pos, int whence);
-
-/**
- * Closes the resource accessed by the URLContext h, and frees the
- * memory used by it.
- *
- * @return a negative value if an error condition occurred, 0
- * otherwise
- */
-int url_close(URLContext *h);
-
-/**
- * Returns a non-zero value if the resource indicated by url
- * exists, 0 otherwise.
- */
-int url_exist(const char *url);
-
-int64_t url_filesize(URLContext *h);
-
-/**
- * Return the file descriptor associated with this URL. For RTP, this
- * will return only the RTP file descriptor, not the RTCP file descriptor.
- * To get both, use rtp_get_file_handles().
- *
- * @return the file descriptor associated with this URL, or <0 on error.
- */
-int url_get_file_handle(URLContext *h);
-
-/**
- * Return the maximum packet size associated to packetized file
- * handle. If the file is not packetized (stream like HTTP or file on
- * disk), then 0 is returned.
- *
- * @param h file handle
- * @return maximum packet size in bytes
- */
-int url_get_max_packet_size(URLContext *h);
-void url_get_filename(URLContext *h, char *buf, int buf_size);
-
-/**
- * The callback is called in blocking functions to test regulary if
- * asynchronous interruption is needed. AVERROR(EINTR) is returned
- * in this case by the interrupted function. 'NULL' means no interrupt
- * callback is given.
- */
-void url_set_interrupt_cb(URLInterruptCB *interrupt_cb);
-
-/* not implemented */
-int url_poll(URLPollEntry *poll_table, int n, int timeout);
-
-/**
- * Pause and resume playing - only meaningful if using a network streaming
- * protocol (e.g. MMS).
- * @param pause 1 for pause, 0 for resume
- */
-int av_url_read_pause(URLContext *h, int pause);
-
-/**
- * Seek to a given timestamp relative to some component stream.
- * Only meaningful if using a network streaming protocol (e.g. MMS.).
- * @param stream_index The stream index that the timestamp is relative to.
- * If stream_index is (-1) the timestamp should be in AV_TIME_BASE
- * units from the beginning of the presentation.
- * If a stream_index >= 0 is used and the protocol does not support
- * seeking based on component streams, the call will fail with ENOTSUP.
- * @param timestamp timestamp in AVStream.time_base units
- * or if there is no stream specified then in AV_TIME_BASE units.
- * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE
- * and AVSEEK_FLAG_ANY. The protocol may silently ignore
- * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will
- * fail with ENOTSUP if used and not supported.
- * @return >= 0 on success
- * @see AVInputFormat::read_seek
- */
-int64_t av_url_read_seek(URLContext *h, int stream_index,
- int64_t timestamp, int flags);
-
-/**
- * Passing this as the "whence" parameter to a seek function causes it to
- * return the filesize without seeking anywhere. Supporting this is optional.
- * If it is not supported then the seek function will return <0.
- */
-#define AVSEEK_SIZE 0x10000
-
-/**
- * Oring this flag as into the "whence" parameter to a seek function causes it to
- * seek by any means (like reopening and linear reading) or other normally unreasonble
- * means that can be extreemly slow.
- * This may be ignored by the seek code.
- */
-#define AVSEEK_FORCE 0x20000
-
-typedef struct URLProtocol {
- const char *name;
- int (*url_open)(URLContext *h, const char *url, int flags);
- int (*url_read)(URLContext *h, unsigned char *buf, int size);
- int (*url_write)(URLContext *h, unsigned char *buf, int size);
- int64_t (*url_seek)(URLContext *h, int64_t pos, int whence);
- int (*url_close)(URLContext *h);
- struct URLProtocol *next;
- int (*url_read_pause)(URLContext *h, int pause);
- int64_t (*url_read_seek)(URLContext *h, int stream_index,
- int64_t timestamp, int flags);
- int (*url_get_file_handle)(URLContext *h);
-} URLProtocol;
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-extern URLProtocol *first_protocol;
-#endif
-
-extern URLInterruptCB *url_interrupt_cb;
-
-/**
- * If protocol is NULL, returns the first registered protocol,
- * if protocol is non-NULL, returns the next registered protocol after protocol,
- * or NULL if protocol is the last one.
- */
-URLProtocol *av_protocol_next(URLProtocol *p);
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-/**
- * @deprecated Use av_register_protocol() instead.
- */
-attribute_deprecated int register_protocol(URLProtocol *protocol);
-#endif
-
-/**
- * Registers the URLProtocol protocol.
- */
-int av_register_protocol(URLProtocol *protocol);
-
-/**
- * Bytestream IO Context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(ByteIOContext) must not be used outside libav*.
- */
-typedef struct {
- unsigned char *buffer;
- int buffer_size;
- unsigned char *buf_ptr, *buf_end;
- void *opaque;
- int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
- int64_t (*seek)(void *opaque, int64_t offset, int whence);
- int64_t pos; /**< position in the file of the current buffer */
- int must_flush; /**< true if the next seek should flush */
- int eof_reached; /**< true if eof reached */
- int write_flag; /**< true if open for writing */
- int is_streamed;
- int max_packet_size;
- unsigned long checksum;
- unsigned char *checksum_ptr;
- unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
- int error; ///< contains the error code or 0 if no error happened
- int (*read_pause)(void *opaque, int pause);
- int64_t (*read_seek)(void *opaque, int stream_index,
- int64_t timestamp, int flags);
-} ByteIOContext;
-
-int init_put_byte(ByteIOContext *s,
- unsigned char *buffer,
- int buffer_size,
- int write_flag,
- void *opaque,
- int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
- int64_t (*seek)(void *opaque, int64_t offset, int whence));
-ByteIOContext *av_alloc_put_byte(
- unsigned char *buffer,
- int buffer_size,
- int write_flag,
- void *opaque,
- int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
- int64_t (*seek)(void *opaque, int64_t offset, int whence));
-
-void put_byte(ByteIOContext *s, int b);
-void put_buffer(ByteIOContext *s, const unsigned char *buf, int size);
-void put_le64(ByteIOContext *s, uint64_t val);
-void put_be64(ByteIOContext *s, uint64_t val);
-void put_le32(ByteIOContext *s, unsigned int val);
-void put_be32(ByteIOContext *s, unsigned int val);
-void put_le24(ByteIOContext *s, unsigned int val);
-void put_be24(ByteIOContext *s, unsigned int val);
-void put_le16(ByteIOContext *s, unsigned int val);
-void put_be16(ByteIOContext *s, unsigned int val);
-void put_tag(ByteIOContext *s, const char *tag);
-
-void put_strz(ByteIOContext *s, const char *buf);
-
-/**
- * fseek() equivalent for ByteIOContext.
- * @return new position or AVERROR.
- */
-int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence);
-
-/**
- * Skip given number of bytes forward.
- * @param offset number of bytes
- */
-void url_fskip(ByteIOContext *s, int64_t offset);
-
-/**
- * ftell() equivalent for ByteIOContext.
- * @return position or AVERROR.
- */
-int64_t url_ftell(ByteIOContext *s);
-
-/**
- * Gets the filesize.
- * @return filesize or AVERROR
- */
-int64_t url_fsize(ByteIOContext *s);
-
-/**
- * feof() equivalent for ByteIOContext.
- * @return non zero if and only if end of file
- */
-int url_feof(ByteIOContext *s);
-
-int url_ferror(ByteIOContext *s);
-
-int av_url_read_fpause(ByteIOContext *h, int pause);
-int64_t av_url_read_fseek(ByteIOContext *h, int stream_index,
- int64_t timestamp, int flags);
-
-#define URL_EOF (-1)
-/** @note return URL_EOF (-1) if EOF */
-int url_fgetc(ByteIOContext *s);
-
-/** @warning currently size is limited */
-#ifdef __GNUC__
-int url_fprintf(ByteIOContext *s, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
-#else
-int url_fprintf(ByteIOContext *s, const char *fmt, ...);
-#endif
-
-/** @note unlike fgets, the EOL character is not returned and a whole
- line is parsed. return NULL if first char read was EOF */
-char *url_fgets(ByteIOContext *s, char *buf, int buf_size);
-
-void put_flush_packet(ByteIOContext *s);
-
-
-/**
- * Reads size bytes from ByteIOContext into buf.
- * @return number of bytes read or AVERROR
- */
-int get_buffer(ByteIOContext *s, unsigned char *buf, int size);
-
-/**
- * Reads size bytes from ByteIOContext into buf.
- * This reads at most 1 packet. If that is not enough fewer bytes will be
- * returned.
- * @return number of bytes read or AVERROR
- */
-int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size);
-
-/** @note return 0 if EOF, so you cannot use it if EOF handling is
- necessary */
-int get_byte(ByteIOContext *s);
-unsigned int get_le24(ByteIOContext *s);
-unsigned int get_le32(ByteIOContext *s);
-uint64_t get_le64(ByteIOContext *s);
-unsigned int get_le16(ByteIOContext *s);
-
-char *get_strz(ByteIOContext *s, char *buf, int maxlen);
-unsigned int get_be16(ByteIOContext *s);
-unsigned int get_be24(ByteIOContext *s);
-unsigned int get_be32(ByteIOContext *s);
-uint64_t get_be64(ByteIOContext *s);
-
-uint64_t ff_get_v(ByteIOContext *bc);
-
-static inline int url_is_streamed(ByteIOContext *s)
-{
- return s->is_streamed;
-}
-
-/**
- * Creates and initializes a ByteIOContext for accessing the
- * resource referenced by the URLContext h.
- * @note When the URLContext h has been opened in read+write mode, the
- * ByteIOContext can be used only for writing.
- *
- * @param s Used to return the pointer to the created ByteIOContext.
- * In case of failure the pointed to value is set to NULL.
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int url_fdopen(ByteIOContext **s, URLContext *h);
-
-/** @warning must be called before any I/O */
-int url_setbufsize(ByteIOContext *s, int buf_size);
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-/** Reset the buffer for reading or writing.
- * @note Will drop any data currently in the buffer without transmitting it.
- * @param flags URL_RDONLY to set up the buffer for reading, or URL_WRONLY
- * to set up the buffer for writing. */
-int url_resetbuf(ByteIOContext *s, int flags);
-#endif
-
-/**
- * Rewinds the ByteIOContext using the specified buffer containing the first buf_size bytes of the file.
- * Used after probing to avoid seeking.
- * Joins buf and s->buffer, taking any overlap into consideration.
- * @note s->buffer must overlap with buf or they can't be joined and the function fails
- * @note This function is NOT part of the public API
- *
- * @param s The read-only ByteIOContext to rewind
- * @param buf The probe buffer containing the first buf_size bytes of the file
- * @param buf_size The size of buf
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int ff_rewind_with_probe_data(ByteIOContext *s, unsigned char *buf, int buf_size);
-
-/**
- * Creates and initializes a ByteIOContext for accessing the
- * resource indicated by url.
- * @note When the resource indicated by url has been opened in
- * read+write mode, the ByteIOContext can be used only for writing.
- *
- * @param s Used to return the pointer to the created ByteIOContext.
- * In case of failure the pointed to value is set to NULL.
- * @param flags flags which control how the resource indicated by url
- * is to be opened
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int url_fopen(ByteIOContext **s, const char *url, int flags);
-
-int url_fclose(ByteIOContext *s);
-URLContext *url_fileno(ByteIOContext *s);
-
-/**
- * Return the maximum packet size associated to packetized buffered file
- * handle. If the file is not packetized (stream like http or file on
- * disk), then 0 is returned.
- *
- * @param s buffered file handle
- * @return maximum packet size in bytes
- */
-int url_fget_max_packet_size(ByteIOContext *s);
-
-int url_open_buf(ByteIOContext **s, uint8_t *buf, int buf_size, int flags);
-
-/** return the written or read size */
-int url_close_buf(ByteIOContext *s);
-
-/**
- * Open a write only memory stream.
- *
- * @param s new IO context
- * @return zero if no error.
- */
-int url_open_dyn_buf(ByteIOContext **s);
-
-/**
- * Open a write only packetized memory stream with a maximum packet
- * size of 'max_packet_size'. The stream is stored in a memory buffer
- * with a big endian 4 byte header giving the packet size in bytes.
- *
- * @param s new IO context
- * @param max_packet_size maximum packet size (must be > 0)
- * @return zero if no error.
- */
-int url_open_dyn_packet_buf(ByteIOContext **s, int max_packet_size);
-
-/**
- * Return the written size and a pointer to the buffer. The buffer
- * must be freed with av_free().
- * @param s IO context
- * @param pbuffer pointer to a byte buffer
- * @return the length of the byte buffer
- */
-int url_close_dyn_buf(ByteIOContext *s, uint8_t **pbuffer);
-
-unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,
- unsigned int len);
-unsigned long get_checksum(ByteIOContext *s);
-void init_checksum(ByteIOContext *s,
- unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),
- unsigned long checksum);
-
-/* udp.c */
-int udp_set_remote_url(URLContext *h, const char *uri);
-int udp_get_local_port(URLContext *h);
-#if (LIBAVFORMAT_VERSION_MAJOR <= 52)
-int udp_get_file_handle(URLContext *h);
-#endif
-
-#endif /* AVFORMAT_AVIO_H */
+++ /dev/null
-/*
- * Cyril Comparon, Larbi Joubala, Resonate-MP4 2009
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_AVLANGUAGE_H
-#define AVFORMAT_AVLANGUAGE_H
-
-/**
- * Known language codespaces
- */
-enum AVLangCodespace {
- AV_LANG_ISO639_2_BIBL, /** 3-char bibliographic language codes as per ISO-IEC 639-2 */
- AV_LANG_ISO639_2_TERM, /** 3-char terminologic language codes as per ISO-IEC 639-2 */
- AV_LANG_ISO639_1 /** 2-char code of language as per ISO/IEC 639-1 */
-};
-
-/**
- * Converts a language code to a target codespace. The source codespace is guessed.
- * Returns NULL if the provided lang is null or invalid.
- */
-const char *av_convert_lang_to(const char *lang, enum AVLangCodespace target_codespace);
-
-#endif /* AVFORMAT_AVLANGUAGE_H */
+++ /dev/null
-/*
- * CAF common code
- * Copyright (c) 2007 Justin Ruggles
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * CAF common code
- */
-
-#ifndef AVFORMAT_CAF_H
-#define AVFORMAT_CAF_H
-
-#include "riff.h"
-
-extern const AVCodecTag ff_codec_caf_tags[];
-
-#endif /* AVFORMAT_CAF_H */
+++ /dev/null
-/*
- * General DV muxer/demuxer
- * Copyright (c) 2003 Roman Shaposhnik
- *
- * Many thanks to Dan Dennedy <dan@dennedy.org> for providing wealth
- * of DV technical info.
- *
- * Raw DV format
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_DV_H
-#define AVFORMAT_DV_H
-
-#include "avformat.h"
-
-typedef struct DVDemuxContext DVDemuxContext;
-DVDemuxContext* dv_init_demux(AVFormatContext* s);
-int dv_get_packet(DVDemuxContext*, AVPacket *);
-int dv_produce_packet(DVDemuxContext*, AVPacket*, uint8_t*, int);
-void dv_offset_reset(DVDemuxContext *c, int64_t frame_offset);
-
-typedef struct DVMuxContext DVMuxContext;
-DVMuxContext* dv_init_mux(AVFormatContext* s);
-int dv_assemble_frame(DVMuxContext *c, AVStream*, uint8_t*, int, uint8_t**);
-void dv_delete_mux(DVMuxContext*);
-
-#endif /* AVFORMAT_DV_H */
+++ /dev/null
-/*
- * FFM (ffserver live feed) common header
- * Copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_FFM_H
-#define AVFORMAT_FFM_H
-
-#include <stdint.h>
-#include "avformat.h"
-#include "avio.h"
-
-/* The FFM file is made of blocks of fixed size */
-#define FFM_HEADER_SIZE 14
-#define PACKET_ID 0x666d
-
-/* each packet contains frames (which can span several packets */
-#define FRAME_HEADER_SIZE 16
-#define FLAG_KEY_FRAME 0x01
-#define FLAG_DTS 0x02
-
-enum {
- READ_HEADER,
- READ_DATA,
-};
-
-typedef struct FFMContext {
- /* only reading mode */
- int64_t write_index, file_size;
- int read_state;
- uint8_t header[FRAME_HEADER_SIZE+4];
-
- /* read and write */
- int first_packet; /* true if first packet, needed to set the discontinuity tag */
- int packet_size;
- int frame_offset;
- int64_t dts;
- uint8_t *packet_ptr, *packet_end;
- uint8_t packet[FFM_PACKET_SIZE];
-} FFMContext;
-
-#endif /* AVFORMAT_FFM_H */
+++ /dev/null
-/*
- * raw FLAC muxer
- * Copyright (C) 2009 Justin Ruggles
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_FLACENC_H
-#define AVFORMAT_FLACENC_H
-
-#include "libavcodec/flac.h"
-#include "libavcodec/bytestream.h"
-#include "avformat.h"
-
-int ff_flac_write_header(ByteIOContext *pb, AVCodecContext *codec,
- int last_block);
-
-#endif /* AVFORMAT_FLACENC_H */
+++ /dev/null
-/**
- * @file
- * FLV common header
- *
- * Copyright (c) 2006 The FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_FLV_H
-#define AVFORMAT_FLV_H
-
-/* offsets for packed values */
-#define FLV_AUDIO_SAMPLESSIZE_OFFSET 1
-#define FLV_AUDIO_SAMPLERATE_OFFSET 2
-#define FLV_AUDIO_CODECID_OFFSET 4
-
-#define FLV_VIDEO_FRAMETYPE_OFFSET 4
-
-/* bitmasks to isolate specific values */
-#define FLV_AUDIO_CHANNEL_MASK 0x01
-#define FLV_AUDIO_SAMPLESIZE_MASK 0x02
-#define FLV_AUDIO_SAMPLERATE_MASK 0x0c
-#define FLV_AUDIO_CODECID_MASK 0xf0
-
-#define FLV_VIDEO_CODECID_MASK 0x0f
-#define FLV_VIDEO_FRAMETYPE_MASK 0xf0
-
-#define AMF_END_OF_OBJECT 0x09
-
-enum {
- FLV_HEADER_FLAG_HASVIDEO = 1,
- FLV_HEADER_FLAG_HASAUDIO = 4,
-};
-
-enum {
- FLV_TAG_TYPE_AUDIO = 0x08,
- FLV_TAG_TYPE_VIDEO = 0x09,
- FLV_TAG_TYPE_META = 0x12,
-};
-
-enum {
- FLV_MONO = 0,
- FLV_STEREO = 1,
-};
-
-enum {
- FLV_SAMPLESSIZE_8BIT = 0,
- FLV_SAMPLESSIZE_16BIT = 1 << FLV_AUDIO_SAMPLESSIZE_OFFSET,
-};
-
-enum {
- FLV_SAMPLERATE_SPECIAL = 0, /**< signifies 5512Hz and 8000Hz in the case of NELLYMOSER */
- FLV_SAMPLERATE_11025HZ = 1 << FLV_AUDIO_SAMPLERATE_OFFSET,
- FLV_SAMPLERATE_22050HZ = 2 << FLV_AUDIO_SAMPLERATE_OFFSET,
- FLV_SAMPLERATE_44100HZ = 3 << FLV_AUDIO_SAMPLERATE_OFFSET,
-};
-
-enum {
- FLV_CODECID_PCM = 0,
- FLV_CODECID_ADPCM = 1 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_MP3 = 2 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_PCM_LE = 3 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_NELLYMOSER_8KHZ_MONO = 5 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_NELLYMOSER = 6 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_AAC = 10<< FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_SPEEX = 11<< FLV_AUDIO_CODECID_OFFSET,
-};
-
-enum {
- FLV_CODECID_H263 = 2,
- FLV_CODECID_SCREEN = 3,
- FLV_CODECID_VP6 = 4,
- FLV_CODECID_VP6A = 5,
- FLV_CODECID_SCREEN2 = 6,
- FLV_CODECID_H264 = 7,
-};
-
-enum {
- FLV_FRAME_KEY = 1 << FLV_VIDEO_FRAMETYPE_OFFSET,
- FLV_FRAME_INTER = 2 << FLV_VIDEO_FRAMETYPE_OFFSET,
- FLV_FRAME_DISP_INTER = 3 << FLV_VIDEO_FRAMETYPE_OFFSET,
-};
-
-typedef enum {
- AMF_DATA_TYPE_NUMBER = 0x00,
- AMF_DATA_TYPE_BOOL = 0x01,
- AMF_DATA_TYPE_STRING = 0x02,
- AMF_DATA_TYPE_OBJECT = 0x03,
- AMF_DATA_TYPE_NULL = 0x05,
- AMF_DATA_TYPE_UNDEFINED = 0x06,
- AMF_DATA_TYPE_REFERENCE = 0x07,
- AMF_DATA_TYPE_MIXEDARRAY = 0x08,
- AMF_DATA_TYPE_OBJECT_END = 0x09,
- AMF_DATA_TYPE_ARRAY = 0x0a,
- AMF_DATA_TYPE_DATE = 0x0b,
- AMF_DATA_TYPE_LONG_STRING = 0x0c,
- AMF_DATA_TYPE_UNSUPPORTED = 0x0d,
-} AMFDataType;
-
-#endif /* AVFORMAT_FLV_H */
+++ /dev/null
-/*
- * GXF demuxer
- * copyright (c) 2006 Reimar Doeffinger
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_GXF_H
-#define AVFORMAT_GXF_H
-
-typedef enum {
- PKT_MAP = 0xbc,
- PKT_MEDIA = 0xbf,
- PKT_EOS = 0xfb,
- PKT_FLT = 0xfc,
- PKT_UMF = 0xfd,
-} GXFPktType;
-
-typedef enum {
- MAT_NAME = 0x40,
- MAT_FIRST_FIELD = 0x41,
- MAT_LAST_FIELD = 0x42,
- MAT_MARK_IN = 0x43,
- MAT_MARK_OUT = 0x44,
- MAT_SIZE = 0x45,
-} GXFMatTag;
-
-typedef enum {
- TRACK_NAME = 0x4c,
- TRACK_AUX = 0x4d,
- TRACK_VER = 0x4e,
- TRACK_MPG_AUX = 0x4f,
- TRACK_FPS = 0x50,
- TRACK_LINES = 0x51,
- TRACK_FPF = 0x52,
-} GXFTrackTag;
-
-#endif /* AVFORMAT_GXF_H */
+++ /dev/null
-/*
- * HTTP authentication
- * Copyright (c) 2010 Martin Storsjo
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_HTTPAUTH_H
-#define AVFORMAT_HTTPAUTH_H
-
-/**
- * Authentication types, ordered from weakest to strongest.
- */
-typedef enum HTTPAuthType {
- HTTP_AUTH_NONE = 0, /**< No authentication specified */
- HTTP_AUTH_BASIC, /**< HTTP 1.0 Basic auth from RFC 1945
- * (also in RFC 2617) */
- HTTP_AUTH_DIGEST, /**< HTTP 1.1 Digest auth from RFC 2617 */
-} HTTPAuthType;
-
-typedef struct {
- char nonce[300]; /**< Server specified nonce */
- char algorithm[10]; /**< Server specified digest algorithm */
- char qop[30]; /**< Quality of protection, containing the one
- * that we've chosen to use, from the
- * alternatives that the server offered. */
- char opaque[300]; /**< A server-specified string that should be
- * included in authentication responses, not
- * included in the actual digest calculation. */
- int nc; /**< Nonce count, the number of earlier replies
- * where this particular nonce has been used. */
-} DigestParams;
-
-/**
- * HTTP Authentication state structure. Must be zero-initialized
- * before used with the functions below.
- */
-typedef struct {
- /**
- * The currently chosen auth type.
- */
- HTTPAuthType auth_type;
- /**
- * Authentication realm
- */
- char realm[200];
- /**
- * The parameters specifiec to digest authentication.
- */
- DigestParams digest_params;
-} HTTPAuthState;
-
-void ff_http_auth_handle_header(HTTPAuthState *state, const char *key,
- const char *value);
-char *ff_http_auth_create_response(HTTPAuthState *state, const char *auth,
- const char *path, const char *method);
-
-#endif /* AVFORMAT_HTTPAUTH_H */
+++ /dev/null
-/*
- * ID3v1 header parser
- * Copyright (c) 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ID3V1_H
-#define AVFORMAT_ID3V1_H
-
-#include "avformat.h"
-
-#define ID3v1_TAG_SIZE 128
-
-#define ID3v1_GENRE_MAX 147
-
-/**
- * ID3v1 genres
- */
-extern const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1];
-
-/**
- * Read an ID3v1 tag
- */
-void ff_id3v1_read(AVFormatContext *s);
-
-#endif /* AVFORMAT_ID3V1_H */
-
+++ /dev/null
-/*
- * ID3v2 header parser
- * Copyright (c) 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ID3V2_H
-#define AVFORMAT_ID3V2_H
-
-#include <stdint.h>
-#include "avformat.h"
-#include "metadata.h"
-
-#define ID3v2_HEADER_SIZE 10
-
-/**
- * Detects ID3v2 Header.
- * @buf must be ID3v2_HEADER_SIZE byte long
- */
-int ff_id3v2_match(const uint8_t *buf);
-
-/**
- * Gets the length of an ID3v2 tag.
- * @buf must be ID3v2_HEADER_SIZE bytes long and point to the start of an
- * already detected ID3v2 tag
- */
-int ff_id3v2_tag_len(const uint8_t *buf);
-
-/**
- * ID3v2 parser
- * Handles ID3v2.2, 2.3 and 2.4.
- */
-void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags);
-
-/**
- * Read an ID3v2 tag
- */
-void ff_id3v2_read(AVFormatContext *s);
-
-extern const AVMetadataConv ff_id3v2_metadata_conv[];
-
-/**
- * A list of ID3v2.4 text information frames.
- * http://www.id3.org/id3v2.4.0-frames
- */
-extern const char ff_id3v2_tags[][4];
-
-#endif /* AVFORMAT_ID3V2_H */
+++ /dev/null
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_INTERNAL_H
-#define AVFORMAT_INTERNAL_H
-
-#include <stdint.h>
-#include "avformat.h"
-
-void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem);
-
-#ifdef __GNUC__
-#define dynarray_add(tab, nb_ptr, elem)\
-do {\
- __typeof__(tab) _tab = (tab);\
- __typeof__(elem) _elem = (elem);\
- (void)sizeof(**_tab == _elem); /* check that types are compatible */\
- ff_dynarray_add((intptr_t **)_tab, nb_ptr, (intptr_t)_elem);\
-} while(0)
-#else
-#define dynarray_add(tab, nb_ptr, elem)\
-do {\
- ff_dynarray_add((intptr_t **)(tab), nb_ptr, (intptr_t)(elem));\
-} while(0)
-#endif
-
-time_t mktimegm(struct tm *tm);
-struct tm *brktimegm(time_t secs, struct tm *tm);
-const char *small_strptime(const char *p, const char *fmt,
- struct tm *dt);
-
-char *ff_data_to_hex(char *buf, const uint8_t *src, int size, int lowercase);
-
-void ff_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx);
-
-/**
- * Add packet to AVFormatContext->packet_buffer list, determining its
- * interleaved position using compare() function argument.
- */
-void ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
- int (*compare)(AVFormatContext *, AVPacket *, AVPacket *));
-
-void ff_read_frame_flush(AVFormatContext *s);
-
-#define NTP_OFFSET 2208988800ULL
-#define NTP_OFFSET_US (NTP_OFFSET * 1000000ULL)
-
-/** Gets the current time since NTP epoch in microseconds. */
-uint64_t ff_ntp_time(void);
-
-/**
- * Probes a bytestream to determine the input format. Each time a probe returns
- * with a score that is too low, the probe buffer size is increased and another
- * attempt is made. When the maximum probe size is reached, the input format
- * with the highest score is returned.
- *
- * @param pb the bytestream to probe, it may be closed and opened again
- * @param fmt the input format is put here
- * @param filename the filename of the stream
- * @param logctx the log context
- * @param offset the offset within the bytestream to probe from
- * @param max_probe_size the maximum probe buffer size (zero for default)
- * @return 0 in case of success, a negative value corresponding to an
- * AVERROR code otherwise
- */
-int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt,
- const char *filename, void *logctx,
- unsigned int offset, unsigned int max_probe_size);
-
-/**
- * Splits a URL string into components. To reassemble components back into
- * a URL, use ff_url_join instead of using snprintf directly.
- *
- * The pointers to buffers for storing individual components may be null,
- * in order to ignore that component. Buffers for components not found are
- * set to empty strings. If the port isn't found, it is set to a negative
- * value.
- *
- * @see ff_url_join
- *
- * @param proto the buffer for the protocol
- * @param proto_size the size of the proto buffer
- * @param authorization the buffer for the authorization
- * @param authorization_size the size of the authorization buffer
- * @param hostname the buffer for the host name
- * @param hostname_size the size of the hostname buffer
- * @param port_ptr a pointer to store the port number in
- * @param path the buffer for the path
- * @param path_size the size of the path buffer
- * @param url the URL to split
- */
-void ff_url_split(char *proto, int proto_size,
- char *authorization, int authorization_size,
- char *hostname, int hostname_size,
- int *port_ptr,
- char *path, int path_size,
- const char *url);
-
-/**
- * Assembles a URL string from components. This is the reverse operation
- * of ff_url_split.
- *
- * Note, this requires networking to be initialized, so the caller must
- * ensure ff_network_init has been called.
- *
- * @see ff_url_split
- *
- * @param str the buffer to fill with the url
- * @param size the size of the str buffer
- * @param proto the protocol identifier, if null, the separator
- * after the identifier is left out, too
- * @param authorization an optional authorization string, may be null
- * @param hostname the host name string
- * @param port the port number, left out from the string if negative
- * @param fmt a generic format string for everything to add after the
- * host/port, may be null
- * @return the number of characters written to the destination buffer
- */
-int ff_url_join(char *str, int size, const char *proto,
- const char *authorization, const char *hostname,
- int port, const char *fmt, ...);
-
-/**
- * Appends the media-specific SDP fragment for the media stream c
- * to the buffer buff.
- *
- * Note, the buffer needs to be initialized, since it is appended to
- * existing content.
- *
- * @param buff the buffer to append the SDP fragment to
- * @param size the size of the buff buffer
- * @param c the AVCodecContext of the media to describe
- * @param dest_addr the destination address of the media stream, may be NULL
- * @param port the destination port of the media stream, 0 if unknown
- * @param ttl the time to live of the stream, 0 if not multicast
- */
-void ff_sdp_write_media(char *buff, int size, AVCodecContext *c,
- const char *dest_addr, int port, int ttl);
-
-#endif /* AVFORMAT_INTERNAL_H */
+++ /dev/null
-/*
- * ISO Media common code
- * copyright (c) 2001 Fabrice Bellard
- * copyright (c) 2002 Francois Revol <revol@free.fr>
- * copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@free.fr>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_ISOM_H
-#define AVFORMAT_ISOM_H
-
-#include "avio.h"
-#include "riff.h"
-#include "dv.h"
-
-/* isom.c */
-extern const AVCodecTag ff_mp4_obj_type[];
-extern const AVCodecTag codec_movvideo_tags[];
-extern const AVCodecTag codec_movaudio_tags[];
-extern const AVCodecTag ff_codec_movsubtitle_tags[];
-
-int ff_mov_iso639_to_lang(const char lang[4], int mp4);
-int ff_mov_lang_to_iso639(unsigned code, char to[4]);
-
-/* the QuickTime file format is quite convoluted...
- * it has lots of index tables, each indexing something in another one...
- * Here we just use what is needed to read the chunks
- */
-
-typedef struct {
- int count;
- int duration;
-} MOVStts;
-
-typedef struct {
- int first;
- int count;
- int id;
-} MOVStsc;
-
-typedef struct {
- uint32_t type;
- char *path;
- char *dir;
- char volume[28];
- char filename[64];
- int16_t nlvl_to, nlvl_from;
-} MOVDref;
-
-typedef struct {
- uint32_t type;
- int64_t size; /* total size (excluding the size and type fields) */
-} MOVAtom;
-
-struct MOVParseTableEntry;
-
-typedef struct {
- unsigned track_id;
- uint64_t base_data_offset;
- uint64_t moof_offset;
- unsigned stsd_id;
- unsigned duration;
- unsigned size;
- unsigned flags;
-} MOVFragment;
-
-typedef struct {
- unsigned track_id;
- unsigned stsd_id;
- unsigned duration;
- unsigned size;
- unsigned flags;
-} MOVTrackExt;
-
-typedef struct MOVStreamContext {
- ByteIOContext *pb;
- int ffindex; ///< AVStream index
- int next_chunk;
- unsigned int chunk_count;
- int64_t *chunk_offsets;
- unsigned int stts_count;
- MOVStts *stts_data;
- unsigned int ctts_count;
- MOVStts *ctts_data;
- unsigned int stsc_count;
- MOVStsc *stsc_data;
- unsigned int stps_count;
- unsigned *stps_data; ///< partial sync sample for mpeg-2 open gop
- int ctts_index;
- int ctts_sample;
- unsigned int sample_size;
- unsigned int sample_count;
- int *sample_sizes;
- unsigned int keyframe_count;
- int *keyframes;
- int time_scale;
- int time_offset; ///< time offset of the first edit list entry
- int current_sample;
- unsigned int bytes_per_frame;
- unsigned int samples_per_frame;
- int dv_audio_container;
- int pseudo_stream_id; ///< -1 means demux all ids
- int16_t audio_cid; ///< stsd audio compression id
- unsigned drefs_count;
- MOVDref *drefs;
- int dref_id;
- int wrong_dts; ///< dts are wrong due to huge ctts offset (iMovie files)
- int width; ///< tkhd width
- int height; ///< tkhd height
- int dts_shift; ///< dts shift when ctts is negative
-} MOVStreamContext;
-
-typedef struct MOVContext {
- AVFormatContext *fc;
- int time_scale;
- int64_t duration; ///< duration of the longest track
- int found_moov; ///< 'moov' atom has been found
- int found_mdat; ///< 'mdat' atom has been found
- DVDemuxContext *dv_demux;
- AVFormatContext *dv_fctx;
- int isom; ///< 1 if file is ISO Media (mp4/3gp)
- MOVFragment fragment; ///< current fragment in moof atom
- MOVTrackExt *trex_data;
- unsigned trex_count;
- int itunes_metadata; ///< metadata are itunes style
- int chapter_track;
-} MOVContext;
-
-int ff_mp4_read_descr_len(ByteIOContext *pb);
-int ff_mov_read_esds(AVFormatContext *fc, ByteIOContext *pb, MOVAtom atom);
-enum CodecID ff_mov_get_lpcm_codec_id(int bps, int flags);
-
-#endif /* AVFORMAT_ISOM_H */
+++ /dev/null
-/*
- * Matroska constants
- * Copyright (c) 2003-2004 The ffmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_MATROSKA_H
-#define AVFORMAT_MATROSKA_H
-
-#include "libavcodec/avcodec.h"
-#include "metadata.h"
-
-/* EBML version supported */
-#define EBML_VERSION 1
-
-/* top-level master-IDs */
-#define EBML_ID_HEADER 0x1A45DFA3
-
-/* IDs in the HEADER master */
-#define EBML_ID_EBMLVERSION 0x4286
-#define EBML_ID_EBMLREADVERSION 0x42F7
-#define EBML_ID_EBMLMAXIDLENGTH 0x42F2
-#define EBML_ID_EBMLMAXSIZELENGTH 0x42F3
-#define EBML_ID_DOCTYPE 0x4282
-#define EBML_ID_DOCTYPEVERSION 0x4287
-#define EBML_ID_DOCTYPEREADVERSION 0x4285
-
-/* general EBML types */
-#define EBML_ID_VOID 0xEC
-#define EBML_ID_CRC32 0xBF
-
-/*
- * Matroska element IDs, max. 32 bits
- */
-
-/* toplevel segment */
-#define MATROSKA_ID_SEGMENT 0x18538067
-
-/* Matroska top-level master IDs */
-#define MATROSKA_ID_INFO 0x1549A966
-#define MATROSKA_ID_TRACKS 0x1654AE6B
-#define MATROSKA_ID_CUES 0x1C53BB6B
-#define MATROSKA_ID_TAGS 0x1254C367
-#define MATROSKA_ID_SEEKHEAD 0x114D9B74
-#define MATROSKA_ID_ATTACHMENTS 0x1941A469
-#define MATROSKA_ID_CLUSTER 0x1F43B675
-#define MATROSKA_ID_CHAPTERS 0x1043A770
-
-/* IDs in the info master */
-#define MATROSKA_ID_TIMECODESCALE 0x2AD7B1
-#define MATROSKA_ID_DURATION 0x4489
-#define MATROSKA_ID_TITLE 0x7BA9
-#define MATROSKA_ID_WRITINGAPP 0x5741
-#define MATROSKA_ID_MUXINGAPP 0x4D80
-#define MATROSKA_ID_DATEUTC 0x4461
-#define MATROSKA_ID_SEGMENTUID 0x73A4
-
-/* ID in the tracks master */
-#define MATROSKA_ID_TRACKENTRY 0xAE
-
-/* IDs in the trackentry master */
-#define MATROSKA_ID_TRACKNUMBER 0xD7
-#define MATROSKA_ID_TRACKUID 0x73C5
-#define MATROSKA_ID_TRACKTYPE 0x83
-#define MATROSKA_ID_TRACKAUDIO 0xE1
-#define MATROSKA_ID_TRACKVIDEO 0xE0
-#define MATROSKA_ID_CODECID 0x86
-#define MATROSKA_ID_CODECPRIVATE 0x63A2
-#define MATROSKA_ID_CODECNAME 0x258688
-#define MATROSKA_ID_CODECINFOURL 0x3B4040
-#define MATROSKA_ID_CODECDOWNLOADURL 0x26B240
-#define MATROSKA_ID_CODECDECODEALL 0xAA
-#define MATROSKA_ID_TRACKNAME 0x536E
-#define MATROSKA_ID_TRACKLANGUAGE 0x22B59C
-#define MATROSKA_ID_TRACKFLAGENABLED 0xB9
-#define MATROSKA_ID_TRACKFLAGDEFAULT 0x88
-#define MATROSKA_ID_TRACKFLAGFORCED 0x55AA
-#define MATROSKA_ID_TRACKFLAGLACING 0x9C
-#define MATROSKA_ID_TRACKMINCACHE 0x6DE7
-#define MATROSKA_ID_TRACKMAXCACHE 0x6DF8
-#define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383
-#define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80
-#define MATROSKA_ID_TRACKCONTENTENCODING 0x6240
-#define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F
-#define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE
-
-/* IDs in the trackvideo master */
-#define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3
-#define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0
-#define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA
-#define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0
-#define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA
-#define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA
-#define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB
-#define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC
-#define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD
-#define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2
-#define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A
-#define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9
-#define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3
-#define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524
-
-/* IDs in the trackaudio master */
-#define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5
-#define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5
-
-#define MATROSKA_ID_AUDIOBITDEPTH 0x6264
-#define MATROSKA_ID_AUDIOCHANNELS 0x9F
-
-/* IDs in the content encoding master */
-#define MATROSKA_ID_ENCODINGORDER 0x5031
-#define MATROSKA_ID_ENCODINGSCOPE 0x5032
-#define MATROSKA_ID_ENCODINGTYPE 0x5033
-#define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034
-#define MATROSKA_ID_ENCODINGCOMPALGO 0x4254
-#define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255
-
-/* ID in the cues master */
-#define MATROSKA_ID_POINTENTRY 0xBB
-
-/* IDs in the pointentry master */
-#define MATROSKA_ID_CUETIME 0xB3
-#define MATROSKA_ID_CUETRACKPOSITION 0xB7
-
-/* IDs in the cuetrackposition master */
-#define MATROSKA_ID_CUETRACK 0xF7
-#define MATROSKA_ID_CUECLUSTERPOSITION 0xF1
-#define MATROSKA_ID_CUEBLOCKNUMBER 0x5378
-
-/* IDs in the tags master */
-#define MATROSKA_ID_TAG 0x7373
-#define MATROSKA_ID_SIMPLETAG 0x67C8
-#define MATROSKA_ID_TAGNAME 0x45A3
-#define MATROSKA_ID_TAGSTRING 0x4487
-#define MATROSKA_ID_TAGLANG 0x447A
-#define MATROSKA_ID_TAGDEFAULT 0x44B4
-#define MATROSKA_ID_TAGTARGETS 0x63C0
-#define MATROSKA_ID_TAGTARGETS_TYPE 0x63CA
-#define MATROSKA_ID_TAGTARGETS_TYPEVALUE 0x68CA
-#define MATROSKA_ID_TAGTARGETS_TRACKUID 0x63C5
-#define MATROSKA_ID_TAGTARGETS_CHAPTERUID 0x63C4
-#define MATROSKA_ID_TAGTARGETS_ATTACHUID 0x63C6
-
-/* IDs in the seekhead master */
-#define MATROSKA_ID_SEEKENTRY 0x4DBB
-
-/* IDs in the seekpoint master */
-#define MATROSKA_ID_SEEKID 0x53AB
-#define MATROSKA_ID_SEEKPOSITION 0x53AC
-
-/* IDs in the cluster master */
-#define MATROSKA_ID_CLUSTERTIMECODE 0xE7
-#define MATROSKA_ID_CLUSTERPOSITION 0xA7
-#define MATROSKA_ID_CLUSTERPREVSIZE 0xAB
-#define MATROSKA_ID_BLOCKGROUP 0xA0
-#define MATROSKA_ID_SIMPLEBLOCK 0xA3
-
-/* IDs in the blockgroup master */
-#define MATROSKA_ID_BLOCK 0xA1
-#define MATROSKA_ID_BLOCKDURATION 0x9B
-#define MATROSKA_ID_BLOCKREFERENCE 0xFB
-
-/* IDs in the attachments master */
-#define MATROSKA_ID_ATTACHEDFILE 0x61A7
-#define MATROSKA_ID_FILEDESC 0x467E
-#define MATROSKA_ID_FILENAME 0x466E
-#define MATROSKA_ID_FILEMIMETYPE 0x4660
-#define MATROSKA_ID_FILEDATA 0x465C
-#define MATROSKA_ID_FILEUID 0x46AE
-
-/* IDs in the chapters master */
-#define MATROSKA_ID_EDITIONENTRY 0x45B9
-#define MATROSKA_ID_CHAPTERATOM 0xB6
-#define MATROSKA_ID_CHAPTERTIMESTART 0x91
-#define MATROSKA_ID_CHAPTERTIMEEND 0x92
-#define MATROSKA_ID_CHAPTERDISPLAY 0x80
-#define MATROSKA_ID_CHAPSTRING 0x85
-#define MATROSKA_ID_CHAPLANG 0x437C
-#define MATROSKA_ID_EDITIONUID 0x45BC
-#define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD
-#define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB
-#define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD
-#define MATROSKA_ID_CHAPTERUID 0x73C4
-#define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98
-#define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598
-#define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3
-
-typedef enum {
- MATROSKA_TRACK_TYPE_NONE = 0x0,
- MATROSKA_TRACK_TYPE_VIDEO = 0x1,
- MATROSKA_TRACK_TYPE_AUDIO = 0x2,
- MATROSKA_TRACK_TYPE_COMPLEX = 0x3,
- MATROSKA_TRACK_TYPE_LOGO = 0x10,
- MATROSKA_TRACK_TYPE_SUBTITLE = 0x11,
- MATROSKA_TRACK_TYPE_CONTROL = 0x20,
-} MatroskaTrackType;
-
-typedef enum {
- MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0,
- MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1,
- MATROSKA_TRACK_ENCODING_COMP_LZO = 2,
- MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3,
-} MatroskaTrackEncodingCompAlgo;
-
-/*
- * Matroska Codec IDs, strings
- */
-
-typedef struct CodecTags{
- char str[20];
- enum CodecID id;
-}CodecTags;
-
-typedef struct CodecMime{
- char str[32];
- enum CodecID id;
-}CodecMime;
-
-/* max. depth in the EBML tree structure */
-#define EBML_MAX_DEPTH 16
-
-extern const CodecTags ff_mkv_codec_tags[];
-extern const CodecMime ff_mkv_mime_tags[];
-extern const AVMetadataConv ff_mkv_metadata_conv[];
-
-#endif /* AVFORMAT_MATROSKA_H */
+++ /dev/null
-/*
- * copyright (c) 2009 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_METADATA_H
-#define AVFORMAT_METADATA_H
-
-/**
- * @file
- * internal metadata API header
- * see avformat.h or the public API!
- */
-
-
-#include "avformat.h"
-
-struct AVMetadata{
- int count;
- AVMetadataTag *elems;
-};
-
-struct AVMetadataConv{
- const char *native;
- const char *generic;
-};
-
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-void ff_metadata_demux_compat(AVFormatContext *s);
-void ff_metadata_mux_compat(AVFormatContext *s);
-#endif
-
-void metadata_conv(AVMetadata **pm, const AVMetadataConv *d_conv,
- const AVMetadataConv *s_conv);
-
-#endif /* AVFORMAT_METADATA_H */
+++ /dev/null
-/*
- * MOV, 3GP, MP4 muxer
- * Copyright (c) 2003 Thomas Raivio
- * Copyright (c) 2004 Gildas Bazin <gbazin at videolan dot org>
- * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_MOVENC_H
-#define AVFORMAT_MOVENC_H
-
-#include "avformat.h"
-
-#define MOV_INDEX_CLUSTER_SIZE 16384
-#define MOV_TIMESCALE 1000
-
-#define RTP_MAX_PACKET_SIZE 1450
-
-#define MODE_MP4 0x01
-#define MODE_MOV 0x02
-#define MODE_3GP 0x04
-#define MODE_PSP 0x08 // example working PSP command line:
-// ffmpeg -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4
-#define MODE_3G2 0x10
-#define MODE_IPOD 0x20
-
-typedef struct MOVIentry {
- unsigned int size;
- uint64_t pos;
- unsigned int samplesInChunk;
- unsigned int entries;
- int cts;
- int64_t dts;
-#define MOV_SYNC_SAMPLE 0x0001
-#define MOV_PARTIAL_SYNC_SAMPLE 0x0002
- uint32_t flags;
-} MOVIentry;
-
-typedef struct HintSample {
- uint8_t *data;
- int size;
- int sample_number;
- int offset;
- int own_data;
-} HintSample;
-
-typedef struct {
- int size;
- int len;
- HintSample *samples;
-} HintSampleQueue;
-
-typedef struct MOVIndex {
- int mode;
- int entry;
- unsigned timescale;
- uint64_t time;
- int64_t trackDuration;
- long sampleCount;
- long sampleSize;
- int hasKeyframes;
-#define MOV_TRACK_CTTS 0x0001
-#define MOV_TRACK_STPS 0x0002
- uint32_t flags;
- int language;
- int trackID;
- int tag; ///< stsd fourcc
- AVCodecContext *enc;
-
- int vosLen;
- uint8_t *vosData;
- MOVIentry *cluster;
- int audio_vbr;
- int height; ///< active picture (w/o VBI) height for D-10/IMX
- uint32_t tref_tag;
- int tref_id; ///< trackID of the referenced track
-
- int hint_track; ///< the track that hints this track, -1 if no hint track is set
- int src_track; ///< the track that this hint track describes
- AVFormatContext *rtp_ctx; ///< the format context for the hinting rtp muxer
- uint32_t prev_rtp_ts;
- int64_t cur_rtp_ts_unwrapped;
- uint32_t max_packet_size;
-
- HintSampleQueue sample_queue;
-} MOVTrack;
-
-typedef struct MOVMuxContext {
- int mode;
- int64_t time;
- int nb_streams;
- int chapter_track; ///< qt chapter track number
- int64_t mdat_pos;
- uint64_t mdat_size;
- MOVTrack *tracks;
-} MOVMuxContext;
-
-int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt);
-
-int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index);
-int ff_mov_add_hinted_packet(AVFormatContext *s, AVPacket *pkt,
- int track_index, int sample);
-void ff_mov_close_hinting(MOVTrack *track);
-
-#endif /* AVFORMAT_MOVENC_H */
+++ /dev/null
-/*
- * MPEG1/2 muxer and demuxer common defines
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_MPEG_H
-#define AVFORMAT_MPEG_H
-
-#include <stdint.h>
-#include "libavutil/intreadwrite.h"
-
-#define PACK_START_CODE ((unsigned int)0x000001ba)
-#define SYSTEM_HEADER_START_CODE ((unsigned int)0x000001bb)
-#define SEQUENCE_END_CODE ((unsigned int)0x000001b7)
-#define PACKET_START_CODE_MASK ((unsigned int)0xffffff00)
-#define PACKET_START_CODE_PREFIX ((unsigned int)0x00000100)
-#define ISO_11172_END_CODE ((unsigned int)0x000001b9)
-
-/* mpeg2 */
-#define PROGRAM_STREAM_MAP 0x1bc
-#define PRIVATE_STREAM_1 0x1bd
-#define PADDING_STREAM 0x1be
-#define PRIVATE_STREAM_2 0x1bf
-
-#define AUDIO_ID 0xc0
-#define VIDEO_ID 0xe0
-#define AC3_ID 0x80
-#define DTS_ID 0x8a
-#define LPCM_ID 0xa0
-#define SUB_ID 0x20
-
-#define STREAM_TYPE_VIDEO_MPEG1 0x01
-#define STREAM_TYPE_VIDEO_MPEG2 0x02
-#define STREAM_TYPE_AUDIO_MPEG1 0x03
-#define STREAM_TYPE_AUDIO_MPEG2 0x04
-#define STREAM_TYPE_PRIVATE_SECTION 0x05
-#define STREAM_TYPE_PRIVATE_DATA 0x06
-#define STREAM_TYPE_AUDIO_AAC 0x0f
-#define STREAM_TYPE_VIDEO_MPEG4 0x10
-#define STREAM_TYPE_VIDEO_H264 0x1b
-
-#define STREAM_TYPE_AUDIO_AC3 0x81
-#define STREAM_TYPE_AUDIO_DTS 0x8a
-
-static const int lpcm_freq_tab[4] = { 48000, 96000, 44100, 32000 };
-
-/**
- * Parse MPEG-PES five-byte timestamp
- */
-static inline int64_t ff_parse_pes_pts(uint8_t *buf) {
- return (int64_t)(*buf & 0x0e) << 29 |
- (AV_RB16(buf+1) >> 1) << 15 |
- AV_RB16(buf+3) >> 1;
-}
-
-#endif /* AVFORMAT_MPEG_H */
+++ /dev/null
-/*
- * MPEG2 transport stream defines
- * Copyright (c) 2003 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_MPEGTS_H
-#define AVFORMAT_MPEGTS_H
-
-#include "avformat.h"
-
-#define TS_FEC_PACKET_SIZE 204
-#define TS_DVHS_PACKET_SIZE 192
-#define TS_PACKET_SIZE 188
-#define TS_MAX_PACKET_SIZE 204
-
-#define NB_PID_MAX 8192
-#define MAX_SECTION_SIZE 4096
-
-/* pids */
-#define PAT_PID 0x0000
-#define SDT_PID 0x0011
-
-/* table ids */
-#define PAT_TID 0x00
-#define PMT_TID 0x02
-#define SDT_TID 0x42
-
-#define STREAM_TYPE_VIDEO_MPEG1 0x01
-#define STREAM_TYPE_VIDEO_MPEG2 0x02
-#define STREAM_TYPE_AUDIO_MPEG1 0x03
-#define STREAM_TYPE_AUDIO_MPEG2 0x04
-#define STREAM_TYPE_PRIVATE_SECTION 0x05
-#define STREAM_TYPE_PRIVATE_DATA 0x06
-#define STREAM_TYPE_AUDIO_AAC 0x0f
-#define STREAM_TYPE_VIDEO_MPEG4 0x10
-#define STREAM_TYPE_VIDEO_H264 0x1b
-#define STREAM_TYPE_VIDEO_VC1 0xea
-#define STREAM_TYPE_VIDEO_DIRAC 0xd1
-
-#define STREAM_TYPE_AUDIO_AC3 0x81
-#define STREAM_TYPE_AUDIO_DTS 0x8a
-
-typedef struct MpegTSContext MpegTSContext;
-
-MpegTSContext *ff_mpegts_parse_open(AVFormatContext *s);
-int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt,
- const uint8_t *buf, int len);
-void ff_mpegts_parse_close(MpegTSContext *ts);
-
-#endif /* AVFORMAT_MPEGTS_H */
+++ /dev/null
-/*
- * MXF
- * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_MXF_H
-#define AVFORMAT_MXF_H
-
-#include "libavcodec/avcodec.h"
-#include <stdint.h>
-
-typedef uint8_t UID[16];
-
-enum MXFMetadataSetType {
- AnyType,
- MaterialPackage,
- SourcePackage,
- SourceClip,
- TimecodeComponent,
- Sequence,
- MultipleDescriptor,
- Descriptor,
- Track,
- CryptoContext,
- Preface,
- Identification,
- ContentStorage,
- SubDescriptor,
- IndexTableSegment,
- EssenceContainerData,
- TypeBottom,// add metadata type before this
-};
-
-typedef struct {
- UID key;
- int64_t offset;
- uint64_t length;
-} KLVPacket;
-
-typedef struct {
- UID uid;
- unsigned matching_len;
- int id;
-} MXFCodecUL;
-
-extern const MXFCodecUL ff_mxf_data_definition_uls[];
-extern const MXFCodecUL ff_mxf_codec_uls[];
-
-#ifdef DEBUG
-#define PRINT_KEY(pc, s, x) dprintf(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \
- (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15])
-#else
-#define PRINT_KEY(pc, s, x)
-#endif
-
-#endif /* AVFORMAT_MXF_H */
+++ /dev/null
-/*
- * Copyright (c) 2007 The FFmpeg Project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_NETWORK_H
-#define AVFORMAT_NETWORK_H
-
-#include "config.h"
-
-#if HAVE_WINSOCK2_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
-
-#define ff_neterrno() (-WSAGetLastError())
-#define FF_NETERROR(err) (-WSA##err)
-#define WSAEAGAIN WSAEWOULDBLOCK
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-#define ff_neterrno() AVERROR(errno)
-#define FF_NETERROR(err) AVERROR(err)
-#endif
-
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-int ff_socket_nonblock(int socket, int enable);
-
-static inline int ff_network_init(void)
-{
-#if HAVE_WINSOCK2_H
- WSADATA wsaData;
- if (WSAStartup(MAKEWORD(1,1), &wsaData))
- return 0;
-#endif
- return 1;
-}
-
-static inline void ff_network_close(void)
-{
-#if HAVE_WINSOCK2_H
- WSACleanup();
-#endif
-}
-
-int ff_inet_aton (const char * str, struct in_addr * add);
-
-#if !HAVE_STRUCT_SOCKADDR_STORAGE
-struct sockaddr_storage {
-#if HAVE_STRUCT_SOCKADDR_SA_LEN
- uint8_t ss_len;
- uint8_t ss_family;
-#else
- uint16_t ss_family;
-#endif
- char ss_pad1[6];
- int64_t ss_align;
- char ss_pad2[112];
-};
-#endif
-
-#if !HAVE_STRUCT_ADDRINFO
-struct addrinfo {
- int ai_flags;
- int ai_family;
- int ai_socktype;
- int ai_protocol;
- int ai_addrlen;
- struct sockaddr *ai_addr;
- char *ai_canonname;
- struct addrinfo *ai_next;
-};
-#endif
-
-/* getaddrinfo constants */
-#ifndef EAI_FAIL
-#define EAI_FAIL 4
-#endif
-
-#ifndef EAI_FAMILY
-#define EAI_FAMILY 5
-#endif
-
-#ifndef EAI_NONAME
-#define EAI_NONAME 8
-#endif
-
-#ifndef AI_PASSIVE
-#define AI_PASSIVE 1
-#endif
-
-#ifndef AI_CANONNAME
-#define AI_CANONNAME 2
-#endif
-
-#ifndef AI_NUMERICHOST
-#define AI_NUMERICHOST 4
-#endif
-
-#ifndef NI_NOFQDN
-#define NI_NOFQDN 1
-#endif
-
-#ifndef NI_NUMERICHOST
-#define NI_NUMERICHOST 2
-#endif
-
-#ifndef NI_NAMERQD
-#define NI_NAMERQD 4
-#endif
-
-#ifndef NI_NUMERICSERV
-#define NI_NUMERICSERV 8
-#endif
-
-#ifndef NI_DGRAM
-#define NI_DGRAM 16
-#endif
-
-#if !HAVE_GETADDRINFO
-int ff_getaddrinfo(const char *node, const char *service,
- const struct addrinfo *hints, struct addrinfo **res);
-void ff_freeaddrinfo(struct addrinfo *res);
-int ff_getnameinfo(const struct sockaddr *sa, int salen,
- char *host, int hostlen,
- char *serv, int servlen, int flags);
-const char *ff_gai_strerror(int ecode);
-#define getaddrinfo ff_getaddrinfo
-#define freeaddrinfo ff_freeaddrinfo
-#define getnameinfo ff_getnameinfo
-#define gai_strerror ff_gai_strerror
-#endif
-
-#endif /* AVFORMAT_NETWORK_H */
+++ /dev/null
-/*
- * "NUT" Container Format (de)muxer
- * Copyright (c) 2006 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_NUT_H
-#define AVFORMAT_NUT_H
-
-//#include <limits.h>
-//#include "libavutil/adler32.h"
-//#include "libavcodec/mpegaudio.h"
-#include "avformat.h"
-#include "riff.h"
-#include "metadata.h"
-
-#define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48))
-#define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48))
-#define SYNCPOINT_STARTCODE (0xE4ADEECA4569ULL + (((uint64_t)('N'<<8) + 'K')<<48))
-#define INDEX_STARTCODE (0xDD672F23E64EULL + (((uint64_t)('N'<<8) + 'X')<<48))
-#define INFO_STARTCODE (0xAB68B596BA78ULL + (((uint64_t)('N'<<8) + 'I')<<48))
-
-#define ID_STRING "nut/multimedia container\0"
-
-#define MAX_DISTANCE (1024*32-1)
-
-typedef enum{
- FLAG_KEY = 1, ///<if set, frame is keyframe
- FLAG_EOR = 2, ///<if set, stream has no relevance on presentation. (EOR)
- FLAG_CODED_PTS = 8, ///<if set, coded_pts is in the frame header
- FLAG_STREAM_ID = 16, ///<if set, stream_id is coded in the frame header
- FLAG_SIZE_MSB = 32, ///<if set, data_size_msb is at frame header, otherwise data_size_msb is 0
- FLAG_CHECKSUM = 64, ///<if set, the frame header contains a checksum
- FLAG_RESERVED = 128, ///<if set, reserved_count is coded in the frame header
- FLAG_HEADER_IDX =1024, ///<If set, header_idx is coded in the frame header.
- FLAG_MATCH_TIME =2048, ///<If set, match_time_delta is coded in the frame header
- FLAG_CODED =4096, ///<if set, coded_flags are stored in the frame header
- FLAG_INVALID =8192, ///<if set, frame_code is invalid
-} Flag;
-
-typedef struct {
- uint64_t pos;
- uint64_t back_ptr;
-// uint64_t global_key_pts;
- int64_t ts;
-} Syncpoint;
-
-typedef struct {
- uint16_t flags;
- uint8_t stream_id;
- uint16_t size_mul;
- uint16_t size_lsb;
- int16_t pts_delta;
- uint8_t reserved_count;
- uint8_t header_idx;
-} FrameCode;
-
-typedef struct {
- int last_flags;
- int skip_until_key_frame;
- int64_t last_pts;
- int time_base_id;
- AVRational *time_base;
- int msb_pts_shift;
- int max_pts_distance;
- int decode_delay; //FIXME duplicate of has_b_frames
-} StreamContext;
-
-typedef struct {
- AVFormatContext *avf;
-// int written_packet_size;
-// int64_t packet_start;
- FrameCode frame_code[256];
- uint8_t header_len[128];
- const uint8_t *header[128];
- uint64_t next_startcode; ///< stores the next startcode if it has already been parsed but the stream is not seekable
- StreamContext *stream;
- unsigned int max_distance;
- unsigned int time_base_count;
- int64_t last_syncpoint_pos;
- int header_count;
- AVRational *time_base;
- struct AVTreeNode *syncpoints;
-} NUTContext;
-
-extern const AVCodecTag ff_nut_subtitle_tags[];
-
-typedef struct {
- char str[9];
- int flag;
-} Dispositions;
-
-void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val);
-int64_t ff_lsb2full(StreamContext *stream, int64_t lsb);
-int ff_nut_sp_pos_cmp(const Syncpoint *a, const Syncpoint *b);
-int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *b);
-void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts);
-void ff_nut_free_sp(NUTContext *nut);
-
-extern const Dispositions ff_nut_dispositions[];
-
-extern const AVMetadataConv ff_nut_metadata_conv[];
-
-#endif /* AVFORMAT_NUT_H */
+++ /dev/null
-/**
- Copyright (C) 2005 Michael Ahlberg, Måns Rullgård
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
-**/
-
-#ifndef AVFORMAT_OGGDEC_H
-#define AVFORMAT_OGGDEC_H
-
-#include "avformat.h"
-#include "metadata.h"
-
-struct ogg_codec {
- const int8_t *magic;
- uint8_t magicsize;
- const int8_t *name;
- /**
- * Attempt to process a packet as a header
- * @return 1 if the packet was a valid header,
- * 0 if the packet was not a header (was a data packet)
- * -1 if an error occurred or for unsupported stream
- */
- int (*header)(AVFormatContext *, int);
- int (*packet)(AVFormatContext *, int);
- /**
- * Translate a granule into a timestamp.
- * Will set dts if non-null and known.
- * @return pts
- */
- uint64_t (*gptopts)(AVFormatContext *, int, uint64_t, int64_t *dts);
- /**
- * 1 if granule is the start time of the associated packet.
- * 0 if granule is the end time of the associated packet.
- */
- int granule_is_start;
-};
-
-struct ogg_stream {
- uint8_t *buf;
- unsigned int bufsize;
- unsigned int bufpos;
- unsigned int pstart;
- unsigned int psize;
- unsigned int pflags;
- unsigned int pduration;
- uint32_t serial;
- uint64_t granule;
- int64_t lastpts;
- int64_t lastdts;
- int64_t sync_pos; ///< file offset of the first page needed to reconstruct the current packet
- int64_t page_pos; ///< file offset of the current page
- int flags;
- const struct ogg_codec *codec;
- int header;
- int nsegs, segp;
- uint8_t segments[255];
- int incomplete; ///< whether we're expecting a continuation in the next page
- int page_end; ///< current packet is the last one completed in the page
- int keyframe_seek;
- void *private;
-};
-
-struct ogg_state {
- uint64_t pos;
- int curidx;
- struct ogg_state *next;
- int nstreams;
- struct ogg_stream streams[1];
-};
-
-struct ogg {
- struct ogg_stream *streams;
- int nstreams;
- int headers;
- int curidx;
- struct ogg_state *state;
-};
-
-#define OGG_FLAG_CONT 1
-#define OGG_FLAG_BOS 2
-#define OGG_FLAG_EOS 4
-
-extern const struct ogg_codec ff_dirac_codec;
-extern const struct ogg_codec ff_flac_codec;
-extern const struct ogg_codec ff_ogm_audio_codec;
-extern const struct ogg_codec ff_ogm_old_codec;
-extern const struct ogg_codec ff_ogm_text_codec;
-extern const struct ogg_codec ff_ogm_video_codec;
-extern const struct ogg_codec ff_old_dirac_codec;
-extern const struct ogg_codec ff_old_flac_codec;
-extern const struct ogg_codec ff_skeleton_codec;
-extern const struct ogg_codec ff_speex_codec;
-extern const struct ogg_codec ff_theora_codec;
-extern const struct ogg_codec ff_vorbis_codec;
-
-int ff_vorbis_comment(AVFormatContext *ms, AVMetadata **m, const uint8_t *buf, int size);
-
-static inline int
-ogg_find_stream (struct ogg * ogg, int serial)
-{
- int i;
-
- for (i = 0; i < ogg->nstreams; i++)
- if (ogg->streams[i].serial == serial)
- return i;
-
- return -1;
-}
-
-static inline uint64_t
-ogg_gptopts (AVFormatContext * s, int i, uint64_t gp, int64_t *dts)
-{
- struct ogg *ogg = s->priv_data;
- struct ogg_stream *os = ogg->streams + i;
- uint64_t pts = AV_NOPTS_VALUE;
-
- if(os->codec && os->codec->gptopts){
- pts = os->codec->gptopts(s, i, gp, dts);
- } else {
- pts = gp;
- if (dts)
- *dts = pts;
- }
-
- return pts;
-}
-
-#endif /* AVFORMAT_OGGDEC_H */
+++ /dev/null
-/*
- * various utilities for ffmpeg system
- * copyright (c) 2000, 2001, 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_OS_SUPPORT_H
-#define AVFORMAT_OS_SUPPORT_H
-
-/**
- * @file
- * miscellaneous OS support macros and functions.
- */
-
-#include "config.h"
-
-#if defined(__MINGW32__) && !defined(__MINGW32CE__)
-# include <fcntl.h>
-# define lseek(f,p,w) _lseeki64((f), (p), (w))
-#endif /* defined(__MINGW32__) && !defined(__MINGW32CE__) */
-
-static inline int is_dos_path(const char *path)
-{
-#if HAVE_DOS_PATHS
- if (path[0] && path[1] == ':')
- return 1;
-#endif
- return 0;
-}
-
-#ifdef __BEOS__
-# include <sys/socket.h>
-# include <netinet/in.h>
- /* not net_server ? */
-# include <BeBuild.h>
- /* R5 didn't have usleep, fake it. Haiku and Zeta has it now. */
-# if B_BEOS_VERSION <= B_BEOS_VERSION_5
-# include <OS.h>
- /* doesn't set errno but that's enough */
-# define usleep(t) snooze((bigtime_t)(t))
-# endif
-# ifndef SA_RESTART
-# warning SA_RESTART not implemented; ffserver might misbehave.
-# define SA_RESTART 0
-# endif
-#endif
-
-#if CONFIG_NETWORK
-#if !HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif
-
-/* most of the time closing a socket is just closing an fd */
-#if !HAVE_CLOSESOCKET
-#define closesocket close
-#endif
-
-#if CONFIG_FFSERVER
-#if !HAVE_POLL_H
-typedef unsigned long nfds_t;
-
-struct pollfd {
- int fd;
- short events; /* events to look for */
- short revents; /* events that occurred */
-};
-
-/* events & revents */
-#define POLLIN 0x0001 /* any readable data available */
-#define POLLOUT 0x0002 /* file descriptor is writeable */
-#define POLLRDNORM POLLIN
-#define POLLWRNORM POLLOUT
-#define POLLRDBAND 0x0008 /* priority readable data */
-#define POLLWRBAND 0x0010 /* priority data can be written */
-#define POLLPRI 0x0020 /* high priority readable data */
-
-/* revents only */
-#define POLLERR 0x0004 /* errors pending */
-#define POLLHUP 0x0080 /* disconnected */
-#define POLLNVAL 0x1000 /* invalid file descriptor */
-
-
-int poll(struct pollfd *fds, nfds_t numfds, int timeout);
-#endif /* HAVE_POLL_H */
-#endif /* CONFIG_FFSERVER */
-#endif /* CONFIG_NETWORK */
-
-#endif /* AVFORMAT_OS_SUPPORT_H */
+++ /dev/null
-/*
- * Default Palettes for Quicktime Files
- * Automatically generated from a utility derived from XAnim:
- * http://xanim.va.pubnix.com/home.html
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_QTPALETTE_H
-#define AVFORMAT_QTPALETTE_H
-
-#include <inttypes.h>
-
-static const uint8_t ff_qt_default_palette_4[4 * 3] = {
- 0x93, 0x65, 0x5E,
- 0xFF, 0xFF, 0xFF,
- 0xDF, 0xD0, 0xAB,
- 0x00, 0x00, 0x00
-};
-
-static const uint8_t ff_qt_default_palette_16[16 * 3] = {
- 0xFF, 0xFB, 0xFF,
- 0xEF, 0xD9, 0xBB,
- 0xE8, 0xC9, 0xB1,
- 0x93, 0x65, 0x5E,
- 0xFC, 0xDE, 0xE8,
- 0x9D, 0x88, 0x91,
- 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF,
- 0x47, 0x48, 0x37,
- 0x7A, 0x5E, 0x55,
- 0xDF, 0xD0, 0xAB,
- 0xFF, 0xFB, 0xF9,
- 0xE8, 0xCA, 0xC5,
- 0x8A, 0x7C, 0x77,
- 0x00, 0x00, 0x00
-};
-
-static const uint8_t ff_qt_default_palette_256[256 * 3] = {
- /* 0, 0x00 */ 0xFF, 0xFF, 0xFF,
- /* 1, 0x01 */ 0xFF, 0xFF, 0xCC,
- /* 2, 0x02 */ 0xFF, 0xFF, 0x99,
- /* 3, 0x03 */ 0xFF, 0xFF, 0x66,
- /* 4, 0x04 */ 0xFF, 0xFF, 0x33,
- /* 5, 0x05 */ 0xFF, 0xFF, 0x00,
- /* 6, 0x06 */ 0xFF, 0xCC, 0xFF,
- /* 7, 0x07 */ 0xFF, 0xCC, 0xCC,
- /* 8, 0x08 */ 0xFF, 0xCC, 0x99,
- /* 9, 0x09 */ 0xFF, 0xCC, 0x66,
- /* 10, 0x0A */ 0xFF, 0xCC, 0x33,
- /* 11, 0x0B */ 0xFF, 0xCC, 0x00,
- /* 12, 0x0C */ 0xFF, 0x99, 0xFF,
- /* 13, 0x0D */ 0xFF, 0x99, 0xCC,
- /* 14, 0x0E */ 0xFF, 0x99, 0x99,
- /* 15, 0x0F */ 0xFF, 0x99, 0x66,
- /* 16, 0x10 */ 0xFF, 0x99, 0x33,
- /* 17, 0x11 */ 0xFF, 0x99, 0x00,
- /* 18, 0x12 */ 0xFF, 0x66, 0xFF,
- /* 19, 0x13 */ 0xFF, 0x66, 0xCC,
- /* 20, 0x14 */ 0xFF, 0x66, 0x99,
- /* 21, 0x15 */ 0xFF, 0x66, 0x66,
- /* 22, 0x16 */ 0xFF, 0x66, 0x33,
- /* 23, 0x17 */ 0xFF, 0x66, 0x00,
- /* 24, 0x18 */ 0xFF, 0x33, 0xFF,
- /* 25, 0x19 */ 0xFF, 0x33, 0xCC,
- /* 26, 0x1A */ 0xFF, 0x33, 0x99,
- /* 27, 0x1B */ 0xFF, 0x33, 0x66,
- /* 28, 0x1C */ 0xFF, 0x33, 0x33,
- /* 29, 0x1D */ 0xFF, 0x33, 0x00,
- /* 30, 0x1E */ 0xFF, 0x00, 0xFF,
- /* 31, 0x1F */ 0xFF, 0x00, 0xCC,
- /* 32, 0x20 */ 0xFF, 0x00, 0x99,
- /* 33, 0x21 */ 0xFF, 0x00, 0x66,
- /* 34, 0x22 */ 0xFF, 0x00, 0x33,
- /* 35, 0x23 */ 0xFF, 0x00, 0x00,
- /* 36, 0x24 */ 0xCC, 0xFF, 0xFF,
- /* 37, 0x25 */ 0xCC, 0xFF, 0xCC,
- /* 38, 0x26 */ 0xCC, 0xFF, 0x99,
- /* 39, 0x27 */ 0xCC, 0xFF, 0x66,
- /* 40, 0x28 */ 0xCC, 0xFF, 0x33,
- /* 41, 0x29 */ 0xCC, 0xFF, 0x00,
- /* 42, 0x2A */ 0xCC, 0xCC, 0xFF,
- /* 43, 0x2B */ 0xCC, 0xCC, 0xCC,
- /* 44, 0x2C */ 0xCC, 0xCC, 0x99,
- /* 45, 0x2D */ 0xCC, 0xCC, 0x66,
- /* 46, 0x2E */ 0xCC, 0xCC, 0x33,
- /* 47, 0x2F */ 0xCC, 0xCC, 0x00,
- /* 48, 0x30 */ 0xCC, 0x99, 0xFF,
- /* 49, 0x31 */ 0xCC, 0x99, 0xCC,
- /* 50, 0x32 */ 0xCC, 0x99, 0x99,
- /* 51, 0x33 */ 0xCC, 0x99, 0x66,
- /* 52, 0x34 */ 0xCC, 0x99, 0x33,
- /* 53, 0x35 */ 0xCC, 0x99, 0x00,
- /* 54, 0x36 */ 0xCC, 0x66, 0xFF,
- /* 55, 0x37 */ 0xCC, 0x66, 0xCC,
- /* 56, 0x38 */ 0xCC, 0x66, 0x99,
- /* 57, 0x39 */ 0xCC, 0x66, 0x66,
- /* 58, 0x3A */ 0xCC, 0x66, 0x33,
- /* 59, 0x3B */ 0xCC, 0x66, 0x00,
- /* 60, 0x3C */ 0xCC, 0x33, 0xFF,
- /* 61, 0x3D */ 0xCC, 0x33, 0xCC,
- /* 62, 0x3E */ 0xCC, 0x33, 0x99,
- /* 63, 0x3F */ 0xCC, 0x33, 0x66,
- /* 64, 0x40 */ 0xCC, 0x33, 0x33,
- /* 65, 0x41 */ 0xCC, 0x33, 0x00,
- /* 66, 0x42 */ 0xCC, 0x00, 0xFF,
- /* 67, 0x43 */ 0xCC, 0x00, 0xCC,
- /* 68, 0x44 */ 0xCC, 0x00, 0x99,
- /* 69, 0x45 */ 0xCC, 0x00, 0x66,
- /* 70, 0x46 */ 0xCC, 0x00, 0x33,
- /* 71, 0x47 */ 0xCC, 0x00, 0x00,
- /* 72, 0x48 */ 0x99, 0xFF, 0xFF,
- /* 73, 0x49 */ 0x99, 0xFF, 0xCC,
- /* 74, 0x4A */ 0x99, 0xFF, 0x99,
- /* 75, 0x4B */ 0x99, 0xFF, 0x66,
- /* 76, 0x4C */ 0x99, 0xFF, 0x33,
- /* 77, 0x4D */ 0x99, 0xFF, 0x00,
- /* 78, 0x4E */ 0x99, 0xCC, 0xFF,
- /* 79, 0x4F */ 0x99, 0xCC, 0xCC,
- /* 80, 0x50 */ 0x99, 0xCC, 0x99,
- /* 81, 0x51 */ 0x99, 0xCC, 0x66,
- /* 82, 0x52 */ 0x99, 0xCC, 0x33,
- /* 83, 0x53 */ 0x99, 0xCC, 0x00,
- /* 84, 0x54 */ 0x99, 0x99, 0xFF,
- /* 85, 0x55 */ 0x99, 0x99, 0xCC,
- /* 86, 0x56 */ 0x99, 0x99, 0x99,
- /* 87, 0x57 */ 0x99, 0x99, 0x66,
- /* 88, 0x58 */ 0x99, 0x99, 0x33,
- /* 89, 0x59 */ 0x99, 0x99, 0x00,
- /* 90, 0x5A */ 0x99, 0x66, 0xFF,
- /* 91, 0x5B */ 0x99, 0x66, 0xCC,
- /* 92, 0x5C */ 0x99, 0x66, 0x99,
- /* 93, 0x5D */ 0x99, 0x66, 0x66,
- /* 94, 0x5E */ 0x99, 0x66, 0x33,
- /* 95, 0x5F */ 0x99, 0x66, 0x00,
- /* 96, 0x60 */ 0x99, 0x33, 0xFF,
- /* 97, 0x61 */ 0x99, 0x33, 0xCC,
- /* 98, 0x62 */ 0x99, 0x33, 0x99,
- /* 99, 0x63 */ 0x99, 0x33, 0x66,
- /* 100, 0x64 */ 0x99, 0x33, 0x33,
- /* 101, 0x65 */ 0x99, 0x33, 0x00,
- /* 102, 0x66 */ 0x99, 0x00, 0xFF,
- /* 103, 0x67 */ 0x99, 0x00, 0xCC,
- /* 104, 0x68 */ 0x99, 0x00, 0x99,
- /* 105, 0x69 */ 0x99, 0x00, 0x66,
- /* 106, 0x6A */ 0x99, 0x00, 0x33,
- /* 107, 0x6B */ 0x99, 0x00, 0x00,
- /* 108, 0x6C */ 0x66, 0xFF, 0xFF,
- /* 109, 0x6D */ 0x66, 0xFF, 0xCC,
- /* 110, 0x6E */ 0x66, 0xFF, 0x99,
- /* 111, 0x6F */ 0x66, 0xFF, 0x66,
- /* 112, 0x70 */ 0x66, 0xFF, 0x33,
- /* 113, 0x71 */ 0x66, 0xFF, 0x00,
- /* 114, 0x72 */ 0x66, 0xCC, 0xFF,
- /* 115, 0x73 */ 0x66, 0xCC, 0xCC,
- /* 116, 0x74 */ 0x66, 0xCC, 0x99,
- /* 117, 0x75 */ 0x66, 0xCC, 0x66,
- /* 118, 0x76 */ 0x66, 0xCC, 0x33,
- /* 119, 0x77 */ 0x66, 0xCC, 0x00,
- /* 120, 0x78 */ 0x66, 0x99, 0xFF,
- /* 121, 0x79 */ 0x66, 0x99, 0xCC,
- /* 122, 0x7A */ 0x66, 0x99, 0x99,
- /* 123, 0x7B */ 0x66, 0x99, 0x66,
- /* 124, 0x7C */ 0x66, 0x99, 0x33,
- /* 125, 0x7D */ 0x66, 0x99, 0x00,
- /* 126, 0x7E */ 0x66, 0x66, 0xFF,
- /* 127, 0x7F */ 0x66, 0x66, 0xCC,
- /* 128, 0x80 */ 0x66, 0x66, 0x99,
- /* 129, 0x81 */ 0x66, 0x66, 0x66,
- /* 130, 0x82 */ 0x66, 0x66, 0x33,
- /* 131, 0x83 */ 0x66, 0x66, 0x00,
- /* 132, 0x84 */ 0x66, 0x33, 0xFF,
- /* 133, 0x85 */ 0x66, 0x33, 0xCC,
- /* 134, 0x86 */ 0x66, 0x33, 0x99,
- /* 135, 0x87 */ 0x66, 0x33, 0x66,
- /* 136, 0x88 */ 0x66, 0x33, 0x33,
- /* 137, 0x89 */ 0x66, 0x33, 0x00,
- /* 138, 0x8A */ 0x66, 0x00, 0xFF,
- /* 139, 0x8B */ 0x66, 0x00, 0xCC,
- /* 140, 0x8C */ 0x66, 0x00, 0x99,
- /* 141, 0x8D */ 0x66, 0x00, 0x66,
- /* 142, 0x8E */ 0x66, 0x00, 0x33,
- /* 143, 0x8F */ 0x66, 0x00, 0x00,
- /* 144, 0x90 */ 0x33, 0xFF, 0xFF,
- /* 145, 0x91 */ 0x33, 0xFF, 0xCC,
- /* 146, 0x92 */ 0x33, 0xFF, 0x99,
- /* 147, 0x93 */ 0x33, 0xFF, 0x66,
- /* 148, 0x94 */ 0x33, 0xFF, 0x33,
- /* 149, 0x95 */ 0x33, 0xFF, 0x00,
- /* 150, 0x96 */ 0x33, 0xCC, 0xFF,
- /* 151, 0x97 */ 0x33, 0xCC, 0xCC,
- /* 152, 0x98 */ 0x33, 0xCC, 0x99,
- /* 153, 0x99 */ 0x33, 0xCC, 0x66,
- /* 154, 0x9A */ 0x33, 0xCC, 0x33,
- /* 155, 0x9B */ 0x33, 0xCC, 0x00,
- /* 156, 0x9C */ 0x33, 0x99, 0xFF,
- /* 157, 0x9D */ 0x33, 0x99, 0xCC,
- /* 158, 0x9E */ 0x33, 0x99, 0x99,
- /* 159, 0x9F */ 0x33, 0x99, 0x66,
- /* 160, 0xA0 */ 0x33, 0x99, 0x33,
- /* 161, 0xA1 */ 0x33, 0x99, 0x00,
- /* 162, 0xA2 */ 0x33, 0x66, 0xFF,
- /* 163, 0xA3 */ 0x33, 0x66, 0xCC,
- /* 164, 0xA4 */ 0x33, 0x66, 0x99,
- /* 165, 0xA5 */ 0x33, 0x66, 0x66,
- /* 166, 0xA6 */ 0x33, 0x66, 0x33,
- /* 167, 0xA7 */ 0x33, 0x66, 0x00,
- /* 168, 0xA8 */ 0x33, 0x33, 0xFF,
- /* 169, 0xA9 */ 0x33, 0x33, 0xCC,
- /* 170, 0xAA */ 0x33, 0x33, 0x99,
- /* 171, 0xAB */ 0x33, 0x33, 0x66,
- /* 172, 0xAC */ 0x33, 0x33, 0x33,
- /* 173, 0xAD */ 0x33, 0x33, 0x00,
- /* 174, 0xAE */ 0x33, 0x00, 0xFF,
- /* 175, 0xAF */ 0x33, 0x00, 0xCC,
- /* 176, 0xB0 */ 0x33, 0x00, 0x99,
- /* 177, 0xB1 */ 0x33, 0x00, 0x66,
- /* 178, 0xB2 */ 0x33, 0x00, 0x33,
- /* 179, 0xB3 */ 0x33, 0x00, 0x00,
- /* 180, 0xB4 */ 0x00, 0xFF, 0xFF,
- /* 181, 0xB5 */ 0x00, 0xFF, 0xCC,
- /* 182, 0xB6 */ 0x00, 0xFF, 0x99,
- /* 183, 0xB7 */ 0x00, 0xFF, 0x66,
- /* 184, 0xB8 */ 0x00, 0xFF, 0x33,
- /* 185, 0xB9 */ 0x00, 0xFF, 0x00,
- /* 186, 0xBA */ 0x00, 0xCC, 0xFF,
- /* 187, 0xBB */ 0x00, 0xCC, 0xCC,
- /* 188, 0xBC */ 0x00, 0xCC, 0x99,
- /* 189, 0xBD */ 0x00, 0xCC, 0x66,
- /* 190, 0xBE */ 0x00, 0xCC, 0x33,
- /* 191, 0xBF */ 0x00, 0xCC, 0x00,
- /* 192, 0xC0 */ 0x00, 0x99, 0xFF,
- /* 193, 0xC1 */ 0x00, 0x99, 0xCC,
- /* 194, 0xC2 */ 0x00, 0x99, 0x99,
- /* 195, 0xC3 */ 0x00, 0x99, 0x66,
- /* 196, 0xC4 */ 0x00, 0x99, 0x33,
- /* 197, 0xC5 */ 0x00, 0x99, 0x00,
- /* 198, 0xC6 */ 0x00, 0x66, 0xFF,
- /* 199, 0xC7 */ 0x00, 0x66, 0xCC,
- /* 200, 0xC8 */ 0x00, 0x66, 0x99,
- /* 201, 0xC9 */ 0x00, 0x66, 0x66,
- /* 202, 0xCA */ 0x00, 0x66, 0x33,
- /* 203, 0xCB */ 0x00, 0x66, 0x00,
- /* 204, 0xCC */ 0x00, 0x33, 0xFF,
- /* 205, 0xCD */ 0x00, 0x33, 0xCC,
- /* 206, 0xCE */ 0x00, 0x33, 0x99,
- /* 207, 0xCF */ 0x00, 0x33, 0x66,
- /* 208, 0xD0 */ 0x00, 0x33, 0x33,
- /* 209, 0xD1 */ 0x00, 0x33, 0x00,
- /* 210, 0xD2 */ 0x00, 0x00, 0xFF,
- /* 211, 0xD3 */ 0x00, 0x00, 0xCC,
- /* 212, 0xD4 */ 0x00, 0x00, 0x99,
- /* 213, 0xD5 */ 0x00, 0x00, 0x66,
- /* 214, 0xD6 */ 0x00, 0x00, 0x33,
- /* 215, 0xD7 */ 0xEE, 0x00, 0x00,
- /* 216, 0xD8 */ 0xDD, 0x00, 0x00,
- /* 217, 0xD9 */ 0xBB, 0x00, 0x00,
- /* 218, 0xDA */ 0xAA, 0x00, 0x00,
- /* 219, 0xDB */ 0x88, 0x00, 0x00,
- /* 220, 0xDC */ 0x77, 0x00, 0x00,
- /* 221, 0xDD */ 0x55, 0x00, 0x00,
- /* 222, 0xDE */ 0x44, 0x00, 0x00,
- /* 223, 0xDF */ 0x22, 0x00, 0x00,
- /* 224, 0xE0 */ 0x11, 0x00, 0x00,
- /* 225, 0xE1 */ 0x00, 0xEE, 0x00,
- /* 226, 0xE2 */ 0x00, 0xDD, 0x00,
- /* 227, 0xE3 */ 0x00, 0xBB, 0x00,
- /* 228, 0xE4 */ 0x00, 0xAA, 0x00,
- /* 229, 0xE5 */ 0x00, 0x88, 0x00,
- /* 230, 0xE6 */ 0x00, 0x77, 0x00,
- /* 231, 0xE7 */ 0x00, 0x55, 0x00,
- /* 232, 0xE8 */ 0x00, 0x44, 0x00,
- /* 233, 0xE9 */ 0x00, 0x22, 0x00,
- /* 234, 0xEA */ 0x00, 0x11, 0x00,
- /* 235, 0xEB */ 0x00, 0x00, 0xEE,
- /* 236, 0xEC */ 0x00, 0x00, 0xDD,
- /* 237, 0xED */ 0x00, 0x00, 0xBB,
- /* 238, 0xEE */ 0x00, 0x00, 0xAA,
- /* 239, 0xEF */ 0x00, 0x00, 0x88,
- /* 240, 0xF0 */ 0x00, 0x00, 0x77,
- /* 241, 0xF1 */ 0x00, 0x00, 0x55,
- /* 242, 0xF2 */ 0x00, 0x00, 0x44,
- /* 243, 0xF3 */ 0x00, 0x00, 0x22,
- /* 244, 0xF4 */ 0x00, 0x00, 0x11,
- /* 245, 0xF5 */ 0xEE, 0xEE, 0xEE,
- /* 246, 0xF6 */ 0xDD, 0xDD, 0xDD,
- /* 247, 0xF7 */ 0xBB, 0xBB, 0xBB,
- /* 248, 0xF8 */ 0xAA, 0xAA, 0xAA,
- /* 249, 0xF9 */ 0x88, 0x88, 0x88,
- /* 250, 0xFA */ 0x77, 0x77, 0x77,
- /* 251, 0xFB */ 0x55, 0x55, 0x55,
- /* 252, 0xFC */ 0x44, 0x44, 0x44,
- /* 253, 0xFD */ 0x22, 0x22, 0x22,
- /* 254, 0xFE */ 0x11, 0x11, 0x11,
- /* 255, 0xFF */ 0x00, 0x00, 0x00
-};
-
-#endif /* AVFORMAT_QTPALETTE_H */
+++ /dev/null
-/*
- * RAW muxer and demuxer
- * Copyright (C) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RAW_H
-#define AVFORMAT_RAW_H
-
-#include "avformat.h"
-
-int pcm_read_seek(AVFormatContext *s,
- int stream_index, int64_t timestamp, int flags);
-
-int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt);
-
-#endif /* AVFORMAT_RAW_H */
+++ /dev/null
-/*
- * Realmedia RTSP (RDT) definitions
- * Copyright (c) 2007 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RDT_H
-#define AVFORMAT_RDT_H
-
-#include <stdint.h>
-#include "avformat.h"
-#include "rtpdec.h"
-
-typedef struct RDTDemuxContext RDTDemuxContext;
-
-/**
- * Allocate and init the RDT parsing context.
- * @param ic the containing RTSP demuxer context
- * @param first_stream_of_set_idx index to the first AVStream in the RTSP
- * demuxer context's ic->streams array that is part of this
- * particular stream's set of streams (with identical content)
- * @param priv_data private data of the payload data handler context
- * @param handler pointer to the parse_packet() payload parsing function
- * @return a newly allocated RDTDemuxContext. Free with ff_rdt_parse_close().
- */
-RDTDemuxContext *ff_rdt_parse_open(AVFormatContext *ic,
- int first_stream_of_set_idx,
- void *priv_data,
- RTPDynamicProtocolHandler *handler);
-void ff_rdt_parse_close(RDTDemuxContext *s);
-
-/**
- * Calculate the response (RealChallenge2 in the RTSP header) to the
- * challenge (RealChallenge1 in the RTSP header from the Real/Helix
- * server), which is used as some sort of client validation.
- *
- * @param response pointer to response buffer, it should be at least 41 bytes
- * (40 data + 1 zero) bytes long.
- * @param chksum pointer to buffer containing a checksum of the response,
- * it should be at least 9 (8 data + 1 zero) bytes long.
- * @param challenge pointer to the RealChallenge1 value provided by the
- * server.
- */
-void ff_rdt_calc_response_and_checksum(char response[41], char chksum[9],
- const char *challenge);
-
-/**
- * Register RDT-related dynamic payload handlers with our cache.
- */
-void av_register_rdt_dynamic_payload_handlers(void);
-
-/**
- * Add subscription information to Subscribe parameter string.
- *
- * @param cmd string to write the subscription information into.
- * @param size size of cmd.
- * @param stream_nr stream number.
- * @param rule_nr rule number to conform to.
- */
-void ff_rdt_subscribe_rule(char *cmd, int size,
- int stream_nr, int rule_nr);
-
-/**
- * Parse RDT-style packet header.
- *
- * @param buf input buffer
- * @param len length of input buffer
- * @param set_id will be set to the set ID this packet belongs to
- * @param seq_no will be set to the sequence number of the packet
- * @param stream_id will be set to the stream ID this packet belongs to
- * @param is_keyframe will be whether this packet belongs to a keyframe
- * @param timestamp will be set to the timestamp of the packet
- * @return the amount of bytes consumed, or <0 on error
- */
-int ff_rdt_parse_header(const uint8_t *buf, int len,
- int *set_id, int *seq_no, int *stream_id,
- int *is_keyframe, uint32_t *timestamp);
-
-/**
- * Parse RDT-style packet data (header + media data).
- * Usage similar to rtp_parse_packet().
- */
-int ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt,
- const uint8_t *buf, int len);
-
-/**
- * Parse a server-related SDP line.
- *
- * @param s the RTSP AVFormatContext
- * @param stream_index the index of the first stream in the set represented
- * by the SDP m= line (in s->streams)
- * @param buf the SDP line
- */
-void ff_real_parse_sdp_a_line(AVFormatContext *s, int stream_index,
- const char *buf);
-
-#endif /* AVFORMAT_RDT_H */
+++ /dev/null
-/*
- * RIFF codec tags
- * copyright (c) 2000 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * internal header for RIFF based (de)muxers
- * do NOT include this in end user applications
- */
-
-#ifndef AVFORMAT_RIFF_H
-#define AVFORMAT_RIFF_H
-
-#include "libavcodec/avcodec.h"
-#include "avio.h"
-
-int64_t ff_start_tag(ByteIOContext *pb, const char *tag);
-void ff_end_tag(ByteIOContext *pb, int64_t start);
-
-typedef struct AVCodecTag {
- enum CodecID id;
- unsigned int tag;
-} AVCodecTag;
-
-void ff_put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const AVCodecTag *tags, int for_asf);
-int ff_put_wav_header(ByteIOContext *pb, AVCodecContext *enc);
-enum CodecID ff_wav_codec_get_id(unsigned int tag, int bps);
-void ff_get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size);
-
-extern const AVCodecTag ff_codec_bmp_tags[];
-extern const AVCodecTag ff_codec_wav_tags[];
-
-unsigned int ff_codec_get_tag(const AVCodecTag *tags, int id);
-enum CodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag);
-void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssize, int *au_scale);
-
-#endif /* AVFORMAT_RIFF_H */
+++ /dev/null
-/*
- * "Real" compatible muxer and demuxer.
- * Copyright (c) 2000, 2001 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RM_H
-#define AVFORMAT_RM_H
-
-#include "avformat.h"
-
-extern const char * const ff_rm_metadata[4];
-extern const unsigned char ff_sipr_subpk_size[4];
-
-typedef struct RMStream RMStream;
-
-RMStream *ff_rm_alloc_rmstream (void);
-void ff_rm_free_rmstream (RMStream *rms);
-
-/*< input format for Realmedia-style RTSP streams */
-extern AVInputFormat rdt_demuxer;
-
-/**
- * Read the MDPR chunk, which contains stream-specific codec initialization
- * parameters.
- *
- * @param s context containing RMContext and ByteIOContext for stream reading
- * @param pb context to read the data from
- * @param st the stream that the MDPR chunk belongs to and where to store the
- * parameters read from the chunk into
- * @param rst real-specific stream information
- * @param codec_data_size size of the MDPR chunk
- * @return 0 on success, errno codes on error
- */
-int ff_rm_read_mdpr_codecdata (AVFormatContext *s, ByteIOContext *pb,
- AVStream *st, RMStream *rst,
- int codec_data_size);
-
-/**
- * Parse one rm-stream packet from the input bytestream.
- *
- * @param s context containing RMContext and ByteIOContext for stream reading
- * @param pb context to read the data from
- * @param st stream to which the packet to be read belongs
- * @param rst Real-specific stream information
- * @param len packet length to read from the input
- * @param pkt packet location to store the parsed packet data
- * @param seq pointer to an integer containing the sequence number, may be
- * updated
- * @param flags the packet flags
- * @param ts timestamp of the current packet
- * @return <0 on error, 0 if a packet was placed in the pkt pointer. A
- * value >0 means that no data was placed in pkt, but that cached
- * data is available by calling ff_rm_retrieve_cache().
- */
-int ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb,
- AVStream *st, RMStream *rst, int len,
- AVPacket *pkt, int *seq, int flags, int64_t ts);
-
-/**
- * Retrieve one cached packet from the rm-context. The real container can
- * store several packets (as interpreted by the codec) in a single container
- * packet, which means the demuxer holds some back when the first container
- * packet is parsed and returned. The result is that rm->audio_pkt_cnt is
- * a positive number, the amount of cached packets. Using this function, each
- * of those packets can be retrieved sequentially.
- *
- * @param s context containing RMContext and ByteIOContext for stream reading
- * @param pb context to read the data from
- * @param st stream that this packet belongs to
- * @param rst Real-specific stream information
- * @param pkt location to store the packet data
- * @return the number of samples left for subsequent calls to this same
- * function, or 0 if all samples have been retrieved.
- */
-int ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
- AVStream *st, RMStream *rst, AVPacket *pkt);
-
-/**
- * Perform 4-bit block reordering for SIPR data.
- *
- * @param buf SIPR data
- */
-void ff_rm_reorder_sipr_data(uint8_t *buf, int sub_packet_h, int framesize);
-
-#endif /* AVFORMAT_RM_H */
+++ /dev/null
-/*
- * RTMP definitions
- * Copyright (c) 2009 Kostya Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTMP_H
-#define AVFORMAT_RTMP_H
-
-#include "avformat.h"
-
-#define RTMP_DEFAULT_PORT 1935
-
-#define RTMP_HANDSHAKE_PACKET_SIZE 1536
-
-/**
- * emulated Flash client version - 9.0.124.2 on Linux
- * @{
- */
-#define RTMP_CLIENT_PLATFORM "LNX"
-#define RTMP_CLIENT_VER1 9
-#define RTMP_CLIENT_VER2 0
-#define RTMP_CLIENT_VER3 124
-#define RTMP_CLIENT_VER4 2
-/** @} */ //version defines
-
-#endif /* AVFORMAT_RTMP_H */
+++ /dev/null
-/*
- * RTMP packet utilities
- * Copyright (c) 2009 Kostya Shishkov
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTMPPKT_H
-#define AVFORMAT_RTMPPKT_H
-
-#include "avformat.h"
-
-/** maximum possible number of different RTMP channels */
-#define RTMP_CHANNELS 65599
-
-/**
- * channels used to for RTMP packets with different purposes (i.e. data, network
- * control, remote procedure calls, etc.)
- */
-enum RTMPChannel {
- RTMP_NETWORK_CHANNEL = 2, ///< channel for network-related messages (bandwidth report, ping, etc)
- RTMP_SYSTEM_CHANNEL, ///< channel for sending server control messages
- RTMP_SOURCE_CHANNEL, ///< channel for sending a/v to server
- RTMP_VIDEO_CHANNEL = 8, ///< channel for video data
- RTMP_AUDIO_CHANNEL, ///< channel for audio data
-};
-
-/**
- * known RTMP packet types
- */
-typedef enum RTMPPacketType {
- RTMP_PT_CHUNK_SIZE = 1, ///< chunk size change
- RTMP_PT_BYTES_READ = 3, ///< number of bytes read
- RTMP_PT_PING, ///< ping
- RTMP_PT_SERVER_BW, ///< server bandwidth
- RTMP_PT_CLIENT_BW, ///< client bandwidth
- RTMP_PT_AUDIO = 8, ///< audio packet
- RTMP_PT_VIDEO, ///< video packet
- RTMP_PT_FLEX_STREAM = 15, ///< Flex shared stream
- RTMP_PT_FLEX_OBJECT, ///< Flex shared object
- RTMP_PT_FLEX_MESSAGE, ///< Flex shared message
- RTMP_PT_NOTIFY, ///< some notification
- RTMP_PT_SHARED_OBJ, ///< shared object
- RTMP_PT_INVOKE, ///< invoke some stream action
- RTMP_PT_METADATA = 22, ///< FLV metadata
-} RTMPPacketType;
-
-/**
- * possible RTMP packet header sizes
- */
-enum RTMPPacketSize {
- RTMP_PS_TWELVEBYTES = 0, ///< packet has 12-byte header
- RTMP_PS_EIGHTBYTES, ///< packet has 8-byte header
- RTMP_PS_FOURBYTES, ///< packet has 4-byte header
- RTMP_PS_ONEBYTE ///< packet is really a next chunk of a packet
-};
-
-/**
- * structure for holding RTMP packets
- */
-typedef struct RTMPPacket {
- int channel_id; ///< RTMP channel ID (nothing to do with audio/video channels though)
- RTMPPacketType type; ///< packet payload type
- uint32_t timestamp; ///< packet full timestamp
- uint32_t ts_delta; ///< timestamp increment to the previous one in milliseconds (latter only for media packets)
- uint32_t extra; ///< probably an additional channel ID used during streaming data
- uint8_t *data; ///< packet payload
- int data_size; ///< packet payload size
-} RTMPPacket;
-
-/**
- * Creates new RTMP packet with given attributes.
- *
- * @param pkt packet
- * @param channel_id packet channel ID
- * @param type packet type
- * @param timestamp packet timestamp
- * @param size packet size
- * @return zero on success, negative value otherwise
- */
-int ff_rtmp_packet_create(RTMPPacket *pkt, int channel_id, RTMPPacketType type,
- int timestamp, int size);
-
-/**
- * Frees RTMP packet.
- *
- * @param pkt packet
- */
-void ff_rtmp_packet_destroy(RTMPPacket *pkt);
-
-/**
- * Reads RTMP packet sent by the server.
- *
- * @param h reader context
- * @param p packet
- * @param chunk_size current chunk size
- * @param prev_pkt previously read packet headers for all channels
- * (may be needed for restoring incomplete packet header)
- * @return number of bytes read on success, negative value otherwise
- */
-int ff_rtmp_packet_read(URLContext *h, RTMPPacket *p,
- int chunk_size, RTMPPacket *prev_pkt);
-
-/**
- * Sends RTMP packet to the server.
- *
- * @param h reader context
- * @param p packet to send
- * @param chunk_size current chunk size
- * @param prev_pkt previously sent packet headers for all channels
- * (may be used for packet header compressing)
- * @return number of bytes written on success, negative value otherwise
- */
-int ff_rtmp_packet_write(URLContext *h, RTMPPacket *p,
- int chunk_size, RTMPPacket *prev_pkt);
-
-/**
- * Prints information and contents of RTMP packet.
- *
- * @param h output context
- * @param p packet to dump
- */
-void ff_rtmp_packet_dump(void *ctx, RTMPPacket *p);
-
-/**
- * @defgroup amffuncs functions used to work with AMF format (which is also used in .flv)
- * @see amf_* funcs in libavformat/flvdec.c
- * @{
- */
-
-/**
- * Calculates number of bytes taken by first AMF entry in data.
- *
- * @param data input data
- * @param data_end input buffer end
- * @return number of bytes used by first AMF entry
- */
-int ff_amf_tag_size(const uint8_t *data, const uint8_t *data_end);
-
-/**
- * Retrieves value of given AMF object field in string form.
- *
- * @param data AMF object data
- * @param data_end input buffer end
- * @param name name of field to retrieve
- * @param dst buffer for storing result
- * @param dst_size output buffer size
- * @return 0 if search and retrieval succeeded, negative value otherwise
- */
-int ff_amf_get_field_value(const uint8_t *data, const uint8_t *data_end,
- const uint8_t *name, uint8_t *dst, int dst_size);
-
-/**
- * Writes boolean value in AMF format to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- * @param val value to write
- */
-void ff_amf_write_bool(uint8_t **dst, int val);
-
-/**
- * Writes number in AMF format to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- * @param num value to write
- */
-void ff_amf_write_number(uint8_t **dst, double num);
-
-/**
- * Writes string in AMF format to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- * @param str string to write
- */
-void ff_amf_write_string(uint8_t **dst, const char *str);
-
-/**
- * Writes AMF NULL value to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- */
-void ff_amf_write_null(uint8_t **dst);
-
-/**
- * Writes marker for AMF object to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- */
-void ff_amf_write_object_start(uint8_t **dst);
-
-/**
- * Writes string used as field name in AMF object to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- * @param str string to write
- */
-void ff_amf_write_field_name(uint8_t **dst, const char *str);
-
-/**
- * Writes marker for end of AMF object to buffer.
- *
- * @param dst pointer to the input buffer (will be modified)
- */
-void ff_amf_write_object_end(uint8_t **dst);
-
-/** @} */ // AMF funcs
-
-#endif /* AVFORMAT_RTMPPKT_H */
+++ /dev/null
-/*
- * RTP definitions
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_RTP_H
-#define AVFORMAT_RTP_H
-
-#include "libavcodec/avcodec.h"
-
-/**
- * Return the payload type for a given codec.
- *
- * @param codec The context of the codec
- * @return In case of unknown payload type or dynamic payload type, a
- * negative value is returned; otherwise, the payload type (the 'PT' field
- * in the RTP header) is returned.
- */
-int ff_rtp_get_payload_type(AVCodecContext *codec);
-
-/**
- * Initialize a codec context based on the payload type.
- *
- * Fill the codec_type and codec_id fields of a codec context with
- * information depending on the payload type; for audio codecs, the
- * channels and sample_rate fields are also filled.
- *
- * @param codec The context of the codec
- * @param payload_type The payload type (the 'PT' field in the RTP header)
- * @return In case of unknown payload type or dynamic payload type, a
- * negative value is returned; otherwise, 0 is returned
- */
-int ff_rtp_get_codec_info(AVCodecContext *codec, int payload_type);
-
-/**
- * Return the encoding name (as defined in
- * http://www.iana.org/assignments/rtp-parameters) for a given payload type.
- *
- * @param payload_type The payload type (the 'PT' field in the RTP header)
- * @return In case of unknown payload type or dynamic payload type, a pointer
- * to an empty string is returned; otherwise, a pointer to a string containing
- * the encoding name is returned
- */
-const char *ff_rtp_enc_name(int payload_type);
-
-/**
- * Return the codec id for the given encoding name and codec type.
- *
- * @param buf A pointer to the string containing the encoding name
- * @param codec_type The codec type
- * @return In case of unknown encoding name, CODEC_ID_NONE is returned;
- * otherwise, the codec id is returned
- */
-enum CodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type);
-
-#define RTP_PT_PRIVATE 96
-#define RTP_VERSION 2
-#define RTP_MAX_SDES 256 /**< maximum text length for SDES */
-
-/* RTCP paquets use 0.5 % of the bandwidth */
-#define RTCP_TX_RATIO_NUM 5
-#define RTCP_TX_RATIO_DEN 1000
-
-#endif /* AVFORMAT_RTP_H */
+++ /dev/null
-/*
- * RTP demuxer definitions
- * Copyright (c) 2002 Fabrice Bellard
- * Copyright (c) 2006 Ryan Martell <rdm4@martellventures.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_RTPDEC_H
-#define AVFORMAT_RTPDEC_H
-
-#include "libavcodec/avcodec.h"
-#include "avformat.h"
-#include "rtp.h"
-
-/** Structure listing useful vars to parse RTP packet payload*/
-typedef struct rtp_payload_data
-{
- int sizelength;
- int indexlength;
- int indexdeltalength;
- int profile_level_id;
- int streamtype;
- int objecttype;
- char *mode;
-
- /** mpeg 4 AU headers */
- struct AUHeaders {
- int size;
- int index;
- int cts_flag;
- int cts;
- int dts_flag;
- int dts;
- int rap_flag;
- int streamstate;
- } *au_headers;
- int au_headers_allocated;
- int nb_au_headers;
- int au_headers_length_bytes;
- int cur_au_index;
-} RTPPayloadData;
-
-typedef struct PayloadContext PayloadContext;
-typedef struct RTPDynamicProtocolHandler_s RTPDynamicProtocolHandler;
-
-#define RTP_MIN_PACKET_LENGTH 12
-#define RTP_MAX_PACKET_LENGTH 1500 /* XXX: suppress this define */
-
-typedef struct RTPDemuxContext RTPDemuxContext;
-RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, RTPPayloadData *rtp_payload_data);
-void rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx,
- RTPDynamicProtocolHandler *handler);
-int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
- const uint8_t *buf, int len);
-void rtp_parse_close(RTPDemuxContext *s);
-#if (LIBAVFORMAT_VERSION_MAJOR <= 53)
-int rtp_get_local_port(URLContext *h);
-#endif
-int rtp_get_local_rtp_port(URLContext *h);
-int rtp_get_local_rtcp_port(URLContext *h);
-
-int rtp_set_remote_url(URLContext *h, const char *uri);
-#if (LIBAVFORMAT_VERSION_MAJOR <= 52)
-void rtp_get_file_handles(URLContext *h, int *prtp_fd, int *prtcp_fd);
-#endif
-
-/**
- * Send a dummy packet on both port pairs to set up the connection
- * state in potential NAT routers, so that we're able to receive
- * packets.
- *
- * Note, this only works if the NAT router doesn't remap ports. This
- * isn't a standardized procedure, but it works in many cases in practice.
- *
- * The same routine is used with RDT too, even if RDT doesn't use normal
- * RTP packets otherwise.
- */
-void rtp_send_punch_packets(URLContext* rtp_handle);
-
-/**
- * some rtp servers assume client is dead if they don't hear from them...
- * so we send a Receiver Report to the provided ByteIO context
- * (we don't have access to the rtcp handle from here)
- */
-int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count);
-
-// these statistics are used for rtcp receiver reports...
-typedef struct {
- uint16_t max_seq; ///< highest sequence number seen
- uint32_t cycles; ///< shifted count of sequence number cycles
- uint32_t base_seq; ///< base sequence number
- uint32_t bad_seq; ///< last bad sequence number + 1
- int probation; ///< sequence packets till source is valid
- int received; ///< packets received
- int expected_prior; ///< packets expected in last interval
- int received_prior; ///< packets received in last interval
- uint32_t transit; ///< relative transit time for previous packet
- uint32_t jitter; ///< estimated jitter.
-} RTPStatistics;
-
-#define RTP_FLAG_KEY 0x1 ///< RTP packet contains a keyframe
-#define RTP_FLAG_MARKER 0x2 ///< RTP marker bit was set for this packet
-/**
- * Packet parsing for "private" payloads in the RTP specs.
- *
- * @param ctx RTSP demuxer context
- * @param s stream context
- * @param st stream that this packet belongs to
- * @param pkt packet in which to write the parsed data
- * @param timestamp pointer in which to write the timestamp of this RTP packet
- * @param buf pointer to raw RTP packet data
- * @param len length of buf
- * @param flags flags from the RTP packet header (RTP_FLAG_*)
- */
-typedef int (*DynamicPayloadPacketHandlerProc) (AVFormatContext *ctx,
- PayloadContext *s,
- AVStream *st,
- AVPacket * pkt,
- uint32_t *timestamp,
- const uint8_t * buf,
- int len, int flags);
-
-struct RTPDynamicProtocolHandler_s {
- // fields from AVRtpDynamicPayloadType_s
- const char enc_name[50]; /* XXX: still why 50 ? ;-) */
- enum AVMediaType codec_type;
- enum CodecID codec_id;
-
- // may be null
- int (*parse_sdp_a_line) (AVFormatContext *s,
- int st_index,
- PayloadContext *priv_data,
- const char *line); ///< Parse the a= line from the sdp field
- PayloadContext *(*open) (void); ///< allocate any data needed by the rtp parsing for this dynamic data.
- void (*close)(PayloadContext *protocol_data); ///< free any data needed by the rtp parsing for this dynamic data.
- DynamicPayloadPacketHandlerProc parse_packet; ///< parse handler for this dynamic packet.
-
- struct RTPDynamicProtocolHandler_s *next;
-};
-
-// moved out of rtp.c, because the h264 decoder needs to know about this structure..
-struct RTPDemuxContext {
- AVFormatContext *ic;
- AVStream *st;
- int payload_type;
- uint32_t ssrc;
- uint16_t seq;
- uint32_t timestamp;
- uint32_t base_timestamp;
- uint32_t cur_timestamp;
- int64_t range_start_offset;
- int max_payload_size;
- struct MpegTSContext *ts; /* only used for MP2T payloads */
- int read_buf_index;
- int read_buf_size;
- /* used to send back RTCP RR */
- URLContext *rtp_ctx;
- char hostname[256];
-
- RTPStatistics statistics; ///< Statistics for this stream (used by RTCP receiver reports)
-
- /* rtcp sender statistics receive */
- int64_t last_rtcp_ntp_time; // TODO: move into statistics
- int64_t first_rtcp_ntp_time; // TODO: move into statistics
- uint32_t last_rtcp_timestamp; // TODO: move into statistics
-
- /* rtcp sender statistics */
- unsigned int packet_count; // TODO: move into statistics (outgoing)
- unsigned int octet_count; // TODO: move into statistics (outgoing)
- unsigned int last_octet_count; // TODO: move into statistics (outgoing)
- int first_packet;
- /* buffer for output */
- uint8_t buf[RTP_MAX_PACKET_LENGTH];
- uint8_t *buf_ptr;
-
- /* special infos for au headers parsing */
- RTPPayloadData *rtp_payload_data; // TODO: Move into dynamic payload handlers
-
- /* dynamic payload stuff */
- DynamicPayloadPacketHandlerProc parse_packet; ///< This is also copied from the dynamic protocol handler structure
- PayloadContext *dynamic_protocol_context; ///< This is a copy from the values setup from the sdp parsing, in rtsp.c don't free me.
- int max_frames_per_packet;
-};
-
-extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler;
-void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler);
-
-int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size); ///< from rtsp.c, but used by rtp dynamic protocol handlers.
-
-void av_register_rtp_dynamic_payload_handlers(void);
-
-#endif /* AVFORMAT_RTPDEC_H */
+++ /dev/null
-/*
- * RTP AMR Depacketizer, RFC 3267
- * Copyright (c) 2010 Martin Storsjo
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTPDEC_AMR_H
-#define AVFORMAT_RTPDEC_AMR_H
-
-#include "rtpdec.h"
-
-extern RTPDynamicProtocolHandler ff_amr_nb_dynamic_handler;
-extern RTPDynamicProtocolHandler ff_amr_wb_dynamic_handler;
-
-#endif /* AVFORMAT_RTPDEC_AMR_H */
+++ /dev/null
-/*
- * Microsoft RTP/ASF support.
- * Copyright (c) 2008 Ronald S. Bultje
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTPDEC_ASF_H
-#define AVFORMAT_RTPDEC_ASF_H
-
-#include "avformat.h"
-#include "rtpdec.h"
-
-/**
- * Parse a Windows Media Server-specific SDP line
- *
- * @param s RTSP demux context
- * @param line the SDP line to be parsed
- */
-void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p);
-
-/**
- * Handlers for the x-asf-pf payloads (the payload ID for RTP/ASF).
- * Defined and implemented in rtp_asf.c, registered in rtpdec.c.
- */
-extern RTPDynamicProtocolHandler ff_ms_rtp_asf_pfv_handler,
- ff_ms_rtp_asf_pfa_handler;
-
-#endif /* AVFORMAT_RTPDEC_ASF_H */
+++ /dev/null
-/*
- * RTP H.263 Depacketizer, RFC 4629
- * Copyright (c) 2010 Martin Storsjo
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTPDEC_H263_H
-#define AVFORMAT_RTPDEC_H263_H
-
-#include "rtpdec.h"
-
-extern RTPDynamicProtocolHandler ff_h263_1998_dynamic_handler;
-extern RTPDynamicProtocolHandler ff_h263_2000_dynamic_handler;
-
-#endif /* AVFORMAT_RTPDEC_H263_H */
+++ /dev/null
-/*
- * RTP H264 Protocol (RFC3984)
- * Copyright (c) 2006 Ryan Martell
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTPDEC_H264_H
-#define AVFORMAT_RTPDEC_H264_H
-
-#include "rtpdec.h"
-
-extern RTPDynamicProtocolHandler ff_h264_dynamic_handler;
-
-#endif /* AVFORMAT_RTPDEC_H264_H */
+++ /dev/null
-/*
- * Xiph RTP Protocols
- * Based off RFC 5215 (Vorbis RTP) and the Theora RTP draft.
- * Copyright (c) 2009 Colin McQuillian
- * Copyright (c) 2010 Josh Allmann
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTPDEC_XIPH_H
-#define AVFORMAT_RTPDEC_XIPH_H
-
-#include "libavcodec/avcodec.h"
-#include "rtpdec.h"
-
-/**
- * Theora RTP callbacks.
- */
-extern RTPDynamicProtocolHandler ff_theora_dynamic_handler;
-
-/**
- * Vorbis RTP callbacks.
- */
-extern RTPDynamicProtocolHandler ff_vorbis_dynamic_handler;
-
-#endif /* AVFORMAT_RTPDEC_XIPH_H */
+++ /dev/null
-/*
- * RTP muxer definitions
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_RTPENC_H
-#define AVFORMAT_RTPENC_H
-
-#include "avformat.h"
-#include "rtp.h"
-
-struct RTPMuxContext {
- AVFormatContext *ic;
- AVStream *st;
- int payload_type;
- uint32_t ssrc;
- uint16_t seq;
- uint32_t timestamp;
- uint32_t base_timestamp;
- uint32_t cur_timestamp;
- int max_payload_size;
- int num_frames;
-
- /* rtcp sender statistics receive */
- int64_t last_rtcp_ntp_time; // TODO: move into statistics
- int64_t first_rtcp_ntp_time; // TODO: move into statistics
-
- /* rtcp sender statistics */
- unsigned int packet_count; // TODO: move into statistics (outgoing)
- unsigned int octet_count; // TODO: move into statistics (outgoing)
- unsigned int last_octet_count; // TODO: move into statistics (outgoing)
- int first_packet;
- /* buffer for output */
- uint8_t *buf;
- uint8_t *buf_ptr;
-
- int max_frames_per_packet;
-};
-
-typedef struct RTPMuxContext RTPMuxContext;
-
-void ff_rtp_send_data(AVFormatContext *s1, const uint8_t *buf1, int len, int m);
-
-void ff_rtp_send_h264(AVFormatContext *s1, const uint8_t *buf1, int size);
-void ff_rtp_send_h263(AVFormatContext *s1, const uint8_t *buf1, int size);
-void ff_rtp_send_aac(AVFormatContext *s1, const uint8_t *buff, int size);
-void ff_rtp_send_amr(AVFormatContext *s1, const uint8_t *buff, int size);
-void ff_rtp_send_mpegvideo(AVFormatContext *s1, const uint8_t *buf1, int size);
-
-#endif /* AVFORMAT_RTPENC_H */
+++ /dev/null
-/*
- * RTSP definitions
- * Copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef AVFORMAT_RTSP_H
-#define AVFORMAT_RTSP_H
-
-#include <stdint.h>
-#include "avformat.h"
-#include "rtspcodes.h"
-#include "rtpdec.h"
-#include "network.h"
-#include "httpauth.h"
-
-/**
- * Network layer over which RTP/etc packet data will be transported.
- */
-enum RTSPLowerTransport {
- RTSP_LOWER_TRANSPORT_UDP = 0, /**< UDP/unicast */
- RTSP_LOWER_TRANSPORT_TCP = 1, /**< TCP; interleaved in RTSP */
- RTSP_LOWER_TRANSPORT_UDP_MULTICAST = 2, /**< UDP/multicast */
- RTSP_LOWER_TRANSPORT_NB
-};
-
-/**
- * Packet profile of the data that we will be receiving. Real servers
- * commonly send RDT (although they can sometimes send RTP as well),
- * whereas most others will send RTP.
- */
-enum RTSPTransport {
- RTSP_TRANSPORT_RTP, /**< Standards-compliant RTP */
- RTSP_TRANSPORT_RDT, /**< Realmedia Data Transport */
- RTSP_TRANSPORT_NB
-};
-
-#define RTSP_DEFAULT_PORT 554
-#define RTSP_MAX_TRANSPORTS 8
-#define RTSP_TCP_MAX_PACKET_SIZE 1472
-#define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2
-#define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
-#define RTSP_RTP_PORT_MIN 5000
-#define RTSP_RTP_PORT_MAX 10000
-
-/**
- * This describes a single item in the "Transport:" line of one stream as
- * negotiated by the SETUP RTSP command. Multiple transports are comma-
- * separated ("Transport: x-read-rdt/tcp;interleaved=0-1,rtp/avp/udp;
- * client_port=1000-1001;server_port=1800-1801") and described in separate
- * RTSPTransportFields.
- */
-typedef struct RTSPTransportField {
- /** interleave ids, if TCP transport; each TCP/RTSP data packet starts
- * with a '$', stream length and stream ID. If the stream ID is within
- * the range of this interleaved_min-max, then the packet belongs to
- * this stream. */
- int interleaved_min, interleaved_max;
-
- /** UDP multicast port range; the ports to which we should connect to
- * receive multicast UDP data. */
- int port_min, port_max;
-
- /** UDP client ports; these should be the local ports of the UDP RTP
- * (and RTCP) sockets over which we receive RTP/RTCP data. */
- int client_port_min, client_port_max;
-
- /** UDP unicast server port range; the ports to which we should connect
- * to receive unicast UDP RTP/RTCP data. */
- int server_port_min, server_port_max;
-
- /** time-to-live value (required for multicast); the amount of HOPs that
- * packets will be allowed to make before being discarded. */
- int ttl;
-
- uint32_t destination; /**< destination IP address */
-
- /** data/packet transport protocol; e.g. RTP or RDT */
- enum RTSPTransport transport;
-
- /** network layer transport protocol; e.g. TCP or UDP uni-/multicast */
- enum RTSPLowerTransport lower_transport;
-} RTSPTransportField;
-
-/**
- * This describes the server response to each RTSP command.
- */
-typedef struct RTSPMessageHeader {
- /** length of the data following this header */
- int content_length;
-
- enum RTSPStatusCode status_code; /**< response code from server */
-
- /** number of items in the 'transports' variable below */
- int nb_transports;
-
- /** Time range of the streams that the server will stream. In
- * AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */
- int64_t range_start, range_end;
-
- /** describes the complete "Transport:" line of the server in response
- * to a SETUP RTSP command by the client */
- RTSPTransportField transports[RTSP_MAX_TRANSPORTS];
-
- int seq; /**< sequence number */
-
- /** the "Session:" field. This value is initially set by the server and
- * should be re-transmitted by the client in every RTSP command. */
- char session_id[512];
-
- /** the "Location:" field. This value is used to handle redirection.
- */
- char location[4096];
-
- /** the "RealChallenge1:" field from the server */
- char real_challenge[64];
-
- /** the "Server: field, which can be used to identify some special-case
- * servers that are not 100% standards-compliant. We use this to identify
- * Windows Media Server, which has a value "WMServer/v.e.r.sion", where
- * version is a sequence of digits (e.g. 9.0.0.3372). Helix/Real servers
- * use something like "Helix [..] Server Version v.e.r.sion (platform)
- * (RealServer compatible)" or "RealServer Version v.e.r.sion (platform)",
- * where platform is the output of $uname -msr | sed 's/ /-/g'. */
- char server[64];
-
- /** The "timeout" comes as part of the server response to the "SETUP"
- * command, in the "Session: <xyz>[;timeout=<value>]" line. It is the
- * time, in seconds, that the server will go without traffic over the
- * RTSP/TCP connection before it closes the connection. To prevent
- * this, sent dummy requests (e.g. OPTIONS) with intervals smaller
- * than this value. */
- int timeout;
-
- /** The "Notice" or "X-Notice" field value. See
- * http://tools.ietf.org/html/draft-stiemerling-rtsp-announce-00
- * for a complete list of supported values. */
- int notice;
-} RTSPMessageHeader;
-
-/**
- * Client state, i.e. whether we are currently receiving data (PLAYING) or
- * setup-but-not-receiving (PAUSED). State can be changed in applications
- * by calling av_read_play/pause().
- */
-enum RTSPClientState {
- RTSP_STATE_IDLE, /**< not initialized */
- RTSP_STATE_STREAMING, /**< initialized and sending/receiving data */
- RTSP_STATE_PAUSED, /**< initialized, but not receiving data */
- RTSP_STATE_SEEKING, /**< initialized, requesting a seek */
-};
-
-/**
- * Identifies particular servers that require special handling, such as
- * standards-incompliant "Transport:" lines in the SETUP request.
- */
-enum RTSPServerType {
- RTSP_SERVER_RTP, /**< Standards-compliant RTP-server */
- RTSP_SERVER_REAL, /**< Realmedia-style server */
- RTSP_SERVER_WMS, /**< Windows Media server */
- RTSP_SERVER_NB
-};
-
-/**
- * Private data for the RTSP demuxer.
- *
- * @todo Use ByteIOContext instead of URLContext
- */
-typedef struct RTSPState {
- URLContext *rtsp_hd; /* RTSP TCP connexion handle */
-
- /** number of items in the 'rtsp_streams' variable */
- int nb_rtsp_streams;
-
- struct RTSPStream **rtsp_streams; /**< streams in this session */
-
- /** indicator of whether we are currently receiving data from the
- * server. Basically this isn't more than a simple cache of the
- * last PLAY/PAUSE command sent to the server, to make sure we don't
- * send 2x the same unexpectedly or commands in the wrong state. */
- enum RTSPClientState state;
-
- /** the seek value requested when calling av_seek_frame(). This value
- * is subsequently used as part of the "Range" parameter when emitting
- * the RTSP PLAY command. If we are currently playing, this command is
- * called instantly. If we are currently paused, this command is called
- * whenever we resume playback. Either way, the value is only used once,
- * see rtsp_read_play() and rtsp_read_seek(). */
- int64_t seek_timestamp;
-
- /* XXX: currently we use unbuffered input */
- // ByteIOContext rtsp_gb;
-
- int seq; /**< RTSP command sequence number */
-
- /** copy of RTSPMessageHeader->session_id, i.e. the server-provided session
- * identifier that the client should re-transmit in each RTSP command */
- char session_id[512];
-
- /** copy of RTSPMessageHeader->timeout, i.e. the time (in seconds) that
- * the server will go without traffic on the RTSP/TCP line before it
- * closes the connection. */
- int timeout;
-
- /** timestamp of the last RTSP command that we sent to the RTSP server.
- * This is used to calculate when to send dummy commands to keep the
- * connection alive, in conjunction with timeout. */
- int64_t last_cmd_time;
-
- /** the negotiated data/packet transport protocol; e.g. RTP or RDT */
- enum RTSPTransport transport;
-
- /** the negotiated network layer transport protocol; e.g. TCP or UDP
- * uni-/multicast */
- enum RTSPLowerTransport lower_transport;
-
- /** brand of server that we're talking to; e.g. WMS, REAL or other.
- * Detected based on the value of RTSPMessageHeader->server or the presence
- * of RTSPMessageHeader->real_challenge */
- enum RTSPServerType server_type;
-
- /** plaintext authorization line (username:password) */
- char auth[128];
-
- /** authentication state */
- HTTPAuthState auth_state;
-
- /** The last reply of the server to a RTSP command */
- char last_reply[2048]; /* XXX: allocate ? */
-
- /** RTSPStream->transport_priv of the last stream that we read a
- * packet from */
- void *cur_transport_priv;
-
- /** The following are used for Real stream selection */
- //@{
- /** whether we need to send a "SET_PARAMETER Subscribe:" command */
- int need_subscription;
-
- /** stream setup during the last frame read. This is used to detect if
- * we need to subscribe or unsubscribe to any new streams. */
- enum AVDiscard real_setup_cache[MAX_STREAMS];
-
- /** the last value of the "SET_PARAMETER Subscribe:" RTSP command.
- * this is used to send the same "Unsubscribe:" if stream setup changed,
- * before sending a new "Subscribe:" command. */
- char last_subscription[1024];
- //@}
-
- /** The following are used for RTP/ASF streams */
- //@{
- /** ASF demuxer context for the embedded ASF stream from WMS servers */
- AVFormatContext *asf_ctx;
-
- /** cache for position of the asf demuxer, since we load a new
- * data packet in the bytecontext for each incoming RTSP packet. */
- uint64_t asf_pb_pos;
- //@}
-
- /** some MS RTSP streams contain a URL in the SDP that we need to use
- * for all subsequent RTSP requests, rather than the input URI; in
- * other cases, this is a copy of AVFormatContext->filename. */
- char control_uri[1024];
-
- /** The synchronized start time of the output streams. */
- int64_t start_time;
-} RTSPState;
-
-/**
- * Describes a single stream, as identified by a single m= line block in the
- * SDP content. In the case of RDT, one RTSPStream can represent multiple
- * AVStreams. In this case, each AVStream in this set has similar content
- * (but different codec/bitrate).
- */
-typedef struct RTSPStream {
- URLContext *rtp_handle; /**< RTP stream handle (if UDP) */
- void *transport_priv; /**< RTP/RDT parse context if input, RTP AVFormatContext if output */
-
- /** corresponding stream index, if any. -1 if none (MPEG2TS case) */
- int stream_index;
-
- /** interleave IDs; copies of RTSPTransportField->interleaved_min/max
- * for the selected transport. Only used for TCP. */
- int interleaved_min, interleaved_max;
-
- char control_url[1024]; /**< url for this stream (from SDP) */
-
- /** The following are used only in SDP, not RTSP */
- //@{
- int sdp_port; /**< port (from SDP content) */
- struct in_addr sdp_ip; /**< IP address (from SDP content) */
- int sdp_ttl; /**< IP Time-To-Live (from SDP content) */
- int sdp_payload_type; /**< payload type */
- //@}
-
- /** rtp payload parsing infos from SDP (i.e. mapping between private
- * payload IDs and media-types (string), so that we can derive what
- * type of payload we're dealing with (and how to parse it). */
- RTPPayloadData rtp_payload_data;
-
- /** The following are used for dynamic protocols (rtp_*.c/rdt.c) */
- //@{
- /** handler structure */
- RTPDynamicProtocolHandler *dynamic_handler;
-
- /** private data associated with the dynamic protocol */
- PayloadContext *dynamic_protocol_context;
- //@}
-} RTSPStream;
-
-void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
- HTTPAuthState *auth_state);
-
-#if LIBAVFORMAT_VERSION_INT < (53 << 16)
-extern int rtsp_default_protocols;
-#endif
-extern int rtsp_rtp_port_min;
-extern int rtsp_rtp_port_max;
-
-/**
- * Send a command to the RTSP server without waiting for the reply.
- *
- * @param s RTSP (de)muxer context
- * @param method the method for the request
- * @param url the target url for the request
- * @param headers extra header lines to include in the request
- * @param send_content if non-null, the data to send as request body content
- * @param send_content_length the length of the send_content data, or 0 if
- * send_content is null
- */
-void ff_rtsp_send_cmd_with_content_async(AVFormatContext *s,
- const char *method, const char *url,
- const char *headers,
- const unsigned char *send_content,
- int send_content_length);
-/**
- * Send a command to the RTSP server without waiting for the reply.
- *
- * @see rtsp_send_cmd_with_content_async
- */
-void ff_rtsp_send_cmd_async(AVFormatContext *s, const char *method,
- const char *url, const char *headers);
-
-/**
- * Send a command to the RTSP server and wait for the reply.
- *
- * @param s RTSP (de)muxer context
- * @param method the method for the request
- * @param url the target url for the request
- * @param headers extra header lines to include in the request
- * @param reply pointer where the RTSP message header will be stored
- * @param content_ptr pointer where the RTSP message body, if any, will
- * be stored (length is in reply)
- * @param send_content if non-null, the data to send as request body content
- * @param send_content_length the length of the send_content data, or 0 if
- * send_content is null
- */
-void ff_rtsp_send_cmd_with_content(AVFormatContext *s,
- const char *method, const char *url,
- const char *headers,
- RTSPMessageHeader *reply,
- unsigned char **content_ptr,
- const unsigned char *send_content,
- int send_content_length);
-
-/**
- * Send a command to the RTSP server and wait for the reply.
- *
- * @see rtsp_send_cmd_with_content
- */
-void ff_rtsp_send_cmd(AVFormatContext *s, const char *method,
- const char *url, const char *headers,
- RTSPMessageHeader *reply, unsigned char **content_ptr);
-
-/**
- * Read a RTSP message from the server, or prepare to read data
- * packets if we're reading data interleaved over the TCP/RTSP
- * connection as well.
- *
- * @param s RTSP (de)muxer context
- * @param reply pointer where the RTSP message header will be stored
- * @param content_ptr pointer where the RTSP message body, if any, will
- * be stored (length is in reply)
- * @param return_on_interleaved_data whether the function may return if we
- * encounter a data marker ('$'), which precedes data
- * packets over interleaved TCP/RTSP connections. If this
- * is set, this function will return 1 after encountering
- * a '$'. If it is not set, the function will skip any
- * data packets (if they are encountered), until a reply
- * has been fully parsed. If no more data is available
- * without parsing a reply, it will return an error.
- *
- * @return 1 if a data packets is ready to be received, -1 on error,
- * and 0 on success.
- */
-int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
- unsigned char **content_ptr,
- int return_on_interleaved_data);
-
-/**
- * Skip a RTP/TCP interleaved packet.
- */
-void ff_rtsp_skip_packet(AVFormatContext *s);
-
-/**
- * Connect to the RTSP server and set up the individual media streams.
- * This can be used for both muxers and demuxers.
- *
- * @param s RTSP (de)muxer context
- *
- * @return 0 on success, < 0 on error. Cleans up all allocations done
- * within the function on error.
- */
-int ff_rtsp_connect(AVFormatContext *s);
-
-/**
- * Close and free all streams within the RTSP (de)muxer
- *
- * @param s RTSP (de)muxer context
- */
-void ff_rtsp_close_streams(AVFormatContext *s);
-
-#endif /* AVFORMAT_RTSP_H */
+++ /dev/null
-/*
- * RTSP definitions
- * copyright (c) 2002 Fabrice Bellard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_RTSPCODES_H
-#define AVFORMAT_RTSPCODES_H
-
-/** RTSP handling */
-enum RTSPStatusCode {
-RTSP_STATUS_OK =200, /**< OK */
-RTSP_STATUS_METHOD =405, /**< Method Not Allowed */
-RTSP_STATUS_BANDWIDTH =453, /**< Not Enough Bandwidth */
-RTSP_STATUS_SESSION =454, /**< Session Not Found */
-RTSP_STATUS_STATE =455, /**< Method Not Valid in This State */
-RTSP_STATUS_AGGREGATE =459, /**< Aggregate operation not allowed */
-RTSP_STATUS_ONLY_AGGREGATE =460, /**< Only aggregate operation allowed */
-RTSP_STATUS_TRANSPORT =461, /**< Unsupported transport */
-RTSP_STATUS_INTERNAL =500, /**< Internal Server Error */
-RTSP_STATUS_SERVICE =503, /**< Service Unavailable */
-RTSP_STATUS_VERSION =505, /**< RTSP Version not supported */
-};
-
-#endif /* AVFORMAT_RTSPCODES_H */
+++ /dev/null
-/*
- * seek utility functions for use within format handlers
- *
- * Copyright (c) 2009 Ivan Schreter
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_SEEK_H
-#define AVFORMAT_SEEK_H
-
-#include "avformat.h"
-
-/**
- * structure to store parser state of one AVStream
- */
-typedef struct AVParserStreamState {
- // saved members of AVStream
- AVCodecParserContext *parser;
- AVPacket cur_pkt;
- int64_t last_IP_pts;
- int64_t cur_dts;
- int64_t reference_dts;
- const uint8_t *cur_ptr;
- int cur_len;
- int probe_packets;
-} AVParserStreamState;
-
-/**
- * structure to store parser state of AVFormat
- */
-typedef struct AVParserState {
- int64_t fpos; ///< file position at the time of call
-
- // saved members of AVFormatContext
- AVStream *cur_st; ///< current stream.
- AVPacketList *packet_buffer; ///< packet buffer of original state
- AVPacketList *raw_packet_buffer; ///< raw packet buffer of original state
- int raw_packet_buffer_remaining_size; ///< remaining space in raw_packet_buffer
-
- // saved info for streams
- int nb_streams; ///< number of streams with stored state
- AVParserStreamState *stream_states; ///< states of individual streams (array)
-} AVParserState;
-
-/**
- * Search for the sync point of all active streams.
- *
- * This routine is not supposed to be called directly by a user application,
- * but by demuxers.
- *
- * A sync point is defined as a point in stream, such that, when decoding start
- * from this point, the decoded output of all streams synchronizes closest
- * to the given timestamp ts. This routine also takes timestamp limits into account.
- * Thus, the output will synchronize no sooner than ts_min and no later than ts_max.
- *
- * @param stream_index stream index for time base reference of timestamps
- * @param pos approximate position where to start searching for key frames
- * @param min_ts minimum allowed timestamp (position, if AVSEEK_FLAG_BYTE set)
- * @param ts target timestamp (or position, if AVSEEK_FLAG_BYTE set in flags)
- * @param max_ts maximum allowed timestamp (position, if AVSEEK_FLAG_BYTE set)
- * @param flags if AVSEEK_FLAG_ANY is set, seek to any frame, otherwise only
- * to a keyframe. If AVSEEK_FLAG_BYTE is set, search by
- * position, not by timestamp.
- * @return -1 if no such sync point could be found, otherwise stream position
- * (stream is repositioned to this position)
- */
-int64_t ff_gen_syncpoint_search(AVFormatContext *s,
- int stream_index,
- int64_t pos,
- int64_t min_ts,
- int64_t ts,
- int64_t max_ts,
- int flags);
-
-/**
- * Store current parser state and file position.
- *
- * This function can be used by demuxers before a destructive seeking algorithm
- * to store the parser state. Depending on the outcome of the seek, either the original
- * state can be restored or the new state kept and the original state freed.
- *
- * @note As a side effect, the original parser state is reset, since structures
- * are relinked to the stored state instead of being deeply-copied (for
- * performance reasons and to keep the code simple).
- *
- * @param s context from which to save state
- * @return parser state object or NULL if memory could not be allocated
- */
-AVParserState *ff_store_parser_state(AVFormatContext *s);
-
-/**
- * Restore previously saved parser state and file position.
- *
- * Saved state will be invalidated and freed by this call, since internal
- * structures will be relinked back to the stored state instead of being
- * deeply-copied.
- *
- * @param s context to which to restore state (same as used for storing state)
- * @param state state to restore
- */
-void ff_restore_parser_state(AVFormatContext *s, AVParserState *state);
-
-/**
- * Free previously saved parser state.
- *
- * @param s context to which the state belongs (same as used for storing state)
- * @param state state to free
- */
-void ff_free_parser_state(AVFormatContext *s, AVParserState *state);
-
-#endif /* AVFORMAT_SEEK_H */
+++ /dev/null
-/*
- * SoX native format common data
- * Copyright (c) 2009 Daniel Verkamp <daniel@drv.nu>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_SOX_H
-#define AVFORMAT_SOX_H
-
-#define SOX_FIXED_HDR (4 + 8 + 8 + 4 + 4) /**< Size of fixed header without magic */
-
-#define SOX_TAG MKTAG('.', 'S', 'o', 'X')
-
-#endif /* AVFORMAT_SOX_H */
+++ /dev/null
-/*
- * Flash Compatible Streaming Format common header.
- * Copyright (c) 2000 Fabrice Bellard
- * Copyright (c) 2003 Tinic Uro
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_SWF_H
-#define AVFORMAT_SWF_H
-
-#include "libavutil/fifo.h"
-#include "avformat.h"
-#include "avio.h"
-#include "riff.h" /* for CodecTag */
-
-/* should have a generic way to indicate probable size */
-#define DUMMY_FILE_SIZE (100 * 1024 * 1024)
-#define DUMMY_DURATION 600 /* in seconds */
-
-#define TAG_END 0
-#define TAG_SHOWFRAME 1
-#define TAG_DEFINESHAPE 2
-#define TAG_FREECHARACTER 3
-#define TAG_PLACEOBJECT 4
-#define TAG_REMOVEOBJECT 5
-#define TAG_STREAMHEAD 18
-#define TAG_STREAMBLOCK 19
-#define TAG_JPEG2 21
-#define TAG_PLACEOBJECT2 26
-#define TAG_STREAMHEAD2 45
-#define TAG_VIDEOSTREAM 60
-#define TAG_VIDEOFRAME 61
-#define TAG_FILEATTRIBUTES 69
-
-#define TAG_LONG 0x100
-
-/* flags for shape definition */
-#define FLAG_MOVETO 0x01
-#define FLAG_SETFILL0 0x02
-#define FLAG_SETFILL1 0x04
-
-#define AUDIO_FIFO_SIZE 65536
-
-/* character id used */
-#define BITMAP_ID 0
-#define VIDEO_ID 0
-#define SHAPE_ID 1
-
-#undef NDEBUG
-#include <assert.h>
-
-typedef struct {
- int64_t duration_pos;
- int64_t tag_pos;
- int64_t vframes_pos;
- int samples_per_frame;
- int sound_samples;
- int swf_frame_number;
- int video_frame_number;
- int frame_rate;
- int tag;
- AVFifoBuffer *audio_fifo;
- AVCodecContext *audio_enc, *video_enc;
-} SWFContext;
-
-static const AVCodecTag swf_codec_tags[] = {
- {CODEC_ID_FLV1, 0x02},
- {CODEC_ID_VP6F, 0x04},
- {CODEC_ID_NONE, 0},
-};
-
-static const AVCodecTag swf_audio_codec_tags[] = {
- {CODEC_ID_PCM_S16LE, 0x00},
- {CODEC_ID_ADPCM_SWF, 0x01},
- {CODEC_ID_MP3, 0x02},
- {CODEC_ID_PCM_S16LE, 0x03},
- //{CODEC_ID_NELLYMOSER, 0x06},
- {CODEC_ID_NONE, 0},
-};
-
-#endif /* AVFORMAT_SWF_H */
+++ /dev/null
-/*
- * Delay Locked Loop based time filter prototypes and declarations
- * Copyright (c) 2009 Samalyse
- * Copyright (c) 2009 Michael Niedermayer
- * Author: Olivier Guilyardi <olivier samalyse com>
- * Michael Niedermayer <michaelni gmx at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_TIMEFILTER_H
-#define AVFORMAT_TIMEFILTER_H
-
-/**
- * Opaque type representing a time filter state
- *
- * The purpose of this filter is to provide a way to compute accurate time
- * stamps that can be compared to wall clock time, especially when dealing
- * with two clocks: the system clock and a hardware device clock, such as
- * a soundcard.
- */
-typedef struct TimeFilter TimeFilter;
-
-
-/**
- * Create a new Delay Locked Loop time filter
- *
- * feedback2_factor and feedback3_factor are the factors used for the
- * multiplications that are respectively performed in the second and third
- * feedback paths of the loop.
- *
- * Unless you know what you are doing, you should set these as follow:
- *
- * o = 2 * M_PI * bandwidth * period
- * feedback2_factor = sqrt(2 * o)
- * feedback3_factor = o * o
- *
- * Where bandwidth is up to you to choose. Smaller values will filter out more
- * of the jitter, but also take a longer time for the loop to settle. A good
- * starting point is something between 0.3 and 3 Hz.
- *
- * @param clock_period period of the hardware clock in seconds
- * (for example 1.0/44100)
- *
- * For more details about these parameters and background concepts please see:
- * http://www.kokkinizita.net/papers/usingdll.pdf
- */
-TimeFilter * ff_timefilter_new(double clock_period, double feedback2_factor, double feedback3_factor);
-
-/**
- * Update the filter
- *
- * This function must be called in real time, at each process cycle.
- *
- * @param period the device cycle duration in clock_periods. For example, at
- * 44.1kHz and a buffer size of 512 frames, period = 512 when clock_period
- * was 1.0/44100, or 512/44100 if clock_period was 1.
- *
- * system_time, in seconds, should be the value of the system clock time,
- * at (or as close as possible to) the moment the device hardware interrupt
- * occured (or any other event the device clock raises at the beginning of a
- * cycle).
- *
- * @return the filtered time, in seconds
- */
-double ff_timefilter_update(TimeFilter *self, double system_time, double period);
-
-/**
- * Reset the filter
- *
- * This function should mainly be called in case of XRUN.
- *
- * Warning: after calling this, the filter is in an undetermined state until
- * the next call to ff_timefilter_update()
- */
-void ff_timefilter_reset(TimeFilter *);
-
-/**
- * Free all resources associated with the filter
- */
-void ff_timefilter_destroy(TimeFilter *);
-
-#endif /* AVFORMAT_TIMEFILTER_H */
+++ /dev/null
-/*
- * Creative Voice File demuxer.
- * Copyright (c) 2006 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_VOC_H
-#define AVFORMAT_VOC_H
-
-#include "avformat.h"
-#include "riff.h" /* for CodecTag */
-
-typedef struct voc_dec_context {
- int64_t remaining_size;
-} VocDecContext;
-
-typedef enum voc_type {
- VOC_TYPE_EOF = 0x00,
- VOC_TYPE_VOICE_DATA = 0x01,
- VOC_TYPE_VOICE_DATA_CONT = 0x02,
- VOC_TYPE_SILENCE = 0x03,
- VOC_TYPE_MARKER = 0x04,
- VOC_TYPE_ASCII = 0x05,
- VOC_TYPE_REPETITION_START = 0x06,
- VOC_TYPE_REPETITION_END = 0x07,
- VOC_TYPE_EXTENDED = 0x08,
- VOC_TYPE_NEW_VOICE_DATA = 0x09,
-} VocType;
-
-extern const unsigned char ff_voc_magic[21];
-extern const AVCodecTag ff_voc_codec_tags[];
-
-int voc_get_packet(AVFormatContext *s, AVPacket *pkt,
- AVStream *st, int max_size);
-
-#endif /* AVFORMAT_VOC_H */
+++ /dev/null
-/*
- * VorbisComment writer
- * Copyright (c) 2009 James Darnley
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFORMAT_VORBISCOMMENT_H
-#define AVFORMAT_VORBISCOMMENT_H
-
-#include "avformat.h"
-#include "metadata.h"
-
-/**
- * Calculates the length in bytes of a VorbisComment. This is the minimum
- * size required by ff_vorbiscomment_write().
- *
- * @param m The metadata structure to be parsed. For no metadata, set to NULL.
- * @param vendor_string The vendor string to be added into the VorbisComment.
- * For no string, set to an empty string.
- * @param count Pointer to store the number of tags in m because m->count is "not allowed"
- * @return The length in bytes.
- */
-int ff_vorbiscomment_length(AVMetadata *m, const char *vendor_string,
- unsigned *count);
-
-/**
- * Writes a VorbisComment into a buffer. The buffer, p, must have enough
- * data to hold the whole VorbisComment. The minimum size required can be
- * obtained by passing the same AVMetadata and vendor_string to
- * ff_vorbiscomment_length()
- *
- * @param p The buffer in which to write.
- * @param m The metadata struct to write.
- * @param vendor_string The vendor string to write.
- * @param count The number of tags in m because m->count is "not allowed"
- */
-int ff_vorbiscomment_write(uint8_t **p, AVMetadata *m,
- const char *vendor_string, const unsigned count);
-
-extern const AVMetadataConv ff_vorbiscomment_metadata_conv[];
-
-#endif /* AVFORMAT_VORBISCOMMENT_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Mans Rullgard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_ADLER32_H
-#define AVUTIL_ADLER32_H
-
-#include <stdint.h>
-#include "attributes.h"
-
-unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
- unsigned int len) av_pure;
-
-#endif /* AVUTIL_ADLER32_H */
+++ /dev/null
-/*
- * copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_AES_H
-#define AVUTIL_AES_H
-
-#include <stdint.h>
-
-extern const int av_aes_size;
-
-struct AVAES;
-
-/**
- * Initializes an AVAES context.
- * @param key_bits 128, 192 or 256
- * @param decrypt 0 for encryption, 1 for decryption
- */
-int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * Encrypts / decrypts.
- * @param count number of 16 byte blocks
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-#endif /* AVUTIL_AES_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Macro definitions for various function/variable attributes
- */
-
-#ifndef AVUTIL_ATTRIBUTES_H
-#define AVUTIL_ATTRIBUTES_H
-
-#ifdef __GNUC__
-# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y)
-#else
-# define AV_GCC_VERSION_AT_LEAST(x,y) 0
-#endif
-
-#ifndef av_always_inline
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_always_inline __attribute__((always_inline)) inline
-#else
-# define av_always_inline inline
-#endif
-#endif
-
-#ifndef av_noinline
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_noinline __attribute__((noinline))
-#else
-# define av_noinline
-#endif
-#endif
-
-#ifndef av_pure
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_pure __attribute__((pure))
-#else
-# define av_pure
-#endif
-#endif
-
-#ifndef av_const
-#if AV_GCC_VERSION_AT_LEAST(2,6)
-# define av_const __attribute__((const))
-#else
-# define av_const
-#endif
-#endif
-
-#ifndef av_cold
-#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
-# define av_cold __attribute__((cold))
-#else
-# define av_cold
-#endif
-#endif
-
-#ifndef av_flatten
-#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,1)
-# define av_flatten __attribute__((flatten))
-#else
-# define av_flatten
-#endif
-#endif
-
-#ifndef attribute_deprecated
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define attribute_deprecated __attribute__((deprecated))
-#else
-# define attribute_deprecated
-#endif
-#endif
-
-#ifndef av_unused
-#if defined(__GNUC__)
-# define av_unused __attribute__((unused))
-#else
-# define av_unused
-#endif
-#endif
-
-#ifndef av_uninit
-#if defined(__GNUC__) && !defined(__ICC)
-# define av_uninit(x) x=x
-#else
-# define av_uninit(x) x
-#endif
-#endif
-
-#ifdef __GNUC__
-# define av_builtin_constant_p __builtin_constant_p
-#else
-# define av_builtin_constant_p(x) 0
-#endif
-
-#endif /* AVUTIL_ATTRIBUTES_H */
+++ /dev/null
-/* Generated by ffconf */
-#ifndef AVUTIL_AVCONFIG_H
-#define AVUTIL_AVCONFIG_H
-#define AV_HAVE_BIGENDIAN 0
-#endif /* AVUTIL_AVCONFIG_H */
+++ /dev/null
-/*
- * Copyright (c) 2007 Mans Rullgard
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_AVSTRING_H
-#define AVUTIL_AVSTRING_H
-
-#include <stddef.h>
-
-/**
- * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to
- * the address of the first character in str after the prefix.
- *
- * @param str input string
- * @param pfx prefix to test
- * @param ptr updated if the prefix is matched inside str
- * @return non-zero if the prefix matches, zero otherwise
- */
-int av_strstart(const char *str, const char *pfx, const char **ptr);
-
-/**
- * Return non-zero if pfx is a prefix of str independent of case. If
- * it is, *ptr is set to the address of the first character in str
- * after the prefix.
- *
- * @param str input string
- * @param pfx prefix to test
- * @param ptr updated if the prefix is matched inside str
- * @return non-zero if the prefix matches, zero otherwise
- */
-int av_stristart(const char *str, const char *pfx, const char **ptr);
-
-/**
- * Locate the first case-independent occurrence in the string haystack
- * of the string needle. A zero-length string needle is considered to
- * match at the start of haystack.
- *
- * This function is a case-insensitive version of the standard strstr().
- *
- * @param haystack string to search in
- * @param needle string to search for
- * @return pointer to the located match within haystack
- * or a null pointer if no match
- */
-char *av_stristr(const char *haystack, const char *needle);
-
-/**
- * Copy the string src to dst, but no more than size - 1 bytes, and
- * null-terminate dst.
- *
- * This function is the same as BSD strlcpy().
- *
- * @param dst destination buffer
- * @param src source string
- * @param size size of destination buffer
- * @return the length of src
- *
- * WARNING: since the return value is the length of src, src absolutely
- * _must_ be a properly 0-terminated string, otherwise this will read beyond
- * the end of the buffer and possibly crash.
- */
-size_t av_strlcpy(char *dst, const char *src, size_t size);
-
-/**
- * Append the string src to the string dst, but to a total length of
- * no more than size - 1 bytes, and null-terminate dst.
- *
- * This function is similar to BSD strlcat(), but differs when
- * size <= strlen(dst).
- *
- * @param dst destination buffer
- * @param src source string
- * @param size size of destination buffer
- * @return the total length of src and dst
- *
- * WARNING: since the return value use the length of src and dst, these absolutely
- * _must_ be a properly 0-terminated strings, otherwise this will read beyond
- * the end of the buffer and possibly crash.
- */
-size_t av_strlcat(char *dst, const char *src, size_t size);
-
-/**
- * Append output to a string, according to a format. Never write out of
- * the destination buffer, and always put a terminating 0 within
- * the buffer.
- * @param dst destination buffer (string to which the output is
- * appended)
- * @param size total size of the destination buffer
- * @param fmt printf-compatible format string, specifying how the
- * following parameters are used
- * @return the length of the string that would have been generated
- * if enough space had been available
- */
-size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...);
-
-/**
- * Convert a number to a av_malloced string.
- */
-char *av_d2str(double d);
-
-#endif /* AVUTIL_AVSTRING_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_AVUTIL_H
-#define AVUTIL_AVUTIL_H
-
-/**
- * @file
- * external API header
- */
-
-
-#define AV_STRINGIFY(s) AV_TOSTRING(s)
-#define AV_TOSTRING(s) #s
-
-#define AV_GLUE(a, b) a ## b
-#define AV_JOIN(a, b) AV_GLUE(a, b)
-
-#define AV_PRAGMA(s) _Pragma(#s)
-
-#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
-#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
-#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
-
-#define LIBAVUTIL_VERSION_MAJOR 50
-#define LIBAVUTIL_VERSION_MINOR 15
-#define LIBAVUTIL_VERSION_MICRO 1
-
-#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
- LIBAVUTIL_VERSION_MINOR, \
- LIBAVUTIL_VERSION_MICRO)
-#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \
- LIBAVUTIL_VERSION_MINOR, \
- LIBAVUTIL_VERSION_MICRO)
-#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT
-
-#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
-
-/**
- * Returns the LIBAVUTIL_VERSION_INT constant.
- */
-unsigned avutil_version(void);
-
-/**
- * Returns the libavutil build-time configuration.
- */
-const char *avutil_configuration(void);
-
-/**
- * Returns the libavutil license.
- */
-const char *avutil_license(void);
-
-enum AVMediaType {
- AVMEDIA_TYPE_UNKNOWN = -1,
- AVMEDIA_TYPE_VIDEO,
- AVMEDIA_TYPE_AUDIO,
- AVMEDIA_TYPE_DATA,
- AVMEDIA_TYPE_SUBTITLE,
- AVMEDIA_TYPE_ATTACHMENT,
- AVMEDIA_TYPE_NB
-};
-
-#include "common.h"
-#include "error.h"
-#include "mathematics.h"
-#include "rational.h"
-#include "intfloat_readwrite.h"
-#include "log.h"
-#include "pixfmt.h"
-
-#endif /* AVUTIL_AVUTIL_H */
+++ /dev/null
-/*
- * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com)
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_BASE64_H
-#define AVUTIL_BASE64_H
-
-#include <stdint.h>
-
-/**
- * Decodes the base64-encoded string in in and puts the decoded
- * data in out.
- *
- * @param out_size size in bytes of the out buffer, it should be at
- * least 3/4 of the length of in
- * @return the number of bytes written, or a negative value in case of
- * error
- */
-int av_base64_decode(uint8_t *out, const char *in, int out_size);
-
-/**
- * Encodes in base64 the data in in and puts the resulting string
- * in out.
- *
- * @param out_size size in bytes of the out string, it should be at
- * least ((in_size + 2) / 3) * 4 + 1
- * @param in_size size in bytes of the in buffer
- * @return the string containing the encoded data, or NULL in case of
- * error
- */
-char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
-
-#endif /* AVUTIL_BASE64_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * byte swapping routines
- */
-
-#ifndef AVUTIL_BSWAP_H
-#define AVUTIL_BSWAP_H
-
-#include <stdint.h>
-#include "config.h"
-#include "attributes.h"
-
-#if ARCH_ARM
-# include "arm/bswap.h"
-#elif ARCH_AVR32
-# include "avr32/bswap.h"
-#elif ARCH_BFIN
-# include "bfin/bswap.h"
-#elif ARCH_SH4
-# include "sh4/bswap.h"
-#elif ARCH_X86
-# include "x86/bswap.h"
-#endif
-
-#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff))
-#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16))
-#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32))
-
-#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x)
-
-#ifndef bswap_16
-static av_always_inline av_const uint16_t bswap_16(uint16_t x)
-{
- x= (x>>8) | (x<<8);
- return x;
-}
-#endif
-
-#ifndef bswap_32
-static av_always_inline av_const uint32_t bswap_32(uint32_t x)
-{
- x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
- x= (x>>16) | (x<<16);
- return x;
-}
-#endif
-
-#ifndef bswap_64
-static inline uint64_t av_const bswap_64(uint64_t x)
-{
-#if 0
- x= ((x<< 8)&0xFF00FF00FF00FF00ULL) | ((x>> 8)&0x00FF00FF00FF00FFULL);
- x= ((x<<16)&0xFFFF0000FFFF0000ULL) | ((x>>16)&0x0000FFFF0000FFFFULL);
- return (x>>32) | (x<<32);
-#else
- union {
- uint64_t ll;
- uint32_t l[2];
- } w, r;
- w.ll = x;
- r.l[0] = bswap_32 (w.l[1]);
- r.l[1] = bswap_32 (w.l[0]);
- return r.ll;
-#endif
-}
-#endif
-
-// be2me ... big-endian to machine-endian
-// le2me ... little-endian to machine-endian
-
-#if HAVE_BIGENDIAN
-#define be2me_16(x) (x)
-#define be2me_32(x) (x)
-#define be2me_64(x) (x)
-#define le2me_16(x) bswap_16(x)
-#define le2me_32(x) bswap_32(x)
-#define le2me_64(x) bswap_64(x)
-#define AV_BE2MEC(s, x) (x)
-#define AV_LE2MEC(s, x) AV_BSWAPC(s, x)
-#else
-#define be2me_16(x) bswap_16(x)
-#define be2me_32(x) bswap_32(x)
-#define be2me_64(x) bswap_64(x)
-#define le2me_16(x) (x)
-#define le2me_32(x) (x)
-#define le2me_64(x) (x)
-#define AV_BE2MEC(s, x) AV_BSWAPC(s, x)
-#define AV_LE2MEC(s, x) (x)
-#endif
-
-#define AV_BE2ME16C(x) AV_BE2MEC(16, x)
-#define AV_BE2ME32C(x) AV_BE2MEC(32, x)
-#define AV_BE2ME64C(x) AV_BE2MEC(64, x)
-#define AV_LE2ME16C(x) AV_LE2MEC(16, x)
-#define AV_LE2ME32C(x) AV_LE2MEC(32, x)
-#define AV_LE2ME64C(x) AV_LE2MEC(64, x)
-
-#endif /* AVUTIL_BSWAP_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * common internal and external API header
- */
-
-#ifndef AVUTIL_COMMON_H
-#define AVUTIL_COMMON_H
-
-#include <ctype.h>
-#include <errno.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "attributes.h"
-
-//rounded division & shift
-#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
-/* assume b>0 */
-#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
-#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
-#define FFSIGN(a) ((a) > 0 ? 1 : -1)
-
-#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
-#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
-#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
-#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c)
-
-#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
-#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
-#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
-
-/* misc math functions */
-extern const uint8_t ff_log2_tab[256];
-
-extern const uint8_t av_reverse[256];
-
-static inline av_const int av_log2_c(unsigned int v)
-{
- int n = 0;
- if (v & 0xffff0000) {
- v >>= 16;
- n += 16;
- }
- if (v & 0xff00) {
- v >>= 8;
- n += 8;
- }
- n += ff_log2_tab[v];
-
- return n;
-}
-
-static inline av_const int av_log2_16bit_c(unsigned int v)
-{
- int n = 0;
- if (v & 0xff00) {
- v >>= 8;
- n += 8;
- }
- n += ff_log2_tab[v];
-
- return n;
-}
-
-#ifdef HAVE_AV_CONFIG_H
-# include "config.h"
-# include "intmath.h"
-#endif
-
-#ifndef av_log2
-# define av_log2 av_log2_c
-#endif
-#ifndef av_log2_16bit
-# define av_log2_16bit av_log2_16bit_c
-#endif
-
-/**
- * Clips a signed integer value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static inline av_const int av_clip(int a, int amin, int amax)
-{
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/**
- * Clips a signed integer value into the 0-255 range.
- * @param a value to clip
- * @return clipped value
- */
-static inline av_const uint8_t av_clip_uint8(int a)
-{
- if (a&(~0xFF)) return (-a)>>31;
- else return a;
-}
-
-/**
- * Clips a signed integer value into the 0-65535 range.
- * @param a value to clip
- * @return clipped value
- */
-static inline av_const uint16_t av_clip_uint16(int a)
-{
- if (a&(~0xFFFF)) return (-a)>>31;
- else return a;
-}
-
-/**
- * Clips a signed integer value into the -32768,32767 range.
- * @param a value to clip
- * @return clipped value
- */
-static inline av_const int16_t av_clip_int16(int a)
-{
- if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
- else return a;
-}
-
-/**
- * Clips a signed 64-bit integer value into the -2147483648,2147483647 range.
- * @param a value to clip
- * @return clipped value
- */
-static inline av_const int32_t av_clipl_int32(int64_t a)
-{
- if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
- else return a;
-}
-
-/**
- * Clips a float value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static inline av_const float av_clipf(float a, float amin, float amax)
-{
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/** Computes ceil(log2(x)).
- * @param x value used to compute ceil(log2(x))
- * @return computed ceiling of log2(x)
- */
-static inline av_const int av_ceil_log2(int x)
-{
- return av_log2((x - 1) << 1);
-}
-
-#define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24))
-#define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24))
-
-/*!
- * \def GET_UTF8(val, GET_BYTE, ERROR)
- * Converts a UTF-8 character (up to 4 bytes long) to its 32-bit UCS-4 encoded form
- * \param val is the output and should be of type uint32_t. It holds the converted
- * UCS-4 character and should be a left value.
- * \param GET_BYTE gets UTF-8 encoded bytes from any proper source. It can be
- * a function or a statement whose return value or evaluated value is of type
- * uint8_t. It will be executed up to 4 times for values in the valid UTF-8 range,
- * and up to 7 times in the general case.
- * \param ERROR action that should be taken when an invalid UTF-8 byte is returned
- * from GET_BYTE. It should be a statement that jumps out of the macro,
- * like exit(), goto, return, break, or continue.
- */
-#define GET_UTF8(val, GET_BYTE, ERROR)\
- val= GET_BYTE;\
- {\
- int ones= 7 - av_log2(val ^ 255);\
- if(ones==1)\
- ERROR\
- val&= 127>>ones;\
- while(--ones > 0){\
- int tmp= GET_BYTE - 128;\
- if(tmp>>6)\
- ERROR\
- val= (val<<6) + tmp;\
- }\
- }
-
-/*!
- * \def GET_UTF16(val, GET_16BIT, ERROR)
- * Converts a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form
- * \param val is the output and should be of type uint32_t. It holds the converted
- * UCS-4 character and should be a left value.
- * \param GET_16BIT gets two bytes of UTF-16 encoded data converted to native endianness.
- * It can be a function or a statement whose return value or evaluated value is of type
- * uint16_t. It will be executed up to 2 times.
- * \param ERROR action that should be taken when an invalid UTF-16 surrogate is
- * returned from GET_BYTE. It should be a statement that jumps out of the macro,
- * like exit(), goto, return, break, or continue.
- */
-#define GET_UTF16(val, GET_16BIT, ERROR)\
- val = GET_16BIT;\
- {\
- unsigned int hi = val - 0xD800;\
- if (hi < 0x800) {\
- val = GET_16BIT - 0xDC00;\
- if (val > 0x3FFU || hi > 0x3FFU)\
- ERROR\
- val += (hi<<10) + 0x10000;\
- }\
- }\
-
-/*!
- * \def PUT_UTF8(val, tmp, PUT_BYTE)
- * Converts a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
- * \param val is an input-only argument and should be of type uint32_t. It holds
- * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
- * val is given as a function it is executed only once.
- * \param tmp is a temporary variable and should be of type uint8_t. It
- * represents an intermediate value during conversion that is to be
- * output by PUT_BYTE.
- * \param PUT_BYTE writes the converted UTF-8 bytes to any proper destination.
- * It could be a function or a statement, and uses tmp as the input byte.
- * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be
- * executed up to 4 times for values in the valid UTF-8 range and up to
- * 7 times in the general case, depending on the length of the converted
- * Unicode character.
- */
-#define PUT_UTF8(val, tmp, PUT_BYTE)\
- {\
- int bytes, shift;\
- uint32_t in = val;\
- if (in < 0x80) {\
- tmp = in;\
- PUT_BYTE\
- } else {\
- bytes = (av_log2(in) + 4) / 5;\
- shift = (bytes - 1) * 6;\
- tmp = (256 - (256 >> bytes)) | (in >> shift);\
- PUT_BYTE\
- while (shift >= 6) {\
- shift -= 6;\
- tmp = 0x80 | ((in >> shift) & 0x3f);\
- PUT_BYTE\
- }\
- }\
- }
-
-/*!
- * \def PUT_UTF16(val, tmp, PUT_16BIT)
- * Converts a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
- * \param val is an input-only argument and should be of type uint32_t. It holds
- * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
- * val is given as a function it is executed only once.
- * \param tmp is a temporary variable and should be of type uint16_t. It
- * represents an intermediate value during conversion that is to be
- * output by PUT_16BIT.
- * \param PUT_16BIT writes the converted UTF-16 data to any proper destination
- * in desired endianness. It could be a function or a statement, and uses tmp
- * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;"
- * PUT_BYTE will be executed 1 or 2 times depending on input character.
- */
-#define PUT_UTF16(val, tmp, PUT_16BIT)\
- {\
- uint32_t in = val;\
- if (in < 0x10000) {\
- tmp = in;\
- PUT_16BIT\
- } else {\
- tmp = 0xD800 | ((in - 0x10000) >> 10);\
- PUT_16BIT\
- tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\
- PUT_16BIT\
- }\
- }\
-
-
-
-#include "mem.h"
-
-#ifdef HAVE_AV_CONFIG_H
-# include "internal.h"
-#endif /* HAVE_AV_CONFIG_H */
-
-#endif /* AVUTIL_COMMON_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_CRC_H
-#define AVUTIL_CRC_H
-
-#include <stdint.h>
-#include <stddef.h>
-#include "attributes.h"
-
-typedef uint32_t AVCRC;
-
-typedef enum {
- AV_CRC_8_ATM,
- AV_CRC_16_ANSI,
- AV_CRC_16_CCITT,
- AV_CRC_32_IEEE,
- AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */
- AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */
-}AVCRCId;
-
-int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size);
-const AVCRC *av_crc_get_table(AVCRCId crc_id);
-uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length) av_pure;
-
-#endif /* AVUTIL_CRC_H */
-
+++ /dev/null
-/*
- * copyright (c) 2008 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_CRC_DATA_H
-#define AVUTIL_CRC_DATA_H
-
-#include "crc.h"
-
-static const AVCRC av_crc_table[AV_CRC_MAX][257] = {
- [AV_CRC_8_ATM] = {
- 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31,
- 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65,
- 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9,
- 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD,
- 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1,
- 0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2,
- 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, 0xB7, 0xB0, 0xB9, 0xBE,
- 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,
- 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16,
- 0x03, 0x04, 0x0D, 0x0A, 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,
- 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, 0x89, 0x8E, 0x87, 0x80,
- 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,
- 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8,
- 0xDD, 0xDA, 0xD3, 0xD4, 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C,
- 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, 0x19, 0x1E, 0x17, 0x10,
- 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,
- 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F,
- 0x6A, 0x6D, 0x64, 0x63, 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B,
- 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, 0xAE, 0xA9, 0xA0, 0xA7,
- 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
- 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF,
- 0xFA, 0xFD, 0xF4, 0xF3, 0x01
- },
- [AV_CRC_16_ANSI] = {
- 0x0000, 0x0580, 0x0F80, 0x0A00, 0x1B80, 0x1E00, 0x1400, 0x1180,
- 0x3380, 0x3600, 0x3C00, 0x3980, 0x2800, 0x2D80, 0x2780, 0x2200,
- 0x6380, 0x6600, 0x6C00, 0x6980, 0x7800, 0x7D80, 0x7780, 0x7200,
- 0x5000, 0x5580, 0x5F80, 0x5A00, 0x4B80, 0x4E00, 0x4400, 0x4180,
- 0xC380, 0xC600, 0xCC00, 0xC980, 0xD800, 0xDD80, 0xD780, 0xD200,
- 0xF000, 0xF580, 0xFF80, 0xFA00, 0xEB80, 0xEE00, 0xE400, 0xE180,
- 0xA000, 0xA580, 0xAF80, 0xAA00, 0xBB80, 0xBE00, 0xB400, 0xB180,
- 0x9380, 0x9600, 0x9C00, 0x9980, 0x8800, 0x8D80, 0x8780, 0x8200,
- 0x8381, 0x8601, 0x8C01, 0x8981, 0x9801, 0x9D81, 0x9781, 0x9201,
- 0xB001, 0xB581, 0xBF81, 0xBA01, 0xAB81, 0xAE01, 0xA401, 0xA181,
- 0xE001, 0xE581, 0xEF81, 0xEA01, 0xFB81, 0xFE01, 0xF401, 0xF181,
- 0xD381, 0xD601, 0xDC01, 0xD981, 0xC801, 0xCD81, 0xC781, 0xC201,
- 0x4001, 0x4581, 0x4F81, 0x4A01, 0x5B81, 0x5E01, 0x5401, 0x5181,
- 0x7381, 0x7601, 0x7C01, 0x7981, 0x6801, 0x6D81, 0x6781, 0x6201,
- 0x2381, 0x2601, 0x2C01, 0x2981, 0x3801, 0x3D81, 0x3781, 0x3201,
- 0x1001, 0x1581, 0x1F81, 0x1A01, 0x0B81, 0x0E01, 0x0401, 0x0181,
- 0x0383, 0x0603, 0x0C03, 0x0983, 0x1803, 0x1D83, 0x1783, 0x1203,
- 0x3003, 0x3583, 0x3F83, 0x3A03, 0x2B83, 0x2E03, 0x2403, 0x2183,
- 0x6003, 0x6583, 0x6F83, 0x6A03, 0x7B83, 0x7E03, 0x7403, 0x7183,
- 0x5383, 0x5603, 0x5C03, 0x5983, 0x4803, 0x4D83, 0x4783, 0x4203,
- 0xC003, 0xC583, 0xCF83, 0xCA03, 0xDB83, 0xDE03, 0xD403, 0xD183,
- 0xF383, 0xF603, 0xFC03, 0xF983, 0xE803, 0xED83, 0xE783, 0xE203,
- 0xA383, 0xA603, 0xAC03, 0xA983, 0xB803, 0xBD83, 0xB783, 0xB203,
- 0x9003, 0x9583, 0x9F83, 0x9A03, 0x8B83, 0x8E03, 0x8403, 0x8183,
- 0x8002, 0x8582, 0x8F82, 0x8A02, 0x9B82, 0x9E02, 0x9402, 0x9182,
- 0xB382, 0xB602, 0xBC02, 0xB982, 0xA802, 0xAD82, 0xA782, 0xA202,
- 0xE382, 0xE602, 0xEC02, 0xE982, 0xF802, 0xFD82, 0xF782, 0xF202,
- 0xD002, 0xD582, 0xDF82, 0xDA02, 0xCB82, 0xCE02, 0xC402, 0xC182,
- 0x4382, 0x4602, 0x4C02, 0x4982, 0x5802, 0x5D82, 0x5782, 0x5202,
- 0x7002, 0x7582, 0x7F82, 0x7A02, 0x6B82, 0x6E02, 0x6402, 0x6182,
- 0x2002, 0x2582, 0x2F82, 0x2A02, 0x3B82, 0x3E02, 0x3402, 0x3182,
- 0x1382, 0x1602, 0x1C02, 0x1982, 0x0802, 0x0D82, 0x0782, 0x0202,
- 0x0001
- },
- [AV_CRC_16_CCITT] = {
- 0x0000, 0x2110, 0x4220, 0x6330, 0x8440, 0xA550, 0xC660, 0xE770,
- 0x0881, 0x2991, 0x4AA1, 0x6BB1, 0x8CC1, 0xADD1, 0xCEE1, 0xEFF1,
- 0x3112, 0x1002, 0x7332, 0x5222, 0xB552, 0x9442, 0xF772, 0xD662,
- 0x3993, 0x1883, 0x7BB3, 0x5AA3, 0xBDD3, 0x9CC3, 0xFFF3, 0xDEE3,
- 0x6224, 0x4334, 0x2004, 0x0114, 0xE664, 0xC774, 0xA444, 0x8554,
- 0x6AA5, 0x4BB5, 0x2885, 0x0995, 0xEEE5, 0xCFF5, 0xACC5, 0x8DD5,
- 0x5336, 0x7226, 0x1116, 0x3006, 0xD776, 0xF666, 0x9556, 0xB446,
- 0x5BB7, 0x7AA7, 0x1997, 0x3887, 0xDFF7, 0xFEE7, 0x9DD7, 0xBCC7,
- 0xC448, 0xE558, 0x8668, 0xA778, 0x4008, 0x6118, 0x0228, 0x2338,
- 0xCCC9, 0xEDD9, 0x8EE9, 0xAFF9, 0x4889, 0x6999, 0x0AA9, 0x2BB9,
- 0xF55A, 0xD44A, 0xB77A, 0x966A, 0x711A, 0x500A, 0x333A, 0x122A,
- 0xFDDB, 0xDCCB, 0xBFFB, 0x9EEB, 0x799B, 0x588B, 0x3BBB, 0x1AAB,
- 0xA66C, 0x877C, 0xE44C, 0xC55C, 0x222C, 0x033C, 0x600C, 0x411C,
- 0xAEED, 0x8FFD, 0xECCD, 0xCDDD, 0x2AAD, 0x0BBD, 0x688D, 0x499D,
- 0x977E, 0xB66E, 0xD55E, 0xF44E, 0x133E, 0x322E, 0x511E, 0x700E,
- 0x9FFF, 0xBEEF, 0xDDDF, 0xFCCF, 0x1BBF, 0x3AAF, 0x599F, 0x788F,
- 0x8891, 0xA981, 0xCAB1, 0xEBA1, 0x0CD1, 0x2DC1, 0x4EF1, 0x6FE1,
- 0x8010, 0xA100, 0xC230, 0xE320, 0x0450, 0x2540, 0x4670, 0x6760,
- 0xB983, 0x9893, 0xFBA3, 0xDAB3, 0x3DC3, 0x1CD3, 0x7FE3, 0x5EF3,
- 0xB102, 0x9012, 0xF322, 0xD232, 0x3542, 0x1452, 0x7762, 0x5672,
- 0xEAB5, 0xCBA5, 0xA895, 0x8985, 0x6EF5, 0x4FE5, 0x2CD5, 0x0DC5,
- 0xE234, 0xC324, 0xA014, 0x8104, 0x6674, 0x4764, 0x2454, 0x0544,
- 0xDBA7, 0xFAB7, 0x9987, 0xB897, 0x5FE7, 0x7EF7, 0x1DC7, 0x3CD7,
- 0xD326, 0xF236, 0x9106, 0xB016, 0x5766, 0x7676, 0x1546, 0x3456,
- 0x4CD9, 0x6DC9, 0x0EF9, 0x2FE9, 0xC899, 0xE989, 0x8AB9, 0xABA9,
- 0x4458, 0x6548, 0x0678, 0x2768, 0xC018, 0xE108, 0x8238, 0xA328,
- 0x7DCB, 0x5CDB, 0x3FEB, 0x1EFB, 0xF98B, 0xD89B, 0xBBAB, 0x9ABB,
- 0x754A, 0x545A, 0x376A, 0x167A, 0xF10A, 0xD01A, 0xB32A, 0x923A,
- 0x2EFD, 0x0FED, 0x6CDD, 0x4DCD, 0xAABD, 0x8BAD, 0xE89D, 0xC98D,
- 0x267C, 0x076C, 0x645C, 0x454C, 0xA23C, 0x832C, 0xE01C, 0xC10C,
- 0x1FEF, 0x3EFF, 0x5DCF, 0x7CDF, 0x9BAF, 0xBABF, 0xD98F, 0xF89F,
- 0x176E, 0x367E, 0x554E, 0x745E, 0x932E, 0xB23E, 0xD10E, 0xF01E,
- 0x0001
- },
- [AV_CRC_32_IEEE] = {
- 0x00000000, 0xB71DC104, 0x6E3B8209, 0xD926430D, 0xDC760413, 0x6B6BC517,
- 0xB24D861A, 0x0550471E, 0xB8ED0826, 0x0FF0C922, 0xD6D68A2F, 0x61CB4B2B,
- 0x649B0C35, 0xD386CD31, 0x0AA08E3C, 0xBDBD4F38, 0x70DB114C, 0xC7C6D048,
- 0x1EE09345, 0xA9FD5241, 0xACAD155F, 0x1BB0D45B, 0xC2969756, 0x758B5652,
- 0xC836196A, 0x7F2BD86E, 0xA60D9B63, 0x11105A67, 0x14401D79, 0xA35DDC7D,
- 0x7A7B9F70, 0xCD665E74, 0xE0B62398, 0x57ABE29C, 0x8E8DA191, 0x39906095,
- 0x3CC0278B, 0x8BDDE68F, 0x52FBA582, 0xE5E66486, 0x585B2BBE, 0xEF46EABA,
- 0x3660A9B7, 0x817D68B3, 0x842D2FAD, 0x3330EEA9, 0xEA16ADA4, 0x5D0B6CA0,
- 0x906D32D4, 0x2770F3D0, 0xFE56B0DD, 0x494B71D9, 0x4C1B36C7, 0xFB06F7C3,
- 0x2220B4CE, 0x953D75CA, 0x28803AF2, 0x9F9DFBF6, 0x46BBB8FB, 0xF1A679FF,
- 0xF4F63EE1, 0x43EBFFE5, 0x9ACDBCE8, 0x2DD07DEC, 0x77708634, 0xC06D4730,
- 0x194B043D, 0xAE56C539, 0xAB068227, 0x1C1B4323, 0xC53D002E, 0x7220C12A,
- 0xCF9D8E12, 0x78804F16, 0xA1A60C1B, 0x16BBCD1F, 0x13EB8A01, 0xA4F64B05,
- 0x7DD00808, 0xCACDC90C, 0x07AB9778, 0xB0B6567C, 0x69901571, 0xDE8DD475,
- 0xDBDD936B, 0x6CC0526F, 0xB5E61162, 0x02FBD066, 0xBF469F5E, 0x085B5E5A,
- 0xD17D1D57, 0x6660DC53, 0x63309B4D, 0xD42D5A49, 0x0D0B1944, 0xBA16D840,
- 0x97C6A5AC, 0x20DB64A8, 0xF9FD27A5, 0x4EE0E6A1, 0x4BB0A1BF, 0xFCAD60BB,
- 0x258B23B6, 0x9296E2B2, 0x2F2BAD8A, 0x98366C8E, 0x41102F83, 0xF60DEE87,
- 0xF35DA999, 0x4440689D, 0x9D662B90, 0x2A7BEA94, 0xE71DB4E0, 0x500075E4,
- 0x892636E9, 0x3E3BF7ED, 0x3B6BB0F3, 0x8C7671F7, 0x555032FA, 0xE24DF3FE,
- 0x5FF0BCC6, 0xE8ED7DC2, 0x31CB3ECF, 0x86D6FFCB, 0x8386B8D5, 0x349B79D1,
- 0xEDBD3ADC, 0x5AA0FBD8, 0xEEE00C69, 0x59FDCD6D, 0x80DB8E60, 0x37C64F64,
- 0x3296087A, 0x858BC97E, 0x5CAD8A73, 0xEBB04B77, 0x560D044F, 0xE110C54B,
- 0x38368646, 0x8F2B4742, 0x8A7B005C, 0x3D66C158, 0xE4408255, 0x535D4351,
- 0x9E3B1D25, 0x2926DC21, 0xF0009F2C, 0x471D5E28, 0x424D1936, 0xF550D832,
- 0x2C769B3F, 0x9B6B5A3B, 0x26D61503, 0x91CBD407, 0x48ED970A, 0xFFF0560E,
- 0xFAA01110, 0x4DBDD014, 0x949B9319, 0x2386521D, 0x0E562FF1, 0xB94BEEF5,
- 0x606DADF8, 0xD7706CFC, 0xD2202BE2, 0x653DEAE6, 0xBC1BA9EB, 0x0B0668EF,
- 0xB6BB27D7, 0x01A6E6D3, 0xD880A5DE, 0x6F9D64DA, 0x6ACD23C4, 0xDDD0E2C0,
- 0x04F6A1CD, 0xB3EB60C9, 0x7E8D3EBD, 0xC990FFB9, 0x10B6BCB4, 0xA7AB7DB0,
- 0xA2FB3AAE, 0x15E6FBAA, 0xCCC0B8A7, 0x7BDD79A3, 0xC660369B, 0x717DF79F,
- 0xA85BB492, 0x1F467596, 0x1A163288, 0xAD0BF38C, 0x742DB081, 0xC3307185,
- 0x99908A5D, 0x2E8D4B59, 0xF7AB0854, 0x40B6C950, 0x45E68E4E, 0xF2FB4F4A,
- 0x2BDD0C47, 0x9CC0CD43, 0x217D827B, 0x9660437F, 0x4F460072, 0xF85BC176,
- 0xFD0B8668, 0x4A16476C, 0x93300461, 0x242DC565, 0xE94B9B11, 0x5E565A15,
- 0x87701918, 0x306DD81C, 0x353D9F02, 0x82205E06, 0x5B061D0B, 0xEC1BDC0F,
- 0x51A69337, 0xE6BB5233, 0x3F9D113E, 0x8880D03A, 0x8DD09724, 0x3ACD5620,
- 0xE3EB152D, 0x54F6D429, 0x7926A9C5, 0xCE3B68C1, 0x171D2BCC, 0xA000EAC8,
- 0xA550ADD6, 0x124D6CD2, 0xCB6B2FDF, 0x7C76EEDB, 0xC1CBA1E3, 0x76D660E7,
- 0xAFF023EA, 0x18EDE2EE, 0x1DBDA5F0, 0xAAA064F4, 0x738627F9, 0xC49BE6FD,
- 0x09FDB889, 0xBEE0798D, 0x67C63A80, 0xD0DBFB84, 0xD58BBC9A, 0x62967D9E,
- 0xBBB03E93, 0x0CADFF97, 0xB110B0AF, 0x060D71AB, 0xDF2B32A6, 0x6836F3A2,
- 0x6D66B4BC, 0xDA7B75B8, 0x035D36B5, 0xB440F7B1, 0x00000001
- },
- [AV_CRC_32_IEEE_LE] = {
- 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F,
- 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
- 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2,
- 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
- 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,
- 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
- 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C,
- 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
- 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423,
- 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
- 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106,
- 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
- 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D,
- 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
- 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,
- 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
- 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7,
- 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
- 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA,
- 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
- 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81,
- 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
- 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84,
- 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
- 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,
- 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
- 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E,
- 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
- 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55,
- 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
- 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28,
- 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
- 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F,
- 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
- 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,
- 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
- 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69,
- 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
- 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC,
- 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
- 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693,
- 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
- 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D, 0x00000001
- },
-};
-
-#endif /* AVUTIL_CRC_DATA_H */
+++ /dev/null
-/*
- * DES encryption/decryption
- * Copyright (c) 2007 Reimar Doeffinger
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_DES_H
-#define AVUTIL_DES_H
-
-#include <stdint.h>
-
-struct AVDES {
- uint64_t round_keys[3][16];
- int triple_des;
-};
-
-/**
- * \brief Initializes an AVDES context.
- *
- * \param key_bits must be 64 or 192
- * \param decrypt 0 for encryption, 1 for decryption
- */
-int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * \brief Encrypts / decrypts using the DES algorithm.
- *
- * \param count number of 8 byte blocks
- * \param dst destination array, can be equal to src, must be 8-byte aligned
- * \param src source array, can be equal to dst, must be 8-byte aligned, may be NULL
- * \param iv initialization vector for CBC mode, if NULL then ECB will be used,
- * must be 8-byte aligned
- * \param decrypt 0 for encryption, 1 for decryption
- */
-void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-#endif /* AVUTIL_DES_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * error code definitions
- */
-
-#ifndef AVUTIL_ERROR_H
-#define AVUTIL_ERROR_H
-
-#include <errno.h>
-#include "avutil.h"
-
-/* error handling */
-#if EDOM > 0
-#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions.
-#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value.
-#else
-/* Some platforms have E* and errno already negated. */
-#define AVERROR(e) (e)
-#define AVUNERROR(e) (e)
-#endif
-
-#if LIBAVUTIL_VERSION_MAJOR < 51
-#define AVERROR_INVALIDDATA AVERROR(EINVAL) ///< Invalid data found when processing input
-#define AVERROR_IO AVERROR(EIO) ///< I/O error
-#define AVERROR_NOENT AVERROR(ENOENT) ///< No such file or directory
-#define AVERROR_NOFMT AVERROR(EILSEQ) ///< Unknown format
-#define AVERROR_NOMEM AVERROR(ENOMEM) ///< Not enough memory
-#define AVERROR_NOTSUPP AVERROR(ENOSYS) ///< Operation not supported
-#define AVERROR_NUMEXPECTED AVERROR(EDOM) ///< Number syntax expected in filename
-#define AVERROR_UNKNOWN AVERROR(EINVAL) ///< Unknown error
-#endif
-
-#define AVERROR_EOF AVERROR(EPIPE) ///< End of file
-
-#define AVERROR_PATCHWELCOME (-MKTAG('P','A','W','E')) ///< Not yet implemented in FFmpeg, patches welcome
-
-#if LIBAVUTIL_VERSION_MAJOR > 50
-#define AVERROR_INVALIDDATA (-MKTAG('I','N','D','A')) ///< Invalid data found when processing input
-#define AVERROR_NUMEXPECTED (-MKTAG('N','U','E','X')) ///< Number syntax expected in filename
-#endif
-
-/**
- * Puts a description of the AVERROR code errnum in errbuf.
- * In case of failure the global variable errno is set to indicate the
- * error. Even in case of failure av_strerror() will print a generic
- * error message indicating the errnum provided to errbuf.
- *
- * @param errbuf_size the size in bytes of errbuf
- * @return 0 on success, a negative value if a description for errnum
- * cannot be found
- */
-int av_strerror(int errnum, char *errbuf, size_t errbuf_size);
-
-#endif /* AVUTIL_ERROR_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * a very simple circular buffer FIFO implementation
- */
-
-#ifndef AVUTIL_FIFO_H
-#define AVUTIL_FIFO_H
-
-#include <stdint.h>
-
-typedef struct AVFifoBuffer {
- uint8_t *buffer;
- uint8_t *rptr, *wptr, *end;
- uint32_t rndx, wndx;
-} AVFifoBuffer;
-
-/**
- * Initializes an AVFifoBuffer.
- * @param size of FIFO
- * @return AVFifoBuffer or NULL in case of memory allocation failure
- */
-AVFifoBuffer *av_fifo_alloc(unsigned int size);
-
-/**
- * Frees an AVFifoBuffer.
- * @param *f AVFifoBuffer to free
- */
-void av_fifo_free(AVFifoBuffer *f);
-
-/**
- * Resets the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
- * @param *f AVFifoBuffer to reset
- */
-void av_fifo_reset(AVFifoBuffer *f);
-
-/**
- * Returns the amount of data in bytes in the AVFifoBuffer, that is the
- * amount of data you can read from it.
- * @param *f AVFifoBuffer to read from
- * @return size
- */
-int av_fifo_size(AVFifoBuffer *f);
-
-/**
- * Returns the amount of space in bytes in the AVFifoBuffer, that is the
- * amount of data you can write into it.
- * @param *f AVFifoBuffer to write into
- * @return size
- */
-int av_fifo_space(AVFifoBuffer *f);
-
-/**
- * Feeds data from an AVFifoBuffer to a user-supplied callback.
- * @param *f AVFifoBuffer to read from
- * @param buf_size number of bytes to read
- * @param *func generic read function
- * @param *dest data destination
- */
-int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feeds data from a user-supplied callback to an AVFifoBuffer.
- * @param *f AVFifoBuffer to write to
- * @param *src data source; non-const since it may be used as a
- * modifiable context by the function defined in func
- * @param size number of bytes to write
- * @param *func generic write function; the first parameter is src,
- * the second is dest_buf, the third is dest_buf_size.
- * func must return the number of bytes written to dest_buf, or <= 0 to
- * indicate no more data available to write.
- * If func is NULL, src is interpreted as a simple byte array for source data.
- * @return the number of bytes written to the FIFO
- */
-int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int));
-
-/**
- * Resizes an AVFifoBuffer.
- * @param *f AVFifoBuffer to resize
- * @param size new AVFifoBuffer size in bytes
- * @return <0 for failure, >=0 otherwise
- */
-int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
-
-/**
- * Reads and discards the specified amount of data from an AVFifoBuffer.
- * @param *f AVFifoBuffer to read from
- * @param size amount of data to read in bytes
- */
-void av_fifo_drain(AVFifoBuffer *f, int size);
-
-static inline uint8_t av_fifo_peek(AVFifoBuffer *f, int offs)
-{
- uint8_t *ptr = f->rptr + offs;
- if (ptr >= f->end)
- ptr -= f->end - f->buffer;
- return *ptr;
-}
-#endif /* AVUTIL_FIFO_H */
+++ /dev/null
-/*
- * arbitrary precision integers
- * Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * arbitrary precision integers
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_INTEGER_H
-#define AVUTIL_INTEGER_H
-
-#include <stdint.h>
-#include "common.h"
-
-#define AV_INTEGER_SIZE 8
-
-typedef struct AVInteger{
- uint16_t v[AV_INTEGER_SIZE];
-} AVInteger;
-
-AVInteger av_add_i(AVInteger a, AVInteger b) av_const;
-AVInteger av_sub_i(AVInteger a, AVInteger b) av_const;
-
-/**
- * Returns the rounded-down value of the base 2 logarithm of the given
- * AVInteger. This is simply the index of the most significant bit
- * which is 1, or 0 if all bits are 0.
- */
-int av_log2_i(AVInteger a) av_const;
-AVInteger av_mul_i(AVInteger a, AVInteger b) av_const;
-
-/**
- * Returns 0 if a==b, 1 if a>b and -1 if a<b.
- */
-int av_cmp_i(AVInteger a, AVInteger b) av_const;
-
-/**
- * bitwise shift
- * @param s the number of bits by which the value should be shifted right,
- may be negative for shifting left
- */
-AVInteger av_shr_i(AVInteger a, int s) av_const;
-
-/**
- * Returns a % b.
- * @param quot a/b will be stored here.
- */
-AVInteger av_mod_i(AVInteger *quot, AVInteger a, AVInteger b);
-
-/**
- * Returns a/b.
- */
-AVInteger av_div_i(AVInteger a, AVInteger b) av_const;
-
-/**
- * Converts the given int64_t to an AVInteger.
- */
-AVInteger av_int2i(int64_t a) av_const;
-
-/**
- * Converts the given AVInteger to an int64_t.
- * If the AVInteger is too large to fit into an int64_t,
- * then only the least significant 64 bits will be used.
- */
-int64_t av_i2int(AVInteger a) av_const;
-
-#endif /* AVUTIL_INTEGER_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * common internal API header
- */
-
-#ifndef AVUTIL_INTERNAL_H
-#define AVUTIL_INTERNAL_H
-
-#if !defined(DEBUG) && !defined(NDEBUG)
-# define NDEBUG
-#endif
-
-#include <limits.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <assert.h>
-#include "config.h"
-#include "attributes.h"
-#include "timer.h"
-
-#ifndef attribute_align_arg
-#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,2)
-# define attribute_align_arg __attribute__((force_align_arg_pointer))
-#else
-# define attribute_align_arg
-#endif
-#endif
-
-#ifndef attribute_used
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define attribute_used __attribute__((used))
-#else
-# define attribute_used
-#endif
-#endif
-
-#ifndef av_alias
-#if HAVE_ATTRIBUTE_MAY_ALIAS && (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(3,3)
-# define av_alias __attribute__((may_alias))
-#else
-# define av_alias
-#endif
-#endif
-
-#ifndef INT16_MIN
-#define INT16_MIN (-0x7fff - 1)
-#endif
-
-#ifndef INT16_MAX
-#define INT16_MAX 0x7fff
-#endif
-
-#ifndef INT32_MIN
-#define INT32_MIN (-0x7fffffff - 1)
-#endif
-
-#ifndef INT32_MAX
-#define INT32_MAX 0x7fffffff
-#endif
-
-#ifndef UINT32_MAX
-#define UINT32_MAX 0xffffffff
-#endif
-
-#ifndef INT64_MIN
-#define INT64_MIN (-0x7fffffffffffffffLL - 1)
-#endif
-
-#ifndef INT64_MAX
-#define INT64_MAX INT64_C(9223372036854775807)
-#endif
-
-#ifndef UINT64_MAX
-#define UINT64_MAX UINT64_C(0xFFFFFFFFFFFFFFFF)
-#endif
-
-#ifndef INT_BIT
-# define INT_BIT (CHAR_BIT * sizeof(int))
-#endif
-
-#ifndef offsetof
-# define offsetof(T, F) ((unsigned int)((char *)&((T *)0)->F))
-#endif
-
-/* Use to export labels from asm. */
-#define LABEL_MANGLE(a) EXTERN_PREFIX #a
-
-// Use rip-relative addressing if compiling PIC code on x86-64.
-#if ARCH_X86_64 && defined(PIC)
-# define LOCAL_MANGLE(a) #a "(%%rip)"
-#else
-# define LOCAL_MANGLE(a) #a
-#endif
-
-#define MANGLE(a) EXTERN_PREFIX LOCAL_MANGLE(a)
-
-/* debug stuff */
-
-/* dprintf macros */
-#ifdef DEBUG
-# define dprintf(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
-#else
-# define dprintf(pctx, ...)
-#endif
-
-#define av_abort() do { av_log(NULL, AV_LOG_ERROR, "Abort at %s:%d\n", __FILE__, __LINE__); abort(); } while (0)
-
-/* math */
-
-#if ARCH_X86
-#define MASK_ABS(mask, level)\
- __asm__ volatile(\
- "cltd \n\t"\
- "xorl %1, %0 \n\t"\
- "subl %1, %0 \n\t"\
- : "+a" (level), "=&d" (mask)\
- );
-#else
-#define MASK_ABS(mask, level)\
- mask = level >> 31;\
- level = (level ^ mask) - mask;
-#endif
-
-/* avoid usage of dangerous/inappropriate system functions */
-#undef malloc
-#define malloc please_use_av_malloc
-#undef free
-#define free please_use_av_free
-#undef realloc
-#define realloc please_use_av_realloc
-#undef time
-#define time time_is_forbidden_due_to_security_issues
-#undef rand
-#define rand rand_is_forbidden_due_to_state_trashing_use_av_lfg_get
-#undef srand
-#define srand srand_is_forbidden_due_to_state_trashing_use_av_lfg_init
-#undef random
-#define random random_is_forbidden_due_to_state_trashing_use_av_lfg_get
-#undef sprintf
-#define sprintf sprintf_is_forbidden_due_to_security_issues_use_snprintf
-#undef strcat
-#define strcat strcat_is_forbidden_due_to_security_issues_use_av_strlcat
-#undef exit
-#define exit exit_is_forbidden
-#ifndef LIBAVFORMAT_BUILD
-#undef printf
-#define printf please_use_av_log_instead_of_printf
-#undef fprintf
-#define fprintf please_use_av_log_instead_of_fprintf
-#undef puts
-#define puts please_use_av_log_instead_of_puts
-#undef perror
-#define perror please_use_av_log_instead_of_perror
-#endif
-
-#define FF_ALLOC_OR_GOTO(ctx, p, size, label)\
-{\
- p = av_malloc(size);\
- if (p == NULL && (size) != 0) {\
- av_log(ctx, AV_LOG_ERROR, "Cannot allocate memory.\n");\
- goto label;\
- }\
-}
-
-#define FF_ALLOCZ_OR_GOTO(ctx, p, size, label)\
-{\
- p = av_mallocz(size);\
- if (p == NULL && (size) != 0) {\
- av_log(ctx, AV_LOG_ERROR, "Cannot allocate memory.\n");\
- goto label;\
- }\
-}
-
-#include "libm.h"
-
-/**
- * Returns NULL if CONFIG_SMALL is true, otherwise the argument
- * without modification. Used to disable the definition of strings
- * (for example AVCodec long_names).
- */
-#if CONFIG_SMALL
-# define NULL_IF_CONFIG_SMALL(x) NULL
-#else
-# define NULL_IF_CONFIG_SMALL(x) x
-#endif
-
-#if HAVE_SYMVER_ASM_LABEL
-# define FF_SYMVER(type, name, args, ver) \
- type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \
- type ff_##name args
-#elif HAVE_SYMVER_GNU_ASM
-# define FF_SYMVER(type, name, args, ver) \
- __asm__ (".symver ff_" #name "," EXTERN_PREFIX #name "@" ver); \
- type ff_##name args; \
- type ff_##name args
-#endif
-
-#endif /* AVUTIL_INTERNAL_H */
+++ /dev/null
-/*
- * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_INTFLOAT_READWRITE_H
-#define AVUTIL_INTFLOAT_READWRITE_H
-
-#include <stdint.h>
-#include "attributes.h"
-
-/* IEEE 80 bits extended float */
-typedef struct AVExtFloat {
- uint8_t exponent[2];
- uint8_t mantissa[8];
-} AVExtFloat;
-
-double av_int2dbl(int64_t v) av_const;
-float av_int2flt(int32_t v) av_const;
-double av_ext2dbl(const AVExtFloat ext) av_const;
-int64_t av_dbl2int(double d) av_const;
-int32_t av_flt2int(float d) av_const;
-AVExtFloat av_dbl2ext(double d) av_const;
-
-#endif /* AVUTIL_INTFLOAT_READWRITE_H */
+++ /dev/null
-/*
- * Copyright (c) 2010 Mans Rullgard <mans@mansr.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_INTMATH_H
-#define AVUTIL_INTMATH_H
-
-#include <stdint.h>
-#include "config.h"
-#include "attributes.h"
-
-extern const uint32_t ff_inverse[257];
-
-#if ARCH_ARM
-# include "arm/intmath.h"
-#elif ARCH_X86
-# include "x86/intmath.h"
-#endif
-
-#if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
-
-#ifndef av_log2
-
-#define av_log2(x) (31 - __builtin_clz((x)|1))
-
-#ifndef av_log2_16bit
-#define av_log2_16bit av_log2
-#endif
-
-#endif /* av_log2 */
-
-#endif /* AV_GCC_VERSION_AT_LEAST(3,4) */
-
-#ifndef FASTDIV
-
-#if CONFIG_FASTDIV
-# define FASTDIV(a,b) ((uint32_t)((((uint64_t)a) * ff_inverse[b]) >> 32))
-#else
-# define FASTDIV(a,b) ((a) / (b))
-#endif
-
-#endif /* FASTDIV */
-
-/*
- * Get definition of av_log2_c from common.h. In the event we got
- * here through common.h including this file, including it again will
- * be a no-op due to multi-inclusion guards, so we must duplicate the
- * fallback defines here.
- */
-
-#include "common.h"
-
-#ifndef av_log2
-# define av_log2 av_log2_c
-#endif
-#ifndef av_log2_16bit
-# define av_log2_16bit av_log2_16bit_c
-#endif
-
-extern const uint8_t ff_sqrt_tab[256];
-
-static inline av_const unsigned int ff_sqrt(unsigned int a)
-{
- unsigned int b;
-
- if (a < 255) return (ff_sqrt_tab[a + 1] - 1) >> 4;
- else if (a < (1 << 12)) b = ff_sqrt_tab[a >> 4] >> 2;
-#if !CONFIG_SMALL
- else if (a < (1 << 14)) b = ff_sqrt_tab[a >> 6] >> 1;
- else if (a < (1 << 16)) b = ff_sqrt_tab[a >> 8] ;
-#endif
- else {
- int s = av_log2_16bit(a >> 16) >> 1;
- unsigned int c = a >> (s + 2);
- b = ff_sqrt_tab[c >> (s + 8)];
- b = FASTDIV(c,b) + (b << s);
- }
-
- return b - (a < b * b);
-}
-
-#endif /* AVUTIL_INTMATH_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_INTREADWRITE_H
-#define AVUTIL_INTREADWRITE_H
-
-#include <stdint.h>
-#include "config.h"
-#include "bswap.h"
-#include "common.h"
-
-typedef union {
- uint64_t u64;
- uint32_t u32[2];
- uint16_t u16[4];
- uint8_t u8 [8];
- double f64;
- float f32[2];
-} av_alias av_alias64;
-
-typedef union {
- uint32_t u32;
- uint16_t u16[2];
- uint8_t u8 [4];
- float f32;
-} av_alias av_alias32;
-
-typedef union {
- uint16_t u16;
- uint8_t u8 [2];
-} av_alias av_alias16;
-
-/*
- * Arch-specific headers can provide any combination of
- * AV_[RW][BLN](16|24|32|64) and AV_(COPY|SWAP|ZERO)(64|128) macros.
- * Preprocessor symbols must be defined, even if these are implemented
- * as inline functions.
- */
-
-#if ARCH_ARM
-# include "arm/intreadwrite.h"
-#elif ARCH_AVR32
-# include "avr32/intreadwrite.h"
-#elif ARCH_MIPS
-# include "mips/intreadwrite.h"
-#elif ARCH_PPC
-# include "ppc/intreadwrite.h"
-#elif ARCH_TOMI
-# include "tomi/intreadwrite.h"
-#elif ARCH_X86
-# include "x86/intreadwrite.h"
-#endif
-
-/*
- * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers.
- */
-
-#if HAVE_BIGENDIAN
-
-# if defined(AV_RN16) && !defined(AV_RB16)
-# define AV_RB16(p) AV_RN16(p)
-# elif !defined(AV_RN16) && defined(AV_RB16)
-# define AV_RN16(p) AV_RB16(p)
-# endif
-
-# if defined(AV_WN16) && !defined(AV_WB16)
-# define AV_WB16(p, v) AV_WN16(p, v)
-# elif !defined(AV_WN16) && defined(AV_WB16)
-# define AV_WN16(p, v) AV_WB16(p, v)
-# endif
-
-# if defined(AV_RN24) && !defined(AV_RB24)
-# define AV_RB24(p) AV_RN24(p)
-# elif !defined(AV_RN24) && defined(AV_RB24)
-# define AV_RN24(p) AV_RB24(p)
-# endif
-
-# if defined(AV_WN24) && !defined(AV_WB24)
-# define AV_WB24(p, v) AV_WN24(p, v)
-# elif !defined(AV_WN24) && defined(AV_WB24)
-# define AV_WN24(p, v) AV_WB24(p, v)
-# endif
-
-# if defined(AV_RN32) && !defined(AV_RB32)
-# define AV_RB32(p) AV_RN32(p)
-# elif !defined(AV_RN32) && defined(AV_RB32)
-# define AV_RN32(p) AV_RB32(p)
-# endif
-
-# if defined(AV_WN32) && !defined(AV_WB32)
-# define AV_WB32(p, v) AV_WN32(p, v)
-# elif !defined(AV_WN32) && defined(AV_WB32)
-# define AV_WN32(p, v) AV_WB32(p, v)
-# endif
-
-# if defined(AV_RN64) && !defined(AV_RB64)
-# define AV_RB64(p) AV_RN64(p)
-# elif !defined(AV_RN64) && defined(AV_RB64)
-# define AV_RN64(p) AV_RB64(p)
-# endif
-
-# if defined(AV_WN64) && !defined(AV_WB64)
-# define AV_WB64(p, v) AV_WN64(p, v)
-# elif !defined(AV_WN64) && defined(AV_WB64)
-# define AV_WN64(p, v) AV_WB64(p, v)
-# endif
-
-#else /* HAVE_BIGENDIAN */
-
-# if defined(AV_RN16) && !defined(AV_RL16)
-# define AV_RL16(p) AV_RN16(p)
-# elif !defined(AV_RN16) && defined(AV_RL16)
-# define AV_RN16(p) AV_RL16(p)
-# endif
-
-# if defined(AV_WN16) && !defined(AV_WL16)
-# define AV_WL16(p, v) AV_WN16(p, v)
-# elif !defined(AV_WN16) && defined(AV_WL16)
-# define AV_WN16(p, v) AV_WL16(p, v)
-# endif
-
-# if defined(AV_RN24) && !defined(AV_RL24)
-# define AV_RL24(p) AV_RN24(p)
-# elif !defined(AV_RN24) && defined(AV_RL24)
-# define AV_RN24(p) AV_RL24(p)
-# endif
-
-# if defined(AV_WN24) && !defined(AV_WL24)
-# define AV_WL24(p, v) AV_WN24(p, v)
-# elif !defined(AV_WN24) && defined(AV_WL24)
-# define AV_WN24(p, v) AV_WL24(p, v)
-# endif
-
-# if defined(AV_RN32) && !defined(AV_RL32)
-# define AV_RL32(p) AV_RN32(p)
-# elif !defined(AV_RN32) && defined(AV_RL32)
-# define AV_RN32(p) AV_RL32(p)
-# endif
-
-# if defined(AV_WN32) && !defined(AV_WL32)
-# define AV_WL32(p, v) AV_WN32(p, v)
-# elif !defined(AV_WN32) && defined(AV_WL32)
-# define AV_WN32(p, v) AV_WL32(p, v)
-# endif
-
-# if defined(AV_RN64) && !defined(AV_RL64)
-# define AV_RL64(p) AV_RN64(p)
-# elif !defined(AV_RN64) && defined(AV_RL64)
-# define AV_RN64(p) AV_RL64(p)
-# endif
-
-# if defined(AV_WN64) && !defined(AV_WL64)
-# define AV_WL64(p, v) AV_WN64(p, v)
-# elif !defined(AV_WN64) && defined(AV_WL64)
-# define AV_WN64(p, v) AV_WL64(p, v)
-# endif
-
-#endif /* !HAVE_BIGENDIAN */
-
-/*
- * Define AV_[RW]N helper macros to simplify definitions not provided
- * by per-arch headers.
- */
-
-#if HAVE_ATTRIBUTE_PACKED
-
-union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
-union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias;
-union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
-
-# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l)
-# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v))
-
-#elif defined(__DECC)
-
-# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
-# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
-
-#elif HAVE_FAST_UNALIGNED
-
-# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)
-# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v))
-
-#else
-
-#ifndef AV_RB16
-# define AV_RB16(x) \
- ((((const uint8_t*)(x))[0] << 8) | \
- ((const uint8_t*)(x))[1])
-#endif
-#ifndef AV_WB16
-# define AV_WB16(p, d) do { \
- ((uint8_t*)(p))[1] = (d); \
- ((uint8_t*)(p))[0] = (d)>>8; \
- } while(0)
-#endif
-
-#ifndef AV_RL16
-# define AV_RL16(x) \
- ((((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL16
-# define AV_WL16(p, d) do { \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- } while(0)
-#endif
-
-#ifndef AV_RB32
-# define AV_RB32(x) \
- ((((const uint8_t*)(x))[0] << 24) | \
- (((const uint8_t*)(x))[1] << 16) | \
- (((const uint8_t*)(x))[2] << 8) | \
- ((const uint8_t*)(x))[3])
-#endif
-#ifndef AV_WB32
-# define AV_WB32(p, d) do { \
- ((uint8_t*)(p))[3] = (d); \
- ((uint8_t*)(p))[2] = (d)>>8; \
- ((uint8_t*)(p))[1] = (d)>>16; \
- ((uint8_t*)(p))[0] = (d)>>24; \
- } while(0)
-#endif
-
-#ifndef AV_RL32
-# define AV_RL32(x) \
- ((((const uint8_t*)(x))[3] << 24) | \
- (((const uint8_t*)(x))[2] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL32
-# define AV_WL32(p, d) do { \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- ((uint8_t*)(p))[3] = (d)>>24; \
- } while(0)
-#endif
-
-#ifndef AV_RB64
-# define AV_RB64(x) \
- (((uint64_t)((const uint8_t*)(x))[0] << 56) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 48) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[5] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[6] << 8) | \
- (uint64_t)((const uint8_t*)(x))[7])
-#endif
-#ifndef AV_WB64
-# define AV_WB64(p, d) do { \
- ((uint8_t*)(p))[7] = (d); \
- ((uint8_t*)(p))[6] = (d)>>8; \
- ((uint8_t*)(p))[5] = (d)>>16; \
- ((uint8_t*)(p))[4] = (d)>>24; \
- ((uint8_t*)(p))[3] = (d)>>32; \
- ((uint8_t*)(p))[2] = (d)>>40; \
- ((uint8_t*)(p))[1] = (d)>>48; \
- ((uint8_t*)(p))[0] = (d)>>56; \
- } while(0)
-#endif
-
-#ifndef AV_RL64
-# define AV_RL64(x) \
- (((uint64_t)((const uint8_t*)(x))[7] << 56) | \
- ((uint64_t)((const uint8_t*)(x))[6] << 48) | \
- ((uint64_t)((const uint8_t*)(x))[5] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 8) | \
- (uint64_t)((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL64
-# define AV_WL64(p, d) do { \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- ((uint8_t*)(p))[3] = (d)>>24; \
- ((uint8_t*)(p))[4] = (d)>>32; \
- ((uint8_t*)(p))[5] = (d)>>40; \
- ((uint8_t*)(p))[6] = (d)>>48; \
- ((uint8_t*)(p))[7] = (d)>>56; \
- } while(0)
-#endif
-
-#if HAVE_BIGENDIAN
-# define AV_RN(s, p) AV_RB##s(p)
-# define AV_WN(s, p, v) AV_WB##s(p, v)
-#else
-# define AV_RN(s, p) AV_RL##s(p)
-# define AV_WN(s, p, v) AV_WL##s(p, v)
-#endif
-
-#endif /* HAVE_FAST_UNALIGNED */
-
-#ifndef AV_RN16
-# define AV_RN16(p) AV_RN(16, p)
-#endif
-
-#ifndef AV_RN32
-# define AV_RN32(p) AV_RN(32, p)
-#endif
-
-#ifndef AV_RN64
-# define AV_RN64(p) AV_RN(64, p)
-#endif
-
-#ifndef AV_WN16
-# define AV_WN16(p, v) AV_WN(16, p, v)
-#endif
-
-#ifndef AV_WN32
-# define AV_WN32(p, v) AV_WN(32, p, v)
-#endif
-
-#ifndef AV_WN64
-# define AV_WN64(p, v) AV_WN(64, p, v)
-#endif
-
-#if HAVE_BIGENDIAN
-# define AV_RB(s, p) AV_RN##s(p)
-# define AV_WB(s, p, v) AV_WN##s(p, v)
-# define AV_RL(s, p) bswap_##s(AV_RN##s(p))
-# define AV_WL(s, p, v) AV_WN##s(p, bswap_##s(v))
-#else
-# define AV_RB(s, p) bswap_##s(AV_RN##s(p))
-# define AV_WB(s, p, v) AV_WN##s(p, bswap_##s(v))
-# define AV_RL(s, p) AV_RN##s(p)
-# define AV_WL(s, p, v) AV_WN##s(p, v)
-#endif
-
-#define AV_RB8(x) (((const uint8_t*)(x))[0])
-#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0)
-
-#define AV_RL8(x) AV_RB8(x)
-#define AV_WL8(p, d) AV_WB8(p, d)
-
-#ifndef AV_RB16
-# define AV_RB16(p) AV_RB(16, p)
-#endif
-#ifndef AV_WB16
-# define AV_WB16(p, v) AV_WB(16, p, v)
-#endif
-
-#ifndef AV_RL16
-# define AV_RL16(p) AV_RL(16, p)
-#endif
-#ifndef AV_WL16
-# define AV_WL16(p, v) AV_WL(16, p, v)
-#endif
-
-#ifndef AV_RB32
-# define AV_RB32(p) AV_RB(32, p)
-#endif
-#ifndef AV_WB32
-# define AV_WB32(p, v) AV_WB(32, p, v)
-#endif
-
-#ifndef AV_RL32
-# define AV_RL32(p) AV_RL(32, p)
-#endif
-#ifndef AV_WL32
-# define AV_WL32(p, v) AV_WL(32, p, v)
-#endif
-
-#ifndef AV_RB64
-# define AV_RB64(p) AV_RB(64, p)
-#endif
-#ifndef AV_WB64
-# define AV_WB64(p, v) AV_WB(64, p, v)
-#endif
-
-#ifndef AV_RL64
-# define AV_RL64(p) AV_RL(64, p)
-#endif
-#ifndef AV_WL64
-# define AV_WL64(p, v) AV_WL(64, p, v)
-#endif
-
-#ifndef AV_RB24
-# define AV_RB24(x) \
- ((((const uint8_t*)(x))[0] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[2])
-#endif
-#ifndef AV_WB24
-# define AV_WB24(p, d) do { \
- ((uint8_t*)(p))[2] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[0] = (d)>>16; \
- } while(0)
-#endif
-
-#ifndef AV_RL24
-# define AV_RL24(x) \
- ((((const uint8_t*)(x))[2] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL24
-# define AV_WL24(p, d) do { \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- } while(0)
-#endif
-
-/*
- * The AV_[RW]NA macros access naturally aligned data
- * in a type-safe way.
- */
-
-#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s)
-#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v))
-
-#ifndef AV_RN16A
-# define AV_RN16A(p) AV_RNA(16, p)
-#endif
-
-#ifndef AV_RN32A
-# define AV_RN32A(p) AV_RNA(32, p)
-#endif
-
-#ifndef AV_RN64A
-# define AV_RN64A(p) AV_RNA(64, p)
-#endif
-
-#ifndef AV_WN16A
-# define AV_WN16A(p, v) AV_WNA(16, p, v)
-#endif
-
-#ifndef AV_WN32A
-# define AV_WN32A(p, v) AV_WNA(32, p, v)
-#endif
-
-#ifndef AV_WN64A
-# define AV_WN64A(p, v) AV_WNA(64, p, v)
-#endif
-
-/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be
- * naturally aligned. They may be implemented using MMX,
- * so emms_c() must be called before using any float code
- * afterwards.
- */
-
-#define AV_COPY(n, d, s) \
- (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n)
-
-#ifndef AV_COPY16
-# define AV_COPY16(d, s) AV_COPY(16, d, s)
-#endif
-
-#ifndef AV_COPY32
-# define AV_COPY32(d, s) AV_COPY(32, d, s)
-#endif
-
-#ifndef AV_COPY64
-# define AV_COPY64(d, s) AV_COPY(64, d, s)
-#endif
-
-#ifndef AV_COPY128
-# define AV_COPY128(d, s) \
- do { \
- AV_COPY64(d, s); \
- AV_COPY64((char*)(d)+8, (char*)(s)+8); \
- } while(0)
-#endif
-
-#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b))
-
-#ifndef AV_SWAP64
-# define AV_SWAP64(a, b) AV_SWAP(64, a, b)
-#endif
-
-#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0)
-
-#ifndef AV_ZERO16
-# define AV_ZERO16(d) AV_ZERO(16, d)
-#endif
-
-#ifndef AV_ZERO32
-# define AV_ZERO32(d) AV_ZERO(32, d)
-#endif
-
-#ifndef AV_ZERO64
-# define AV_ZERO64(d) AV_ZERO(64, d)
-#endif
-
-#ifndef AV_ZERO128
-# define AV_ZERO128(d) \
- do { \
- AV_ZERO64(d); \
- AV_ZERO64((char*)(d)+8); \
- } while(0)
-#endif
-
-#endif /* AVUTIL_INTREADWRITE_H */
+++ /dev/null
-/*
- * Lagged Fibonacci PRNG
- * Copyright (c) 2008 Michael Niedermayer
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_LFG_H
-#define AVUTIL_LFG_H
-
-typedef struct {
- unsigned int state[64];
- int index;
-} AVLFG;
-
-void av_lfg_init(AVLFG *c, unsigned int seed);
-
-/**
- * Gets the next random unsigned 32-bit number using an ALFG.
- *
- * Please also consider a simple LCG like state= state*1664525+1013904223,
- * it may be good enough and faster for your specific use case.
- */
-static inline unsigned int av_lfg_get(AVLFG *c){
- c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63];
- return c->state[c->index++ & 63];
-}
-
-/**
- * Gets the next random unsigned 32-bit number using a MLFG.
- *
- * Please also consider av_lfg_get() above, it is faster.
- */
-static inline unsigned int av_mlfg_get(AVLFG *c){
- unsigned int a= c->state[(c->index-55) & 63];
- unsigned int b= c->state[(c->index-24) & 63];
- return c->state[c->index++ & 63] = 2*a*b+a+b;
-}
-
-/**
- * Gets the next two numbers generated by a Box-Muller Gaussian
- * generator using the random numbers issued by lfg.
- *
- * @param out[2] array where are placed the two generated numbers
- */
-void av_bmg_get(AVLFG *lfg, double out[2]);
-
-#endif /* AVUTIL_LFG_H */
+++ /dev/null
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Replacements for frequently missing libm functions
- */
-
-#ifndef AVUTIL_LIBM_H
-#define AVUTIL_LIBM_H
-
-#include <math.h>
-#include "config.h"
-#include "attributes.h"
-
-#if !HAVE_EXP2
-#undef exp2
-#define exp2(x) exp((x) * 0.693147180559945)
-#endif /* HAVE_EXP2 */
-
-#if !HAVE_EXP2F
-#undef exp2f
-#define exp2f(x) ((float)exp2(x))
-#endif /* HAVE_EXP2F */
-
-#if !HAVE_LLRINT
-#undef llrint
-#define llrint(x) ((long long)rint(x))
-#endif /* HAVE_LLRINT */
-
-#if !HAVE_LLRINTF
-#undef llrintf
-#define llrintf(x) ((long long)rint(x))
-#endif /* HAVE_LLRINT */
-
-#if !HAVE_LOG2
-#undef log2
-#define log2(x) (log(x) * 1.44269504088896340736)
-#endif /* HAVE_LOG2 */
-
-#if !HAVE_LOG2F
-#undef log2f
-#define log2f(x) ((float)log2(x))
-#endif /* HAVE_LOG2F */
-
-#if !HAVE_LRINT
-static av_always_inline av_const long int lrint(double x)
-{
- return rint(x);
-}
-#endif /* HAVE_LRINT */
-
-#if !HAVE_LRINTF
-static av_always_inline av_const long int lrintf(float x)
-{
- return (int)(rint(x));
-}
-#endif /* HAVE_LRINTF */
-
-#if !HAVE_ROUND
-static av_always_inline av_const double round(double x)
-{
- return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
-}
-#endif /* HAVE_ROUND */
-
-#if !HAVE_ROUNDF
-static av_always_inline av_const float roundf(float x)
-{
- return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
-}
-#endif /* HAVE_ROUNDF */
-
-#if !HAVE_TRUNCF
-static av_always_inline av_const float truncf(float x)
-{
- return (x > 0) ? floor(x) : ceil(x);
-}
-#endif /* HAVE_TRUNCF */
-
-#endif /* AVUTIL_LIBM_H */
+++ /dev/null
-/*
- * linear least squares model
- *
- * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_LLS_H
-#define AVUTIL_LLS_H
-
-#define MAX_VARS 32
-
-//FIXME avoid direct access to LLSModel from outside
-
-/**
- * Linear least squares model.
- */
-typedef struct LLSModel{
- double covariance[MAX_VARS+1][MAX_VARS+1];
- double coeff[MAX_VARS][MAX_VARS];
- double variance[MAX_VARS];
- int indep_count;
-}LLSModel;
-
-void av_init_lls(LLSModel *m, int indep_count);
-void av_update_lls(LLSModel *m, double *param, double decay);
-void av_solve_lls(LLSModel *m, double threshold, int min_order);
-double av_evaluate_lls(LLSModel *m, double *param, int order);
-
-#endif /* AVUTIL_LLS_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_LOG_H
-#define AVUTIL_LOG_H
-
-#include <stdarg.h>
-#include "avutil.h"
-
-/**
- * Describes the class of an AVClass context structure. That is an
- * arbitrary struct of which the first field is a pointer to an
- * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).
- */
-typedef struct {
- /**
- * The name of the class; usually it is the same name as the
- * context structure type to which the AVClass is associated.
- */
- const char* class_name;
-
- /**
- * A pointer to a function which returns the name of a context
- * instance ctx associated with the class.
- */
- const char* (*item_name)(void* ctx);
-
- /**
- * a pointer to the first option specified in the class if any or NULL
- *
- * @see av_set_default_options()
- */
- const struct AVOption *option;
-
- /**
- * LIBAVUTIL_VERSION with which this structure was created.
- * This is used to allow fields to be added without requiring major
- * version bumps everywhere.
- */
-
- int version;
-} AVClass;
-
-/* av_log API */
-
-#define AV_LOG_QUIET -8
-
-/**
- * Something went really wrong and we will crash now.
- */
-#define AV_LOG_PANIC 0
-
-/**
- * Something went wrong and recovery is not possible.
- * For example, no header was found for a format which depends
- * on headers or an illegal combination of parameters is used.
- */
-#define AV_LOG_FATAL 8
-
-/**
- * Something went wrong and cannot losslessly be recovered.
- * However, not all future data is affected.
- */
-#define AV_LOG_ERROR 16
-
-/**
- * Something somehow does not look correct. This may or may not
- * lead to problems. An example would be the use of '-vstrict -2'.
- */
-#define AV_LOG_WARNING 24
-
-#define AV_LOG_INFO 32
-#define AV_LOG_VERBOSE 40
-
-/**
- * Stuff which is only useful for libav* developers.
- */
-#define AV_LOG_DEBUG 48
-
-/**
- * Sends the specified message to the log if the level is less than or equal
- * to the current av_log_level. By default, all logging messages are sent to
- * stderr. This behavior can be altered by setting a different av_vlog callback
- * function.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message, lower values signifying
- * higher importance.
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- * @see av_vlog
- */
-#ifdef __GNUC__
-void av_log(void*, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
-#else
-void av_log(void*, int level, const char *fmt, ...);
-#endif
-
-void av_vlog(void*, int level, const char *fmt, va_list);
-int av_log_get_level(void);
-void av_log_set_level(int);
-void av_log_set_callback(void (*)(void*, int, const char*, va_list));
-void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
-
-#endif /* AVUTIL_LOG_H */
+++ /dev/null
-/*
- * LZO 1x decompression
- * copyright (c) 2006 Reimar Doeffinger
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_LZO_H
-#define AVUTIL_LZO_H
-
-#include <stdint.h>
-
-/** \defgroup errflags Error flags returned by av_lzo1x_decode
- * \{ */
-//! end of the input buffer reached before decoding finished
-#define AV_LZO_INPUT_DEPLETED 1
-//! decoded data did not fit into output buffer
-#define AV_LZO_OUTPUT_FULL 2
-//! a reference to previously decoded data was wrong
-#define AV_LZO_INVALID_BACKPTR 4
-//! a non-specific error in the compressed bitstream
-#define AV_LZO_ERROR 8
-/** \} */
-
-#define AV_LZO_INPUT_PADDING 8
-#define AV_LZO_OUTPUT_PADDING 12
-
-/**
- * \brief Decodes LZO 1x compressed data.
- * \param out output buffer
- * \param outlen size of output buffer, number of bytes left are returned here
- * \param in input buffer
- * \param inlen size of input buffer, number of bytes left are returned here
- * \return 0 on success, otherwise a combination of the error flags above
- *
- * Make sure all buffers are appropriately padded, in must provide
- * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes.
- */
-int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen);
-
-/**
- * \brief deliberately overlapping memcpy implementation
- * \param dst destination buffer; must be padded with 12 additional bytes
- * \param back how many bytes back we start (the initial size of the overlapping window)
- * \param cnt number of bytes to copy, must be >= 0
- *
- * cnt > back is valid, this will copy the bytes we just copied,
- * thus creating a repeating pattern with a period length of back.
- */
-void av_memcpy_backptr(uint8_t *dst, int back, int cnt);
-
-#endif /* AVUTIL_LZO_H */
+++ /dev/null
-/*
- * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_MATHEMATICS_H
-#define AVUTIL_MATHEMATICS_H
-
-#include <stdint.h>
-#include <math.h>
-#include "attributes.h"
-#include "rational.h"
-
-#ifndef M_E
-#define M_E 2.7182818284590452354 /* e */
-#endif
-#ifndef M_LN2
-#define M_LN2 0.69314718055994530942 /* log_e 2 */
-#endif
-#ifndef M_LN10
-#define M_LN10 2.30258509299404568402 /* log_e 10 */
-#endif
-#ifndef M_LOG2_10
-#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */
-#endif
-#ifndef M_PI
-#define M_PI 3.14159265358979323846 /* pi */
-#endif
-#ifndef M_SQRT1_2
-#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
-#endif
-#ifndef M_SQRT2
-#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
-#endif
-#ifndef NAN
-#define NAN (0.0/0.0)
-#endif
-#ifndef INFINITY
-#define INFINITY (1.0/0.0)
-#endif
-
-enum AVRounding {
- AV_ROUND_ZERO = 0, ///< Round toward zero.
- AV_ROUND_INF = 1, ///< Round away from zero.
- AV_ROUND_DOWN = 2, ///< Round toward -infinity.
- AV_ROUND_UP = 3, ///< Round toward +infinity.
- AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero.
-};
-
-/**
- * Returns the greatest common divisor of a and b.
- * If both a and b are 0 or either or both are <0 then behavior is
- * undefined.
- */
-int64_t av_const av_gcd(int64_t a, int64_t b);
-
-/**
- * Rescales a 64-bit integer with rounding to nearest.
- * A simple a*b/c isn't possible as it can overflow.
- */
-int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const;
-
-/**
- * Rescales a 64-bit integer with specified rounding.
- * A simple a*b/c isn't possible as it can overflow.
- */
-int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const;
-
-/**
- * Rescales a 64-bit integer by 2 rational numbers.
- */
-int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
-
-/**
- * Compares 2 timestamps each in its own timebases.
- * The result of the function is undefined if one of the timestamps
- * is outside the int64_t range when represented in the others timebase.
- * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position
- */
-int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
-
-
-#endif /* AVUTIL_MATHEMATICS_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_MD5_H
-#define AVUTIL_MD5_H
-
-#include <stdint.h>
-
-extern const int av_md5_size;
-
-struct AVMD5;
-
-void av_md5_init(struct AVMD5 *ctx);
-void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, const int len);
-void av_md5_final(struct AVMD5 *ctx, uint8_t *dst);
-void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len);
-
-#endif /* AVUTIL_MD5_H */
-
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * memory handling functions
- */
-
-#ifndef AVUTIL_MEM_H
-#define AVUTIL_MEM_H
-
-#include "attributes.h"
-
-#if defined(__ICC) || defined(__SUNPRO_C)
- #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
- #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
-#elif defined(__TI_COMPILER_VERSION__)
- #define DECLARE_ALIGNED(n,t,v) \
- AV_PRAGMA(DATA_ALIGN(v,n)) \
- t __attribute__((aligned(n))) v
- #define DECLARE_ASM_CONST(n,t,v) \
- AV_PRAGMA(DATA_ALIGN(v,n)) \
- static const t __attribute__((aligned(n))) v
-#elif defined(__GNUC__)
- #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
- #define DECLARE_ASM_CONST(n,t,v) static const t attribute_used __attribute__ ((aligned (n))) v
-#elif defined(_MSC_VER)
- #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
- #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
-#else
- #define DECLARE_ALIGNED(n,t,v) t v
- #define DECLARE_ASM_CONST(n,t,v) static const t v
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,1)
- #define av_malloc_attrib __attribute__((__malloc__))
-#else
- #define av_malloc_attrib
-#endif
-
-#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
- #define av_alloc_size(n) __attribute__((alloc_size(n)))
-#else
- #define av_alloc_size(n)
-#endif
-
-/**
- * Allocates a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU).
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
- * @see av_mallocz()
- */
-void *av_malloc(unsigned int size) av_malloc_attrib av_alloc_size(1);
-
-/**
- * Allocates or reallocates a block of memory.
- * If ptr is NULL and size > 0, allocates a new block. If
- * size is zero, frees the memory block pointed to by ptr.
- * @param size Size in bytes for the memory block to be allocated or
- * reallocated.
- * @param ptr Pointer to a memory block already allocated with
- * av_malloc(z)() or av_realloc() or NULL.
- * @return Pointer to a newly reallocated block or NULL if the block
- * cannot be reallocated or the function is used to free the memory block.
- * @see av_fast_realloc()
- */
-void *av_realloc(void *ptr, unsigned int size) av_alloc_size(2);
-
-/**
- * Frees a memory block which has been allocated with av_malloc(z)() or
- * av_realloc().
- * @param ptr Pointer to the memory block which should be freed.
- * @note ptr = NULL is explicitly allowed.
- * @note It is recommended that you use av_freep() instead.
- * @see av_freep()
- */
-void av_free(void *ptr);
-
-/**
- * Allocates a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU) and
- * zeroes all the bytes of the block.
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if it cannot be allocated.
- * @see av_malloc()
- */
-void *av_mallocz(unsigned int size) av_malloc_attrib av_alloc_size(1);
-
-/**
- * Duplicates the string s.
- * @param s string to be duplicated
- * @return Pointer to a newly allocated string containing a
- * copy of s or NULL if the string cannot be allocated.
- */
-char *av_strdup(const char *s) av_malloc_attrib;
-
-/**
- * Frees a memory block which has been allocated with av_malloc(z)() or
- * av_realloc() and set the pointer pointing to it to NULL.
- * @param ptr Pointer to the pointer to the memory block which should
- * be freed.
- * @see av_free()
- */
-void av_freep(void *ptr);
-
-#endif /* AVUTIL_MEM_H */
+++ /dev/null
-/*
- * principal component analysis (PCA)
- * Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * principal component analysis (PCA)
- */
-
-#ifndef AVUTIL_PCA_H
-#define AVUTIL_PCA_H
-
-struct PCA *ff_pca_init(int n);
-void ff_pca_free(struct PCA *pca);
-void ff_pca_add(struct PCA *pca, double *v);
-int ff_pca(struct PCA *pca, double *eigenvector, double *eigenvalue);
-
-#endif /* AVUTIL_PCA_H */
+++ /dev/null
-/*
- * pixel format descriptor
- * Copyright (c) 2009 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_PIXDESC_H
-#define AVUTIL_PIXDESC_H
-
-#include <inttypes.h>
-
-typedef struct AVComponentDescriptor{
- uint16_t plane :2; ///< which of the 4 planes contains the component
-
- /**
- * Number of elements between 2 horizontally consecutive pixels minus 1.
- * Elements are bits for bitstream formats, bytes otherwise.
- */
- uint16_t step_minus1 :3;
-
- /**
- * Number of elements before the component of the first pixel plus 1.
- * Elements are bits for bitstream formats, bytes otherwise.
- */
- uint16_t offset_plus1 :3;
- uint16_t shift :3; ///< number of least significant bits that must be shifted away to get the value
- uint16_t depth_minus1 :4; ///< number of bits in the component minus 1
-}AVComponentDescriptor;
-
-/**
- * Descriptor that unambiguously describes how the bits of a pixel are
- * stored in the up to 4 data planes of an image. It also stores the
- * subsampling factors and number of components.
- *
- * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV
- * and all the YUV variants) AVPixFmtDescriptor just stores how values
- * are stored not what these values represent.
- */
-typedef struct AVPixFmtDescriptor{
- const char *name;
- uint8_t nb_components; ///< The number of components each pixel has, (1-4)
-
- /**
- * Amount to shift the luma width right to find the chroma width.
- * For YV12 this is 1 for example.
- * chroma_width = -((-luma_width) >> log2_chroma_w)
- * The note above is needed to ensure rounding up.
- * This value only refers to the chroma components.
- */
- uint8_t log2_chroma_w; ///< chroma_width = -((-luma_width )>>log2_chroma_w)
-
- /**
- * Amount to shift the luma height right to find the chroma height.
- * For YV12 this is 1 for example.
- * chroma_height= -((-luma_height) >> log2_chroma_h)
- * The note above is needed to ensure rounding up.
- * This value only refers to the chroma components.
- */
- uint8_t log2_chroma_h;
- uint8_t flags;
-
- /**
- * Parameters that describe how pixels are packed. If the format
- * has chroma components, they must be stored in comp[1] and
- * comp[2].
- */
- AVComponentDescriptor comp[4];
-}AVPixFmtDescriptor;
-
-#define PIX_FMT_BE 1 ///< Pixel format is big-endian.
-#define PIX_FMT_PAL 2 ///< Pixel format has a palette in data[1], values are indexes in this palette.
-#define PIX_FMT_BITSTREAM 4 ///< All values of a component are bit-wise packed end to end.
-#define PIX_FMT_HWACCEL 8 ///< Pixel format is an HW accelerated format.
-
-/**
- * The array of all the pixel format descriptors.
- */
-extern const AVPixFmtDescriptor av_pix_fmt_descriptors[];
-
-/**
- * Reads a line from an image, and writes the values of the
- * pixel format component c to dst.
- *
- * @param data the array containing the pointers to the planes of the image
- * @param linesizes the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to read
- * @param y the vertical coordinate of the first pixel to read
- * @param w the width of the line to read, that is the number of
- * values to write to dst
- * @param read_pal_component if not zero and the format is a paletted
- * format writes the values corresponding to the palette
- * component c in data[1] to dst, rather than the palette indexes in
- * data[0]. The behavior is undefined if the format is not paletted.
- */
-void read_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4],
- const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component);
-
-/**
- * Writes the values from src to the pixel format component c of an
- * image line.
- *
- * @param src array containing the values to write
- * @param data the array containing the pointers to the planes of the
- * image to write into. It is supposed to be zeroed.
- * @param linesizes the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to write
- * @param y the vertical coordinate of the first pixel to write
- * @param w the width of the line to write, that is the number of
- * values to write to the image line
- */
-void write_line(const uint16_t *src, uint8_t *data[4], const int linesize[4],
- const AVPixFmtDescriptor *desc, int x, int y, int c, int w);
-
-/**
- * Returns the pixel format corresponding to name.
- *
- * If there is no pixel format with name name, then looks for a
- * pixel format with the name corresponding to the native endian
- * format of name.
- * For example in a little-endian system, first looks for "gray16",
- * then for "gray16le".
- *
- * Finally if no pixel format has been found, returns PIX_FMT_NONE.
- */
-enum PixelFormat av_get_pix_fmt(const char *name);
-
-/**
- * Returns the number of bits per pixel used by the pixel format
- * described by pixdesc.
- *
- * The returned number of bits refers to the number of bits actually
- * used for storing the pixel information, that is padding bits are
- * not counted.
- */
-int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
-
-#endif /* AVUTIL_PIXDESC_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_PIXFMT_H
-#define AVUTIL_PIXFMT_H
-
-/**
- * @file
- * pixel format definitions
- *
- * @warning This file has to be considered an internal but installed
- * header, so it should not be directly included in your projects.
- */
-
-#include "libavutil/avconfig.h"
-
-/**
- * Pixel format. Notes:
- *
- * PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA
- * color is put together as:
- * (A << 24) | (R << 16) | (G << 8) | B
- * This is stored as BGRA on little-endian CPU architectures and ARGB on
- * big-endian CPUs.
- *
- * When the pixel format is palettized RGB (PIX_FMT_PAL8), the palettized
- * image data is stored in AVFrame.data[0]. The palette is transported in
- * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is
- * formatted the same as in PIX_FMT_RGB32 described above (i.e., it is
- * also endian-specific). Note also that the individual RGB palette
- * components stored in AVFrame.data[1] should be in the range 0..255.
- * This is important as many custom PAL8 video codecs that were designed
- * to run on the IBM VGA graphics adapter use 6-bit palette components.
- *
- * For all the 8bit per pixel formats, an RGB32 palette is in data[1] like
- * for pal8. This palette is filled in automatically by the function
- * allocating the picture.
- *
- * Note, make sure that all newly added big endian formats have pix_fmt&1==1
- * and that all newly added little endian formats have pix_fmt&1==0
- * this allows simpler detection of big vs little endian.
- */
-enum PixelFormat {
- PIX_FMT_NONE= -1,
- PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
- PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
- PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB...
- PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR...
- PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
- PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
- PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
- PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
- PIX_FMT_GRAY8, ///< Y , 8bpp
- PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb
- PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb
- PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette
- PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG)
- PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG)
- PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG)
- PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing
- PIX_FMT_XVMC_MPEG2_IDCT,
- PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
- PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
- PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
- PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
- PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
- PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
- PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
- PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
- PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
- PIX_FMT_NV21, ///< as above, but U and V bytes are swapped
-
- PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
- PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
- PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
- PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
-
- PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian
- PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian
- PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
- PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG)
- PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
- PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian
- PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian
-
- PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
- PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian
- PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), big-endian, most significant bit to 0
- PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), little-endian, most significant bit to 0
-
- PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian
- PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian
- PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), big-endian, most significant bit to 1
- PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), little-endian, most significant bit to 1
-
- PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers
- PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
- PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
-
- PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer
-
- PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0
- PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0
- PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1
- PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1
- PIX_FMT_Y400A, ///< 8bit gray, 8bit alpha
- PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
-};
-
-#if AV_HAVE_BIGENDIAN
-# define PIX_FMT_NE(be, le) PIX_FMT_##be
-#else
-# define PIX_FMT_NE(be, le) PIX_FMT_##le
-#endif
-
-#define PIX_FMT_RGB32 PIX_FMT_NE(ARGB, BGRA)
-#define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR)
-#define PIX_FMT_BGR32 PIX_FMT_NE(ABGR, RGBA)
-#define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB)
-
-#define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE)
-#define PIX_FMT_RGB48 PIX_FMT_NE(RGB48BE, RGB48LE)
-#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE)
-#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE)
-#define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE)
-#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
-#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
-#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)
-
-#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
-#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
-#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
-
-#endif /* AVUTIL_PIXFMT_H */
+++ /dev/null
-/*
- * Copyright (c) 2009 Baptiste Coudurier <baptiste.coudurier@gmail.com>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_RANDOM_SEED_H
-#define AVUTIL_RANDOM_SEED_H
-
-#include <stdint.h>
-
-/**
- * Gets a seed to use in conjunction with random functions.
- */
-uint32_t ff_random_get_seed(void);
-
-#endif /* AVUTIL_RANDOM_SEED_H */
+++ /dev/null
-/*
- * rational numbers
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * rational numbers
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_RATIONAL_H
-#define AVUTIL_RATIONAL_H
-
-#include <stdint.h>
-#include "attributes.h"
-
-/**
- * rational number numerator/denominator
- */
-typedef struct AVRational{
- int num; ///< numerator
- int den; ///< denominator
-} AVRational;
-
-/**
- * Compares two rationals.
- * @param a first rational
- * @param b second rational
- * @return 0 if a==b, 1 if a>b and -1 if a<b
- */
-static inline int av_cmp_q(AVRational a, AVRational b){
- const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den;
-
- if(tmp) return (tmp>>63)|1;
- else return 0;
-}
-
-/**
- * Converts rational to double.
- * @param a rational to convert
- * @return (double) a
- */
-static inline double av_q2d(AVRational a){
- return a.num / (double) a.den;
-}
-
-/**
- * Reduces a fraction.
- * This is useful for framerate calculations.
- * @param dst_num destination numerator
- * @param dst_den destination denominator
- * @param num source numerator
- * @param den source denominator
- * @param max the maximum allowed for dst_num & dst_den
- * @return 1 if exact, 0 otherwise
- */
-int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max);
-
-/**
- * Multiplies two rationals.
- * @param b first rational
- * @param c second rational
- * @return b*c
- */
-AVRational av_mul_q(AVRational b, AVRational c) av_const;
-
-/**
- * Divides one rational by another.
- * @param b first rational
- * @param c second rational
- * @return b/c
- */
-AVRational av_div_q(AVRational b, AVRational c) av_const;
-
-/**
- * Adds two rationals.
- * @param b first rational
- * @param c second rational
- * @return b+c
- */
-AVRational av_add_q(AVRational b, AVRational c) av_const;
-
-/**
- * Subtracts one rational from another.
- * @param b first rational
- * @param c second rational
- * @return b-c
- */
-AVRational av_sub_q(AVRational b, AVRational c) av_const;
-
-/**
- * Converts a double precision floating point number to a rational.
- * @param d double to convert
- * @param max the maximum allowed numerator and denominator
- * @return (AVRational) d
- */
-AVRational av_d2q(double d, int max) av_const;
-
-/**
- * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer
- * than q1, 0 if they have the same distance.
- */
-int av_nearer_q(AVRational q, AVRational q1, AVRational q2);
-
-/**
- * Finds the nearest value in q_list to q.
- * @param q_list an array of rationals terminated by {0, 0}
- * @return the index of the nearest value found in the array
- */
-int av_find_nearest_q_idx(AVRational q, const AVRational* q_list);
-
-#endif /* AVUTIL_RATIONAL_H */
+++ /dev/null
-/*
- * RC4 encryption/decryption/pseudo-random number generator
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_RC4_H
-#define AVUTIL_RC4_H
-
-#include <stdint.h>
-
-struct AVRC4 {
- uint8_t state[256];
- int x, y;
-};
-
-/**
- * \brief Initializes an AVRC4 context.
- *
- * \param key_bits must be a multiple of 8
- * \param decrypt 0 for encryption, 1 for decryption, currently has no effect
- */
-int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * \brief Encrypts / decrypts using the RC4 algorithm.
- *
- * \param count number of bytes
- * \param dst destination array, can be equal to src
- * \param src source array, can be equal to dst, may be NULL
- * \param iv not (yet) used for RC4, should be NULL
- * \param decrypt 0 for encryption, 1 for decryption, not (yet) used
- */
-void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-#endif /* AVUTIL_RC4_H */
+++ /dev/null
-/*
- * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_SHA_H
-#define AVUTIL_SHA_H
-
-#include <stdint.h>
-
-extern const int av_sha_size;
-
-struct AVSHA;
-
-/**
- * Initializes SHA-1 or SHA-2 hashing.
- *
- * @param context pointer to the function context (of size av_sha_size)
- * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits)
- * @return zero if initialization succeeded, -1 otherwise
- */
-int av_sha_init(struct AVSHA* context, int bits);
-
-/**
- * Updates hash value.
- *
- * @param context hash function context
- * @param data input data to update hash with
- * @param len input data length
- */
-void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len);
-
-/**
- * Finishes hashing and output digest value.
- *
- * @param context hash function context
- * @param digest buffer where output digest value is stored
- */
-void av_sha_final(struct AVSHA* context, uint8_t *digest);
-
-#endif /* AVUTIL_SHA_H */
+++ /dev/null
-/*
- * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_SHA1_H
-#define AVUTIL_SHA1_H
-
-#include <stdint.h>
-
-extern const int av_sha1_size;
-
-struct AVSHA1;
-
-/**
- * Initializes SHA-1 hashing.
- *
- * @param context pointer to the function context (of size av_sha_size)
- * @deprecated use av_sha_init() instead
- */
-void av_sha1_init(struct AVSHA1* context);
-
-/**
- * Updates hash value.
- *
- * @param context hash function context
- * @param data input data to update hash with
- * @param len input data length
- * @deprecated use av_sha_update() instead
- */
-void av_sha1_update(struct AVSHA1* context, const uint8_t* data, unsigned int len);
-
-/**
- * Finishes hashing and output digest value.
- *
- * @param context hash function context
- * @param digest buffer where output digest value is stored
- * @deprecated use av_sha_final() instead
- */
-void av_sha1_final(struct AVSHA1* context, uint8_t digest[20]);
-
-#endif /* AVUTIL_SHA1_H */
+++ /dev/null
-/*
- * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_SOFTFLOAT_H
-#define AVUTIL_SOFTFLOAT_H
-
-#include <stdint.h>
-#include "common.h"
-
-#define MIN_EXP -126
-#define MAX_EXP 126
-#define ONE_BITS 29
-
-typedef struct SoftFloat{
- int32_t exp;
- int32_t mant;
-}SoftFloat;
-
-static av_const SoftFloat av_normalize_sf(SoftFloat a){
- if(a.mant){
-#if 1
- while((a.mant + 0x20000000U)<0x40000000U){
- a.mant += a.mant;
- a.exp -= 1;
- }
-#else
- int s=ONE_BITS + 1 - av_log2(a.mant ^ (a.mant<<1));
- a.exp -= s;
- a.mant <<= s;
-#endif
- if(a.exp < MIN_EXP){
- a.exp = MIN_EXP;
- a.mant= 0;
- }
- }else{
- a.exp= MIN_EXP;
- }
- return a;
-}
-
-static inline av_const SoftFloat av_normalize1_sf(SoftFloat a){
-#if 1
- if(a.mant + 0x40000000 < 0){
- a.exp++;
- a.mant>>=1;
- }
- return a;
-#elif 1
- int t= a.mant + 0x40000000 < 0;
- return (SoftFloat){a.exp+t, a.mant>>t};
-#else
- int t= (a.mant + 0x40000000U)>>31;
- return (SoftFloat){a.exp+t, a.mant>>t};
-#endif
-}
-
-/**
- * @return Will not be more denormalized than a+b. So if either input is
- * normalized, then the output will not be worse then the other input.
- * If both are normalized, then the output will be normalized.
- */
-static inline av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b){
- a.exp += b.exp;
- a.mant = (a.mant * (int64_t)b.mant) >> ONE_BITS;
- return av_normalize1_sf(a);
-}
-
-/**
- * b has to be normalized and not zero.
- * @return Will not be more denormalized than a.
- */
-static av_const SoftFloat av_div_sf(SoftFloat a, SoftFloat b){
- a.exp -= b.exp+1;
- a.mant = ((int64_t)a.mant<<(ONE_BITS+1)) / b.mant;
- return av_normalize1_sf(a);
-}
-
-static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){
- int t= a.exp - b.exp;
- if(t<0) return (a.mant >> (-t)) - b.mant ;
- else return a.mant - (b.mant >> t);
-}
-
-static inline av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b){
- int t= a.exp - b.exp;
- if(t<0) return av_normalize1_sf((SoftFloat){b.exp, b.mant + (a.mant >> (-t))});
- else return av_normalize1_sf((SoftFloat){a.exp, a.mant + (b.mant >> t )});
-}
-
-static inline av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b){
- return av_add_sf(a, (SoftFloat){b.exp, -b.mant});
-}
-
-//FIXME sqrt, log, exp, pow, sin, cos
-
-static inline av_const SoftFloat av_int2sf(int v, int frac_bits){
- return av_normalize_sf((SoftFloat){ONE_BITS-frac_bits, v});
-}
-
-/**
- * Rounding is to -inf.
- */
-static inline av_const int av_sf2int(SoftFloat v, int frac_bits){
- v.exp += frac_bits - ONE_BITS;
- if(v.exp >= 0) return v.mant << v.exp ;
- else return v.mant >>(-v.exp);
-}
-
-#endif /* AVUTIL_SOFTFLOAT_H */
+++ /dev/null
-/**
- * @file
- * high precision timer, useful to profile code
- *
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_TIMER_H
-#define AVUTIL_TIMER_H
-
-#include <stdlib.h>
-#include <stdint.h>
-#include "config.h"
-
-#if ARCH_ARM
-# include "arm/timer.h"
-#elif ARCH_BFIN
-# include "bfin/timer.h"
-#elif ARCH_PPC
-# include "ppc/timer.h"
-#elif ARCH_X86
-# include "x86/timer.h"
-#endif
-
-#if !defined(AV_READ_TIME) && HAVE_GETHRTIME
-# define AV_READ_TIME gethrtime
-#endif
-
-#ifdef AV_READ_TIME
-#define START_TIMER \
-uint64_t tend;\
-uint64_t tstart= AV_READ_TIME();\
-
-#define STOP_TIMER(id) \
-tend= AV_READ_TIME();\
-{\
- static uint64_t tsum=0;\
- static int tcount=0;\
- static int tskip_count=0;\
- if(tcount<2 || tend - tstart < 8*tsum/tcount || tend - tstart < 2000){\
- tsum+= tend - tstart;\
- tcount++;\
- }else\
- tskip_count++;\
- if(((tcount+tskip_count)&(tcount+tskip_count-1))==0){\
- av_log(NULL, AV_LOG_ERROR, "%"PRIu64" dezicycles in %s, %d runs, %d skips\n",\
- tsum*10/tcount, id, tcount, tskip_count);\
- }\
-}
-#else
-#define START_TIMER
-#define STOP_TIMER(id) {}
-#endif
-
-#endif /* AVUTIL_TIMER_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * A tree container.
- * Insertion, removal, finding equal, largest which is smaller than and
- * smallest which is larger than, all have O(log n) worst case complexity.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_TREE_H
-#define AVUTIL_TREE_H
-
-struct AVTreeNode;
-extern const int av_tree_node_size;
-
-/**
- * Finds an element.
- * @param root a pointer to the root node of the tree
- * @param next If next is not NULL, then next[0] will contain the previous
- * element and next[1] the next element. If either does not exist,
- * then the corresponding entry in next is unchanged.
- * @return An element with cmp(key, elem)==0 or NULL if no such element exists in
- * the tree.
- */
-void *av_tree_find(const struct AVTreeNode *root, void *key, int (*cmp)(void *key, const void *b), void *next[2]);
-
-/**
- * Inserts or removes an element.
- * If *next is NULL, then the supplied element will be removed if it exists.
- * If *next is not NULL, then the supplied element will be inserted, unless
- * it already exists in the tree.
- * @param rootp A pointer to a pointer to the root node of the tree; note that
- * the root node can change during insertions, this is required
- * to keep the tree balanced.
- * @param next Used to allocate and free AVTreeNodes. For insertion the user
- * must set it to an allocated and zeroed object of at least
- * av_tree_node_size bytes size. av_tree_insert() will set it to
- * NULL if it has been consumed.
- * For deleting elements *next is set to NULL by the user and
- * av_tree_node_size() will set it to the AVTreeNode which was
- * used for the removed element.
- * This allows the use of flat arrays, which have
- * lower overhead compared to many malloced elements.
- * You might want to define a function like:
- * @code
- * void *tree_insert(struct AVTreeNode **rootp, void *key, int (*cmp)(void *key, const void *b), AVTreeNode **next){
- * if(!*next) *next= av_mallocz(av_tree_node_size);
- * return av_tree_insert(rootp, key, cmp, next);
- * }
- * void *tree_remove(struct AVTreeNode **rootp, void *key, int (*cmp)(void *key, const void *b, AVTreeNode **next)){
- * if(*next) av_freep(next);
- * return av_tree_insert(rootp, key, cmp, next);
- * }
- * @endcode
- * @return If no insertion happened, the found element; if an insertion or
- * removal happened, then either key or NULL will be returned.
- * Which one it is depends on the tree state and the implementation. You
- * should make no assumptions that it's one or the other in the code.
- */
-void *av_tree_insert(struct AVTreeNode **rootp, void *key, int (*cmp)(void *key, const void *b), struct AVTreeNode **next);
-void av_tree_destroy(struct AVTreeNode *t);
-
-/**
- * Applies enu(opaque, &elem) to all the elements in the tree in a given range.
- *
- * @param cmp a comparison function that returns < 0 for a element below the
- * range, > 0 for a element above the range and == 0 for a
- * element inside the range
- *
- * @note The cmp function should use the same ordering used to construct the
- * tree.
- */
-void av_tree_enumerate(struct AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem));
-
-
-#endif /* AVUTIL_TREE_H */
+++ /dev/null
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVUTIL_X86_CPU_H
-#define AVUTIL_X86_CPU_H
-
-#include <stdint.h>
-#include "config.h"
-
-#if ARCH_X86_64
-# define REG_a "rax"
-# define REG_b "rbx"
-# define REG_c "rcx"
-# define REG_d "rdx"
-# define REG_D "rdi"
-# define REG_S "rsi"
-# define PTR_SIZE "8"
-typedef int64_t x86_reg;
-
-# define REG_SP "rsp"
-# define REG_BP "rbp"
-# define REGBP rbp
-# define REGa rax
-# define REGb rbx
-# define REGc rcx
-# define REGd rdx
-# define REGSP rsp
-
-#elif ARCH_X86_32
-
-# define REG_a "eax"
-# define REG_b "ebx"
-# define REG_c "ecx"
-# define REG_d "edx"
-# define REG_D "edi"
-# define REG_S "esi"
-# define PTR_SIZE "4"
-typedef int32_t x86_reg;
-
-# define REG_SP "esp"
-# define REG_BP "ebp"
-# define REGBP ebp
-# define REGa eax
-# define REGb ebx
-# define REGc ecx
-# define REGd edx
-# define REGSP esp
-#else
-typedef int x86_reg;
-#endif
-
-#define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
-#define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE))
-
-#if ARCH_X86_64 && defined(PIC)
-# define BROKEN_RELOCATIONS 1
-#endif
-
-#endif /* AVUTIL_X86_CPU_H */
+++ /dev/null
-/*
- * software RGB to RGB converter
- * pluralize by Software PAL8 to RGB converter
- * Software YUV to YUV converter
- * Software YUV to RGB converter
- * Written by Nick Kurshev.
- * YUV & runtime CPU stuff by Michael (michaelni@gmx.at)
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef SWSCALE_RGB2RGB_H
-#define SWSCALE_RGB2RGB_H
-
-#include <inttypes.h>
-
-#include "libswscale/swscale.h"
-#include "libavutil/avutil.h"
-
-/* A full collection of RGB to RGB(BGR) converters */
-extern void (*rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32to16) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32to15) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb15to16) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb15tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb15to32) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb16to15) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb16tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb16to32) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb24to16) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb24to15) (const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
-extern void (*rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
-
-void rgb24to32 (const uint8_t *src, uint8_t *dst, long src_size);
-void rgb32to24 (const uint8_t *src, uint8_t *dst, long src_size);
-void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
-void rgb16to24 (const uint8_t *src, uint8_t *dst, long src_size);
-void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
-void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
-void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
-void rgb15to24 (const uint8_t *src, uint8_t *dst, long src_size);
-void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
-void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
-void bgr8torgb8 (const uint8_t *src, uint8_t *dst, long src_size);
-
-void shuffle_bytes_0321(const uint8_t *src, uint8_t *dst, long src_size);
-void shuffle_bytes_1230(const uint8_t *src, uint8_t *dst, long src_size);
-void shuffle_bytes_2103(const uint8_t *src, uint8_t *dst, long src_size);
-void shuffle_bytes_3012(const uint8_t *src, uint8_t *dst, long src_size);
-void shuffle_bytes_3210(const uint8_t *src, uint8_t *dst, long src_size);
-
-#if LIBSWSCALE_VERSION_MAJOR < 1
-/* deprecated, use the public versions in swscale.h */
-attribute_deprecated void palette8topacked32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-attribute_deprecated void palette8topacked24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-
-/* totally deprecated, please fix code that uses this */
-attribute_deprecated void palette8torgb16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-attribute_deprecated void palette8tobgr16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-#endif
-
-/**
- * Height should be a multiple of 2 and width should be a multiple of 16.
- * (If this is a problem for anyone then tell me, and I will fix it.)
- * Chrominance data is only taken from every second line, others are ignored.
- * FIXME: Write high quality version.
- */
-//void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
-
-/**
- * Height should be a multiple of 2 and width should be a multiple of 16.
- * (If this is a problem for anyone then tell me, and I will fix it.)
- */
-extern void (*yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
- long width, long height,
- long lumStride, long chromStride, long dstStride);
-
-/**
- * Width should be a multiple of 16.
- */
-extern void (*yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
- long width, long height,
- long lumStride, long chromStride, long dstStride);
-
-/**
- * Height should be a multiple of 2 and width should be a multiple of 16.
- * (If this is a problem for anyone then tell me, and I will fix it.)
- */
-extern void (*yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-
-/**
- * Height should be a multiple of 2 and width should be a multiple of 16.
- * (If this is a problem for anyone then tell me, and I will fix it.)
- */
-extern void (*yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
- long width, long height,
- long lumStride, long chromStride, long dstStride);
-
-/**
- * Width should be a multiple of 16.
- */
-extern void (*yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
- long width, long height,
- long lumStride, long chromStride, long dstStride);
-
-/**
- * Height should be a multiple of 2 and width should be a multiple of 2.
- * (If this is a problem for anyone then tell me, and I will fix it.)
- * Chrominance data is only taken from every second line, others are ignored.
- * FIXME: Write high quality version.
- */
-extern void (*rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-extern void (*planar2x)(const uint8_t *src, uint8_t *dst, long width, long height,
- long srcStride, long dstStride);
-
-extern void (*interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst,
- long width, long height, long src1Stride,
- long src2Stride, long dstStride);
-
-extern void (*vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
- uint8_t *dst1, uint8_t *dst2,
- long width, long height,
- long srcStride1, long srcStride2,
- long dstStride1, long dstStride2);
-
-extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3,
- uint8_t *dst,
- long width, long height,
- long srcStride1, long srcStride2,
- long srcStride3, long dstStride);
-
-
-extern void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-extern void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-extern void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-extern void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
- long width, long height,
- long lumStride, long chromStride, long srcStride);
-
-void sws_rgb2rgb_init(int flags);
-
-#endif /* SWSCALE_RGB2RGB_H */
+++ /dev/null
-/*
- * Copyright (C) 2001-2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef SWSCALE_SWSCALE_H
-#define SWSCALE_SWSCALE_H
-
-/**
- * @file
- * @brief
- * external api for the swscale stuff
- */
-
-#include "libavutil/avutil.h"
-
-#define LIBSWSCALE_VERSION_MAJOR 0
-#define LIBSWSCALE_VERSION_MINOR 11
-#define LIBSWSCALE_VERSION_MICRO 0
-
-#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
- LIBSWSCALE_VERSION_MINOR, \
- LIBSWSCALE_VERSION_MICRO)
-#define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \
- LIBSWSCALE_VERSION_MINOR, \
- LIBSWSCALE_VERSION_MICRO)
-#define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT
-
-#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
-
-/**
- * Returns the LIBSWSCALE_VERSION_INT constant.
- */
-unsigned swscale_version(void);
-
-/**
- * Returns the libswscale build-time configuration.
- */
-const char *swscale_configuration(void);
-
-/**
- * Returns the libswscale license.
- */
-const char *swscale_license(void);
-
-/* values for the flags, the stuff on the command line is different */
-#define SWS_FAST_BILINEAR 1
-#define SWS_BILINEAR 2
-#define SWS_BICUBIC 4
-#define SWS_X 8
-#define SWS_POINT 0x10
-#define SWS_AREA 0x20
-#define SWS_BICUBLIN 0x40
-#define SWS_GAUSS 0x80
-#define SWS_SINC 0x100
-#define SWS_LANCZOS 0x200
-#define SWS_SPLINE 0x400
-
-#define SWS_SRC_V_CHR_DROP_MASK 0x30000
-#define SWS_SRC_V_CHR_DROP_SHIFT 16
-
-#define SWS_PARAM_DEFAULT 123456
-
-#define SWS_PRINT_INFO 0x1000
-
-//the following 3 flags are not completely implemented
-//internal chrominace subsampling info
-#define SWS_FULL_CHR_H_INT 0x2000
-//input subsampling info
-#define SWS_FULL_CHR_H_INP 0x4000
-#define SWS_DIRECT_BGR 0x8000
-#define SWS_ACCURATE_RND 0x40000
-#define SWS_BITEXACT 0x80000
-
-#define SWS_CPU_CAPS_MMX 0x80000000
-#define SWS_CPU_CAPS_MMX2 0x20000000
-#define SWS_CPU_CAPS_3DNOW 0x40000000
-#define SWS_CPU_CAPS_ALTIVEC 0x10000000
-#define SWS_CPU_CAPS_BFIN 0x01000000
-
-#define SWS_MAX_REDUCE_CUTOFF 0.002
-
-#define SWS_CS_ITU709 1
-#define SWS_CS_FCC 4
-#define SWS_CS_ITU601 5
-#define SWS_CS_ITU624 5
-#define SWS_CS_SMPTE170M 5
-#define SWS_CS_SMPTE240M 7
-#define SWS_CS_DEFAULT 5
-
-/**
- * Returns a pointer to yuv<->rgb coefficients for the given colorspace
- * suitable for sws_setColorspaceDetails().
- *
- * @param colorspace One of the SWS_CS_* macros. If invalid,
- * SWS_CS_DEFAULT is used.
- */
-const int *sws_getCoefficients(int colorspace);
-
-
-// when used for filters they must have an odd number of elements
-// coeffs cannot be shared between vectors
-typedef struct {
- double *coeff; ///< pointer to the list of coefficients
- int length; ///< number of coefficients in the vector
-} SwsVector;
-
-// vectors can be shared
-typedef struct {
- SwsVector *lumH;
- SwsVector *lumV;
- SwsVector *chrH;
- SwsVector *chrV;
-} SwsFilter;
-
-struct SwsContext;
-
-/**
- * Returns a positive value if pix_fmt is a supported input format, 0
- * otherwise.
- */
-int sws_isSupportedInput(enum PixelFormat pix_fmt);
-
-/**
- * Returns a positive value if pix_fmt is a supported output format, 0
- * otherwise.
- */
-int sws_isSupportedOutput(enum PixelFormat pix_fmt);
-
-/**
- * Frees the swscaler context swsContext.
- * If swsContext is NULL, then does nothing.
- */
-void sws_freeContext(struct SwsContext *swsContext);
-
-/**
- * Allocates and returns a SwsContext. You need it to perform
- * scaling/conversion operations using sws_scale().
- *
- * @param srcW the width of the source image
- * @param srcH the height of the source image
- * @param srcFormat the source image format
- * @param dstW the width of the destination image
- * @param dstH the height of the destination image
- * @param dstFormat the destination image format
- * @param flags specify which algorithm and options to use for rescaling
- * @return a pointer to an allocated context, or NULL in case of error
- */
-struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
- int dstW, int dstH, enum PixelFormat dstFormat,
- int flags, SwsFilter *srcFilter,
- SwsFilter *dstFilter, const double *param);
-
-/**
- * Scales the image slice in srcSlice and puts the resulting scaled
- * slice in the image in dst. A slice is a sequence of consecutive
- * rows in an image.
- *
- * Slices have to be provided in sequential order, either in
- * top-bottom or bottom-top order. If slices are provided in
- * non-sequential order the behavior of the function is undefined.
- *
- * @param context the scaling context previously created with
- * sws_getContext()
- * @param srcSlice the array containing the pointers to the planes of
- * the source slice
- * @param srcStride the array containing the strides for each plane of
- * the source image
- * @param srcSliceY the position in the source image of the slice to
- * process, that is the number (counted starting from
- * zero) in the image of the first row of the slice
- * @param srcSliceH the height of the source slice, that is the number
- * of rows in the slice
- * @param dst the array containing the pointers to the planes of
- * the destination image
- * @param dstStride the array containing the strides for each plane of
- * the destination image
- * @return the height of the output slice
- */
-int sws_scale(struct SwsContext *context, const uint8_t* const srcSlice[], const int srcStride[],
- int srcSliceY, int srcSliceH, uint8_t* const dst[], const int dstStride[]);
-#if LIBSWSCALE_VERSION_MAJOR < 1
-/**
- * @deprecated Use sws_scale() instead.
- */
-int sws_scale_ordered(struct SwsContext *context, const uint8_t* const src[],
- int srcStride[], int srcSliceY, int srcSliceH,
- uint8_t* dst[], int dstStride[]) attribute_deprecated;
-#endif
-
-/**
- * @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
- * @param fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
- * @return -1 if not supported
- */
-int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
- int srcRange, const int table[4], int dstRange,
- int brightness, int contrast, int saturation);
-
-/**
- * @return -1 if not supported
- */
-int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table,
- int *srcRange, int **table, int *dstRange,
- int *brightness, int *contrast, int *saturation);
-
-/**
- * Allocates and returns an uninitialized vector with length coefficients.
- */
-SwsVector *sws_allocVec(int length);
-
-/**
- * Returns a normalized Gaussian curve used to filter stuff
- * quality=3 is high quality, lower is lower quality.
- */
-SwsVector *sws_getGaussianVec(double variance, double quality);
-
-/**
- * Allocates and returns a vector with length coefficients, all
- * with the same value c.
- */
-SwsVector *sws_getConstVec(double c, int length);
-
-/**
- * Allocates and returns a vector with just one coefficient, with
- * value 1.0.
- */
-SwsVector *sws_getIdentityVec(void);
-
-/**
- * Scales all the coefficients of a by the scalar value.
- */
-void sws_scaleVec(SwsVector *a, double scalar);
-
-/**
- * Scales all the coefficients of a so that their sum equals height.
- */
-void sws_normalizeVec(SwsVector *a, double height);
-void sws_convVec(SwsVector *a, SwsVector *b);
-void sws_addVec(SwsVector *a, SwsVector *b);
-void sws_subVec(SwsVector *a, SwsVector *b);
-void sws_shiftVec(SwsVector *a, int shift);
-
-/**
- * Allocates and returns a clone of the vector a, that is a vector
- * with the same coefficients as a.
- */
-SwsVector *sws_cloneVec(SwsVector *a);
-
-#if LIBSWSCALE_VERSION_MAJOR < 1
-/**
- * @deprecated Use sws_printVec2() instead.
- */
-attribute_deprecated void sws_printVec(SwsVector *a);
-#endif
-
-/**
- * Prints with av_log() a textual representation of the vector a
- * if log_level <= av_log_level.
- */
-void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level);
-
-void sws_freeVec(SwsVector *a);
-
-SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
- float lumaSharpen, float chromaSharpen,
- float chromaHShift, float chromaVShift,
- int verbose);
-void sws_freeFilter(SwsFilter *filter);
-
-/**
- * Checks if context can be reused, otherwise reallocates a new
- * one.
- *
- * If context is NULL, just calls sws_getContext() to get a new
- * context. Otherwise, checks if the parameters are the ones already
- * saved in context. If that is the case, returns the current
- * context. Otherwise, frees context and gets a new context with
- * the new parameters.
- *
- * Be warned that srcFilter and dstFilter are not checked, they
- * are assumed to remain the same.
- */
-struct SwsContext *sws_getCachedContext(struct SwsContext *context,
- int srcW, int srcH, enum PixelFormat srcFormat,
- int dstW, int dstH, enum PixelFormat dstFormat,
- int flags, SwsFilter *srcFilter,
- SwsFilter *dstFilter, const double *param);
-
-/**
- * Converts an 8bit paletted frame into a frame with a color depth of 32-bits.
- *
- * The output frame will have the same packed format as the palette.
- *
- * @param src source frame buffer
- * @param dst destination frame buffer
- * @param num_pixels number of pixels to convert
- * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
- */
-void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-
-/**
- * Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
- *
- * With the palette format "ABCD", the destination frame ends up with the format "ABC".
- *
- * @param src source frame buffer
- * @param dst destination frame buffer
- * @param num_pixels number of pixels to convert
- * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
- */
-void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
-
-
-#endif /* SWSCALE_SWSCALE_H */
+++ /dev/null
-/*
- * Copyright (C) 2001-2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef SWSCALE_SWSCALE_INTERNAL_H
-#define SWSCALE_SWSCALE_INTERNAL_H
-
-#include "config.h"
-
-#if HAVE_ALTIVEC_H
-#include <altivec.h>
-#endif
-
-#include "libavutil/avutil.h"
-
-#define STR(s) AV_TOSTRING(s) //AV_STRINGIFY is too long
-
-#define MAX_FILTER_SIZE 256
-
-#if ARCH_X86
-#define VOFW 5120
-#else
-#define VOFW 2048 // faster on PPC and not tested on others
-#endif
-
-#define VOF (VOFW*2)
-
-#if HAVE_BIGENDIAN
-#define ALT32_CORR (-1)
-#else
-#define ALT32_CORR 1
-#endif
-
-#if ARCH_X86_64
-# define APCK_PTR2 8
-# define APCK_COEF 16
-# define APCK_SIZE 24
-#else
-# define APCK_PTR2 4
-# define APCK_COEF 8
-# define APCK_SIZE 16
-#endif
-
-struct SwsContext;
-
-typedef int (*SwsFunc)(struct SwsContext *context, const uint8_t* src[],
- int srcStride[], int srcSliceY, int srcSliceH,
- uint8_t* dst[], int dstStride[]);
-
-/* This struct should be aligned on at least a 32-byte boundary. */
-typedef struct SwsContext {
- /**
- * info on struct for av_log
- */
- const AVClass *av_class;
-
- /**
- * Note that src, dst, srcStride, dstStride will be copied in the
- * sws_scale() wrapper so they can be freely modified here.
- */
- SwsFunc swScale;
- int srcW; ///< Width of source luma/alpha planes.
- int srcH; ///< Height of source luma/alpha planes.
- int dstH; ///< Height of destination luma/alpha planes.
- int chrSrcW; ///< Width of source chroma planes.
- int chrSrcH; ///< Height of source chroma planes.
- int chrDstW; ///< Width of destination chroma planes.
- int chrDstH; ///< Height of destination chroma planes.
- int lumXInc, chrXInc;
- int lumYInc, chrYInc;
- enum PixelFormat dstFormat; ///< Destination pixel format.
- enum PixelFormat srcFormat; ///< Source pixel format.
- int dstFormatBpp; ///< Number of bits per pixel of the destination pixel format.
- int srcFormatBpp; ///< Number of bits per pixel of the source pixel format.
- int chrSrcHSubSample; ///< Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in source image.
- int chrSrcVSubSample; ///< Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in source image.
- int chrDstHSubSample; ///< Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in destination image.
- int chrDstVSubSample; ///< Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in destination image.
- int vChrDrop; ///< Binary logarithm of extra vertical subsampling factor in source image chroma planes specified by user.
- int sliceDir; ///< Direction that slices are fed to the scaler (1 = top-to-bottom, -1 = bottom-to-top).
- double param[2]; ///< Input parameters for scaling algorithms that need them.
-
- uint32_t pal_yuv[256];
- uint32_t pal_rgb[256];
-
- /**
- * @name Scaled horizontal lines ring buffer.
- * The horizontal scaler keeps just enough scaled lines in a ring buffer
- * so they may be passed to the vertical scaler. The pointers to the
- * allocated buffers for each line are duplicated in sequence in the ring
- * buffer to simplify indexing and avoid wrapping around between lines
- * inside the vertical scaler code. The wrapping is done before the
- * vertical scaler is called.
- */
- //@{
- int16_t **lumPixBuf; ///< Ring buffer for scaled horizontal luma plane lines to be fed to the vertical scaler.
- int16_t **chrPixBuf; ///< Ring buffer for scaled horizontal chroma plane lines to be fed to the vertical scaler.
- int16_t **alpPixBuf; ///< Ring buffer for scaled horizontal alpha plane lines to be fed to the vertical scaler.
- int vLumBufSize; ///< Number of vertical luma/alpha lines allocated in the ring buffer.
- int vChrBufSize; ///< Number of vertical chroma lines allocated in the ring buffer.
- int lastInLumBuf; ///< Last scaled horizontal luma/alpha line from source in the ring buffer.
- int lastInChrBuf; ///< Last scaled horizontal chroma line from source in the ring buffer.
- int lumBufIndex; ///< Index in ring buffer of the last scaled horizontal luma/alpha line from source.
- int chrBufIndex; ///< Index in ring buffer of the last scaled horizontal chroma line from source.
- //@}
-
- uint8_t formatConvBuffer[VOF]; //FIXME dynamic allocation, but we have to change a lot of code for this to be useful
-
- /**
- * @name Horizontal and vertical filters.
- * To better understand the following fields, here is a pseudo-code of
- * their usage in filtering a horizontal line:
- * @code
- * for (i = 0; i < width; i++) {
- * dst[i] = 0;
- * for (j = 0; j < filterSize; j++)
- * dst[i] += src[ filterPos[i] + j ] * filter[ filterSize * i + j ];
- * dst[i] >>= FRAC_BITS; // The actual implementation is fixed-point.
- * }
- * @endcode
- */
- //@{
- int16_t *hLumFilter; ///< Array of horizontal filter coefficients for luma/alpha planes.
- int16_t *hChrFilter; ///< Array of horizontal filter coefficients for chroma planes.
- int16_t *vLumFilter; ///< Array of vertical filter coefficients for luma/alpha planes.
- int16_t *vChrFilter; ///< Array of vertical filter coefficients for chroma planes.
- int16_t *hLumFilterPos; ///< Array of horizontal filter starting positions for each dst[i] for luma/alpha planes.
- int16_t *hChrFilterPos; ///< Array of horizontal filter starting positions for each dst[i] for chroma planes.
- int16_t *vLumFilterPos; ///< Array of vertical filter starting positions for each dst[i] for luma/alpha planes.
- int16_t *vChrFilterPos; ///< Array of vertical filter starting positions for each dst[i] for chroma planes.
- int hLumFilterSize; ///< Horizontal filter size for luma/alpha pixels.
- int hChrFilterSize; ///< Horizontal filter size for chroma pixels.
- int vLumFilterSize; ///< Vertical filter size for luma/alpha pixels.
- int vChrFilterSize; ///< Vertical filter size for chroma pixels.
- //@}
-
- int lumMmx2FilterCodeSize; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code size for luma/alpha planes.
- int chrMmx2FilterCodeSize; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code size for chroma planes.
- uint8_t *lumMmx2FilterCode; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code for luma/alpha planes.
- uint8_t *chrMmx2FilterCode; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code for chroma planes.
-
- int canMMX2BeUsed;
-
- int dstY; ///< Last destination vertical line output from last slice.
- int flags; ///< Flags passed by the user to select scaler algorithm, optimizations, subsampling, etc...
- void * yuvTable; // pointer to the yuv->rgb table start so it can be freed()
- uint8_t * table_rV[256];
- uint8_t * table_gU[256];
- int table_gV[256];
- uint8_t * table_bU[256];
-
- //Colorspace stuff
- int contrast, brightness, saturation; // for sws_getColorspaceDetails
- int srcColorspaceTable[4];
- int dstColorspaceTable[4];
- int srcRange; ///< 0 = MPG YUV range, 1 = JPG YUV range (source image).
- int dstRange; ///< 0 = MPG YUV range, 1 = JPG YUV range (destination image).
- int yuv2rgb_y_offset;
- int yuv2rgb_y_coeff;
- int yuv2rgb_v2r_coeff;
- int yuv2rgb_v2g_coeff;
- int yuv2rgb_u2g_coeff;
- int yuv2rgb_u2b_coeff;
-
-#define RED_DITHER "0*8"
-#define GREEN_DITHER "1*8"
-#define BLUE_DITHER "2*8"
-#define Y_COEFF "3*8"
-#define VR_COEFF "4*8"
-#define UB_COEFF "5*8"
-#define VG_COEFF "6*8"
-#define UG_COEFF "7*8"
-#define Y_OFFSET "8*8"
-#define U_OFFSET "9*8"
-#define V_OFFSET "10*8"
-#define LUM_MMX_FILTER_OFFSET "11*8"
-#define CHR_MMX_FILTER_OFFSET "11*8+4*4*256"
-#define DSTW_OFFSET "11*8+4*4*256*2" //do not change, it is hardcoded in the ASM
-#define ESP_OFFSET "11*8+4*4*256*2+8"
-#define VROUNDER_OFFSET "11*8+4*4*256*2+16"
-#define U_TEMP "11*8+4*4*256*2+24"
-#define V_TEMP "11*8+4*4*256*2+32"
-#define Y_TEMP "11*8+4*4*256*2+40"
-#define ALP_MMX_FILTER_OFFSET "11*8+4*4*256*2+48"
-
- DECLARE_ALIGNED(8, uint64_t, redDither);
- DECLARE_ALIGNED(8, uint64_t, greenDither);
- DECLARE_ALIGNED(8, uint64_t, blueDither);
-
- DECLARE_ALIGNED(8, uint64_t, yCoeff);
- DECLARE_ALIGNED(8, uint64_t, vrCoeff);
- DECLARE_ALIGNED(8, uint64_t, ubCoeff);
- DECLARE_ALIGNED(8, uint64_t, vgCoeff);
- DECLARE_ALIGNED(8, uint64_t, ugCoeff);
- DECLARE_ALIGNED(8, uint64_t, yOffset);
- DECLARE_ALIGNED(8, uint64_t, uOffset);
- DECLARE_ALIGNED(8, uint64_t, vOffset);
- int32_t lumMmxFilter[4*MAX_FILTER_SIZE];
- int32_t chrMmxFilter[4*MAX_FILTER_SIZE];
- int dstW; ///< Width of destination luma/alpha planes.
- DECLARE_ALIGNED(8, uint64_t, esp);
- DECLARE_ALIGNED(8, uint64_t, vRounder);
- DECLARE_ALIGNED(8, uint64_t, u_temp);
- DECLARE_ALIGNED(8, uint64_t, v_temp);
- DECLARE_ALIGNED(8, uint64_t, y_temp);
- int32_t alpMmxFilter[4*MAX_FILTER_SIZE];
-
-#if HAVE_ALTIVEC
- vector signed short CY;
- vector signed short CRV;
- vector signed short CBU;
- vector signed short CGU;
- vector signed short CGV;
- vector signed short OY;
- vector unsigned short CSHIFT;
- vector signed short *vYCoeffsBank, *vCCoeffsBank;
-#endif
-
-#if ARCH_BFIN
- DECLARE_ALIGNED(4, uint32_t, oy);
- DECLARE_ALIGNED(4, uint32_t, oc);
- DECLARE_ALIGNED(4, uint32_t, zero);
- DECLARE_ALIGNED(4, uint32_t, cy);
- DECLARE_ALIGNED(4, uint32_t, crv);
- DECLARE_ALIGNED(4, uint32_t, rmask);
- DECLARE_ALIGNED(4, uint32_t, cbu);
- DECLARE_ALIGNED(4, uint32_t, bmask);
- DECLARE_ALIGNED(4, uint32_t, cgu);
- DECLARE_ALIGNED(4, uint32_t, cgv);
- DECLARE_ALIGNED(4, uint32_t, gmask);
-#endif
-
-#if HAVE_VIS
- DECLARE_ALIGNED(8, uint64_t, sparc_coeffs)[10];
-#endif
-
- /* function pointers for swScale() */
- void (*yuv2nv12X )(struct SwsContext *c,
- const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
- const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
- uint8_t *dest, uint8_t *uDest,
- int dstW, int chrDstW, int dstFormat);
- void (*yuv2yuv1 )(struct SwsContext *c,
- const int16_t *lumSrc, const int16_t *chrSrc, const int16_t *alpSrc,
- uint8_t *dest,
- uint8_t *uDest, uint8_t *vDest, uint8_t *aDest,
- long dstW, long chrDstW);
- void (*yuv2yuvX )(struct SwsContext *c,
- const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
- const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
- const int16_t **alpSrc,
- uint8_t *dest,
- uint8_t *uDest, uint8_t *vDest, uint8_t *aDest,
- long dstW, long chrDstW);
- void (*yuv2packed1)(struct SwsContext *c,
- const uint16_t *buf0,
- const uint16_t *uvbuf0, const uint16_t *uvbuf1,
- const uint16_t *abuf0,
- uint8_t *dest,
- int dstW, int uvalpha, int dstFormat, int flags, int y);
- void (*yuv2packed2)(struct SwsContext *c,
- const uint16_t *buf0, const uint16_t *buf1,
- const uint16_t *uvbuf0, const uint16_t *uvbuf1,
- const uint16_t *abuf0, const uint16_t *abuf1,
- uint8_t *dest,
- int dstW, int yalpha, int uvalpha, int y);
- void (*yuv2packedX)(struct SwsContext *c,
- const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
- const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
- const int16_t **alpSrc, uint8_t *dest,
- long dstW, long dstY);
-
- void (*lumToYV12)(uint8_t *dst, const uint8_t *src,
- long width, uint32_t *pal); ///< Unscaled conversion of luma plane to YV12 for horizontal scaler.
- void (*alpToYV12)(uint8_t *dst, const uint8_t *src,
- long width, uint32_t *pal); ///< Unscaled conversion of alpha plane to YV12 for horizontal scaler.
- void (*chrToYV12)(uint8_t *dstU, uint8_t *dstV,
- const uint8_t *src1, const uint8_t *src2,
- long width, uint32_t *pal); ///< Unscaled conversion of chroma planes to YV12 for horizontal scaler.
- void (*hyscale_fast)(struct SwsContext *c,
- int16_t *dst, long dstWidth,
- const uint8_t *src, int srcW, int xInc);
- void (*hcscale_fast)(struct SwsContext *c,
- int16_t *dst, long dstWidth,
- const uint8_t *src1, const uint8_t *src2,
- int srcW, int xInc);
-
- void (*hScale)(int16_t *dst, int dstW, const uint8_t *src, int srcW,
- int xInc, const int16_t *filter, const int16_t *filterPos,
- long filterSize);
-
- void (*lumConvertRange)(uint16_t *dst, int width); ///< Color range conversion function for luma plane if needed.
- void (*chrConvertRange)(uint16_t *dst, int width); ///< Color range conversion function for chroma planes if needed.
-
- int lumSrcOffset; ///< Offset given to luma src pointers passed to horizontal input functions.
- int chrSrcOffset; ///< Offset given to chroma src pointers passed to horizontal input functions.
- int alpSrcOffset; ///< Offset given to alpha src pointers passed to horizontal input functions.
-
- int needs_hcscale; ///< Set if there are chroma planes to be converted.
-
-} SwsContext;
-//FIXME check init (where 0)
-
-SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c);
-int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
- int fullRange, int brightness,
- int contrast, int saturation);
-
-void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4],
- int brightness, int contrast, int saturation);
-SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c);
-SwsFunc ff_yuv2rgb_init_vis(SwsContext *c);
-SwsFunc ff_yuv2rgb_init_mlib(SwsContext *c);
-SwsFunc ff_yuv2rgb_init_altivec(SwsContext *c);
-SwsFunc ff_yuv2rgb_get_func_ptr_bfin(SwsContext *c);
-void ff_bfin_get_unscaled_swscale(SwsContext *c);
-void ff_yuv2packedX_altivec(SwsContext *c,
- const int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize,
- const int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize,
- uint8_t *dest, int dstW, int dstY);
-
-const char *sws_format_name(enum PixelFormat format);
-
-//FIXME replace this with something faster
-#define is16BPS(x) ( \
- (x)==PIX_FMT_GRAY16BE \
- || (x)==PIX_FMT_GRAY16LE \
- || (x)==PIX_FMT_RGB48BE \
- || (x)==PIX_FMT_RGB48LE \
- || (x)==PIX_FMT_YUV420P16LE \
- || (x)==PIX_FMT_YUV422P16LE \
- || (x)==PIX_FMT_YUV444P16LE \
- || (x)==PIX_FMT_YUV420P16BE \
- || (x)==PIX_FMT_YUV422P16BE \
- || (x)==PIX_FMT_YUV444P16BE \
- )
-#define isBE(x) ((x)&1)
-#define isPlanar8YUV(x) ( \
- (x)==PIX_FMT_YUV410P \
- || (x)==PIX_FMT_YUV420P \
- || (x)==PIX_FMT_YUVA420P \
- || (x)==PIX_FMT_YUV411P \
- || (x)==PIX_FMT_YUV422P \
- || (x)==PIX_FMT_YUV444P \
- || (x)==PIX_FMT_YUV440P \
- || (x)==PIX_FMT_NV12 \
- || (x)==PIX_FMT_NV21 \
- )
-#define isPlanarYUV(x) ( \
- isPlanar8YUV(x) \
- || (x)==PIX_FMT_YUV420P16LE \
- || (x)==PIX_FMT_YUV422P16LE \
- || (x)==PIX_FMT_YUV444P16LE \
- || (x)==PIX_FMT_YUV420P16BE \
- || (x)==PIX_FMT_YUV422P16BE \
- || (x)==PIX_FMT_YUV444P16BE \
- )
-#define isYUV(x) ( \
- (x)==PIX_FMT_UYVY422 \
- || (x)==PIX_FMT_YUYV422 \
- || isPlanarYUV(x) \
- )
-#define isGray(x) ( \
- (x)==PIX_FMT_GRAY8 \
- || (x)==PIX_FMT_GRAY16BE \
- || (x)==PIX_FMT_GRAY16LE \
- )
-#define isGray16(x) ( \
- (x)==PIX_FMT_GRAY16BE \
- || (x)==PIX_FMT_GRAY16LE \
- )
-#define isRGBinInt(x) ( \
- (x)==PIX_FMT_RGB48BE \
- || (x)==PIX_FMT_RGB48LE \
- || (x)==PIX_FMT_RGB32 \
- || (x)==PIX_FMT_RGB32_1 \
- || (x)==PIX_FMT_RGB24 \
- || (x)==PIX_FMT_RGB565BE \
- || (x)==PIX_FMT_RGB565LE \
- || (x)==PIX_FMT_RGB555BE \
- || (x)==PIX_FMT_RGB555LE \
- || (x)==PIX_FMT_RGB444BE \
- || (x)==PIX_FMT_RGB444LE \
- || (x)==PIX_FMT_RGB8 \
- || (x)==PIX_FMT_RGB4 \
- || (x)==PIX_FMT_RGB4_BYTE \
- || (x)==PIX_FMT_MONOBLACK \
- || (x)==PIX_FMT_MONOWHITE \
- )
-#define isBGRinInt(x) ( \
- (x)==PIX_FMT_BGR32 \
- || (x)==PIX_FMT_BGR32_1 \
- || (x)==PIX_FMT_BGR24 \
- || (x)==PIX_FMT_BGR565BE \
- || (x)==PIX_FMT_BGR565LE \
- || (x)==PIX_FMT_BGR555BE \
- || (x)==PIX_FMT_BGR555LE \
- || (x)==PIX_FMT_BGR444BE \
- || (x)==PIX_FMT_BGR444LE \
- || (x)==PIX_FMT_BGR8 \
- || (x)==PIX_FMT_BGR4 \
- || (x)==PIX_FMT_BGR4_BYTE \
- || (x)==PIX_FMT_MONOBLACK \
- || (x)==PIX_FMT_MONOWHITE \
- )
-#define isRGBinBytes(x) ( \
- (x)==PIX_FMT_RGB48BE \
- || (x)==PIX_FMT_RGB48LE \
- || (x)==PIX_FMT_RGBA \
- || (x)==PIX_FMT_ARGB \
- || (x)==PIX_FMT_RGB24 \
- )
-#define isBGRinBytes(x) ( \
- (x)==PIX_FMT_BGRA \
- || (x)==PIX_FMT_ABGR \
- || (x)==PIX_FMT_BGR24 \
- )
-#define isAnyRGB(x) ( \
- isRGBinInt(x) \
- || isBGRinInt(x) \
- )
-#define isALPHA(x) ( \
- (x)==PIX_FMT_BGR32 \
- || (x)==PIX_FMT_BGR32_1 \
- || (x)==PIX_FMT_RGB32 \
- || (x)==PIX_FMT_RGB32_1 \
- || (x)==PIX_FMT_YUVA420P \
- )
-#define usePal(x) (av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL)
-
-extern const uint64_t ff_dither4[2];
-extern const uint64_t ff_dither8[2];
-
-extern const AVClass sws_context_class;
-
-/**
- * Sets c->swScale to an unscaled converter if one exists for the specific
- * source and destination formats, bit depths, flags, etc.
- */
-void ff_get_unscaled_swscale(SwsContext *c);
-
-/**
- * Returns the SWS_CPU_CAPS for the optimized code compiled into swscale.
- */
-int ff_hardcodedcpuflags(void);
-
-/**
- * Returns function pointer to fastest main scaler path function depending
- * on architecture and available optimizations.
- */
-SwsFunc ff_getSwsFunc(SwsContext *c);
-
-#endif /* SWSCALE_SWSCALE_INTERNAL_H */
int main(void) { AVFormatContext *pFormatCtx = NULL; av_find_stream_info(pFormatCtx); return 0; }
EOF
- ffmpeg_cflags="-I$source_path/SLP/$ffmpeg_inc"
+ ffmpeg_cflags="-I$source_path/SLP/$ffmpeg_inc/include"
if test "$linux" = "yes" ; then
ffmpeg_libs="-lavformat -lavcodec -lavutil -lswscale"
elif test "$mingw32" = "yes" ; then
- ffmpeg_libpath="-L$source_path/SLP/$ffmpeg_inc/libs"
ffmpeg_libs="-lavformat.dll -lavcodec.dll -lavutil.dll -lswscale.dll"
fi
+ ffmpeg_libpath="-L$source_path/SLP/$ffmpeg_inc/lib"
ffmpeg_libs="$ffmpeg_libpath $ffmpeg_libs"
if compile_prog "$ffmpeg_cflags" "$ffmpeg_libs" ; then
ffmpeg=yes
svcamera_pci_init(pci_bus);
}
- /* init virtual codec device */
+#ifdef CONFIG_FFMPEG
if (pci_enabled) {
pci_codec_init(pci_bus);
}
-
+#endif
}
static void pc_init_pci(ram_addr_t ram_size,
--audio-card-list=es1370 \
--enable-mixemu \
--disable-vnc-tls \
- --enable-ffmpeg \
- --extra-ldflags="-lv4l2 -lv4lconvert"
+ --extra-ldflags="-lv4l2 -lv4lconvert -Xlinker -rpath -Xlinker ./lib"
+# --enable-ffmpeg \
# --enable-gles2 --gles2dir=/usr \
# --enable-profiler \
;;