[xiph-commits] r13469 - in trunk/vorbis-java: . org org/xiph org/xiph/libogg org/xiph/libshout org/xiph/libvorbis org/xiph/libvorbis/books org/xiph/libvorbis/books/coupled org/xiph/libvorbis/books/coupled/resbook_44 org/xiph/libvorbis/books/floor org/xiph/libvorbis/modes org/xiph/libvorbis/vorbis_constants

bcohee at svn.xiph.org bcohee at svn.xiph.org
Wed Aug 8 16:16:46 PDT 2007


Author: bcohee
Date: 2007-08-08 16:16:42 -0700 (Wed, 08 Aug 2007)
New Revision: 13469

Added:
   trunk/vorbis-java/.classpath
   trunk/vorbis-java/.project
   trunk/vorbis-java/Jheader.ogg
   trunk/vorbis-java/Todo.txt
   trunk/vorbis-java/VorbisEncoder.java
   trunk/vorbis-java/jvorbis_debug.rtf
   trunk/vorbis-java/log4j.properties
   trunk/vorbis-java/org/
   trunk/vorbis-java/org/xiph/
   trunk/vorbis-java/org/xiph/libogg/
   trunk/vorbis-java/org/xiph/libogg/ogg_packet.java
   trunk/vorbis-java/org/xiph/libogg/ogg_page.java
   trunk/vorbis-java/org/xiph/libogg/ogg_stream_state.java
   trunk/vorbis-java/org/xiph/libogg/ogg_sync_state.java
   trunk/vorbis-java/org/xiph/libshout/
   trunk/vorbis-java/org/xiph/libshout/Base64EncoderDecoder.java
   trunk/vorbis-java/org/xiph/libshout/ShoutClient.java
   trunk/vorbis-java/org/xiph/libvorbis/
   trunk/vorbis-java/org/xiph/libvorbis/adj_stereo.java
   trunk/vorbis-java/org/xiph/libvorbis/alloc_chain.java
   trunk/vorbis-java/org/xiph/libvorbis/att3.java
   trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_info.java
   trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_state.java
   trunk/vorbis-java/org/xiph/libvorbis/books/
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/res_books_stereo.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_0.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_1.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_2.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_3.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_4.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_5.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_6.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_7.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_8.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_9.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_n1.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_0.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_1.java
   trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_n1.java
   trunk/vorbis-java/org/xiph/libvorbis/books/floor/
   trunk/vorbis-java/org/xiph/libvorbis/books/floor/floor_books.java
   trunk/vorbis-java/org/xiph/libvorbis/codebook.java
   trunk/vorbis-java/org/xiph/libvorbis/codec_setup_info.java
   trunk/vorbis-java/org/xiph/libvorbis/compandblock.java
   trunk/vorbis-java/org/xiph/libvorbis/drft_lookup.java
   trunk/vorbis-java/org/xiph/libvorbis/encode_aux_nearestmatch.java
   trunk/vorbis-java/org/xiph/libvorbis/encode_aux_pigeonhole.java
   trunk/vorbis-java/org/xiph/libvorbis/encode_aux_threshmatch.java
   trunk/vorbis-java/org/xiph/libvorbis/envelope_band.java
   trunk/vorbis-java/org/xiph/libvorbis/envelope_filter_state.java
   trunk/vorbis-java/org/xiph/libvorbis/envelope_lookup.java
   trunk/vorbis-java/org/xiph/libvorbis/highlevel_byblocktype.java
   trunk/vorbis-java/org/xiph/libvorbis/highlevel_encode_setup.java
   trunk/vorbis-java/org/xiph/libvorbis/lsfit_acc.java
   trunk/vorbis-java/org/xiph/libvorbis/mdct_lookup.java
   trunk/vorbis-java/org/xiph/libvorbis/modes/
   trunk/vorbis-java/org/xiph/libvorbis/modes/setup_44.java
   trunk/vorbis-java/org/xiph/libvorbis/noise3.java
   trunk/vorbis-java/org/xiph/libvorbis/noiseguard.java
   trunk/vorbis-java/org/xiph/libvorbis/oggpack_buffer.java
   trunk/vorbis-java/org/xiph/libvorbis/ovectl_ratemanage2_arg.java
   trunk/vorbis-java/org/xiph/libvorbis/private_state.java
   trunk/vorbis-java/org/xiph/libvorbis/static_bookblock.java
   trunk/vorbis-java/org/xiph/libvorbis/static_codebook.java
   trunk/vorbis-java/org/xiph/libvorbis/ve_setup_data_template.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_block.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_block_internal.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_comment.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/integer_constants.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_dsp_state.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_floor1.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mapping0.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mode.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy_global.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_residue0.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_floor1.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_arrays.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_global.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_residue0.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_mapping_template.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_residue_template.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbis_window.java
   trunk/vorbis-java/org/xiph/libvorbis/vorbisenc.java
   trunk/vorbis-java/org/xiph/libvorbis/vp_adjblock.java
   trunk/vorbis-java/output.log.1
   trunk/vorbis-java/test.wav
   trunk/vorbis-java/test_original.wav
Log:
Initial import.

Added: trunk/vorbis-java/.classpath
===================================================================
--- trunk/vorbis-java/.classpath	                        (rev 0)
+++ trunk/vorbis-java/.classpath	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: trunk/vorbis-java/.project
===================================================================
--- trunk/vorbis-java/.project	                        (rev 0)
+++ trunk/vorbis-java/.project	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JVorbis</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: trunk/vorbis-java/Jheader.ogg
===================================================================
(Binary files differ)


Property changes on: trunk/vorbis-java/Jheader.ogg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/vorbis-java/Todo.txt
===================================================================
--- trunk/vorbis-java/Todo.txt	                        (rev 0)
+++ trunk/vorbis-java/Todo.txt	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,104 @@
+
+JVorbis Todo Checklist
+----------------------
+
+package management
+----------------------
+cutback on mass imports - have every instance complete class paths
+log4j - figure out best way make this deployable within the .jar library
+
+
+libvorbis
+----------------------
+// DONE - Vorbis Comment support added into header
+
+vorbis_encode_init_vbr( vi, 2, 44100, .4f )) - quality should be able to be increased/decresed but not tested yet
+finish support for managed bitrate options
+
+Optimize
+
+manual memory cleanup - _vorbis_pull_ripcord, saves values from a mock vorbis_block_alloc to track localstorage offsets and keep memory footprint down
+
+Check multiple loops to combine throughout the main loop
+
+rewrite to let the java garbage collector manage memory more in main loop - ByteStreams or ArrayLists etc
+
+	System.arraycopy everywhere instead of memcpy, memmove
+	Arrays.fill instead of memsets and hardloops
+
+
+add low quality support from aoTuV - http://www.geocities.jp/aoyoume/aotuv/
+
+OOP classes
+
+merge same classes into combined packages : http://jarticles.com/package/package_eng.html
+
+Get rid of floor1_func, res0_func, map0_func
+		_floor_P
+		_residue_P
+		_map_P
+
+Abstract as j-ogg, jcraft
+
+	(may only be needed for decode or encode other than 2 channels 44100 rate .4f quality)
+	_floor_P	(currently only supports floor1)
+	_residue_P	(currently only supports res0)
+	_mapping_P	(currently only supports mapping0)
+
+	add floor1 (info, look and functions)
+		vorbis_info_floor1.java, vorbis_look_floor1.java, oggpack_buffer.java
+
+	add residue0 (info, look) and create residue type 0,1,2 [functions]
+		vorbis_info_residue0.java, vorbis_look_residue0.java, oggpack_buffer.java
+
+
+	add mapping0 (info, look and functions) - *** ilog is actually ilog2 function - see mapping0.c
+		vorbis_info_mapping0.java, < no look function >, oggpack_buffer.java
+
+Java signed (>>) to unsigned (>>>) bit shift changes
+These all need inteligent checks
+vorbisenc.java		4
+vorbis_dsp_state	2
+mdct_lookup		17
+drft_lookup		4
+codebook		4
+bitrate_manager_state	1
+
+
+libshout
+----------------------
+total system state managment
+error exception flow
+reconnecting, buffering
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+References
+----------
+
+
+http://xiph.org/vorbis/doc/Vorbis_I_spec.html
+
+http://xiph.org/vorbis/doc/
+


Property changes on: trunk/vorbis-java/Todo.txt
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/VorbisEncoder.java
===================================================================
--- trunk/vorbis-java/VorbisEncoder.java	                        (rev 0)
+++ trunk/vorbis-java/VorbisEncoder.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,198 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+import java.io.*;
+import org.xiph.libvorbis.*;
+import org.xiph.libogg.*;
+
+public class VorbisEncoder {
+
+	static vorbisenc 			encoder;
+
+	static ogg_stream_state 	os;	// take physical pages, weld into a logical stream of packets
+
+	static ogg_page				og;	// one Ogg bitstream page.  Vorbis packets are inside
+	static ogg_packet			op;	// one raw packet of data for decode
+  
+	static vorbis_info			vi;	// struct that stores all the static vorbis bitstream settings
+
+	static vorbis_comment		vc;	// struct that stores all the user comments
+
+	static vorbis_dsp_state		vd;	// central working state for the packet->PCM decoder
+	static vorbis_block			vb;	// local working space for packet->PCM decode
+	
+	static int READ = 1024;
+	static byte[] readbuffer = new byte[READ*4+44];
+	
+	static int page_count = 0;
+	static int block_count = 0;
+	
+	/**
+	 * VorbisEncoder.java
+	 *  
+	 * Usage:
+	 * java -cp VorbisEncoder <Input File[.wav]> <Output File[.ogg]>
+	 * 
+	 */
+	public static void main( String[] args ) {
+		
+		// Output Java System Properties
+		/*
+		java.util.Properties prop = System.getProperties();
+		java.util.Enumeration propNames = prop.propertyNames();
+		
+		while ( propNames.hasMoreElements() ) {
+			String key = (String) propNames.nextElement();
+		} 
+		*/
+		
+		if ( args.length < 2 ) {
+			System.out.println( "Usage:");
+			System.out.println( "java -cp VorbisEncoder <Input File[.wav]> <Output File[.ogg]>");
+			System.exit(0);
+		}
+		
+		boolean eos = false;
+
+		vi = new vorbis_info();
+
+		encoder = new vorbisenc();
+
+		if ( !encoder.vorbis_encode_init_vbr( vi, 2, 44100, .3f ) ) {
+			System.out.println( "Failed to Initialize vorbisenc" );
+			return;
+		}
+		
+		vc = new vorbis_comment();
+		vc.vorbis_comment_add_tag( "ENCODER", "Java Vorbis Encoder" );
+
+		vd = new vorbis_dsp_state();
+
+		if ( !vd.vorbis_analysis_init( vi ) ) {
+			System.out.println( "Failed to Initialize vorbis_dsp_state" );
+			return;
+		}
+
+		vb = new vorbis_block( vd );
+
+		java.util.Random generator = new java.util.Random();  // need to randomize seed
+		os = new ogg_stream_state( generator.nextInt(256) );
+		
+		System.out.print( "Writing header." );
+		ogg_packet header = new ogg_packet();
+		ogg_packet header_comm = new ogg_packet();
+		ogg_packet header_code = new ogg_packet();
+		
+		vd.vorbis_analysis_headerout( vc, header, header_comm, header_code );
+		
+		os.ogg_stream_packetin( header); // automatically placed in its own page
+		os.ogg_stream_packetin( header_comm );
+		os.ogg_stream_packetin( header_code );
+		
+		og = new ogg_page();
+		op = new ogg_packet();
+		
+		try {
+			
+			FileOutputStream fos = new FileOutputStream( args[1] );
+			
+			while( !eos ) {
+				
+				if ( !os.ogg_stream_flush( og ) )
+					break;
+				
+				fos.write( og.header, 0, og.header_len );
+				fos.write( og.body, 0, og.body_len );
+				System.out.print( "." );
+			}
+			System.out.print(  "Done.\n" );
+			
+			FileInputStream fin = new FileInputStream( args[0] );
+			
+			System.out.print( "Encoding." );
+			while ( !eos ) {
+				
+				int i;
+				int bytes = fin.read( readbuffer, 0, READ*4 ); // stereo hardwired here
+				
+				int break_count = 0;
+				
+				if ( bytes==0 ) {
+					
+					// end of file.  this can be done implicitly in the mainline,
+					// but it's easier to see here in non-clever fashion.
+					// Tell the library we're at end of stream so that it can handle
+					// the last frame and mark end of stream in the output properly
+					
+					vd.vorbis_analysis_wrote( 0 );
+					
+				} else {
+					
+					// data to encode
+					
+					// expose the buffer to submit data
+					float[][] buffer = vd.vorbis_analysis_buffer( READ );
+					
+					// uninterleave samples
+					for ( i=0; i < bytes/4; i++ ) {
+						buffer[0][vd.pcm_current + i] = ( (readbuffer[i*4+1]<<8) | (0x00ff&(int)readbuffer[i*4]) ) / 32768.f;
+						buffer[1][vd.pcm_current + i] = ( (readbuffer[i*4+3]<<8) | (0x00ff&(int)readbuffer[i*4+2]) ) / 32768.f;
+					}
+					
+					// tell the library how much we actually submitted
+					vd.vorbis_analysis_wrote( i );
+				}
+
+				// vorbis does some data preanalysis, then divvies up blocks for more involved 
+				// (potentially parallel) processing.  Get a single block for encoding now
+
+				while ( vb.vorbis_analysis_blockout( vd ) ) {
+	
+					// analysis, assume we want to use bitrate management
+					
+					vb.vorbis_analysis( null );
+					vb.vorbis_bitrate_addblock();
+					
+					while ( vd.vorbis_bitrate_flushpacket( op ) ) {
+						
+						// weld the packet into the bitstream
+						os.ogg_stream_packetin( op );
+						
+						// write out pages (if any)
+						while ( !eos ) {
+							
+							if ( !os.ogg_stream_pageout( og ) ) {
+								break_count++;
+								break;
+							}
+							
+							fos.write( og.header, 0, og.header_len );
+							fos.write( og.body, 0, og.body_len );
+							
+							// this could be set above, but for illustrative purposes, I do
+							// it here (to show that vorbis does know where the stream ends)
+							if ( og.ogg_page_eos() > 0 )
+								eos = true;
+						}
+					}
+				}
+				System.out.print( "." );
+			}
+			
+			fin.close();
+			fos.close();
+			
+			System.out.print( "Done.\n" );
+			
+		} catch (Exception e) { System.out.println( "\n" + e ); e.printStackTrace(System.out); }
+	}
+}


Property changes on: trunk/vorbis-java/VorbisEncoder.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/jvorbis_debug.rtf
===================================================================
--- trunk/vorbis-java/jvorbis_debug.rtf	                        (rev 0)
+++ trunk/vorbis-java/jvorbis_debug.rtf	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,79 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 ArialMT;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww9000\viewh8400\viewkind0
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 vorbis_block._01forward\
+vorbis_block.res2_forward - end 9 & 3 (2x) run (1st is 19 & 0)\
+vorbis_block.mapping0_forward\
+vorbis_block.vorbis_analysis\
+\
+\
+opb_local\
+endbyte = 45\
+endbit = 4\
+\
+ret = encode\
+\
+java\
+endbyte = 46\
+endbit = 7\
+\
+c\
+endbyte = 47\
+endbut = 2\
+\
+\
+\
+\
+error - 2nd step of _encodepart (when endbyte = 45 & endbit = 4 !!!! float * vec is off)\
+entry = local_book_besterror\
+\
+work*** is off in res2_forward\
+\
+.decimals are off just enough to throw the below and above -.5 flags for local_book_besterror\
+\
+\
+\pard\pardeftab720\ql\qnatural
+
+\f1\fs25\fsmilli12800 \cf0 pcm[0][223]\
+236\
+205 - way fuckin off\
+200\
+190\
+\
+\
+int _vp_couple ifloor[1][62] = 131 for C\'ca\'ca\'ca\'ca\'ca\'ca 132 for java\
+\
+ilogmaskch[i] = ilogmask\
+\
+when i == 1\
+\
+\
+floor_posts[1][7][8] = 511 for C\'ca\'ca\'ca\'ca\'ca\'ca 512 for java \
+mapping0_forward()- > floor1_fit( b.flr[info.floorsubmap[submap]], logmdct, logfft );\
+\
+\
+00037\
+\
+flr[90] through flr[105] are minor off, sync back exact at 105\
+\
+mdct[96] = -84.474411\
++ 18\
+>= flr[96] = - 66.474052\
+\
+530.76220590436471582\
+\
+\
+float flr[] is off on accum fit - very min amount\
+\
+logmask = logfft in mapping0_forward\
+\
+logfft is just vorbis_block.pcm[i]\
+\
+^^^^^\
+when page_count == 5\
+vorbis_analysis() to next\
+vorbis_analysis() [step into]\
+mapping0_forward()}
\ No newline at end of file

Added: trunk/vorbis-java/log4j.properties
===================================================================
--- trunk/vorbis-java/log4j.properties	                        (rev 0)
+++ trunk/vorbis-java/log4j.properties	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,19 @@
+log4j.rootLogger=ALL, stdout, R
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+
+# Pattern to output the caller's file name and line number.
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=output.log
+
+log4j.appender.R.MaxFileSize=100KB
+# Keep one backup file
+log4j.appender.R.MaxBackupIndex=1
+
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%n[%d{DATE}] - %5p [%t] (%F:%L) - %m%n
+
+log4j.logger.Test=INFO
\ No newline at end of file

Added: trunk/vorbis-java/org/xiph/libogg/ogg_packet.java
===================================================================
--- trunk/vorbis-java/org/xiph/libogg/ogg_packet.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libogg/ogg_packet.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,32 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libogg;
+
+public class ogg_packet {
+
+	public byte[] packet;	// unsigned char *packet;
+	public int bytes;	// long
+	public int b_o_s;	// long
+	public int e_o_s;	// long
+
+	public int granulepos;	// ogg_int64_t  
+  
+	public int packetno;	// ogg_int64_t  
+
+	// sequence number for decode; the framing knows where there's a hole in the data, but we need 
+	// coupling so that the codec (which is in a seperate abstraction layer) also knows about the gap
+
+
+	public ogg_packet() {}
+
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libogg/ogg_packet.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libogg/ogg_page.java
===================================================================
--- trunk/vorbis-java/org/xiph/libogg/ogg_page.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libogg/ogg_page.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,80 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libogg;
+
+public class ogg_page {
+
+	public byte[] header;		// unsigned char
+	public int header_len;		// long
+	public byte[] body;			// unsigned char
+	public int body_len;		// long
+	
+	// static ogg_uint32_t crc_lookup[256]={
+	private static int[] crc_lookup = new int[256];
+	
+	static {
+		for ( int i=0; i < crc_lookup.length; i++ ) {
+			crc_lookup[i] = crc_entry(i);
+		}
+	}
+	
+	private static int crc_entry( int index ) {
+		
+		int r = index << 24;
+		for ( int i=0; i < 8; i++ ) {
+			
+			if ( (r & 0x80000000) != 0 ) {
+				r = (r << 1)^0x04c11db7;
+				/* The same as the ethernet generator
+				 * polynomial, although we use an
+				 * unreflected alg and an init/final
+				 * of 0, not 0xffffffff */
+			} else {
+				r <<= 1;
+			}
+		}
+		return (r & 0xffffffff);
+	}
+
+	public ogg_page() {}
+	
+	public int ogg_page_eos() {
+		
+		  return((int)(header[5]&0x04));
+	}
+	
+	public void ogg_page_checksum_set() {
+		
+		// ogg_uint32_t crc_reg=0;
+		int crc_reg = 0;
+		int i;
+		
+		// safety; needed for API behavior, but not framing code
+		header[22] = 0;
+		header[23] = 0;
+		header[24] = 0;
+		header[25] = 0;
+		
+		for ( i=0; i < header_len; i++ ) {
+			crc_reg = (crc_reg<<8)^crc_lookup[((crc_reg>>>24)&0xff)^(header[i]&0xff)];
+		}
+		for ( i=0; i < body_len; i++ ) {
+			crc_reg = (crc_reg<<8)^crc_lookup[((crc_reg>>>24)&0xff)^(body[i]&0xff)];
+		}
+		
+	    header[22] = (byte)crc_reg /*&0xff*/;
+	    header[23] = (byte)(crc_reg>>>8) /*&0xff*/;
+	    header[24] = (byte)(crc_reg>>>16) /*&0xff*/;
+	    header[25] = (byte)(crc_reg>>>24) /*&0xff*/;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libogg/ogg_page.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libogg/ogg_stream_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libogg/ogg_stream_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libogg/ogg_stream_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,323 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libogg;
+
+public class ogg_stream_state {
+	
+	byte[] body_data;	// unsigned char // bytes from packet bodies
+	int body_storage;	// long //storage elements allocated
+	int body_fill;		// long //elements stored; fill mark
+	int body_returned;	// long //elements of fill returned
+	
+	int[] lacing_vals;		// The values that will go to the segment table
+	long[] granule_vals;	// ogg_int64_t //granulepos values for headers. Not compact this way, but it is simple coupled to the lacing fifo
+	int lacing_storage;		// long
+	int lacing_fill;		// long
+	int lacing_packet;		// long
+	int lacing_returned;	// long
+
+	byte[] header;		// unsigned char    header[282];      //working space for header encode
+	int header_fill;
+
+	int e_o_s;		//set when we have buffered the last packet in the logical bitstream
+	int b_o_s;		//set after we've written the initial page of a logical bitstream
+	int serialno;	// long
+	int pageno;		// long
+	long packetno;	// ogg_int64_t  // sequence number for decode; the framing knows where there's a hole in the data, but we need coupling so
+					// that the codec (which is in a seperate abstraction layer) also knows about the gap
+
+	long granulepos;		// ogg_int64_t   
+
+
+	public ogg_stream_state () {
+
+		header = new byte[ 282 ];
+	}
+
+	public ogg_stream_state( int _serialno ) {
+		
+		header = new byte[ 282 ];
+		
+		body_storage = 16*1024;
+
+		// body_data = _ogg_malloc(os->body_storage*sizeof(*os->body_data));
+		body_data = new byte[ body_storage ];
+
+		lacing_storage = 1024;
+		lacing_vals = new int[ lacing_storage ];
+		granule_vals = new long[ lacing_storage ];
+
+		serialno = _serialno;
+	}
+	
+	public int getSerialNo() {
+		return serialno;
+	}
+
+	// Helpers for ogg_stream_encode; this keeps the structure and what's happening fairly clear
+	
+	public void _os_body_expand( int needed ) {
+		
+		if ( body_storage <= body_fill + needed ) {
+			
+			body_storage += (needed+1024);
+			
+			// body_data = _ogg_realloc(os->body_data,os->body_storage*sizeof(*os->body_data));
+			byte[] temp = new byte[ body_storage ];
+    		System.arraycopy( body_data, 0, temp, 0, body_data.length );
+    		body_data = temp;
+		}
+	}
+
+	public void _os_lacing_expand( int needed ) {
+		
+		if ( lacing_storage <= lacing_fill + needed ) {
+			
+			lacing_storage += (needed+32);
+			
+			// lacing_vals = _ogg_realloc(os->lacing_vals,os->lacing_storage*sizeof(*os->lacing_vals));
+			int[] temp = new int[ lacing_storage ];
+    		System.arraycopy( lacing_vals, 0, temp, 0, lacing_vals.length );
+    		lacing_vals = temp;
+    		
+			// granule_vals = _ogg_realloc(os->granule_vals,os->lacing_storage*sizeof(*os->granule_vals));
+    		long[] temp2 = new long[ lacing_storage ];
+    		System.arraycopy( granule_vals, 0, temp, 0, granule_vals.length );
+    		granule_vals = temp2;
+	  }
+	}
+	
+	public boolean ogg_stream_packetin( ogg_packet op ) {
+		
+// OOP varaible lacing_vals renamed lacing_vals_local
+		int lacing_vals_local = op.bytes/255+1;
+		int i;
+		
+		if ( body_returned > 0 ) {
+			
+			/* advance packet data according to the body_returned pointer. We
+			 * had to keep it around to return a pointer into the buffer last call */
+			
+			body_fill -= body_returned;
+			if ( body_fill > 0 ) {
+				// memmove( body_data, body_data + body_returned, body_fill );
+	    		System.arraycopy( body_data, body_returned, body_data, 0, body_fill );
+			}
+			body_returned = 0;
+		}
+		
+		// make sure we have the buffer storage
+		_os_body_expand( op.bytes );
+		_os_lacing_expand( lacing_vals_local );
+		
+		/* Copy in the submitted packet.  Yes, the copy is a waste; this is
+		 * the liability of overly clean abstraction for the time being.  It
+		 * will actually be fairly easy to eliminate the extra copy in the future */
+		
+		// memcpy( body_data + body_fill, op.packet, op.bytes );
+		System.arraycopy( op.packet, 0, body_data, body_fill, op.bytes );
+		body_fill += op.bytes;
+		
+		// Store lacing vals for this packet
+		for ( i=0; i < lacing_vals_local-1; i++ ) {
+			lacing_vals[ lacing_fill+i ] = 255;
+			granule_vals[ lacing_fill+i ] = granulepos;
+		}
+		
+		lacing_vals[ lacing_fill+i ] = (op.bytes)%255;
+		granulepos = granule_vals[ lacing_fill+i] = op.granulepos;
+		
+		// flag the first segment as the beginning of the packet
+		lacing_vals[ lacing_fill ] |= 0x100;
+		lacing_fill += lacing_vals_local;
+		
+		// for the sake of completeness
+		packetno++;
+		
+		if ( op.e_o_s > 0 )
+			e_o_s = 1;
+		
+		return true;
+	}
+	
+	/* This will flush remaining packets into a page (returning nonzero),
+	 * even if there is not enough data to trigger a flush normally
+	 * (undersized page). If there are no packets or partial packets to
+	 * flush, ogg_stream_flush returns 0.  Note that ogg_stream_flush will
+	 * try to flush a normal sized page like ogg_stream_pageout; a call to
+	 * ogg_stream_flush does not guarantee that all packets have flushed.
+	 * Only a return value of 0 from ogg_stream_flush indicates all packet
+	 * data is flushed into pages.
+	 * 
+	 * since ogg_stream_flush will flush the last page in a stream even if
+	 * it's undersized, you almost certainly want to use ogg_stream_pageout
+	 * (and *not* ogg_stream_flush) unless you specifically need to flush 
+	 * an page regardless of size in the middle of a stream. */
+	
+	public boolean ogg_stream_flush( ogg_page og ) {
+		
+		int maxvals = (lacing_fill>255?255:lacing_fill);
+		if ( maxvals == 0 )
+			return false;
+		
+		int i;
+		int vals=0;
+		int bytes=0;
+		int acc=0;
+		// ogg_int64_t granule_pos=os->granule_vals[0];
+		long granule_pos = granule_vals[0];
+
+
+		// construct a page
+		// decide how many segments to include
+		
+		// If this is the initial header case, the first page must only include the initial header packet
+		if ( b_o_s == 0 ) {  // 'initial header page' case
+			granule_pos=0;
+			for ( vals=0; vals < maxvals; vals++ ) {
+				if ( (lacing_vals[vals]&0x0ff) < 255 ) {
+					vals++;
+					break;
+				}
+			}
+		} else {
+			for ( vals=0; vals < maxvals; vals++ ) {
+				if ( acc > 4096 )
+					break;
+				acc += lacing_vals[vals]&0x0ff;
+				granule_pos = granule_vals[vals];
+			}
+		}
+		
+		// construct the header in temp storage
+		// memcpy(os->header,"OggS",4);
+		// header[0] = 'O';
+		// header[1] = 'g';
+		// header[2] = 'g';
+		// header[3] = 'S';
+		System.arraycopy( "OggS".getBytes(), 0, header, 0, 4 );
+		
+		// stream structure version
+		header[4] = 0x00;
+		
+		// continued packet flag?
+		header[5] = 0x00;
+		if ( (lacing_vals[0]&0x100) == 0 )
+			header[5] |= 0x01;
+		// first page flag?
+		if ( b_o_s == 0 )
+			header[5] |= 0x02;
+		// last page flag?
+		if ( (e_o_s > 0) && (lacing_fill == vals) )
+			header[5] |= 0x04;
+		b_o_s = 1;
+		
+		// 64 bits of PCM position
+		for ( i=6; i < 14; i++ ) {
+			header[i] = (byte)(granule_pos);
+			granule_pos >>>= 8;
+		}
+		
+		// 32 bits of stream serial number
+// local OOP varname serialno to serialno_local
+		int serialno_local = serialno;
+		for ( i=14; i <18; i++ ) {
+			header[i] = (byte)(serialno_local);
+			serialno_local >>>= 8;
+		}
+		
+		// 32 bits of page counter (we have both counter and page header because this val can roll over)
+		if ( pageno == -1)
+			pageno = 0; 
+		
+		/* because someone called stream_reset; this would be a strange thing to do in an
+		 * encode stream, but it has plausible uses */
+		
+// local OOP varname serialno to serialno_local
+		int pageno_local = pageno++;
+		for ( i=18; i < 22; i++ ) {
+			header[i] = (byte)(pageno_local);
+			pageno_local >>>= 8;
+		}
+		
+		// zero for computation; filled in later
+		header[22] = 0;
+		header[23] = 0;
+		header[24] = 0;
+		header[25] = 0;
+		
+		// segment table
+		header[26] = (byte)(vals);
+		for ( i=0; i < vals; i++ ) {
+			header[i+27] = (byte)(lacing_vals[i]);
+			bytes += (header[i+27] & 0xff);
+		}
+			
+		
+// this has been hacked together
+// do not know if pointers (offsets) are ok
+// or if actual data needs to be copied to ogg_page
+		
+		// set pointers in the ogg_page struct
+		og.header = header;
+		og.header_len = header_fill = vals+27;
+		// og.body = body_data + body_returned;
+		og.body = new byte[ body_data.length - body_returned ];
+		System.arraycopy( body_data, body_returned, og.body, 0, body_data.length - body_returned );
+		og.body_len = bytes;
+		
+		// advance the lacing data and set the body_returned pointer
+		lacing_fill -= vals;
+		
+		// memmove(os->lacing_vals, os->lacing_vals+vals, os->lacing_fill*sizeof(*os->lacing_vals));
+		// int[] temp = new int[ lacing_fill ];
+		// System.arraycopy( lacing_vals, vals, temp, 0, lacing_fill );
+		// lacing_vals = temp;
+		// System.arraycopy( lacing_vals, vals, lacing_vals, 0, lacing_fill*4 );
+		System.arraycopy( lacing_vals, vals, lacing_vals, 0, lacing_fill );
+		
+		
+		// memmove(os->granule_vals, os->granule_vals+vals, os->lacing_fill*sizeof(*os->granule_vals));
+		// long[] temp2 = new long[ lacing_fill ];
+		// System.arraycopy( granule_vals, vals, temp2, 0, lacing_fill );
+		// granule_vals= temp2;
+		// System.arraycopy( granule_vals, vals, granule_vals, 0, lacing_fill*8 );
+		System.arraycopy( granule_vals, vals, granule_vals, 0, lacing_fill );
+		
+		body_returned += bytes;
+		
+		// calculate the checksum
+		og.ogg_page_checksum_set();
+		
+		return true;
+	}
+	
+	/* This constructs pages from buffered packet segments.  The pointers
+	 * returned are to static buffers; do not free. The returned buffers are
+	 * good only until the next call (using the same ogg_stream_state) */
+
+	public boolean ogg_stream_pageout( ogg_page og ) {
+		
+		if ( (e_o_s > 0 && lacing_fill > 0 ) ||		// 'were done, now flush' case
+			body_fill-body_returned > 4096 ||		// 'page nominal size' case
+			lacing_fill >= 255 ||					// 'segment table full' case
+			(lacing_fill > 0 && b_o_s <= 0) ) {		// 'initial header page' case
+	        
+	    return ogg_stream_flush(og);
+	  }
+	  
+	  // not enough data to construct a page and not end of stream
+	  return false;
+	}
+	
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libogg/ogg_stream_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libogg/ogg_sync_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libogg/ogg_sync_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libogg/ogg_sync_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,27 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libogg;
+
+public class ogg_sync_state {
+
+	byte[] data;		// unsigned char
+	int storage;
+	int fill;
+	int returned;
+
+	int unsynced;
+	int headerbytes;
+	int bodybytes;
+
+	public ogg_sync_state() {}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libogg/ogg_sync_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libshout/Base64EncoderDecoder.java
===================================================================
--- trunk/vorbis-java/org/xiph/libshout/Base64EncoderDecoder.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libshout/Base64EncoderDecoder.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,68 @@
+/********************************************************************
+ *                                                                  *
+ * Utility class that encodes and decodes byte arrays in Base64     *
+ * representation.                                                  *
+ *                                                                  *
+ * Should be thread safe.                                           *
+ * Credit: markefarr                                                *
+ * http://forum.java.sun.com/thread.jspa?threadID=477461            *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libshout;
+
+public class Base64EncoderDecoder extends java.util.prefs.AbstractPreferences {
+	   private java.util.Hashtable encodedStore = new java.util.Hashtable();
+	 
+	public Base64EncoderDecoder(java.util.prefs.AbstractPreferences prefs, java.lang.String string) {
+	   super(prefs, string);
+	}
+	 
+	public java.lang.String encodeBase64(java.lang.String raw)
+	                                         throws java.io.UnsupportedEncodingException{
+	   byte[] rawUTF8 = raw.getBytes("UTF8");
+	   this.putByteArray(raw, rawUTF8);
+	   return (java.lang.String)this.encodedStore.get(raw);
+	}
+	 
+	public java.lang.String encodeBase64(java.lang.String key, java.lang.String raw)
+	                                         throws java.io.UnsupportedEncodingException{
+	   byte[] rawUTF8 = raw.getBytes("UTF8"); 
+	   this.putByteArray(key, rawUTF8);
+	   return (java.lang.String)this.encodedStore.get(key);
+	} 
+	 
+	@SuppressWarnings("unchecked")
+	public java.lang.String decodeBase64(java.lang.String key, java.lang.String base64String)
+	                                         throws java.io.UnsupportedEncodingException, java.io.IOException{
+	   byte[] def = {(byte)'D',(byte)'E',(byte)'F'};//placeholder
+	   this.encodedStore.put(key,base64String);
+	   byte[] byteResults = this.getByteArray(key, def);
+	   return new java.lang.String(byteResults, "UTF8");
+	}
+	 
+	public String get(String key, String def) {
+	   return (java.lang.String)this.encodedStore.get(key);
+	}
+	 
+	 
+	@SuppressWarnings("unchecked")
+	public void put(String key, String value){
+	   this.encodedStore.put(key, value);
+	}
+	 
+	 
+//	dummy implementation as AbstractPreferences is extended to access methods above
+	protected java.util.prefs.AbstractPreferences childSpi(String name) {return null;}
+	protected String[] childrenNamesSpi() throws java.util.prefs.BackingStoreException {return null;}
+	protected void flushSpi() throws java.util.prefs.BackingStoreException {}
+	protected String getSpi(String key) {return null;}
+	protected String[] keysSpi() throws java.util.prefs.BackingStoreException {return null;}
+	protected void putSpi(String key, String value) {}
+	protected void removeNodeSpi() throws java.util.prefs.BackingStoreException {}
+	protected void removeSpi(String key) {}
+	protected void syncSpi() throws java.util.prefs.BackingStoreException {}
+}

Added: trunk/vorbis-java/org/xiph/libshout/ShoutClient.java
===================================================================
--- trunk/vorbis-java/org/xiph/libshout/ShoutClient.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libshout/ShoutClient.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,249 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libshout;
+
+import java.io.*;
+import java.net.*;
+
+public class ShoutClient {
+
+	private Socket socket = null;
+	private OutputStream socketOutputStream = null;
+	
+	private boolean connected = false;
+	
+	private String mount = null;
+	private String host = null;
+	private int port = 0;
+	private String username = null;
+	private String password = null;
+	
+	private String url = null;
+	private String genre = null;
+	private String title = null;
+	private String desc = null;
+	
+	private char[] base64table = new char[] {
+	    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
+	    'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
+	    'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
+	    'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/',
+	};
+	
+	public ShoutClient() {
+		
+		connected = false;
+	}
+
+	public ShoutClient( String host, int port, String mount, String user, String password ) {
+		
+		this.host = host;
+		this.port = port;
+		this.mount = mount;
+		this.username = user;
+		this.password = password;
+		
+		connected = false;
+	}
+	
+	public boolean connect( String host, int port, String mount, String user, String password ) {
+		
+		this.host = host;
+		this.port = port;
+		this.mount = mount;
+		this.username = user;
+		this.password = password;
+		
+		return connect();
+	}
+	
+	public boolean connect() {
+		
+		if ( !isConnected() ) {
+			try {
+				socket = new Socket( host, port );
+				// socket.connect( new InetSocketAddress( host, port ), 1000 ); // no timeout for now
+				
+				socketOutputStream = socket.getOutputStream();
+				socket.setTcpNoDelay( true );
+				writeHeader();
+			}
+			catch ( UnknownHostException e ) {
+				connected = false;
+				System.out.println( "Unknown host: " + host );
+			}
+			catch ( IOException e ) {
+				connected = false;
+				System.out.println( "Socket Connection Error: http://" + host + ":" + port );
+				System.out.println( e + "\n" );
+			}
+		}
+		
+		return connected;
+	}
+	
+	public boolean isConnected() {
+		return connected;	
+	}
+	
+	public String getHost() {
+		return this.host;
+	}
+	
+	public void setHost( String host ) {
+		this.host = host;
+	}
+	
+	public int getPort() {
+		return this.port;
+	}
+	
+	public void setPort( int port ) {
+		this.port = port;
+	}
+	
+	public String getMount() {
+		return this.mount;
+	}
+	
+	public void setMount( String mount ) {
+		this.mount = mount;
+	}
+	
+	public String getUser() {
+		return this.username;
+	}
+	
+	public void setUser( String user ) {
+		this.username = user;
+	}
+	
+	public String getPassword() {
+		return this.password;
+	}
+	
+	public void setPassword( String password ) {
+		this.password = password;
+	}
+	
+	public String getURL() {
+		return this.url;
+	}
+	
+	public void setURL( String url ) {
+		this.url = url;
+	}
+	
+	public String getGenre() {
+		return this.genre;
+	}
+	
+	public void setGenre( String genre ) {
+		this.genre = genre;
+	}
+	
+	public String getTitle() {
+		return this.title;
+	}
+	
+	public void setTitle( String title ) {
+		this.title = title;
+	}
+	
+	public String getDescription() {
+		return this.desc;
+	}
+	
+	public void setDescription( String desc ) {
+		this.desc = desc;
+	}
+	
+	public void writeHeader() throws IOException {
+		
+		socketOutputStream.write( new String("SOURCE " + mount + " HTTP/1.0" + "\r\n").getBytes() );
+		
+		Base64EncoderDecoder base64Encode = new Base64EncoderDecoder( null, "" );
+		String rawAuth = username + ":" + password;
+		String encodedAuth = base64Encode.encodeBase64( base64table.toString(), rawAuth );
+		socketOutputStream.write( new String("Authorization: Basic " + encodedAuth + "\r\n").getBytes() );
+
+		socketOutputStream.write( new String("User-Agent: libshout/" + "\r\n").getBytes() );
+		socketOutputStream.write( new String("Content-Type: application/ogg" + "\r\n").getBytes() );
+		
+		socketOutputStream.write( new String("ice-url: " + url + "\r\n").getBytes() );
+		socketOutputStream.write( new String("ice-public: 1" + "\r\n").getBytes() );
+		socketOutputStream.write( new String("ice-genre: " + genre + "\r\n").getBytes() );
+		socketOutputStream.write( new String("ice-name: " + title + "\r\n").getBytes() );
+		socketOutputStream.write( new String("ice-description: " + desc + "\r\n").getBytes() );
+		// socketOutputStream.write( new String("ice-audio-info: 1" + "\r\n").getBytes() );
+
+		socketOutputStream.write( new String("\r\n").getBytes() );
+		socketOutputStream.flush();
+		System.out.println( "OggCast Header Sent" );
+		
+		if ( readHeaderResponse() ) {
+			connected = true;
+		}
+		else {
+			connected = false;
+		}
+	}
+	
+	public boolean readHeaderResponse() throws IOException {
+		
+		InputStream socketInputStream = socket.getInputStream();
+		InputStreamReader isr = new InputStreamReader( socketInputStream );
+		BufferedReader br = new BufferedReader( isr );
+		
+		String responseHeader = br.readLine();
+		System.out.println( responseHeader );
+		
+		int responseCodeIndex = responseHeader.indexOf( ' ' );
+		int responseCode = Integer.parseInt( responseHeader.substring( responseCodeIndex+1, responseCodeIndex+4 ) );
+		
+		if ( responseCode >= 200 && responseCode < 300 )
+			return true;
+		
+		return false;
+	}
+
+	public void write( byte[] foo, int foostart, int foolength, byte[] bar, int barstart, int barlength ) {
+		
+		try {
+			socketOutputStream.write( foo, foostart, foolength );
+			socketOutputStream.write( bar, barstart, barlength );
+			socketOutputStream.flush();
+		}
+		catch ( IOException e ) {
+			connected = false;
+			System.out.println( "Socket Connection Error: http://" + host + ":" + port );
+			System.out.println( e );
+		}
+	}
+
+	public void close() {
+		try {
+			connected = false;
+			socket.shutdownOutput();
+			socketOutputStream.close();
+			socket.close();
+			socketOutputStream = null;
+			socket = null;
+		}
+		catch ( Exception e ) {
+			System.out.println( "Socket Connection Error: http://" + host + ":" + port );
+			System.out.println( e );
+		}
+		System.out.println( "Disconnected from: http://" + host + ":" + port );
+	}
+}

Added: trunk/vorbis-java/org/xiph/libvorbis/adj_stereo.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/adj_stereo.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/adj_stereo.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,44 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class adj_stereo {
+
+	int[] pre;
+	int[] post;
+	float[] kHz;
+	float[] lowpasskHz;
+
+
+	public adj_stereo( int[] _pre, int[] _post, float[] _kHz, float[] _lowpasskHz ) {
+
+		pre = new int[ PACKETBLOBS ];
+		System.arraycopy( _pre, 0, pre, 0, _pre.length );
+
+		post = new int[ PACKETBLOBS ];
+		System.arraycopy( _post, 0, post, 0, _post.length );
+
+		kHz = new float[ PACKETBLOBS ];
+		System.arraycopy( _kHz, 0, kHz, 0, _kHz.length );
+
+		lowpasskHz = new float[ PACKETBLOBS ];
+		System.arraycopy( _lowpasskHz, 0, lowpasskHz, 0, _lowpasskHz.length );
+	}
+
+	public adj_stereo( adj_stereo src ) {
+
+		this( src.pre, src.post, src.kHz, src.lowpasskHz );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/adj_stereo.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/alloc_chain.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/alloc_chain.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/alloc_chain.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,23 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class alloc_chain {
+	
+		Object[] ptr;
+
+		alloc_chain next;
+
+
+		public alloc_chain() {}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/alloc_chain.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/att3.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/att3.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/att3.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,37 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class att3 {
+
+	int[] att;		// att[P_NOISECURVES]
+	float boost;
+	float decay;
+
+
+	public att3( int[] _att, float _boost, float _decay ) {
+
+		att = new int[ P_NOISECURVES ];
+		System.arraycopy( _att, 0, att, 0, _att.length );
+
+		boost = _boost;
+		decay = _decay;
+	}
+
+	public att3( att3 src ) {
+
+		this( src.att, src.boost, src.decay );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/att3.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_info.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_info.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_info.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,52 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+// NOTE - rewritten in Vorbislib 1.1.2
+
+class bitrate_manager_info {	// detailed bitrate management setup
+
+	int avg_rate;			// long avg_rate
+	int min_rate;			// long min_rate
+	int max_rate;			// long max_rate
+	int reservoir_bits;		// long reservoir_bits
+	float reservoir_bias;	// double reservoir_bias
+	
+	float slew_damp;		// double slew_damp
+	
+	/*
+	float queue_avg_time;
+	float queue_avg_center;
+	float queue_minmax_time;
+	float queue_hardmin;
+	float queue_hardmax;
+	float queue_avgmin;
+	float queue_avgmax;
+
+	float avgfloat_downslew_max;
+	float avgfloat_upslew_max;
+	*/
+
+	public bitrate_manager_info() {}
+	
+	public bitrate_manager_info( int _avg_rate, int _min_rate, int _max_rate, int _reservoir_bits, float _reservoir_bias, float _slew_damp ) {
+		
+		avg_rate = _avg_rate;
+		min_rate = _min_rate;
+		max_rate = _max_rate;
+		reservoir_bits = _reservoir_bits;
+		reservoir_bias = _reservoir_bias;
+		
+		slew_damp = _slew_damp;
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_info.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,61 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class bitrate_manager_state {
+	
+	int managed;
+	
+	int avg_reservoir;		// long
+	int minmax_reservoir;	// long
+	int avg_bitsper;		// long
+	int min_bitsper;		// long
+	int max_bitsper;		// long
+	
+	int short_per_long;		// long
+	float avgfloat;			// double
+	
+	vorbis_block vb;
+	int choice;
+
+	
+	public bitrate_manager_state( vorbis_info vi ) {
+
+		codec_setup_info ci = vi.codec_setup;
+		bitrate_manager_info bi = ci.bi;
+		
+		if ( bi.reservoir_bits > 0 ) {
+			
+			int ratesamples = vi.rate;
+			int halfsamples = ci.blocksizes[0]>>1;
+			
+			short_per_long = ci.blocksizes[1]/ci.blocksizes[0];
+			managed=1;
+			
+			avg_bitsper = new Double( Math.rint(1.*bi.avg_rate*halfsamples/ratesamples) ).intValue();
+			min_bitsper = new Double( Math.rint(1.*bi.min_rate*halfsamples/ratesamples) ).intValue();
+			max_bitsper = new Double( Math.rint(1.*bi.max_rate*halfsamples/ratesamples) ).intValue();
+			
+			avgfloat = PACKETBLOBS/2;    
+			
+			// not a necessary fix, but one that leads to a more balanced typical initialization
+			{
+				int desired_fill = new Float(bi.reservoir_bits*bi.reservoir_bias).intValue();	// long
+				minmax_reservoir = desired_fill;
+				avg_reservoir = desired_fill;	
+			}
+		}    	
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/bitrate_manager_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/res_books_stereo.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/res_books_stereo.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/res_books_stereo.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,139 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+public class res_books_stereo {
+
+	public vorbis_mapping_template[] _mapres_template_44_stereo;
+
+
+	public res_books_stereo() {
+
+		vorbis_info_mapping0[] _map_nominal = new vorbis_info_mapping0[] { new vorbis_info_mapping0( 1, new int[]{0,0}, new int[]{0}, new int[]{0}, 1, new int[]{0}, new int[]{1} ), 
+																			new vorbis_info_mapping0( 1, new int[]{0,0}, new int[]{1}, new int[]{1}, 1, new int[]{0}, new int[]{1} ) };
+		
+		vorbis_info_residue0 _residue_44_low = new vorbis_info_residue0( 0, -1, -1, 9, -1, new int[]{0}, new int[]{-1},
+																		new float[] {  .5f,  1.5f,  2.5f,  2.5f,  4.5f,  8.5f,  16.5f, 32.5f },
+																		new float[] {  .5f,   .5f,   .5f,  999.f, 4.5f,  8.5f,  16.5f, 32.5f } );
+
+		vorbis_info_residue0 _residue_44_mid = new vorbis_info_residue0( 0,-1, -1, 10,-1, new int[]{0}, new int[]{-1},
+																		new float[] {  .5f,  1.5f,  1.5f,  2.5f,  2.5f,  4.5f,  8.5f,  16.5f, 32.5f },
+																		new float[] {  .5f,   .5f, 999.f,   .5f,  999.f, 4.5f,  8.5f,  16.5f, 32.5f } );
+
+		vorbis_info_residue0 _residue_44_high = new vorbis_info_residue0( 0,-1, -1, 10,-1, new int[]{0}, new int[]{-1},
+																		new float[] {  .5f,  1.5f,  2.5f,  4.5f,  8.5f, 16.5f, 32.5f, 71.5f, 157.5f },
+																		new float[] {  .5f,  1.5f,  2.5f,  3.5f,  4.5f,  8.5f, 16.5f, 71.5f, 157.5f } );
+		
+		
+		resbook_44s_n1 _resbook_44s_n1 = new resbook_44s_n1();
+		resbook_44sm_n1 _resbook_44sm_n1 = new resbook_44sm_n1();
+		
+		resbook_44s_0 _resbook_44s_0 = new resbook_44s_0();
+		resbook_44sm_0 _resbook_44sm_0 = new resbook_44sm_0();
+		
+		resbook_44s_1 _resbook_44s_1 = new resbook_44s_1();
+		resbook_44sm_1 _resbook_44sm_1 = new resbook_44sm_1 ();
+		
+		resbook_44s_2 _resbook_44s_2 = new resbook_44s_2();
+		resbook_44s_3 _resbook_44s_3 = new resbook_44s_3();
+		resbook_44s_4 _resbook_44s_4 = new resbook_44s_4();
+		resbook_44s_5 _resbook_44s_5 = new resbook_44s_5();
+		resbook_44s_6 _resbook_44s_6 = new resbook_44s_6();
+		resbook_44s_7 _resbook_44s_7 = new resbook_44s_7();
+		resbook_44s_8 _resbook_44s_8 = new resbook_44s_8();
+		resbook_44s_9 _resbook_44s_9 = new resbook_44s_9();
+
+
+		_mapres_template_44_stereo = new vorbis_mapping_template[] {
+				
+			// _res_44s_n1
+			new vorbis_mapping_template( _map_nominal, 
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_low, _resbook_44s_n1._huff_book__44cn1_s_short, _resbook_44sm_n1._huff_book__44cn1_sm_short, _resbook_44s_n1.books, _resbook_44sm_n1.books ),
+					new vorbis_residue_template( 2, 0,  _residue_44_low, _resbook_44s_n1._huff_book__44cn1_s_long, _resbook_44sm_n1._huff_book__44cn1_sm_long, _resbook_44s_n1.books, _resbook_44sm_n1.books ) 
+				} ),
+
+			// _res_44s_0
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_low, _resbook_44s_0._huff_book__44c0_s_short, _resbook_44sm_0._huff_book__44c0_sm_short, _resbook_44s_0.books, _resbook_44sm_0.books ),
+					new vorbis_residue_template( 2, 0,  _residue_44_low, _resbook_44s_0._huff_book__44c0_s_long, _resbook_44sm_0._huff_book__44c0_sm_long, _resbook_44s_0.books, _resbook_44sm_0.books ) 
+				} ),
+
+			// _res_44s_1
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_low, _resbook_44s_1._huff_book__44c1_s_short, _resbook_44sm_1._huff_book__44c1_sm_short, _resbook_44s_1.books, _resbook_44sm_1.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_low, _resbook_44s_1._huff_book__44c1_s_long,  _resbook_44sm_1._huff_book__44c1_sm_long, _resbook_44s_1.books, _resbook_44sm_1.books ) 
+				} ),
+
+			// _res_44s_2
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_2._huff_book__44c2_s_short, _resbook_44s_2._huff_book__44c2_s_short, _resbook_44s_2.books, _resbook_44s_2.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_2._huff_book__44c2_s_long, _resbook_44s_2._huff_book__44c2_s_long, _resbook_44s_2.books, _resbook_44s_2.books )
+				} ),
+
+			// _res_44s_3
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_3._huff_book__44c3_s_short, _resbook_44s_3._huff_book__44c3_s_short, _resbook_44s_3.books, _resbook_44s_3.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_3._huff_book__44c3_s_long, _resbook_44s_3._huff_book__44c3_s_long, _resbook_44s_3.books, _resbook_44s_3.books )
+				} ),
+
+			// _res_44s_4
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_4._huff_book__44c4_s_short, _resbook_44s_4._huff_book__44c4_s_short, _resbook_44s_4.books, _resbook_44s_4.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_4._huff_book__44c4_s_long, _resbook_44s_4._huff_book__44c4_s_long, _resbook_44s_4.books, _resbook_44s_4.books )
+				} ),
+
+			// _res_44s_5
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_5._huff_book__44c5_s_short, _resbook_44s_5._huff_book__44c5_s_short, _resbook_44s_5.books, _resbook_44s_5.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_mid, _resbook_44s_5._huff_book__44c5_s_long, _resbook_44s_5._huff_book__44c5_s_long, _resbook_44s_5.books, _resbook_44s_5.books )
+				} ),
+
+			// _res_44s_6
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_6._huff_book__44c6_s_short, _resbook_44s_6._huff_book__44c6_s_short, _resbook_44s_6.books, _resbook_44s_6.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_6._huff_book__44c6_s_long, _resbook_44s_6._huff_book__44c6_s_long, _resbook_44s_6.books, _resbook_44s_6.books )
+				} ),
+
+			// _res_44s_7
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_7._huff_book__44c7_s_short, _resbook_44s_7._huff_book__44c7_s_short, _resbook_44s_7.books, _resbook_44s_7.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_7._huff_book__44c7_s_long, _resbook_44s_7._huff_book__44c7_s_long, _resbook_44s_7.books, _resbook_44s_7.books )
+				} ),
+
+			// _res_44s_8
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_8._huff_book__44c8_s_short, _resbook_44s_8._huff_book__44c8_s_short, _resbook_44s_8.books, _resbook_44s_8.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_8._huff_book__44c8_s_long, _resbook_44s_8._huff_book__44c8_s_long, _resbook_44s_8.books, _resbook_44s_8.books )
+				} ),
+
+			// _res_44s_9
+			new vorbis_mapping_template( _map_nominal,
+				new vorbis_residue_template[] { 
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_9._huff_book__44c9_s_short, _resbook_44s_9._huff_book__44c9_s_short, _resbook_44s_9.books, _resbook_44s_9.books ),
+					new vorbis_residue_template( 2, 0, _residue_44_high, _resbook_44s_9._huff_book__44c9_s_long, _resbook_44s_9._huff_book__44c9_s_long, _resbook_44s_9.books, _resbook_44s_9.books )
+				} ),
+		};
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/res_books_stereo.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_0.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_0.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_0.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1170 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_0 {
+	
+	static int _vq_quantlist__44c0_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c0_s_p1_0[] = {
+		 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0,
+		 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 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, 8,10, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0,
+		 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0,
+		 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,11,
+		 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p1_0,
+		_vq_quantmap__44c0_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c0_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c0_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c0_s_p1_0,
+		null,
+		_vq_auxt__44c0_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c0_s_p2_0[] = {
+		 1, 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, 5, 5, 7, 6, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 5, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p2_0,
+		_vq_quantmap__44c0_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c0_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c0_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c0_s_p2_0,
+		null,
+		_vq_auxt__44c0_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c0_s_p3_0[] = {
+		 1, 3, 2, 8, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0,
+		 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7,
+		 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
+		 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p3_0,
+		_vq_quantmap__44c0_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c0_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c0_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c0_s_p3_0,
+		null,
+		_vq_auxt__44c0_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c0_s_p4_0[] = {
+		 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7,
+		 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7,
+		 7, 8, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0,
+		 9, 9, 8, 8,10,10, 0, 0, 0, 8, 9, 8, 8,10,10, 0,
+		 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c0_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p4_0,
+		_vq_quantmap__44c0_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c0_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c0_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c0_s_p4_0,
+		null,
+		_vq_auxt__44c0_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c0_s_p5_0[] = {
+		 1, 4, 3, 6, 6, 8, 7, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,10,
+		11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,
+		10,11,11, 0, 0, 0, 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,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,
+		10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,11,12,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, 9,
+		10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		10,10,11,11,11,11,11,12,12,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,11,10,11,11,11,11,12,12,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,12,11,12,12,12,12,13,13, 0, 0,
+		 0, 0, 0, 0, 0,11,11,11,12,12,12,12,13,13,13, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c0_s_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p5_0,
+		_vq_quantmap__44c0_s_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c0_s_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c0_s_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c0_s_p5_0,
+		null,
+		_vq_auxt__44c0_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c0_s_p6_0[] = {
+		 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10,
+		 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11,
+		11,12,10,11, 6, 9, 9,11,10,11,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,10,12,11,11,11,11,11, 7,
+		 9, 9,10,10,10,11,11,10, 6, 9, 9,11,10,10,11,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c0_s_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p6_0,
+		_vq_quantmap__44c0_s_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c0_s_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c0_s_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c0_s_p6_0,
+		null,
+		_vq_auxt__44c0_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c0_s_p6_1[] = {
+		 2, 3, 3, 6, 6, 7, 7, 7, 7, 7, 8,10,10,10, 6, 6,
+		 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8,
+		 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8,
+		 8, 8,10,10,10, 7, 7, 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, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c0_s_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p6_1,
+		_vq_quantmap__44c0_s_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c0_s_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c0_s_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c0_s_p6_1,
+		null,
+		_vq_auxt__44c0_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c0_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8,
+		 8, 8, 8, 9, 9,10,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,11, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10,
+		10,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11,
+		11,11,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12,
+		13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0,
+		 0, 0, 0, 0,11,11,11,11,13,12,13,13, 0, 0, 0, 0,
+		 0,12,12,11,11,12,12,13,13,
+	};
+
+	static float _vq_quantthresh__44c0_s_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p7_0,
+		_vq_quantmap__44c0_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c0_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c0_s_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c0_s_p7_0,
+		null,
+		_vq_auxt__44c0_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c0_s_p7_1[] = {
+		 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6,
+		 6, 6, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c0_s_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p7_1,
+		_vq_quantmap__44c0_s_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c0_s_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c0_s_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c0_s_p7_1,
+		null,
+		_vq_auxt__44c0_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p8_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c0_s_p8_0[] = {
+		 1, 5, 5,10,10, 6, 9, 8,10,10, 6,10, 9,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,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,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, 8,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,
+		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,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,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,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,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,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,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,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,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,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,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,
+	};
+
+	static float _vq_quantthresh__44c0_s_p8_0[] = {
+		-331.5f, -110.5f, 110.5f, 331.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p8_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p8_0,
+		_vq_quantmap__44c0_s_p8_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c0_s_p8_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c0_s_p8_0,
+		1, -518283264, 1627103232, 3, 0,
+		_vq_quantlist__44c0_s_p8_0,
+		null,
+		_vq_auxt__44c0_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c0_s_p8_1[] = {
+		 1, 4, 4, 6, 6, 7, 7, 9, 9,11,12,13,12, 6, 5, 5,
+		 7, 7, 8, 8,10, 9,12,12,12,12, 6, 5, 5, 7, 7, 8,
+		 8,10, 9,12,11,11,13,16, 7, 7, 8, 8, 9, 9,10,10,
+		12,12,13,12,16, 7, 7, 8, 7, 9, 9,10,10,11,12,12,
+		13,16,10,10, 8, 8,10,10,11,12,12,12,13,13,16,11,
+		10, 8, 7,11,10,11,11,12,11,13,13,16,16,16,10,10,
+		10,10,11,11,13,12,13,13,16,16,16,11, 9,11, 9,15,
+		13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12,
+		14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16,
+		16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16,
+		16,13,13,12,12,14,14,15,13,
+	};
+
+	static float _vq_quantthresh__44c0_s_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p8_1,
+		_vq_quantmap__44c0_s_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c0_s_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c0_s_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44c0_s_p8_1,
+		null,
+		_vq_auxt__44c0_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_s_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c0_s_p8_2[] = {
+		 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9,
+		 9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9,
+		 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 8, 9, 9,
+		 9, 9, 9,10, 9,10,10,10,10, 7, 7, 8, 8, 9, 9, 9,
+		 9, 9, 9,10, 9,10,10,10,10,10, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10, 9,11,10,10,10,10, 8, 8, 9,
+		 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9,10, 9, 9,10,11,10,10,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,10,11,
+		11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,
+		11,11,11,11, 9,10, 9,10, 9, 9, 9, 9,10, 9,10,11,
+		10,11,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9,10,11,
+		11,10,11,11,10,11,10,10,10, 9, 9, 9, 9,10, 9, 9,
+		10,11,10,11,11,11,11,10,11,10,10, 9,10, 9, 9, 9,
+		10,
+	};
+
+	static float _vq_quantthresh__44c0_s_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c0_s_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_s_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_s_p8_2,
+		_vq_quantmap__44c0_s_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c0_s_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c0_s_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c0_s_p8_2,
+		null,
+		_vq_auxt__44c0_s_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c0_s_short[] = {
+		 9, 8,12,11,12,13,14,14,16, 6, 1, 5, 6, 6, 9,12,
+		14,17, 9, 4, 5, 9, 7, 9,13,15,16, 8, 5, 8, 6, 8,
+		10,13,17,17, 9, 6, 7, 7, 8, 9,13,15,17,11, 8, 9,
+		 9, 9,10,12,16,16,13, 7, 8, 7, 7, 9,12,14,15,13,
+		 6, 7, 5, 5, 7,10,13,13,14, 7, 8, 5, 6, 7, 9,10,
+		12,
+	};
+
+	static int _huff_lengthlist__44c0_s_long[] = {
+		 5, 4, 8, 9, 8, 9,10,12,15, 4, 1, 5, 5, 6, 8,11,
+		12,12, 8, 5, 8, 9, 9,11,13,12,12, 9, 5, 8, 5, 7,
+		 9,12,13,13, 8, 6, 8, 7, 7, 9,11,11,11, 9, 7, 9,
+		 7, 7, 7, 7,10,12,10,10,11, 9, 8, 7, 7, 9,11,11,
+		12,13,12,11, 9, 8, 9,11,13,16,16,15,15,12,10,11,
+		12,
+	};
+
+
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c0_s_short;
+	public static_codebook _huff_book__44c0_s_long;
+
+
+	public resbook_44s_0() {
+		
+		_huff_book__44c0_s_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c0_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c0_s_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c0_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c0_s_p1_0 },
+			{ zero, zero, _44c0_s_p2_0 },
+			{ zero, zero, _44c0_s_p3_0 },
+			{ zero, zero, _44c0_s_p4_0 },
+			{ zero, zero, _44c0_s_p5_0 },
+			{ _44c0_s_p6_0, _44c0_s_p6_1 },
+			{ _44c0_s_p7_0, _44c0_s_p7_1 },
+			{ _44c0_s_p8_0, _44c0_s_p8_1, _44c0_s_p8_2 },
+		} );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_0.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1151 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_1 {
+	
+	static int _vq_quantlist__44c1_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c1_s_p1_0[] = {
+		 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0,
+		 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 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, 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, 9,10, 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, 8, 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, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 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,10, 9, 0,
+		 0, 0, 0, 0, 0, 8, 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, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p1_0,
+		_vq_quantmap__44c1_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c1_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c1_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c1_s_p1_0,
+		null,
+		_vq_auxt__44c1_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c1_s_p2_0[] = {
+		 2, 3, 4, 6, 5, 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, 5, 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, 8, 8,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 6, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p2_0,
+		_vq_quantmap__44c1_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c1_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c1_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c1_s_p2_0,
+		null,
+		_vq_auxt__44c1_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c1_s_p3_0[] = {
+		 1, 3, 2, 7, 7, 0, 0, 0, 0, 0,13,13, 6, 6, 0, 0,
+		 0, 0, 0,12, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7,
+		 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
+		 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
+		 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p3_0,
+		_vq_quantmap__44c1_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c1_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c1_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c1_s_p3_0,
+		null,
+		_vq_auxt__44c1_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c1_s_p4_0[] = {
+		 1, 3, 3, 6, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7,
+		 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7,
+		 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0,
+		 9, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0,
+		 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11,
+		11,
+	};
+
+	static float _vq_quantthresh__44c1_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p4_0,
+		_vq_quantmap__44c1_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c1_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c1_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c1_s_p4_0,
+		null,
+		_vq_auxt__44c1_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c1_s_p5_0[] = {
+		 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10,
+		11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,
+		10,11,11, 0, 0, 0, 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,12,11, 0, 0, 0, 8, 8, 9, 9, 9,10,10,10,
+		10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10, 9,10,
+		10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,
+		10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		10,10,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,10,10,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,11,11,11,11,12,12,13,13,13,13, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c1_s_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p5_0,
+		_vq_quantmap__44c1_s_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c1_s_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c1_s_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c1_s_p5_0,
+		null,
+		_vq_auxt__44c1_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c1_s_p6_0[] = {
+		 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, 6,10,10,11,11,
+		11,11,10,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 7,
+		 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,12,10,
+		11,
+	};
+
+	static float _vq_quantthresh__44c1_s_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p6_0,
+		_vq_quantmap__44c1_s_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c1_s_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c1_s_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c1_s_p6_0,
+		null,
+		_vq_auxt__44c1_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c1_s_p6_1[] = {
+		 2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6,
+		 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8,
+		 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8,
+		 8, 8,10,10,10, 7, 7, 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, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c1_s_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p6_1,
+		_vq_quantmap__44c1_s_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c1_s_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c1_s_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c1_s_p6_1,
+		null,
+		_vq_auxt__44c1_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 9, 7, 5, 6,
+		 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8,
+		 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9,
+		10,10,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,
+		11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,11, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10,
+		10,10,11,11,12,11,12,12, 0, 0, 0,10,10,10, 9,11,
+		11,12,11,13,12, 0, 0, 0,13,13,10,10,11,11,12,12,
+		13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0,
+		 0, 0, 0, 0,11,12,11,11,12,12,14,13, 0, 0, 0, 0,
+		 0,12,11,11,11,13,10,14,13,
+	};
+
+	static float _vq_quantthresh__44c1_s_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p7_0,
+		_vq_quantmap__44c1_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_s_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c1_s_p7_0,
+		null,
+		_vq_auxt__44c1_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c1_s_p7_1[] = {
+		 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6,
+		 6, 6, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c1_s_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p7_1,
+		_vq_quantmap__44c1_s_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c1_s_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c1_s_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c1_s_p7_1,
+		null,
+		_vq_auxt__44c1_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_s_p8_0[] = {
+		 1, 4, 3,10,10,10,10,10,10,10,10,10,10, 4, 8, 6,
+		10,10,10,10,10,10,10,10,10,10, 4, 8, 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,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,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,
+	};
+
+	static float _vq_quantthresh__44c1_s_p8_0[] = {
+		-1215.5f, -994.5f, -773.5f, -552.5f, -331.5f, -110.5f, 110.5f, 331.5f, 
+		552.5f, 773.5f, 994.5f, 1215.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p8_0,
+		_vq_quantmap__44c1_s_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_s_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_s_p8_0,
+		1, -514541568, 1627103232, 4, 0,
+		_vq_quantlist__44c1_s_p8_0,
+		null,
+		_vq_auxt__44c1_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_s_p8_1[] = {
+		 1, 4, 4, 6, 5, 7, 7, 9, 9,10,10,12,12, 6, 5, 5,
+		 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8,
+		 8,10,10,11,11,12,12,15, 7, 7, 8, 8, 9, 9,11,11,
+		12,12,13,12,15, 8, 8, 8, 7, 9, 9,10,10,12,12,13,
+		13,16,11,10, 8, 8,10,10,11,11,12,12,13,13,16,11,
+		11, 9, 8,11,10,11,11,12,12,13,12,16,16,16,10,11,
+		10,11,12,12,12,12,13,13,16,16,16,11, 9,11, 9,14,
+		12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13,
+		14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16,
+		16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16,
+		16,13,12,12,11,14,12,15,13,
+	};
+
+	static float _vq_quantthresh__44c1_s_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p8_1,
+		_vq_quantmap__44c1_s_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_s_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_s_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44c1_s_p8_1,
+		null,
+		_vq_auxt__44c1_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_s_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c1_s_p8_2[] = {
+		 2, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,
+		 9, 9,10,10,10, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9,
+		 9,10, 9, 9,10,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,10,11,11,11, 8, 8, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, 8, 8, 9,
+		 9, 9, 9,10, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,11,11,
+		11,11,11, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,10,11,11,
+		11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11,
+		11,11,11,11,11, 9,10, 9, 9, 9, 9,10, 9, 9, 9,11,
+		11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9,
+		11,11,10,11,11,11,11,10,11, 9, 9, 9, 9, 9, 9, 9,
+		 9,
+	};
+
+	static float _vq_quantthresh__44c1_s_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c1_s_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_s_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_s_p8_2,
+		_vq_quantmap__44c1_s_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c1_s_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c1_s_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c1_s_p8_2,
+		null,
+		_vq_auxt__44c1_s_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c1_s_short[] = {
+		 6, 8,13,12,13,14,15,16,16, 4, 2, 4, 7, 6, 8,11,
+		13,15,10, 4, 4, 8, 6, 8,11,14,17,11, 5, 6, 5, 6,
+		 8,12,14,17,11, 5, 5, 6, 5, 7,10,13,16,12, 6, 7,
+		 8, 7, 8,10,13,15,13, 8, 8, 7, 7, 8,10,12,15,15,
+		 7, 7, 5, 5, 7, 9,12,14,15, 8, 8, 6, 6, 7, 8,10,
+		11,
+	};
+	
+	static int _huff_lengthlist__44c1_s_long[] = {
+		 5, 5, 9,10, 9, 9,10,11,12, 5, 1, 5, 6, 6, 7,10,
+		12,14, 9, 5, 6, 8, 8,10,12,14,14,10, 5, 8, 5, 6,
+		 8,11,13,14, 9, 5, 7, 6, 6, 8,10,12,11, 9, 7, 9,
+		 7, 6, 6, 7,10,10,10, 9,12, 9, 8, 7, 7,10,12,11,
+		11,13,12,10, 9, 8, 9,11,11,14,15,15,13,11, 9, 9,
+		11,
+	};
+
+
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c1_s_short;
+	public static_codebook _huff_book__44c1_s_long;
+
+
+	public resbook_44s_1() {
+		
+		_huff_book__44c1_s_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c1_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c1_s_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c1_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c1_s_p1_0 },
+			{ zero, zero, _44c1_s_p2_0 },
+			{ zero, zero, _44c1_s_p3_0 },
+			{ zero, zero, _44c1_s_p4_0 },
+			{ zero, zero, _44c1_s_p5_0 },
+			{ _44c1_s_p6_0, _44c1_s_p6_1 },
+			{ _44c1_s_p7_0, _44c1_s_p7_1 },
+			{ _44c1_s_p8_0, _44c1_s_p8_1, _44c1_s_p8_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_2.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_2.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_2.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1231 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_2 {
+	
+	static int _vq_quantlist__44c2_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c2_s_p1_0[] = {
+		 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0,
+		 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,
+		 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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, 9, 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, 8, 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, 4, 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, 8, 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, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c2_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p1_0,
+		_vq_quantmap__44c2_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c2_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c2_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c2_s_p1_0,
+		null,
+		_vq_auxt__44c2_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c2_s_p2_0[] = {
+		 1, 4, 4, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0,
+		 8, 8, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8,
+		 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0,
+		 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,11,11, 0, 0,
+		 0,11,11, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 7,
+		 8, 8, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, 0,11,
+		12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 6, 8, 8, 0, 0, 0,11,11, 0, 0, 0,11,11,
+		 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0,
+		 0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 8, 9, 9, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0,
+		12,11, 0, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0,12,
+		11, 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c2_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p2_0,
+		_vq_quantmap__44c2_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c2_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c2_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c2_s_p2_0,
+		null,
+		_vq_auxt__44c2_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p3_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c2_s_p3_0[] = {
+		 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, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c2_s_p3_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p3_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p3_0,
+		_vq_quantmap__44c2_s_p3_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c2_s_p3_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c2_s_p3_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c2_s_p3_0,
+		null,
+		_vq_auxt__44c2_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c2_s_p4_0[] = {
+		 1, 3, 3, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0,
+		 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 7, 7, 6, 6,
+		 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0,
+		 7, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c2_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p4_0,
+		_vq_quantmap__44c2_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c2_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c2_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c2_s_p4_0,
+		null,
+		_vq_auxt__44c2_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p5_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c2_s_p5_0[] = {
+		 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 7, 7, 7, 7, 7, 7,
+		 9, 9, 0, 7, 7, 7, 7, 7, 7, 9, 9, 0, 8, 8, 7, 7,
+		 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0,
+		 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0,
+		 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11,
+		11,
+	};
+
+	static float _vq_quantthresh__44c2_s_p5_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p5_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p5_0,
+		_vq_quantmap__44c2_s_p5_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c2_s_p5_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c2_s_p5_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c2_s_p5_0,
+		null,
+		_vq_auxt__44c2_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p6_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c2_s_p6_0[] = {
+		 1, 4, 3, 6, 6, 8, 8, 9, 9, 9, 9, 9, 9,10,10,11,
+		11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11,
+		12,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,
+		11,11,12, 0, 8, 8, 7, 7, 9, 9,10,10, 9, 9,10,10,
+		11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, 9,10,
+		10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,
+		11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,
+		10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,
+		10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		10,10,10,10,11,11,12,12,13,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0,
+		 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c2_s_p6_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p6_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p6_0,
+		_vq_quantmap__44c2_s_p6_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c2_s_p6_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c2_s_p6_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c2_s_p6_0,
+		null,
+		_vq_auxt__44c2_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p7_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c2_s_p7_0[] = {
+		 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11,
+		 9, 9, 4, 7, 7,10, 9, 9,10, 9, 9, 7,10,10,11,10,
+		11,11,10,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 6,
+		 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,12,10,
+		11,
+	};
+
+	static float _vq_quantthresh__44c2_s_p7_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p7_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p7_0,
+		_vq_quantmap__44c2_s_p7_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c2_s_p7_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c2_s_p7_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c2_s_p7_0,
+		null,
+		_vq_auxt__44c2_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c2_s_p7_1[] = {
+		 2, 3, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 7, 7, 6, 6,
+		 7, 7, 8, 8, 8, 8, 9, 6, 6, 6, 6, 7, 7, 8, 8, 8,
+		 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 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, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c2_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p7_1,
+		_vq_quantmap__44c2_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c2_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c2_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c2_s_p7_1,
+		null,
+		_vq_auxt__44c2_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c2_s_p8_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8,
+		 8, 8, 8, 9, 9,10,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,11, 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,13, 0, 0, 0,10,10,10,10,11,
+		11,12,12,12,12, 0, 0, 0,14,14,10,11,11,11,12,12,
+		13,13, 0, 0, 0,14,14,11,10,11,11,13,12,13,13, 0,
+		 0, 0, 0, 0,12,12,11,12,13,12,14,14, 0, 0, 0, 0,
+		 0,12,12,12,12,13,12,14,14,
+	};
+
+	static float _vq_quantthresh__44c2_s_p8_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p8_0,
+		_vq_quantmap__44c2_s_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c2_s_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c2_s_p8_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c2_s_p8_0,
+		null,
+		_vq_auxt__44c2_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p8_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c2_s_p8_1[] = {
+		 2, 4, 4, 5, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c2_s_p8_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p8_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p8_1,
+		_vq_quantmap__44c2_s_p8_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c2_s_p8_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c2_s_p8_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c2_s_p8_1,
+		null,
+		_vq_auxt__44c2_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p9_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c2_s_p9_0[] = {
+		 1, 5, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8,
+		11,11,11,11,11,11,11,11,11,11, 2, 8, 7,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,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,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,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,11,11,11,11,11,11,11,11,
+	};
+
+	static float _vq_quantthresh__44c2_s_p9_0[] = {
+		-1215.5f, -994.5f, -773.5f, -552.5f, -331.5f, -110.5f, 110.5f, 331.5f, 
+		552.5f, 773.5f, 994.5f, 1215.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p9_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p9_0,
+		_vq_quantmap__44c2_s_p9_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c2_s_p9_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c2_s_p9_0,
+		1, -514541568, 1627103232, 4, 0,
+		_vq_quantlist__44c2_s_p9_0,
+		null,
+		_vq_auxt__44c2_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p9_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c2_s_p9_1[] = {
+		 1, 4, 4, 6, 6, 7, 6, 8, 8,10, 9,10,10, 6, 5, 5,
+		 7, 7, 8, 7,10, 9,11,11,12,13, 6, 5, 5, 7, 7, 8,
+		 8,10,10,11,11,13,13,18, 8, 8, 8, 8, 9, 9,10,10,
+		12,12,12,13,18, 8, 8, 8, 8, 9, 9,10,10,12,12,13,
+		13,18,11,11, 8, 8,10,10,11,11,12,11,13,12,18,11,
+		11, 9, 7,10,10,11,11,11,12,12,13,17,17,17,10,10,
+		11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13,
+		12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10,
+		13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17,
+		17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16,
+		17,13,12,12,10,13,11,14,14,
+	};
+
+	static float _vq_quantthresh__44c2_s_p9_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p9_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p9_1,
+		_vq_quantmap__44c2_s_p9_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c2_s_p9_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c2_s_p9_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44c2_s_p9_1,
+		null,
+		_vq_auxt__44c2_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c2_s_p9_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c2_s_p9_2[] = {
+		 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
+		 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10, 8, 7, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 9, 9, 9,10,11,10, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10,10,11,10, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 9, 9,10, 9,10,11,10,11,11,11, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11,11,11, 9, 9,
+		 9, 9, 9, 9,10, 9, 9, 9,10,10,11,11,11,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,11,11,11,11,
+		 9, 9, 9, 9,10,10, 9, 9, 9,10,10,10,11,11,11,11,
+		11,11,11, 9, 9, 9,10, 9, 9,10,10,10,10,11,11,10,
+		11,11,11,11,10, 9,10,10, 9, 9, 9, 9,10,10,11,10,
+		11,11,11,11,11, 9, 9, 9, 9,10, 9,10,10,10,10,11,
+		10,11,11,11,11,11,10,10, 9, 9,10, 9,10,10,10,10,
+		10,10,10,11,11,11,11,11,11, 9, 9,10, 9,10, 9,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c2_s_p9_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c2_s_p9_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c2_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c2_s_p9_2,
+		_vq_quantmap__44c2_s_p9_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c2_s_p9_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c2_s_p9_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c2_s_p9_2,
+		null,
+		_vq_auxt__44c2_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c2_s_short[] = {
+		11, 9,13,12,12,11,12,12,13,15, 8, 2,11, 4, 8, 5,
+		 7,10,12,15,13, 7,10, 9, 8, 8,10,13,17,17,11, 4,
+		12, 5, 9, 5, 8,11,14,16,12, 6, 8, 7, 6, 6, 8,11,
+		13,16,11, 4, 9, 5, 6, 4, 6,10,13,16,11, 6,11, 7,
+		 7, 6, 7,10,13,15,13, 9,12, 9, 8, 6, 8,10,12,14,
+		14,10,10, 8, 6, 5, 6, 9,11,13,15,11,11, 9, 6, 5,
+		 6, 8, 9,12,
+	};
+	
+	static int _huff_lengthlist__44c2_s_long[] = {
+		 6, 6,12,10,10,10, 9,10,12,12, 6, 1,10, 5, 6, 6,
+		 7, 9,11,14,12, 9, 8,11, 7, 8, 9,11,13,15,10, 5,
+		12, 7, 8, 7, 9,12,14,15,10, 6, 7, 8, 5, 6, 7, 9,
+		12,14, 9, 6, 8, 7, 6, 6, 7, 9,12,12, 9, 7, 9, 9,
+		 7, 6, 6, 7,10,10,10, 9,10,11, 8, 7, 6, 6, 8,10,
+		12,11,13,13,11,10, 8, 8, 8,10,11,13,15,15,14,13,
+		10, 8, 8, 9,
+	};
+
+	
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c2_s_short;
+	public static_codebook _huff_book__44c2_s_long;
+
+
+	public resbook_44s_2() {
+		
+		_huff_book__44c2_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c2_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c2_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c2_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c2_s_p1_0 },
+			{ zero, zero, _44c2_s_p2_0 },
+			{ zero, zero, _44c2_s_p3_0 },
+			{ zero, zero, _44c2_s_p4_0 },
+			{ zero, zero, _44c2_s_p5_0 },
+			{ zero, zero, _44c2_s_p6_0 },
+			{ _44c2_s_p7_0, _44c2_s_p7_1 },
+			{ _44c2_s_p8_0, _44c2_s_p8_1 },
+			{ _44c2_s_p9_0, _44c2_s_p9_1, _44c2_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_2.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_3.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_3.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_3.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1237 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_3 {
+
+	static int _vq_quantlist__44c3_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c3_s_p1_0[] = {
+		 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, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c3_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p1_0,
+		_vq_quantmap__44c3_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c3_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c3_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c3_s_p1_0,
+		null,
+		_vq_auxt__44c3_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c3_s_p2_0[] = {
+		 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, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c3_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p2_0,
+		_vq_quantmap__44c3_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c3_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c3_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c3_s_p2_0,
+		null,
+		_vq_auxt__44c3_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p3_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c3_s_p3_0[] = {
+		 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, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c3_s_p3_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p3_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p3_0,
+		_vq_quantmap__44c3_s_p3_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c3_s_p3_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c3_s_p3_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c3_s_p3_0,
+		null,
+		_vq_auxt__44c3_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c3_s_p4_0[] = {
+		 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
+		 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
+		 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
+		 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c3_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p4_0,
+		_vq_quantmap__44c3_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c3_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c3_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c3_s_p4_0,
+		null,
+		_vq_auxt__44c3_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p5_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c3_s_p5_0[] = {
+		 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 float _vq_quantthresh__44c3_s_p5_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p5_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p5_0,
+		_vq_quantmap__44c3_s_p5_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c3_s_p5_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c3_s_p5_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c3_s_p5_0,
+		null,
+		_vq_auxt__44c3_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p6_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c3_s_p6_0[] = {
+		 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 float _vq_quantthresh__44c3_s_p6_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p6_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p6_0,
+		_vq_quantmap__44c3_s_p6_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c3_s_p6_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c3_s_p6_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c3_s_p6_0,
+		null,
+		_vq_auxt__44c3_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p7_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c3_s_p7_0[] = {
+		 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 float _vq_quantthresh__44c3_s_p7_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p7_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p7_0,
+		_vq_quantmap__44c3_s_p7_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c3_s_p7_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c3_s_p7_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c3_s_p7_0,
+		null,
+		_vq_auxt__44c3_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c3_s_p7_1[] = {
+		 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 float _vq_quantthresh__44c3_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p7_1,
+		_vq_quantmap__44c3_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c3_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c3_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c3_s_p7_1,
+		null,
+		_vq_auxt__44c3_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c3_s_p8_0[] = {
+		 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 float _vq_quantthresh__44c3_s_p8_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p8_0,
+		_vq_quantmap__44c3_s_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c3_s_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c3_s_p8_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c3_s_p8_0,
+		null,
+		_vq_auxt__44c3_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p8_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c3_s_p8_1[] = {
+		 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 float _vq_quantthresh__44c3_s_p8_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p8_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p8_1,
+		_vq_quantmap__44c3_s_p8_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c3_s_p8_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c3_s_p8_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c3_s_p8_1,
+		null,
+		_vq_auxt__44c3_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p9_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c3_s_p9_0[] = {
+		 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 float _vq_quantthresh__44c3_s_p9_0[] = {
+		-1402.5f, -1147.5f, -892.5f, -637.5f, -382.5f, -127.5f, 127.5f, 382.5f, 
+		637.5f, 892.5f, 1147.5f, 1402.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p9_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p9_0,
+		_vq_quantmap__44c3_s_p9_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c3_s_p9_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c3_s_p9_0,
+		1, -514332672, 1627381760, 4, 0,
+		_vq_quantlist__44c3_s_p9_0,
+		null,
+		_vq_auxt__44c3_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p9_1[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c3_s_p9_1[] = {
+		 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 float _vq_quantthresh__44c3_s_p9_1[] = {
+		-110.5f, -93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 
+		25.5f, 42.5f, 59.5f, 76.5f, 93.5f, 110.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p9_1[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p9_1,
+		_vq_quantmap__44c3_s_p9_1,
+		15,
+		15
+	);
+
+	static static_codebook _44c3_s_p9_1 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c3_s_p9_1,
+		1, -522338304, 1620115456, 4, 0,
+		_vq_quantlist__44c3_s_p9_1,
+		null,
+		_vq_auxt__44c3_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c3_s_p9_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c3_s_p9_2[] = {
+		 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 float _vq_quantthresh__44c3_s_p9_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c3_s_p9_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c3_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c3_s_p9_2,
+		_vq_quantmap__44c3_s_p9_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c3_s_p9_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c3_s_p9_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c3_s_p9_2,
+		null,
+		_vq_auxt__44c3_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c3_s_short[] = {
+		10, 9,13,11,14,10,12,13,13,14, 7, 2,12, 5,10, 5,
+		 7,10,12,14,12, 6, 9, 8, 7, 7, 9,11,13,16,10, 4,
+		12, 5,10, 6, 8,12,14,16,12, 6, 8, 7, 6, 5, 7,11,
+		12,16,10, 4, 8, 5, 6, 4, 6, 9,13,16,10, 6,10, 7,
+		 7, 6, 7, 9,13,15,12, 9,11, 9, 8, 6, 7,10,12,14,
+		14,11,10, 9, 6, 5, 6, 9,11,13,15,13,11,10, 6, 5,
+		 6, 8, 9,11,
+	};
+
+	static int _huff_lengthlist__44c3_s_long[] = {
+		 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_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c3_s_short;
+	public static_codebook _huff_book__44c3_s_long;
+
+
+	public resbook_44s_3() {
+		
+		_huff_book__44c3_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c3_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c3_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c3_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c3_s_p1_0 },
+			{ zero, zero, _44c3_s_p2_0 },
+			{ zero, zero, _44c3_s_p3_0 },
+			{ zero, zero, _44c3_s_p4_0 },
+			{ zero, zero, _44c3_s_p5_0 },
+			{ zero, zero, _44c3_s_p6_0 },
+			{ _44c3_s_p7_0, _44c3_s_p7_1 },
+			{ _44c3_s_p8_0, _44c3_s_p8_1 },
+			{ _44c3_s_p9_0, _44c3_s_p9_1, _44c3_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_3.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_4.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_4.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_4.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1250 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_4 {
+
+	static int _vq_quantlist__44c4_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c4_s_p1_0[] = {
+		 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0,
+		 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,
+		 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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, 9, 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, 8, 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, 4, 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, 8, 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, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c4_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p1_0,
+		_vq_quantmap__44c4_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c4_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c4_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c4_s_p1_0,
+		null,
+		_vq_auxt__44c4_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c4_s_p2_0[] = {
+		 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
+		 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7,
+		 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
+		 0, 0, 5, 6, 6, 0, 0, 0, 7, 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, 8, 7, 0, 0, 0, 7, 7, 0, 0,
+		 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5,
+		 7, 8, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9,
+		 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 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,
+		 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0,
+		10,10, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c4_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p2_0,
+		_vq_quantmap__44c4_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c4_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c4_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c4_s_p2_0,
+		null,
+		_vq_auxt__44c4_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p3_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c4_s_p3_0[] = {
+		 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 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, 5, 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, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c4_s_p3_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p3_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p3_0,
+		_vq_quantmap__44c4_s_p3_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c4_s_p3_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c4_s_p3_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c4_s_p3_0,
+		null,
+		_vq_auxt__44c4_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c4_s_p4_0[] = {
+		 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
+		 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
+		 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
+		 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c4_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p4_0,
+		_vq_quantmap__44c4_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c4_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c4_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c4_s_p4_0,
+		null,
+		_vq_auxt__44c4_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p5_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c4_s_p5_0[] = {
+		 2, 3, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7,
+		 9, 9, 0, 4, 5, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7,
+		 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0, 0,
+		 9, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0,
+		 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c4_s_p5_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p5_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p5_0,
+		_vq_quantmap__44c4_s_p5_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c4_s_p5_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c4_s_p5_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c4_s_p5_0,
+		null,
+		_vq_auxt__44c4_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p6_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c4_s_p6_0[] = {
+		 2, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,
+		11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,
+		11,11, 0, 4, 4, 7, 6, 8, 8, 9, 9, 9, 9,10,10,11,
+		11,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,
+		11,11,11,12, 0, 0, 0, 7, 7, 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, 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,11,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, 9,
+		 9,10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9,
+		 9, 9, 9,10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0,
+		10,10,10,10,11,11,11,11,12,12,13,12, 0, 0, 0, 0,
+		 0, 0, 0,10,10,11,11,11,11,12,12,12,12, 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,12,12,12,12,12,12,13,13,13,13,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13,
+		13,
+	};
+
+	static float _vq_quantthresh__44c4_s_p6_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p6_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p6_0,
+		_vq_quantmap__44c4_s_p6_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c4_s_p6_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c4_s_p6_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c4_s_p6_0,
+		null,
+		_vq_auxt__44c4_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p7_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c4_s_p7_0[] = {
+		 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,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9,
+		11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6,
+		 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c4_s_p7_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p7_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p7_0,
+		_vq_quantmap__44c4_s_p7_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c4_s_p7_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c4_s_p7_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c4_s_p7_0,
+		null,
+		_vq_auxt__44c4_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c4_s_p7_1[] = {
+		 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, 8, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8,
+		 8, 8,10,10,10, 7, 7, 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, 9, 9,
+	};
+
+	static float _vq_quantthresh__44c4_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p7_1,
+		_vq_quantmap__44c4_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c4_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c4_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c4_s_p7_1,
+		null,
+		_vq_auxt__44c4_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c4_s_p8_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8,
+		 8, 9, 9,10,10,11,11, 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, 9, 9,10,10,10,10,11,11, 0,13,
+		13, 9, 9,10, 9,10,10,11,11,11,12, 0, 0, 0,10,10,
+		10,10,10,10,11,11,12,12, 0, 0, 0,10,10,10,10,10,
+		10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12,
+		12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,13, 0,
+		 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0,
+		 0,13,12,12,12,12,12,13,13,
+	};
+
+	static float _vq_quantthresh__44c4_s_p8_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p8_0,
+		_vq_quantmap__44c4_s_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c4_s_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c4_s_p8_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c4_s_p8_0,
+		null,
+		_vq_auxt__44c4_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p8_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c4_s_p8_1[] = {
+		 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 5, 4, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c4_s_p8_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p8_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p8_1,
+		_vq_quantmap__44c4_s_p8_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c4_s_p8_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c4_s_p8_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c4_s_p8_1,
+		null,
+		_vq_auxt__44c4_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p9_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c4_s_p9_0[] = {
+		 1, 3, 3,12,12,12,12,12,12,12,12,12,12, 4, 7, 7,
+		12,12,12,12,12,12,12,12,12,12, 3, 8, 8,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,
+	};
+
+	static float _vq_quantthresh__44c4_s_p9_0[] = {
+		-1732.5f, -1417.5f, -1102.5f, -787.5f, -472.5f, -157.5f, 157.5f, 472.5f, 
+		787.5f, 1102.5f, 1417.5f, 1732.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p9_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p9_0,
+		_vq_quantmap__44c4_s_p9_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c4_s_p9_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c4_s_p9_0,
+		1, -513964032, 1628680192, 4, 0,
+		_vq_quantlist__44c4_s_p9_0,
+		null,
+		_vq_auxt__44c4_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p9_1[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c4_s_p9_1[] = {
+		 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,10,10, 6,
+		 5, 5, 7, 7, 9, 8,10, 9,11,10,12,12,13,13, 6, 5,
+		 5, 7, 7, 9, 9,10,10,11,11,12,12,12,13,19, 8, 8,
+		 8, 8, 9, 9,10,10,12,11,12,12,13,13,19, 8, 8, 8,
+		 8, 9, 9,11,11,12,12,13,13,13,13,19,12,12, 9, 9,
+		11,11,11,11,12,11,13,12,13,13,18,12,12, 9, 9,11,
+		10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11,
+		12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12,
+		11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13,
+		13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13,
+		13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13,
+		14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14,
+		14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14,
+		15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14,
+		15,
+	};
+
+	static float _vq_quantthresh__44c4_s_p9_1[] = {
+		-136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 10.5f, 
+		31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p9_1[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p9_1,
+		_vq_quantmap__44c4_s_p9_1,
+		15,
+		15
+	);
+
+	static static_codebook _44c4_s_p9_1 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c4_s_p9_1,
+		1, -520986624, 1620377600, 4, 0,
+		_vq_quantlist__44c4_s_p9_1,
+		null,
+		_vq_auxt__44c4_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c4_s_p9_2[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c4_s_p9_2[] = {
+		 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8, 9, 9, 9, 9,11, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9,10,10,10,10,11, 6, 6, 7, 7, 8,
+		 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11,
+		 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,
+		10,10,10,10,12,11,11, 7, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9,10,10,10,10,10,10,10,10,12,11,12, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11,
+		11, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,
+		10,10,10,11,11,12, 9, 9, 9, 9, 9, 9,10, 9,10,10,
+		10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9,
+		 9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,
+		11,11, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10,
+		10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12,
+		11,11,11, 9,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11,
+		11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,
+		10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11,
+		11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11,
+		12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12,
+		11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10,
+		10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10,
+		10,10,10,10,10,10,10,10,10,
+	};
+
+	static float _vq_quantthresh__44c4_s_p9_2[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c4_s_p9_2[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c4_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c4_s_p9_2,
+		_vq_quantmap__44c4_s_p9_2,
+		21,
+		21
+	);
+
+	static static_codebook _44c4_s_p9_2 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c4_s_p9_2,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c4_s_p9_2,
+		null,
+		_vq_auxt__44c4_s_p9_2,
+		null,
+		0
+	);
+	
+	static int _huff_lengthlist__44c4_s_short[] = {
+		 4, 7,14,10,15,10,12,15,16,15, 4, 2,11, 5,10, 6,
+		 8,11,14,14,14,10, 7,11, 6, 8,10,11,13,15, 9, 4,
+		11, 5, 9, 6, 9,12,14,15,14, 9, 6, 9, 4, 5, 7,10,
+		12,13, 9, 5, 7, 6, 5, 5, 7,10,13,13,10, 8, 9, 8,
+		 7, 6, 8,10,14,14,13,11,10,10, 7, 7, 8,11,14,15,
+		13,12, 9, 9, 6, 5, 7,10,14,17,15,13,11,10, 6, 6,
+		 7, 9,12,17,
+	};
+
+	static int _huff_lengthlist__44c4_s_long[] = {
+		 4, 7,11,11,11,11,10,11,12,11, 5, 2,11, 5, 6, 6,
+		 7, 9,11,12,11, 9, 6,10, 6, 7, 8, 9,10,11,11, 5,
+		11, 7, 8, 8, 9,11,13,14,11, 6, 5, 8, 4, 5, 7, 8,
+		10,11,10, 6, 7, 7, 5, 5, 6, 8, 9,11,10, 7, 8, 9,
+		 6, 6, 6, 7, 8, 9,11, 9, 9,11, 7, 7, 6, 6, 7, 9,
+		12,12,10,13, 9, 8, 7, 7, 7, 8,11,13,11,14,11,10,
+		 9, 8, 7, 7,
+	};
+	
+	
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c4_s_short;
+	public static_codebook _huff_book__44c4_s_long;
+	
+	
+	public resbook_44s_4() {
+	
+		_huff_book__44c4_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c4_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c4_s_long = new static_codebook(
+				2, 100,
+				_huff_lengthlist__44c4_s_long,
+				0, 0, 0, 0, 0,
+				null,
+				null,
+				null,
+				null,
+				0
+			);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c4_s_p1_0 },
+			{ zero, zero, _44c4_s_p2_0 },
+			{ zero, zero, _44c4_s_p3_0 },
+			{ zero, zero, _44c4_s_p4_0 },
+			{ zero, zero, _44c4_s_p5_0 },
+			{ zero, zero, _44c4_s_p6_0 },
+			{ _44c4_s_p7_0, _44c4_s_p7_1 },
+			{ _44c4_s_p8_0, _44c4_s_p8_1 },
+			{ _44c4_s_p9_0, _44c4_s_p9_1, _44c4_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_4.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_5.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_5.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_5.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1264 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_5 {
+	
+	static int _vq_quantlist__44c5_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c5_s_p1_0[] = {
+		 2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0,
+		 0, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 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, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0,
+		 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 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, 7, 7, 0, 0, 0, 0,
+		 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0,
+		 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,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, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0,
+		 0, 0, 0, 0, 0, 8, 9,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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c5_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p1_0,
+		_vq_quantmap__44c5_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c5_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c5_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c5_s_p1_0,
+		null,
+		_vq_auxt__44c5_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c5_s_p2_0[] = {
+		 2, 4, 4, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
+		 8, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8,
+		 8, 0, 0, 0, 8, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
+		 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 7, 8, 0,
+		 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 8, 8, 0, 0,
+		 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
+		 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
+		10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
+		 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0,
+		 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0,
+		11,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10,
+		10, 0, 0, 0,10,10, 0, 0, 0,10,11, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c5_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p2_0,
+		_vq_quantmap__44c5_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c5_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c5_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c5_s_p2_0,
+		null,
+		_vq_auxt__44c5_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p3_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c5_s_p3_0[] = {
+		 2, 4, 3, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 6, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 5, 5, 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, 8, 8,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 5, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c5_s_p3_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p3_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p3_0,
+		_vq_quantmap__44c5_s_p3_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c5_s_p3_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c5_s_p3_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c5_s_p3_0,
+		null,
+		_vq_auxt__44c5_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c5_s_p4_0[] = {
+		 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
+		 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
+		 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
+		 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0,
+		 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c5_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p4_0,
+		_vq_quantmap__44c5_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c5_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c5_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c5_s_p4_0,
+		null,
+		_vq_auxt__44c5_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p5_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c5_s_p5_0[] = {
+		 2, 4, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7,
+		 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7,
+		 7, 7, 9, 9, 0, 0, 0, 7, 6, 7, 7, 9, 9, 0, 0, 0,
+		 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, 0, 0, 9, 9,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c5_s_p5_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p5_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p5_0,
+		_vq_quantmap__44c5_s_p5_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c5_s_p5_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c5_s_p5_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c5_s_p5_0,
+		null,
+		_vq_auxt__44c5_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p6_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c5_s_p6_0[] = {
+		 2, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,11,
+		11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,
+		12,12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,
+		11,12,12, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,
+		11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,
+		10,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,10,
+		11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 9,10,10,10,
+		10,11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,
+		10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,
+		10,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9,
+		 9, 9,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0,
+		10,10,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,11,11,12,12,12,13,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,12,12,12,12,13,12,13,13,13,13,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,
+		13,
+	};
+
+	static float _vq_quantthresh__44c5_s_p6_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p6_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p6_0,
+		_vq_quantmap__44c5_s_p6_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c5_s_p6_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c5_s_p6_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c5_s_p6_0,
+		null,
+		_vq_auxt__44c5_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p7_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c5_s_p7_0[] = {
+		 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,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9,
+		11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6,
+		 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44c5_s_p7_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p7_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p7_0,
+		_vq_quantmap__44c5_s_p7_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c5_s_p7_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c5_s_p7_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c5_s_p7_0,
+		null,
+		_vq_auxt__44c5_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c5_s_p7_1[] = {
+		 2, 4, 4, 6, 6, 7, 7, 8, 8, 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, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8,
+		 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10,
+		 8, 8, 8, 8, 8, 8, 8, 9,10,10,10,10,10, 8, 8, 8,
+		 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c5_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p7_1,
+		_vq_quantmap__44c5_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c5_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c5_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c5_s_p7_1,
+		null,
+		_vq_auxt__44c5_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c5_s_p8_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5,
+		 7, 7, 8, 8, 8, 9,10,10,10,10, 7, 5, 5, 7, 7, 8,
+		 8, 9, 9,10,10,10,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, 9,10,10,10,10,10,11,11, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10,
+		10,10,10,10,11,11,11,11, 0, 0, 0,10,10,10,10,10,
+		10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12,
+		12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,12, 0,
+		 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0,
+		 0,12,12,12,12,12,12,13,13,
+	};
+
+	static float _vq_quantthresh__44c5_s_p8_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p8_0,
+		_vq_quantmap__44c5_s_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c5_s_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c5_s_p8_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c5_s_p8_0,
+		null,
+		_vq_auxt__44c5_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p8_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c5_s_p8_1[] = {
+		 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 float _vq_quantthresh__44c5_s_p8_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p8_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p8_1,
+		_vq_quantmap__44c5_s_p8_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c5_s_p8_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c5_s_p8_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c5_s_p8_1,
+		null,
+		_vq_auxt__44c5_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p9_0[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c5_s_p9_0[] = {
+		 1, 3, 3,13,13,13,13,13,13,13,13,13,13,13,13, 4,
+		 7, 7,13,13,13,13,13,13,13,13,13,13,13,13, 3, 8,
+		 6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c5_s_p9_0[] = {
+		-2320.5f, -1963.5f, -1606.5f, -1249.5f, -892.5f, -535.5f, -178.5f, 178.5f, 
+		535.5f, 892.5f, 1249.5f, 1606.5f, 1963.5f, 2320.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p9_0[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p9_0,
+		_vq_quantmap__44c5_s_p9_0,
+		15,
+		15
+	);
+
+	static static_codebook _44c5_s_p9_0 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c5_s_p9_0,
+		1, -512522752, 1628852224, 4, 0,
+		_vq_quantlist__44c5_s_p9_0,
+		null,
+		_vq_auxt__44c5_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p9_1[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c5_s_p9_1[] = {
+		 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,11,10,11,
+		11, 6, 5, 5, 7, 7, 8, 9,10,10,11,10,12,11,12,11,
+		13,12, 6, 5, 5, 7, 7, 9, 9,10,10,11,11,12,12,13,
+		12,13,13,18, 8, 8, 8, 8, 9, 9,10,11,11,11,12,11,
+		13,11,13,12,18, 8, 8, 8, 8,10,10,11,11,12,12,13,
+		13,13,13,13,14,18,12,12, 9, 9,11,11,11,11,12,12,
+		13,12,13,12,13,13,20,13,12, 9, 9,11,11,11,11,12,
+		12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12,
+		13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12,
+		12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12,
+		12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12,
+		11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19,
+		13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19,
+		19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17,
+		18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19,
+		17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19,
+		19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15,
+		19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15,
+		15,
+	};
+
+	static float _vq_quantthresh__44c5_s_p9_1[] = {
+		-157.5f, -136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 
+		10.5f, 31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 157.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p9_1[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p9_1,
+		_vq_quantmap__44c5_s_p9_1,
+		17,
+		17
+	);
+
+	static static_codebook _44c5_s_p9_1 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c5_s_p9_1,
+		1, -520814592, 1620377600, 5, 0,
+		_vq_quantlist__44c5_s_p9_1,
+		null,
+		_vq_auxt__44c5_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c5_s_p9_2[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c5_s_p9_2[] = {
+		 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8, 8, 8, 8, 9,11, 5, 6, 7, 7, 8, 7, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, 5, 5, 7, 7, 7,
+		 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,
+		 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9,10, 9,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11,
+		11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10,
+		10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9,
+		 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,11,11,11,
+		11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,
+		10,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9,10,10,10,
+		10,10,10,10,10,10,10,11,11,11,11,11, 9, 9,10, 9,
+		10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,
+		11,11,11, 9, 9,10,10,10,10,10,10,10,10,10,10,10,
+		10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,
+		11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,
+		10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,
+		10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,
+		11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,
+		11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,
+		10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,
+		10,10,10,10,10,10,10,10,10,
+	};
+
+	static float _vq_quantthresh__44c5_s_p9_2[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c5_s_p9_2[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c5_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c5_s_p9_2,
+		_vq_quantmap__44c5_s_p9_2,
+		21,
+		21
+	);
+
+	static static_codebook _44c5_s_p9_2 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c5_s_p9_2,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c5_s_p9_2,
+		null,
+		_vq_auxt__44c5_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c5_s_short[] = {
+		 5, 8,10,14,11,11,12,16,15,17, 5, 5, 7, 9, 7, 8,
+		10,13,17,17, 7, 5, 5,10, 5, 7, 8,11,13,15,10, 8,
+		10, 8, 8, 8,11,15,18,18, 8, 5, 5, 8, 3, 4, 6,10,
+		14,16, 9, 7, 6, 7, 4, 3, 5, 9,14,18,10, 9, 8,10,
+		 6, 5, 6, 9,14,18,12,12,11,12, 8, 7, 8,11,14,18,
+		14,13,12,10, 7, 5, 6, 9,14,18,14,14,13,10, 6, 5,
+		 6, 8,11,16,
+	};
+	
+	static int _huff_lengthlist__44c5_s_long[] = {
+		 3, 8, 9,13,10,12,12,12,12,12, 6, 4, 6, 8, 6, 8,
+		10,10,11,12, 8, 5, 4,10, 4, 7, 8, 9,10,11,13, 8,
+		10, 8, 9, 9,11,12,13,14,10, 6, 4, 9, 3, 5, 6, 8,
+		10,11,11, 8, 6, 9, 5, 5, 6, 7, 9,11,12, 9, 7,11,
+		 6, 6, 6, 7, 8,10,12,11, 9,12, 7, 7, 6, 6, 7, 9,
+		13,12,10,13, 9, 8, 7, 7, 7, 8,11,15,11,15,11,10,
+		 9, 8, 7, 7,
+	};
+	
+	
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c5_s_short;
+	public static_codebook _huff_book__44c5_s_long;
+
+
+	public resbook_44s_5() {
+		
+		_huff_book__44c5_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c5_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c5_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c5_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c5_s_p1_0 },
+			{ zero, zero, _44c5_s_p2_0 },
+			{ zero, zero, _44c5_s_p3_0 },
+			{ zero, zero, _44c5_s_p4_0 },
+			{ zero, zero, _44c5_s_p5_0 },
+			{ zero, zero, _44c5_s_p6_0 },
+			{ _44c5_s_p7_0, _44c5_s_p7_1 },
+			{ _44c5_s_p8_0, _44c5_s_p8_1 },
+			{ _44c5_s_p9_0, _44c5_s_p9_1, _44c5_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_5.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_6.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_6.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_6.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,986 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_6 {
+	
+	static int _vq_quantlist__44c6_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c6_s_p1_0[] = {
+		 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0,
+		 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9,
+		 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+		 9, 9, 0, 8, 8, 0, 8, 8, 5, 9, 9, 0, 8, 8, 0, 8,
+		 8,
+	};
+
+	static float _vq_quantthresh__44c6_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p1_0,
+		_vq_quantmap__44c6_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c6_s_p1_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c6_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c6_s_p1_0,
+		null,
+		_vq_auxt__44c6_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c6_s_p2_0[] = {
+		 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0,
+		 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8,
+		 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0,
+		11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9,
+		10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,11,
+		 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0,
+		 0, 0,14,13, 8, 9, 9,11,11, 0,11,11,12,12, 0,10,
+		11,12,12, 0,14,13,14,14, 0, 0, 0,13,14, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10,
+		 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5,
+		 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9,
+		 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10,
+		12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13,
+		13, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,12,12,
+		 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7,
+		10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,11,
+		11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,11,
+		 0, 0, 0,10,11, 8,10,10,12,12, 0,10,10,12,12, 0,
+		10,10,12,12, 0,12,13,13,13, 0, 0, 0,14,13, 8,10,
+		10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12,
+		13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 7,10,10,14,13, 0, 9, 9,13,12, 0, 9, 9,12,12, 0,
+		10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9,
+		 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0,
+		12,12, 9,11,11,14,13, 0,11,10,14,13, 0,11,11,13,
+		13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14,
+		 0,10,11,13,14, 0,11,11,13,13, 0,12,12,13,13, 0,
+		 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+		11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12,
+		12,13,13, 0, 0, 0,13,13, 9,11,11,14,14, 0,11,11,
+		13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13,
+		13,
+	};
+
+	static float _vq_quantthresh__44c6_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p2_0,
+		_vq_quantmap__44c6_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c6_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c6_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c6_s_p2_0,
+		null,
+		_vq_auxt__44c6_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c6_s_p3_0[] = {
+		 2, 3, 4, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7,
+		 9,10, 0, 4, 4, 6, 6, 7, 7,10, 9, 0, 5, 5, 7, 7,
+		 8, 8,10,10, 0, 0, 0, 7, 6, 8, 8,10,10, 0, 0, 0,
+		 7, 7, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c6_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p3_0,
+		_vq_quantmap__44c6_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c6_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c6_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c6_s_p3_0,
+		null,
+		_vq_auxt__44c6_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p4_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c6_s_p4_0[] = {
+		 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,10,10,
+		10, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,
+		11,11, 0, 4, 4, 6, 6, 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,11, 0, 0, 0, 7, 7, 9, 9,10,10,10,10,
+		11,11,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,
+		10,11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 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,12,12,12, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c6_s_p4_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p4_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p4_0,
+		_vq_quantmap__44c6_s_p4_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c6_s_p4_0 =  new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c6_s_p4_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c6_s_p4_0,
+		null,
+		_vq_auxt__44c6_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p5_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c6_s_p5_0[] = {
+		 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6, 9, 9,10,10,
+		10, 9, 4, 6, 6, 9,10, 9,10, 9,10, 6, 9, 9,10,12,
+		11,10,11,11, 7,10, 9,11,12,12,12,12,12, 7,10,10,
+		11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7,
+		 9,10,11,12,12,12,12,12, 7,10, 9,12,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c6_s_p5_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p5_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p5_0,
+		_vq_quantmap__44c6_s_p5_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c6_s_p5_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c6_s_p5_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c6_s_p5_0,
+		null,
+		_vq_auxt__44c6_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p5_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c6_s_p5_1[] = {
+		 3, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6,
+		 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, 7, 7, 8, 8, 8,
+		 8,11, 6, 6, 6, 6, 8, 8, 8, 8, 9, 9,11,11,11, 6,
+		 6, 7, 8, 8, 8, 8, 9,11,11,11, 7, 7, 8, 8, 8, 8,
+		 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 8, 8,11,11,11,
+		 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,10,10, 8, 8, 8,
+		 8, 8, 8,11,11,11,10,10, 8, 8, 8, 8, 8, 8,11,11,
+		11,10,10, 7, 7, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c6_s_p5_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p5_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p5_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p5_1,
+		_vq_quantmap__44c6_s_p5_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c6_s_p5_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c6_s_p5_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c6_s_p5_1,
+		null,
+		_vq_auxt__44c6_s_p5_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p6_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c6_s_p6_0[] = {
+		 1, 4, 4, 6, 6, 8, 8, 8, 8,10, 9,10,10, 6, 5, 5,
+		 7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9,
+		 9,10, 9,11,10,11,11, 0, 6, 6, 7, 7, 9, 9,10,10,
+		11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12,
+		12, 0,11,11, 8, 8,10,10,11,11,12,12,12,12, 0,11,
+		12, 9, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	};
+
+	static float _vq_quantthresh__44c6_s_p6_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p6_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p6_0,
+		_vq_quantmap__44c6_s_p6_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c6_s_p6_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c6_s_p6_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c6_s_p6_0,
+		null,
+		_vq_auxt__44c6_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p6_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c6_s_p6_1[] = {
+		 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c6_s_p6_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p6_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p6_1,
+		_vq_quantmap__44c6_s_p6_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c6_s_p6_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c6_s_p6_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c6_s_p6_1,
+		null,
+		_vq_auxt__44c6_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c6_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 8, 8, 8, 8,10,10,11,10, 6, 5, 5,
+		 7, 7, 8, 8, 9, 9,10,10,12,11, 6, 5, 5, 7, 7, 8,
+		 8, 9, 9,10,10,12,11,21, 7, 7, 7, 7, 9, 9,10,10,
+		11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,11,11,12,
+		12,21,12,12, 9, 9,10,10,11,11,11,11,12,12,21,12,
+		12, 9, 9,10,10,11,11,12,12,12,12,21,21,21,11,11,
+		10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12,
+		12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13,
+		13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21,
+		21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20,
+		20,13,13,13,13,13,13,14,14,
+	};
+
+	static float _vq_quantthresh__44c6_s_p7_0[] = {
+		-60.5f, -49.5f, -38.5f, -27.5f, -16.5f, -5.5f, 5.5f, 16.5f, 
+		27.5f, 38.5f, 49.5f, 60.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p7_0,
+		_vq_quantmap__44c6_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c6_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c6_s_p7_0,
+		1, -523206656, 1618345984, 4, 0,
+		_vq_quantlist__44c6_s_p7_0,
+		null,
+		_vq_auxt__44c6_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c6_s_p7_1[] = {
+		 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 6, 6,
+		 7, 7, 7, 7, 8, 7, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7,
+		 7, 9, 6, 6, 7, 7, 7, 7, 8, 7, 7, 8, 9, 9, 9, 7,
+		 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8,
+		 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9,
+		 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 8, 8, 8, 7,
+		 7, 8, 8, 9, 9, 9, 8, 8, 8, 8, 7, 7, 8, 8, 9, 9,
+		 9, 8, 8, 7, 7, 7, 7, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c6_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p7_1,
+		_vq_quantmap__44c6_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c6_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c6_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c6_s_p7_1,
+		null,
+		_vq_auxt__44c6_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p8_0[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c6_s_p8_0[] = {
+		 1, 4, 4, 7, 7, 8, 8, 7, 7, 8, 7, 9, 8,10, 9, 6,
+		 5, 5, 8, 8, 9, 9, 8, 8, 9, 9,11,10,11,10, 6, 5,
+		 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,18, 8, 8,
+		 9, 8,10,10, 9, 9,10,10,10,10,11,10,18, 8, 8, 9,
+		 9,10,10, 9, 9,10,10,11,11,12,12,18,12,13, 9,10,
+		10,10, 9,10,10,10,11,11,12,11,18,13,13, 9, 9,10,
+		10,10,10,10,10,11,11,12,12,18,18,18,10,10, 9, 9,
+		11,11,11,11,11,12,12,12,18,18,18,10, 9,10, 9,11,
+		10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11,
+		12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12,
+		12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12,
+		13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13,
+		13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13,
+		14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15,
+		14,
+	};
+
+	static float _vq_quantthresh__44c6_s_p8_0[] = {
+		-136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 10.5f, 
+		31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p8_0[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p8_0,
+		_vq_quantmap__44c6_s_p8_0,
+		15,
+		15
+	);
+
+	static static_codebook _44c6_s_p8_0 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c6_s_p8_0,
+		1, -520986624, 1620377600, 4, 0,
+		_vq_quantlist__44c6_s_p8_0,
+		null,
+		_vq_auxt__44c6_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p8_1[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c6_s_p8_1[] = {
+		 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8,
+		 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8,
+		 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10,
+		 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9,10,11,11, 8, 7, 8, 8, 8, 9, 9, 9, 9,
+		 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, 9, 9, 9, 9,11,11,
+		11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11,
+		11,11, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9,10, 9, 9,
+		10, 9,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10,
+		10,10, 9,10,10, 9,10,11,11,11,11,11, 9, 9, 9, 9,
+		10,10,10, 9,10,10,10,10, 9,10,10, 9,11,11,11,11,
+		11,11,11, 9, 9, 9, 9,10,10,10,10, 9,10,10,10,10,
+		10,11,11,11,11,11,11,11,10, 9,10,10,10,10,10,10,
+		10, 9,10, 9,10,10,11,11,11,11,11,11,11,10, 9,10,
+		 9,10,10, 9,10,10,10,10,10,10,10,11,11,11,11,11,
+		11,11,10,10,10,10,10,10,10, 9,10,10,10,10,10, 9,
+		11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,
+		10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,
+		10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,
+		11,11,11,10,10,10,10,10,10,10,10,10, 9,10,10,11,
+		11,11,11,11,11,11,11,11,10,10,10, 9,10,10,10,10,
+		10,10,10,10,10,11,11,11,11,11,11,11,11,10,11, 9,
+		10,10,10,10,10,10,10,10,10,
+	};
+
+	static float _vq_quantthresh__44c6_s_p8_1[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p8_1[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p8_1,
+		_vq_quantmap__44c6_s_p8_1,
+		21,
+		21
+	);
+
+	static static_codebook _44c6_s_p8_1 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c6_s_p8_1,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c6_s_p8_1,
+		null,
+		_vq_auxt__44c6_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p9_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c6_s_p9_0[] = {
+		 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 7, 7,
+		11,11,11,11,11,11,11,11,11,11, 5, 8, 9,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,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,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,10,
+		10,10,10,10,10,10,10,10,10,
+	};
+
+	static float _vq_quantthresh__44c6_s_p9_0[] = {
+		-3503.5f, -2866.5f, -2229.5f, -1592.5f, -955.5f, -318.5f, 318.5f, 955.5f, 
+		1592.5f, 2229.5f, 2866.5f, 3503.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p9_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p9_0,
+		_vq_quantmap__44c6_s_p9_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c6_s_p9_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c6_s_p9_0,
+		1, -511845376, 1630791680, 4, 0,
+		_vq_quantlist__44c6_s_p9_0,
+		null,
+		_vq_auxt__44c6_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p9_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c6_s_p9_1[] = {
+		 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6,
+		 8, 8, 8, 8, 8, 7, 9, 8,10,10, 5, 6, 6, 8, 8, 9,
+		 9, 8, 8,10,10,10,10,16, 9, 9, 9, 9, 9, 9, 9, 8,
+		10, 9,11,11,16, 8, 9, 9, 9, 9, 9, 9, 9,10,10,11,
+		11,16,13,13, 9, 9,10, 9, 9,10,11,11,11,12,16,13,
+		14, 9, 8,10, 8, 9, 9,10,10,12,11,16,14,16, 9, 9,
+		 9, 9,11,11,12,11,12,11,16,16,16, 9, 7, 9, 6,11,
+		11,11,10,11,11,16,16,16,11,12, 9,10,11,11,12,11,
+		13,13,16,16,16,12,11,10, 7,12,10,12,12,12,12,16,
+		16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15,
+		15,12,10,11,11,13,11,12,13,
+	};
+
+	static float _vq_quantthresh__44c6_s_p9_1[] = {
+		-269.5f, -220.5f, -171.5f, -122.5f, -73.5f, -24.5f, 24.5f, 73.5f, 
+		122.5f, 171.5f, 220.5f, 269.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p9_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p9_1,
+		_vq_quantmap__44c6_s_p9_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c6_s_p9_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c6_s_p9_1,
+		1, -518889472, 1622704128, 4, 0,
+		_vq_quantlist__44c6_s_p9_1,
+		null,
+		_vq_auxt__44c6_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c6_s_p9_2[] = {
+		24,
+		23,
+		25,
+		22,
+		26,
+		21,
+		27,
+		20,
+		28,
+		19,
+		29,
+		18,
+		30,
+		17,
+		31,
+		16,
+		32,
+		15,
+		33,
+		14,
+		34,
+		13,
+		35,
+		12,
+		36,
+		11,
+		37,
+		10,
+		38,
+		9,
+		39,
+		8,
+		40,
+		7,
+		41,
+		6,
+		42,
+		5,
+		43,
+		4,
+		44,
+		3,
+		45,
+		2,
+		46,
+		1,
+		47,
+		0,
+		48,
+	};
+
+	static int _vq_lengthlist__44c6_s_p9_2[] = {
+		 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+		 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7,
+	};
+
+	static float _vq_quantthresh__44c6_s_p9_2[] = {
+		-23.5f, -22.5f, -21.5f, -20.5f, -19.5f, -18.5f, -17.5f, -16.5f, 
+		-15.5f, -14.5f, -13.5f, -12.5f, -11.5f, -10.5f, -9.5f, -8.5f, 
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+		8.5f, 9.5f, 10.5f, 11.5f, 12.5f, 13.5f, 14.5f, 15.5f, 
+		16.5f, 17.5f, 18.5f, 19.5f, 20.5f, 21.5f, 22.5f, 23.5f, 
+	};
+
+	static int _vq_quantmap__44c6_s_p9_2[] = {
+		   47,   45,   43,   41,   39,   37,   35,   33,
+		   31,   29,   27,   25,   23,   21,   19,   17,
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,   18,   20,   22,   24,   26,   28,   30,
+		   32,   34,   36,   38,   40,   42,   44,   46,
+		   48,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c6_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c6_s_p9_2,
+		_vq_quantmap__44c6_s_p9_2,
+		49,
+		49
+	);
+
+	static static_codebook _44c6_s_p9_2 = new static_codebook(
+		1, 49,
+		_vq_lengthlist__44c6_s_p9_2,
+		1, -526909440, 1611661312, 6, 0,
+		_vq_quantlist__44c6_s_p9_2,
+		null,
+		_vq_auxt__44c6_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c6_s_short[] = {
+		 3, 9,11,11,13,14,19,17,17,19, 5, 4, 5, 8,10,10,
+		13,16,18,19, 7, 4, 4, 5, 8, 9,12,14,17,19, 8, 6,
+		 5, 5, 7, 7,10,13,16,18,10, 8, 7, 6, 5, 5, 8,11,
+		17,19,11, 9, 7, 7, 5, 4, 5, 8,17,19,13,11, 8, 7,
+		 7, 5, 5, 7,16,18,14,13, 8, 6, 6, 5, 5, 7,16,18,
+		18,16,10, 8, 8, 7, 7, 9,16,18,18,18,12,10,10, 9,
+		 9,10,17,18,
+	};
+
+	static int _huff_lengthlist__44c6_s_long[] = {
+		 3, 8,11,13,14,14,13,13,16,14, 6, 3, 4, 7, 9, 9,
+		10,11,14,13,10, 4, 3, 5, 7, 7, 9,10,13,15,12, 7,
+		 4, 4, 6, 6, 8,10,13,15,12, 8, 6, 6, 6, 6, 8,10,
+		13,14,11, 9, 7, 6, 6, 6, 7, 8,12,11,13,10, 9, 8,
+		 7, 6, 6, 7,11,11,13,11,10, 9, 9, 7, 7, 6,10,11,
+		13,13,13,13,13,11, 9, 8,10,12,12,15,15,16,15,12,
+		11,10,10,12,
+	};
+
+	
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c6_s_short;
+	public static_codebook _huff_book__44c6_s_long;
+
+
+	public resbook_44s_6() {
+		
+		_huff_book__44c6_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c6_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c6_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c6_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c6_s_p1_0 },
+			{ zero, zero, _44c6_s_p2_0 },
+			{ zero, zero, _44c6_s_p3_0 },
+			{ zero, zero, _44c6_s_p4_0 },
+			{ _44c6_s_p5_0, _44c6_s_p5_1 },
+			{ _44c6_s_p6_0, _44c6_s_p6_1 },
+			{ _44c6_s_p7_0, _44c6_s_p7_1 },
+			{ _44c6_s_p8_0, _44c6_s_p8_1 },
+			{ _44c6_s_p9_0, _44c6_s_p9_1, _44c6_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_6.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_7.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_7.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_7.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,986 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_7 {
+	
+	static int _vq_quantlist__44c7_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c7_s_p1_0[] = {
+		 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0,
+		 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 5, 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9,
+		 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+		 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8,
+		 8,
+	};
+
+	static float _vq_quantthresh__44c7_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p1_0,
+		_vq_quantmap__44c7_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c7_s_p1_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c7_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c7_s_p1_0,
+		null,
+		_vq_auxt__44c7_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c7_s_p2_0[] = {
+		 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0,
+		 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8,
+		 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0,
+		11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9,
+		10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10,
+		 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0,
+		 0, 0,14,13, 8, 9, 9,10,11, 0,11,11,12,12, 0,10,
+		11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10,
+		 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5,
+		 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9,
+		 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10,
+		12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13,
+		13, 8, 9,10,12,12, 0,10,10,12,12, 0,10,10,11,12,
+		 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7,
+		10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,10,
+		11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,10,
+		 0, 0, 0,10,11, 9,10,10,12,12, 0,10,10,12,12, 0,
+		10,10,12,12, 0,12,13,13,13, 0, 0, 0,13,12, 9,10,
+		10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12,
+		13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 7,10,10,14,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0,
+		10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9,
+		 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0,
+		12,12, 9,11,11,14,13, 0,11,10,13,12, 0,11,11,13,
+		13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14,
+		 0,10,11,12,13, 0,11,11,13,13, 0,12,12,13,13, 0,
+		 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+		11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,12,
+		12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10,
+		13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13,
+		13,
+	};
+
+	static float _vq_quantthresh__44c7_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p2_0,
+		_vq_quantmap__44c7_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c7_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c7_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c7_s_p2_0,
+		null,
+		_vq_auxt__44c7_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c7_s_p3_0[] = {
+		 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7,
+		 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6,
+		 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0,
+		 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c7_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p3_0,
+		_vq_quantmap__44c7_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c7_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c7_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c7_s_p3_0,
+		null,
+		_vq_auxt__44c7_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p4_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c7_s_p4_0[] = {
+		 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,
+		12,12, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,
+		11,12,12, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,
+		11,12,12,12, 0, 0, 0, 6, 6, 8, 7, 9, 9, 9, 9,10,
+		10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,
+		11,11,12,12,13,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,
+		10,11,11,12,12,12,13, 0, 0, 0, 7, 7, 8, 8, 9, 9,
+		10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9,
+		 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c7_s_p4_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p4_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p4_0,
+		_vq_quantmap__44c7_s_p4_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c7_s_p4_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c7_s_p4_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c7_s_p4_0,
+		null,
+		_vq_auxt__44c7_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p5_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c7_s_p5_0[] = {
+		 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 7,10,10,10,10,
+		10, 9, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11,
+		12,10,11,12, 7,10,10,11,12,12,12,12,12, 7,10,10,
+		11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7,
+		10,10,12,12,12,12,11,12, 7,10,10,11,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c7_s_p5_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p5_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p5_0,
+		_vq_quantmap__44c7_s_p5_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c7_s_p5_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c7_s_p5_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c7_s_p5_0,
+		null,
+		_vq_auxt__44c7_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p5_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c7_s_p5_1[] = {
+		 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6,
+		 7, 7, 8, 8, 9, 9,11, 4, 4, 6, 6, 7, 7, 8, 8, 9,
+		 9,12, 5, 5, 6, 6, 7, 7, 9, 9, 9, 9,12,12,12, 6,
+		 6, 7, 7, 9, 9, 9, 9,11,11,11, 7, 7, 7, 7, 8, 8,
+		 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, 9, 9,11,11,11,
+		 7, 7, 8, 8, 8, 8, 9, 9,11,11,11,11,11, 8, 8, 8,
+		 8, 8, 9,11,11,11,11,11, 8, 8, 8, 8, 8, 8,11,11,
+		11,11,11, 7, 7, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c7_s_p5_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p5_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p5_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p5_1,
+		_vq_quantmap__44c7_s_p5_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c7_s_p5_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c7_s_p5_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c7_s_p5_1,
+		null,
+		_vq_auxt__44c7_s_p5_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p6_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c7_s_p6_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 8,10,10, 6, 5, 5,
+		 7, 7, 8, 8, 9, 9, 9,10,11,11, 7, 5, 5, 7, 7, 8,
+		 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 8, 9, 9,
+		10,10,11,11, 0, 8, 8, 7, 7, 8, 9, 9, 9,10,10,11,
+		11, 0,11,11, 9, 9,10,10,11,10,11,11,12,12, 0,12,
+		12, 9, 9,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	};
+
+	static float _vq_quantthresh__44c7_s_p6_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p6_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p6_0,
+		_vq_quantmap__44c7_s_p6_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c7_s_p6_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c7_s_p6_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c7_s_p6_0,
+		null,
+		_vq_auxt__44c7_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p6_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c7_s_p6_1[] = {
+		 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c7_s_p6_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p6_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p6_1,
+		_vq_quantmap__44c7_s_p6_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c7_s_p6_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c7_s_p6_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c7_s_p6_1,
+		null,
+		_vq_auxt__44c7_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c7_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 8, 9, 9,10,10,12,11, 6, 5, 5,
+		 7, 7, 8, 8, 9,10,11,11,12,12, 7, 5, 5, 7, 7, 8,
+		 8,10,10,11,11,12,12,20, 7, 7, 7, 7, 8, 9,10,10,
+		11,11,12,13,20, 7, 7, 7, 7, 9, 9,10,10,11,12,13,
+		13,20,11,11, 8, 8, 9, 9,11,11,12,12,13,13,20,11,
+		11, 8, 8, 9, 9,11,11,12,12,13,13,20,20,20,10,10,
+		10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12,
+		12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13,
+		14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20,
+		20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19,
+		19,13,13,13,13,14,14,15,15,
+	};
+
+	static float _vq_quantthresh__44c7_s_p7_0[] = {
+		-60.5f, -49.5f, -38.5f, -27.5f, -16.5f, -5.5f, 5.5f, 16.5f, 
+		27.5f, 38.5f, 49.5f, 60.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p7_0,
+		_vq_quantmap__44c7_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c7_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c7_s_p7_0,
+		1, -523206656, 1618345984, 4, 0,
+		_vq_quantlist__44c7_s_p7_0,
+		null,
+		_vq_auxt__44c7_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c7_s_p7_1[] = {
+		 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 7, 7,
+		 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, 7, 7, 7, 7, 7,
+		 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7,
+		 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7,
+		 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
+		 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7,
+		 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8,
+		 8, 8, 8, 7, 7, 7, 7, 7, 7,
+	};
+
+	static float _vq_quantthresh__44c7_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p7_1,
+		_vq_quantmap__44c7_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c7_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c7_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c7_s_p7_1,
+		null,
+		_vq_auxt__44c7_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p8_0[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c7_s_p8_0[] = {
+		 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8, 9, 9,10,10, 6,
+		 5, 5, 7, 7, 9, 9, 8, 8,10, 9,11,10,12,11, 6, 5,
+		 5, 8, 7, 9, 9, 8, 8,10,10,11,11,12,11,19, 8, 8,
+		 8, 8,10,10, 9, 9,10,10,11,11,12,11,19, 8, 8, 8,
+		 8,10,10, 9, 9,10,10,11,11,12,12,19,12,12, 9, 9,
+		10,10, 9,10,10,10,11,11,12,12,19,12,12, 9, 9,10,
+		10,10,10,10,10,12,12,12,12,19,19,19, 9, 9, 9, 9,
+		11,10,11,11,12,11,13,13,19,19,19, 9, 9, 9, 9,11,
+		10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11,
+		12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12,
+		12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13,
+		14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13,
+		14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14,
+		15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c7_s_p8_0[] = {
+		-136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 10.5f, 
+		31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p8_0[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p8_0,
+		_vq_quantmap__44c7_s_p8_0,
+		15,
+		15
+	);
+
+	static static_codebook _44c7_s_p8_0 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c7_s_p8_0,
+		1, -520986624, 1620377600, 4, 0,
+		_vq_quantlist__44c7_s_p8_0,
+		null,
+		_vq_auxt__44c7_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p8_1[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c7_s_p8_1[] = {
+		 3, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+		 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8,
+		 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,
+		 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 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, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,
+		10, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,10,10, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9, 9,10,11,10,
+		11,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9, 9,
+		 9, 9,11,10,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9,
+		10, 9, 9,10, 9, 9,10,11,10,10,11,10, 9, 9, 9, 9,
+		 9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,11,
+		11,11,10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,
+		10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10,
+		10, 9,10,10, 9,10,11,11,10,11,10,11,10, 9,10,10,
+		 9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10,
+		11,11,10,10,10,10,10,10, 9,10, 9,10,10, 9,10, 9,
+		10,10,10,11,10,11,10,11,11,10,10,10,10,10,10, 9,
+		10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11,
+		11,10,10,10,10, 9, 9,10,10, 9, 9,10, 9,10,10,10,
+		10,11,11,10,10,10,10,10,10,10, 9, 9,10,10,10, 9,
+		 9,10,10,10,10,10,11,10,11,10,10,10,10,10,10, 9,
+		10,10,10,10,10,10,10,10,10,
+	};
+
+	static float _vq_quantthresh__44c7_s_p8_1[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p8_1[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p8_1,
+		_vq_quantmap__44c7_s_p8_1,
+		21,
+		21
+	);
+
+	static static_codebook _44c7_s_p8_1 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c7_s_p8_1,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c7_s_p8_1,
+		null,
+		_vq_auxt__44c7_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p9_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c7_s_p9_0[] = {
+		 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 6, 6,
+		11,11,11,11,11,11,11,11,11,11, 4, 7, 7,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,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,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,11,11,11,11,11,
+	};
+
+	static float _vq_quantthresh__44c7_s_p9_0[] = {
+		-3503.5f, -2866.5f, -2229.5f, -1592.5f, -955.5f, -318.5f, 318.5f, 955.5f, 
+		1592.5f, 2229.5f, 2866.5f, 3503.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p9_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p9_0,
+		_vq_quantmap__44c7_s_p9_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c7_s_p9_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c7_s_p9_0,
+		1, -511845376, 1630791680, 4, 0,
+		_vq_quantlist__44c7_s_p9_0,
+		null,
+		_vq_auxt__44c7_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p9_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c7_s_p9_1[] = {
+		 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6,
+		 8, 8, 9, 8, 8, 7, 9, 8,11,10, 5, 6, 6, 8, 8, 9,
+		 8, 8, 8,10, 9,11,11,16, 8, 8, 9, 8, 9, 9, 9, 8,
+		10, 9,11,10,16, 8, 8, 9, 9,10,10, 9, 9,10,10,11,
+		11,16,13,13, 9, 9,10,10, 9,10,11,11,12,11,16,13,
+		13, 9, 8,10, 9,10,10,10,10,11,11,16,14,16, 8, 9,
+		 9, 9,11,10,11,11,12,11,16,16,16, 9, 7,10, 7,11,
+		10,11,11,12,11,16,16,16,12,12, 9,10,11,11,12,11,
+		12,12,16,16,16,12,10,10, 7,11, 8,12,11,12,12,16,
+		16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15,
+		15,11,11,10,10,12,12,12,12,
+	};
+
+	static float _vq_quantthresh__44c7_s_p9_1[] = {
+		-269.5f, -220.5f, -171.5f, -122.5f, -73.5f, -24.5f, 24.5f, 73.5f, 
+		122.5f, 171.5f, 220.5f, 269.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p9_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p9_1,
+		_vq_quantmap__44c7_s_p9_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c7_s_p9_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c7_s_p9_1,
+		1, -518889472, 1622704128, 4, 0,
+		_vq_quantlist__44c7_s_p9_1,
+		null,
+		_vq_auxt__44c7_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c7_s_p9_2[] = {
+		24,
+		23,
+		25,
+		22,
+		26,
+		21,
+		27,
+		20,
+		28,
+		19,
+		29,
+		18,
+		30,
+		17,
+		31,
+		16,
+		32,
+		15,
+		33,
+		14,
+		34,
+		13,
+		35,
+		12,
+		36,
+		11,
+		37,
+		10,
+		38,
+		9,
+		39,
+		8,
+		40,
+		7,
+		41,
+		6,
+		42,
+		5,
+		43,
+		4,
+		44,
+		3,
+		45,
+		2,
+		46,
+		1,
+		47,
+		0,
+		48,
+	};
+
+	static int _vq_lengthlist__44c7_s_p9_2[] = {
+		 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+		 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7,
+	};
+
+	static float _vq_quantthresh__44c7_s_p9_2[] = {
+		-23.5f, -22.5f, -21.5f, -20.5f, -19.5f, -18.5f, -17.5f, -16.5f, 
+		-15.5f, -14.5f, -13.5f, -12.5f, -11.5f, -10.5f, -9.5f, -8.5f, 
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+		8.5f, 9.5f, 10.5f, 11.5f, 12.5f, 13.5f, 14.5f, 15.5f, 
+		16.5f, 17.5f, 18.5f, 19.5f, 20.5f, 21.5f, 22.5f, 23.5f, 
+	};
+
+	static int _vq_quantmap__44c7_s_p9_2[] = {
+		   47,   45,   43,   41,   39,   37,   35,   33,
+		   31,   29,   27,   25,   23,   21,   19,   17,
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,   18,   20,   22,   24,   26,   28,   30,
+		   32,   34,   36,   38,   40,   42,   44,   46,
+		   48,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c7_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c7_s_p9_2,
+		_vq_quantmap__44c7_s_p9_2,
+		49,
+		49
+	);
+
+	static static_codebook _44c7_s_p9_2 = new static_codebook(
+		1, 49,
+		_vq_lengthlist__44c7_s_p9_2,
+		1, -526909440, 1611661312, 6, 0,
+		_vq_quantlist__44c7_s_p9_2,
+		null,
+		_vq_auxt__44c7_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c7_s_short[] = {
+		 4,11,12,14,15,15,17,17,18,18, 5, 6, 6, 8, 9,10,
+		13,17,18,19, 7, 5, 4, 6, 8, 9,11,15,19,19, 8, 6,
+		 5, 5, 6, 7,11,14,16,17, 9, 7, 7, 6, 7, 7,10,13,
+		15,19,10, 8, 7, 6, 7, 6, 7, 9,14,16,12,10, 9, 7,
+		 7, 6, 4, 5,10,15,14,13,11, 7, 6, 6, 4, 2, 7,13,
+		16,16,15, 9, 8, 8, 8, 6, 9,13,19,19,17,12,11,10,
+		10, 9,11,14,
+	};
+
+	static int _huff_lengthlist__44c7_s_long[] = {
+		 3, 8,11,13,15,14,14,13,15,14, 6, 4, 5, 7, 9,10,
+		11,11,14,13,10, 4, 3, 5, 7, 8, 9,10,13,13,12, 7,
+		 4, 4, 5, 6, 8, 9,12,14,13, 9, 6, 5, 5, 6, 8, 9,
+		12,14,12, 9, 7, 6, 5, 5, 6, 8,11,11,12,11, 9, 8,
+		 7, 6, 6, 7,10,11,13,11,10, 9, 8, 7, 6, 6, 9,11,
+		13,13,12,12,12,10, 9, 8, 9,11,12,14,15,15,14,12,
+		11,10,10,12,
+	};
+
+
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c7_s_short;
+	public static_codebook _huff_book__44c7_s_long;
+
+
+	public resbook_44s_7() {
+		
+		_huff_book__44c7_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c7_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c7_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c7_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c7_s_p1_0 },
+			{ zero, zero, _44c7_s_p2_0 },
+			{ zero, zero, _44c7_s_p3_0 },
+			{ zero, zero, _44c7_s_p4_0 },
+			{ _44c7_s_p5_0, _44c7_s_p5_1 },
+			{ _44c7_s_p6_0, _44c7_s_p6_1 },
+			{ _44c7_s_p7_0, _44c7_s_p7_1 },
+			{ _44c7_s_p8_0, _44c7_s_p8_1 },
+			{ _44c7_s_p9_0, _44c7_s_p9_1, _44c7_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_7.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_8.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_8.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_8.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1019 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_8 {
+	
+	static int _vq_quantlist__44c8_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c8_s_p1_0[] = {
+		 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 7, 7, 0, 9, 8, 0,
+		 9, 8, 6, 7, 7, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9,
+		 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+		 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8,
+		 8,
+	};
+
+	static float _vq_quantthresh__44c8_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p1_0,
+		_vq_quantmap__44c8_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c8_s_p1_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c8_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c8_s_p1_0,
+		null,
+		_vq_auxt__44c8_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c8_s_p2_0[] = {
+		 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0,
+		 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8,
+		 7,10, 9, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0,
+		11,11, 5, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8, 9,
+		10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10,
+		 0,11,10,12,11, 0,11,10,12,12, 0,13,13,14,14, 0,
+		 0, 0,14,13, 8, 9, 9,10,11, 0,10,11,12,12, 0,10,
+		11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10,
+		 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,11,10, 5,
+		 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9,
+		 9,10,10, 0, 0, 0,10,10, 8,10, 9,12,12, 0,10,10,
+		12,11, 0,10,10,12,12, 0,12,12,13,12, 0, 0, 0,13,
+		12, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,11,12,
+		 0,12,12,13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 6, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7,
+		10,10, 0, 9, 9,10,11, 0, 0, 0,10,10, 6, 7, 8,10,
+		11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,10,10,
+		 0, 0, 0,10,10, 9,10, 9,12,12, 0,10,10,12,12, 0,
+		10,10,12,11, 0,12,12,13,13, 0, 0, 0,13,12, 8, 9,
+		10,12,12, 0,10,10,12,12, 0,10,10,11,12, 0,12,12,
+		13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 7,10,10,13,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0,
+		10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,13, 0, 9,
+		 9,12,12, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0,
+		12,12, 9,11,11,14,13, 0,10,10,13,12, 0,11,10,13,
+		12, 0,12,12,13,12, 0, 0, 0,13,13, 9,11,11,13,14,
+		 0,10,11,12,13, 0,10,11,13,13, 0,12,12,12,13, 0,
+		 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+		11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,11,
+		12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10,
+		13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,12,
+		13,
+	};
+
+	static float _vq_quantthresh__44c8_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p2_0,
+		_vq_quantmap__44c8_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c8_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c8_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c8_s_p2_0,
+		null,
+		_vq_auxt__44c8_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c8_s_p3_0[] = {
+		 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7,
+		 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6,
+		 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0,
+		 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c8_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p3_0,
+		_vq_quantmap__44c8_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c8_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c8_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c8_s_p3_0,
+		null,
+		_vq_auxt__44c8_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p4_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c8_s_p4_0[] = {
+		 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 8,10,10,11,11,
+		11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,
+		11,11,11, 0, 6, 5, 6, 6, 7, 7, 9, 9, 9, 9,10,10,
+		11,11,12,12, 0, 0, 0, 6, 6, 7, 7, 9, 9, 9, 9,10,
+		10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,
+		11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,
+		10,11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,
+		10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9,
+		 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c8_s_p4_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p4_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p4_0,
+		_vq_quantmap__44c8_s_p4_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c8_s_p4_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c8_s_p4_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c8_s_p4_0,
+		null,
+		_vq_auxt__44c8_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p5_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c8_s_p5_0[] = {
+		 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6,10,10,10,10,
+		10,10, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11,
+		11,10,11,11, 7,10,10,11,12,12,12,12,12, 7,10,10,
+		11,12,12,12,12,12, 6,10,10,10,12,12,10,12,12, 7,
+		10,10,11,12,12,12,12,12, 7,10,10,11,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c8_s_p5_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p5_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p5_0,
+		_vq_quantmap__44c8_s_p5_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c8_s_p5_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c8_s_p5_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c8_s_p5_0,
+		null,
+		_vq_auxt__44c8_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p5_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c8_s_p5_1[] = {
+		 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 5, 6, 6,
+		 7, 7, 8, 8, 8, 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8,
+		 9,12, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,12,12,12, 6,
+		 6, 7, 7, 8, 8, 9, 9,11,11,11, 6, 6, 7, 7, 8, 8,
+		 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11,
+		 7, 7, 7, 8, 8, 8, 8, 8,11,11,11,11,11, 7, 7, 8,
+		 8, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 8, 8,11,11,
+		11,11,11, 7, 7, 7, 7, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c8_s_p5_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p5_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p5_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p5_1,
+		_vq_quantmap__44c8_s_p5_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c8_s_p5_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c8_s_p5_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c8_s_p5_1,
+		null,
+		_vq_auxt__44c8_s_p5_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p6_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c8_s_p6_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5,
+		 7, 7, 8, 8, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 8,
+		 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,
+		10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,10,10,11,
+		11, 0,11,11, 9, 9,10,10,11,11,11,11,12,12, 0,12,
+		12, 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	};
+
+	static float _vq_quantthresh__44c8_s_p6_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p6_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p6_0,
+		_vq_quantmap__44c8_s_p6_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c8_s_p6_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c8_s_p6_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c8_s_p6_0,
+		null,
+		_vq_auxt__44c8_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p6_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c8_s_p6_1[] = {
+		 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c8_s_p6_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p6_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p6_1,
+		_vq_quantmap__44c8_s_p6_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c8_s_p6_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c8_s_p6_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c8_s_p6_1,
+		null,
+		_vq_auxt__44c8_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c8_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 8, 7, 9, 9,10,10,12,12, 6, 5, 5,
+		 7, 7, 8, 8,10,10,11,11,12,12, 7, 5, 5, 7, 7, 8,
+		 8,10,10,11,11,12,12,21, 7, 7, 7, 7, 8, 9,10,10,
+		11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,12,12,13,
+		13,21,11,11, 8, 8, 9, 9,11,11,12,12,13,13,21,11,
+		11, 8, 8, 9, 9,11,11,12,12,13,13,21,21,21,10,10,
+		10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11,
+		11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13,
+		14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21,
+		21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20,
+		20,13,13,13,13,14,13,15,15,
+	};
+
+	static float _vq_quantthresh__44c8_s_p7_0[] = {
+		-60.5f, -49.5f, -38.5f, -27.5f, -16.5f, -5.5f, 5.5f, 16.5f, 
+		27.5f, 38.5f, 49.5f, 60.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p7_0,
+		_vq_quantmap__44c8_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c8_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c8_s_p7_0,
+		1, -523206656, 1618345984, 4, 0,
+		_vq_quantlist__44c8_s_p7_0,
+		null,
+		_vq_auxt__44c8_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c8_s_p7_1[] = {
+		 4, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7,
+		 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7,
+		 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7,
+		 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7,
+		 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
+		 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7,
+		 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8,
+		 8, 8, 8, 7, 7, 7, 7, 7, 7,
+	};
+
+	static float _vq_quantthresh__44c8_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p7_1,
+		_vq_quantmap__44c8_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c8_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c8_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c8_s_p7_1,
+		null,
+		_vq_auxt__44c8_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p8_0[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c8_s_p8_0[] = {
+		 1, 4, 4, 7, 6, 8, 8, 8, 7, 9, 8,10,10,11,10, 6,
+		 5, 5, 7, 7, 9, 9, 8, 8,10,10,11,11,12,11, 6, 5,
+		 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8,
+		 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, 8,
+		 8,10, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9,
+		10,10,10,10,10,11,12,12,12,12,20,12,12, 9, 9,10,
+		10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9,
+		11,10,11,11,12,12,12,13,20,19,19, 9, 9, 9, 9,11,
+		11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11,
+		12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12,
+		12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13,
+		13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13,
+		14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14,
+		14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15,
+		15,
+	};
+
+	static float _vq_quantthresh__44c8_s_p8_0[] = {
+		-136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 10.5f, 
+		31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p8_0[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p8_0,
+		_vq_quantmap__44c8_s_p8_0,
+		15,
+		15
+	);
+
+	static static_codebook _44c8_s_p8_0 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c8_s_p8_0,
+		1, -520986624, 1620377600, 4, 0,
+		_vq_quantlist__44c8_s_p8_0,
+		null,
+		_vq_auxt__44c8_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p8_1[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c8_s_p8_1[] = {
+		 4, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+		 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8,
+		 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,
+		 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 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, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9,
+		 9, 9, 9, 9, 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, 9,
+		 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,
+		10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9,
+		 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9,10,10,10,10,
+		10,10,10, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9,
+		 9,10,10,10,10,10,10,10, 9,10,10, 9,10,10,10,10,
+		 9,10, 9,10,10, 9,10,10,10,10,10,10,10, 9,10,10,
+		10,10,10,10, 9, 9,10,10, 9,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9, 9,
+		10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9,
+		10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,10,10, 9, 9,10, 9, 9, 9,10,10,10,10,10,10,
+		10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, 9,
+		 9,10, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,
+		10, 9, 9,10,10, 9,10, 9, 9,
+	};
+
+	static float _vq_quantthresh__44c8_s_p8_1[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p8_1[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p8_1,
+		_vq_quantmap__44c8_s_p8_1,
+		21,
+		21
+	);
+
+	static static_codebook _44c8_s_p8_1 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c8_s_p8_1,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c8_s_p8_1,
+		null,
+		_vq_auxt__44c8_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p9_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c8_s_p9_0[] = {
+		 1, 4, 3,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11, 4, 7, 7,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,11, 4, 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,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,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,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,11,11,11,11,11,11,11,11,
+		11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,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,
+	};
+
+	static float _vq_quantthresh__44c8_s_p9_0[] = {
+		-6982.5f, -6051.5f, -5120.5f, -4189.5f, -3258.5f, -2327.5f, -1396.5f, -465.5f, 
+		465.5f, 1396.5f, 2327.5f, 3258.5f, 4189.5f, 5120.5f, 6051.5f, 6982.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p9_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p9_0,
+		_vq_quantmap__44c8_s_p9_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c8_s_p9_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c8_s_p9_0,
+		1, -509798400, 1631393792, 5, 0,
+		_vq_quantlist__44c8_s_p9_0,
+		null,
+		_vq_auxt__44c8_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p9_1[] = {
+		9,
+		8,
+		10,
+		7,
+		11,
+		6,
+		12,
+		5,
+		13,
+		4,
+		14,
+		3,
+		15,
+		2,
+		16,
+		1,
+		17,
+		0,
+		18,
+	};
+
+	static int _vq_lengthlist__44c8_s_p9_1[] = {
+		 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10,
+		10,11,11, 6, 6, 6, 8, 8, 9, 8, 8, 7,10, 8,11,10,
+		12,11,12,12,13,13, 5, 5, 6, 8, 8, 9, 9, 8, 8,10,
+		 9,11,11,12,12,13,13,13,13,17, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 9,12,10,12,12,13,12,13,13,17, 9, 8, 9,
+		 9, 9, 9, 9, 9,10,10,12,12,12,12,13,13,13,13,17,
+		13,13, 9, 9,10,10,10,10,11,11,12,11,13,12,13,13,
+		14,15,17,13,13, 9, 8,10, 9,10,10,11,11,12,12,14,
+		13,15,13,14,15,17,17,17, 9,10, 9,10,11,11,12,12,
+		12,12,13,13,14,14,15,15,17,17,17, 9, 8, 9, 8,11,
+		11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14,
+		 9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17,
+		17,13,11,10, 8,11, 9,13,12,13,13,13,13,13,14,14,
+		14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14,
+		13,15,16,15,17,17,17,17,17,11,11,12, 8,13,12,14,
+		13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12,
+		12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16,
+		17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17,
+		17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17,
+		17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15,
+		15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13,
+		14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13,
+		14,13,13,14,14,15,14,15,14,
+	};
+
+	static float _vq_quantthresh__44c8_s_p9_1[] = {
+		-416.5f, -367.5f, -318.5f, -269.5f, -220.5f, -171.5f, -122.5f, -73.5f, 
+		-24.5f, 24.5f, 73.5f, 122.5f, 171.5f, 220.5f, 269.5f, 318.5f, 
+		367.5f, 416.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p9_1[] = {
+		   17,   15,   13,   11,    9,    7,    5,    3,
+		    1,    0,    2,    4,    6,    8,   10,   12,
+		   14,   16,   18,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p9_1,
+		_vq_quantmap__44c8_s_p9_1,
+		19,
+		19
+	);
+
+	static static_codebook _44c8_s_p9_1 = new static_codebook(
+		2, 361,
+		_vq_lengthlist__44c8_s_p9_1,
+		1, -518287360, 1622704128, 5, 0,
+		_vq_quantlist__44c8_s_p9_1,
+		null,
+		_vq_auxt__44c8_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c8_s_p9_2[] = {
+		24,
+		23,
+		25,
+		22,
+		26,
+		21,
+		27,
+		20,
+		28,
+		19,
+		29,
+		18,
+		30,
+		17,
+		31,
+		16,
+		32,
+		15,
+		33,
+		14,
+		34,
+		13,
+		35,
+		12,
+		36,
+		11,
+		37,
+		10,
+		38,
+		9,
+		39,
+		8,
+		40,
+		7,
+		41,
+		6,
+		42,
+		5,
+		43,
+		4,
+		44,
+		3,
+		45,
+		2,
+		46,
+		1,
+		47,
+		0,
+		48,
+	};
+
+	static int _vq_lengthlist__44c8_s_p9_2[] = {
+		 2, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
+		 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7,
+	};
+
+	static float _vq_quantthresh__44c8_s_p9_2[] = {
+		-23.5f, -22.5f, -21.5f, -20.5f, -19.5f, -18.5f, -17.5f, -16.5f, 
+		-15.5f, -14.5f, -13.5f, -12.5f, -11.5f, -10.5f, -9.5f, -8.5f, 
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+		8.5f, 9.5f, 10.5f, 11.5f, 12.5f, 13.5f, 14.5f, 15.5f, 
+		16.5f, 17.5f, 18.5f, 19.5f, 20.5f, 21.5f, 22.5f, 23.5f, 
+	};
+
+	static int _vq_quantmap__44c8_s_p9_2[] = {
+		   47,   45,   43,   41,   39,   37,   35,   33,
+		   31,   29,   27,   25,   23,   21,   19,   17,
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,   18,   20,   22,   24,   26,   28,   30,
+		   32,   34,   36,   38,   40,   42,   44,   46,
+		   48,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c8_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c8_s_p9_2,
+		_vq_quantmap__44c8_s_p9_2,
+		49,
+		49
+	);
+
+	static static_codebook _44c8_s_p9_2 = new static_codebook(
+		1, 49,
+		_vq_lengthlist__44c8_s_p9_2,
+		1, -526909440, 1611661312, 6, 0,
+		_vq_quantlist__44c8_s_p9_2,
+		null,
+		_vq_auxt__44c8_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c8_s_short[] = {
+		 4,11,13,14,15,15,18,17,19,17, 5, 6, 8, 9,10,10,
+		12,15,19,19, 6, 6, 6, 6, 8, 8,11,14,18,19, 8, 6,
+		 5, 4, 6, 7,10,13,16,17, 9, 7, 6, 5, 6, 7, 9,12,
+		15,19,10, 8, 7, 6, 6, 6, 7, 9,13,15,12,10, 9, 8,
+		 7, 6, 4, 5,10,15,13,13,11, 8, 6, 6, 4, 2, 7,12,
+		17,15,16,10, 8, 8, 7, 6, 9,12,19,18,17,13,11,10,
+		10, 9,11,14,
+	};
+	
+	static int _huff_lengthlist__44c8_s_long[] = {
+		 3, 8,12,13,14,14,14,13,14,14, 6, 4, 5, 8,10,10,
+		11,11,14,13, 9, 5, 4, 5, 7, 8, 9,10,13,13,12, 7,
+		 5, 4, 5, 6, 8, 9,12,13,13, 9, 6, 5, 5, 5, 7, 9,
+		11,14,12,10, 7, 6, 5, 4, 6, 7,10,11,12,11, 9, 8,
+		 7, 5, 5, 6,10,10,13,12,10, 9, 8, 6, 6, 5, 8,10,
+		14,13,12,12,11,10, 9, 7, 8,10,12,13,14,14,13,12,
+		11, 9, 9,10,
+	};
+
+	
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c8_s_short;
+	public static_codebook _huff_book__44c8_s_long;
+
+
+	public resbook_44s_8() {
+		
+		_huff_book__44c8_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c8_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c8_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c8_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c8_s_p1_0 },
+			{ zero, zero, _44c8_s_p2_0 },
+			{ zero, zero, _44c8_s_p3_0 },
+			{ zero, zero, _44c8_s_p4_0 },
+			{ _44c8_s_p5_0, _44c8_s_p5_1 },
+			{ _44c8_s_p6_0, _44c8_s_p6_1 },
+			{ _44c8_s_p7_0, _44c8_s_p7_1 },
+			{ _44c8_s_p8_0, _44c8_s_p8_1 },
+			{ _44c8_s_p9_0, _44c8_s_p9_1, _44c8_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_8.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_9.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_9.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_9.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1026 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_9 {
+	
+	static int _vq_quantlist__44c9_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c9_s_p1_0[] = {
+		 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 8, 0, 9, 8, 0,
+		 9, 8, 6, 8, 8, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 5, 8, 8, 0, 7, 7, 0, 8, 8, 5, 8, 8,
+		 0, 7, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+		 9, 8, 0, 8, 8, 0, 7, 7, 5, 8, 9, 0, 8, 8, 0, 7,
+		 7,
+	};
+
+	static float _vq_quantthresh__44c9_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p1_0,
+		_vq_quantmap__44c9_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c9_s_p1_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c9_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c9_s_p1_0,
+		null,
+		_vq_auxt__44c9_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c9_s_p2_0[] = {
+		 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0,
+		 7, 7, 9, 9, 0, 0, 0, 9, 9, 6, 7, 7, 9, 8, 0, 8,
+		 8, 9, 9, 0, 8, 7, 9, 9, 0, 9,10,10,10, 0, 0, 0,
+		11,10, 6, 7, 7, 8, 9, 0, 8, 8, 9, 9, 0, 7, 8, 9,
+		 9, 0,10, 9,11,10, 0, 0, 0,10,10, 8, 9, 8,10,10,
+		 0,10,10,12,11, 0,10,10,11,11, 0,12,13,13,13, 0,
+		 0, 0,13,12, 8, 8, 9,10,10, 0,10,10,11,12, 0,10,
+		10,11,11, 0,13,12,13,13, 0, 0, 0,13,13, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 6, 8, 7,10,10, 0, 7, 7,10, 9,
+		 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,10,10, 6,
+		 7, 8,10,10, 0, 7, 7, 9,10, 0, 7, 7,10,10, 0, 9,
+		 9,10,10, 0, 0, 0,10,10, 8, 9, 9,11,11, 0,10,10,
+		11,11, 0,10,10,11,11, 0,12,12,12,12, 0, 0, 0,12,
+		12, 8, 9,10,11,11, 0, 9,10,11,11, 0,10,10,11,11,
+		 0,12,12,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 5, 8, 7,10,10, 0, 7, 7,10,10, 0, 7, 7,
+		10, 9, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, 7, 8,10,
+		10, 0, 7, 7,10,10, 0, 7, 7, 9,10, 0, 9, 9,10,10,
+		 0, 0, 0,10,10, 8,10, 9,12,11, 0,10,10,12,11, 0,
+		10, 9,11,11, 0,11,12,12,12, 0, 0, 0,12,12, 8, 9,
+		10,11,12, 0,10,10,11,11, 0, 9,10,11,11, 0,12,11,
+		12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 7,10, 9,12,12, 0, 9, 9,12,11, 0, 9, 9,11,11, 0,
+		10,10,12,11, 0, 0, 0,11,12, 7, 9,10,12,12, 0, 9,
+		 9,11,12, 0, 9, 9,11,11, 0,10,10,11,12, 0, 0, 0,
+		11,11, 9,11,10,13,12, 0,10,10,12,12, 0,10,10,12,
+		12, 0,11,11,12,12, 0, 0, 0,13,12, 9,10,11,12,13,
+		 0,10,10,12,12, 0,10,10,12,12, 0,11,12,12,12, 0,
+		 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+		11,10,13,13, 0,10,10,12,12, 0,10,10,12,12, 0,11,
+		12,12,12, 0, 0, 0,12,12, 9,10,11,13,13, 0,10,10,
+		12,12, 0,10,10,12,12, 0,12,11,13,12, 0, 0, 0,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c9_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p2_0,
+		_vq_quantmap__44c9_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c9_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c9_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c9_s_p2_0,
+		null,
+		_vq_auxt__44c9_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c9_s_p3_0[] = {
+		 3, 4, 4, 5, 5, 6, 6, 8, 8, 0, 4, 4, 5, 5, 6, 7,
+		 8, 8, 0, 4, 4, 5, 5, 7, 7, 8, 8, 0, 5, 5, 6, 6,
+		 7, 7, 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0,
+		 7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c9_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p3_0,
+		_vq_quantmap__44c9_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c9_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c9_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c9_s_p3_0,
+		null,
+		_vq_auxt__44c9_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p4_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c9_s_p4_0[] = {
+		 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,10,
+		10, 0, 5, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,
+		11,11, 0, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,
+		10,11,11, 0, 6, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,
+		11,11,11,12, 0, 0, 0, 6, 6, 7, 7, 8, 8, 9, 9,10,
+		10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, 9, 9,
+		10,10,11,11,12,12, 0, 0, 0, 7, 7, 7, 8, 9, 9, 9,
+		 9,10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,
+		10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9,
+		 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c9_s_p4_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p4_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p4_0,
+		_vq_quantmap__44c9_s_p4_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c9_s_p4_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c9_s_p4_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c9_s_p4_0,
+		null,
+		_vq_auxt__44c9_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p5_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c9_s_p5_0[] = {
+		 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6, 9,10,10,10,
+		10, 9, 4, 6, 7, 9,10,10,10, 9,10, 5, 9, 9, 9,11,
+		11,10,11,11, 7,10, 9,11,12,11,12,12,12, 7, 9,10,
+		11,11,12,12,12,12, 6,10,10,10,12,12,10,12,11, 7,
+		10,10,11,12,12,11,12,12, 7,10,10,11,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c9_s_p5_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p5_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p5_0,
+		_vq_quantmap__44c9_s_p5_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c9_s_p5_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c9_s_p5_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c9_s_p5_0,
+		null,
+		_vq_auxt__44c9_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p5_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c9_s_p5_1[] = {
+		 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7,11, 5, 5, 6, 6,
+		 7, 7, 7, 7, 8, 8,11, 5, 5, 6, 6, 7, 7, 7, 7, 8,
+		 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6,
+		 6, 7, 7, 7, 8, 8, 8,11,11,11, 6, 6, 7, 7, 7, 8,
+		 8, 8,11,11,11, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11,
+		 7, 7, 7, 7, 7, 7, 8, 8,11,11,11,10,10, 7, 7, 7,
+		 7, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 7, 7,11,11,
+		11,11,11, 7, 7, 7, 7, 7, 7,
+	};
+
+	static float _vq_quantthresh__44c9_s_p5_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p5_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p5_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p5_1,
+		_vq_quantmap__44c9_s_p5_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c9_s_p5_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c9_s_p5_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c9_s_p5_1,
+		null,
+		_vq_auxt__44c9_s_p5_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p6_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c9_s_p6_0[] = {
+		 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 5, 4, 4,
+		 6, 6, 8, 8, 9, 9, 9, 9,10,10, 6, 4, 4, 6, 6, 8,
+		 8, 9, 9, 9, 9,10,10, 0, 6, 6, 7, 7, 8, 8, 9, 9,
+		10,10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,
+		11, 0,10,10, 8, 8, 9, 9,10,10,11,11,12,12, 0,11,
+		11, 8, 8, 9, 9,10,10,11,11,12,12, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	};
+
+	static float _vq_quantthresh__44c9_s_p6_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p6_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p6_0,
+		_vq_quantmap__44c9_s_p6_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c9_s_p6_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c9_s_p6_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c9_s_p6_0,
+		null,
+		_vq_auxt__44c9_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p6_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c9_s_p6_1[] = {
+		 4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5,
+		 5, 5, 5, 5, 5, 5, 5, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c9_s_p6_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p6_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p6_1,
+		_vq_quantmap__44c9_s_p6_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c9_s_p6_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c9_s_p6_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c9_s_p6_1,
+		null,
+		_vq_auxt__44c9_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c9_s_p7_0[] = {
+		 2, 4, 4, 6, 6, 7, 7, 8, 8,10,10,11,11, 6, 4, 4,
+		 6, 6, 8, 8, 9, 9,10,10,12,12, 6, 4, 5, 6, 6, 8,
+		 8, 9, 9,10,10,12,12,20, 6, 6, 6, 6, 8, 8, 9,10,
+		11,11,12,12,20, 6, 6, 6, 6, 8, 8,10,10,11,11,12,
+		12,20,10,10, 7, 7, 9, 9,10,10,11,11,12,12,20,11,
+		11, 7, 7, 9, 9,10,10,11,11,12,12,20,20,20, 9, 9,
+		 9, 9,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9,11,
+		11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13,
+		13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20,
+		20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19,
+		19,12,12,12,12,13,13,14,14,
+	};
+
+	static float _vq_quantthresh__44c9_s_p7_0[] = {
+		-60.5f, -49.5f, -38.5f, -27.5f, -16.5f, -5.5f, 5.5f, 16.5f, 
+		27.5f, 38.5f, 49.5f, 60.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p7_0,
+		_vq_quantmap__44c9_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c9_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c9_s_p7_0,
+		1, -523206656, 1618345984, 4, 0,
+		_vq_quantlist__44c9_s_p7_0,
+		null,
+		_vq_auxt__44c9_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p7_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c9_s_p7_1[] = {
+		 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6,
+		 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7,
+		 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 6,
+		 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7,
+		 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
+		 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7,
+		 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8,
+		 8, 8, 8, 7, 7, 7, 7, 7, 7,
+	};
+
+	static float _vq_quantthresh__44c9_s_p7_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p7_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p7_1,
+		_vq_quantmap__44c9_s_p7_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c9_s_p7_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c9_s_p7_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c9_s_p7_1,
+		null,
+		_vq_auxt__44c9_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p8_0[] = {
+		7,
+		6,
+		8,
+		5,
+		9,
+		4,
+		10,
+		3,
+		11,
+		2,
+		12,
+		1,
+		13,
+		0,
+		14,
+	};
+
+	static int _vq_lengthlist__44c9_s_p8_0[] = {
+		 1, 4, 4, 7, 6, 8, 8, 8, 8, 9, 9,10,10,11,10, 6,
+		 5, 5, 7, 7, 9, 9, 8, 9,10,10,11,11,12,12, 6, 5,
+		 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,21, 7, 8,
+		 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,21, 8, 8, 8,
+		 8, 9, 9, 9, 9,10,10,11,11,12,12,21,11,12, 9, 9,
+		10,10,10,10,10,11,11,12,12,12,21,12,12, 9, 8,10,
+		10,10,10,11,11,12,12,13,13,21,21,21, 9, 9, 9, 9,
+		11,11,11,11,12,12,12,13,21,20,20, 9, 9, 9, 9,10,
+		11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11,
+		12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12,
+		12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12,
+		13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13,
+		13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13,
+		14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c9_s_p8_0[] = {
+		-136.5f, -115.5f, -94.5f, -73.5f, -52.5f, -31.5f, -10.5f, 10.5f, 
+		31.5f, 52.5f, 73.5f, 94.5f, 115.5f, 136.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p8_0[] = {
+		   13,   11,    9,    7,    5,    3,    1,    0,
+		    2,    4,    6,    8,   10,   12,   14,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p8_0,
+		_vq_quantmap__44c9_s_p8_0,
+		15,
+		15
+	);
+
+	static static_codebook _44c9_s_p8_0 = new static_codebook(
+		2, 225,
+		_vq_lengthlist__44c9_s_p8_0,
+		1, -520986624, 1620377600, 4, 0,
+		_vq_quantlist__44c9_s_p8_0,
+		null,
+		_vq_auxt__44c9_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p8_1[] = {
+		10,
+		9,
+		11,
+		8,
+		12,
+		7,
+		13,
+		6,
+		14,
+		5,
+		15,
+		4,
+		16,
+		3,
+		17,
+		2,
+		18,
+		1,
+		19,
+		0,
+		20,
+	};
+
+	static int _vq_lengthlist__44c9_s_p8_1[] = {
+		 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+		 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8,
+		 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,
+		 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 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, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8,
+		 9, 9, 9, 9, 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, 9,
+		 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,
+		10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10,
+		10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,
+		 9,10,10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10,
+		 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9,10,
+		 9,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,
+		10,10,10,10, 9, 9,10,10, 9, 9, 9, 9, 9, 9, 9, 9,
+		10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,
+		10,10, 9, 9,10, 9, 9, 9, 9, 9,10,10,10,10,10,10,
+		10,10,10,10,10, 9, 9,10,10, 9, 9,10, 9, 9, 9,10,
+		10,10,10,10,10,10,10,10,10,10, 9, 9,10, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9,
+		 9, 9, 9,10, 9, 9, 9, 9, 9,
+	};
+
+	static float _vq_quantthresh__44c9_s_p8_1[] = {
+		-9.5f, -8.5f, -7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, 
+		-1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 
+		6.5f, 7.5f, 8.5f, 9.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p8_1[] = {
+		   19,   17,   15,   13,   11,    9,    7,    5,
+		    3,    1,    0,    2,    4,    6,    8,   10,
+		   12,   14,   16,   18,   20,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p8_1,
+		_vq_quantmap__44c9_s_p8_1,
+		21,
+		21
+	);
+
+	static static_codebook _44c9_s_p8_1 = new static_codebook(
+		2, 441,
+		_vq_lengthlist__44c9_s_p8_1,
+		1, -529268736, 1611661312, 5, 0,
+		_vq_quantlist__44c9_s_p8_1,
+		null,
+		_vq_auxt__44c9_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p9_0[] = {
+		9,
+		8,
+		10,
+		7,
+		11,
+		6,
+		12,
+		5,
+		13,
+		4,
+		14,
+		3,
+		15,
+		2,
+		16,
+		1,
+		17,
+		0,
+		18,
+	};
+
+	static int _vq_lengthlist__44c9_s_p9_0[] = {
+		 1, 4, 3,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12, 4, 5, 6,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12, 4, 6, 6,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,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,
+		11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,11,11,11,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,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,11,11,11,11,11,11,11,11,
+	};
+
+	static float _vq_quantthresh__44c9_s_p9_0[] = {
+		-7913.5f, -6982.5f, -6051.5f, -5120.5f, -4189.5f, -3258.5f, -2327.5f, -1396.5f, 
+		-465.5f, 465.5f, 1396.5f, 2327.5f, 3258.5f, 4189.5f, 5120.5f, 6051.5f, 
+		6982.5f, 7913.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p9_0[] = {
+		   17,   15,   13,   11,    9,    7,    5,    3,
+		    1,    0,    2,    4,    6,    8,   10,   12,
+		   14,   16,   18,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p9_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p9_0,
+		_vq_quantmap__44c9_s_p9_0,
+		19,
+		19
+	);
+
+	static static_codebook _44c9_s_p9_0 = new static_codebook(
+		2, 361,
+		_vq_lengthlist__44c9_s_p9_0,
+		1, -508535424, 1631393792, 5, 0,
+		_vq_quantlist__44c9_s_p9_0,
+		null,
+		_vq_auxt__44c9_s_p9_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p9_1[] = {
+		9,
+		8,
+		10,
+		7,
+		11,
+		6,
+		12,
+		5,
+		13,
+		4,
+		14,
+		3,
+		15,
+		2,
+		16,
+		1,
+		17,
+		0,
+		18,
+	};
+
+	static int _vq_lengthlist__44c9_s_p9_1[] = {
+		 1, 4, 4, 7, 7, 7, 7, 8, 7, 9, 8, 9, 9,10,10,11,
+		11,11,11, 6, 5, 5, 8, 8, 9, 9, 9, 8,10, 9,11,10,
+		12,12,13,12,13,13, 5, 5, 5, 8, 8, 9, 9, 9, 9,10,
+		10,11,11,12,12,13,12,13,13,17, 8, 8, 9, 9, 9, 9,
+		 9, 9,10,10,12,11,13,12,13,13,13,13,18, 8, 8, 9,
+		 9, 9, 9, 9, 9,11,11,12,12,13,13,13,13,13,13,17,
+		13,12, 9, 9,10,10,10,10,11,11,12,12,12,13,13,13,
+		14,14,18,13,12, 9, 9,10,10,10,10,11,11,12,12,13,
+		13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12,
+		12,12,14,13,14,13,13,14,18,18,18,10, 9,10, 9,11,
+		11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14,
+		10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18,
+		18,14,12,11, 9,11,10,13,12,13,13,13,14,14,14,13,
+		14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14,
+		13,14,14,14,18,18,18,18,17,12,10,12, 9,13,11,13,
+		14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13,
+		13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15,
+		15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18,
+		18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15,
+		18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15,
+		14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14,
+		14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13,
+		13,13,13,14,13,14,15,15,15,
+	};
+
+	static float _vq_quantthresh__44c9_s_p9_1[] = {
+		-416.5f, -367.5f, -318.5f, -269.5f, -220.5f, -171.5f, -122.5f, -73.5f, 
+		-24.5f, 24.5f, 73.5f, 122.5f, 171.5f, 220.5f, 269.5f, 318.5f, 
+		367.5f, 416.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p9_1[] = {
+		   17,   15,   13,   11,    9,    7,    5,    3,
+		    1,    0,    2,    4,    6,    8,   10,   12,
+		   14,   16,   18,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p9_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p9_1,
+		_vq_quantmap__44c9_s_p9_1,
+		19,
+		19
+	);
+
+	static static_codebook _44c9_s_p9_1 = new static_codebook(
+		2, 361,
+		_vq_lengthlist__44c9_s_p9_1,
+		1, -518287360, 1622704128, 5, 0,
+		_vq_quantlist__44c9_s_p9_1,
+		null,
+		_vq_auxt__44c9_s_p9_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c9_s_p9_2[] = {
+		24,
+		23,
+		25,
+		22,
+		26,
+		21,
+		27,
+		20,
+		28,
+		19,
+		29,
+		18,
+		30,
+		17,
+		31,
+		16,
+		32,
+		15,
+		33,
+		14,
+		34,
+		13,
+		35,
+		12,
+		36,
+		11,
+		37,
+		10,
+		38,
+		9,
+		39,
+		8,
+		40,
+		7,
+		41,
+		6,
+		42,
+		5,
+		43,
+		4,
+		44,
+		3,
+		45,
+		2,
+		46,
+		1,
+		47,
+		0,
+		48,
+	};
+
+	static int _vq_lengthlist__44c9_s_p9_2[] = {
+		 2, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
+		 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7,
+	};
+
+	static float _vq_quantthresh__44c9_s_p9_2[] = {
+		-23.5f, -22.5f, -21.5f, -20.5f, -19.5f, -18.5f, -17.5f, -16.5f, 
+		-15.5f, -14.5f, -13.5f, -12.5f, -11.5f, -10.5f, -9.5f, -8.5f, 
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+		8.5f, 9.5f, 10.5f, 11.5f, 12.5f, 13.5f, 14.5f, 15.5f, 
+		16.5f, 17.5f, 18.5f, 19.5f, 20.5f, 21.5f, 22.5f, 23.5f, 
+	};
+
+	static int _vq_quantmap__44c9_s_p9_2[] = {
+		   47,   45,   43,   41,   39,   37,   35,   33,
+		   31,   29,   27,   25,   23,   21,   19,   17,
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,   18,   20,   22,   24,   26,   28,   30,
+		   32,   34,   36,   38,   40,   42,   44,   46,
+		   48,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c9_s_p9_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c9_s_p9_2,
+		_vq_quantmap__44c9_s_p9_2,
+		49,
+		49
+	);
+
+	static static_codebook _44c9_s_p9_2 = new static_codebook(
+		1, 49,
+		_vq_lengthlist__44c9_s_p9_2,
+		1, -526909440, 1611661312, 6, 0,
+		_vq_quantlist__44c9_s_p9_2,
+		null,
+		_vq_auxt__44c9_s_p9_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c9_s_short[] = {
+		 5,13,18,16,17,17,19,18,19,19, 5, 7,10,11,12,12,
+		13,16,17,18, 6, 6, 7, 7, 9, 9,10,14,17,19, 8, 7,
+		 6, 5, 6, 7, 9,12,19,17, 8, 7, 7, 6, 5, 6, 8,11,
+		15,19, 9, 8, 7, 6, 5, 5, 6, 8,13,15,11,10, 8, 8,
+		 7, 5, 4, 4,10,14,12,13,11, 9, 7, 6, 4, 2, 6,12,
+		18,16,16,13, 8, 7, 7, 5, 8,13,16,17,18,15,11, 9,
+		 9, 8,10,13,
+	};
+	
+	static int _huff_lengthlist__44c9_s_long[] = {
+		 3, 8,12,14,15,15,15,13,15,15, 6, 5, 8,10,12,12,
+		13,12,14,13,10, 6, 5, 6, 8, 9,11,11,13,13,13, 8,
+		 5, 4, 5, 6, 8,10,11,13,14,10, 7, 5, 4, 5, 7, 9,
+		11,12,13,11, 8, 6, 5, 4, 5, 7, 9,11,12,11,10, 8,
+		 7, 5, 4, 5, 9,10,13,13,11,10, 8, 6, 5, 4, 7, 9,
+		15,14,13,12,10, 9, 8, 7, 8, 9,12,12,14,13,12,11,
+		10, 9, 8, 9,
+	};
+
+
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c9_s_short;
+	public static_codebook _huff_book__44c9_s_long;
+
+
+	public resbook_44s_9() {
+		
+		_huff_book__44c9_s_short = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c9_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c9_s_long = new static_codebook(
+			2, 100,
+			_huff_lengthlist__44c9_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c9_s_p1_0 },
+			{ zero, zero, _44c9_s_p2_0 },
+			{ zero, zero, _44c9_s_p3_0 },
+			{ zero, zero, _44c9_s_p4_0 },
+			{ _44c9_s_p5_0, _44c9_s_p5_1 },
+			{ _44c9_s_p6_0, _44c9_s_p6_1 },
+			{ _44c9_s_p7_0, _44c9_s_p7_1 },
+			{ _44c9_s_p8_0, _44c9_s_p8_1 },
+			{ _44c9_s_p9_0, _44c9_s_p9_1, _44c9_s_p9_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_9.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_n1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_n1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_n1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1170 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44s_n1 {
+
+	static int _vq_quantlist__44cn1_s_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p1_0[] = {
+		 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0,
+		 0, 0, 0, 7, 9,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, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0,
+		 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0,
+		 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9,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, 7,10,10, 0, 0, 0,
+		 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0,10,11,11, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0,
+		 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0,10,11,11,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0,
+		 0, 0, 0, 0, 8,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, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, 0,
+		 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11,
+		 0, 0, 0, 0, 0, 0, 9,11, 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, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p1_0,
+		_vq_quantmap__44cn1_s_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44cn1_s_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44cn1_s_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44cn1_s_p1_0,
+		null,
+		_vq_auxt__44cn1_s_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p2_0[] = {
+		 1, 4, 4, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p2_0,
+		_vq_quantmap__44cn1_s_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44cn1_s_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44cn1_s_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44cn1_s_p2_0,
+		null,
+		_vq_auxt__44cn1_s_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p3_0[] = {
+		 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0,
+		 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7,
+		 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
+		 9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
+		 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p3_0,
+		_vq_quantmap__44cn1_s_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44cn1_s_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44cn1_s_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_s_p3_0,
+		null,
+		_vq_auxt__44cn1_s_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p4_0[] = {
+		 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 6, 6, 7, 7,
+		 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, 7, 7,
+		 8, 8,10,10, 0, 0, 0, 7, 7, 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 float _vq_quantthresh__44cn1_s_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p4_0,
+		_vq_quantmap__44cn1_s_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44cn1_s_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44cn1_s_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_s_p4_0,
+		null,
+		_vq_auxt__44cn1_s_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p5_0[] = {
+		 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10,
+		10, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10,
+		11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,
+		10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,
+		11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,
+		10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,
+		10,10,11,11,11,12,12, 0, 0, 0, 9, 9,10, 9,10,10,
+		10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,
+		10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		10,10,11,10,11,11,11,12,13,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,11,10,11,11,12,12,12,12,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0,
+		 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,12,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p5_0,
+		_vq_quantmap__44cn1_s_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44cn1_s_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44cn1_s_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44cn1_s_p5_0,
+		null,
+		_vq_auxt__44cn1_s_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p6_0[] = {
+		 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 6, 6,10, 9, 9,11,
+		 9, 9, 4, 6, 6,10, 9, 9,10, 9, 9, 7,10,10,11,11,
+		11,12,11,11, 7, 9, 9,11,11,10,11,10,10, 7, 9, 9,
+		11,10,11,11,10,10, 7,10,10,11,11,11,12,11,11, 7,
+		 9, 9,11,10,10,11,10,10, 7, 9, 9,11,10,10,11,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p6_0,
+		_vq_quantmap__44cn1_s_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44cn1_s_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44cn1_s_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44cn1_s_p6_0,
+		null,
+		_vq_auxt__44cn1_s_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p6_1[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 6,
+		 8, 8, 8, 8, 8, 8,10,10,10, 7, 6, 7, 7, 8, 8, 8,
+		 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7,
+		 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 9, 9,
+		 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9,
+		 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10,
+		10,10,10, 9, 9, 9, 9, 9, 9,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p6_1,
+		_vq_quantmap__44cn1_s_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44cn1_s_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44cn1_s_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_s_p6_1,
+		null,
+		_vq_auxt__44cn1_s_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9, 9,11,11, 7, 5, 5, 7, 7, 8,
+		 8, 8, 8, 9,10,11,11, 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, 9,10,10,10,11,11,11,12, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10,
+		10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11,
+		11,12,12,13,12, 0, 0, 0,14,14,11,10,11,12,12,13,
+		13,14, 0, 0, 0,15,15,11,11,12,11,12,12,14,13, 0,
+		 0, 0, 0, 0,12,12,12,12,13,13,14,14, 0, 0, 0, 0,
+		 0,13,13,12,12,13,13,13,14,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p7_0,
+		_vq_quantmap__44cn1_s_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44cn1_s_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44cn1_s_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44cn1_s_p7_0,
+		null,
+		_vq_auxt__44cn1_s_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p7_1[] = {
+		 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6,
+		 6, 6, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p7_1,
+		_vq_quantmap__44cn1_s_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44cn1_s_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44cn1_s_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44cn1_s_p7_1,
+		null,
+		_vq_auxt__44cn1_s_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p8_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p8_0[] = {
+		 1, 7, 7,11,11, 8,11,11,11,11, 4,11, 3,11,11,11,
+		11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,
+		11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
+		11,11,11,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,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,11,11,11, 7,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,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,
+		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,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, 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,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,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,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,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,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,11,11,11,11,11,11,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,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,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p8_0[] = {
+		-331.5f, -110.5f, 110.5f, 331.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p8_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p8_0,
+		_vq_quantmap__44cn1_s_p8_0,
+		5,
+		5
+	);
+
+	static static_codebook _44cn1_s_p8_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44cn1_s_p8_0,
+		1, -518283264, 1627103232, 3, 0,
+		_vq_quantlist__44cn1_s_p8_0,
+		null,
+		_vq_auxt__44cn1_s_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p8_1[] = {
+		 1, 4, 4, 6, 6, 8, 8, 9,10,10,11,11,11, 6, 5, 5,
+		 7, 7, 8, 8, 9,10, 9,11,11,12, 5, 5, 5, 7, 7, 8,
+		 9,10,10,12,12,14,13,15, 7, 7, 8, 8, 9,10,11,11,
+		10,12,10,11,15, 7, 8, 8, 8, 9, 9,11,11,13,12,12,
+		13,15,10,10, 8, 8,10,10,12,12,11,14,10,10,15,11,
+		11, 8, 8,10,10,12,13,13,14,15,13,15,15,15,10,10,
+		10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13,
+		11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10,
+		14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15,
+		15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15,
+		15,12,12,11,11,14,12,13,14,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p8_1,
+		_vq_quantmap__44cn1_s_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44cn1_s_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44cn1_s_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44cn1_s_p8_1,
+		null,
+		_vq_auxt__44cn1_s_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_s_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44cn1_s_p8_2[] = {
+		 3, 4, 3, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,
+		 9,10,11,11, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,
+		 9, 9,10,10,10, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9,10, 9,10,11,10, 7, 6, 7, 7, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10,11, 7, 7, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9,10,11,11,11, 8, 8, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,10,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,
+		11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11,
+		10,11,11,11, 9,10,10, 9, 9, 9, 9, 9, 9, 9,10,11,
+		11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,
+		11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9,
+		11,11,11,10,11,11,11,11,11, 9, 9, 9,10, 9, 9, 9,
+		 9,
+	};
+
+	static float _vq_quantthresh__44cn1_s_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_s_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_s_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_s_p8_2,
+		_vq_quantmap__44cn1_s_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44cn1_s_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44cn1_s_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44cn1_s_p8_2,
+		null,
+		_vq_auxt__44cn1_s_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44cn1_s_short[] = {
+		10, 9,12,15,12,13,16,14,16, 7, 1, 5,14, 7,10,13,
+		16,16, 9, 4, 6,16, 8,11,16,16,16,14, 4, 7,16, 9,
+		12,14,16,16,10, 5, 7,14, 9,12,14,15,15,13, 8, 9,
+		14,10,12,13,14,15,13, 9, 9, 7, 6, 8,11,12,12,14,
+		 8, 8, 5, 4, 5, 8,11,12,16,10,10, 6, 5, 6, 8, 9,
+		10,
+	};
+
+	static int _huff_lengthlist__44cn1_s_long[] = {
+		 4, 4, 7, 8, 7, 8,10,12,17, 3, 1, 6, 6, 7, 8,10,
+		12,15, 7, 6, 9, 9, 9,11,12,14,17, 8, 6, 9, 6, 7,
+		 9,11,13,17, 7, 6, 9, 7, 7, 8, 9,12,15, 8, 8,10,
+		 8, 7, 7, 7,10,14, 9,10,12,10, 8, 8, 8,10,14,11,
+		13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16,
+		20,
+	};
+
+	
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44cn1_s_short;
+	public static_codebook _huff_book__44cn1_s_long;
+
+
+	public resbook_44s_n1() {
+		
+		_huff_book__44cn1_s_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44cn1_s_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44cn1_s_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44cn1_s_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44cn1_s_p1_0 },
+			{ zero, zero, _44cn1_s_p2_0 },
+			{ zero, zero, _44cn1_s_p3_0 },
+			{ zero, zero, _44cn1_s_p4_0 },
+			{ zero, zero, _44cn1_s_p5_0 },
+			{ _44cn1_s_p6_0, _44cn1_s_p6_1 },
+			{ _44cn1_s_p7_0, _44cn1_s_p7_1 },
+			{ _44cn1_s_p8_0, _44cn1_s_p8_1, _44cn1_s_p8_2 },
+		} );
+	}	
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44s_n1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_0.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_0.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_0.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1141 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44sm_0 {
+
+	static int _vq_quantlist__44c0_sm_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p1_0[] = {
+		 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0,
+		 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0,
+		 0, 0, 8, 9, 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, 7, 9, 9, 0, 0, 0,
+		 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 9,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, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8, 0, 0, 0, 0, 0, 0, 7, 9, 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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0,
+		 0, 0, 0, 0, 0, 9, 9,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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p1_0,
+		_vq_quantmap__44c0_sm_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c0_sm_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c0_sm_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c0_sm_p1_0,
+		null,
+		_vq_auxt__44c0_sm_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p2_0[] = {
+		 1, 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, 5, 5, 7, 7, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p2_0,
+		_vq_quantmap__44c0_sm_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c0_sm_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c0_sm_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c0_sm_p2_0,
+		null,
+		_vq_auxt__44c0_sm_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p3_0[] = {
+		 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 4, 7, 7, 0, 0,
+		 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8,
+		 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0,
+		 9,10, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0,
+		 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p3_0,
+		_vq_quantmap__44c0_sm_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c0_sm_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c0_sm_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c0_sm_p3_0,
+		null,
+		_vq_auxt__44c0_sm_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p4_0[] = {
+		 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7,
+		 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,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0,
+		 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11,
+		11,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p4_0,
+		_vq_quantmap__44c0_sm_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c0_sm_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c0_sm_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c0_sm_p4_0,
+		null,
+		_vq_auxt__44c0_sm_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p5_0[] = {
+		 1, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11,
+		11,11, 0, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,
+		11,11,11, 0, 7, 7, 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, 8, 8, 9, 9,10,10,10,10,
+		11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,
+		10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,
+		10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,11,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		10,10,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0,
+		 0, 0, 0,10,10,11,11,12,12,12,13,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0,
+		 0, 0, 0, 0, 0,11,11,12,11,12,12,13,13,13,13, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p5_0,
+		_vq_quantmap__44c0_sm_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c0_sm_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c0_sm_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c0_sm_p5_0,
+		null,
+		_vq_auxt__44c0_sm_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p6_0[] = {
+		 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,10,11,
+		11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,10,11,11,11,11,11,11, 6,
+		 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,11,10,
+		11,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p6_0,
+		_vq_quantmap__44c0_sm_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c0_sm_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c0_sm_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c0_sm_p6_0,
+		null,
+		_vq_auxt__44c0_sm_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p6_1[] = {
+		 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 9, 5, 5, 6, 6,
+		 7, 7, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7, 7, 8, 8, 8,
+		 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8,
+		 8, 8,10,10,10, 8, 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, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p6_1,
+		_vq_quantmap__44c0_sm_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c0_sm_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c0_sm_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c0_sm_p6_1,
+		null,
+		_vq_auxt__44c0_sm_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8,
+		 8, 8, 8, 9, 9,10,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,11, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0, 9,10,
+		10,10,11,11,12,11,12,12, 0, 0, 0,10,10, 9, 9,11,
+		11,12,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12,
+		13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0,
+		 0, 0, 0, 0,11,12,11,11,13,12,13,13, 0, 0, 0, 0,
+		 0,12,12,11,11,13,12,14,14,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p7_0,
+		_vq_quantmap__44c0_sm_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c0_sm_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c0_sm_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c0_sm_p7_0,
+		null,
+		_vq_auxt__44c0_sm_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p7_1[] = {
+		 2, 4, 4, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
+		 6, 6, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p7_1,
+		_vq_quantmap__44c0_sm_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c0_sm_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c0_sm_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c0_sm_p7_1,
+		null,
+		_vq_auxt__44c0_sm_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p8_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p8_0[] = {
+		 1, 3, 3,11,11,11,11,11,11, 3, 7, 6,11,11,11,11,
+		11,11, 4, 8, 7,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+		12,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p8_0[] = {
+		-773.5f, -552.5f, -331.5f, -110.5f, 110.5f, 331.5f, 552.5f, 773.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p8_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p8_0,
+		_vq_quantmap__44c0_sm_p8_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c0_sm_p8_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c0_sm_p8_0,
+		1, -516186112, 1627103232, 4, 0,
+		_vq_quantlist__44c0_sm_p8_0,
+		null,
+		_vq_auxt__44c0_sm_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p8_1[] = {
+		 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5,
+		 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8,
+		 8,10,10,12,11,12,12,17, 7, 7, 8, 8, 9, 9,10,10,
+		12,12,13,13,18, 7, 7, 8, 7, 9, 9,10,10,12,12,12,
+		13,19,10,10, 8, 8,10,10,11,11,12,12,13,14,19,11,
+		10, 8, 7,10,10,11,11,12,12,13,12,19,19,19,10,10,
+		10,10,11,11,12,12,13,13,19,19,19,11, 9,11, 9,14,
+		12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13,
+		14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20,
+		20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20,
+		20,13,13,12,12,16,13,15,13,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p8_1,
+		_vq_quantmap__44c0_sm_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c0_sm_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c0_sm_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44c0_sm_p8_1,
+		null,
+		_vq_auxt__44c0_sm_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c0_sm_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c0_sm_p8_2[] = {
+		 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,
+		 9, 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9,
+		 9,10, 9, 9,10,10,10,11, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9, 9,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9,10,10,10,10,10,11,11, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,11,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,10,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,11,11,
+		11,11,11, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,10,11,10,
+		11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11,
+		11,11,11,11,11, 9,10, 9, 9, 9, 9, 9, 9, 9, 9,11,
+		11,10,11,11,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,
+		10,11,10,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,
+		 9,
+	};
+
+	static float _vq_quantthresh__44c0_sm_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c0_sm_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c0_sm_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c0_sm_p8_2,
+		_vq_quantmap__44c0_sm_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c0_sm_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c0_sm_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c0_sm_p8_2,
+		null,
+		_vq_auxt__44c0_sm_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c0_sm_short[] = {
+		 6, 6,12,13,13,14,16,17,17, 4, 2, 5, 8, 7, 9,12,
+		15,15, 9, 4, 5, 9, 7, 9,12,16,18,11, 6, 7, 4, 6,
+		 8,11,14,18,10, 5, 6, 5, 5, 7,10,14,17,10, 5, 7,
+		 7, 6, 7,10,13,16,11, 5, 7, 7, 7, 8,10,12,15,13,
+		 6, 7, 5, 5, 7, 9,12,13,16, 8, 9, 6, 6, 7, 9,10,
+		12,
+	};
+
+	static int _huff_lengthlist__44c0_sm_long[] = {
+		 5, 4, 9,10, 9,10,11,12,13, 4, 1, 5, 7, 7, 9,11,
+		12,14, 8, 5, 7, 9, 8,10,13,13,13,10, 7, 9, 4, 6,
+		 7,10,12,14, 9, 6, 7, 6, 6, 7,10,12,12, 9, 8, 9,
+		 7, 6, 7, 8,11,12,11,11,11, 9, 8, 7, 8,10,12,12,
+		13,14,12,11, 9, 9, 9,12,12,17,17,15,16,12,10,11,
+		13,
+	};
+
+
+	static_codebook zero = null;
+	
+	public static_bookblock books;
+	public static_codebook _huff_book__44c0_sm_short;
+	public static_codebook _huff_book__44c0_sm_long;
+
+
+	public resbook_44sm_0() {
+		
+		_huff_book__44c0_sm_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c0_sm_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c0_sm_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c0_sm_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c0_sm_p1_0 },
+			{ zero, zero, _44c0_sm_p2_0 },
+			{ zero, zero, _44c0_sm_p3_0 },
+			{ zero, zero, _44c0_sm_p4_0 },
+			{ zero, zero, _44c0_sm_p5_0 },
+			{ _44c0_sm_p6_0, _44c0_sm_p6_1 },
+			{ _44c0_sm_p7_0, _44c0_sm_p7_1 },
+			{ _44c0_sm_p8_0, _44c0_sm_p8_1, _44c0_sm_p8_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_0.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1151 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44sm_1 {
+
+	static int _vq_quantlist__44c1_sm_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p1_0[] = {
+		 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0,
+		 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0,
+		 0, 0, 8, 9, 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, 7, 9, 9, 0, 0, 0,
+		 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,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, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8, 0, 0, 0, 0, 0, 0, 8, 9, 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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0,
+		 0, 0, 0, 0, 0, 8, 9,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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p1_0,
+		_vq_quantmap__44c1_sm_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c1_sm_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44c1_sm_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44c1_sm_p1_0,
+		null,
+		_vq_auxt__44c1_sm_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p2_0[] = {
+		 2, 3, 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, 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, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p2_0,
+		_vq_quantmap__44c1_sm_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44c1_sm_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44c1_sm_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c1_sm_p2_0,
+		null,
+		_vq_auxt__44c1_sm_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p3_0[] = {
+		 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0,
+		 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7,
+		 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
+		 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
+		 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p3_0,
+		_vq_quantmap__44c1_sm_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c1_sm_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c1_sm_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c1_sm_p3_0,
+		null,
+		_vq_auxt__44c1_sm_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p4_0[] = {
+		 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, 8, 8,
+		 9, 9, 0, 6, 6, 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,
+		 8, 8, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0,
+		 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11,
+		11,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p4_0,
+		_vq_quantmap__44c1_sm_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44c1_sm_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44c1_sm_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44c1_sm_p4_0,
+		null,
+		_vq_auxt__44c1_sm_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p5_0[] = {
+		 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,
+		11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,
+		11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,
+		10,11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,
+		11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,
+		10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10,10,
+		10,11,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10,
+		10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,
+		 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9,
+		 9, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,
+		 9, 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0,
+		 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0,
+		 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, 0,
+		 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0,
+		 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p5_0,
+		_vq_quantmap__44c1_sm_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44c1_sm_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c1_sm_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c1_sm_p5_0,
+		null,
+		_vq_auxt__44c1_sm_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p6_0[] = {
+		 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,10,11,
+		11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,11,11,11,11,11,11,11, 6,
+		 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,11,10,
+		11,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p6_0,
+		_vq_quantmap__44c1_sm_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44c1_sm_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44c1_sm_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44c1_sm_p6_0,
+		null,
+		_vq_auxt__44c1_sm_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p6_1[] = {
+		 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, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8,
+		 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10,
+		 8, 8, 8, 8, 8, 8, 9, 8,10,10,10,10,10, 8, 8, 8,
+		 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10,
+		10,10,10, 8, 8, 8, 8, 8, 8,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p6_1,
+		_vq_quantmap__44c1_sm_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44c1_sm_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44c1_sm_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44c1_sm_p6_1,
+		null,
+		_vq_auxt__44c1_sm_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5,
+		 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 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,11, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0, 9,10,
+		 9,10,11,11,12,11,13,12, 0, 0, 0,10,10, 9, 9,11,
+		11,12,12,13,12, 0, 0, 0,13,13,10,10,11,11,12,12,
+		13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0,
+		 0, 0, 0, 0,11,12,11,11,12,13,14,13, 0, 0, 0, 0,
+		 0,12,12,11,11,13,12,14,13,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p7_0,
+		_vq_quantmap__44c1_sm_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_sm_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_sm_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44c1_sm_p7_0,
+		null,
+		_vq_auxt__44c1_sm_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p7_1[] = {
+		 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p7_1,
+		_vq_quantmap__44c1_sm_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44c1_sm_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44c1_sm_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44c1_sm_p7_1,
+		null,
+		_vq_auxt__44c1_sm_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p8_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p8_0[] = {
+		 1, 3, 3,13,13,13,13,13,13,13,13,13,13, 3, 6, 6,
+		13,13,13,13,13,13,13,13,13,13, 4, 8, 7,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+		13,13,13,13,13,13,13,13,13,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p8_0[] = {
+		-1215.5f, -994.5f, -773.5f, -552.5f, -331.5f, -110.5f, 110.5f, 331.5f, 
+		552.5f, 773.5f, 994.5f, 1215.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p8_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p8_0,
+		_vq_quantmap__44c1_sm_p8_0,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_sm_p8_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_sm_p8_0,
+		1, -514541568, 1627103232, 4, 0,
+		_vq_quantlist__44c1_sm_p8_0,
+		null,
+		_vq_auxt__44c1_sm_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p8_1[] = {
+		 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5,
+		 7, 7, 8, 7,10,10,11,11,12,12, 6, 5, 5, 7, 7, 8,
+		 8,10,10,11,11,12,12,16, 7, 7, 8, 8, 9, 9,11,11,
+		12,12,13,13,17, 7, 7, 8, 7, 9, 9,11,10,12,12,13,
+		13,19,11,10, 8, 8,10,10,11,11,12,12,13,13,19,11,
+		11, 9, 7,11,10,11,11,12,12,13,12,19,19,19,10,10,
+		10,10,11,12,12,12,13,14,18,19,19,11, 9,11, 9,13,
+		12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13,
+		14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20,
+		20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20,
+		20,13,12,12,12,14,12,14,13,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p8_1,
+		_vq_quantmap__44c1_sm_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44c1_sm_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44c1_sm_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44c1_sm_p8_1,
+		null,
+		_vq_auxt__44c1_sm_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44c1_sm_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44c1_sm_p8_2[] = {
+		 2, 5, 5, 6, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+		 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,
+		 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9,
+		 9, 9,10,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9,
+		 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,11,11,11, 9,
+		 8, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11,11,
+		11,11,11, 9, 9,10, 9, 9, 9, 9,10, 9,10,10,11,10,
+		11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,10,11,
+		11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,
+		11,10,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9,
+		10,11,10,11,11,11,11,11,11, 9, 9,10, 9, 9, 9, 9,
+		 9,
+	};
+
+	static float _vq_quantthresh__44c1_sm_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44c1_sm_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44c1_sm_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44c1_sm_p8_2,
+		_vq_quantmap__44c1_sm_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44c1_sm_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44c1_sm_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44c1_sm_p8_2,
+		null,
+		_vq_auxt__44c1_sm_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44c1_sm_short[] = {
+		 4, 7,13,14,14,15,16,18,18, 4, 2, 5, 8, 7, 9,12,
+		15,15,10, 4, 5,10, 6, 8,11,15,17,12, 5, 7, 5, 6,
+		 8,11,14,17,11, 5, 6, 6, 5, 6, 9,13,17,12, 6, 7,
+		 6, 5, 6, 8,12,14,14, 7, 8, 6, 6, 7, 9,11,14,14,
+		 8, 9, 6, 5, 6, 9,11,13,16,10,10, 7, 6, 7, 8,10,
+		11,
+	};
+	
+	static int _huff_lengthlist__44c1_sm_long[] = {
+		 5, 4, 8,10, 9, 9,10,11,12, 4, 2, 5, 6, 6, 8,10,
+		11,13, 8, 4, 6, 8, 7, 9,12,12,14,10, 6, 8, 4, 5,
+		 6, 9,11,12, 9, 5, 6, 5, 5, 6, 9,11,11, 9, 7, 9,
+		 6, 5, 5, 7,10,10,10, 9,11, 8, 7, 6, 7, 9,11,11,
+		12,13,10,10, 9, 8, 9,11,11,15,15,12,13,11, 9,10,
+		11,
+	};
+
+	
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44c1_sm_short;
+	public static_codebook _huff_book__44c1_sm_long;
+
+
+	public resbook_44sm_1() {
+		
+		_huff_book__44c1_sm_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c1_sm_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44c1_sm_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44c1_sm_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44c1_sm_p1_0 },
+			{ zero, zero, _44c1_sm_p2_0 },
+			{ zero, zero, _44c1_sm_p3_0 },
+			{ zero, zero, _44c1_sm_p4_0 },
+			{ zero, zero, _44c1_sm_p5_0 },
+			{ _44c1_sm_p6_0, _44c1_sm_p6_1 },
+			{ _44c1_sm_p7_0, _44c1_sm_p7_1 },
+			{ _44c1_sm_p8_0, _44c1_sm_p8_1, _44c1_sm_p8_2 },
+		} );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_n1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_n1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_n1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1141 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.coupled.resbook_44;
+
+import org.xiph.libvorbis.*;
+
+class resbook_44sm_n1 {
+	
+	static int _vq_quantlist__44cn1_sm_p1_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p1_0[] = {
+		 1, 4, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0,
+		 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 5, 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, 5, 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, 8, 8, 0, 0, 0, 0,
+		 0, 0, 8,10, 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, 7,10, 9, 0, 0, 0,
+		 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,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, 7, 9, 9, 0, 0,
+		 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0,
+		 0, 0, 0, 0, 8, 9,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, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0,
+		 0, 0, 0, 0, 0, 8, 9,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, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10,
+		 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p1_0[] = {
+		-0.5f, 0.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p1_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p1_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p1_0,
+		_vq_quantmap__44cn1_sm_p1_0,
+		3,
+		3
+	);
+
+	static static_codebook _44cn1_sm_p1_0 = new static_codebook(
+		8, 6561,
+		_vq_lengthlist__44cn1_sm_p1_0,
+		1, -535822336, 1611661312, 2, 0,
+		_vq_quantlist__44cn1_sm_p1_0,
+		null,
+		_vq_auxt__44cn1_sm_p1_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p2_0[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p2_0[] = {
+		 1, 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, 5, 5, 7, 7, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p2_0[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p2_0[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p2_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p2_0,
+		_vq_quantmap__44cn1_sm_p2_0,
+		5,
+		5
+	);
+
+	static static_codebook _44cn1_sm_p2_0 = new static_codebook(
+		4, 625,
+		_vq_lengthlist__44cn1_sm_p2_0,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44cn1_sm_p2_0,
+		null,
+		_vq_auxt__44cn1_sm_p2_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p3_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p3_0[] = {
+		 1, 3, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0,
+		 0, 0, 0, 4, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8,
+		 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0,
+		 9, 9, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, 0,
+		 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p3_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p3_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p3_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p3_0,
+		_vq_quantmap__44cn1_sm_p3_0,
+		9,
+		9
+	);
+
+	static static_codebook _44cn1_sm_p3_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44cn1_sm_p3_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_sm_p3_0,
+		null,
+		_vq_auxt__44cn1_sm_p3_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p4_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p4_0[] = {
+		 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7,
+		 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 float _vq_quantthresh__44cn1_sm_p4_0[] = {
+		-3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 3.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p4_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p4_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p4_0,
+		_vq_quantmap__44cn1_sm_p4_0,
+		9,
+		9
+	);
+
+	static static_codebook _44cn1_sm_p4_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44cn1_sm_p4_0,
+		1, -531628032, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_sm_p4_0,
+		null,
+		_vq_auxt__44cn1_sm_p4_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p5_0[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p5_0[] = {
+		 1, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,
+		11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11,
+		12,12, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,
+		11,12,12, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,
+		11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,11,
+		11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,
+		11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,
+		10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,
+		10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10,
+		10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,
+		10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9,
+		 9,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, 0,
+		10,10,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, 0,
+		 0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, 0, 0,
+		 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0,
+		 0, 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0,
+		 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,14,14,14,14,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,14,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p5_0[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p5_0[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p5_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p5_0,
+		_vq_quantmap__44cn1_sm_p5_0,
+		17,
+		17
+	);
+
+	static static_codebook _44cn1_sm_p5_0 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44cn1_sm_p5_0,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44cn1_sm_p5_0,
+		null,
+		_vq_auxt__44cn1_sm_p5_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p6_0[] = {
+		1,
+		0,
+		2,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p6_0[] = {
+		 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 6,10, 9, 9,11,
+		 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11,
+		11,11,11,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9,
+		11,10,11,11,10,10, 7,11,11,11,11,11,12,11,11, 7,
+		 9, 9,11,10,10,12,10,10, 7, 9, 9,11,10,10,11,10,
+		10,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p6_0[] = {
+		-5.5f, 5.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p6_0[] = {
+		    1,    0,    2,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p6_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p6_0,
+		_vq_quantmap__44cn1_sm_p6_0,
+		3,
+		3
+	);
+
+	static static_codebook _44cn1_sm_p6_0 = new static_codebook(
+		4, 81,
+		_vq_lengthlist__44cn1_sm_p6_0,
+		1, -529137664, 1618345984, 2, 0,
+		_vq_quantlist__44cn1_sm_p6_0,
+		null,
+		_vq_auxt__44cn1_sm_p6_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p6_1[] = {
+		5,
+		4,
+		6,
+		3,
+		7,
+		2,
+		8,
+		1,
+		9,
+		0,
+		10,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p6_1[] = {
+		 2, 4, 4, 5, 5, 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, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7,
+		 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8,
+		 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,
+		 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8,
+		 8, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 8, 9,10,10,
+		10,10,10, 8, 9, 8, 8, 9, 8,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p6_1[] = {
+		-4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 0.5f, 1.5f, 2.5f, 
+		3.5f, 4.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p6_1[] = {
+		    9,    7,    5,    3,    1,    0,    2,    4,
+		    6,    8,   10,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p6_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p6_1,
+		_vq_quantmap__44cn1_sm_p6_1,
+		11,
+		11
+	);
+
+	static static_codebook _44cn1_sm_p6_1 = new static_codebook(
+		2, 121,
+		_vq_lengthlist__44cn1_sm_p6_1,
+		1, -531365888, 1611661312, 4, 0,
+		_vq_quantlist__44cn1_sm_p6_1,
+		null,
+		_vq_auxt__44cn1_sm_p6_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p7_0[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p7_0[] = {
+		 1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 9,10,10, 7, 5, 5,
+		 7, 7, 8, 8, 8, 8,10, 9,11,10, 7, 5, 5, 7, 7, 8,
+		 8, 8, 8, 9,10,11,11, 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, 9,10,10,10,11,11,12,12, 0,13,
+		13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10,
+		10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11,
+		11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,13,
+		13,13, 0, 0, 0,14,14,11,10,11,11,12,12,13,13, 0,
+		 0, 0, 0, 0,12,12,12,12,13,13,13,14, 0, 0, 0, 0,
+		 0,13,12,12,12,13,13,13,14,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p7_0[] = {
+		-27.5f, -22.5f, -17.5f, -12.5f, -7.5f, -2.5f, 2.5f, 7.5f, 
+		12.5f, 17.5f, 22.5f, 27.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p7_0[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p7_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p7_0,
+		_vq_quantmap__44cn1_sm_p7_0,
+		13,
+		13
+	);
+
+	static static_codebook _44cn1_sm_p7_0 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44cn1_sm_p7_0,
+		1, -526516224, 1616117760, 4, 0,
+		_vq_quantlist__44cn1_sm_p7_0,
+		null,
+		_vq_auxt__44cn1_sm_p7_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p7_1[] = {
+		2,
+		1,
+		3,
+		0,
+		4,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p7_1[] = {
+		 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
+		 5, 5, 5, 5, 6, 6, 6, 5, 5,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p7_1[] = {
+		-1.5f, -0.5f, 0.5f, 1.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p7_1[] = {
+		    3,    1,    0,    2,    4,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p7_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p7_1,
+		_vq_quantmap__44cn1_sm_p7_1,
+		5,
+		5
+	);
+
+	static static_codebook _44cn1_sm_p7_1 = new static_codebook(
+		2, 25,
+		_vq_lengthlist__44cn1_sm_p7_1,
+		1, -533725184, 1611661312, 3, 0,
+		_vq_quantlist__44cn1_sm_p7_1,
+		null,
+		_vq_auxt__44cn1_sm_p7_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p8_0[] = {
+		4,
+		3,
+		5,
+		2,
+		6,
+		1,
+		7,
+		0,
+		8,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p8_0[] = {
+		 1, 4, 4,12,11,13,13,14,14, 4, 7, 7,11,13,14,14,
+		14,14, 3, 8, 3,14,14,14,14,14,14,14,10,12,14,14,
+		14,14,14,14,14,14, 5,14, 8,14,14,14,14,14,12,14,
+		13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14,
+		14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
+		14,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p8_0[] = {
+		-773.5f, -552.5f, -331.5f, -110.5f, 110.5f, 331.5f, 552.5f, 773.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p8_0[] = {
+		    7,    5,    3,    1,    0,    2,    4,    6,
+		    8,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p8_0 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p8_0,
+		_vq_quantmap__44cn1_sm_p8_0,
+		9,
+		9
+	);
+
+	static static_codebook _44cn1_sm_p8_0 = new static_codebook(
+		2, 81,
+		_vq_lengthlist__44cn1_sm_p8_0,
+		1, -516186112, 1627103232, 4, 0,
+		_vq_quantlist__44cn1_sm_p8_0,
+		null,
+		_vq_auxt__44cn1_sm_p8_0,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p8_1[] = {
+		6,
+		5,
+		7,
+		4,
+		8,
+		3,
+		9,
+		2,
+		10,
+		1,
+		11,
+		0,
+		12,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p8_1[] = {
+		 1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,11,11, 6, 5, 5,
+		 7, 7, 8, 8,10,10,10,11,11,11, 6, 5, 5, 7, 7, 8,
+		 8,10,10,11,12,12,12,14, 7, 7, 7, 8, 9, 9,11,11,
+		11,12,11,12,17, 7, 7, 8, 7, 9, 9,11,11,12,12,12,
+		12,14,11,11, 8, 8,10,10,11,12,12,13,11,12,14,11,
+		11, 8, 8,10,10,11,12,12,13,13,12,14,15,14,10,10,
+		10,10,11,12,12,12,12,11,14,13,16,10,10,10, 9,12,
+		11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11,
+		13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13,
+		13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14,
+		17,12,12,11,10,13,11,13,13,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p8_1[] = {
+		-93.5f, -76.5f, -59.5f, -42.5f, -25.5f, -8.5f, 8.5f, 25.5f, 
+		42.5f, 59.5f, 76.5f, 93.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p8_1[] = {
+		   11,    9,    7,    5,    3,    1,    0,    2,
+		    4,    6,    8,   10,   12,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p8_1 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p8_1,
+		_vq_quantmap__44cn1_sm_p8_1,
+		13,
+		13
+	);
+
+	static static_codebook _44cn1_sm_p8_1 = new static_codebook(
+		2, 169,
+		_vq_lengthlist__44cn1_sm_p8_1,
+		1, -522616832, 1620115456, 4, 0,
+		_vq_quantlist__44cn1_sm_p8_1,
+		null,
+		_vq_auxt__44cn1_sm_p8_1,
+		null,
+		0
+	);
+
+	static int _vq_quantlist__44cn1_sm_p8_2[] = {
+		8,
+		7,
+		9,
+		6,
+		10,
+		5,
+		11,
+		4,
+		12,
+		3,
+		13,
+		2,
+		14,
+		1,
+		15,
+		0,
+		16,
+	};
+
+	static int _vq_lengthlist__44cn1_sm_p8_2[] = {
+		 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,
+		 9, 9,10, 6, 6, 6, 6, 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, 7, 8, 8, 8, 9, 9, 9,
+		 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, 9,
+		 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9,
+		 9, 9, 9, 9, 9, 9, 9,11,10,11, 8, 8, 8, 8, 8, 8,
+		 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, 8, 8, 8,
+		 8, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,11,11, 9,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,10,11,11,
+		 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,
+		11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,
+		11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,11,10,
+		11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,
+		11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9,
+		10,11,11,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,
+		 9,
+	};
+
+	static float _vq_quantthresh__44cn1_sm_p8_2[] = {
+		-7.5f, -6.5f, -5.5f, -4.5f, -3.5f, -2.5f, -1.5f, -0.5f, 
+		0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, 6.5f, 7.5f, 
+	};
+
+	static int _vq_quantmap__44cn1_sm_p8_2[] = {
+		   15,   13,   11,    9,    7,    5,    3,    1,
+		    0,    2,    4,    6,    8,   10,   12,   14,
+		   16,
+	};
+
+	static encode_aux_threshmatch _vq_auxt__44cn1_sm_p8_2 = new encode_aux_threshmatch(
+		_vq_quantthresh__44cn1_sm_p8_2,
+		_vq_quantmap__44cn1_sm_p8_2,
+		17,
+		17
+	);
+
+	static static_codebook _44cn1_sm_p8_2 = new static_codebook(
+		2, 289,
+		_vq_lengthlist__44cn1_sm_p8_2,
+		1, -529530880, 1611661312, 5, 0,
+		_vq_quantlist__44cn1_sm_p8_2,
+		null,
+		_vq_auxt__44cn1_sm_p8_2,
+		null,
+		0
+	);
+	
+	
+	static int _huff_lengthlist__44cn1_sm_short[] = {
+		 5, 6,12,14,12,14,16,17,18, 4, 2, 5,11, 7,10,12,
+		14,15, 9, 4, 5,11, 7,10,13,15,18,15, 6, 7, 5, 6,
+		 8,11,13,16,11, 5, 6, 5, 5, 6, 9,13,15,12, 5, 7,
+		 6, 5, 6, 9,12,14,12, 6, 7, 8, 6, 7, 9,12,13,14,
+		 8, 8, 7, 5, 5, 8,10,12,16, 9, 9, 8, 6, 6, 7, 9,
+		 9,
+	};
+	
+	static int _huff_lengthlist__44cn1_sm_long[] = {
+		 3, 3, 8, 8, 8, 8,10,12,14, 3, 2, 6, 7, 7, 8,10,
+		12,16, 7, 6, 7, 9, 8,10,12,14,16, 8, 6, 8, 4, 5,
+		 7, 9,11,13, 7, 6, 8, 5, 6, 7, 9,11,14, 8, 8,10,
+		 7, 7, 6, 8,10,13, 9,11,12, 9, 9, 7, 8,10,12,10,
+		13,15,11,11,10, 9,10,13,13,16,17,14,15,14,13,14,
+		17,
+	};
+
+
+	static_codebook zero = null;
+
+	public static_bookblock books;
+	public static_codebook _huff_book__44cn1_sm_short;
+	public static_codebook _huff_book__44cn1_sm_long;
+
+
+	public resbook_44sm_n1() {
+		
+		_huff_book__44cn1_sm_short = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44cn1_sm_short,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0
+		);
+		
+		_huff_book__44cn1_sm_long = new static_codebook(
+			2, 81,
+			_huff_lengthlist__44cn1_sm_long,
+			0, 0, 0, 0, 0,
+			null,
+			null,
+			null,
+			null,
+			0		
+		);
+
+		books = new static_bookblock( new static_codebook[][] {
+
+			{ zero },
+			{ zero, zero, _44cn1_sm_p1_0 },
+			{ zero, zero, _44cn1_sm_p2_0 },
+			{ zero, zero, _44cn1_sm_p3_0 },
+			{ zero, zero, _44cn1_sm_p4_0 },
+			{ zero, zero, _44cn1_sm_p5_0 },
+			{ _44cn1_sm_p6_0, _44cn1_sm_p6_1 },
+			{ _44cn1_sm_p7_0, _44cn1_sm_p7_1 },
+			{ _44cn1_sm_p8_0, _44cn1_sm_p8_1, _44cn1_sm_p8_2 },
+		} );
+	}	
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/coupled/resbook_44/resbook_44sm_n1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/books/floor/floor_books.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/books/floor/floor_books.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/books/floor/floor_books.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,2009 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.books.floor;
+
+import org.xiph.libvorbis.*;
+
+public class floor_books {
+
+	
+//	 _floor_128x4_books
+	static int[] _huff_lengthlist_line_128x4_class0 = {
+		 7, 7, 7,11, 6, 6, 7,11, 7, 6, 6,10,12,10,10,13,
+		 7, 7, 8,11, 7, 7, 7,11, 7, 6, 7,10,11,10,10,13,
+		10,10, 9,12, 9, 9, 9,11, 8, 8, 8,11,13,11,10,14,
+		15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17,
+		 7, 7, 6, 9, 6, 6, 6, 9, 7, 6, 6, 8,11,11,10,12,
+		 7, 7, 7, 9, 7, 6, 6, 9, 7, 6, 6, 9,13,10,10,11,
+		10, 9, 8,10, 9, 8, 8,10, 8, 8, 7, 9,13,12,10,11,
+		17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17,
+		 7, 6, 6, 7, 6, 6, 5, 7, 6, 6, 6, 6,11, 9, 9, 9,
+		 7, 7, 6, 7, 7, 6, 6, 7, 6, 6, 6, 6,10, 9, 8, 9,
+		10, 9, 8, 8, 9, 8, 7, 8, 8, 7, 6, 8,11,10, 9,10,
+		17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13,
+		11,10, 8,10,11,10, 8, 8,10, 9, 7, 7,10, 9, 9,11,
+		11,11, 9,10,11,10, 8, 9,10, 8, 6, 8,10, 9, 9,11,
+		14,13,10,12,12,11,10,10, 8, 7, 8,10,10,11,11,12,
+		17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17,
+	};
+
+	static static_codebook _huff_book_line_128x4_class0 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_128x4_class0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x4_0sub0 = {
+		 2, 2, 2, 2,
+	};
+
+	static static_codebook _huff_book_line_128x4_0sub0 = new static_codebook(
+		1, 4,
+		_huff_lengthlist_line_128x4_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x4_0sub1 = {
+		 0, 0, 0, 0, 3, 2, 3, 2, 3, 3,
+	};
+
+	static static_codebook _huff_book_line_128x4_0sub1 = new static_codebook(
+		1, 10,
+		_huff_lengthlist_line_128x4_0sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x4_0sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 3, 4, 3,
+		 4, 4, 5, 4, 5, 4, 6, 5, 6,
+	};
+
+	static static_codebook _huff_book_line_128x4_0sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_128x4_0sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x4_0sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3,
+		 5, 4, 6, 5, 6, 5, 7, 6, 6, 7, 7, 9, 9,11,11,16,
+		11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15,
+	};
+
+	static static_codebook _huff_book_line_128x4_0sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x4_0sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+//	 _floor_256x4_books
+	static int[] _huff_lengthlist_line_256x4_class0 = {
+		 6, 7, 7,12, 6, 6, 7,12, 7, 6, 6,10,15,12,11,13,
+		 7, 7, 8,13, 7, 7, 8,12, 7, 7, 7,11,12,12,11,13,
+		10, 9, 9,11, 9, 9, 9,10,10, 8, 8,12,14,12,12,14,
+		11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15,
+		 6, 6, 7,10, 6, 6, 6,11, 7, 6, 6, 9,14,12,11,13,
+		 7, 7, 7,10, 6, 6, 7, 9, 7, 7, 6,10,13,12,10,12,
+		 9, 9, 9,11, 9, 9, 8, 9, 9, 8, 8,10,13,12,10,12,
+		12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14,
+		 6, 6, 6, 8, 6, 6, 5, 6, 7, 7, 6, 5,11,10, 9, 8,
+		 7, 6, 6, 7, 6, 6, 5, 6, 7, 7, 6, 6,11,10, 9, 8,
+		 8, 8, 8, 9, 8, 8, 7, 8, 8, 8, 6, 7,11,10, 9, 9,
+		14,11,10,14,14,11,10,15,13,11, 9,11,15,12,12,11,
+		11, 9, 8, 8,10, 9, 8, 9,11,10, 9, 8,12,11,12,11,
+		13,10, 8, 9,11,10, 8, 9,10, 9, 8, 9,10, 8,12,12,
+		15,11,10,10,13,11,10,10, 8, 8, 7,12,10, 9,11,12,
+		15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13,
+	};
+
+	static static_codebook _huff_book_line_256x4_class0 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_256x4_class0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4_0sub0 = {
+		 2, 2, 2, 2,
+	};
+
+	static static_codebook _huff_book_line_256x4_0sub0 = new static_codebook(
+		1, 4,
+		_huff_lengthlist_line_256x4_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4_0sub1 = {
+		 0, 0, 0, 0, 2, 2, 3, 3, 3, 3,
+	};
+
+	static static_codebook _huff_book_line_256x4_0sub1 = new static_codebook(
+		1, 10,
+		_huff_lengthlist_line_256x4_0sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4_0sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 3, 4, 3,
+		 5, 3, 5, 4, 5, 4, 6, 4, 6,
+	};
+
+	static static_codebook _huff_book_line_256x4_0sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_256x4_0sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4_0sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3,
+		 6, 4, 7, 4, 7, 5, 7, 6, 7, 6, 7, 8,10,13,13,13,
+		13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,
+	};
+
+	static static_codebook _huff_book_line_256x4_0sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_256x4_0sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+//	 _floor_128x7_books
+	static int[] _huff_lengthlist_line_128x7_class0 = {
+		10, 7, 8,13, 9, 6, 7,11,10, 8, 8,12,17,17,17,17,
+		 7, 5, 5, 9, 6, 4, 4, 8, 8, 5, 5, 8,16,14,13,16,
+		 7, 5, 5, 7, 6, 3, 3, 5, 8, 5, 4, 7,14,12,12,15,
+		10, 7, 8, 9, 7, 5, 5, 6, 9, 6, 5, 5,15,12, 9,10,
+	};
+
+	static static_codebook _huff_book_line_128x7_class0 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x7_class0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_class1 = {
+		 8,13,17,17, 8,11,17,17,11,13,17,17,17,17,17,17,
+		 6,10,16,17, 6,10,15,17, 8,10,16,17,17,17,17,17,
+		 9,13,15,17, 8,11,17,17,10,12,17,17,17,17,17,17,
+		17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
+		 6,11,15,17, 7,10,15,17, 8,10,17,17,17,15,17,17,
+		 4, 8,13,17, 4, 7,13,17, 6, 8,15,17,16,15,17,17,
+		 6,11,15,17, 6, 9,13,17, 8,10,17,17,15,17,17,17,
+		16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17,
+		 5,10,14,17, 5, 9,14,17, 7, 9,15,17,15,15,17,17,
+		 3, 7,12,17, 3, 6,11,17, 5, 7,13,17,12,12,17,17,
+		 5, 9,14,17, 3, 7,11,17, 5, 8,13,17,13,11,16,17,
+		12,17,17,17, 9,14,15,17,10,11,14,17,16,14,17,17,
+		 8,12,17,17, 8,12,17,17,10,12,17,17,17,17,17,17,
+		 5,10,17,17, 5, 9,15,17, 7, 9,17,17,13,13,17,17,
+		 7,11,17,17, 6,10,15,17, 7, 9,15,17,12,11,17,17,
+		12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17,
+	};
+
+	static static_codebook _huff_book_line_128x7_class1 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_128x7_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_0sub1 = {
+		 0, 3, 3, 3, 3, 3, 3, 3, 3,
+	};
+
+	static static_codebook _huff_book_line_128x7_0sub1 = new static_codebook(
+		1, 9,
+		_huff_lengthlist_line_128x7_0sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_0sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4,
+		 5, 4, 5, 4, 5, 4, 6, 4, 6,
+	};
+
+	static static_codebook _huff_book_line_128x7_0sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_128x7_0sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_0sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 5, 3, 5, 4,
+		 5, 4, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+		 7, 8, 9,11,13,13,13,13,13,13,13,13,13,13,13,13,
+	};
+
+	static static_codebook _huff_book_line_128x7_0sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x7_0sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_1sub1 = {
+		 0, 3, 3, 2, 3, 3, 4, 3, 4,
+	};
+
+	static static_codebook _huff_book_line_128x7_1sub1 = new static_codebook(
+		1, 9,
+		_huff_lengthlist_line_128x7_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_1sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 6, 3, 6, 3,
+		 6, 3, 7, 3, 8, 4, 9, 4, 9,
+	};
+
+	static static_codebook _huff_book_line_128x7_1sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_128x7_1sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x7_1sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 2, 7, 3, 8, 4,
+		 9, 5, 9, 8,10,11,11,12,14,14,14,14,14,14,14,14,
+		14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13,
+	};
+
+	static static_codebook _huff_book_line_128x7_1sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x7_1sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+//	 _floor_256x7_books
+	static int[] _huff_lengthlist_line_256x7_0sub1 = {
+		 0, 2, 3, 3, 3, 3, 4, 3, 4,
+	};
+
+	static static_codebook _huff_book_line_256x7_0sub1 = new static_codebook(
+		1, 9,
+		_huff_lengthlist_line_256x7_0sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_0sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 5, 3,
+		 6, 3, 6, 4, 6, 4, 7, 5, 7,
+	};
+
+	static static_codebook _huff_book_line_256x7_0sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_256x7_0sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_0sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 5, 3, 5, 3,
+		 6, 3, 6, 4, 7, 6, 7, 8, 7, 9, 8, 9, 9, 9,10, 9,
+		11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12,
+	};
+
+	static static_codebook _huff_book_line_256x7_0sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_256x7_0sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_1sub1 = {
+		 0, 3, 3, 3, 3, 2, 4, 3, 4,
+	};
+
+	static static_codebook _huff_book_line_256x7_1sub1 = new static_codebook(
+		1, 9,
+		_huff_lengthlist_line_256x7_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_1sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 4, 3, 4, 4,
+		 5, 4, 6, 5, 6, 7, 6, 8, 8,
+	};
+
+	static static_codebook _huff_book_line_256x7_1sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_256x7_1sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_1sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 3, 6, 3, 7,
+		 3, 8, 5, 8, 6, 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,
+	};
+
+	static static_codebook _huff_book_line_256x7_1sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_256x7_1sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_class0 = {
+		 7, 5, 5, 9, 9, 6, 6, 9,12, 8, 7, 8,11, 8, 9,15,
+		 6, 3, 3, 7, 7, 4, 3, 6, 9, 6, 5, 6, 8, 6, 8,15,
+		 8, 5, 5, 9, 8, 5, 4, 6,10, 7, 5, 5,11, 8, 7,15,
+		14,15,13,13,13,13, 8,11,15,10, 7, 6,11, 9,10,15,
+	};
+
+	static static_codebook _huff_book_line_256x7_class0 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_256x7_class0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x7_class1 = {
+		 5, 6, 8,15, 6, 9,10,15,10,11,12,15,15,15,15,15,
+		 4, 6, 7,15, 6, 7, 8,15, 9, 8, 9,15,15,15,15,15,
+		 6, 8, 9,15, 7, 7, 8,15,10, 9,10,15,15,15,15,15,
+		15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15,
+		 4, 6, 7,15, 6, 8, 9,15,10,10,12,15,15,15,15,15,
+		 2, 5, 6,15, 5, 6, 7,15, 8, 6, 7,15,15,15,15,15,
+		 5, 6, 8,15, 5, 6, 7,15, 9, 6, 7,15,15,15,15,15,
+		14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15,
+		 7, 8, 9,15, 9,10,10,15,15,14,14,15,15,15,15,15,
+		 5, 6, 7,15, 7, 8, 9,15,12, 9,10,15,15,15,15,15,
+		 7, 7, 9,15, 7, 7, 8,15,12, 8, 9,15,15,15,15,15,
+		13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15,
+		15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
+		13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15,
+		15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15,
+		15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15,
+	};
+
+	static static_codebook _huff_book_line_256x7_class1 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_256x7_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+	
+//	 _floor_128x11_books
+	static int[] _huff_lengthlist_line_128x11_class1 = {
+		 1, 6, 3, 7, 2, 4, 5, 7,
+	};
+
+	static static_codebook _huff_book_line_128x11_class1 = new static_codebook(
+		1, 8,
+		_huff_lengthlist_line_128x11_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_class2 = {
+		 1, 6,12,16, 4,12,15,16, 9,15,16,16,16,16,16,16,
+		 2, 5,11,16, 5,11,13,16, 9,13,16,16,16,16,16,16,
+		 4, 8,12,16, 5, 9,12,16, 9,13,15,16,16,16,16,16,
+		15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15,
+	};
+
+	static static_codebook _huff_book_line_128x11_class2 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x11_class2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_class3 = {
+		 7, 6, 9,17, 7, 6, 8,17,12, 9,11,16,16,16,16,16,
+		 5, 4, 7,16, 5, 3, 6,14, 9, 6, 8,15,16,16,16,16,
+		 5, 4, 6,13, 3, 2, 4,11, 7, 4, 6,13,16,11,10,14,
+		12,12,12,16, 9, 7,10,15,12, 9,11,16,16,15,15,16,
+	};
+
+	static static_codebook _huff_book_line_128x11_class3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x11_class3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_0sub0 = {
+		 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+		 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 6, 6, 7, 6,
+		 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, 8, 7,
+		 8, 7, 8, 7, 8, 7, 9, 7, 9, 8, 9, 8, 9, 8,10, 8,
+		10, 9,10, 9,10, 9,11, 9,11, 9,10,10,11,10,11,10,
+		11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16,
+		17,15,16,15,16,16,17,17,16,17,17,17,17,17,17,17,
+		17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
+	};
+
+	static static_codebook _huff_book_line_128x11_0sub0 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x11_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_1sub0 = {
+		 2, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5,
+		 6, 5, 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6,
+	};
+
+	static static_codebook _huff_book_line_128x11_1sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_128x11_1sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_1sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 5, 3, 5, 3, 6, 4, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4,
+		 8, 4, 9, 5, 9, 5, 9, 5, 9, 6,10, 6,10, 6,11, 7,
+		10, 7,10, 8,11, 9,11, 9,11,10,11,11,12,11,11,12,
+		15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14,
+		11,14,12,14,11,14,11,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,
+	};
+
+	static static_codebook _huff_book_line_128x11_1sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x11_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_2sub1 = {
+		 0, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4,
+		 5, 5,
+	};
+
+	static static_codebook _huff_book_line_128x11_2sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_128x11_2sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_2sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 3, 3, 4, 4, 4, 4, 5, 4, 5, 4, 6, 5, 7,
+		 5, 7, 6, 8, 6, 8, 6, 9, 7, 9, 7,10, 7, 9, 8,11,
+		 8,11,
+	};
+
+	static static_codebook _huff_book_line_128x11_2sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_128x11_2sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_2sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 8, 3, 8, 4, 8, 4, 8, 6, 8, 5, 8, 4, 8,
+		 4, 8, 6, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+	};
+
+	static static_codebook _huff_book_line_128x11_2sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x11_2sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_3sub1 = {
+		 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4,
+		 5, 4,
+	};
+
+	static static_codebook _huff_book_line_128x11_3sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_128x11_3sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_3sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 3, 5, 4, 6, 4, 6, 4, 7, 4, 7, 4, 8, 4,
+		 8, 4, 9, 4, 9, 4,10, 4,10, 5,10, 5,11, 5,12, 6,
+		12, 6,
+	};
+
+	static static_codebook _huff_book_line_128x11_3sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_128x11_3sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x11_3sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 7, 1, 6, 3, 7, 3, 8, 4, 8, 5, 8, 8, 8, 9,
+		 7, 8, 8, 7, 7, 7, 8, 9,10, 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,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, 9, 9,
+	};
+
+	static static_codebook _huff_book_line_128x11_3sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x11_3sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+
+//	 _floor_128x17_books
+	static int[] _huff_lengthlist_line_128x17_class1 = {
+		 1, 3, 4, 7, 2, 5, 6, 7,
+	};
+
+	static static_codebook _huff_book_line_128x17_class1 = new static_codebook(
+		1, 8,
+		_huff_lengthlist_line_128x17_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_class2 = {
+		 1, 4,10,19, 3, 8,13,19, 7,12,19,19,19,19,19,19,
+		 2, 6,11,19, 8,13,19,19, 9,11,19,19,19,19,19,19,
+		 6, 7,13,19, 9,13,19,19,10,13,18,18,18,18,18,18,
+		18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
+	};
+
+	static static_codebook _huff_book_line_128x17_class2 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x17_class2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_class3 = {
+		 3, 6,10,17, 4, 8,11,20, 8,10,11,20,20,20,20,20,
+		 2, 4, 8,18, 4, 6, 8,17, 7, 8,10,20,20,17,20,20,
+		 3, 5, 8,17, 3, 4, 6,17, 8, 8,10,17,17,12,16,20,
+		13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19,
+	};
+
+	static static_codebook _huff_book_line_128x17_class3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_128x17_class3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_0sub0 = {
+		 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+		 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5,
+		 8, 5, 8, 5, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6,
+		 9, 6, 9, 7, 9, 7, 9, 7, 9, 7,10, 7,10, 8,10, 8,
+		10, 8,10, 8,10, 8,11, 8,11, 8,11, 8,11, 8,11, 9,
+		12, 9,12, 9,12, 9,12, 9,12,10,12,10,13,11,13,11,
+		14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20,
+		20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
+	};
+
+	static static_codebook _huff_book_line_128x17_0sub0 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x17_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_1sub0 = {
+		 2, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5,
+		 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7,
+	};
+
+	static static_codebook _huff_book_line_128x17_1sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_128x17_1sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_1sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 4, 3, 5, 3, 5, 3, 6, 3, 6, 4, 6, 4, 7, 4, 7, 5,
+		 8, 5, 8, 6, 9, 7, 9, 7, 9, 8,10, 9,10, 9,11,10,
+		11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15,
+		12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17,
+		14,17,15,17,15,15,16,17,17,17,17,17,17,17,17,17,
+		17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,
+	};
+
+	static static_codebook _huff_book_line_128x17_1sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x17_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_2sub1 = {
+		 0, 4, 5, 4, 6, 4, 8, 3, 9, 3, 9, 2, 9, 3, 8, 4,
+		 9, 4,
+	};
+
+	static static_codebook _huff_book_line_128x17_2sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_128x17_2sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_2sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 1, 5, 3, 5, 3, 5, 4, 7, 5,10, 7,10, 7,
+		12,10,14,10,14, 9,14,11,14,14,14,13,13,13,13,13,
+		13,13,
+	};
+
+	static static_codebook _huff_book_line_128x17_2sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_128x17_2sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_2sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+		 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+	};
+
+	static static_codebook _huff_book_line_128x17_2sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x17_2sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_3sub1 = {
+		 0, 4, 4, 4, 4, 4, 4, 4, 5, 3, 5, 3, 5, 4, 6, 4,
+		 6, 4,
+	};
+
+	static static_codebook _huff_book_line_128x17_3sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_128x17_3sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_3sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 5, 3, 6, 3, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4,
+		 8, 4, 8, 4, 8, 4, 9, 4, 9, 5,10, 5,10, 7,10, 8,
+		10, 8,
+	};
+
+	static static_codebook _huff_book_line_128x17_3sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_128x17_3sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_128x17_3sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 4, 7, 5, 8, 5,11,
+		 6,10, 6,12, 7,12, 7,12, 8,12, 8,12,10,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,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
+	};
+
+	static static_codebook _huff_book_line_128x17_3sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_128x17_3sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+
+//	 _floor_256x4low_books
+	static int[] _huff_lengthlist_line_256x4low_class0 = {
+		 4, 5, 6,11, 5, 5, 6,10, 7, 7, 6, 6,14,13, 9, 9,
+		 6, 6, 6,10, 6, 6, 6, 9, 8, 7, 7, 9,14,12, 8,11,
+		 8, 7, 7,11, 8, 8, 7,11, 9, 9, 7, 9,13,11, 9,13,
+		19,19,18,19,15,16,16,19,11,11,10,13,10,10, 9,15,
+		 5, 5, 6,13, 6, 6, 6,11, 8, 7, 6, 7,14,11,10,11,
+		 6, 6, 6,12, 7, 6, 6,11, 8, 7, 7,11,13,11, 9,11,
+		 9, 7, 6,12, 8, 7, 6,12, 9, 8, 8,11,13,10, 7,13,
+		19,19,17,19,17,14,14,19,12,10, 8,12,13,10, 9,16,
+		 7, 8, 7,12, 7, 7, 7,11, 8, 7, 7, 8,12,12,11,11,
+		 8, 8, 7,12, 8, 7, 6,11, 8, 7, 7,10,10,11,10,11,
+		 9, 8, 8,13, 9, 8, 7,12,10, 9, 7,11, 9, 8, 7,11,
+		18,18,15,18,18,16,17,18,15,11,10,18,11, 9, 9,18,
+		16,16,13,16,12,11,10,16,12,11, 9, 6,15,12,11,13,
+		16,16,14,14,13,11,12,16,12, 9, 9,13,13,10,10,12,
+		17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12,
+		18,18,18,18,18,18,18,18,18,12,13,18,16,11, 9,18,
+	};
+
+	static static_codebook _huff_book_line_256x4low_class0 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_256x4low_class0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4low_0sub0 = {
+		 1, 3, 2, 3,
+	};
+
+	static static_codebook _huff_book_line_256x4low_0sub0 = new static_codebook(
+		1, 4,
+		_huff_lengthlist_line_256x4low_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4low_0sub1 = {
+		 0, 0, 0, 0, 2, 3, 2, 3, 3, 3,
+	};
+
+	static static_codebook _huff_book_line_256x4low_0sub1 = new static_codebook(
+		1, 10,
+		_huff_lengthlist_line_256x4low_0sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4low_0sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4,
+		 4, 4, 4, 4, 5, 5, 5, 6, 6,
+	};
+
+	static static_codebook _huff_book_line_256x4low_0sub2 = new static_codebook(
+		1, 25,
+		_huff_lengthlist_line_256x4low_0sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_256x4low_0sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 4, 3, 5, 4,
+		 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 6, 9,
+		 7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15,
+	};
+
+	static static_codebook _huff_book_line_256x4low_0sub3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_256x4low_0sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+	
+//	 _floor_1024x27_books
+	static int[] _huff_lengthlist_line_1024x27_class1 = {
+		 2,10, 8,14, 7,12,11,14, 1, 5, 3, 7, 4, 9, 7,13,
+	};
+
+	static static_codebook _huff_book_line_1024x27_class1 = new static_codebook(
+		1, 16,
+		_huff_lengthlist_line_1024x27_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_class2 = {
+		 1, 4, 2, 6, 3, 7, 5, 7,
+	};
+
+	static static_codebook _huff_book_line_1024x27_class2 = new static_codebook(
+		1, 8,
+		_huff_lengthlist_line_1024x27_class2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_class3 = {
+		 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 static_codebook _huff_book_line_1024x27_class3 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_1024x27_class3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_class4 = {
+		 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 static_codebook _huff_book_line_1024x27_class4 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_1024x27_class4,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_0sub0 = {
+		 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 static_codebook _huff_book_line_1024x27_0sub0 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_1024x27_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_1sub0 = {
+		 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 static_codebook _huff_book_line_1024x27_1sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_1024x27_1sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_1sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 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 static_codebook _huff_book_line_1024x27_1sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_1024x27_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_2sub0 = {
+		 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 static_codebook _huff_book_line_1024x27_2sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_1024x27_2sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_2sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 static_codebook _huff_book_line_1024x27_2sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_1024x27_2sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_3sub1 = {
+		 0, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 4, 5,
+		 5, 5,
+	};
+
+	static static_codebook _huff_book_line_1024x27_3sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_1024x27_3sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_3sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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 static_codebook _huff_book_line_1024x27_3sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_1024x27_3sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_3sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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 static_codebook _huff_book_line_1024x27_3sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_1024x27_3sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_4sub1 = {
+		 0, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4,
+		 5, 4,
+	};
+
+	static static_codebook _huff_book_line_1024x27_4sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_1024x27_4sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_4sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 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 static_codebook _huff_book_line_1024x27_4sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_1024x27_4sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_1024x27_4sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 2, 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 static_codebook _huff_book_line_1024x27_4sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_1024x27_4sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+	
+//	 _floor_2048x27_books
+	static int[] _huff_lengthlist_line_2048x27_class1 = {
+		 2, 6, 8, 9, 7,11,13,13, 1, 3, 5, 5, 6, 6,12,10,
+	};
+
+	static static_codebook _huff_book_line_2048x27_class1 = new static_codebook(
+		1, 16,
+		_huff_lengthlist_line_2048x27_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_class2 = {
+		 1, 2, 3, 6, 4, 7, 5, 7,
+	};
+
+	static static_codebook _huff_book_line_2048x27_class2 = new static_codebook(
+		1, 8,
+		_huff_lengthlist_line_2048x27_class2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_class3 = {
+		 3, 3, 6,16, 5, 5, 7,16, 9, 8,11,16,16,16,16,16,
+		 5, 5, 8,16, 5, 5, 7,16, 8, 7, 9,16,16,16,16,16,
+		 9, 9,12,16, 6, 8,11,16, 9,10,11,16,16,16,16,16,
+		16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16,
+		 5, 4, 7,16, 6, 5, 8,16, 9, 8,10,16,16,16,16,16,
+		 5, 5, 7,15, 5, 4, 6,15, 7, 6, 8,16,16,16,16,16,
+		 9, 9,11,15, 7, 7, 9,16, 8, 8, 9,16,16,16,16,16,
+		16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16,
+		 8, 8,11,16, 8, 9,10,16,11,10,14,16,16,16,16,16,
+		 6, 8,10,16, 6, 7,10,16, 8, 8,11,16,14,16,16,16,
+		10,11,14,16, 9, 9,11,16,10,10,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,15,16,16,16,16,16,16,16,16,16,16,16,
+		12,16,15,16,12,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,
+	};
+
+	static static_codebook _huff_book_line_2048x27_class3 = new static_codebook(
+		1, 256,
+		_huff_lengthlist_line_2048x27_class3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_class4 = {
+		 2, 4, 7,13, 4, 5, 7,15, 8, 7,10,16,16,14,16,16,
+		 2, 4, 7,16, 3, 4, 7,14, 8, 8,10,16,16,16,15,16,
+		 6, 8,11,16, 7, 7, 9,16,11, 9,13,16,16,16,15,16,
+		16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,
+	};
+
+	static static_codebook _huff_book_line_2048x27_class4 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_2048x27_class4,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_0sub0 = {
+		 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+		 6, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, 8, 5, 9, 5,
+		 9, 6,10, 6,10, 6,11, 6,11, 6,11, 6,11, 6,11, 6,
+		11, 6,11, 6,12, 7,11, 7,11, 7,11, 7,11, 7,10, 7,
+		11, 7,11, 7,12, 7,11, 8,11, 8,11, 8,11, 8,13, 8,
+		12, 9,11, 9,11, 9,11,10,12,10,12, 9,12,10,12,11,
+		14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17,
+		17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,
+	};
+
+	static static_codebook _huff_book_line_2048x27_0sub0 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_2048x27_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_1sub0 = {
+		 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,
+		 5, 5, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 6,
+	};
+
+	static static_codebook _huff_book_line_2048x27_1sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_2048x27_1sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_1sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 6, 5, 7, 5, 7, 4, 7, 4, 8, 4, 8, 4, 8, 4, 8, 3,
+		 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 5, 9, 5, 9, 6,
+		 9, 7, 9, 8, 9, 9, 9,10, 9,11, 9,14, 9,15,10,15,
+		10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14,
+		13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15,
+		15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,
+	};
+
+	static static_codebook _huff_book_line_2048x27_1sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_2048x27_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_2sub0 = {
+		 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5,
+		 6, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
+	};
+
+	static static_codebook _huff_book_line_2048x27_2sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_2048x27_2sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_2sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 3, 4, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 6, 6, 6, 7,
+		 6, 8, 6, 8, 6, 9, 7,10, 7,10, 7,10, 7,12, 7,12,
+		 7,12, 9,12,11,12,10,12,10,12,11,12,12,12,10,12,
+		10,12,10,12, 9,12,11,12,12,12,12,12,11,12,11,12,
+		12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10,
+		12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+	};
+
+	static static_codebook _huff_book_line_2048x27_2sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_2048x27_2sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_3sub1 = {
+		 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+		 5, 5,
+	};
+
+	static static_codebook _huff_book_line_2048x27_3sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_2048x27_3sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_3sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6,
+		 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, 9, 9,11, 9,12,
+		10,12,
+	};
+
+	static static_codebook _huff_book_line_2048x27_3sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_2048x27_3sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_3sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 6, 3, 7, 3, 7, 5, 7, 7, 7, 7, 7, 6, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+	};
+
+	static static_codebook _huff_book_line_2048x27_3sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_2048x27_3sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_4sub1 = {
+		 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4,
+		 4, 5,
+	};
+
+	static static_codebook _huff_book_line_2048x27_4sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_2048x27_4sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_4sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 5, 6, 5, 6, 5, 7,
+		 6, 6, 6, 7, 7, 7, 8, 9, 9, 9,12,10,11,10,10,12,
+		10,10,
+	};
+
+	static static_codebook _huff_book_line_2048x27_4sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_2048x27_4sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_2048x27_4sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 6, 5, 7, 5, 7, 7, 7, 7, 7, 5, 7, 5, 7,
+		 5, 7, 5, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+	};
+
+	static static_codebook _huff_book_line_2048x27_4sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_2048x27_4sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+//	 _floor_512x17_books
+	static int[] _huff_lengthlist_line_512x17_0sub0 = {
+		 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+		 5, 6, 5, 6, 6, 6, 6, 5, 6, 6, 7, 6, 7, 6, 7, 6,
+		 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7,
+		 9, 7, 9, 8, 9, 8,10, 8,10, 8,10, 7,10, 6,10, 8,
+		10, 8,11, 7,10, 7,11, 8,11,11,12,12,11,11,12,11,
+		13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15,
+		15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18,
+		18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
+	};
+
+	static static_codebook _huff_book_line_512x17_0sub0 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_512x17_0sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_1sub0 = {
+		 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5,
+		 6, 5, 6, 6, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 8, 7,
+	};
+
+	static static_codebook _huff_book_line_512x17_1sub0 = new static_codebook(
+		1, 32,
+		_huff_lengthlist_line_512x17_1sub0,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_1sub1 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 4, 3, 5, 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5,
+		 6, 5, 7, 5, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7,
+		 9, 7,11, 9,11,11,12,11,14,12,14,16,14,16,13,16,
+		14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13,
+		13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15,
+		15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
+	};
+
+	static static_codebook _huff_book_line_512x17_1sub1 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_512x17_1sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_2sub1 = {
+		 0, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 5, 4, 5, 3,
+		 5, 3,
+	};
+
+	static static_codebook _huff_book_line_512x17_2sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_512x17_2sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_2sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 6, 4, 6, 5,
+		 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 7, 8, 7, 9, 7,
+		 9, 8,
+	};
+
+	static static_codebook _huff_book_line_512x17_2sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_512x17_2sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_2sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 3, 3, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 7, 7,
+		 7, 8, 8,11, 8, 9, 9, 9,10,11,11,11, 9,10,10,11,
+		11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+		10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
+	};
+
+	static static_codebook _huff_book_line_512x17_2sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_512x17_2sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_3sub1 = {
+		 0, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 5, 4, 5,
+		 5, 5,
+	};
+
+	static static_codebook _huff_book_line_512x17_3sub1 = new static_codebook(
+		1, 18,
+		_huff_lengthlist_line_512x17_3sub1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_3sub2 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 2, 3, 3, 4, 3, 5, 4, 6, 4, 6, 5, 7, 6, 7,
+		 6, 8, 6, 8, 7, 9, 8,10, 8,12, 9,13,10,15,10,15,
+		11,14,
+	};
+
+	static static_codebook _huff_book_line_512x17_3sub2 = new static_codebook(
+		1, 50,
+		_huff_lengthlist_line_512x17_3sub2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_3sub3 = {
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		 0, 0, 4, 8, 4, 8, 4, 8, 4, 8, 5, 8, 5, 8, 6, 8,
+		 4, 8, 4, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+		 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+	};
+
+	static static_codebook _huff_book_line_512x17_3sub3 = new static_codebook(
+		1, 128,
+		_huff_lengthlist_line_512x17_3sub3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_class1 = {
+		 1, 2, 3, 6, 5, 4, 7, 7,
+	};
+
+	static static_codebook _huff_book_line_512x17_class1 = new static_codebook(
+		1, 8,
+		_huff_lengthlist_line_512x17_class1,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_class2 = {
+		 3, 3, 3,14, 5, 4, 4,11, 8, 6, 6,10,17,12,11,17,
+		 6, 5, 5,15, 5, 3, 4,11, 8, 5, 5, 8,16, 9,10,14,
+		10, 8, 9,17, 8, 6, 6,13,10, 7, 7,10,16,11,13,14,
+		17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16,
+	};
+
+	static static_codebook _huff_book_line_512x17_class2 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_512x17_class2,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+
+	static int[] _huff_lengthlist_line_512x17_class3 = {
+		 2, 4, 6,17, 4, 5, 7,17, 8, 7,10,17,17,17,17,17,
+		 3, 4, 6,15, 3, 3, 6,15, 7, 6, 9,17,17,17,17,17,
+		 6, 8,10,17, 6, 6, 8,16, 9, 8,10,17,17,15,16,17,
+		17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16,
+	};
+
+	static static_codebook _huff_book_line_512x17_class3 = new static_codebook(
+		1, 64,
+		_huff_lengthlist_line_512x17_class3,
+		0, 0, 0, 0, 0,
+		null,
+		null,
+		null,
+		null,
+		0
+	);
+	
+	
+	static static_codebook[] _floor_128x4_books = {
+	  _huff_book_line_128x4_class0,
+	  _huff_book_line_128x4_0sub0,
+	  _huff_book_line_128x4_0sub1,
+	  _huff_book_line_128x4_0sub2,
+	  _huff_book_line_128x4_0sub3,
+	};
+	
+	static static_codebook[] _floor_256x4_books = {
+	  _huff_book_line_256x4_class0,
+	  _huff_book_line_256x4_0sub0,
+	  _huff_book_line_256x4_0sub1,
+	  _huff_book_line_256x4_0sub2,
+	  _huff_book_line_256x4_0sub3,
+	};
+	
+	static static_codebook[] _floor_128x7_books = {
+	  _huff_book_line_128x7_class0,
+	  _huff_book_line_128x7_class1,
+	  
+	  _huff_book_line_128x7_0sub1,
+	  _huff_book_line_128x7_0sub2,
+	  _huff_book_line_128x7_0sub3,
+	  _huff_book_line_128x7_1sub1,
+	  _huff_book_line_128x7_1sub2,
+	  _huff_book_line_128x7_1sub3, 
+	};
+	
+	static static_codebook[] _floor_256x7_books = {
+	  _huff_book_line_256x7_class0,
+	  _huff_book_line_256x7_class1,
+	  
+	  _huff_book_line_256x7_0sub1,
+	  _huff_book_line_256x7_0sub2,
+	  _huff_book_line_256x7_0sub3,
+	  _huff_book_line_256x7_1sub1,
+	  _huff_book_line_256x7_1sub2,
+	  _huff_book_line_256x7_1sub3, 
+	};
+	
+	static static_codebook[] _floor_128x11_books = {
+	  _huff_book_line_128x11_class1,
+	  _huff_book_line_128x11_class2,
+	  _huff_book_line_128x11_class3,
+	  
+	  _huff_book_line_128x11_0sub0,
+	  _huff_book_line_128x11_1sub0,
+	  _huff_book_line_128x11_1sub1,
+	  _huff_book_line_128x11_2sub1,
+	  _huff_book_line_128x11_2sub2,
+	  _huff_book_line_128x11_2sub3, 
+	  _huff_book_line_128x11_3sub1,
+	  _huff_book_line_128x11_3sub2,
+	  _huff_book_line_128x11_3sub3, 
+	};
+	
+	static static_codebook[] _floor_128x17_books = {
+	  _huff_book_line_128x17_class1,
+	  _huff_book_line_128x17_class2,
+	  _huff_book_line_128x17_class3,
+	  
+	  _huff_book_line_128x17_0sub0,
+	  _huff_book_line_128x17_1sub0,
+	  _huff_book_line_128x17_1sub1,
+	  _huff_book_line_128x17_2sub1,
+	  _huff_book_line_128x17_2sub2,
+	  _huff_book_line_128x17_2sub3, 
+	  _huff_book_line_128x17_3sub1,
+	  _huff_book_line_128x17_3sub2,
+	  _huff_book_line_128x17_3sub3, 
+	};
+	
+	static static_codebook[] _floor_256x4low_books = {
+	  _huff_book_line_256x4low_class0,
+	  _huff_book_line_256x4low_0sub0,
+	  _huff_book_line_256x4low_0sub1,
+	  _huff_book_line_256x4low_0sub2,
+	  _huff_book_line_256x4low_0sub3,
+	};
+	
+	static static_codebook[] _floor_1024x27_books = {
+	  _huff_book_line_1024x27_class1,
+	  _huff_book_line_1024x27_class2,
+	  _huff_book_line_1024x27_class3,
+	  _huff_book_line_1024x27_class4,
+	  
+	  _huff_book_line_1024x27_0sub0,
+	  _huff_book_line_1024x27_1sub0,
+	  _huff_book_line_1024x27_1sub1,
+	  _huff_book_line_1024x27_2sub0,
+	  _huff_book_line_1024x27_2sub1,
+	  _huff_book_line_1024x27_3sub1,
+	  _huff_book_line_1024x27_3sub2,
+	  _huff_book_line_1024x27_3sub3,
+	  _huff_book_line_1024x27_4sub1,
+	  _huff_book_line_1024x27_4sub2,
+	  _huff_book_line_1024x27_4sub3,
+	};
+	
+	static static_codebook[] _floor_2048x27_books = {
+	  _huff_book_line_2048x27_class1,
+	  _huff_book_line_2048x27_class2,
+	  _huff_book_line_2048x27_class3,
+	  _huff_book_line_2048x27_class4,
+	  
+	  _huff_book_line_2048x27_0sub0,
+	  _huff_book_line_2048x27_1sub0,
+	  _huff_book_line_2048x27_1sub1,
+	  _huff_book_line_2048x27_2sub0,
+	  _huff_book_line_2048x27_2sub1,
+	  _huff_book_line_2048x27_3sub1,
+	  _huff_book_line_2048x27_3sub2,
+	  _huff_book_line_2048x27_3sub3,
+	  _huff_book_line_2048x27_4sub1,
+	  _huff_book_line_2048x27_4sub2,
+	  _huff_book_line_2048x27_4sub3,
+	};
+	
+	static static_codebook[] _floor_512x17_books = {
+	  _huff_book_line_512x17_class1,
+	  _huff_book_line_512x17_class2,
+	  _huff_book_line_512x17_class3,
+	  
+	  _huff_book_line_512x17_0sub0,
+	  _huff_book_line_512x17_1sub0,
+	  _huff_book_line_512x17_1sub1,
+	  _huff_book_line_512x17_2sub1,
+	  _huff_book_line_512x17_2sub2,
+	  _huff_book_line_512x17_2sub3, 
+	  _huff_book_line_512x17_3sub1,
+	  _huff_book_line_512x17_3sub2,
+	  _huff_book_line_512x17_3sub3, 
+	};
+	
+	public static_codebook[][] _floor_books = {
+	  _floor_128x4_books,
+	  _floor_256x4_books,
+	  _floor_128x7_books,
+	  _floor_256x7_books,
+	  _floor_128x11_books,
+	  _floor_128x17_books,
+	  _floor_256x4low_books,
+	  _floor_1024x27_books,
+	  _floor_2048x27_books,
+	  _floor_512x17_books,
+	};
+	
+// TODO - class variable initialization
+// readup on the best way to do this for java
+// maybe read from external file or project resource
+// to cut down on the .class size footprint
+	
+	public floor_books() {}
+	
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/books/floor/floor_books.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/codebook.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/codebook.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/codebook.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,226 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class codebook {
+
+	int dim;				// long dim // codebook dimensions (elements per vector)
+	int entries;			// long entries // codebook entries
+	int used_entries;		// long used_entries // populated codebook entries
+	static_codebook c;
+
+	// for encode, the below are entry-ordered, fully populated
+	// for decode, the below are ordered by bitreversed codeword and only used entries are populated
+
+	float[] valuelist;		// list of dim*entries actual entry values
+	int[] codelist;			// ogg_uint32_t *codelist // list of bitstream codewords for each entry
+
+	int[] dec_index;		// only used if sparseness collapsed
+	char[] dec_codelengths;	// chat *dec_codelengths
+	int[] dec_firsttable;	// ogg_uint32_t *dec_firsttable
+	int dec_firsttablen;
+	int dec_maxlength;
+	
+	public codebook() {}
+
+	public void vorbis_book_init_encode( static_codebook s ) {
+
+		dim = s.dim;
+		entries = s.entries;
+		used_entries = s.entries;
+		c = s;
+
+		codelist = _make_words( s.lengthlist, s.entries, 0 );
+		valuelist = _book_unquantize( s, s.entries, null );
+	}
+
+	private int[] _make_words( int[] l, int n, int sparsecount ) {
+
+		int i,j,count=0;
+		int[] marker;		// ogg_uint32_t marker[33];
+
+		// ogg_uint32_t *r=_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r));
+		int[] r;
+
+		if ( sparsecount != 0 )
+			r = new int[ sparsecount ];
+		else
+			r = new int[ n ];
+  
+		// memset(marker,0,sizeof(marker));
+		marker = new int[ 33 ];	
+
+		for ( i=0; i<n; i++ ) {
+
+			int length=l[i];
+			if ( length>0 ) {
+
+				// ogg_uint32_t entry=marker[length];
+				int entry = marker[length];
+      
+				// when we claim a node for an entry, we also claim the nodes below 
+				// it (pruning off the imagined tree that may have dangled from it) 
+				// as well as blocking the use of any nodes directly above for leaves
+      
+				// update ourself
+				if ( length<32 && ((entry>>>length) != 0) ) {
+					// error condition; the lengths must specify an overpopulated tree
+					// _ogg_free(r);
+					return null;
+				}
+
+				r[count++]=entry;
+    
+				// Look to see if the next shorter marker points to the node above. if so, update it and repeat
+
+				for ( j=length; j>0; j-- ) {
+	  
+					if ( (marker[j]&1) != 0 ) {
+						// have to jump branches
+						if (j==1)
+							marker[1]++;
+						else
+							marker[j]=marker[j-1]<<1;
+						break;	// invariant says next upper marker would already
+							// have been moved if it was on the same path
+					}
+					marker[j]++;
+				}
+    
+      
+				// prune the tree; the implicit invariant says all the longer markers were
+				// dangling from our just-taken node.  Dangle them from our *new* node.
+
+				for ( j=length+1; j<33; j++ ) {
+
+					if ((marker[j]>>>1) == entry){
+						entry=marker[j];
+						marker[j]=marker[j-1]<<1;
+					} else
+						break;
+				}
+			} else
+				if (sparsecount==0)
+					count++;
+		}
+    
+		// bitreverse the words because our bitwise packer/unpacker is LSb endian
+
+		for ( i=0,count=0; i<n; i++ ) {
+
+			// ogg_uint32_t temp=0;
+			int temp = 0;
+			for ( j=0; j<l[i]; j++ ) {
+				temp<<=1;
+				temp|=(r[count]>>>j)&1;
+			}
+
+			if (sparsecount != 0) {
+				if (l[i] != 0)
+					r[count++]=temp;
+			} else
+				r[count++]=temp;
+		}
+
+		return r;
+	}
+
+	private float ldexp( double value, long exp ) {
+  
+		return new Double( value * Math.pow( 2, new Long( exp ).intValue() ) ).floatValue();
+	}
+
+	private float _float32_unpack( int val ) {
+
+		double mant=val&0x1fffff;
+		int sign=val&0x80000000;
+		long exp =(val&0x7fe00000L)>>>VQ_FMAN;
+
+		if (sign != 0)
+			mant= -mant;
+
+		return ldexp( mant, exp-(VQ_FMAN-1)-VQ_FEXP_BIAS );
+	}
+
+	private float[] _book_unquantize( static_codebook b, int n, int[] sparsemap ) {
+
+  		int j,k,count=0;
+
+		if (b.maptype==1 || b.maptype==2) {
+
+			int quantvals;
+			float mindel = _float32_unpack(b.q_min);
+			float delta = _float32_unpack(b.q_delta);
+			// float *r=_ogg_calloc(n*b->dim,sizeof(*r));
+			float[] r = new float[ n*b.dim ];
+
+			// maptype 1 and 2 both use a quantized value vector, but different sizes
+
+			switch ( b.maptype ) {
+
+				case 1: {
+
+					quantvals= b._book_maptype1_quantvals();
+					for ( j=0; j<b.entries; j++ ) {
+						if ( ( (sparsemap != null) && (b.lengthlist[j] != 0) ) || sparsemap == null ) {
+							float last=0.f;
+							int indexdiv=1;
+							for ( k=0; k<b.dim; k++ ) {
+								int index= (j/indexdiv)%quantvals;
+								float val=b.quantlist[index];
+								val = Math.abs(val)*delta+mindel+last;
+								if (b.q_sequencep != 0)
+									last=val;	  
+								if (sparsemap != null)
+									r[sparsemap[count]*b.dim+k]=val;
+								else
+									r[count*b.dim+k]=val;
+								indexdiv*=quantvals;
+							}
+							count++;
+						}
+
+					}
+					break;
+				}
+
+				case 2: {
+
+					for ( j=0; j<b.entries; j++ ) {
+						if ( ( (sparsemap != null) && (b.lengthlist[j] != 0) ) || sparsemap == null ) {
+							float last=0.f;
+							for ( k=0; k<b.dim; k++ ) {
+								float val=b.quantlist[j*b.dim+k];
+								val = Math.abs(val)*delta+mindel+last;
+								if (b.q_sequencep != 0)
+									last=val;	  
+								if (sparsemap != null)
+									r[sparsemap[count]*b.dim+k]=val;
+								else
+									r[count*b.dim+k]=val;
+							}
+							count++;
+						}
+					}
+					break;
+				}
+			}
+
+			return r;
+  		}
+
+  		return null;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/codebook.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/codec_setup_info.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/codec_setup_info.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/codec_setup_info.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,82 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+// NOTE - class updated to VorbisLib 1.1.2
+
+class codec_setup_info {
+
+	// Vorbis supports only short and long blocks, but allows the encoder to choose the sizes
+
+	int[] blocksizes; 					// long blocksizes[2]
+
+	// modes are the primary means of supporting on-the-fly different blocksizes, different channel mappings (LR or M/A),
+	// different residue backends, etc.  Each mode consists of a blocksize flag and a mapping (along with the mapping setup
+
+	int modes;
+	int maps;
+	int floors;
+	int residues;
+	int books;
+	int psys;								// encode only
+
+	vorbis_info_mode[] mode_param;			// codec_setup *mode_param[64]
+
+// TODO - Abstract classes
+// vorbis_info_mapping
+// vorbis_info_floor
+// vorbis_info_residue
+	
+	int[] map_type;							// int map_type[64] - will always be map0
+	vorbis_info_mapping0[] map_param;		// vorbis_info_mapping *map_param[64]
+
+	int[] floor_type;						// int floor_type[64] - will always be floor1
+	vorbis_info_floor1[] floor_param;		// vorbis_info_floor *floor_param[64]
+
+	int[] residue_type;						// int residue_type[64] - this guy might change from 0,1,2 for functions
+	vorbis_info_residue0[] residue_param;	// vorbis_info_residue *residue_param[64] - data will always fit into res0
+
+	static_codebook[] book_param;			// static_codebook *book_param[256]
+	codebook[] fullbooks;					// codebook *fullbooks
+
+	vorbis_info_psy[] psy_param;			// encode only // psy_param[4]
+	vorbis_info_psy_global psy_g_param;
+
+	bitrate_manager_info bi;
+	highlevel_encode_setup hi;				// used only by vorbisenc.c - Redundant
+
+	int halfrate_flag;						// painless downsample for decode
+
+
+	public codec_setup_info() {
+
+		blocksizes = new int[2];
+
+		mode_param = new vorbis_info_mode[64];
+		map_type = new int[64];
+		map_param = new vorbis_info_mapping0[64];
+
+		floor_type = new int[64];
+		floor_param = new vorbis_info_floor1[64];
+
+		residue_type = new int[64];
+		residue_param = new vorbis_info_residue0[64];
+
+		book_param = new static_codebook[256];
+
+		psy_param = new vorbis_info_psy[4];
+		
+		bi = new bitrate_manager_info();
+		hi = new highlevel_encode_setup();
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/codec_setup_info.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/compandblock.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/compandblock.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/compandblock.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,32 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class compandblock {
+
+	int[] data;		// data[NOISE_COMPAND_LEVELS]
+
+
+	public compandblock( int[] _data ) {
+
+		data = new int[ NOISE_COMPAND_LEVELS ];
+		System.arraycopy( _data, 0, data, 0, _data.length );
+	}
+
+	public compandblock( compandblock src ) {
+
+		this( src.data );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/compandblock.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/drft_lookup.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/drft_lookup.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/drft_lookup.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1398 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class drft_lookup {
+
+	static final int L101 = 101;
+	static final int L102 = 102;
+	static final int L103 = 103;
+	static final int L104 = 104;
+	static final int L105 = 105;
+	static final int L106 = 106;
+	static final int L107 = 107;
+	static final int L109 = 109;
+	static final int L110 = 110;
+	static final int L112 = 112;
+	static final int L115 = 115;
+	static final int L116 = 116;
+	static final int L119 = 119;
+	static final int L128 = 128;
+	static final int L132 = 132;
+	static final int L135 = 135;
+	static final int L139 = 139;
+	static final int L141 = 141;
+	static final int LDONE = 9999;
+	
+
+	int n;
+	float[] trigcache;
+	int[] splitcache;
+
+
+	public drft_lookup() {}
+
+	public drft_lookup( int _n, float[] _trigcache, int[] _splitcache ) {
+
+		n = _n;
+		trigcache = (float[])_trigcache.clone();
+		splitcache = (int[])_splitcache.clone();
+	}
+
+	public drft_lookup( drft_lookup src ) {
+
+		this( src.n, src.trigcache, src.splitcache );
+	}
+
+	public void drft_forward( float[] data ) {
+
+		if ( n == 1 )
+			return;
+
+		// drftf1( l->n, data, l->trigcache, l->trigcache+l->n, l->splitcache );
+		drftf1( n, data, trigcache, splitcache );
+	}
+
+	public void drft_backward( float[] data ) {
+
+		if ( n == 1 )
+			return;
+
+		// drftb1( l->n, data, l->trigcache, l->trigcache+l->n, l->splitcache );
+		drftb1( n, data, trigcache, splitcache );
+	}
+
+	public void drft_init( int _n ) {
+
+  		n = _n;
+
+		// l->trigcache=_ogg_calloc(3*n,sizeof(*l->trigcache));
+		trigcache = new float[ 3*n ];
+
+		// l->splitcache=_ogg_calloc(32,sizeof(*l->splitcache));
+		splitcache = new int[ 32 ];
+
+		fdrffti( n, trigcache, splitcache );
+	}
+
+	static void fdrffti( int _n, float[] wsave, int[] ifac ) {
+
+		if (_n == 1)
+			return;
+
+		// drfti1(n, wsave+n, ifac);
+		drfti1( _n, wsave, ifac );
+	}
+
+	static void drfti1( int _n, float[] wa, int[] ifac ) {
+
+		int ntryh[] = { 4,2,3,5 };
+		float tpi = 6.28318530717958648f;
+		float arg, argh, argld, fi;
+		int ntry=0, i, j=-1;
+		int k1, l1, l2, ib;
+		int ld, ii, ip, is, nq, nr;
+		int ido, ipm, nfm1;
+		int nl = _n;
+		int nf = 0;
+
+		int state = L101;
+
+		while ( state != LDONE ) {
+
+			switch (state) {
+
+ 				case L101: {
+					j++;
+					if (j < 4)
+						ntry=ntryh[j];
+					else
+						ntry+=2;
+					state = L104;
+					break;
+				}
+
+				case L104: {
+					nq=nl/ntry;
+					nr=nl-ntry*nq;
+					if (nr!=0) {
+						state = L101;
+						break;
+					}
+					nf++;
+					ifac[nf+1]=ntry;
+					nl=nq;
+					if (ntry!=2) {
+						state = L107;
+						break;
+					}
+					if (nf==1) {
+						state = L107;
+						break;
+					}
+					for (i=1;i<nf;i++) {
+						ib=nf-i+1;
+						ifac[ib+1]=ifac[ib];
+					}
+					ifac[2] = 2;
+					state = L107;
+					break;
+				}
+
+				case L107: {
+					if (nl!=1) {
+						state = L104;
+						break;
+					}
+					ifac[0]=_n;
+					ifac[1]=nf;
+					argh=tpi/_n;
+					is=0;
+					nfm1=nf-1;
+					l1=1;
+
+					if (nfm1==0)
+						return;
+
+					for (k1=0;k1<nfm1;k1++) {
+						ip=ifac[k1+2];
+						ld=0;
+						l2=l1*ip;
+						ido=_n/l2;
+						ipm=ip-1;
+
+						for (j=0;j<ipm;j++) {
+							ld+=l1;
+							i=is;
+							argld=ld*argh;
+							fi=0.f;
+							for (ii=2;ii<ido;ii+=2){
+								fi+=1.f;
+								arg=fi*argld;
+								wa[_n+(i++)] = new Double( Math.cos(arg) ).floatValue();
+								wa[_n+(i++)] = new Double( Math.sin(arg) ).floatValue();
+							}
+							is+=ido;
+						}
+						l1=l2;
+					}
+					state = LDONE;
+					break;
+				}
+			}
+		}
+	}
+
+	static void drftf1( int _n, float[] c, float[] ch, int[] ifac ) {
+
+		float[] wa = ch;
+		int waoff = _n;
+		int i,k1,l1=0,l2 = 0;
+		int na,kh,nf = 0;
+		int ip=0,iw,ido=0,idl1=0,ix2,ix3;
+
+		nf=ifac[1];
+		na=1;
+		l2=_n;
+		iw=_n;
+
+		for ( k1=0; k1<nf; k1++) {
+
+			int state = L101;
+
+			while ( state != LDONE ) {
+
+				switch (state) {
+
+					case L101: {
+						kh = nf-k1;
+						ip = ifac[kh+1];
+						l1 = l2/ip;
+						ido = _n/l2;
+						idl1 = ido*l1;
+						iw -= (ip-1)*ido;
+						na = 1-na;
+
+						if (ip!=4) {
+							state = L102;
+							break;
+						}
+
+						ix2=iw+ido;
+						ix3=ix2+ido;
+
+						if (na!=0)
+							dradf4( ido, l1, ch, c, wa, waoff+iw-1, waoff+ix2-1, waoff+ix3-1 );
+						else
+							dradf4( ido, l1, c, ch, wa, waoff+iw-1, waoff+ix2-1, waoff+ix3-1 );
+						state = L110;
+						break;
+					}
+
+					case L102: {
+						if (ip!=2) {
+							state = L104;
+							break;
+						}
+						if (na!=0) {
+							state = L103;
+							break;
+						}
+
+						dradf2( ido, l1, c, ch, wa, waoff+iw-1 );
+						state = L110;
+						break;
+					}
+
+					case L103: {
+						dradf2( ido, l1, ch, c, wa, waoff+iw-1 );
+						state = L110;
+						break;
+					}
+
+					case L104: {
+						if (ido==1)
+							na=1-na;
+						if (na!=0) {
+							state = L109;
+							break;
+						}
+
+						dradfg( ido, ip, l1, idl1, c, c, c, ch, ch, wa, waoff+iw-1 );
+						na=1;
+						state = L110;
+						break;
+					}
+
+					case L109: {
+						dradfg( ido, ip, l1, idl1, ch, ch, ch, c, c, wa, waoff+iw-1 );
+						na=0;
+						state = L110;
+						break;
+					}
+
+					case L110: {
+						l2=l1;
+						state = LDONE;
+						break;
+					}
+				}
+			}
+		}
+
+		if (na==1)
+			return;
+
+		for ( i=0; i<_n; i++ )
+			c[i]=ch[i];
+	}
+
+	static void dradf2( int ido, int l1, float[] cc, float[] ch, float[] wa1, int waoff ) {
+
+		int i,k;
+		float ti2,tr2;
+		int t0,t1,t2,t3,t4,t5,t6;
+
+		t1=0;
+		t0=(t2=l1*ido);
+		t3=ido<<1;
+		for ( k=0; k<l1; k++ ) {
+			ch[t1<<1]=cc[t1]+cc[t2];
+			ch[(t1<<1)+t3-1]=cc[t1]-cc[t2];
+			t1+=ido;
+			t2+=ido;
+		}
+    
+		if ( ido < 2 )
+			return;
+
+		if ( ido != 2 ) {
+
+			t1=0;
+			t2=t0;
+
+			for ( k=0; k<l1; k++ ) {
+				t3=t2;
+				t4=(t1<<1)+(ido<<1);
+				t5=t1;
+				t6=t1+t1;
+				for ( i=2; i<ido; i+=2 ) {
+					t3+=2;
+					t4-=2;
+					t5+=2;
+					t6+=2;
+					tr2=wa1[waoff+i-2]*cc[t3-1]+wa1[waoff+i-1]*cc[t3];
+					ti2=wa1[waoff+i-2]*cc[t3]-wa1[waoff+i-1]*cc[t3-1];
+					ch[t6]=cc[t5]+ti2;
+					ch[t4]=ti2-cc[t5];
+					ch[t6-1]=cc[t5-1]+tr2;
+					ch[t4-1]=cc[t5-1]-tr2;
+				}
+				t1+=ido;
+				t2+=ido;
+			}
+
+			if (ido%2==1)
+				return;
+		}
+
+		t3=(t2=(t1=ido)-1);
+		t2+=t0;
+		for ( k=0; k<l1; k++ ) {
+			ch[t1]=-cc[t2];
+			ch[t1-1]=cc[t3];
+			t1+=ido<<1;
+			t2+=ido;
+			t3+=ido;
+		}
+	}
+
+	static void dradf4( int ido, int l1, float[] cc, float[] ch, float[] wa, int wa1, int wa2, int wa3 ) {
+
+		float hsqt2 = .70710678118654752f;
+		int i,k,t0,t1,t2,t3,t4,t5,t6;
+		float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4;
+		t0=l1*ido;
+  
+		t1=t0;
+		t4=t1<<1;
+		t2=t1+(t1<<1);
+		t3=0;
+
+		for ( k=0; k<l1; k++ ) {
+			tr1=cc[t1]+cc[t2];
+			tr2=cc[t3]+cc[t4];
+
+			ch[t5=t3<<2]=tr1+tr2;
+			ch[(ido<<2)+t5-1]=tr2-tr1;
+			ch[(t5+=(ido<<1))-1]=cc[t3]-cc[t4];
+			ch[t5]=cc[t2]-cc[t1];
+
+			t1+=ido;
+			t2+=ido;
+			t3+=ido;
+			t4+=ido;
+		}
+
+		if ( ido < 2 )
+			return;
+
+		if ( ido != 2 ) {
+
+			t1=0;
+			for ( k=0; k<l1; k++ ) {
+				t2=t1;
+				t4=t1<<2;
+				t5=(t6=ido<<1)+t4;
+				for ( i=2; i<ido; i+=2 ) {
+					t3=(t2+=2);
+					t4+=2;
+					t5-=2;
+
+					t3+=t0;
+					cr2=wa[wa1+i-2]*cc[t3-1]+wa[wa1+i-1]*cc[t3];
+					ci2=wa[wa1+i-2]*cc[t3]-wa[wa1+i-1]*cc[t3-1];
+					t3+=t0;
+					cr3=wa[wa2+i-2]*cc[t3-1]+wa[wa2+i-1]*cc[t3];
+					ci3=wa[wa2+i-2]*cc[t3]-wa[wa2+i-1]*cc[t3-1];
+					t3+=t0;
+					cr4=wa[wa3+i-2]*cc[t3-1]+wa[wa3+i-1]*cc[t3];
+					ci4=wa[wa3+i-2]*cc[t3]-wa[wa3+i-1]*cc[t3-1];
+
+					tr1=cr2+cr4;
+					tr4=cr4-cr2;
+					ti1=ci2+ci4;
+					ti4=ci2-ci4;
+
+					ti2=cc[t2]+ci3;
+					ti3=cc[t2]-ci3;
+					tr2=cc[t2-1]+cr3;
+					tr3=cc[t2-1]-cr3;
+
+					ch[t4-1]=tr1+tr2;
+					ch[t4]=ti1+ti2;
+
+					ch[t5-1]=tr3-ti4;
+					ch[t5]=tr4-ti3;
+
+					ch[t4+t6-1]=ti4+tr3;
+					ch[t4+t6]=tr4+ti3;
+
+					ch[t5+t6-1]=tr2-tr1;
+					ch[t5+t6]=ti1-ti2;
+				}
+				t1+=ido;
+			}
+  			if ((ido&1) == 1)
+				return;
+		}
+
+		t2=(t1=t0+ido-1)+(t0<<1);
+  		t3=ido<<2;
+		t4=ido;
+		t5=ido<<1;
+		t6=ido;
+
+		for (k=0; k<l1; k++ ) {
+			ti1=-hsqt2*(cc[t1]+cc[t2]);
+			tr1=hsqt2*(cc[t1]-cc[t2]);
+
+			ch[t4-1]=tr1+cc[t6-1];
+			ch[t4+t5-1]=cc[t6-1]-tr1;
+
+			ch[t4]=ti1-cc[t1+t0];
+			ch[t4+t5]=ti1+cc[t1+t0];
+
+			t1+=ido;
+			t2+=ido;
+			t4+=t3;
+			t6+=ido;
+		}
+	}
+
+	static void dradfg( int ido, int ip, int l1, int idl1, float[] cc, float[] c1, float[] c2, float[] ch, float[] ch2, float[] wa, int waoff ) {
+
+		float tpi=6.283185307179586f;
+		int idij,ipph,i,j,k,l,ic,ik,is;
+		int t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+		float dc2,ai1,ai2,ar1,ar2,ds2;
+		int nbd;
+		float dcp,arg,dsp,ar1h,ar2h;
+		int idp2,ipp2;
+  
+		arg=tpi/ new Integer( ip ).floatValue();
+		dcp=new Double( Math.cos(arg) ).floatValue();
+		dsp=new Double( Math.sin(arg) ).floatValue();
+		ipph=(ip+1)>>1;
+		ipp2=ip;
+		idp2=ido;
+		nbd=(ido-1)>>1;
+		t0=l1*ido;
+		t10=ip*ido;
+
+		if ( ido != 1 ) {
+
+			for(ik=0;ik<idl1;ik++)ch2[ik]=c2[ik];
+
+			t1=0;
+			for(j=1;j<ip;j++){
+				t1+=t0;
+				t2=t1;
+				for(k=0;k<l1;k++){
+					ch[t2]=c1[t2];
+					t2+=ido;
+				}
+			}
+
+			is=-ido;
+			t1=0;
+			if(nbd>l1){
+				for(j=1;j<ip;j++){
+					t1+=t0;
+					is+=ido;
+					t2= -ido+t1;
+					for(k=0;k<l1;k++){
+						idij=is-1;
+ 						t2+=ido;
+						t3=t2;
+						for(i=2;i<ido;i+=2){
+							idij+=2;
+							t3+=2;
+							ch[t3-1]=wa[waoff+idij-1]*c1[t3-1]+wa[waoff+idij]*c1[t3];
+							ch[t3]=wa[waoff+idij-1]*c1[t3]-wa[waoff+idij]*c1[t3-1];
+						}
+					}
+				}
+			}else{
+				for(j=1;j<ip;j++){
+					is+=ido;
+					idij=is-1;
+					t1+=t0;
+					t2=t1;
+					for(i=2;i<ido;i+=2){
+						idij+=2;
+						t2+=2;
+						t3=t2;
+						for(k=0;k<l1;k++){
+							ch[t3-1]=wa[waoff+idij-1]*c1[t3-1]+wa[waoff+idij]*c1[t3];
+							ch[t3]=wa[waoff+idij-1]*c1[t3]-wa[waoff+idij]*c1[t3-1];
+							t3+=ido;
+						}
+					}
+				}
+			}
+
+			t1=0;
+			t2=ipp2*t0;
+			if(nbd<l1){
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+					for(i=2;i<ido;i+=2){
+						t3+=2;
+						t4+=2;
+						t5=t3-ido;
+						t6=t4-ido;
+						for(k=0;k<l1;k++){
+							t5+=ido;
+							t6+=ido;
+							c1[t5-1]=ch[t5-1]+ch[t6-1];
+							c1[t6-1]=ch[t5]-ch[t6];
+							c1[t5]=ch[t5]+ch[t6];
+							c1[t6]=ch[t6-1]-ch[t5-1];
+						}
+					}
+				}
+			}else{
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+					for(k=0;k<l1;k++){
+						t5=t3;
+						t6=t4;
+						for(i=2;i<ido;i+=2){
+							t5+=2;
+							t6+=2;
+							c1[t5-1]=ch[t5-1]+ch[t6-1];
+							c1[t6-1]=ch[t5]-ch[t6];
+							c1[t5]=ch[t5]+ch[t6];
+							c1[t6]=ch[t6-1]-ch[t5-1];
+						}
+						t3+=ido;
+						t4+=ido;
+					}
+				}
+			}
+		}
+
+		for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik];
+
+		t1=0;
+		t2=ipp2*idl1;
+		for(j=1;j<ipph;j++){
+			t1+=t0;
+			t2-=t0;
+			t3=t1-ido;
+			t4=t2-ido;
+			for(k=0;k<l1;k++){
+				t3+=ido;
+				t4+=ido;
+				c1[t3]=ch[t3]+ch[t4];
+				c1[t4]=ch[t4]-ch[t3];
+			}
+		}
+
+		ar1=1.f;
+		ai1=0.f;
+		t1=0;
+		t2=ipp2*idl1;
+		t3=(ip-1)*idl1;
+		for(l=1;l<ipph;l++){
+			t1+=idl1;
+			t2-=idl1;
+			ar1h=dcp*ar1-dsp*ai1;
+			ai1=dcp*ai1+dsp*ar1;
+			ar1=ar1h;
+			t4=t1;
+			t5=t2;
+			t6=t3;
+			t7=idl1;
+
+			for(ik=0;ik<idl1;ik++){
+				ch2[t4++]=c2[ik]+ar1*c2[t7++];
+				ch2[t5++]=ai1*c2[t6++];
+			}
+
+			dc2=ar1;
+			ds2=ai1;
+			ar2=ar1;
+			ai2=ai1;
+
+			t4=idl1;
+			t5=(ipp2-1)*idl1;
+			for(j=2;j<ipph;j++){
+				t4+=idl1;
+				t5-=idl1;
+
+				ar2h=dc2*ar2-ds2*ai2;
+				ai2=dc2*ai2+ds2*ar2;
+				ar2=ar2h;
+
+				t6=t1;
+				t7=t2;
+				t8=t4;
+				t9=t5;
+				for(ik=0;ik<idl1;ik++){
+					ch2[t6++]+=ar2*c2[t8++];
+					ch2[t7++]+=ai2*c2[t9++];
+				}
+			}
+		}
+
+		t1=0;
+		for(j=1;j<ipph;j++){
+			t1+=idl1;
+			t2=t1;
+			for(ik=0;ik<idl1;ik++)ch2[ik]+=c2[t2++];
+		}
+
+		if(ido<l1) {
+			for(i=0;i<ido;i++){
+				t1=i;
+				t2=i;
+				for(k=0;k<l1;k++){
+					cc[t2]=ch[t1];
+					t1+=ido;
+					t2+=t10;
+				}
+			}
+		} else {
+			t1=0;
+			t2=0;
+			for(k=0;k<l1;k++){
+				t3=t1;
+				t4=t2;
+				for(i=0;i<ido;i++)cc[t4++]=ch[t3++];
+				t1+=ido;
+				t2+=t10;
+			}
+		}
+
+		t1=0;
+		t2=ido<<1;
+		t3=0;
+		t4=ipp2*t0;
+		for(j=1;j<ipph;j++){
+
+			t1+=t2;
+			t3+=t0;
+			t4-=t0;
+
+			t5=t1;
+			t6=t3;
+			t7=t4;
+
+			for(k=0;k<l1;k++){
+				cc[t5-1]=ch[t6];
+				cc[t5]=ch[t7];
+				t5+=t10;
+				t6+=ido;
+				t7+=ido;
+			}
+		}
+
+		if (ido==1)
+			return;
+
+		if(nbd<l1) {
+			t1=-ido;
+			t3=0;
+			t4=0;
+			t5=ipp2*t0;
+			for(j=1;j<ipph;j++){
+				t1+=t2;
+				t3+=t2;
+				t4+=t0;
+				t5-=t0;
+				for(i=2;i<ido;i+=2){
+					t6=idp2+t1-i;
+					t7=i+t3;
+					t8=i+t4;
+					t9=i+t5;
+					for(k=0;k<l1;k++){
+						cc[t7-1]=ch[t8-1]+ch[t9-1];
+						cc[t6-1]=ch[t8-1]-ch[t9-1];
+						cc[t7]=ch[t8]+ch[t9];
+						cc[t6]=ch[t9]-ch[t8];
+						t6+=t10;
+						t7+=t10;
+						t8+=ido;
+						t9+=ido;
+					}
+				}
+			}
+		} else {
+			t1=-ido;
+			t3=0;
+			t4=0;
+			t5=ipp2*t0;
+			for(j=1;j<ipph;j++){
+				t1+=t2;
+				t3+=t2;
+				t4+=t0;
+				t5-=t0;
+				t6=t1;
+				t7=t3;
+				t8=t4;
+				t9=t5;
+				for(k=0;k<l1;k++){
+					for(i=2;i<ido;i+=2){
+						ic=idp2-i;
+						cc[i+t7-1]=ch[i+t8-1]+ch[i+t9-1];
+						cc[ic+t6-1]=ch[i+t8-1]-ch[i+t9-1];
+						cc[i+t7]=ch[i+t8]+ch[i+t9];
+						cc[ic+t6]=ch[i+t9]-ch[i+t8];
+					}
+					t6+=t10;
+					t7+=t10;
+					t8+=ido;
+					t9+=ido;
+				}
+			}
+		}
+	}
+
+	static void drftb1( int _n, float[] c, float[] ch, int[] ifac ) {
+
+		float[] wa = ch;
+		int waoff = _n;
+		int i,k1,l1,l2=0;
+		int na;
+		int nf,ip=0,iw,ix2,ix3,ido=0,idl1=0;
+
+		nf=ifac[1];
+		na=0;
+		l1=1;
+		iw=1;
+
+		for ( k1=0; k1<nf; k1++ ) {
+
+			int state = L101;
+
+			while ( state != LDONE ) {
+
+				switch (state) {
+
+					case L101: {
+						ip = ifac[k1 + 2];
+						l2 = ip*l1;
+						ido = _n/l2;
+						idl1 = ido*l1;
+						if (ip!=4) {
+							state = L103;
+							break;
+						}
+
+						ix2=iw+ido;
+						ix3=ix2+ido;
+
+						if (na!=0)
+							dradb4( ido, l1, ch, c, wa, waoff+iw-1, waoff+ix2-1, waoff+ix3-1 );
+						else
+							dradb4( ido, l1, c, ch, wa, waoff+iw-1, waoff+ix2-1, waoff+ix3-1 );
+						na=1-na;
+						state = L115;
+						break;
+					} 
+
+					case L103: {
+						if (ip!=2) {
+							state = L106;
+							break;
+						}
+
+						if(na!=0)
+							dradb2( ido, l1, ch, c, wa, waoff+iw-1 );
+						else
+							dradb2( ido, l1, c, ch, wa, waoff+iw-1 );
+						na=1-na;
+						state = L115;
+						break;
+					}
+
+					case L106: {
+						if (ip!=3) {
+							state = L109;
+							break;
+						}
+
+						ix2=iw+ido;
+						if(na!=0)
+							dradb3( ido, l1, ch, c, wa, waoff+iw-1, waoff+ix2-1 );
+						else
+							dradb3( ido, l1, c, ch, wa, waoff+iw-1, waoff+ix2-1 );
+						na=1-na;
+						state = L115;
+						break;
+					}
+
+					case L109: {
+					//	The radix five case can be translated later.....
+					//	if(ip!=5)goto L112;
+
+					//	ix2=iw+ido;
+					//	ix3=ix2+ido;
+					//	ix4=ix3+ido;
+					//	if(na!=0)
+					//		dradb5(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1 );
+					//	else
+					//		dradb5(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1 );
+					//	na=1-na;
+					//	goto L115;
+
+					// L112:
+
+						if (na!=0)
+							dradbg( ido, ip, l1, idl1, ch, ch, ch, c, c, wa, waoff+iw-1 );
+						else
+							dradbg( ido, ip, l1, idl1, c, c, c, ch, ch, wa, waoff+iw-1 );
+						if (ido==1)
+							na=1-na;
+						state = L115;
+						break;
+					}
+
+					case L115: {
+						l1=l2;
+						iw+=(ip-1)*ido;
+						state = LDONE;
+						break;
+					}
+				}
+			}
+		}
+
+		if (na==0)
+			return;
+
+		for ( i=0; i<_n; i++ )
+			c[i]=ch[i];
+	}
+
+	static void dradb2( int ido, int l1, float[] cc, float[] ch, float[] wa1, int waoff ) {
+
+		int i,k,t0,t1,t2,t3,t4,t5,t6;
+		float ti2,tr2;
+
+		t0=l1*ido;
+  
+		t1=0;
+		t2=0;
+		t3=(ido<<1)-1;
+		for ( k=0; k<l1; k++ ) {
+			ch[t1]=cc[t2]+cc[t3+t2];
+			ch[t1+t0]=cc[t2]-cc[t3+t2];
+			t2=(t1+=ido)<<1;
+		}
+
+		if ( ido < 2 )
+			return;
+
+		if ( ido != 2 ) {
+
+			t1=0;
+			t2=0;
+			for ( k=0; k<l1; k++ ) {
+				t3=t1;
+				t5=(t4=t2)+(ido<<1);
+				t6=t0+t1;
+				for ( i=2; i<ido; i+=2 ) {
+					t3+=2;
+					t4+=2;
+					t5-=2;
+					t6+=2;
+					ch[t3-1]=cc[t4-1]+cc[t5-1];
+					tr2=cc[t4-1]-cc[t5-1];
+					ch[t3]=cc[t4]-cc[t5];
+					ti2=cc[t4]+cc[t5];
+					ch[t6-1]=wa1[waoff+i-2]*tr2-wa1[waoff+i-1]*ti2;
+					ch[t6]=wa1[waoff+i-2]*ti2+wa1[waoff+i-1]*tr2;
+				}
+				t2=(t1+=ido)<<1;
+			}
+
+			if (ido%2==1)
+				return;
+		}
+
+		t1=ido-1;
+		t2=ido-1;
+		for ( k=0; k<l1; k++ ) {
+			ch[t1]=cc[t2]+cc[t2];
+			ch[t1+t0]=-(cc[t2+1]+cc[t2+1]);
+			t1+=ido;
+			t2+=ido<<1;
+		}
+	}
+
+	static void dradb3( int ido, int l1, float[] cc, float[] ch, float[] wa, int wa1, int wa2 ) {
+
+		float taur = -.5f;
+		float taui = .8660254037844386f;
+		int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+		float ci2,ci3,di2,di3,cr2,cr3,dr2,dr3,ti2,tr2;
+		t0=l1*ido;
+
+		t1=0;
+		t2=t0<<1;
+		t3=ido<<1;
+		t4=ido+(ido<<1);
+		t5=0;
+		for ( k=0; k<l1; k++ ) {
+			tr2=cc[t3-1]+cc[t3-1];
+			cr2=cc[t5]+(taur*tr2);
+			ch[t1]=cc[t5]+tr2;
+			ci3=taui*(cc[t3]+cc[t3]);
+			ch[t1+t0]=cr2-ci3;
+			ch[t1+t2]=cr2+ci3;
+			t1+=ido;
+			t3+=t4;
+			t5+=t4;
+		}
+
+		if (ido==1)
+			return;
+
+		t1=0;
+		t3=ido<<1;
+		for ( k=0; k<l1; k++ ) {
+			t7=t1+(t1<<1);
+			t6=(t5=t7+t3);
+			t8=t1;
+			t10=(t9=t1+t0)+t0;
+
+			for ( i=2; i<ido; i+=2 ) {
+				t5+=2;
+				t6-=2;
+				t7+=2;
+				t8+=2;
+				t9+=2;
+				t10+=2;
+				tr2=cc[t5-1]+cc[t6-1];
+				cr2=cc[t7-1]+(taur*tr2);
+				ch[t8-1]=cc[t7-1]+tr2;
+				ti2=cc[t5]-cc[t6];
+				ci2=cc[t7]+(taur*ti2);
+				ch[t8]=cc[t7]+ti2;
+				cr3=taui*(cc[t5-1]-cc[t6-1]);
+				ci3=taui*(cc[t5]+cc[t6]);
+				dr2=cr2-ci3;
+				dr3=cr2+ci3;
+				di2=ci2+cr3;
+				di3=ci2-cr3;
+				ch[t9-1]=wa[wa1+i-2]*dr2-wa[wa1+i-1]*di2;
+				ch[t9]=wa[wa1+i-2]*di2+wa[wa1+i-1]*dr2;
+				ch[t10-1]=wa[wa2+i-2]*dr3-wa[wa2+i-1]*di3;
+				ch[t10]=wa[wa2+i-2]*di3+wa[wa2+i-1]*dr3;
+			}
+			t1+=ido;
+		}
+	}
+
+	static void dradb4( int ido, int l1, float[] cc, float[] ch, float[] wa, int wa1, int wa2, int wa3 ) {
+
+		float sqrt2=1.414213562373095f;
+		int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8;
+		float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4;
+		t0=l1*ido;
+  
+		t1=0;
+		t2=ido<<2;
+		t3=0;
+		t6=ido<<1;
+		for ( k=0; k<l1; k++ ) {
+			t4=t3+t6;
+			t5=t1;
+			tr3=cc[t4-1]+cc[t4-1];
+			tr4=cc[t4]+cc[t4]; 
+			tr1=cc[t3]-cc[(t4+=t6)-1];
+			tr2=cc[t3]+cc[t4-1];
+			ch[t5]=tr2+tr3;
+			ch[t5+=t0]=tr1-tr4;
+			ch[t5+=t0]=tr2-tr3;
+			ch[t5+=t0]=tr1+tr4;
+			t1+=ido;
+			t3+=t2;
+		}
+
+		if ( ido < 2 )
+			return;
+
+		if ( ido != 2 ) {
+
+			t1=0;
+			for ( k=0; k<l1; k++ ) {
+				t5=(t4=(t3=(t2=t1<<2)+t6))+t6;
+				t7=t1;
+				for ( i=2; i<ido; i+=2 ) {
+					t2+=2;
+					t3+=2;
+					t4-=2;
+					t5-=2;
+					t7+=2;
+					ti1=cc[t2]+cc[t5];
+					ti2=cc[t2]-cc[t5];
+					ti3=cc[t3]-cc[t4];
+					tr4=cc[t3]+cc[t4];
+					tr1=cc[t2-1]-cc[t5-1];
+					tr2=cc[t2-1]+cc[t5-1];
+					ti4=cc[t3-1]-cc[t4-1];
+					tr3=cc[t3-1]+cc[t4-1];
+					ch[t7-1]=tr2+tr3;
+					cr3=tr2-tr3;
+					ch[t7]=ti2+ti3;
+					ci3=ti2-ti3;
+					cr2=tr1-tr4;
+					cr4=tr1+tr4;
+					ci2=ti1+ti4;
+					ci4=ti1-ti4;
+
+					ch[(t8=t7+t0)-1]=wa[wa1+i-2]*cr2-wa[wa1+i-1]*ci2;
+					ch[t8]=wa[wa1+i-2]*ci2+wa[wa1+i-1]*cr2;
+					ch[(t8+=t0)-1]=wa[wa2+i-2]*cr3-wa[wa2+i-1]*ci3;
+					ch[t8]=wa[wa2+i-2]*ci3+wa[wa2+i-1]*cr3;
+					ch[(t8+=t0)-1]=wa[wa3+i-2]*cr4-wa[wa3+i-1]*ci4;
+					ch[t8]=wa[wa3+i-2]*ci4+wa[wa3+i-1]*cr4;
+				}
+				t1+=ido;
+			}
+
+  			if (ido%2 == 1)
+				return;
+		}
+
+		t1=ido;
+		t2=ido<<2;
+		t3=ido-1;
+		t4=ido+(ido<<1);
+		for ( k=0; k<l1; k++ ) {
+			t5=t3;
+			ti1=cc[t1]+cc[t4];
+			ti2=cc[t4]-cc[t1];
+			tr1=cc[t1-1]-cc[t4-1];
+			tr2=cc[t1-1]+cc[t4-1];
+			ch[t5]=tr2+tr2;
+			ch[t5+=t0]=sqrt2*(tr1-ti1);
+			ch[t5+=t0]=ti2+ti2;
+			ch[t5+=t0]=-sqrt2*(tr1+ti1);
+
+			t3+=ido;
+			t1+=t2;
+			t4+=t2;
+		}
+	}
+
+	static void dradbg( int ido, int ip, int l1, int idl1, float[] cc, float[] c1, float[] c2, float[] ch, float[] ch2, float[] wa, int waoff ) {
+
+		float tpi=6.283185307179586f;
+		int idij,ipph,i,j,k,l,ik,is,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12;
+		float dc2,ai1,ai2,ar1,ar2,ds2;
+		int nbd;
+		float dcp,arg,dsp,ar1h,ar2h;
+		int ipp2;
+
+		t10=ip*ido;
+		t0=l1*ido;
+		arg=tpi/ new Integer( ip ).floatValue();
+		dcp=new Double( Math.cos(arg) ).floatValue();
+		dsp=new Double( Math.sin(arg) ).floatValue();
+		nbd=(ido-1)>>1;
+		ipp2=ip;
+		ipph=(ip+1)>>1;
+
+		if(ido<l1) {
+			t1=0;
+			for(i=0;i<ido;i++){
+				t2=t1;
+				t3=t1;
+				for(k=0;k<l1;k++){
+					ch[t2]=cc[t3];
+					t2+=ido;
+					t3+=t10;
+				}
+				t1++;
+			}
+		} else {
+			t1=0;
+			t2=0;
+			for(k=0;k<l1;k++){
+				t3=t1;
+				t4=t2;
+				for(i=0;i<ido;i++){
+					ch[t3]=cc[t4];
+					t3++;
+					t4++;
+				}
+				t1+=ido;
+				t2+=t10;
+			}
+		}
+
+		t1=0;
+		t2=ipp2*t0;
+		t7=(t5=ido<<1);
+		for(j=1;j<ipph;j++){
+			t1+=t0;
+			t2-=t0;
+			t3=t1;
+			t4=t2;
+			t6=t5;
+			for(k=0;k<l1;k++){
+				ch[t3]=cc[t6-1]+cc[t6-1];
+				ch[t4]=cc[t6]+cc[t6];
+				t3+=ido;
+				t4+=ido;
+				t6+=t10;
+			}
+			t5+=t7;
+		}
+
+		if (ido != 1) {
+
+			if(nbd<l1) {
+				t1=0;
+				t2=ipp2*t0;
+				t7=0;
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+					t7+=(ido<<1);
+					t8=t7;
+					t9=t7;
+					for(i=2;i<ido;i+=2){
+						t3+=2;
+						t4+=2;
+						t8+=2;
+						t9-=2;
+						t5=t3;
+						t6=t4;
+						t11=t8;
+						t12=t9;
+						for(k=0;k<l1;k++){
+							ch[t5-1]=cc[t11-1]+cc[t12-1];
+							ch[t6-1]=cc[t11-1]-cc[t12-1];
+							ch[t5]=cc[t11]-cc[t12];
+							ch[t6]=cc[t11]+cc[t12];
+							t5+=ido;
+							t6+=ido;
+							t11+=t10;
+							t12+=t10;
+						}
+					}
+				}
+			} else {
+				t1=0;
+				t2=ipp2*t0;
+				t7=0;
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+
+					t7+=(ido<<1);
+					t8=t7;
+					for(k=0;k<l1;k++){
+						t5=t3;
+						t6=t4;
+						t9=t8;
+						t11=t8;
+						for(i=2;i<ido;i+=2){
+							t5+=2;
+							t6+=2;
+							t9+=2;
+							t11-=2;
+							ch[t5-1]=cc[t9-1]+cc[t11-1];
+							ch[t6-1]=cc[t9-1]-cc[t11-1];
+							ch[t5]=cc[t9]-cc[t11];
+							ch[t6]=cc[t9]+cc[t11];
+						}
+						t3+=ido;
+						t4+=ido;
+						t8+=t10;
+					}
+				}
+			}
+		}
+
+		ar1=1.f;
+		ai1=0.f;
+		t1=0;
+		t9=(t2=ipp2*idl1);
+		t3=(ip-1)*idl1;
+		for(l=1;l<ipph;l++){
+			t1+=idl1;
+			t2-=idl1;
+
+			ar1h=dcp*ar1-dsp*ai1;
+			ai1=dcp*ai1+dsp*ar1;
+			ar1=ar1h;
+			t4=t1;
+			t5=t2;
+			t6=0;
+			t7=idl1;
+			t8=t3;
+			for(ik=0;ik<idl1;ik++){
+				c2[t4++]=ch2[t6++]+ar1*ch2[t7++];
+				c2[t5++]=ai1*ch2[t8++];
+			}
+			dc2=ar1;
+			ds2=ai1;
+			ar2=ar1;
+			ai2=ai1;
+
+			t6=idl1;
+			t7=t9-idl1;
+			for(j=2;j<ipph;j++){
+				t6+=idl1;
+				t7-=idl1;
+				ar2h=dc2*ar2-ds2*ai2;
+				ai2=dc2*ai2+ds2*ar2;
+				ar2=ar2h;
+				t4=t1;
+				t5=t2;
+				t11=t6;
+				t12=t7;
+				for(ik=0;ik<idl1;ik++){
+					c2[t4++]+=ar2*ch2[t11++];
+					c2[t5++]+=ai2*ch2[t12++];
+				}
+			}
+		}
+
+		t1=0;
+		for(j=1;j<ipph;j++){
+			t1+=idl1;
+			t2=t1;
+			for(ik=0;ik<idl1;ik++)ch2[ik]+=ch2[t2++];
+		}
+
+		t1=0;
+		t2=ipp2*t0;
+		for(j=1;j<ipph;j++){
+			t1+=t0;
+			t2-=t0;
+			t3=t1;
+			t4=t2;
+			for(k=0;k<l1;k++){
+				ch[t3]=c1[t3]-c1[t4];
+				ch[t4]=c1[t3]+c1[t4];
+				t3+=ido;
+				t4+=ido;
+			}
+		}
+
+		if (ido != 1) {
+
+			if(nbd<l1) {
+				t1=0;
+				t2=ipp2*t0;
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+					for(i=2;i<ido;i+=2){
+						t3+=2;
+						t4+=2;
+						t5=t3;
+						t6=t4;
+						for(k=0;k<l1;k++){
+							ch[t5-1]=c1[t5-1]-c1[t6];
+							ch[t6-1]=c1[t5-1]+c1[t6];
+							ch[t5]=c1[t5]+c1[t6-1];
+							ch[t6]=c1[t5]-c1[t6-1];
+							t5+=ido;
+							t6+=ido;
+						}
+					}
+				}
+			} else {
+				t1=0;
+				t2=ipp2*t0;
+				for(j=1;j<ipph;j++){
+					t1+=t0;
+					t2-=t0;
+					t3=t1;
+					t4=t2;
+					for(k=0;k<l1;k++){
+						t5=t3;
+						t6=t4;
+						for(i=2;i<ido;i+=2){
+							t5+=2;
+							t6+=2;
+							ch[t5-1]=c1[t5-1]-c1[t6];
+							ch[t6-1]=c1[t5-1]+c1[t6];
+							ch[t5]=c1[t5]+c1[t6-1];
+							ch[t6]=c1[t5]-c1[t6-1];
+						}
+						t3+=ido;
+						t4+=ido;
+					}
+				}
+			}
+		}
+
+		if(ido==1)
+			return;
+
+		for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik];
+
+		t1=0;
+		for(j=1;j<ip;j++){
+			t2=(t1+=t0);
+			for(k=0;k<l1;k++){
+				c1[t2]=ch[t2];
+				t2+=ido;
+			}
+		}
+
+		if(nbd>l1) {
+
+			is= -ido-1;
+			t1=0;
+			for(j=1;j<ip;j++){
+				is+=ido;
+				t1+=t0;
+				t2=t1;
+				for(k=0;k<l1;k++){
+					idij=is;
+					t3=t2;
+					for(i=2;i<ido;i+=2){
+						idij+=2;
+						t3+=2;
+						c1[t3-1]=wa[waoff+idij-1]*ch[t3-1]-wa[waoff+idij]*ch[t3];
+						c1[t3]=wa[waoff+idij-1]*ch[t3]+wa[waoff+idij]*ch[t3-1];
+					}
+					t2+=ido;
+				}
+			}
+		} else {
+
+			is= -ido-1;
+			t1=0;
+			for(j=1;j<ip;j++){
+				is+=ido;
+				t1+=t0;
+				idij=is;
+				t2=t1;
+				for(i=2;i<ido;i+=2){
+					t2+=2;
+					idij+=2;
+					t3=t2;
+					for(k=0;k<l1;k++){
+						c1[t3-1]=wa[waoff+idij-1]*ch[t3-1]-wa[waoff+idij]*ch[t3];
+						c1[t3]=wa[waoff+idij-1]*ch[t3]+wa[waoff+idij]*ch[t3-1];
+						t3+=ido;
+					}
+				}
+			}
+		}
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/drft_lookup.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_nearestmatch.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/encode_aux_nearestmatch.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/encode_aux_nearestmatch.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,58 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class encode_aux_nearestmatch {
+
+	// pre-calculated partitioning tree
+
+	int[] ptr0;		// long *ptr0
+	int[] ptr1;		// long *ptr1
+
+	int[] p;		// long *p // decision points (each is an entry)
+	int[] q;		// long *q // decision points (each is an entry)
+	int aux;		// long aux // number of tree entries
+	int alloc;		// long alloc
+
+
+	public encode_aux_nearestmatch( int[] _ptr0, int[] _ptr1, int[] _p, int[] _q, int _aux, int _alloc ) {
+
+		if ( _ptr0 == null )
+			ptr0 = null;
+		else
+			ptr0 = (int[])_ptr0.clone();
+
+		if ( _ptr1 == null )
+			ptr1 = null;
+		else
+			ptr1 = (int[])_ptr1.clone();
+
+		if ( _p == null )
+			p = null;
+		else
+			p = (int[])_p.clone();
+
+		if ( _q == null )
+			q = null;
+		else
+			q = (int[])_q.clone();
+
+		aux = _aux;
+		alloc = _alloc;
+	}
+
+	public encode_aux_nearestmatch( encode_aux_nearestmatch src ) {
+
+		this( src.ptr0, src.ptr1, src.p, src.q, src.aux, src.alloc );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_nearestmatch.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_pigeonhole.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/encode_aux_pigeonhole.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/encode_aux_pigeonhole.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,65 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class encode_aux_pigeonhole {
+
+	float min;
+	float del;
+
+	int mapentries;
+	int quantvals;
+	int[] pigeonmap;	// long *pigeonmap
+
+	int fittotal;		// long fittotal
+	int[] fitlist;		// long *fitlist
+	int[] fitmap;		// long *fitmap
+	int[] fitlength;	// long *fitlength
+
+
+	public encode_aux_pigeonhole( float _min, float _del, int _mapentries, int _quantvals, int[] _pigeonmap, int _fittotal, int[] _fitlist, int[] _fitmap, int[] _fitlength ) {
+
+		min = _min;
+		del = _del;
+
+		mapentries = _mapentries;
+		quantvals = _quantvals;
+
+		if ( _pigeonmap == null )
+			pigeonmap = null;
+		else
+			pigeonmap = (int[])_pigeonmap.clone();
+
+		fittotal = _fittotal;
+
+		if ( _fitlist == null )
+			fitlist = null;
+		else
+			fitlist = (int[])_fitlist.clone();
+
+		if ( _fitmap == null )
+			fitmap = null;
+		else
+			fitmap = (int[])_fitmap.clone();
+
+		if ( _fitlength == null )
+			fitlength = null;
+		else
+			fitlength = (int[])_fitlength.clone();
+	}
+
+	public encode_aux_pigeonhole( encode_aux_pigeonhole src ) {
+
+		this( src.min, src.del, src.mapentries, src.quantvals, src.pigeonmap, src.fittotal, src.fitlist, src.fitmap, src.fitlength );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_pigeonhole.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_threshmatch.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/encode_aux_threshmatch.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/encode_aux_threshmatch.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,43 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class encode_aux_threshmatch {
+
+	float[] quantthresh;
+	int[] quantmap;			// long *quantmap
+	int quantvals;
+	int threshvals;
+
+
+	public encode_aux_threshmatch( float[] _quantthresh, int[] _quantmap, int _quantvals, int _threshvals ) {
+
+		if ( _quantthresh == null )
+			quantthresh = null;
+		else
+			quantthresh = (float[])_quantthresh.clone();
+
+		if ( _quantmap == null )
+			quantmap = null;
+		else
+			quantmap = (int[])_quantmap.clone();
+
+		quantvals = _quantvals;
+		threshvals = _threshvals;
+	}
+
+	public encode_aux_threshmatch( encode_aux_threshmatch src ) {
+
+		this( src.quantthresh, src.quantmap, src.quantvals, src.threshvals );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/encode_aux_threshmatch.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/envelope_band.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/envelope_band.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/envelope_band.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,40 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class envelope_band {
+
+	int begin;
+	int end;
+	float[] window;
+	float total;
+
+
+	public envelope_band( int _begin, int _end, float[] _window, float _total ) {
+
+		begin = _begin;
+		end = _end;
+
+		window = new float[ _window.length ];
+		System.arraycopy( _window, 0, window, 0, _window.length );
+
+		total = _total;
+	}
+
+	public envelope_band( envelope_band src ) {
+
+		this( src.begin, src.end, src.window, src.total );
+	}
+
+	public envelope_band() {}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/envelope_band.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/envelope_filter_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/envelope_filter_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/envelope_filter_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,54 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class envelope_filter_state {
+
+	float[] ampbuf;
+	int ampptr;
+
+	float[] nearDC;
+	float nearDC_acc;
+	float nearDC_partialacc;
+	int nearptr;
+
+
+	public envelope_filter_state( float[] _ampbuf, int _ampptr, float[] _nearDC, float _nearDC_acc, float _nearDC_partialacc, int _nearptr ) {
+
+		ampbuf = new float[ VE_AMP ];
+		System.arraycopy( _ampbuf, 0, ampbuf, 0, _ampbuf.length );
+
+		ampptr = _ampptr;
+
+		nearDC = new float[ VE_NEARDC ];
+		System.arraycopy( _nearDC, 0, nearDC, 0, _nearDC.length );
+
+		nearDC_acc = _nearDC_acc;
+		nearDC_partialacc = _nearDC_partialacc;
+		nearptr = _nearptr;
+	}
+
+	public envelope_filter_state( envelope_filter_state src ) {
+
+		this( src.ampbuf, src.ampptr, src.nearDC, src.nearDC_acc, src.nearDC_partialacc, src.nearptr );
+	}
+	
+	public envelope_filter_state() {
+		
+		ampbuf = new float[ VE_AMP ];
+		
+		nearDC = new float[ VE_NEARDC ];
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/envelope_filter_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/envelope_lookup.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/envelope_lookup.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/envelope_lookup.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,274 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class envelope_lookup {
+
+	int ch;
+	int winlength;
+	int searchstep;
+	float minenergy;
+
+	mdct_lookup mdct;
+	float[] mdct_win;
+
+	envelope_band[] band;		// VE_BANDS;
+	envelope_filter_state[] filter;	// *filter;
+	int stretch;
+
+	int[] mark;
+
+	int storage;
+	int current;
+	int curmark;
+	int cursor;
+
+
+	public envelope_lookup( int _ch, int _winlength, int _searchstep, float _minenergy, mdct_lookup _mdct, float[] _mdct_win,
+				envelope_band[] _band, envelope_filter_state[] _filter, int _stretch, int[] _mark, int _storage, int _current, int _curmark, int _cursor ) {
+
+		ch = _ch;
+		winlength = _winlength;
+		searchstep = _searchstep;
+		minenergy = _minenergy;
+
+		mdct = _mdct;
+
+		mdct_win = new float[ _mdct_win.length ];
+		System.arraycopy( _mdct_win, 0, mdct_win, 0, _mdct_win.length );
+
+		band = new envelope_band[ VE_BANDS ];
+		System.arraycopy( _band, 0, band, 0, _band.length );
+
+		filter = _filter;
+		stretch = _stretch;
+
+		mark = new int[ _mark.length ];
+		System.arraycopy( _mark, 0, mark, 0, _mark.length );
+
+		storage = _storage;
+		current = _current;
+		curmark = _curmark;
+		cursor = _cursor;
+	}
+
+	public envelope_lookup( envelope_lookup src ) {
+
+		this( src.ch, src.winlength, src.searchstep, src.minenergy, src.mdct, src.mdct_win, src.band, src.filter, src.stretch, src.mark, src.storage, src.current, src.curmark, src.cursor );
+	}
+
+	public envelope_lookup( vorbis_info _vi ) {
+
+		ch = _vi.channels;
+		winlength = 128;
+		searchstep = 64; // not random
+		minenergy = _vi.codec_setup.psy_g_param.preecho_minenergy;
+
+		int n = winlength;
+
+		storage = 128;
+		cursor = _vi.codec_setup.blocksizes[1]/2;
+
+		// mdct_win = _ogg_calloc(n,sizeof(*mdct_win));
+		mdct_win = new float[ n ];
+		mdct = new mdct_lookup();
+		mdct.mdct_init( n );
+
+		for( int i=0; i<n; i++ ) {
+			mdct_win[i] = new Double( Math.sin( i/(n-1.)*M_PI ) ).floatValue();
+			mdct_win[i] *= mdct_win[i];
+		}
+
+		band = new envelope_band[ VE_BANDS ];
+
+		for (int i=0; i<VE_BANDS; i++)
+			band[i] = new envelope_band();
+
+		band[0].begin=2;  band[0].end=4;
+		band[1].begin=4;  band[1].end=5;
+		band[2].begin=6;  band[2].end=6;
+		band[3].begin=9;  band[3].end=8;
+		band[4].begin=13;  band[4].end=8;
+		band[5].begin=17;  band[5].end=8;
+		band[6].begin=22;  band[6].end=8;
+
+		for( int j=0; j<VE_BANDS; j++) {
+
+			n = band[j].end;
+
+			// band[j].window = _ogg_malloc(n*sizeof(*band[0].window));
+			band[j].window = new float[ n ];
+
+			for ( int i=0; i<n; i++ ) {
+				band[j].window[i] = new Double( Math.sin( (i+.5)/n*M_PI ) ).floatValue();
+				band[j].total += band[j].window[i];
+			}
+			band[j].total = 1.0f / band[j].total;
+		}
+  
+		// filter=_ogg_calloc(VE_BANDS*ch,sizeof(*filter));
+		// mark=_ogg_calloc(storage,sizeof(*mark));
+
+		filter = new envelope_filter_state[ VE_BANDS*ch ];
+		for ( int i=0; i < VE_BANDS*ch; i++ )
+			filter[i] = new envelope_filter_state();
+		
+		mark = new int[ storage ];
+	}
+	
+	public int _ve_amp( vorbis_info_psy_global gi, float[] data, int offset1, envelope_band[] bands, envelope_filter_state[] filters, int offset2, int pos ) {
+		
+		int n = winlength;
+		int ret=0;
+		int i,j;
+		float decay;
+		
+		/* we want to have a 'minimum bar' for energy, else we're just
+		 * basing blocks on quantization noise that outweighs the signal
+		 * itself (for low power signals) */
+		
+		float minV = minenergy;
+		// float *vec=alloca(n*sizeof(*vec));
+		float[] vec = new float[ n ];
+		
+		/* stretch is used to gradually lengthen the number of windows
+		 * considered prevoius-to-potential-trigger */
+// local OOP variable rename stretch
+		int stretch_local = Math.max( VE_MINSTRETCH, stretch/2 );
+		float penalty = gi.stretch_penalty-(stretch/2-VE_MINSTRETCH);
+		if ( penalty < 0.f )
+			penalty = 0.f;
+		if (penalty > gi.stretch_penalty )
+			penalty = gi.stretch_penalty;
+		
+		/*_analysis_output_always("lpcm",seq2,data,n,0,0,totalshift+pos*ve->searchstep);*/
+		
+		// window and transform
+		for ( i=0; i < n; i++ )
+			vec[i] = data[offset1+i]*mdct_win[i];
+		
+		mdct.mdct_forward( vec, vec );
+//		mdct.out( "", null );
+		
+		/*_analysis_output_always("mdct",seq2,vec,n/2,0,1,0); */
+		
+		/* near-DC spreading function; this has nothing to do with
+		 * psychoacoustics, just sidelobe leakage and window size */
+		float temp = vec[0]*vec[0]+.7f*vec[1]*vec[1]+.2f*vec[2]*vec[2];
+		int ptr = filters[offset2].nearptr;
+
+	    // the accumulation is regularly refreshed from scratch to avoid floating point creep
+		if ( ptr == 0 ) {
+			decay = filters[offset2].nearDC_acc = filters[offset2].nearDC_partialacc+temp;
+			filters[offset2].nearDC_partialacc = temp;
+		} else {
+			decay = filters[offset2].nearDC_acc += temp;
+			filters[offset2].nearDC_partialacc += temp;
+		}
+		filters[offset2].nearDC_acc -= filters[offset2].nearDC[ptr];
+		filters[offset2].nearDC[ptr] = temp;
+		
+		decay *= (1./(VE_NEARDC+1));
+		filters[offset2].nearptr++;
+		if ( filters[offset2].nearptr >= VE_NEARDC )
+			filters[offset2].nearptr = 0;
+		decay = todB(decay)*.5f-15.f;
+		
+		/* perform spreading and limiting, also smooth the spectrum.  yes, the MDCT results
+		 * in all real coefficients, but it still *behaves* like real/imaginary pairs */
+		for ( i=0; i < n/2; i+=2 ) {
+			float val = vec[i]*vec[i]+vec[i+1]*vec[i+1];
+			val = todB(val)*.5f;
+			if ( val < decay )
+				val=decay;
+			if (val < minV)
+				val=minV;
+			vec[i>>1] = val;
+			decay-=8.;
+		}
+		
+		/*_analysis_output_always("spread",seq2++,vec,n/4,0,0,0);*/
+		
+		// perform preecho/postecho triggering by band
+		for ( j=0; j < VE_BANDS; j++ ) {
+			
+			float acc = 0.f;
+			float valmax;
+			float valmin;
+			
+			// accumulate amplitude
+			for ( i=0; i < bands[j].end; i++ )
+				acc += vec[i+bands[j].begin]*bands[j].window[i];
+			
+			acc *= bands[j].total;
+			
+			// convert amplitude to delta
+
+// local OOP variable rename
+// protected variable name this
+			int p,_this = filters[offset2+j].ampptr;
+			float postmax,postmin,premax = -99999.f, premin = 99999.f;
+			
+			p=_this;
+			p--;
+			if ( p < 0 )
+				p += VE_AMP;
+			postmax = Math.max( acc, filters[offset2+j].ampbuf[p] );
+			postmin = Math.min( acc, filters[offset2+j].ampbuf[p] );
+			
+			for ( i=0; i < stretch_local; i++ ) {
+				
+				p--;
+				if ( p < 0)
+					p += VE_AMP;
+				premax = Math.max( premax, filters[offset2+j].ampbuf[p] );
+				premin = Math.min( premin, filters[offset2+j].ampbuf[p] );
+			}
+			
+			valmin = postmin-premin;
+			valmax = postmax-premax;
+			
+			/*filters[j].markers[pos]=valmax;*/
+			filters[offset2+j].ampbuf[_this] = acc;
+			filters[offset2+j].ampptr++;
+			if (filters[offset2+j].ampptr >= VE_AMP )
+				filters[offset2+j].ampptr = 0;
+			
+			// look at min/max, decide trigger
+			if ( valmax > gi.preecho_thresh[j]+penalty ) {
+				ret|=1;
+				ret|=4;
+			}
+			if ( valmin < gi.postecho_thresh[j]-penalty )
+				ret|=2;
+		}
+		
+		return ret;
+	}
+	
+	public void _ve_envelope_shift( int shift ) {
+		
+		int smallsize = current/searchstep+VE_POST; // adjust for placing marks ahead of ve->current
+		int smallshift = shift/searchstep;
+		
+		// memmove(e->mark,e->mark+smallshift,(smallsize-smallshift)*sizeof(*e->mark));
+		System.arraycopy( mark, smallshift, mark, 0, smallsize - smallshift );
+		
+		current -= shift;
+		if ( curmark >= 0 )
+			curmark -= shift;
+		cursor -= shift;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/envelope_lookup.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/highlevel_byblocktype.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/highlevel_byblocktype.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/highlevel_byblocktype.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,30 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class highlevel_byblocktype {
+
+	float tone_mask_setting;
+	float tone_peaklimit_setting;
+	float noise_bias_setting;
+	float noise_compand_setting;
+
+
+	public highlevel_byblocktype( float _tone_mask_setting, float _tone_peaklimit_setting, float _noise_bias_setting, float _noise_compand_setting ) {
+
+		tone_mask_setting = _tone_mask_setting;
+		tone_peaklimit_setting = _tone_peaklimit_setting;
+		noise_bias_setting = _noise_bias_setting;
+		noise_compand_setting = _noise_compand_setting;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/highlevel_byblocktype.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/highlevel_encode_setup.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/highlevel_encode_setup.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/highlevel_encode_setup.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,56 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+// NOTE - rewritten in Vorbislib 1.1.2
+
+class highlevel_encode_setup {
+
+	ve_setup_data_template setup;	// void *setup
+	int set_in_stone;
+
+	float base_setting;				// double base_setting
+	float long_setting;				// double long_setting
+	float short_setting;			// double short_setting
+	float impulse_noisetune;		// double impulse_noisetune
+
+	int managed;
+	int bitrate_min;				// long bitrate_min
+	int bitrate_av;					// long bitrate_av
+	float bitrate_av_damp;			// double bitrate_av_damp
+	int bitrate_max;				// long bitrate_max
+	int bitrate_reservoir;			// long bitrate_reservoir
+	float bitrate_reservoir_bias;	// double bitrate_reservoir_bias
+
+	int impulse_block_p;
+	int noise_normalize_p;
+
+	float stereo_point_setting;		// double stereo_point_setting
+	float lowpass_kHz;				// double lowpass_kHz
+
+	float ath_floating_dB;			// double ath_floating_dB
+	float ath_absolute_dB;			// double ath_absolute_dB
+
+	float amplitude_track_dBpersec;	// double amplitude_track_dBpersec
+	float trigger_setting;			// double trigger_setting
+
+	highlevel_byblocktype[] block;	// highlevel_byblocktype block[4] // padding, impulse, transition, long
+
+
+	public highlevel_encode_setup() {
+
+		setup = null;
+
+		block = new highlevel_byblocktype[4];
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/highlevel_encode_setup.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/lsfit_acc.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/lsfit_acc.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/lsfit_acc.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,29 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class lsfit_acc {
+	
+	int x0;
+	int x1;
+	
+	int xa;
+	int ya;
+	int x2a;
+	int y2a;
+	int xya; 
+	int an;
+	
+	public lsfit_acc() {}
+
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/lsfit_acc.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/mdct_lookup.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/mdct_lookup.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/mdct_lookup.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,698 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class mdct_lookup {
+
+	int n;
+	int log2n;
+  
+	float[] trig;
+	int[] bitrev;
+
+	float scale;
+
+
+	public mdct_lookup() {}
+
+	public mdct_lookup( int _n, int _log2n, float[] _trig, int[] _bitrev, float _scale ) {
+
+		n = _n;
+		log2n = _log2n;
+
+		trig = (float[])_trig.clone();
+		bitrev = (int[])_bitrev.clone();
+
+		scale = _scale;
+	}
+
+	public mdct_lookup( mdct_lookup src ) {
+
+		this( src.n, src.log2n, src.trig, src.bitrev, src.scale );
+	}
+
+	public void mdct_init( int _n ) {
+
+		n = _n;
+		log2n = new Double( Math.rint( Math.log( new Integer( n ).floatValue() ) / Math.log( 2.f ) ) ).intValue();
+
+		// DATA_TYPE *T=_ogg_malloc(sizeof(*T)*(n+n/4));
+		trig = new float[ n+n/4 ];
+
+		// int   *bitrev=_ogg_malloc(sizeof(*bitrev)*(n/4));
+		bitrev = new int[ n/4 ];
+
+		int i, j;
+		int n2 = n >> 1;
+
+		// trig lookups...
+		for ( i=0; i < n/4; i++ ) {
+			trig[i*2] = new Double( Math.cos( (M_PI/n)*(4*i) ) ).floatValue();
+			trig[i*2+1] = new Double( -Math.sin( (M_PI/n)*(4*i) ) ).floatValue();
+			trig[n2+i*2] = new Double( Math.cos( (M_PI/(2*n))*(2*i+1) ) ).floatValue();
+			trig[n2+i*2+1] = new Double( Math.sin( (M_PI/(2*n))*(2*i+1) ) ).floatValue();
+		}
+
+		for ( i=0; i < n/8; i++ ) {
+			trig[n+i*2] = new Double( Math.cos( (M_PI/n)*(4*i+2) )*.5 ).floatValue();
+			trig[n+i*2+1] = new Double( -Math.sin( (M_PI/n)*(4*i+2) )*.5 ).floatValue();
+		}
+
+		// bitreverse lookup...
+		{
+			int mask = (1<<(log2n-1))-1;
+			int msb = 1<<(log2n-2);
+			for ( i=0; i < n/8; i++ ) {
+				int acc=0;
+				for ( j=0; (msb>>j) != 0; j++)
+					if ( ((msb>>j)&i) != 0 )
+						acc|=1<<j;
+				bitrev[i*2]=((~acc)&mask)-1;
+				bitrev[i*2+1]=acc;
+
+			}
+		}
+		scale = 4.f/n;
+	}
+
+	// 8 point butterfly (in place, 4 register)
+	private void mdct_butterfly_8( float[] x, int off) {
+
+		float r0   = x[off+6] + x[off+2];
+		float r1   = x[off+6] - x[off+2];
+		float r2   = x[off+4] + x[off+0];
+		float r3   = x[off+4] - x[off+0];
+
+		x[off+6] = r0   + r2;
+		x[off+4] = r0   - r2;
+
+		r0   = x[off+5] - x[off+1];
+		r2   = x[off+7] - x[off+3];
+		x[off+0] = r1   + r0;
+		x[off+2] = r1   - r0;
+
+		r0   = x[off+5] + x[off+1];
+		r1   = x[off+7] + x[off+3];
+		x[off+3] = r2   + r3;
+		x[off+1] = r2   - r3;
+		x[off+7] = r1   + r0;
+		x[off+5] = r1   - r0;
+	}
+
+	// 16 point butterfly (in place, 4 register)
+	private void mdct_butterfly_16( float[] x, int off ) {
+
+		float r0     = x[off+1]  - x[off+9];
+		float r1     = x[off+0]  - x[off+8];
+
+		x[off+8]  += x[off+0];
+		x[off+9]  += x[off+1];
+		x[off+0]   = ((r0   + r1) * cPI2_8);
+		x[off+1]   = ((r0   - r1) * cPI2_8);
+
+		r0     = x[off+3]  - x[off+11];
+		r1     = x[off+10] - x[off+2];
+		x[off+10] += x[off+2];
+		x[off+11] += x[off+3];
+		x[off+2]   = r0;
+		x[off+3]   = r1;
+
+		r0     = x[off+12] - x[off+4];
+		r1     = x[off+13] - x[off+5];
+		x[off+12] += x[off+4];
+		x[off+13] += x[off+5];
+		x[off+4]   = ((r0   - r1) * cPI2_8);
+		x[off+5]   = ((r0   + r1) * cPI2_8);
+
+		r0     = x[off+14] - x[off+6];
+		r1     = x[off+15] - x[off+7];
+		x[off+14] += x[off+6];
+		x[off+15] += x[off+7];
+		x[off+6]  = r0;
+		x[off+7]  = r1;
+
+		mdct_butterfly_8( x, 0 + off );
+		mdct_butterfly_8( x, 8 + off );
+	}
+
+	// 32 point butterfly (in place, 4 register)
+	private void mdct_butterfly_32( float[] x, int off ) {
+
+		float r0     = x[off+30] - x[off+14];
+		float r1     = x[off+31] - x[off+15];
+
+		x[off+30] +=         x[off+14];           
+		x[off+31] +=         x[off+15];
+		x[off+14]  =         r0;              
+		x[off+15]  =         r1;
+
+		r0     = x[off+28] - x[off+12];   
+		r1     = x[off+29] - x[off+13];
+		x[off+28] +=         x[off+12];           
+		x[off+29] +=         x[off+13];
+		x[off+12]  = ( r0 * cPI1_8  -  r1 * cPI3_8 );
+		x[off+13]  = ( r0 * cPI3_8  +  r1 * cPI1_8 );
+
+		r0     = x[off+26] - x[off+10];
+		r1     = x[off+27] - x[off+11];
+		x[off+26] +=         x[off+10];
+		x[off+27] +=         x[off+11];
+		x[off+10]  = (( r0  - r1 ) * cPI2_8);
+		x[off+11]  = (( r0  + r1 ) * cPI2_8);
+
+		r0     = x[off+24] - x[off+8];
+		r1     = x[off+25] - x[off+9];
+		x[off+24] += x[off+8];
+		x[off+25] += x[off+9];
+		x[off+8]   = ( r0 * cPI3_8  -  r1 * cPI1_8 );
+		x[off+9]   = ( r1 * cPI3_8  +  r0 * cPI1_8 );
+
+		r0     = x[off+22] - x[off+6];
+		r1     = x[off+7]  - x[off+23];
+		x[off+22] += x[off+6];
+		x[off+23] += x[off+7];
+		x[off+6]   = r1;
+		x[off+7]   = r0;
+
+		r0     = x[off+4]  - x[off+20];
+		r1     = x[off+5]  - x[off+21];
+		x[off+20] += x[off+4];
+		x[off+21] += x[off+5];
+		x[off+4]   = ( r1 * cPI1_8  +  r0 * cPI3_8 );
+		x[off+5]   = ( r1 * cPI3_8  -  r0 * cPI1_8 );
+
+		r0     = x[off+2]  - x[off+18];
+		r1     = x[off+3]  - x[off+19];
+		x[off+18] += x[off+2];
+		x[off+19] += x[off+3];
+		x[off+2]   = (( r1  + r0 ) * cPI2_8);
+		x[off+3]   = (( r1  - r0 ) * cPI2_8);
+
+		r0     = x[off+0]  - x[off+16];
+		r1     = x[off+1]  - x[off+17];
+		x[off+16] += x[off+0];
+		x[off+17] += x[off+1];
+		x[off+0]   = ( r1 * cPI3_8  +  r0 * cPI1_8 );
+		x[off+1]   = ( r1 * cPI1_8  -  r0 * cPI3_8 );
+
+		mdct_butterfly_16( x, 0 + off );
+		mdct_butterfly_16( x, 16 + off );
+	}
+
+	// N point first stage butterfly (in place, 2 register)
+	private void mdct_butterfly_first( float[] T, float[] x, int off, int points ) {
+
+		// float *x1        = x          + points      - 8;
+		int x1 = off + points      - 8;
+
+		// float *x2        = x          + (points>>1) - 8;
+		int x2 = off + (points>>1) - 8;
+
+		int t = 0;
+
+		float   r0;
+		float   r1;
+
+		do {
+
+			r0      = x[x1+6]      -  x[x2+6];
+			r1      = x[x1+7]      -  x[x2+7];
+			x[x1+6]  += x[x2+6];
+			x[x1+7]  += x[x2+7];
+			x[x2+6]   = (r1 * T[t+1]  +  r0 * T[t+0]);
+			x[x2+7]   = (r1 * T[t+0]  -  r0 * T[t+1]);
+
+			r0      = x[x1+4]      -  x[x2+4];
+			r1      = x[x1+5]      -  x[x2+5];
+			x[x1+4]  += x[x2+4];
+			x[x1+5]  += x[x2+5];
+			x[x2+4]   = (r1 * T[t+5]  +  r0 * T[t+4]);
+			x[x2+5]   = (r1 * T[t+4]  -  r0 * T[t+5]);
+
+			r0      = x[x1+2]      -  x[x2+2];
+			r1      = x[x1+3]      -  x[x2+3];
+			x[x1+2]  += x[x2+2];
+			x[x1+3]  += x[x2+3];
+			x[x2+2]   = (r1 * T[t+9]  +  r0 * T[t+8]);
+			x[x2+3]   = (r1 * T[t+8]  -  r0 * T[t+9]);
+
+			r0      = x[x1+0]      -  x[x2+0];
+			r1      = x[x1+1]      -  x[x2+1];
+			x[x1+0]  += x[x2+0];
+			x[x1+1]  += x[x2+1];
+			x[x2+0]   = (r1 * T[t+13] +  r0 * T[t+12]);
+			x[x2+1]   = (r1 * T[t+12] -  r0 * T[t+13]);
+
+			x1 -= 8;
+			x2 -= 8;
+			t += 16;
+
+		} while ( x2 >= off );
+		// } while ( x2 >= x );
+	}
+
+	// N/stage point generic N stage butterfly (in place, 2 register)
+	private void mdct_butterfly_generic( float[] T, float[] x, int off, int points, int trigint ) {
+
+		// float *x1        = x          + points      - 8;
+		int x1 = off + points      - 8;
+
+		// float *x2        = x          + (points>>1) - 8;
+		int x2 = off + (points>>1) - 8;
+
+		int t = 0;
+
+		float   r0;
+		float   r1;
+
+		do {
+
+			r0      = x[x1+6]      -  x[x2+6];
+			r1      = x[x1+7]      -  x[x2+7];
+			x[x1+6]  += x[x2+6];
+			x[x1+7]  += x[x2+7];
+			x[x2+6]   = (r1 * T[t+1]  +  r0 * T[t+0]);
+			x[x2+7]   = (r1 * T[t+0]  -  r0 * T[t+1]);
+
+			t += trigint;
+
+			r0      = x[x1+4]      -  x[x2+4];
+			r1      = x[x1+5]      -  x[x2+5];
+			x[x1+4]  += x[x2+4];
+			x[x1+5]  += x[x2+5];
+			x[x2+4]   = (r1 * T[t+1]  +  r0 * T[t+0]);
+			x[x2+5]   = (r1 * T[t+0]  -  r0 * T[t+1]);
+
+			t += trigint;
+
+			r0      = x[x1+2]      -  x[x2+2];
+			r1      = x[x1+3]      -  x[x2+3];
+			x[x1+2]  += x[x2+2];
+			x[x1+3]  += x[x2+3];
+			x[x2+2]   = (r1 * T[t+1]  +  r0 * T[t+0]);
+			x[x2+3]   = (r1 * T[t+0]  -  r0 * T[t+1]);
+
+			t += trigint;
+
+			r0      = x[x1+0]      -  x[x2+0];
+			r1      = x[x1+1]      -  x[x2+1];
+			x[x1+0]  += x[x2+0];
+			x[x1+1]  += x[x2+1];
+			x[x2+0]   = (r1 * T[t+1]  +  r0 * T[t+0]);
+			x[x2+1]   = (r1 * T[t+0]  -  r0 * T[t+1]);
+
+			t += trigint;
+			x1 -= 8;
+			x2 -= 8;
+
+		} while ( x2 >= off );
+		// } while ( x2 >= x );
+	}
+
+	private void mdct_butterflies( float[] x, int off, int points ) {
+
+		float[] T = trig;
+		int stages = log2n-5;
+		int i,j;
+
+		if ( --stages > 0 ) {
+			mdct_butterfly_first( T, x, off, points );
+		}
+
+		for ( i=1; --stages > 0; i++ ) {
+			for ( j=0; j < (1<<i); j++ )
+				mdct_butterfly_generic( T, x, off+((points>>i)*j), points>>i, 4<<i );
+		}
+
+		for ( j=0; j < points; j+=32 )
+			mdct_butterfly_32( x, off+j );
+	}
+
+	private void mdct_bitreverse( float[] x ) {
+
+		// float *w0      = x;
+		// float *w1      = x = w0+(n>>1);
+		// float *T       = init->trig+n;
+
+		int bit = 0;
+		int w0 = 0;
+		int w1 =  (n>>1);
+		int xoff = (n>>1);
+
+		int t = n;
+		float[] T = trig;
+
+		do{
+			// float *x0    = x+bit[0];
+			// float *x1    = x+bit[1];
+			int x0 = xoff + bitrev[ bit+0 ];
+			int x1 = xoff + bitrev[ bit+1 ];
+
+			float  r0     = x[x0+1]  - x[x1+1];
+			float  r1     = x[x0+0]  + x[x1+0];
+			float  r2     = (r1     * T[t+0]   + r0 * T[t+1]);
+			float  r3     = (r1     * T[t+1]   - r0 * T[t+0]);
+
+			w1    -= 4;
+
+			r0     = (x[x0+1] + x[x1+1]) * .5f;
+			r1     = (x[x0+0] - x[x1+0]) * .5f;
+
+			x[w0+0]  = r0     + r2;
+			x[w1+2]  = r0     - r2;
+			x[w0+1]  = r1     + r3;
+			x[w1+3]  = r3     - r1;
+
+			x0 = xoff + bitrev[ bit+2 ];
+			x1 = xoff + bitrev[ bit+3 ];
+
+			r0     = x[x0+1]  - x[x1+1];
+			r1     = x[x0+0]  + x[x1+0];
+			r2     = (r1     * T[t+2]   + r0 * T[t+3]);
+			r3     = (r1     * T[t+3]   - r0 * T[t+2]);
+
+			r0     = (x[x0+1] + x[x1+1]) * .5f;
+			r1     = (x[x0+0] - x[x1+0]) * .5f;
+      
+			x[w0+2]  = r0     + r2;
+			x[w1+0]  = r0     - r2;
+			x[w0+3]  = r1     + r3;
+			x[w1+1]  = r3     - r1;
+
+			t += 4;
+			bit += 4;
+			w0 += 4;
+
+		} while ( w0 < w1 );
+	}
+
+	public void mdct_backward( float[] in, float[] out ) {
+
+		int n2=n>>1;
+		int n4=n>>2;
+
+		// rotate
+
+		// float *iX = in+n2-7;
+		// float *oX = out+n2+n4;
+
+		float[] T  = trig;
+		int iX = n2-7;
+		int oX = n2+n4;
+		int t = n4;
+
+		do {
+			oX         -= 4;
+			out[oX+0]       = (-in[iX+2] * T[t+3] - in[iX+0]  * T[t+2]);
+			out[oX+1]       =  (in[iX+0] * T[t+3] - in[iX+2]  * T[t+2]);
+			out[oX+2]       = (-in[iX+6] * T[t+1] - in[iX+4]  * T[t+0]);
+			out[oX+3]       =  (in[iX+4] * T[t+1] - in[iX+6]  * T[t+0]);
+			iX         -= 8;
+			t          += 4;
+		} while( iX >= 0 );
+
+		// float *iX = in+n2-8;
+		// float *oX = out+n2+n4;
+
+		iX = n2-8;
+		oX = n2+n4;
+		t = n4;
+
+		do {
+			t          -= 4;
+			out[oX+0]       =   (in[iX+4] * T[t+3] + in[iX+6] * T[t+2]);
+			out[oX+1]       =   (in[iX+4] * T[t+2] - in[iX+6] * T[t+3]);
+			out[oX+2]       =   (in[iX+0] * T[t+1] + in[iX+2] * T[t+0]);
+			out[oX+3]       =   (in[iX+0] * T[t+0] - in[iX+2] * T[t+1]);
+			iX         -= 8;
+			oX         += 4;
+		} while( iX >= 0 );
+
+		mdct_butterflies(out, n2, n2);
+		mdct_bitreverse(out);
+
+		// roatate + window
+
+		// float *oX1=out+n2+n4;
+		// float *oX2=out+n2+n4;
+		// float *iX =out;
+		// T =init->trig+n2;
+
+		int oX1 = n2+n4;
+		int oX2 = n2+n4;
+		iX = 0;
+		t = n2;
+    
+		do {
+			oX1-=4;
+
+			out[oX1+3]  =   (out[iX+0] * T[t+1] - out[iX+1] * T[t+0]);
+			out[oX2+0]  = - (out[iX+0] * T[t+0] + out[iX+1] * T[t+1]);
+
+			out[oX1+2]  =   (out[iX+2] * T[t+3] - out[iX+3] * T[t+2]);
+			out[oX2+1]  = - (out[iX+2] * T[t+2] + out[iX+3] * T[t+3]);
+
+			out[oX1+1]  =   (out[iX+4] * T[t+5] - out[iX+5] * T[t+4]);
+			out[oX2+2]  = - (out[iX+4] * T[t+4] + out[iX+5] * T[t+5]);
+
+			out[oX1+0]  =   (out[iX+6] * T[t+7] - out[iX+7] * T[t+6]);
+			out[oX2+3]  = - (out[iX+6] * T[t+6] + out[iX+7] * T[t+7]);
+
+			oX2 += 4;
+			iX += 8;
+			t += 8;
+
+		} while( iX < oX1 );
+
+		// float *oX1=out+n4;
+		// float *oX2=oX1;
+		// float *iX =out+n2+n4;
+
+		iX = n2+n4;
+		oX1 = n4;
+		oX2 = oX1;
+
+		do {
+			oX1-=4;
+			iX-=4;
+
+			out[oX2+0] = -(out[oX1+3] = out[iX+3]);
+			out[oX2+1] = -(out[oX1+2] = out[iX+2]);
+			out[oX2+2] = -(out[oX1+1] = out[iX+1]);
+			out[oX2+3] = -(out[oX1+0] = out[iX+0]);
+
+			oX2+=4;
+
+		} while( oX2 < iX );
+
+		// float *oX1=out+n2+n4;
+		// float *oX2=out+n2;
+		// float *iX =out+n2+n4;
+
+		iX=n2+n4;
+		oX1=n2+n4;
+		oX2=n2;
+
+		do {
+			oX1-=4;
+			out[oX1+0]= out[iX+3];
+			out[oX1+1]= out[iX+2];
+			out[oX1+2]= out[iX+1];
+			out[oX1+3]= out[iX+0];
+			iX+=4;
+
+		} while( oX1 > oX2 );
+	}
+
+	public void mdct_forward( float[] in, float[] out ) {
+
+		int n2=n>>1;
+		int n4=n>>2;
+		int n8=n>>3;
+
+		float[] T  = trig;
+
+		// float *w=alloca(n*sizeof(*w)); // forward needs working space
+		float[] w = new float[ n ];
+		// float *w2=w+n2;
+		int w2 = n2;
+
+		// rotate
+
+		// window + rotate + step 1
+  
+		float r0;
+		float r1;
+
+		// float *x0=in+n2+n4;
+		// float *x1=x0+1;
+		// float *T=init->trig+n2;
+
+		int x0 = n2+n4;
+		int x1 = x0+1;
+		int t = n2;
+  
+		int i=0;
+  
+		for( i=0; i < n8; i+=2 ) {
+
+			x0 -=4;
+			t-=2;
+			r0= in[x0+2] + in[x1+0];
+			r1= in[x0+0] + in[x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+
+		// x1=in+1;
+		x1 = 1;
+  
+		for( ; i < n2-n8; i+=2 ) {
+
+			t-=2;
+			x0 -=4;
+			r0= in[x0+2] - in[x1+0];
+			r1= in[x0+0] - in[x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+    
+		// x0=in+n;
+		x0 = n;
+
+		for( ; i < n2; i+=2 ) {
+
+			t-=2;
+			x0 -=4;
+			r0= -in[x0+2] - in[x1+0];
+			r1= -in[x0+0] - in[x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+
+		mdct_butterflies( w, n2,n2);
+		mdct_bitreverse(w);
+
+		// roatate + window
+
+		// T=init->trig+n2;
+		// x0=out+n2;
+		t = n2;
+		x0 = n2;
+		int w1 = 0;
+
+		for( i=0; i < n4; i++) {
+
+			x0--;
+			out[i] =((w[w1+0]*T[t+0]+w[w1+1]*T[t+1])*scale);
+			out[x0+0]  =((w[w1+0]*T[t+1]-w[w1+1]*T[t+0])*scale);
+			w1+=2;
+			t+=2;
+		}
+	}
+	
+	public void mdct_forward_offset( float[] in, int offset, float[] out, int out_offset ) {
+
+		int n2=n>>1;
+		int n4=n>>2;
+		int n8=n>>3;
+
+		float[] T  = trig;
+
+		// float *w=alloca(n*sizeof(*w)); // forward needs working space
+		float[] w = new float[ n ];
+		// float *w2=w+n2;
+		int w2 = n2;
+
+		// rotate
+
+		// window + rotate + step 1
+  
+		float r0;
+		float r1;
+
+		// float *x0=in+n2+n4;
+		// float *x1=x0+1;
+		// float *T=init->trig+n2;
+
+		int x0 = n2+n4;
+		int x1 = x0+1;
+		int t = n2;
+  
+		int i=0;
+  
+		for( i=0; i < n8; i+=2 ) {
+
+			x0 -=4;
+			t-=2;
+			r0= in[offset+x0+2] + in[offset+x1+0];
+			r1= in[offset+x0+0] + in[offset+x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+
+		// x1=in+1;
+		x1 = 1;
+  
+		for( ; i < n2-n8; i+=2 ) {
+
+			t-=2;
+			x0 -=4;
+			r0= in[offset+x0+2] - in[offset+x1+0];
+			r1= in[offset+x0+0] - in[offset+x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+    
+		// x0=in+n;
+		x0 = n;
+
+		for( ; i < n2; i+=2 ) {
+
+			t-=2;
+			x0 -=4;
+			r0= -in[offset+x0+2] - in[offset+x1+0];
+			r1= -in[offset+x0+0] - in[offset+x1+2];       
+			w[w2+i]=   (r1*T[t+1] + r0*T[t+0]);
+			w[w2+i+1]= (r1*T[t+0] - r0*T[t+1]);
+			x1 +=4;
+		}
+
+		mdct_butterflies( w, n2,n2);
+		mdct_bitreverse(w);
+
+		// roatate + window
+
+		// T=init->trig+n2;
+		// x0=out+n2;
+		t = n2;
+		x0 = n2;
+		int w1 = 0;
+
+		for( i=0; i < n4; i++) {
+
+			x0--;
+			out[out_offset+i] =((w[w1+0]*T[t+0]+w[w1+1]*T[t+1])*scale);
+			out[out_offset+x0+0]  =((w[w1+0]*T[t+1]-w[w1+1]*T[t+0])*scale);
+			w1+=2;
+			t+=2;
+		}
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/mdct_lookup.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/modes/setup_44.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/modes/setup_44.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/modes/setup_44.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,683 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis.modes;
+
+import org.xiph.libvorbis.*;
+import org.xiph.libvorbis.books.floor.*;
+import org.xiph.libvorbis.books.coupled.resbook_44.*;
+
+public class setup_44 {
+	
+	public ve_setup_data_template data;
+	
+	
+	static float[] rate_mapping_44_stereo = new float[] { 22500.f, 32000.f, 40000.f, 48000.f, 56000.f, 64000.f, 80000.f, 96000.f, 112000.f, 128000.f, 160000.f, 250001.f };
+	static float[] quality_mapping_44 = new float[] { -.1f, .0f, .1f, .2f, .3f, .4f, .5f, .6f, .7f, .8f, .9f, 1.0f };
+	
+	static int[] blocksize_short_44 = new int[] { 512, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256 };
+	static int[] blocksize_long_44 = new int[] { 4096, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048 };
+	
+	static att3[] _psy_tone_masteratt_44 = new att3[] {
+		
+		new att3( new int[] { 35,  21,   9},  0,    0), /* -1 */
+		new att3( new int[] { 30,  20,   8}, -2, 1.25f), /* 0 */
+		  /*  {{ 25,  14,   4},  0,    0}, *//* 1 */
+		new att3( new int[] { 25,  12,   2},  0,    0), /* 1 */
+		  /*  {{ 20,  10,  -2},  0,    0}, *//* 2 */
+		new att3( new int[] { 20,   9,  -3},  0,    0), /* 2 */
+		new att3( new int[] { 20,   9,  -4},  0,    0), /* 3 */
+		new att3( new int[] { 20,   9,  -4},  0,    0), /* 4 */
+		new att3( new int[] { 20,   6,  -6},  0,    0), /* 5 */
+		new att3( new int[] { 20,   3, -10},  0,    0), /* 6 */
+		new att3( new int[] { 18,   1, -14},  0,    0), /* 7 */
+		new att3( new int[] { 18,   0, -16},  0,    0), /* 8 */
+		new att3( new int[] { 18,  -2, -16},  0,    0), /* 9 */
+		new att3( new int[] { 12,  -2, -20},  0,    0), /* 10 */
+	};
+
+	static int[] _psy_tone_0dB = new int[] { 90, 90, 95, 95, 95, 95, 105, 105, 105, 105, 105, 105 };
+	static int[] _psy_tone_suppress = new int[] {  -20, -20, -20, -20, -20, -24, -30, -40, -40, -45, -45, -45 };
+
+	static vp_adjblock[] _vp_tonemask_adj_otherblock = new vp_adjblock[] {
+		
+		   /* 63     125     250     500       1       2       4       8      16 */
+		new vp_adjblock( new int[] { -3, -8,-13,-15,-10,-10, -9, -9, -9, -9, -9,  1,  1,  1,  1,  1,  1}), /* -1 */
+		/* {{-20,-20,-20,-20,-14,-12,-10, -8, -4,  0,  0, 10,  0,  0,  0,  0,  0}},    0 */
+		new vp_adjblock( new int[] { -4,-10,-14,-16,-14,-13,-12,-12,-11,-11,-10,  0,  0,  0,  0,  0,  0}), /* 0 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  5,  0,  0,  0,  0,  0}},    1 */
+		new vp_adjblock( new int[] { -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1,  0,  0,  0}), /* 1 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    2 */
+		new vp_adjblock( new int[] { -12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -5, -2, -1,  0,  0,  0}), /* 2 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    3 */
+		new vp_adjblock( new int[] { -15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2,  0,  0,  0}), /* 3 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    4 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7  -3, -1, -1 , 0}), /* 4 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    5 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7  -3, -1, -1 , 0}), /* 5 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    6 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2,  0}), /* 6 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    7 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 7 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    8 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 8 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    9 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 9 */
+		/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10,  0,  0,  0,  0,  0,  0,  0,  0}},    10 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 10 */
+	};
+
+	static vp_adjblock[] _vp_tonemask_adj_longblock = new vp_adjblock[] {
+		
+		   /* 63     125     250     500       1       2       4       8      16 */
+		new vp_adjblock( new int[] { -3, -8,-13,-15,-10,-10,-10,-10,-10,-10,-10,  0,  0,  0,  0,  0,  0}), /* -1 */
+		/* {{-15,-15,-15,-15,-10, -8, -4, -2,  0,  0,  0, 10,  0,  0,  0,  0,  0}},    0 */
+		new vp_adjblock( new int[] { -4,-10,-14,-16,-15,-14,-13,-12,-12,-12,-11, -1, -1, -1, -1, -1,  0}), /* 0 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  5,  0,  0,  0,  0,  0}},    1 */
+		new vp_adjblock( new int[] { -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1, -1, -1,  0}), /* 1 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    2 */
+		new vp_adjblock( new int[] { -12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -6, -3, -1, -1, -1,  0}), /* 2 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    3 */
+		new vp_adjblock( new int[] { -15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2, -1, -1,  0}), /* 3 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}}, *//* 4 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7  -3, -1, -1 , 0}), /* 4 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    5 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7  -3, -1, -1 , 0}), /* 5 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    6 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2,  0}), /* 6 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    7 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 7 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    8 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 8 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    9 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 9 */
+		/* {{-15,-15,-15,-15,-15,-12,-10, -8,  0,  0,  0,  0,  0,  0,  0,  0,  0}},    10 */
+		new vp_adjblock( new int[] { -16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2,  0}), /* 10 */
+	};
+
+	static noiseguard[] _psy_noiseguards_44 = new noiseguard[] {
+		
+		new noiseguard( 3, 3, 15 ),
+		new noiseguard( 3, 3, 15 ),
+		new noiseguard( 10, 10, 100 ),
+		new noiseguard( 10, 10, 100 ),
+	};
+
+	static noise3[] _psy_noisebias_impulse = new noise3[] {
+		
+		/*  63     125     250     500      1k      2k      4k      8k     16k*/
+		  /* -1 */
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  4,  8,  8,  8,  8, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2,  2,  2,  3,  6,  6, 15},
+		    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}),
+		  /* 0 */
+		  /*  {{{-10,-10,-10,-10,-10, -4,  0,  0,  4,  4,  8,  8,  8, 10, 12, 14, 20},
+		      {-30,-30,-30,-30,-26,-22,-20,-14, -6, -2,  0,  0,  0,  0,  2,  4,  10},
+		      {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}},*/
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  4,  4,  8,  8,  8, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-22,-20,-14, -6, -2,  0,  0,  0,  0,  2,  3,  6},
+		    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}),
+		  /* 1 */
+		new noise3( new int[][] { { -12,-12,-12,-12,-12, -8, -6, -4,  0,  4,  4,  4,  4, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -4, -4, -2, -2, -2, -2,  2},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8,-10,-10, -8, -8, -8, -6, -4}}),
+		  /* 2 */
+		new noise3( new int[][] { { -14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  8, 10, 10, 16},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}),
+		  /* 3 */
+		new noise3( new int[][] { { -14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  6,  8,  8, 14},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}),
+		  /* 4 */
+		new noise3( new int[][] { { -16,-16,-16,-16,-16,-12,-10, -6, -2,  0,  0,  0,  0,  4,  6,  6, 12},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}),
+		  /* 5 */
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  4,  6, 11},
+		    {-32,-32,-32,-32,-28,-24,-22,-16,-10, -6, -8, -8, -6, -6, -6, -4, -2},
+		    {-34,-34,-34,-34,-30,-26,-24,-18,-14,-12,-12,-12,-12,-12,-10, -9, -5}}),
+		  /* 6 
+		  {{{-20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  4,  6, 11},
+		      {-34,-34,-34,-34,-30,-30,-24,-20,-12,-12,-14,-14,-10, -9, -8, -6, -4},
+		      {-34,-34,-34,-34,-34,-30,-26,-20,-16,-15,-15,-15,-15,-15,-13,-12, -8}}},*/
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  4,  6, 11},
+		    {-34,-34,-34,-34,-30,-30,-30,-24,-16,-16,-16,-16,-16,-16,-14,-14,-12},
+		    {-36,-36,-36,-36,-36,-34,-28,-24,-20,-20,-20,-20,-20,-20,-20,-18,-16}}),
+		  /* 7 */
+		  /*  {{{-22,-22,-22,-22,-22,-20,-14,-10, -6,  0,  0,  0,  0,  4,  4,  6, 11},
+		      {-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10,-10},
+		      {-34,-34,-34,-34,-32,-32,-30,-24,-20,-19,-19,-19,-19,-19,-17,-16,-12}}},*/
+		new noise3( new int[][] { { -22,-22,-22,-22,-22,-20,-14,-10, -6,  0,  0,  0,  0,  4,  4,  6, 11},
+		    {-34,-34,-34,-34,-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-24,-22},
+		    {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}),
+		  /* 8 */
+		  /*  {{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1,  3,  3,  5, 10},
+		      {-34,-34,-34,-34,-30,-30,-30,-24,-20,-20,-20,-20,-20,-18,-16,-16,-14},
+		      {-36,-36,-36,-36,-36,-34,-28,-24,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/
+		new noise3( new int[][] { { -24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1,  3,  3,  5, 10},
+		    {-34,-34,-34,-34,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-24},
+		    {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}),
+		  /* 9 */
+		  /*  {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+		      {-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-22,-20,-20,-18},
+		      {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/
+		new noise3( new int[][] { { -28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+		    {-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26},
+		    {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}),
+		  /* 10 */
+		new noise3( new int[][] { { -30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-16,-16,-16,-16,-16,-14,-12},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-26},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}),
+	};
+
+	static noise3[] _psy_noisebias_padding = new noise3[] {
+		
+		/*  63     125     250     500      1k       2k      4k      8k     16k*/
+		  /* -1 */
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  4,  8,  8,  8,  8, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2,  2,  2,  3,  6,  6, 15},
+		    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}),
+		  /* 0 */
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  4,  8,  8,  8,  8, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2,  2,  3,  6,  6,  8, 10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -4, -4, -2,  0,  2}}),
+		  /* 1 */
+		new noise3( new int[][] { { -12,-12,-12,-12,-12, -8, -6, -4,  0,  4,  4,  4,  4, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4,  0,  0,  0,  2,  2,  4,  8},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -6, -4, -2,  0}}),
+		  /* 2 */
+		  /*  {{{-14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  8, 10, 10, 16},
+		      {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4,  0,  0,  0,  2,  2,  4,  8},
+		      {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}},*/
+		new noise3( new int[][] { { -14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  8, 10, 10, 16},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1,  0,  0,  2,  6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}),
+		  /* 3 */
+		new noise3( new int[][] { { -14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  6,  8,  8, 14},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1,  0,  0,  2,  6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}),
+		  /* 4 */
+		new noise3( new int[][] { { -16,-16,-16,-16,-16,-12,-10, -6, -2,  0,  0,  0,  0,  4,  6,  6, 12},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, -1,  0,  2,  6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}),
+		  /* 5 */
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  6,  6, 12},
+		    {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -3, -3, -3, -3, -2,  0,  4},
+		    {-34,-34,-34,-34,-30,-26,-24,-18,-14,-10,-10,-10,-10,-10, -8, -5, -3}}),
+		  /* 6 */
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  6,  6, 12},
+		    {-34,-34,-34,-34,-30,-30,-24,-20,-14, -8, -4, -4, -4, -4, -3, -1,  4},
+		    {-34,-34,-34,-34,-34,-30,-26,-20,-16,-13,-13,-13,-13,-13,-11, -8, -6}}),
+		  /* 7 */
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  6,  6, 12},
+		    {-34,-34,-34,-34,-30,-30,-30,-24,-16,-10, -8, -6, -6, -6, -5, -3,  1},
+		    {-34,-34,-34,-34,-32,-32,-28,-22,-18,-16,-16,-16,-16,-16,-14,-12,-10}}),
+		  /* 8 */
+		new noise3( new int[][] { { -22,-22,-22,-22,-22,-20,-14,-10, -4,  0,  0,  0,  0,  3,  5,  5, 11},
+		    {-34,-34,-34,-34,-30,-30,-30,-24,-16,-12,-10, -8, -8, -8, -7, -5, -2},
+		    {-36,-36,-36,-36,-36,-34,-28,-22,-20,-20,-20,-20,-20,-20,-20,-16,-14}}),
+		  /* 9 */
+		new noise3( new int[][] { { -28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -2, -2, -2, -2,  0,  2,  6},
+		    {-36,-36,-36,-36,-34,-32,-32,-24,-16,-12,-12,-12,-12,-12,-10, -8, -5},
+		    {-40,-40,-40,-40,-40,-40,-40,-32,-26,-24,-24,-24,-24,-24,-24,-20,-18}}),
+		  /* 10 */
+		new noise3( new int[][] { { -30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-12,-12,-12,-12,-12,-10, -8},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-25,-25,-25,-25,-25,-25,-15},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}),
+	};
+
+	static noise3[] _psy_noisebias_trans = new noise3[] {
+		
+		/*  63     125     250     500      1k       2k      4k      8k     16k*/
+		  /* -1 */
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  4,  8,  8,  8,  8, 10, 12, 14, 20},
+		    {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2,  2,  2,  3,  6,  6, 15},
+		    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}),
+		  /* 0 
+		  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14, -8, -4,  0,  0,  0,  0,  2,  4,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4,  -2}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-12, -6, -4,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14, -8, -4,  0,  0,  0,  0,  2,  3,   6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4,  -2}}),
+		  /* 1 
+		  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2,  0,  2,  8},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2,  0,  1,   4},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6,  -4}}),
+		  /* 2 
+		  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  2,  2,  4,  4,  5,  6,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2,  0,  2,  6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, */
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  2,  2,  4,  4,  5,  6,  10},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -2, -1,  0,  3},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -7, -4}}),
+		  /* 3 
+		  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  2,  2,  4,  4,  4,  5,  8},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1,  1,  6},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  2,  2,  4,  4,  4,  5,  8},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2,  0,  2},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}),
+		  /* 4 
+		  {{{-20,-20,-20,-20,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1,  1,  5},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/
+		new noise3( new int[][] { { -20,-20,-20,-20,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1,  1},
+		    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}),
+		  /* 5 
+		  {{{-24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1,  2},
+		    {-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}}, */
+		new noise3( new int[][] { { -24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1,  0},
+		    {-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}),
+		  /* 6 
+		  {{{-24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2,  1},
+		    {-34,-34,-34,-34,-30,-26,-24,-18,-17,-15,-15,-15,-15,-13,-13,-12, -8}}},*/
+		new noise3( new int[][] { { -24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2,  0},
+		    {-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}),
+		  /* 7 
+		  {{{-24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-24,-18,-14,-12,-10, -8, -8, -8, -6, -4,  0},
+		    {-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}},*/
+		new noise3( new int[][] { { -24,-24,-24,-24,-20,-18,-14, -8, -1,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-32,-32,-32,-32,-28,-24,-24,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2},
+		    {-34,-34,-34,-34,-30,-26,-26,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}),
+		  /* 8 
+		  {{{-24,-24,-24,-24,-22,-20,-15,-10, -8, -2,  0,  0,  0,  1,  2,  3,  7},
+		    {-36,-36,-36,-36,-30,-30,-30,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2},
+		    {-36,-36,-36,-36,-34,-30,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/
+		new noise3( new int[][] { { -24,-24,-24,-24,-22,-20,-15,-10, -8, -2,  0,  0,  0,  1,  2,  3,  7}, 
+		    {-36,-36,-36,-36,-30,-30,-30,-24,-20,-16,-16,-16,-16,-14,-12,-10, -7},
+		    {-36,-36,-36,-36,-34,-30,-28,-26,-24,-30,-30,-30,-30,-30,-30,-24,-20}}),
+		  /* 9 
+		  {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+		    {-36,-36,-36,-36,-34,-32,-32,-28,-20,-16,-16,-16,-16,-14,-12,-10, -7},
+		    {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/
+		new noise3( new int[][] { { -28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+		    {-38,-38,-38,-38,-36,-34,-34,-30,-24,-20,-20,-20,-20,-18,-16,-12,-10},
+		    {-40,-40,-40,-40,-40,-40,-40,-38,-35,-35,-35,-35,-35,-35,-35,-35,-30}}),
+		  /* 10 */
+		new noise3( new int[][] { { -30,-30,-30,-30,-30,-30,-30,-28,-20,-14,-14,-14,-14,-14,-14,-12,-10},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-20},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}),
+	};
+
+	static noise3[] _psy_noisebias_long = new noise3[] {
+		
+		/*63     125     250     500      1k       2k      4k      8k     16k*/
+		  /* -1 */
+		new noise3( new int[][] { { -10,-10,-10,-10,-10, -4,  0,  0,  0,  6,  6,  6,  6, 10, 10, 12,  20},
+		    {-20,-20,-20,-20,-20,-20,-10, -2,  0,  0,  0,  0,  0,  2,  4,  6,  15},
+		    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -6, -6, -6, -6, -4, -4, -4, -2}}),
+		  /* 0 */
+		  /*  {{{-10,-10,-10,-10,-10,-10, -8,  2,  2,  2,  4,  4,  5,  5,  5,  8,  10},
+		      {-20,-20,-20,-20,-20,-20,-20,-14, -6,  0,  0,  0,  0,  0,  2,  4,  10},
+		      {-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}},*/
+		new noise3( new int[][] { { -10,-10,-10,-10,-10,-10, -8,  2,  2,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-20,-20,-20,-20,-20,-20,-20,-14, -6,  0,  0,  0,  0,  0,  2,  3,  6},
+		    {-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}),
+		  /* 1 */
+		  /*  {{{-10,-10,-10,-10,-10,-10, -8, -4,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2,  0,  2,  8},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/
+		new noise3( new int[][] { { -10,-10,-10,-10,-10,-10, -8, -4,  0,  2,  4,  4,  5,  5,  5,  8,  10},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2,  0,  1,  4},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}),
+		  /* 2 */
+		  /*  {{{-10,-10,-10,-10,-10,-10,-10, -8,  0,  2,  2,  2,  4,  4,  5,  6,  10},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2,  0,  2,  6},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/
+		new noise3( new int[][] { { -10,-10,-10,-10,-10,-10,-10, -8,  0,  2,  2,  2,  4,  4,  5,  6,  10},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -2, -1,  0,  3},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}),
+		  /* 3 */
+		  /*  {{{-10,-10,-10,-10,-10,-10,-10, -8,  0,  2,  2,  2,  4,  4,  4,  5,  8},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1,  1,  6},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/
+		new noise3( new int[][] { { -10,-10,-10,-10,-10,-10,-10, -8,  0,  2,  2,  2,  4,  4,  4,  5,  8},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2,  0,  2},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -5}}),
+		  /* 4 */
+		  /*  {{{-15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1,  1,  5},
+		      {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1,  1},
+		    {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -7}}),
+		  /* 5 */
+		  /*  {{{-15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		      {-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1,  2},
+		      {-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1,  0},
+		    {-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -8}}),
+		  /* 6 */
+		  /*  {{{-15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		      {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2,  1},
+		      {-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12, -8}}},*/
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2,  0},
+		    {-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12,-10}}),
+		  /* 7 */
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-15,-15,-10, -4,  1,  1,  1,  2,  3,  3,  4,  7},
+		    {-24,-24,-24,-24,-24,-24,-24,-18,-14,-10, -8, -8, -8, -8, -6, -4,  0},
+		    {-26,-26,-26,-26,-26,-26,-26,-22,-20,-19,-19,-19,-19,-18,-17,-16,-12}}),
+		  /* 8 */
+		new noise3( new int[][] { { -15,-15,-15,-15,-15,-15,-15,-10, -4,  0,  0,  0,  0,  1,  2,  3,  7},
+		    {-26,-26,-26,-26,-26,-26,-26,-20,-16,-12,-10,-10,-10,-10, -8, -6, -2},
+		    {-28,-28,-28,-28,-28,-28,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}),
+		  /* 9 */
+		new noise3( new int[][] { { -22,-22,-22,-22,-22,-22,-22,-18,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+		    {-26,-26,-26,-26,-26,-26,-26,-22,-18,-16,-16,-16,-16,-14,-12,-10, -7},
+		    {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-20}}),
+		  /* 10 */
+		new noise3( new int[][] { { -24,-24,-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-14,-14,-14,-12,-10},
+		    {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-20},
+		    {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}),
+	};
+
+	static int[] _psy_noise_suppress = new int[] { -20,-20,-24,-24,-24,-24,-30,-40,-40,-45,-45,-45, };
+
+	static compandblock[] _psy_compand_44 = new compandblock[] {
+
+			/* sub-mode Z short */
+			new compandblock( new int[] { 
+			    0, 1, 2, 3, 4, 5, 6,  7,     /* 7dB */
+			    8, 9,10,11,12,13,14, 15,     /* 15dB */
+			    16,17,18,19,20,21,22, 23,     /* 23dB */
+			    24,25,26,27,28,29,30, 31,     /* 31dB */
+			    32,33,34,35,36,37,38, 39,     /* 39dB */
+			  }),
+			  /* mode_Z nominal short */
+			new compandblock( new int[] { 
+			     0, 1, 2, 3, 4, 5, 6,  6,     /* 7dB */
+			     7, 7, 7, 7, 6, 6, 6,  7,     /* 15dB */
+			     7, 8, 9,10,11,12,13, 14,     /* 23dB */
+			    15,16,17,17,17,18,18, 19,     /* 31dB */
+			    19,19,20,21,22,23,24, 25,     /* 39dB */
+			  }),
+			  /* mode A short */
+			new compandblock( new int[] { 
+			    0, 1, 2, 3, 4, 5, 5,  5,     /* 7dB */
+			    6, 6, 6, 5, 4, 4, 4,  4,     /* 15dB */
+			    4, 4, 5, 5, 5, 6, 6,  6,     /* 23dB */
+			    7, 7, 7, 8, 8, 8, 9, 10,     /* 31dB */
+			    11,12,13,14,15,16,17, 18,     /* 39dB */
+			  }),
+			  /* sub-mode Z long */
+			new compandblock( new int[] { 
+			     0, 1, 2, 3, 4, 5, 6,  7,     /* 7dB */
+			     8, 9,10,11,12,13,14, 15,     /* 15dB */
+			    16,17,18,19,20,21,22, 23,     /* 23dB */
+			    24,25,26,27,28,29,30, 31,     /* 31dB */
+			    32,33,34,35,36,37,38, 39,     /* 39dB */
+			  }),
+			  /* mode_Z nominal long */
+			new compandblock( new int[] { 
+			    0, 1, 2, 3, 4, 5, 6,  7,     /* 7dB */
+			    8, 9,10,11,12,12,13, 13,     /* 15dB */
+			    13,14,14,14,15,15,15, 15,     /* 23dB */
+			    16,16,17,17,17,18,18, 19,     /* 31dB */
+			    19,19,20,21,22,23,24, 25,     /* 39dB */
+			  }),
+			  /* mode A long */
+			new compandblock( new int[] { 
+			    0, 1, 2, 3, 4, 5, 6,  7,     /* 7dB */
+			    8, 8, 7, 6, 5, 4, 4,  4,     /* 15dB */
+			    4, 4, 5, 5, 5, 6, 6,  6,     /* 23dB */
+			    7, 7, 7, 8, 8, 8, 9, 10,     /* 31dB */
+			    11,12,13,14,15,16,17, 18,     /* 39dB */
+			  })
+	};
+		
+	static float _psy_compand_short_mapping[] = new float[] { 0.5f, 1.f, 1.f, 1.3f, 1.6f, 2.f, 2.f, 2.f, 2.f, 2.f, 2.f, 2.f };
+	static float _psy_compand_long_mapping[] = new float[] { 3.5f, 4.f, 4.f, 4.3f, 4.6f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f };
+
+	static int[] _noise_start_short_44 = new int[] { 32,16,16,16,32,9999,9999,9999,9999,9999,9999 };
+	static int[] _noise_start_long_44 = new int[] { 256,128,128,256,512,9999,9999,9999,9999,9999,9999 };
+	static int[] _noise_part_short_44 = new int[] { 8,8,8,8,8,8,8,8,8,8,8 };
+	static int[] _noise_part_long_44 = new int[] { 32,32,32,32,32,32,32,32,32,32,32 };
+	static float[] _noise_thresh_44 = new float[] { .2f, .2f, .2f, .4f, .6f, 9999.f, 9999.f, 9999.f, 9999.f, 9999.f, 9999.f } ;
+
+	static int[] _psy_ath_floater = new int[] { -100,-100,-100,-100,-100,-100,-105,-105,-105,-105,-110,-120 };
+	static int[] _psy_ath_abs = new int[] { -130,-130,-130,-130,-140,-140,-140,-140,-140,-140,-140,-150, };
+
+	static float[] _psy_lowpass_44 = new float[] { 13.9f, 15.1f, 15.8f, 16.5f, 17.2f, 18.9f, 20.1f, 48.f, 999.f, 999.f, 999.f, 999.f };
+
+	static vorbis_info_psy_global[] _psy_global_44 = new vorbis_info_psy_global[] {
+			
+			new vorbis_info_psy_global( 8, new float[] { 20.f,14.f,12.f,12.f,12.f,12.f,12.f }, new float[] { -60.f,-30.f,-40.f,-40.f,-40.f,-40.f,-40.f }, 2.f,-75.f, -6.f, new int[] { 99 }, new int[][] {{ 99, 99 }}, new int[] { 0 }, new int[] { 0 }, new int[][] {{ 0, 0 }} ),
+			new vorbis_info_psy_global( 8, new float[] { 14.f,10.f,10.f,10.f,10.f,10.f,10.f }, new float[] { -40.f,-30.f,-25.f,-25.f,-25.f,-25.f,-25.f }, 2.f,-80.f, -6.f, new int[] { 99 }, new int[][] {{ 99, 99 }}, new int[] { 0 }, new int[] { 0 }, new int[][] {{ 0, 0 }} ),
+			new vorbis_info_psy_global( 8, new float[] { 12.f,10.f,10.f,10.f,10.f,10.f,10.f }, new float[] { -20.f,-20.f,-15.f,-15.f,-15.f,-15.f,-15.f }, 0,-80.f, -6.f, new int[] { 99 }, new int[][] {{ 99, 99 }}, new int[] { 0 }, new int[] { 0 }, new int[][] {{ 0, 0 }} ),
+			new vorbis_info_psy_global( 8, new float[] { 10.f,8.f,8.f,8.f,8.f,8.f,8.f }, new float[] { -20.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f }, 0,-80.f, -6.f, new int[] { 99 }, new int[][] {{ 99, 99 }}, new int[] { 0 }, new int[] { 0 }, new int[][] {{ 0, 0 }} ),
+			new vorbis_info_psy_global( 8, new float[] { 10.f,6.f,6.f,6.f,6.f,6.f,6.f }, new float[] { -15.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f }, 0,-85.f, -6.f, new int[] { 99 }, new int[][] {{ 99, 99 }}, new int[] { 0 }, new int[] { 0 }, new int[][] {{ 0, 0 }} ),
+	};
+	
+	static float[] _global_mapping_44 = new float[] { 0.f, 1.f, 1.f, 1.5f, 2.f, 2.f, 2.5f, 2.7f, 3.0f, 3.7f, 4.f, 4.f };
+	
+	static adj_stereo[] _psy_stereo_modes_44 = new adj_stereo[] {
+						
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         -1  */
+		new adj_stereo( new int[] {  4,  4,  4,  4,  4,  4,  4,  3,  2,  2,  1,  0,  0,  0,  0},
+			new int[] {  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  5,  4,  3},
+			new float[] {  1,  2,  3,  4,  4,  4,  4,  4,  4,  5,  6,  7,  8,  8,  8},
+			new float[] { 12,12.5f, 13,13.5f, 14,14.5f, 15, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	/*    0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         0  */
+	/*{{  4,  4,  4,  4,  4,  4,  4,  3,  2,  2,  1,  0,  0,  0,  0},
+	   {  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  5,  4,  3},
+	   {  1,  2,  3,  4,  5,  5,  6,  6,  6,  6,  6,  7,  8,  8,  8},
+	   { 12,12.5, 13,13.5, 14,14.5, 15, 99, 99, 99, 99, 99, 99, 99, 99}},*/
+	   new adj_stereo( new int[] {  4,  4,  4,  4,  4,  4,  4,  3,  2,  1,  0,  0,  0,  0,  0},
+			   new int[] {  8,  8,  8,  8,  6,  6,  5,  5,  5,  5,  5,  5,  5,  4,  3},
+			   new float[] {  1,  2,  3,  4,  4,  5,  6,  6,  6,  6,  6,  8,  8,  8,  8},
+			   new float[] { 12,12.5f, 13,13.5f, 14,14.5f, 15, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         1  */
+	   new adj_stereo( new int[] {  3,  3,  3,  3,  3,  3,  3,  3,  2,  1,  0,  0,  0,  0,  0},
+			   new int[] {  8,  8,  8,  8,  6,  6,  5,  5,  5,  5,  5,  5,  5,  4,  3},
+			   new float[] {  1,  2,  3,  4,  4,  5,  6,  6,  6,  6,  6,  8,  8,  8,  8},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         2  */
+	  /*  {{  3,  3,  3,  3,  3,  3,  2,  2,  2,  1,  0,  0,  0,  0,  0},
+	      {  8,  8,  8,  6,  5,  5,  5,  5,  5,  5,  5,  4,  3,  2,  1},
+	      {  3,  4,  4,  4,  5,  6,  6,  6,  6,  6,  6,  8,  8,  8,  8},
+	      { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, */
+	   new adj_stereo( new int[] {  3,  3,  3,  3,  3,  3,  3,  2,  1,  1,  0,  0,  0,  0,  0},
+			   new int[] {  8,  8,  6,  6,  5,  5,  4,  4,  4,  4,  4,  4,  3,  2,  1},
+			   new float[] {  3,  4,  4,  5,  5,  6,  6,  6,  6,  6,  6,  8,  8,  8,  8},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         3  */
+	   new adj_stereo( new int[] {  2,  2,  2,  2,  2,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0},
+			   new int[] {  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,  2,  1},
+			   new float[] {  4,  4,  5,  6,  6,  6,  6,  6,  8,  8, 10, 10, 10, 10, 10},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         4  */
+	   new adj_stereo( new int[] {  2,  2,  2,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  2,  1,  0},
+			   new float[] {  6,  6,  6,  8,  8,  8,  8,  8,  8,  8, 10, 10, 10, 10, 10},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         5  */
+	  /*  {{  2,  2,  2,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0},
+	      {  6,  6,  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10},
+	      { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},*/
+	   new adj_stereo( new int[] {  2,  2,  2,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0},
+			   new float[] {  6,  7,  8,  8,  8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         6  */
+	  /*  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  3,  3,  3,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
+	      { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, */
+	   new adj_stereo( new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  3,  3,  3,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new float[] {  8,  8,  8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         7  */
+	  /*  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  3,  3,  3,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
+	      { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},*/
+	   new adj_stereo( new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  3,  3,  3,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new float[] {  8,  8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         8  */
+	  /*  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	      {  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
+	      { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},*/
+	   new adj_stereo( new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new float[] {  8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         9  */
+	   new adj_stereo( new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new float[] {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14        10  */
+	   new adj_stereo( new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new int[] {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+			   new float[] {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+			   new float[] { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99} ),
+	};
+	
+	static vorbis_info_floor1[] _floor = new vorbis_info_floor1[] {
+
+		/* 128 x 4 */
+		new vorbis_info_floor1( 1, new int[]{0}, new int[]{4}, new int[]{2}, new int[]{0}, 
+								new int[][]{{1,2,3,4}}, 
+								4, new int[]{0,128, 33,8,16,70}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 256 x 4 */
+		new vorbis_info_floor1( 1, new int[]{0}, new int[]{4}, new int[]{2}, new int[]{0}, 
+								new int[][]{{1,2,3,4}}, 
+								4, new int[]{0,256, 66,16,32,140}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 128 x 7 */
+		new vorbis_info_floor1( 2, new int[]{0,1}, new int[]{3,4}, new int[]{2,2}, new int[]{0,1}, 
+								new int[][]{{-1,2,3,4},{-1,5,6,7}}, 
+								4, new int[]{0,128, 14,4,58, 2,8,28,90}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 256 x 7 */
+		new vorbis_info_floor1( 2, new int[]{0,1}, new int[]{3,4}, new int[]{2,2}, new int[]{0,1}, 
+								new int[][]{{-1,2,3,4},{-1,5,6,7}}, 
+								4, new int[]{0,256, 28,8,116, 4,16,56,180}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 128 x 11 */
+		new vorbis_info_floor1( 4, new int[]{0,1,2,3}, new int[]{2,3,3,3}, new int[]{0,1,2,2}, new int[]{-1,0,1,2}, 
+								new int[][]{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 
+								2, new int[]{0,128,  8,33,  4,16,70,  2,6,12,  23,46,90}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 128 x 17 */
+		new vorbis_info_floor1( 6, new int[]{0,1,1,2,3,3}, new int[]{2,3,3,3}, new int[]{0,1,2,2}, new int[]{-1,0,1,2}, 
+								new int[][]{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 
+								2, new int[]{0,128,  12,46,  4,8,16,  23,33,70,  2,6,10,  14,19,28,  39,58,90}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 256 x 4 (low bitrate version) */
+		new vorbis_info_floor1( 1, new int[]{0}, new int[]{4}, new int[]{2}, new int[]{0}, 
+								new int[][]{{1,2,3,4}}, 
+								4, new int[]{0,256, 66,16,32,140}, 
+								60, 30, 500, 1, 18, -1 ),
+		/* 1024 x 27 */
+		new vorbis_info_floor1( 8, new int[]{0,1,2,2,3,3,4,4}, new int[]{3,4,3,4,3}, new int[]{0,1,1,2,2}, new int[]{-1,0,1,2,3}, 
+								new int[][]{{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, 
+								2, new int[]{0,1024,   93,23,372, 6,46,186,750,  14,33,65, 130,260,556,
+												3,10,18,28,  39,55,79,111,  158,220,312,  464,650,850}, 
+								60, 30, 500, 3, 18, -1 ),
+		/* 2048 x 27 */
+		new vorbis_info_floor1( 8, new int[]{0,1,2,2,3,3,4,4}, new int[]{3,4,3,4,3}, new int[]{0,1,1,2,2}, new int[]{-1,0,1,2,3}, 
+								new int[][]{{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, 
+								2, new int[]{0,2048,   186,46,744, 12,92,372,1500,  28,66,130, 260,520,1112,
+												6,20,36,56,  78,110,158,222,  316,440,624,  928,1300,1700}, 
+								60, 30, 500, 3, 18, -1 ),
+		/* 512 x 17 */
+		new vorbis_info_floor1( 6, new int[]{0,1,1,2,3,3}, new int[]{2,3,3,3}, new int[]{0,1,2,2}, new int[]{-1,0,1,2}, 
+								new int[][]{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 
+								2, new int[]{0,512,  46,186,  16,33,65,  93,130,278,  
+												7,23,39,  55,79,110,  156,232,360}, 
+								60, 30, 500, 1, 18, -1 ),
+	};
+	
+	static int _floor_short_mapping_44[] = new int[] { 1,0,0,2,2,4,5,5,5,5,5 };
+	static int _floor_long_mapping_44[] = new int[] { 8,7,7,7,7,7,7,7,7,7,7 };
+		
+	
+	
+	public setup_44() {
+		
+		floor_books huff_books = new org.xiph.libvorbis.books.floor.floor_books();
+		res_books_stereo residue_44 = new org.xiph.libvorbis.books.coupled.resbook_44.res_books_stereo();
+		
+		data = new ve_setup_data_template( 
+				
+				11,
+				rate_mapping_44_stereo,
+				quality_mapping_44,
+				2,
+				40000,
+				50000,
+				
+				blocksize_short_44,
+				blocksize_long_44,
+				
+				_psy_tone_masteratt_44,
+				_psy_tone_0dB,
+				_psy_tone_suppress,
+
+				_vp_tonemask_adj_otherblock,
+				_vp_tonemask_adj_longblock,
+				_vp_tonemask_adj_otherblock,
+				
+				_psy_noiseguards_44,
+				_psy_noisebias_impulse,
+				_psy_noisebias_padding,
+				_psy_noisebias_trans,
+				_psy_noisebias_long,
+				_psy_noise_suppress,
+				  
+				_psy_compand_44,
+				_psy_compand_short_mapping,
+				_psy_compand_long_mapping,
+
+				new int[][] { _noise_start_short_44, _noise_start_long_44 },
+				new int[][] { _noise_part_short_44, _noise_part_long_44 },
+				_noise_thresh_44,
+
+				_psy_ath_floater,
+				_psy_ath_abs,
+				  
+				_psy_lowpass_44,
+
+				_psy_global_44,
+				_global_mapping_44,
+				_psy_stereo_modes_44,
+
+				huff_books._floor_books,
+				_floor,
+				_floor_short_mapping_44,
+				_floor_long_mapping_44,
+
+				residue_44._mapres_template_44_stereo
+		);
+		
+	}
+}
\ No newline at end of file

Added: trunk/vorbis-java/org/xiph/libvorbis/noise3.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/noise3.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/noise3.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,33 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class noise3 {
+
+	int[][] data;		// data[P_NOISECURVES][17]
+
+
+	public noise3( int[][] _data ) {
+
+		data = new int[ P_NOISECURVES ][ P_BANDS ];
+		for ( int i=0; i < _data.length; i++ )
+			System.arraycopy( _data[i], 0, data[i], 0, _data[i].length );
+	}
+
+	public noise3( noise3 src ) {
+
+		this( src.data );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/noise3.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/noiseguard.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/noiseguard.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/noiseguard.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,28 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class noiseguard {
+
+	int lo;
+	int hi;
+	int fixed;
+
+
+	public noiseguard( int _lo, int _hi, int _fixed ) {
+
+		lo = _lo;
+		hi = _hi;
+		fixed = _fixed;
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/noiseguard.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/oggpack_buffer.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/oggpack_buffer.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/oggpack_buffer.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,717 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import java.util.*;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class oggpack_buffer {
+
+	int endbyte;	// long
+	int endbit;
+	
+	byte[] buffer;	// unsigned char *buffer;
+	int ptr;		// unsigned char *ptr;	// offset
+	int storage;	// long
+	
+	static int[] mask = new int[]{
+        0x00000000, 
+        0x00000001, 
+        0x00000003, 
+        0x00000007, 
+        0x0000000f, 
+        0x0000001f, 
+        0x0000003f, 
+        0x0000007f, 
+        0x000000ff, 
+        0x000001ff, 
+        0x000003ff, 
+        0x000007ff, 
+        0x00000fff, 
+        0x00001fff, 
+        0x00003fff, 
+        0x00007fff, 
+        0x0000ffff, 
+        0x0001ffff, 
+        0x0003ffff, 
+        0x0007ffff, 
+        0x000fffff, 
+        0x001fffff, 
+        0x003fffff, 
+        0x007fffff, 
+        0x00ffffff, 
+        0x01ffffff, 
+        0x03ffffff, 
+        0x07ffffff, 
+        0x0fffffff, 
+        0x1fffffff, 
+        0x3fffffff, 
+        0x7fffffff, 
+        0xffffffff}
+    ;
+
+	public oggpack_buffer() {	// void oggpack_writeinit(oggpack_buffer *b)
+
+		ptr = 0;
+		buffer = new byte[ BUFFER_INCREMENT ];
+		buffer[0] = (byte)'\0';
+		storage = BUFFER_INCREMENT;
+	}
+	
+	public void oggpack_reset() {
+		
+		ptr = 0;
+		buffer[0] = (byte)'\0';
+		endbit = 0;
+		endbyte = 0;
+	}
+	
+	public int oggpack_bytes() {
+		return (endbyte+(endbit+7)/8);
+	}
+	
+	public int oggpack_bits(){
+		return(endbyte*8+endbit);
+	}
+
+    public void oggpack_write( int value8, int bits ) {
+    	
+        if ( endbyte + 4 >= storage ) {
+        	storage += BUFFER_INCREMENT;
+//        	 b->buffer=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT);
+        	byte[] temp = new byte[ storage ];
+    		System.arraycopy( buffer, 0, temp, 0, buffer.length );
+    		buffer = temp;
+            ptr = endbyte;
+        }
+        value8 &= mask[ bits ];
+        bits += endbit;
+        buffer[ ptr ] |= value8 << endbit;
+        if ( bits >= 8 ) {
+        	buffer[ ptr+1 ] = (byte)(value8 >>> (8 - endbit));
+            if ( bits >= 16 ) {
+            	buffer[ ptr+2 ] = (byte)(value8 >>> (16 - endbit));
+                if ( bits >= 24 ) {
+                	buffer[ ptr+3 ] = (byte)(value8 >>> (24 - endbit));
+                    if ( bits >= 32 ) {
+                        if ( endbit != 0 ) {
+                        	buffer[ ptr+4 ] = (byte)(value8 >>> (32 - endbit));
+                        }
+                        else {
+                        	buffer[ ptr+4 ] = 0;
+                        }
+                    }
+                }
+            }
+        }
+        endbyte += bits / 8;
+        ptr += bits / 8;
+        endbit = bits & 7;
+    }
+    
+    public void oggpack_writetrunc( int bits ) {
+    	
+    	int bytes = bits>>3;
+    	bits -= bytes*8;
+    	// b->ptr=b->buffer+bytes;
+    	ptr = bytes;
+    	endbit = bits;
+    	endbyte = bytes;
+    	// *b->ptr&=mask[bits];
+    	buffer[ptr] = (byte)mask[bits];
+    }
+	
+	public void _v_writestring ( String s, int bytes ) {
+		
+		for ( int i=0; i < bytes; i++ ) {
+			oggpack_write( s.charAt( i ), 8 );
+		}
+	}
+	
+	public void _v_writestring ( byte[] s, int bytes ) {
+		
+		for ( int i=0; i < bytes; i++ ) {
+			oggpack_write( s[i], 8 );
+		}
+	}
+	
+	public boolean _vorbis_pack_info( vorbis_info vi ) {
+		
+		codec_setup_info ci = vi.codec_setup;
+		
+		if ( ci == null )
+			return false;
+		
+		// preamble
+		oggpack_write( 0x01, 8 );
+		_v_writestring( "vorbis", 6 );
+		
+		// basic information about the stream
+		oggpack_write( 0x00, 32 );
+		oggpack_write( vi.channels, 8 );
+		oggpack_write( vi.rate, 32 );
+		
+		oggpack_write( vi.bitrate_upper, 32 );
+		oggpack_write( vi.bitrate_nominal, 32 );
+		oggpack_write( vi.bitrate_lower, 32 );
+
+		oggpack_write( ilog2( ci.blocksizes[0] ), 4 );
+		oggpack_write( ilog2( ci.blocksizes[1] ), 4 );
+		oggpack_write( 1, 1 );
+		
+		return true;
+	}
+	
+	public boolean _vorbis_pack_comment( vorbis_comment vc ) {	
+		
+		String temp = "Xiph.Org libVorbis I 20030909";
+		int bytes = temp.length();
+
+		// preamble
+		oggpack_write( 0x03, 8 );
+		_v_writestring( "vorbis", 6 );
+
+		// vendor
+		oggpack_write( bytes, 32 );
+		_v_writestring( temp, bytes );
+				
+		// comments		
+		oggpack_write( vc.comments, 32 );
+		if ( vc.comments > 0 ) {
+			for ( int i=0; i < vc.comments; i++ ) {
+				if ( vc.user_comments[i] != null ) {
+					oggpack_write( vc.comment_lengths[i], 32 );
+					_v_writestring( vc.user_comments[i], vc.comment_lengths[i] );
+				} else {
+					oggpack_write( 0, 32 );
+				}
+			}
+		}
+		
+		oggpack_write( 1, 1 );
+		
+		return true;
+	}
+
+	public boolean _vorbis_pack_books( vorbis_info vi ) {
+		
+		codec_setup_info ci = vi.codec_setup;
+		int i;
+		
+		if ( ci == null )
+			return false;
+		
+		// preamble
+		oggpack_write( 0x05, 8 );
+		_v_writestring( "vorbis", 6 );
+		
+		// books
+		oggpack_write( ci.books-1, 8 );
+		for ( i=0; i < ci.books; i++ ) {
+			if ( !vorbis_staticbook_pack( ci.book_param[i] ) )
+				return false;
+		}
+		
+		// times; hook placeholders
+		oggpack_write( 0, 6 );
+		oggpack_write( 0, 16 );
+		
+		// floors
+		oggpack_write( ci.floors-1, 6 );
+		for ( i=0; i <ci.floors; i++ ) {
+			oggpack_write( ci.floor_type[i], 16 );
+			// _floor_P[ci->floor_type[i]]->pack(ci->floor_param[i],opb);
+			floor1_pack( ci.floor_param[i] );
+		}
+		
+		// residues 
+		oggpack_write( ci.residues-1, 6 );
+		for ( i=0; i < ci.residues; i++ ) {
+			oggpack_write( ci.residue_type[i], 16 );
+			// _residue_P[ci->residue_type[i]]->pack(ci->residue_param[i],opb);
+			res0_pack( ci.residue_param[i] );
+		}
+		
+		// maps
+		oggpack_write( ci.maps-1, 6 );
+		for ( i=0; i < ci.maps; i++ ) {
+		    oggpack_write( ci.map_type[i], 16 );
+		    // _mapping_P[ci->map_type[i]]->pack(vi,ci->map_param[i],opb);
+		    mapping0_pack( vi, ci.map_param[i] );
+		}
+		
+		// modes
+		oggpack_write( ci.modes-1, 6 );
+		for ( i=0; i < ci.modes; i++ ) {
+			oggpack_write( ci.mode_param[i].blockflag, 1 );
+			oggpack_write( ci.mode_param[i].windowtype, 16 );
+			oggpack_write( ci.mode_param[i].transformtype, 16 );
+			oggpack_write( ci.mode_param[i].mapping, 8 );
+		}
+		
+		oggpack_write( 1, 1 );
+		
+		return true;
+	}
+	
+	public boolean vorbis_staticbook_pack( static_codebook c ) {
+		
+		int i,j;
+		int ordered = 0;
+		
+		// first the basic parameters
+		oggpack_write( 0x564342, 24 );
+		oggpack_write( c.dim, 16 );
+		oggpack_write( c.entries, 24 );
+		
+		// pack the codewords.  There are two packings; length ordered and length random.  Decide between the two now.
+		for ( i=1; i < c.entries; i++ )
+		    if ( c.lengthlist[i-1] == 0 || c.lengthlist[i] < c.lengthlist[i-1] )
+		    	break;
+		if ( i == c.entries)
+			ordered = 1;
+		
+		if ( ordered != 0 ) {
+			// length ordered.  We only need to say how many codewords of each length.
+			// The actual codewords are generated deterministically
+			
+			int count=0;
+		    oggpack_write( 1, 1 );  // ordered
+		    oggpack_write( c.lengthlist[0]-1, 5 ); // 1 to 32
+		    
+		    for ( i=1; i < c.entries; i++ ) {
+		    	int current = c.lengthlist[i];
+		    	int last = c.lengthlist[i-1];
+		    	if ( current > last ) {
+		    		for ( j=last; j < current; j++ ) {
+		    			oggpack_write( i-count, ilog( c.entries-count ) );
+		    			count=i;
+		    		}
+		    	}
+		    }
+		    
+		    oggpack_write( i-count, ilog( c.entries-count ) );
+		    
+		} else {
+			// length random.  Again, we don't code the codeword itself, just the length.
+			// This time, though, we have to encode each length
+			
+			oggpack_write( 0, 1 );   // unordered
+		    
+		    // algortihmic mapping has use for 'unused entries', which we tag here.  
+		    // The algorithmic mapping happens as usual, but the unused entry has no codeword.
+			
+			for ( i=0; i < c.entries; i++ )
+				if ( c.lengthlist[i] == 0 )
+					break;
+			if ( i == c.entries ) {
+				oggpack_write( 0, 1 ); // no unused entries
+				for ( i=0; i < c.entries; i++ )
+					oggpack_write( c.lengthlist[i]-1, 5 );
+			} else {
+				oggpack_write( 1, 1 ); // we have unused entries; thus we tag
+				for ( i=0; i < c.entries; i++ ) {
+					if ( c.lengthlist[i] == 0 ) {
+						oggpack_write( 0, 1 );
+					} else {
+						oggpack_write( 1, 1 );
+						oggpack_write( c.lengthlist[i]-1, 5 );
+					}
+				}
+			}
+		}
+		
+		// is the entry number the desired return value, or do we have a mapping? If we have a mapping, what type?
+		oggpack_write( c.maptype, 4 );
+		
+		switch ( c.maptype ) {
+		
+			case 0:
+				// no mapping
+			break;
+			
+			case 1:
+			case 2:
+				// implicitly populated value mapping
+				// explicitly populated value mapping
+				if ( c.quantlist == null ) {
+					// no quantlist?  error
+					System.out.println( "no quantlist exists");
+					return false;
+				}
+				
+				// values that define the dequantization
+				oggpack_write( c.q_min, 32 );
+				oggpack_write( c.q_delta, 32 );
+				oggpack_write( c.q_quant-1, 4 );
+				oggpack_write( c.q_sequencep, 1 );
+				
+				{
+					int quantvals;
+					switch ( c.maptype ) {
+					
+						case 1:
+							// a single column of (c->entries/c->dim) quantized values for
+							// building a full value list algorithmically (square lattice)
+							quantvals = c._book_maptype1_quantvals();
+						break;
+						
+						case 2:
+							// every value (c->entries*c->dim total) specified explicitly
+							quantvals = c.entries * c.dim;
+						break;
+						
+						default: // NOT_REACHABLE
+							quantvals = -1;
+					}
+					
+					// quantized values
+					for ( i=0; i < quantvals; i++ )
+						oggpack_write( Math.abs( c.quantlist[i] ), c.q_quant );
+				}
+			break;
+			
+			default:
+				// error case; we don't have any other map types now
+				System.out.println( "error case; we don't have any other map types now" );
+				return false;
+		}
+		
+		return true;
+	}
+	
+	public int vorbis_book_encode( codebook book, int a ) {
+		
+		oggpack_write( book.codelist[a], book.c.lengthlist[a] );
+		return book.c.lengthlist[a];
+		
+	}
+	
+	public void floor1_pack( vorbis_info_floor1 info ) {
+		
+		int j,k;
+		int count=0;
+		int rangebits;
+		int maxposit = info.postlist[1];
+		int maxclass = -1;
+		
+		// save out partitions
+		oggpack_write( info.partitions, 5 ); // only 0 to 31 legal
+		for ( j=0; j < info.partitions; j++ ) {
+			
+			oggpack_write( info.partitionclass[j], 4 ); // only 0 to 15 legal
+			if ( maxclass < info.partitionclass[j] )
+				maxclass = info.partitionclass[j];
+		}
+		
+		// save out partition classes
+		for ( j=0; j < maxclass+1; j++ ) {
+			
+			oggpack_write( info.class_dim[j]-1, 3 ); // 1 to 8
+			oggpack_write( info.class_subs[j], 2 ); // 0 to 3
+			if ( info.class_subs[j] > 0 )
+				oggpack_write( info.class_book[j], 8 );
+			
+			for ( k=0; k < (1<<info.class_subs[j]); k++ )
+				oggpack_write( info.class_subbook[j][k]+1, 8 );
+		}
+		
+		// save out the post list
+		oggpack_write( info.mult - 1, 2 );     // only 1,2,3,4 legal now
+		oggpack_write( ilog2( maxposit ), 4 );
+		rangebits = ilog2( maxposit );
+		
+		for ( j=0,k=0; j < info.partitions; j++ ) {
+			
+			count += info.class_dim[info.partitionclass[j]]; 
+			
+			for ( ; k<count; k++)
+		      oggpack_write( info.postlist[k+2], rangebits );
+		}
+	}
+	
+	static int seq = 0; 
+	
+	public int floor1_encode( vorbis_block vb, vorbis_look_floor1 look, int[] post, int[] ilogmask ) {
+		
+		int i,j;
+		vorbis_info_floor1 info = look.vi;
+		// int n = look.n;
+		int posts = look.posts;
+		codec_setup_info ci = vb.vd.vi.codec_setup;
+		int[] out = new int[VIF_POSIT+2];
+		static_codebook[] sbooks = ci.book_param;
+		codebook[] books = ci.fullbooks;
+		
+		// quantize values to multiplier spec
+		if ( post != null ) {
+			
+			for ( i=0; i < posts; i++ ) {
+				
+				int val = post[i]&0x7fff;
+				
+				switch ( info.mult ) {
+				
+					case 1: /* 1024 -> 256 */
+						val>>=2;
+					break;
+					
+					case 2: /* 1024 -> 128 */
+						val>>=3;
+					break;
+
+					case 3: /* 1024 -> 86 */
+						val/=12;
+					break;
+					
+					case 4: /* 1024 -> 64 */
+						val>>=4;
+					break;
+				}
+				post[i] = val | (post[i]&0x8000);
+			}
+			
+			out[0] = post[0];
+			out[1] = post[1];
+			
+			// find prediction values for each post and subtract them
+			for ( i=2; i < posts; i++ ) {
+				
+				int ln = look.loneighbor[i-2];
+				int hn = look.hineighbor[i-2];
+				int x0 = info.postlist[ln];
+				int x1 = info.postlist[hn];
+				int y0 = post[ln];
+				int y1 = post[hn];
+				
+				int predicted = render_point( x0, x1, y0, y1, info.postlist[i] );
+				
+				if ( ( (post[i]&0x8000) > 0 ) || (predicted==post[i]) ) {
+					
+					post[i] = predicted|0x8000; // in case there was roundoff jitter in interpolation
+					out[i] = 0;
+					
+				} else {
+					
+					int headroom = (look.quant_q-predicted < predicted?look.quant_q-predicted:predicted);
+					
+					int val = post[i]-predicted;
+					
+					// at this point the 'deviation' value is in the range +/- max
+					// range, but the real, unique range can always be mapped to
+					// only [0-maxrange).  So we want to wrap the deviation into
+					// this limited range, but do it in the way that least screws
+					// an essentially gaussian probability distribution.
+					
+					if ( val < 0)
+						if( val < -headroom )
+							val = headroom-val-1;
+						else
+							val = -1-(val<<1);
+					else
+						if ( val >= headroom)
+							val = val+headroom;
+						else
+							val<<=1;
+					
+					out[i]=val;
+					post[ln]&=0x7fff;
+					post[hn]&=0x7fff;
+				}
+			}
+			
+			// we have everything we need. pack it out
+			// mark nontrivial floor
+			oggpack_write( 1, 1 );
+			
+			// beginning/end post
+			look.frames++;
+			look.postbits += ilog(look.quant_q-1)*2;
+			oggpack_write( out[0], ilog(look.quant_q-1) );
+			oggpack_write( out[1], ilog(look.quant_q-1) );
+			
+			// partition by partition
+			for ( i=0,j=2; i < info.partitions; i++ ) {
+				
+				int class_local = info.partitionclass[i];
+				int cdim = info.class_dim[class_local];
+				int csubbits = info.class_subs[class_local];
+				int csub = 1<<csubbits;
+				// int bookas[8]={0,0,0,0,0,0,0,0};
+				int[] bookas = new int [ 8 ];
+				int cval=0;
+				int cshift=0;
+				int k,l;
+				
+				// generate the partition's first stage cascade value
+				if ( csubbits > 0 ) {
+					
+					// int maxval[8];
+					int[] maxval = new int[ 8 ];
+					
+					for ( k=0; k < csub; k++ ) {
+						
+						int booknum = info.class_subbook[class_local][k];
+						if ( booknum < 0 ){
+							maxval[k] = 1;
+						}else{
+							maxval[k] = sbooks[info.class_subbook[class_local][k]].entries;
+						}
+					}
+					
+					for ( k=0; k < cdim; k++ ) {
+						for ( l=0; l < csub; l++ ) {
+							int val = out[j+k];
+							if ( val < maxval[l] ) {
+								bookas[k] = l;
+								break;
+							}
+						}
+						cval|= bookas[k]<<cshift;
+						cshift+=csubbits;
+					}
+					// write it
+					look.phrasebits += vorbis_book_encode( books[info.class_book[class_local]], cval );
+				}
+				
+				// write post values 
+				for ( k=0; k < cdim; k++ ) {
+					
+					int book = info.class_subbook[class_local][bookas[k]];
+					if ( book >= 0 ) {
+						// hack to allow training with 'bad' books
+						if ( out[j+k] < books[book].entries )
+							look.postbits += vorbis_book_encode( books[book], out[j+k] );
+						/*else
+						 * fprintf(stderr,"+!");*/
+					}
+				}
+				j+=cdim;
+			}
+			
+			// generate quantized floor equivalent to what we'd unpack in decode
+			// render the lines
+			int hx=0;
+			int lx=0;
+			int ly=post[0]*info.mult;
+			
+			for ( j=1; j < look.posts; j++ ) {
+				
+				int current = look.forward_index[j];
+				int hy = post[current]&0x7fff;
+				
+				if ( hy == post[current] ) {
+					
+					hy *= info.mult;
+					hx = info.postlist[current];
+					
+					render_line0(lx,hx,ly,hy,ilogmask);
+					
+					lx=hx;
+					ly=hy;
+				}
+			}
+			
+			for ( j=hx; j < vb.pcmend/2; j++ )
+				ilogmask[j] = ly; // be certain
+			seq++;
+			return(1);
+			
+		} else {
+			
+			oggpack_write( 0, 1 );
+			// memset(ilogmask,0,vb.pcmend/2*sizeof(*ilogmask));
+			// for ( i=0; i < vb.pcmend/2; i++ )
+			//	ilogmask[i] = 0;
+			Arrays.fill( ilogmask, 0, vb.pcmend/2, 0 );
+			seq++;
+			return(0);
+		}
+	}
+	
+	public void res0_pack( vorbis_info_residue0 info ) {
+		
+		int j,acc=0;
+		oggpack_write( info.begin, 24 );
+		oggpack_write( info.end, 24 );
+		
+		oggpack_write( info.grouping-1, 24 );  // residue vectors to group and code with a partitioned book
+		
+		oggpack_write( info.partitions-1, 6 ); // possible partition choices
+		oggpack_write( info.groupbook, 8 );  // group huffman book
+		
+		// secondstages is a bitmask; as encoding progresses pass by pass, a bitmask
+		// of one indicates this partition class has bits to write this pass
+		
+		for ( j=0; j < info.partitions; j++ ) {
+			
+			if ( ilog( info.secondstages[j] ) > 3 ) {
+				// yes, this is a minor hack due to not thinking ahead
+				oggpack_write( info.secondstages[j], 3 ); 
+				oggpack_write( 1, 1 );
+				oggpack_write( info.secondstages[j]>>3, 5 ); 
+			} else {
+				oggpack_write( info.secondstages[j], 4 ); // trailing zero
+			}
+			
+		    acc += icount( info.secondstages[j] );
+		}
+		
+		for ( j=0; j < acc; j++ )
+			oggpack_write( info.booklist[j], 8 );
+	}
+	
+	public void mapping0_pack( vorbis_info vi, vorbis_info_mapping0 info ) {
+		
+		int i;
+		
+		/* another 'we meant to do it this way' hack...  up to beta 4, we
+		 * packed 4 binary zeros here to signify one submapping in use.  We
+		 * now redefine that to mean four bitflags that indicate use of
+		 * deeper features; bit0:submappings, bit1:coupling,
+		 * bit2,3:reserved. This is backward compatable with all actual uses
+		 * of the beta code. */
+		
+		if ( info.submaps > 1 ) {
+			oggpack_write( 1, 1 );
+			oggpack_write( info.submaps-1, 4 );
+		} else 
+			oggpack_write( 0, 1 );
+		
+		if ( info.coupling_steps > 0 ) {
+			oggpack_write( 1, 1 );
+			oggpack_write( info.coupling_steps-1, 8 );
+			
+			for ( i=0; i < info.coupling_steps; i++ ) {
+				oggpack_write( info.coupling_mag[i], ilog2( vi.channels ) );
+				oggpack_write( info.coupling_ang[i], ilog2( vi.channels ) );
+			}
+		} else
+			oggpack_write( 0, 1 );
+		
+		oggpack_write( 0, 2 ); // 2,3:reserved
+		
+		// we don't write the channel submappings if we only have one...
+		if ( info.submaps > 1 ) {
+			for ( i=0; i < vi.channels; i++ )
+				oggpack_write( info.chmuxlist[i],4 );
+		}
+		
+		for ( i=0; i < info.submaps; i++ ) {
+			oggpack_write( 0,8 ); // time submap unused
+			oggpack_write( info.floorsubmap[i], 8 );
+			oggpack_write( info.residuesubmap[i], 8 );
+		}
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/oggpack_buffer.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/ovectl_ratemanage2_arg.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/ovectl_ratemanage2_arg.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/ovectl_ratemanage2_arg.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,26 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class ovectl_ratemanage2_arg {
+	
+	  int    management_active;
+
+	  int   bitrate_limit_min_kbps;		// long
+	  int   bitrate_limit_max_kbps;		// long
+	  int   bitrate_limit_reservoir_bits;	// long
+	  float bitrate_limit_reservoir_bias;	// float
+
+	  int   bitrate_average_kbps;		// long
+	  float bitrate_average_damping;	// float
+}

Added: trunk/vorbis-java/org/xiph/libvorbis/private_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/private_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/private_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,72 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class private_state {
+
+	envelope_lookup ve;			// envelope lookup - *ve;
+	int[] window;				// window[2];
+	
+	mdct_lookup[][] transform;		// vorbis_look_transform **transform[2];// block, type
+	drft_lookup[] fft_look;			// fft_look[2];
+
+	int modebits;
+
+// TODO - floor, residue OOP function classes
+	
+// flr data & functions will always be floor1
+
+	vorbis_look_floor1[] flr;		// **flr;
+
+// residue data will always be res0
+
+	vorbis_look_residue0[] residue;		// **residue;
+
+	vorbis_look_psy[] psy;			// *psy;
+	vorbis_look_psy_global psy_g_look;	// *psy_g_look;
+
+	// local storage, only used on the encoding side.  This way the
+	// application does not need to worry about freeing some packets
+	// memory and not others; packet storage is always tracked.
+	// Cleared next call to a _dsp_ function
+
+	byte[] header;		// unsigned char *header;
+	byte[] header1;		// unsigned char *header1;
+	byte[] header2;		// unsigned char *header2;
+
+	bitrate_manager_state bms;
+
+	int sample_count;
+
+
+	public private_state() {
+
+		window = new int[2];
+
+		// backend_state.transform[0] = _ogg_calloc(VI_TRANSFORMB,sizeof(*backend_state.transform[0]));
+		// backend_state.transform[1] = _ogg_calloc(VI_TRANSFORMB,sizeof(*backend_state.transform[1]));
+		// MDCT is tranform 0
+		// backend_state.transform[0][0] = _ogg_calloc(1,sizeof(mdct_lookup));
+		// backend_state.transform[1][0] = _ogg_calloc(1,sizeof(mdct_lookup));
+
+		transform = new mdct_lookup[2][2];
+		transform[0][0] = new mdct_lookup();
+		transform[0][1] = new mdct_lookup();
+		transform[1][0] = new mdct_lookup();
+		transform[1][1] = new mdct_lookup();
+
+		fft_look = new drft_lookup[2];
+		fft_look[0] = new drft_lookup();
+		fft_look[1] = new drft_lookup();
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/private_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/static_bookblock.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/static_bookblock.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/static_bookblock.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,32 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class static_bookblock {
+
+	static_codebook[][] books;
+
+
+	public static_bookblock( static_codebook[][] _books ) {
+
+		books = new static_codebook[12][3];
+
+		for ( int i=0; i < _books.length; i++ )
+			System.arraycopy( _books[i], 0, books[i], 0, _books[i].length );
+	}
+
+	public static_bookblock( static_bookblock src ) {
+	
+		this( src.books );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/static_bookblock.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/static_codebook.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/static_codebook.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/static_codebook.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,134 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class static_codebook {
+
+	int dim;			// long dim // codebook dimensions (elements per vector)
+	int entries;		// long entries // codebook entries
+	int[] lengthlist;	// long *lengthlist // codeword lengths in bits
+
+	// mapping **************************************************
+	int maptype;		// 0=none
+						// 1=implicitly populated values from map column 
+						// 2=listed arbitrary values
+
+	// The below does a linear, single monotonic sequence mapping.
+	int q_min;			// long q_min // packed 32 bit float; quant value 0 maps to minval
+	int q_delta;		// long q_delta // packed 32 bit float; val 1 - val 0 == delta
+	int q_quant;		// bits: 0 < quant <= 16
+	int q_sequencep;	// bitflag
+
+	int[] quantlist;	// long *quantlist
+						// map == 1: (int)(entries^(1/dim)) element column map
+			   			// map == 2: list of dim*entries quantized entry vals
+
+	// encode helpers *******************************************
+	encode_aux_nearestmatch nearest_tree;	// *nearest_tree
+	encode_aux_threshmatch thresh_tree;		// *thresh_tree
+	encode_aux_pigeonhole pigeon_tree;		// *pigeon_tree
+
+	int allocedp;
+
+
+	public static_codebook( int _dim, int _entries, int[] _lengthlist, int _maptype, int _q_min, int _q_delta, int _q_quant, int _q_sequencep, int[] _quantlist, 
+				encode_aux_nearestmatch _nearest_tree, encode_aux_threshmatch _thresh_tree, encode_aux_pigeonhole _pigeon_tree, int _allocedp ) {
+
+		dim = _dim;
+		entries = _entries;
+
+		if ( _lengthlist == null )
+			lengthlist = null;
+		else
+			lengthlist = (int[])_lengthlist.clone();
+
+
+		maptype = _maptype;
+
+		q_min = _q_min;
+		q_delta = _q_delta;
+		q_quant = _q_quant;
+		q_sequencep = _q_sequencep;
+
+		if ( _quantlist == null )
+			quantlist = null;
+		else
+			quantlist = (int[])_quantlist.clone();
+
+		nearest_tree = _nearest_tree;
+		thresh_tree = _thresh_tree;
+		pigeon_tree = _pigeon_tree;
+
+		allocedp = _allocedp;
+	}
+
+	public static_codebook( int _dim ) {
+
+		dim = _dim;
+		entries = _dim;
+		lengthlist = new int[] {};
+		maptype = _dim;
+
+		q_min = _dim;
+		q_delta = _dim;
+		q_quant = _dim;
+		q_sequencep = _dim;
+
+		quantlist = new int[] {};
+
+		nearest_tree = null;
+		thresh_tree = null;
+		pigeon_tree = null;
+
+		allocedp = _dim;
+	}
+
+	public static_codebook( static_codebook src ) {
+
+		this( src.dim, src.entries, src.lengthlist, src.maptype, src.q_min, src.q_delta, src.q_quant, src.q_sequencep, src.quantlist, 
+				new encode_aux_nearestmatch( src.nearest_tree), new encode_aux_threshmatch( src.thresh_tree ), new encode_aux_pigeonhole( src.pigeon_tree ), src.allocedp );
+	}
+	
+	// public long _book_maptype1_quantvals()
+	public int _book_maptype1_quantvals() {
+
+		// long vals
+		int vals= new Double( Math.floor( Math.pow( new Integer(entries).floatValue(), 1.0f/dim ) ) ).intValue();
+
+		// the above *should* be reliable, but we'll not assume that FP is
+		// ever reliable when bitstream sync is at stake; verify via integer
+		// means that vals really is the greatest value of dim for which
+		// vals^b->bim <= b->entries
+
+		// treat the above as an initial guess
+		while (true) {
+			long acc=1;
+			long acc1=1;
+			int i;
+			for ( i=0; i < dim; i++ ) {
+				acc*=vals;
+				acc1*=vals+1;
+			}
+
+			if ( acc <= entries && acc1 > entries ){
+				return vals;
+			} else{
+				if ( acc > entries ) {
+					vals--;
+				} else {
+					vals++;
+				}
+			}
+		}
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/static_codebook.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/ve_setup_data_template.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/ve_setup_data_template.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/ve_setup_data_template.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,133 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class ve_setup_data_template {
+
+	int mappings;
+	float[] rate_mapping;							// double *rate_mapping
+	float[] quality_mapping;						// double *quality_mapping
+	int coupling_restriction;
+	int samplerate_min_restriction;					// long samplerate_min_restriction
+	int samplerate_max_restriction;					// long samplerate_max_restriction
+
+	int[] blocksize_short;
+	int[] blocksize_long;
+
+	att3[] psy_tone_masteratt;
+	int[] psy_tone_0dB;
+	int[] psy_tone_dBsuppress;
+
+	vp_adjblock[] psy_tone_adj_impulse;
+	vp_adjblock[] psy_tone_adj_long;
+	vp_adjblock[] psy_tone_adj_other;
+
+	noiseguard[] psy_noiseguards;
+	noise3[] psy_noise_bias_impulse;
+	noise3[] psy_noise_bias_padding;
+	noise3[] psy_noise_bias_trans;
+	noise3[] psy_noise_bias_long;
+	int[] psy_noise_dBsuppress;
+
+	compandblock[] psy_noise_compand;
+	float[] psy_noise_compand_short_mapping;		// double *psy_noise_compand_short_mapping
+	float[] psy_noise_compand_long_mapping;			// double *psy_noise_compand_long_mapping
+
+	int[][] psy_noise_normal_start;
+	int[][] psy_noise_normal_partition;
+	float[] psy_noise_normal_thresh;				// double *psy_noise_normal_thresh
+
+	int[] psy_ath_float;
+	int[] psy_ath_abs;
+
+	float[] psy_lowpass;							// double *psy_lowpass
+
+	vorbis_info_psy_global[] global_params;
+	float[] global_mapping;							// double *global_mapping;
+	adj_stereo[] stereo_modes;
+
+	static_codebook[][] floor_books;
+	vorbis_info_floor1[] floor_params;
+	int[] floor_short_mapping;
+	int[] floor_long_mapping;
+
+	vorbis_mapping_template[] maps;
+	
+	
+	public ve_setup_data_template() {}
+
+    public ve_setup_data_template(  int _mappings, float[] _rate_mapping, float[] _quality_mapping, int _coupling_restriction, int _samplerate_min_restriction, int _samplerate_max_restriction,
+									int[] _blocksize_short, int[] _blocksize_long,
+									att3[] _psy_tone_masteratt, int[] _psy_tone_0dB, int[] _psy_tone_dBsuppress,
+									vp_adjblock[] _psy_tone_adj_impulse, vp_adjblock[] _psy_tone_adj_long, vp_adjblock[] _psy_tone_adj_other,
+									noiseguard[] _psy_noiseguards, noise3[] _psy_noise_bias_impulse, noise3[] _psy_noise_bias_padding, noise3[] _psy_noise_bias_trans, noise3[] _psy_noise_bias_long, int[] _psy_noise_dBsuppress,
+									compandblock[] _psy_noise_compand, float[] _psy_noise_compand_short_mapping, float[] _psy_noise_compand_long_mapping,
+									int[][] _psy_noise_normal_start, int[][] _psy_noise_normal_partition, float[] _psy_noise_normal_thresh,
+									int[] _psy_ath_float, int[] _psy_ath_abs,
+									float[] _psy_lowpass,
+									vorbis_info_psy_global[] _global_params, float[] _global_mapping, adj_stereo[] _stereo_modes,
+									static_codebook[][] _floor_books, vorbis_info_floor1[] _floor_params, int[] _floor_short_mapping, int[] _floor_long_mapping,
+									vorbis_mapping_template[] _maps	)
+    {
+		mappings = _mappings;
+		rate_mapping = _rate_mapping;
+		quality_mapping = _quality_mapping;
+		coupling_restriction = _coupling_restriction;
+		samplerate_min_restriction = _samplerate_min_restriction;
+		samplerate_max_restriction = _samplerate_max_restriction;
+		
+		blocksize_short = _blocksize_short;
+		blocksize_long = _blocksize_long;
+		
+		psy_tone_masteratt = _psy_tone_masteratt;
+		psy_tone_0dB = _psy_tone_0dB;
+		psy_tone_dBsuppress = _psy_tone_dBsuppress;
+		
+		psy_tone_adj_impulse = _psy_tone_adj_impulse;
+		psy_tone_adj_long = _psy_tone_adj_long;
+		psy_tone_adj_other = _psy_tone_adj_other;
+		
+		psy_noiseguards = _psy_noiseguards;
+		psy_noise_bias_impulse = _psy_noise_bias_impulse;
+		psy_noise_bias_padding = _psy_noise_bias_padding;
+		psy_noise_bias_trans = _psy_noise_bias_trans;
+		psy_noise_bias_long = _psy_noise_bias_long;
+		psy_noise_dBsuppress = _psy_noise_dBsuppress;
+		
+		psy_noise_compand = _psy_noise_compand;
+		psy_noise_compand_short_mapping = _psy_noise_compand_short_mapping;
+		psy_noise_compand_long_mapping = _psy_noise_compand_long_mapping;
+		
+		psy_noise_normal_start = _psy_noise_normal_start;
+		psy_noise_normal_partition = _psy_noise_normal_partition;
+		psy_noise_normal_thresh = _psy_noise_normal_thresh;
+		
+		psy_ath_float = _psy_ath_float;
+		psy_ath_abs = _psy_ath_abs;
+		
+		psy_lowpass = _psy_lowpass;
+		
+		global_params = _global_params;
+		global_mapping = _global_mapping;
+		stereo_modes = _stereo_modes;
+		
+		floor_books = _floor_books;
+		floor_params = _floor_params;
+		floor_short_mapping = _floor_short_mapping;
+		floor_long_mapping = _floor_long_mapping;
+		
+		maps = _maps;	
+    }
+    
+}
+			
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/ve_setup_data_template.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_block.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_block.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_block.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,2019 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import org.xiph.libogg.*;
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+
+public class vorbis_block {
+
+	// necessary stream state for linking to the framing abstraction
+
+	float[][] pcm;		 // float **pcm // this is a pointer into local storage
+	int pcm_offset;
+	oggpack_buffer opb;
+  
+	int lW;			// long  
+	int W;			// long  
+	int nW;			// long
+	int pcmend;
+	int mode;
+
+	int eofflag;
+	int granulepos;		// ogg_int64_t 
+	int sequence;		// ogg_int64_t
+	vorbis_dsp_state vd; 	// *vd // For read-only access of configuration 
+
+	// local storage to avoid remallocing; it's up to the mapping to structure it
+	
+	Object[] localstore;
+	int localtop;		// long
+	int localalloc;		// long
+	int totaluse;		// long
+
+	alloc_chain reap;
+
+	// bitmetrics for the frame
+	int glue_bits;		// long
+	int time_bits;		// long
+	int floor_bits;		// long
+	int res_bits;		// long
+
+	vorbis_block_internal internal;	// void *internal;
+	
+	// vorbis_window used to hold window arrays and functions
+	vorbis_window window;
+
+	
+	public vorbis_block( vorbis_dsp_state v ) {
+
+		vd = v;
+		localalloc = 0;
+		opb = new oggpack_buffer();
+
+		if ( v.analysisp > 0 ) {
+
+			internal = new vorbis_block_internal();
+			internal.ampmax = -9999.0f;
+			
+			for ( int i=0; i < PACKETBLOBS; i++ ) {
+				if ( i == PACKETBLOBS/2 ) {
+					internal.packetblob[i] = opb;
+				}
+				else {
+					internal.packetblob[i] = new oggpack_buffer();
+				}
+			}
+		}
+		
+		window = new vorbis_window();
+	}
+	
+	public int _vorbis_block_alloc( int bytes ) {
+		
+		bytes = (bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1);
+		
+		if ( bytes+localtop > localalloc ) {
+			
+		    // can't just _ogg_realloc... there are outstanding pointers 
+			if ( localstore != null ) {
+				alloc_chain link = new alloc_chain();
+				totaluse += localtop;
+				link.next = reap;
+				// link.ptr = localstore;
+				link.ptr = new Object[ localtop ];
+				System.arraycopy( localstore, 0, link.ptr, 0, localtop );
+				reap = link;
+			}
+		    // highly conservative
+			localalloc = bytes;
+			// localstore = _ogg_malloc(vb->localalloc);
+			localstore = new Object[ localalloc ];
+			localtop = 0;
+		}
+			
+		// void *ret=(void *)(((char *)vb->localstore)+vb->localtop);
+		int ret = localtop;
+		localtop += bytes;
+	
+		return ret;
+	}
+	
+	public void _vorbis_block_ripcord() {
+		
+		// reap the chain
+		while ( reap != null ) {
+			
+			alloc_chain next = reap.next;
+			// _ogg_free(reap->ptr);
+			// memset(reap,0,sizeof(*reap));
+			// _ogg_free(reap);
+			reap = null;
+		    reap = next;
+		}
+
+		// consolidate storage
+		if ( totaluse > 0 ) {
+			// localstore =_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc);
+			Object[] temp = new Object[ totaluse + localalloc ];
+			System.arraycopy( localstore, 0, temp, 0, localalloc );
+			localstore = temp;
+			localalloc += totaluse;
+			totaluse = 0;
+		}
+		
+		// pull the ripcord
+		localtop = 0;
+		reap = null;
+	}
+	
+	public boolean vorbis_analysis_blockout( vorbis_dsp_state v ) {
+		
+		int i;
+		codec_setup_info ci = v.vi.codec_setup;
+		private_state b = v.backend_state;
+		vorbis_look_psy_global g = b.psy_g_look;
+		int beginW = v.centerW-ci.blocksizes[v.W]/2;
+		int centerNext;
+		vorbis_block_internal vbi = internal;
+		
+		// check to see if we're started...
+		if ( v.preextrapolate <= 0 )
+			return false;
+		
+		// check to see if we're done...
+		if ( v.eofflag == -1 )
+			return false;
+		
+		// By our invariant, we have lW, W and centerW set.  Search for
+		// the next boundary so we can determine nW (the next window size)
+		// which lets us compute the shape of the current block's window
+		
+		// we do an envelope search even on a single blocksize; we may still be throwing 
+		// more bits at impulses, and envelope search handles  marking impulses too
+		
+		int bp = v._ve_envelope_search();
+		if ( bp == -1 ) {
+			
+			if ( v.eofflag == 0 )
+		    	  return false; // not enough data currently to search for a full long block
+			v.nW=0;
+		} else {
+			
+			if ( ci.blocksizes[0] == ci.blocksizes[1] )
+				v.nW = 0;
+			else
+				v.nW = bp;
+		}
+		
+		centerNext = v.centerW+ci.blocksizes[v.W]/4+ci.blocksizes[v.nW]/4;
+		
+		// center of next block + next block maximum right side.
+		
+		int blockbound = centerNext+ci.blocksizes[v.nW]/2;
+		
+		// not enough data yet; although this check is
+		// less strict that the _ve_envelope_search, the 
+		// search is not run if we only use one block size
+		
+		if ( v.pcm_current < blockbound )
+			return false;
+		
+		// fill in the block.  Note that for a short window, lW and nW are *short* regardless of actual settings in the stream
+		
+		_vorbis_block_ripcord();
+		lW = v.lW;
+		W = v.W;
+		nW = v.nW;
+		
+		if ( v.W > 0 ){
+			if ( (v.lW <= 0) || (v.nW <= 0) ) {
+				vbi.blocktype = BLOCKTYPE_TRANSITION;
+			} else {
+				vbi.blocktype = BLOCKTYPE_LONG;
+			}
+		} else {
+			if ( v._ve_envelope_mark() ) {
+				vbi.blocktype = BLOCKTYPE_IMPULSE;
+			} else {
+				vbi.blocktype = BLOCKTYPE_PADDING;
+			}
+		}
+		
+		vd = v;
+		sequence = v.sequence++;
+		granulepos = v.granulepos;
+		pcmend = ci.blocksizes[v.W];
+		
+		// copy the vectors; this uses the local storage in vb
+		
+		// this tracks 'strongest peak' for later psychoacoustics
+		// moved to the global psy state; clean this mess up
+		if ( vbi.ampmax > g.ampmax )
+			g.ampmax = vbi.ampmax;
+		g.ampmax = v._vp_ampmax_decay( g.ampmax );
+		vbi.ampmax = g.ampmax;
+		
+// TODO - CRITICAL - memory arrays
+// we have some duplicate memory arrays probably increasing memory footprint
+// would need to work on offset variables for pcmdelay
+		
+//		pcm = _vorbis_block_alloc(vb,sizeof(*pcm)*v.vi.channels);
+		pcm = new float[ v.vi.channels ][];
+
+//		vbi.pcmdelay = _vorbis_block_alloc(vb,sizeof(*vbi.pcmdelay)*v.vi.channels);
+		vbi.pcmdelay = new float[ v.vi.channels ][];
+		
+		for ( i=0; i < v.vi.channels; i++ ) {
+			
+//			vbi.pcmdelay[i] = _vorbis_block_alloc(vb,(pcmend+beginW)*sizeof(*vbi.pcmdelay[i]));
+			vbi.pcmdelay[i] = new float[ pcmend+beginW ];
+			
+//			memcpy( vbi.pcmdelay[i], v.pcm[i], (pcmend+beginW)*sizeof(*vbi.pcmdelay[i]) );
+			System.arraycopy( v.pcm[i], 0, vbi.pcmdelay[i], 0, pcmend+beginW );
+			
+//			pcm[i] = vbi.pcmdelay[i]+beginW;
+			pcm[i] = new float[ vbi.pcmdelay[i].length - beginW ];
+			System.arraycopy( vbi.pcmdelay[i], beginW, pcm[i], 0, vbi.pcmdelay[i].length - beginW );
+		}
+		
+		// handle eof detection: 
+		//     eof==0 means that we've not yet received EOF
+		//     eof>0  marks the last 'real' sample in pcm[]
+		//     eof<0  'no more to do'; doesn't get here */
+		
+		if ( v.eofflag > 0) {
+			if ( v.centerW >= v.eofflag ) {
+				v.eofflag=-1;
+				eofflag=1;
+				return true;
+			}
+		}
+		
+		// advance storage vectors and clean up
+		
+		int new_centerNext = ci.blocksizes[1]/2;
+		int movementW = centerNext-new_centerNext;
+		
+		if ( movementW > 0 ) {
+			
+			b.ve._ve_envelope_shift( movementW );
+			v.pcm_current -= movementW;
+			
+			for (i=0; i < v.vi.channels; i++ ) {
+				// memmove(v.pcm[i],v.pcm[i]+movementW,v.pcm_current*sizeof(*v.pcm[i]));
+				System.arraycopy( v.pcm[i], movementW, v.pcm[i], 0, v.pcm_current );
+			}
+			
+			v.lW = v.W;
+			v.W = v.nW;
+			v.centerW = new_centerNext;
+			
+			if ( v.eofflag > 0 ) {
+				v.eofflag -= movementW;
+				if ( v.eofflag <= 0 )
+					v.eofflag = -1;
+				// do not add padding to end of stream!
+				if ( v.centerW >= v.eofflag ) {
+					v.granulepos += movementW-(v.centerW-v.eofflag);
+				} else {
+					v.granulepos += movementW;
+				}
+			} else {
+				v.granulepos += movementW;
+			}
+		}
+		
+		return true;
+	}
+	
+	public boolean vorbis_bitrate_managed() {
+		
+		// if(bm->queue_binned)return(1);
+		
+		if ( vd.backend_state.bms.managed > 0 )
+			return true;
+		
+		return false;
+	}
+	
+	public boolean vorbis_analysis( ogg_packet op ) {
+						
+		glue_bits = 0;
+		time_bits = 0;
+		floor_bits = 0;
+		res_bits = 0;
+		
+		// first things first.  Make sure encode is ready
+		 for ( int i=0; i < PACKETBLOBS; i++ )
+			 internal.packetblob[i].oggpack_reset();		  
+		
+		// we only have one mapping type (0), and we let the mapping code itself
+		// figure out what soft mode to use.  This allows easier bitrate management
+
+		mapping0_forward();
+		
+		if ( op != null ) {
+			
+			if ( vorbis_bitrate_managed() )
+			      return false;	// The app is using a bitmanaged mode... but not using the bitrate management interface.
+
+			op.packet = opb.buffer;
+			op.bytes = opb.oggpack_bytes();
+			op.b_o_s = 0;
+			op.e_o_s = eofflag;
+			op.granulepos = granulepos;
+			op.packetno = sequence; // for sake of completeness
+		}
+		
+		return true;
+	}
+
+	// the floor has already been filtered to only include relevant sections
+	static int accumulate_fit( float[] flr, int mdct, int x0, int x1, lsfit_acc a, int n, vorbis_info_floor1 info ) {
+		
+		int i;
+		// int quantized = vorbis_dBquant(flr[x0]);
+		
+		int xa=0, ya=0, x2a=0, y2a=0, xya=0, na=0, xb=0, yb=0, x2b=0, y2b=0, xyb=0, nb=0;
+
+		a.x0=x0;
+		a.x1=x1;
+		if ( x1 >= n )
+			x1 = n-1;
+		
+		for ( i=x0; i <= x1; i++ ) {
+			
+			int quantized = vorbis_dBquant(flr[i]);
+			if (quantized > 0 ) {
+				
+				if ( flr[mdct+i]+info.twofitatten >= flr[i] ) {
+					
+					xa  += i;
+					ya  += quantized;
+					x2a += i*i;
+					y2a += quantized*quantized;
+					xya += i*quantized;
+					na++;
+					
+				} else {
+					
+					xb  += i;
+					yb  += quantized;
+					x2b += i*i;
+					y2b += quantized*quantized;
+					xyb += i*quantized;
+					nb++;
+				}
+			}
+		}
+		
+		xb += xa;
+		yb += ya;
+		x2b += x2a;
+		y2b += y2a;
+		xyb += xya;
+		nb += na;
+		
+		// weight toward the actually used frequencies if we meet the threshhold
+		
+		int weight = new Float( nb*info.twofitweight/(na+1) ).intValue();
+		
+		a.xa = xa*weight+xb;
+		a.ya = ya*weight+yb;
+		a.x2a = x2a*weight+x2b;
+		a.y2a = y2a*weight+y2b;
+		a.xya = xya*weight+xyb;
+		a.an = na*weight+nb;
+		
+		return na;
+	}
+	
+	static int[] fit_line( lsfit_acc[] a, int offset, int fits, int y0, int y1 ) {
+		
+		int x=0, y=0, x2=0, y2=0, xy=0, an=0, i;
+		int x0 = a[offset].x0;
+		int x1 = a[offset+fits-1].x1;
+		
+		for ( i=0; i < fits; i++ ) {
+			
+			x += a[offset+i].xa;
+			y += a[offset+i].ya;
+			x2 += a[offset+i].x2a;
+			y2 += a[offset+i].y2a;
+			xy += a[offset+i].xya;
+			an += a[offset+i].an;
+		}
+		
+		// if (*y0 >= 0 ) {
+		if ( y0 >= 0 ) {
+			
+			x += x0;
+		    y +=  y0;			// y +=  *y0;
+		    x2 +=  x0 *  x0;
+		    y2 += y0 * y0;	// y2 += *y0 * *y0;
+		    xy += y0 *  x0;		// xy += *y0 *  x0;
+		    an++;
+		}
+
+		// if(*y1>=0){
+		if ( y1 >= 0 ) {
+			x += x1;
+			y +=  y1;			// y+=  *y1;
+			x2 +=  x1 *  x1;
+			y2 += y1 * y1;		// y2+= *y1 * *y1;
+			xy += y1 *  x1;		// xy+= *y1 *  x1;
+			an++;
+		}
+		
+		if ( an > 0) {
+			
+			// need 64 bit multiplies, which C doesn't give portably as int
+			double fx = x;
+			double fy = y;
+			double fx2 = x2;
+			double fxy = xy;
+			double denom = 1./(an*fx2-fx*fx);
+			double a_local = (fy*fx2-fxy*fx)*denom;
+			double b = (an*fxy-fx*fy)*denom;
+		    y0 = (int)Math.rint(a_local+b*x0);		// *y0=rint(a_local+b*x0);
+		    y1 = (int)Math.rint(a_local+b*x1);		// *y1=rint(a_local+b*x1);
+		    
+		    // limit to our range!
+		    if ( y0 > 1023 )		// if(*y0>1023)*y0=1023;
+		    	y0=1023;
+		    if ( y1 > 1023 )		// if(*y1>1023)*y1=1023;
+		    	y1=1023;
+		    if ( y0 < 0 )		// if(*y0<0)*y0=0;
+		    	y0=0;
+		    if ( y1 < 0 )		// if(*y1<0)*y1=0;
+		    	y1=0;
+		} else {
+		    y0 = 0;		// *y0=0;
+		    y1 = 0;		// *y1=0;
+		}
+		
+		int[] return_buffer = { y0, y1 };
+		return return_buffer;
+	}
+	
+	static int inspect_error( int x0, int x1, int y0, int y1, float[] mask, int mdct, vorbis_info_floor1 info ) {
+		
+		int dy = y1-y0;
+		int adx = x1-x0;
+		int ady = Math.abs(dy);
+		int base = dy/adx;
+		int sy = (dy<0?base-1:base+1);
+		int x = x0;
+		int y = y0;
+		int err = 0;
+		int val = vorbis_dBquant(mask[x]);
+		int mse = 0;
+		int n = 0;
+		
+		ady -= Math.abs(base*adx);
+		
+		mse = (y-val);
+		mse *= mse;
+		n++;
+		
+		if ( mask[mdct+x]+info.twofitatten >= mask[x] ) {
+			if ( y+info.maxover < val )
+		    	return(1);
+			if ( y-info.maxunder > val )
+				return(1);
+		}
+		
+		while ( ++x < x1 ) {
+			
+			err = err+ady;
+			if ( err >= adx ) {
+				err-=adx;
+				y+=sy;
+			} else {
+				y += base;
+			}
+			
+			val = vorbis_dBquant(mask[x]);
+			mse += ((y-val)*(y-val));
+			n++;
+			if ( mask[mdct+x]+info.twofitatten >= mask[x] ) {
+				if ( val > 0 ) {
+					if (y+info.maxover<val )
+						return(1);
+					if (y-info.maxunder>val )
+						return(1);
+				}
+			}
+		}
+		
+		if ( info.maxover*info.maxover/n > info.maxerr)
+			return(0);
+		if ( info.maxunder*info.maxunder/n > info.maxerr)
+			return(0);
+		if ( mse/n > info.maxerr )
+			return(1);
+		return(0);
+	}
+	
+	static int post_Y( int[] A, int[] B, int pos ) {
+		
+		if ( A[pos] < 0 )
+			return B[pos];
+		if ( B[pos] < 0 )
+			return A[pos];
+		
+		return (A[pos]+B[pos])>>>1;
+	}
+
+	public int[] floor1_fit( vorbis_look_floor1 look, int logmdct, float[] logmask) {
+		
+		  int i,j;
+		  
+		  vorbis_info_floor1 info = look.vi;
+		  int n = look.n;
+		  int posts = look.posts;
+		  int nonzero = 0;
+		  
+		  // lsfit_acc fits[VIF_POSIT+1];
+		  // int fit_valueA[VIF_POSIT+2]; // index by range list position
+		  // int fit_valueB[VIF_POSIT+2]; // index by range list position
+		  // int loneighbor[VIF_POSIT+2]; // sorted index of range list position (+2)
+		  // int hineighbor[VIF_POSIT+2]; 
+		  // int *output=NULL;
+		  // int memo[VIF_POSIT+2];
+
+		  lsfit_acc[] fits = new lsfit_acc[VIF_POSIT+1];
+		  for ( i=0; i < VIF_POSIT+1; i++ )
+			  fits[i] = new lsfit_acc();
+		  
+		  int[] fit_valueA = new int[VIF_POSIT+2]; // index by range list position
+		  int[] fit_valueB = new int[VIF_POSIT+2]; // index by range list position
+
+		  int[] loneighbor = new int[VIF_POSIT+2]; // sorted index of range list position (+2)
+		  int[] hineighbor = new int[VIF_POSIT+2]; 
+		  int[] output = null;
+		  int[] memo= new int[VIF_POSIT+2];
+		  
+		  int[] return_buffer = new int[2];
+
+		  for (i=0;i<posts;i++)
+			  fit_valueA[i]=-200; // mark all unused
+		  for (i=0;i<posts;i++)
+			  fit_valueB[i]=-200; // mark all unused
+		  for (i=0;i<posts;i++)
+			  loneighbor[i]=0; // 0 for the implicit 0 post
+		  for (i=0;i<posts;i++)
+			  hineighbor[i]=1; // 1 for the implicit post at n
+		  for (i=0;i<posts;i++)
+			  memo[i]=-1;      // no neighbor yet
+		  
+		  // quantize the relevant floor points and collect them into line fit
+		  // structures (one per minimal division) at the same time
+		  
+		  if ( posts == 0 ) {
+			  nonzero += accumulate_fit( logmask, logmdct, 0, n, fits[0], n, info );
+		  } else {
+			  for ( i=0; i < posts-1; i++ )
+				  nonzero += accumulate_fit( logmask, logmdct, look.sorted_index[i], look.sorted_index[i+1], fits[i], n, info );
+		  }
+		  
+		  if ( nonzero > 0 ) {
+			  
+			  // start by fitting the implicit base case....
+			  int y0 = -200;
+			  int y1 = -200;
+			  return_buffer = fit_line( fits, 0, posts-1, y0, y1 );
+			  y0 = return_buffer[0];
+			  y1 = return_buffer[1];
+			  
+			  fit_valueA[0] = y0;
+			  fit_valueB[0] = y0;
+			  fit_valueB[1] = y1;
+			  fit_valueA[1] = y1;
+			  
+			  // Non degenerate case
+			  // start progressive splitting.  This is a greedy, non-optimal
+		      // algorithm, but simple and close enough to the best answer.
+			  for ( i=2; i<posts; i++ ) {
+				  int sortpos = look.reverse_index[i];
+				  int ln = loneighbor[sortpos];
+				  int hn = hineighbor[sortpos];
+				  
+				  // eliminate repeat searches of a particular range with a memo
+				  if ( memo[ln]!= hn ) {
+					  // haven't performed this error search yet
+					  int lsortpos = look.reverse_index[ln];
+					  int hsortpos = look.reverse_index[hn];
+					  memo[ln]=hn;
+					  
+					  // A note: we want to bound/minimize *local*, not global, error
+					  int lx = info.postlist[ln];
+					  int hx = info.postlist[hn];	  
+					  int ly = post_Y( fit_valueA, fit_valueB, ln );
+					  int hy = post_Y( fit_valueA, fit_valueB, hn );
+					  
+					  if ( ly == -1 || hy == -1 ) {
+						  System.out.println( "ERROR: We want to bound/minimize *local*, not global" );
+						  System.exit(1);
+					  }
+					  
+					  if ( inspect_error( lx, hx, ly, hy, logmask, logmdct, info ) > 0 ) {
+						  
+						  // outside error bounds/begin search area.  Split it.
+						  int ly0 = -200;
+						  int ly1 = -200;
+						  int hy0 = -200;
+						  int hy1 = -200;
+						  return_buffer = fit_line( fits, lsortpos, sortpos-lsortpos, ly0, ly1 );
+						  ly0 = return_buffer[0];
+						  ly1 = return_buffer[1];
+						  return_buffer = fit_line( fits, sortpos, hsortpos-sortpos, hy0, hy1 );
+						  hy0 = return_buffer[0];
+						  hy1 = return_buffer[1];
+						  
+						  // store new edge values
+						  fit_valueB[ln] = ly0;
+						  if ( ln == 0 )
+							  fit_valueA[ln] = ly0;
+						  fit_valueA[i] = ly1;
+						  
+						  fit_valueB[i] = hy0;
+						  fit_valueA[hn] = hy1;
+						  if ( hn == 1 )
+							  fit_valueB[hn] = hy1;
+						  
+						  if ( ly1 >= 0 || hy0 >= 0 ) {
+							  // store new neighbor values
+							  for ( j=sortpos-1; j >= 0; j-- )
+								  if ( hineighbor[j] == hn )
+									  hineighbor[j] = i;
+								  else
+									  break;
+							  for ( j=sortpos+1; j < posts; j++ )
+								  if ( loneighbor[j] == ln )
+									  loneighbor[j] = i;
+								  else
+									  break;
+						  }
+					  } else {
+						  fit_valueA[i] = -200;
+						  fit_valueB[i] = -200;
+					  }
+				  }
+			  }
+			  
+			  // output = _vorbis_block_alloc(vb,sizeof(*output)*posts);
+			  output = new int[ posts ];
+			  
+			  output[0] = post_Y( fit_valueA, fit_valueB, 0 );
+			  output[1] = post_Y( fit_valueA, fit_valueB, 1 );
+			  
+			  // fill in posts marked as not using a fit; we will zero back out to 'unused' when encoding
+			  // them so long as curve interpolation doesn't force them into use
+			  
+			  for ( i=2; i < posts; i++ ) {
+				  
+				  int ln = look.loneighbor[i-2];
+				  int hn = look.hineighbor[i-2];
+				  int x0 = info.postlist[ln];
+				  int x1 = info.postlist[hn];
+				  y0 = output[ln];
+				  y1 = output[hn];
+				  
+				  int predicted = render_point( x0, x1, y0, y1, info.postlist[i] );
+				  int vx = post_Y( fit_valueA, fit_valueB, i );
+				  
+				  if ( vx >= 0 && predicted != vx ) { 
+					  output[i] = vx;
+				  } else {
+					  output[i] = predicted|0x8000;
+				  }
+			  }
+		  }
+
+		  return output;
+	}
+	
+	static int[] floor1_interpolate_fit( vorbis_look_floor1 look, int[] A,int[] B, int del ) {
+		
+		int i;
+		int posts = look.posts;
+		int[] output = null;
+		
+		if ( A != null && B != null ) {
+			
+			// output=_vorbis_block_alloc(vb,sizeof(*output)*posts);
+			output = new int[ posts ];
+			
+			for ( i=0; i < posts; i++ ) {
+				output[i] = ((65536-del)*(A[i]&0x7fff)+del*(B[i]&0x7fff)+32768)>>16;
+			
+			boolean aTrue = (A[i]&0x8000) > 0;
+			boolean bTrue = (B[i]&0x8000) > 0;
+			if ( aTrue && bTrue )
+				output[i] |= 0x8000;
+			}
+		}
+		return(output);	
+	}
+	
+	static float dipole_hypot( float a, float b ) {
+		
+		if ( a > 0. ) {
+			if( b > 0. )return new Double( Math.sqrt(a*a+b*b) ).floatValue();
+			if( a > -b )return new Double( Math.sqrt(a*a-b*b) ).floatValue();
+			return new Double( -Math.sqrt(b*b-a*a) ).floatValue();
+		}
+		
+		if( b < 0. )return new Double( -Math.sqrt(a*a+b*b) ).floatValue();
+		if( -a > b )return new Double( -Math.sqrt(a*a-b*b) ).floatValue();
+		
+		return new Double( Math.sqrt(b*b-a*a) ).floatValue();
+	}
+	
+	static float round_hypot( float a, float b ) {
+		
+		if ( a > 0. ) {
+			if ( b > 0. )return new Double( Math.sqrt(a*a+b*b) ).floatValue();
+			if ( a > -b )return new Double( Math.sqrt(a*a+b*b) ).floatValue();
+			return new Double( -Math.sqrt(b*b+a*a) ).floatValue();
+		}
+		
+		if ( b < 0. )return new Double( -Math.sqrt(a*a+b*b) ).floatValue();
+		
+		if ( -a > b )return new Double( -Math.sqrt(a*a+b*b) ).floatValue();
+		
+		return new Double( Math.sqrt(b*b+a*a) ).floatValue();
+	}
+	
+	private float[][] _vp_quantize_couple_memo( vorbis_info_psy_global g, vorbis_look_psy p, vorbis_info_mapping0 vi, float[][] mdct) {
+		
+		int i, j;
+		int n = p.n;
+		
+		// float **ret=_vorbis_block_alloc(vb,vi->coupling_steps*sizeof(*ret));
+		float[][] ret = new float[ vi.coupling_steps ][ n ];
+		int limit = g.coupling_pointlimit[p.vi.blockflag][PACKETBLOBS/2];
+		
+		for ( i=0; i < vi.coupling_steps; i++ ) {
+			
+			float[] mdctM = mdct[vi.coupling_mag[i]];
+			float[] mdctA = mdct[vi.coupling_ang[i]];
+			// ret[i] = _vorbis_block_alloc(vb,n*sizeof(**ret));
+			for ( j=0; j < limit; j++ )
+				ret[i][j] = dipole_hypot( mdctM[j], mdctA[j] );
+			for ( ; j < n; j++ )
+				ret[i][j] = round_hypot( mdctM[j], mdctA[j] );
+		}
+		
+		return ret;
+	}
+
+	private static void SORT4( int o, float[] data, int offset, int[] n ) {
+		
+		if ( Math.abs(data[offset+o+2]) >= Math.abs(data[offset+o+3]) )
+			if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+1]) )
+				if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+2]) )
+					if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+2]) )
+					{ n[o]=o+0; n[o+1]=o+1; n[o+2]=o+2; n[o+3]=o+3; }
+					else
+						if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+3]) )
+						{ n[o]=o+0; n[o+1]=o+2; n[o+2]=o+1; n[o+3]=o+3; }
+						else
+						{ n[o]=o+0; n[o+1]=o+2; n[o+2]=o+3; n[o+3]=o+1; }
+				else
+					if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+3]) )
+						if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+3]) )
+						{ n[o]=o+2; n[o+1]=o+0; n[o+2]=o+1; n[o+3]=o+3; }
+						else
+						{ n[o]=o+2; n[o+1]=o+0; n[o+2]=o+3; n[o+3]=o+1; }
+					else
+					{ n[o]=o+2; n[o+1]=o+3; n[o+2]=o+0; n[o+3]=o+1; }
+			else
+				if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+2]) )
+					if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+2]) )
+					{ n[o]=o+1; n[o+1]=o+0; n[o+2]=o+2; n[o+3]=o+3; }
+					else
+						if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+3]) )
+						{ n[o]=o+1; n[o+1]=o+2; n[o+2]=o+0; n[o+3]=o+3; }
+						else
+						{ n[o]=o+1; n[o+1]=o+2; n[o+2]=o+3; n[o+3]=o+0; }
+				else
+					if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+3]) )
+						if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+3]) )
+						{ n[o]=o+2; n[o+1]=o+1; n[o+2]=o+0; n[o+3]=o+3; }
+						else
+						{ n[o]=o+2; n[o+1]=o+1; n[o+2]=o+3; n[o+3]=o+0; }
+					else
+					{ n[o]=o+2; n[o+1]=o+3; n[o+2]=o+1; n[o+3]=o+0; }
+		else
+			if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+1]) )
+				if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+3]) )
+					if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+3]) )
+					{ n[o]=o+0; n[o+1]=o+1; n[o+2]=o+3; n[o+3]=o+2; }
+					else
+						if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+2]) )
+						{ n[o]=o+0; n[o+1]=o+3; n[o+2]=o+1; n[o+3]=o+2; }
+						else
+						{ n[o]=o+0; n[o+1]=o+3; n[o+2]=o+2; n[o+3]=o+1; }
+				else
+					if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+2]) )
+						if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+2]) )
+						{ n[o]=o+3; n[o+1]=o+0; n[o+2]=o+1; n[o+3]=o+2; }
+						else
+						{ n[o]=o+3; n[o+1]=o+0; n[o+2]=o+2; n[o+3]=o+1; }
+					else
+					{ n[o]=o+3; n[o+1]=o+2; n[o+2]=o+0; n[o+3]=o+1; }
+			else
+				if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+3]) )
+					if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+3]) )
+					{ n[o]=o+1; n[o+1]=o+0; n[o+2]=o+3; n[o+3]=o+2; }
+					else
+						if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+2]) )
+						{ n[o]=o+1; n[o+1]=o+3; n[o+2]=o+0; n[o+3]=o+2; }
+						else
+						{ n[o]=o+1; n[o+1]=o+3; n[o+2]=o+2; n[o+3]=o+0; }
+				else
+					if ( Math.abs(data[offset+o+1]) >= Math.abs(data[offset+o+2]) )
+						if ( Math.abs(data[offset+o+0]) >= Math.abs(data[offset+o+2]) )
+						{ n[o]=o+3; n[o+1]=o+1; n[o+2]=o+0; n[o+3]=o+2; }
+						else
+						{ n[o]=o+3; n[o+1]=o+1; n[o+2]=o+2; n[o+3]=o+0; }
+					else
+					{ n[o]=o+3; n[o+1]=o+2; n[o+2]=o+1; n[o+3]=o+0; }
+	}
+	
+	static void sortindex_fix8( int[] index, int ioff, float[] data, int offset ) {
+		
+		int i,j,k;
+		int[] n = new int[ 8 ];
+		
+		// index+=offset;
+		// data+=offset;
+		
+		SORT4( 0, data, offset, n );
+		SORT4( 4, data, offset, n );
+		
+		j=0;k=4;
+		for ( i=0; i < 8; i++ )
+			index[ioff+offset+i] = n[ ((k>=8) || (j<4) && (Math.abs(data[offset+0+n[j]]) >= Math.abs(data[offset+0+n[k]]))?j++:k++) ] + offset;
+	}
+	
+	static void sortindex_fix32( int[] index, int ioff, float[] data, int offset ) {
+		
+		int i,j,k;
+		int[] n = new int[ 32 ];
+		
+		for ( i=0; i < 32; i+=8 )
+			sortindex_fix8( index, ioff, data, offset+i );
+		
+		ioff += offset;
+		
+		for ( i=j=0,k=8; i < 16; i++ )
+			n[i]=index[ ioff+ ((k>=16)||(j<8) && (Math.abs(data[0+index[ioff+j]]) >= Math.abs(data[0+index[ioff+k]]))?j++:k++ ) ];
+		
+		for ( i=j=16,k=24; i < 32; i++ )
+			n[i]=index[ ioff+ ((k>=32)||(j<24) && (Math.abs(data[0+index[ioff+j]]) >= Math.abs(data[0+index[ioff+k]]))?j++:k++ ) ];
+		
+		for ( i=j=0,k=16; i < 32; i++ )
+			index[ioff+i] = n[ ((k>=32)||(j<16) && (Math.abs(data[0+n[j]]) >= Math.abs(data[0+n[k]]))?j++:k++ ) ];
+	}
+	
+	static void sortindex_shellsort( int[] index, int ioff, float[] data, int offset, int count ) {
+		
+		int gap,pos,left;
+		// int right;
+		int i,j;
+		
+		ioff += offset;
+		
+		for ( i=0; i < count; i++ )
+			index[ioff+i] = i+offset;
+		gap=1;
+		while ( gap <= count )
+			gap=gap*3+1;
+		gap/=3;
+		if ( gap >= 4 )
+			gap/=3;
+		
+		while ( gap > 0 ){
+			for ( pos=gap; pos < count; pos++ ) {
+				for ( left=pos-gap; left >= 0; left-=gap ) {
+					i=index[ioff+left];
+					j=index[ioff+left+gap];
+					if ( !(Math.abs(data[0+i]) >= Math.abs(data[0+j])) ) {
+						index[ioff+left]=j;
+						index[ioff+left+gap]=i;
+						}
+					else
+						break;
+					}
+				}
+			gap/=3;
+			}
+		}
+	
+	static void sortindex( int[] index, int ioff, float[] data, int offset, int count ) {
+		
+		if ( count == 8 )
+			sortindex_fix8( index, ioff, data, offset );
+		else
+			if ( count == 32 )
+				sortindex_fix32( index, ioff, data, offset );
+			else
+				sortindex_shellsort( index, ioff, data, offset, count );
+	}
+	
+	private int[][] _vp_quantize_couple_sort( vorbis_look_psy p, vorbis_info_mapping0 vi, float[][] mags ) {
+		
+		if ( p.vi.normal_point_p > 0 ) {
+			
+			int i,j;
+			int n = p.n;
+			
+			// int **ret=_vorbis_block_alloc(vb,vi->coupling_steps*sizeof(*ret));
+			int[][] ret = new int[ vi.coupling_steps ][ n ];
+			int partition = p.vi.normal_partition;
+			// float **work=alloca(sizeof(*work)*partition);
+			// float[][] work = new float[ partition ][];
+			
+			for ( i=0; i < vi.coupling_steps; i++ ) {
+				
+				// ret[i]=_vorbis_block_alloc(vb,n*sizeof(**ret));
+				
+				for ( j=0; j < n; j+=partition ) {
+					/*
+					for ( k=0; k < partition; k++ ) {
+						// work[k] = mags[i]+k+j;
+						work[k] = new float[ mags[i].length - k+j ];
+						System.arraycopy(mags[i], k+j, work[k], 0, mags[i].length - k+j );
+					}
+					
+					// qsort(work,partition,sizeof(*work),apsort);
+					Arrays.sort( work );
+					
+					// for( k=0; k < partition; k++ )
+					// 	ret[i][k+j] = work[k]-mags[i];
+					for ( k=0; k < partition; k++)
+						ret[i][k+j] = work[k] - mags[i];
+					*/
+					sortindex( ret[i], 0, mags[i], j, partition );
+				}
+			}
+			return(ret);
+		}
+		return null;
+	}
+	
+	private void _vp_noise_normalize_sort( vorbis_look_psy p, float[] magnitudes,int[] sortedindex ) {
+		
+		int j;
+		int n = p.n;
+		
+		vorbis_info_psy vi = p.vi;
+		int partition = vi.normal_partition;
+		// float **work=alloca(sizeof(*work)*partition);
+		int start = vi.normal_start;
+		
+		for ( j=start; j < n; j+=partition ) {
+			
+			if ( j+partition > n )
+				partition = n-j;
+			
+			//    for(i=0;i<partition;i++)work[i]=magnitudes+i+j;
+			//    qsort(work,partition,sizeof(*work),apsort);
+			//    for(i=0;i<partition;i++){
+			//      sortedindex[i+j-start]=work[i]-magnitudes;
+			//    }
+			sortindex( sortedindex, -start, magnitudes, j, partition );
+		}
+	}
+	
+	private void hf_reduction( vorbis_info_psy_global g, vorbis_look_psy p,  vorbis_info_mapping0 vi, float[][] mdct ) {
+		
+		int i,j;
+		int n = p.n;
+		int de = (int)(0.3*p.m_val);
+		int limit = g.coupling_pointlimit[p.vi.blockflag][PACKETBLOBS/2];
+		// int start = p.vi.normal_start;
+		
+		for ( i=0; i < vi.coupling_steps; i++ ) {
+			// for(j=start; j<limit; j++){} // ???
+			for ( j=limit; j < n; j++ ) 
+				mdct[i][j] *= (1.0 - de*((float)(j-limit) / (float)(n-limit)));
+		}
+	}
+	
+	private void _vp_remove_floor( vorbis_look_psy p, float[] mdct, int[] codedflr, float[] residue, int sliding_lowpass ) { 
+		
+		int i;
+		int n = p.n;
+		
+		if ( sliding_lowpass > n )
+			sliding_lowpass = n;
+		
+		for ( i=0; i < sliding_lowpass; i++ )
+			residue[i] = mdct[i]*FLOOR1_fromdB_INV_LOOKUP[codedflr[i]];
+		
+		for ( ; i < n; i++ )
+			residue[i] = 0.f;
+	}
+	
+	private void _vp_noise_normalize( vorbis_look_psy p, float[] in, int out, int[] sortedindex ) {
+		
+		// int flag = 0;
+		int i;
+		int j = 0;
+		int n = p.n;
+		
+		vorbis_info_psy vi = p.vi;
+		int partition = vi.normal_partition;
+		int start = vi.normal_start;
+		
+		if ( start > n )
+			start = n;
+		
+		if ( vi.normal_channel_p > 0 ) {
+			
+			for ( ; j < start; j++ )
+				in[out+j] = (float)Math.rint(in[j]);
+			
+			for ( ; j+partition <= n; j+=partition ) {
+				
+				float acc = 0.f;
+				int k;
+				
+				for ( i=j; i < j+partition; i++ )
+					acc += in[i]*in[i];
+				
+				for ( i=0 ; i < partition; i++ ) {
+					
+					k = sortedindex[i+j-start];
+					
+					if ( in[k]*in[k] >= .25f ) {
+						
+						in[out+k] = (float)Math.rint(in[k]);
+						acc-=in[k]*in[k];
+						// flag=1;
+					} else {
+						
+						if ( acc < vi.normal_thresh )
+							break;
+						in[out+k] = unitnorm( in[k] );
+						acc -= 1.;
+					}
+				}
+				
+				for ( ; i < partition; i++ ) {
+					
+					k = sortedindex[i+j-start];
+					in[out+k] = 0.f;
+					
+				}
+			}
+		}
+		
+		for ( ; j < n; j++ )
+			in[out+j]=(float)Math.rint(in[j]);
+	}
+	
+	static float[] couple_lossless( float A, float B, float qA, float qB ) {
+		
+		int test1 = ((Math.abs(qA) > Math.abs(qB))?1:0);
+		test1 -= ((Math.abs(qA) < Math.abs(qB))?1:0);
+		
+		if( test1 <= 0 )
+			test1 = ( (((Math.abs(A)>Math.abs(B)))?1:0) <<1)-1;
+		
+		if ( test1 == 1 ) {
+			qB = (qA>0.f?qA-qB:qB-qA);
+		} else {
+			float temp = qB;  
+			qB = (qB>0.f?qA-qB:qB-qA);
+			qA = temp;
+		}
+		
+		if ( qB > Math.abs(qA)*1.9999f ) {
+			qB= -Math.abs(qA)*2.f;
+			qA= -qA;
+		}
+		
+		float[] ret = { qA, qB };
+		return ret;
+	}
+	
+	static float[] hypot_lookup = { // [32]
+		-0.009935f, -0.011245f, -0.012726f, -0.014397f, 
+		-0.016282f, -0.018407f, -0.020800f, -0.023494f, 
+		-0.026522f, -0.029923f, -0.033737f, -0.038010f, 
+		-0.042787f, -0.048121f, -0.054064f, -0.060671f, 
+		-0.068000f, -0.076109f, -0.085054f, -0.094892f, 
+		-0.105675f, -0.117451f, -0.130260f, -0.144134f, 
+		-0.159093f, -0.175146f, -0.192286f, -0.210490f, 
+		-0.229718f, -0.249913f, -0.271001f, -0.292893f };
+	
+	static float[] precomputed_couple_point( float premag, int floorA, int floorB, float mag, float ang ) {
+		
+		int test = ((floorA > floorB)?1:0)-1;
+		int offset = 31-Math.abs(floorA-floorB);
+		float floormag = hypot_lookup[(((offset<0)?1:0)-1)&offset]+1.f;
+		
+		floormag *= FLOOR1_fromdB_INV_LOOKUP[(floorB&test)|(floorA&(~test))];
+		
+		mag = premag*floormag;
+		ang = 0.f;
+		
+		float[] ret = { mag, ang };
+		return ret;
+	}
+	
+	private void _vp_couple( int blobno, vorbis_info_psy_global g, vorbis_look_psy p, vorbis_info_mapping0 vi,
+							float[][] res, float[][] mag_memo, int[][] mag_sort, int[][] ifloor, int[] nonzero, int sliding_lowpass ) {
+		
+		int i,j,k;
+		int n = p.n;
+		
+		// perform any requested channel coupling
+		// point stereo can only be used in a first stage (in this encoder) because of the dependency on floor lookups
+		
+		for ( i=0; i < vi.coupling_steps; i++ ) {
+			
+			// once we're doing multistage coupling in which a channel goes
+			// through more than one coupling step, the floor vector
+			// magnitudes will also have to be recalculated an propogated
+			// along with PCM.  Right now, we're not (that will wait until 5.1
+			// most likely), so the code isn't here yet. The memory management
+			// here is all assuming single depth couplings anyway.
+			
+			// make sure coupling a zero and a nonzero channel results in two nonzero channels.
+			
+			if ( ( nonzero[vi.coupling_mag[i]] > 0 ) || ( nonzero[vi.coupling_ang[i]] > 0 ) ) {
+				
+				float[] rM = res[vi.coupling_mag[i]];
+				float[] rA = res[vi.coupling_ang[i]];
+				// float *qM = rM+n;
+				int qM = n;
+				// float *qA = rA+n;
+				int qA = n;
+				int[] floorM = ifloor[vi.coupling_mag[i]];
+				int[] floorA = ifloor[vi.coupling_ang[i]];
+				float prepoint = stereo_threshholds[g.coupling_prepointamp[blobno]];
+				float postpoint = stereo_threshholds[g.coupling_postpointamp[blobno]];
+				int partition = ( (p.vi.normal_point_p>0)?p.vi.normal_partition:p.n );
+				int limit = g.coupling_pointlimit[p.vi.blockflag][blobno];
+				int pointlimit = limit;
+				
+				nonzero[vi.coupling_mag[i]] = 1; 
+				nonzero[vi.coupling_ang[i]] = 1; 
+				
+				// The threshold of a stereo is changed with the size of n
+				if ( n > 1000 )
+					postpoint = stereo_threshholds_limited[g.coupling_postpointamp[blobno]]; 
+				
+				for ( j=0; j < p.n; j+=partition ) {
+					
+					float acc = 0.f;
+					
+					for ( k=0; k < partition; k++ ) {
+						
+						int l=k+j;
+						
+						if ( l < sliding_lowpass ) {
+							
+							if ( ( l >= limit && Math.abs(rM[l]) < postpoint && Math.abs(rA[l]) < postpoint) || (Math.abs(rM[l]) < prepoint && Math.abs(rA[l]) < prepoint ) ) {
+								
+								float[] return_buffer = precomputed_couple_point( mag_memo[i][l], floorM[l], floorA[l], rM[qM+l], rA[qA+l] );
+								rM[qM+l] = return_buffer[0];
+								rA[qA+l] = return_buffer[1];
+								
+								if ( Math.rint(rM[qM+l]) == 0 )
+									acc += rM[qM+l]*rM[qM+l];
+								
+							} else {
+								float[] return_buffer = couple_lossless( rM[l], rA[l], rM[qM+l], rA[qA+l] );
+								rM[qM+l] = return_buffer[0];
+								rA[qA+l] = return_buffer[1];								
+							}
+						} else {
+							rM[qM+l] = 0.f;
+							rA[qA+l] = 0.f;
+						}
+					}
+					
+					if ( p.vi.normal_point_p > 0 ) {
+						
+						for ( k=0; k < partition && acc >= p.vi.normal_thresh; k++ ) {
+							
+							int l = mag_sort[i][j+k];
+							
+							if ( l < sliding_lowpass && l >= pointlimit && Math.rint(rM[qM+l]) == 0 ) {
+								
+								rM[qM+l] = unitnorm(rM[qM+l]);
+								acc -= 1.f;
+							}
+						} 
+					}
+				}
+			}
+		}
+	}
+	
+	// designed for stereo or other modes where the partition size is an
+	// integer multiple of the number of channels encoded in the current submap
+	private int[][] _2class( vorbis_look_residue0 look, float[][] in, int in_offset, int ch ) {
+		
+	  int i,j,k,l;
+	  
+	  vorbis_info_residue0 info = look.info;
+
+	  // move all this setup out later
+	  int samples_per_partition = info.grouping;
+	  int possible_partitions = info.partitions;
+	  int n = info.end - info.begin;
+
+	  int partvals = n/samples_per_partition;
+	  // int[][] partword=_vorbis_block_alloc(vb,sizeof(*partword));
+	  // partword[0] = _vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0]));
+	  // memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0]));
+	  int[][] partword= new int[1][n*ch/samples_per_partition];
+	  
+	  for ( i=0,l=info.begin/ch; i < partvals; i++ ) {
+		  
+		  float magmax = 0.f;
+		  float angmax = 0.f;
+		  
+		  for( j=0; j<samples_per_partition; j+=ch ) {
+			  
+			  if ( Math.abs(in[0][l+in_offset]) > magmax )
+				  magmax = Math.abs(in[0][l+in_offset]);
+			  
+			  for ( k=1; k < ch; k++ )
+				  if ( Math.abs(in[k][l+in_offset]) > angmax )
+					  angmax = Math.abs(in[k][l+in_offset]);
+			  l++;  
+		  }
+		  
+		  for ( j=0; j < possible_partitions-1; j++ )
+			  if ( magmax <= info.classmetric1[j] && angmax <= info.classmetric2[j] )
+				  break;
+		  
+		  partword[0][i] = j;  
+	  }
+	  
+	  look.frames++;
+
+	  return partword;  
+	}
+
+	
+	private int[][] res2_class( vorbis_look_residue0 vl, float[][] in, int in_offset, int[] nonzero, int ch ) {
+		
+		int i,used=0;
+		for ( i=0; i < ch; i++ )
+			if ( nonzero[i] > 0 )
+				used++;
+		if ( used > 0)
+			return _2class( vl, in, in_offset, ch );
+		else
+			return new int[][] {{ 0 }};
+	}
+	
+	// break an abstraction and copy some code for performance purposes
+	private int local_book_besterror( codebook book, float[] a, int a_off ) {
+		
+		int dim=book.dim,i,k,o;
+		int best = 0;
+		
+		encode_aux_threshmatch tt = book.c.thresh_tree;
+		
+		// find the quant val of each scalar
+		for ( k=0, o=dim; k < dim; ++k ) {
+
+			float val = a[a_off + --o];
+			i = tt.threshvals >> 1;
+		
+			if ( val < tt.quantthresh[i] ) {
+				
+				if ( val < tt.quantthresh[i-1] ) {
+					for ( --i; i > 0; --i )
+						if ( val >= tt.quantthresh[i-1] )
+							break;	
+				}	
+			}
+			else {
+				
+				for ( ++i; i < tt.threshvals-1; ++i )
+					if ( val < tt.quantthresh[i] )
+						break;	
+			}
+			
+			best = (best*tt.quantvals) + tt.quantmap[i];	
+		}
+		
+		// regular lattices are easy :-)
+		
+		if ( book.c.lengthlist[best] <= 0 ) {
+			
+			final static_codebook c = book.c;
+			int index,j;
+			float bestf = 0.f;
+			// float[] e = book.valuelist;
+			int e_off = 0;
+			best = -1;
+			
+			for ( index=0; index < book.entries; index++ ) {
+				
+				if ( c.lengthlist[index] > 0 ) {
+					float this_local = 0.f;
+					for ( j=0; j < dim; j++ ) {
+						float val = (book.valuelist[e_off+j]-a[a_off+j]);
+						this_local += val*val;
+					}
+					if ( best == -1 || this_local < bestf ) {
+						bestf=this_local;
+						best=index;
+					}
+				}
+				e_off += dim;	
+			}
+		}
+		
+		{
+			// float *ptr = book.valuelist + best*dim;
+			int ptr = best * dim;
+			for ( i=0; i < dim; i++ ) {
+				// *a++ -= *ptr++;
+				a[a_off++] -= book.valuelist[ptr++];
+			}
+		}
+		
+		return best;
+	}
+
+	private int _encodepart( oggpack_buffer opb_local, float[] vec, int vec_off, int n, codebook book, int[] acc ) {
+		
+		int i,bits = 0;
+		int dim = book.dim;
+		int step = n/dim;
+		
+		for ( i=0; i < step; i++ ) {
+			
+			int entry = local_book_besterror( book, vec, vec_off+i*dim );
+			
+			// #ifdef TRAIN_RES
+			//    acc[entry]++;
+			// #endif
+			
+			bits += opb_local.vorbis_book_encode( book, entry );
+		}
+		
+		return bits;	
+	}
+	
+	private boolean _01forward( oggpack_buffer opb_local, vorbis_look_residue0 look, float[] in, int ch, int[][] partword ) {
+		
+		int i,j,k,s;	// long
+		vorbis_info_residue0 info = look.info;
+		
+		// move all this setup out later
+		int samples_per_partition = info.grouping;
+		int possible_partitions = info.partitions;
+		int partitions_per_word = look.phrasebook.dim;
+		int n = info.end - info.begin;
+		
+		int partvals = n/samples_per_partition;
+		// long resbits[128];
+		// long resvals[128];
+		// memset(resbits,0,sizeof(resbits));
+		// memset(resvals,0,sizeof(resvals));
+		int[] resbits = new int[ 128 ];
+		int[] resvals = new int[ 128 ];
+		
+		// we code the partition words for each channel, then the residual
+		// words for a partition per channel until we've written all the
+		// residual words for that partition word.  Then write the next
+		// partition channel words...
+		
+		for ( s=0; s < look.stages; s++ ) {
+			
+			for ( i=0; i < partvals; ) {
+				
+				// first we encode a partition codeword for each channel
+				if ( s==0 ) {
+					
+					for ( j=0; j < ch; j++ ) {
+						int val = partword[j][i];	// long
+						for ( k=1; k < partitions_per_word; k++ ) {
+							val*=possible_partitions;
+							if ( i+k < partvals )
+								val += partword[j][i+k];	
+						}
+						
+						// training hack
+						if ( val < look.phrasebook.entries )
+							look.phrasebits += opb_local.vorbis_book_encode( look.phrasebook, val );
+						else
+							System.out.println( "! - val < look.phrasebook.entries - !" );	
+					}	
+				}
+				
+				// now we encode interleaved residual values for the partitions
+				for ( k=0; k < partitions_per_word && i < partvals; k++, i++ ) {
+					
+					int offset = i*samples_per_partition + info.begin;	// long
+					
+					for ( j=0; j < ch; j++ ) {
+						
+						if ( s==0 )
+							resvals[partword[j][i]] += samples_per_partition;
+						
+						if ( ( info.secondstages[partword[j][i]]&(1<<s) ) > 0 ) {
+							
+							codebook statebook = look.partbooks[partword[j][i]][s];
+							if ( statebook != null ) {
+								int ret;
+								// long *accumulator = NULL;
+								int[] accumulator = null;	// long
+								
+								ret = _encodepart( opb_local, in, j+offset, samples_per_partition, statebook, accumulator );
+								
+								look.postbits += ret;
+								resbits[partword[j][i]] += ret;
+							}
+						}
+					}
+				}
+			}
+		}
+		return true;	
+	}
+	
+	// res2 is slightly more different; all the channels are interleaved into a single vector and encoded.
+	private boolean res2_forward( oggpack_buffer opb_local, vorbis_look_residue0 vl, float[][] in, int in_offset, float[][] out, int[] nonzero, int ch, int[][] partword) {
+		
+		int i,j,k;			// long
+		int n = pcmend/2;	// long
+		int used = 0;		// long
+		
+		// don't duplicate the code; use a working vector hack for now and reshape ourselves into a single channel res1
+		// ugly; reallocs for each coupling pass :-(
+		
+		// float *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work));
+		float[] work = new float[ ch*n ];
+		
+		for ( i=0; i < ch; i++ ) {
+			
+			// float *pcm = in[i];
+			
+			if ( nonzero[i] > 0 )
+				used++;
+			
+			for ( j=0, k=i; j < n; j++, k+=ch )
+				work[k] = in[i][j+in_offset];	
+		}
+		
+		if ( used > 0 ) {
+			
+			boolean ret = _01forward( opb_local, vl, work, 1, partword );
+			
+// TODO - offset for out
+// out is currently always called as null
+			
+			// update the sofar vector
+			if ( out != null ) {
+				
+				for ( i=0; i < ch; i++ ) {
+					
+					// float *pcm=in[i];
+					
+					// float *sofar=out[i];
+					float[] sofar = out[i];
+					
+					for ( j=0, k=i; j < n; j++, k+=ch )
+						sofar[j] += in[i][j+in_offset]-work[k];
+				}
+			}
+			return ret;
+		}
+		else {
+			return false;	
+		}	
+	}
+	
+	
+	public void mapping0_forward() {
+
+		vorbis_info           vi = vd.vi;
+		codec_setup_info      ci = vi.codec_setup;
+		private_state         b = vd.backend_state;
+		vorbis_block_internal vbi = internal;
+		int                    n = pcmend;
+		int i,j,k;
+
+		// int    *nonzero     = alloca(sizeof(*nonzero)*vi.channels);
+		int[] nonzero = new int[ vi.channels ];
+		
+		// float  **gmdct      = _vorbis_block_alloc(vb,vi.channels*sizeof(*gmdct));
+		float[][] gmdct = new float[ vi.channels ][];
+
+		// int    **ilogmaskch = _vorbis_block_alloc(vb,vi.channels*sizeof(*ilogmaskch));
+		int[][] ilogmaskch = new int[ vi.channels ][];
+		
+		// int ***floor_posts  = _vorbis_block_alloc(vb,vi.channels*sizeof(*floor_posts));
+		int[][][] floor_posts = new int[ vi.channels ][][];
+		
+		float global_ampmax = vbi.ampmax;
+		// float *local_ampmax = alloca(sizeof(*local_ampmax)*vi.channels);
+		float[] local_ampmax = new float[ vi.channels ];
+		int blocktype = vbi.blocktype;
+	
+		int modenumber = W;
+		vorbis_info_mapping0 info = ci.map_param[modenumber];
+		
+		// vorbis_look_psy psy_look = b.psy+blocktype+(vb.W?2:0);
+		int psy_look_offset;
+		if ( W > 0 )
+			psy_look_offset = blocktype+2;
+		else
+			psy_look_offset = blocktype;
+
+		mode = modenumber;
+
+		for ( i=0; i < vi.channels; i++ ) {
+		
+			float scale = 4.f/n;
+			float scale_dB;
+			
+// TODO - trace where the logfft (pcm) data gets slightly thrown from C
+// causes flr errors later call to accumulate_fit( logmask, logmdct, look.sorted_index[i], look.sorted_index[i+1], fits[i], n, info ); 
+// sets off the lsfit_acc data when flr[mdct+i]+info.twofitatten >= flr[i]
+			
+			float[] logfft = pcm[i];
+		
+			// gmdct[i] = _vorbis_block_alloc(vb,n/2*sizeof(**gmdct));
+			gmdct[i] = new float[ n/2 ];
+			
+			scale_dB = todB( scale ) + .345f; 
+			// + .345 is a hack; the original todB estimation used on IEEE 754
+			// compliant machines had a bug that returned dB values about a third
+			// of a decibel too high.  The bug was harmless because tunings
+			// implicitly took that into account.  However, fixing the bug
+			// in the estimator requires changing all the tunings as well.
+			// For now, it's easier to sync things back up here, and
+			// recalibrate the tunings in the next major model upgrade.
+			
+			// window the PCM data
+
+			window._vorbis_apply_window( pcm[i], b.window, ci.blocksizes, lW, W, nW );
+
+			// transform the PCM data
+			// only MDCT right now....
+
+			b.transform[W][0].mdct_forward( pcm[i], gmdct[i] );
+			
+			// FFT yields more accurate tonal estimation (not phase sensitive)
+
+			b.fft_look[W].drft_forward( pcm[i] );
+
+			logfft[0] = scale_dB + todB(pcm[i][0]) + .345f;
+			local_ampmax[i] = logfft[0];
+			for ( j=1; j<n-1; j+=2 ) {
+				float temp = pcm[i][j]*pcm[i][j]+pcm[i][j+1]*pcm[i][j+1];
+				temp = logfft[(j+1)>>1] = scale_dB + .5f * todB(temp) + .345f;
+				if ( temp > local_ampmax[i] )
+					local_ampmax[i] = temp;
+			}
+			
+			if ( local_ampmax[i] > 0.f )
+				local_ampmax[i] = 0.f;
+		    if ( local_ampmax[i] > global_ampmax)
+		    	global_ampmax = local_ampmax[i];
+		}
+		
+		// float   *noise        = _vorbis_block_alloc(vb,n/2*sizeof(*noise));
+		float[] noise = new float[ n/2 ];
+		
+		// float   *tone         = _vorbis_block_alloc(vb,n/2*sizeof(*tone));
+		float[] tone = new float[ n/2 ];
+		
+		for ( i=0; i < vi.channels; i++ ) {
+		
+			// the encoder setup assumes that all the modes used by any
+			// specific bitrate tweaking use the same floor
+
+			int submap = info.chmuxlist[i];
+			
+			// the following makes things clearer to *me* anyway
+
+			float[] mdct    = gmdct[i];
+			float[] logfft  = pcm[i];
+			
+			// float *logmdct = logfft+n/2;
+			int logmdct = n/2;
+			// float *logmask = logfft;
+			
+			mode = modenumber;
+			
+			// floor_posts[i] = _vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts));
+			// memset(floor_posts[i],0,sizeof(**floor_posts)*PACKETBLOBS);
+			floor_posts[i] = new int[ PACKETBLOBS ][];
+			
+			for ( j=0; j < n/2; j++ )
+				logfft[ logmdct+j ] = todB( mdct[j] ) + .345f;
+			//	logmdct[j] = todB(mdct+j) + .345f;
+
+			// first step; noise masking.  Not only does 'noise masking'
+			// give us curves from which we can decide how much resolution
+			// to give noise parts of the spectrum, it also implicitly hands
+			// us a tonality estimate (the larger the value in the
+			// 'noise_depth' vector, the more tonal that area is)
+			
+			// b.psy[ psy_look_offset ]._vp_noisemask( logmdct, noise); // noise does not have by-frequency offset bias applied yet
+			b.psy[ psy_look_offset ]._vp_noisemask( logfft, logmdct, noise); // noise does not have by-frequency offset bias applied yet
+
+			// second step: 'all the other crap'; all the stuff that isn't
+			// computed/fit for bitrate management goes in the second psy
+			// vector.  This includes tone masking, peak limiting and ATH
+			
+			b.psy[ psy_look_offset ]._vp_tonemask( logfft, tone, global_ampmax, local_ampmax[i] );
+				 
+			// third step; we offset the noise vectors, overlay tone
+			// masking.  We then do a floor1-specific line fit.  If we're
+			// performing bitrate management, the line fit is performed
+			// multiple times for up/down tweakage on demand.
+			
+			// b.psy[ psy_look_offset ]._vp_offset_and_mix( noise, tone, 1, logmask, mdct, logmdct );
+			b.psy[ psy_look_offset ]._vp_offset_and_mix( noise, tone, 1, logfft, mdct, logmdct );
+
+			// this algorithm is hardwired to floor 1 for now; abort out if
+			// we're *not* floor1.  This won't happen unless someone has
+			// broken the encode setup lib.  Guard it anyway.
+
+			if ( ci.floor_type[info.floorsubmap[submap]] != 1 ) {
+				System.out.println( "Error vorbis_block::mapping0_forward() - floor_type != floor1" );
+				return;
+			}
+			
+// TODO - logfft float data off
+// trace of pcm before this function are dead on until here
+// call to 
+				
+			// floor_posts[i][PACKETBLOBS/2] = floor1_fit( b.flr[info.floorsubmap[submap]], logmdct, logmask );
+			floor_posts[i][PACKETBLOBS/2] = floor1_fit( b.flr[info.floorsubmap[submap]], logmdct, logfft );
+			
+			// are we managing bitrate?  If so, perform two more fits for later rate tweaking (fits represent hi/lo)
+			if ( vorbis_bitrate_managed() && (floor_posts[i][PACKETBLOBS/2] != null ) ) {
+				
+				// higher rate by way of lower noise curve
+				b.psy[ psy_look_offset ]._vp_offset_and_mix( noise, tone, 2, logfft, mdct, logmdct );
+				
+				// floor_posts[i][PACKETBLOBS-1] = floor1_fit( vb, b.flr[info.floorsubmap[submap]], logmdct, logmask );
+				floor_posts[i][PACKETBLOBS-1] = floor1_fit( b.flr[info.floorsubmap[submap]], logmdct, logfft );
+				
+				// lower rate by way of higher noise curve
+				b.psy[ psy_look_offset ]._vp_offset_and_mix( noise, tone, 0, logfft, mdct, logmdct );
+					
+				// floor_posts[i][0] = floor1_fit( vb, b.flr[info.floorsubmap[submap]], logmdct, logmask );
+				floor_posts[i][0] = floor1_fit( b.flr[info.floorsubmap[submap]], logmdct, logfft );
+					
+				// we also interpolate a range of intermediate curves for intermediate rates
+				
+				for ( k=1; k < PACKETBLOBS/2; k++ ) {
+					floor_posts[i][k] = floor1_interpolate_fit( b.flr[info.floorsubmap[submap]],
+																floor_posts[i][0],
+																floor_posts[i][PACKETBLOBS/2],
+																k*65536/(PACKETBLOBS/2) );
+				}
+						
+				for ( k=PACKETBLOBS/2+1; k < PACKETBLOBS-1; k++ ) {
+					floor_posts[i][k] = floor1_interpolate_fit( b.flr[info.floorsubmap[submap]],
+																floor_posts[i][PACKETBLOBS/2],
+																floor_posts[i][PACKETBLOBS-1],
+																(k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2) );
+				}
+			}
+		}
+
+		vbi.ampmax = global_ampmax;
+		
+		//  the next phases are performed once for vbr-only and PACKETBLOB times for bitrate managed modes.
+		//  1) encode actual mode being used
+		//  2) encode the floor for each channel, compute coded mask curve/res
+		//  3) normalize and couple.
+		//  4) encode residue
+		//  5) save packet bytes to the packetblob vector
+
+		// iterate over the many masking curve fits we've created
+
+		// float **res_bundle=alloca(sizeof(*res_bundle)*vi.channels);
+		// float **couple_bundle=alloca(sizeof(*couple_bundle)*vi.channels);
+		// int *zerobundle=alloca(sizeof(*zerobundle)*vi.channels);
+		// int **sortindex=alloca(sizeof(*sortindex)*vi.channels);
+		// float **mag_memo;
+		// int **mag_sort;
+		
+		float[][] res_bundle = new float[ vi.channels ][];
+		float[][] couple_bundle = new float[ vi.channels ][];
+		int couple_bundle_offset = 0;
+		int[] zerobundle = new int[ vi.channels ];
+		int[][] sortindex = new int[ vi.channels ][];
+		float[][] mag_memo = null;
+		int[][] mag_sort = null;
+		
+		if ( info.coupling_steps > 0 ) {
+		
+			mag_memo = _vp_quantize_couple_memo( ci.psy_g_param, b.psy[ psy_look_offset ], info, gmdct );
+			mag_sort = _vp_quantize_couple_sort( b.psy[ psy_look_offset ], info, mag_memo );
+			hf_reduction( ci.psy_g_param, b.psy[ psy_look_offset ], info, mag_memo );
+		}
+		
+		// memset( sortindex, 0, sizeof(*sortindex)*vi.channels);
+		if ( b.psy[ psy_look_offset ].vi.normal_channel_p > 0 ) {
+		
+			for ( i=0; i < vi.channels; i++ ) {
+			
+				float[] mdct = gmdct[i];
+				// sortindex[i] = alloca(sizeof(**sortindex)*n/2);
+				sortindex[i] = new int[ n/2 ];
+				_vp_noise_normalize_sort( b.psy[ psy_look_offset ], mdct, sortindex[i] );
+			}
+		}
+		
+		for ( k=(vorbis_bitrate_managed()?0:PACKETBLOBS/2); k <= (vorbis_bitrate_managed()?PACKETBLOBS-1:PACKETBLOBS/2); k++ ) {
+			
+			oggpack_buffer opb_local = vbi.packetblob[k];
+		
+			// start out our new packet blob with packet type and mode
+			// Encode the packet type
+
+			opb_local.oggpack_write( 0, 1 );
+
+			// Encode the modenumber
+			// Encode frame mode, pre,post windowsize, then dispatch
+
+			opb_local.oggpack_write( modenumber, b.modebits );
+			if ( W > 0 ) {
+				opb_local.oggpack_write( lW, 1 );
+				opb_local.oggpack_write( nW, 1 );
+			}
+			
+			// encode floor, compute masking curve, sep out residue
+			for ( i=0; i < vi.channels; i++ ) {
+			
+				int submap = info.chmuxlist[i];
+				float[] mdct = gmdct[i];
+				float[] res = pcm[i];
+
+				ilogmaskch[i] = new int[ n/2 ];
+				int[] ilogmask = ilogmaskch[i];
+				// int   *ilogmask = ilogmaskch[i] = _vorbis_block_alloc(vb,n/2*sizeof(**gmdct));
+				
+				nonzero[i] = opb_local.floor1_encode( this, b.flr[info.floorsubmap[submap]], floor_posts[i][k], ilogmask );
+				
+				_vp_remove_floor( b.psy[ psy_look_offset ], mdct, ilogmask, res, ci.psy_g_param.sliding_lowpass[W][k] );
+				
+				_vp_noise_normalize( b.psy[ psy_look_offset ], res, n/2, sortindex[i] );
+			}
+			
+			// our iteration is now based on masking curve, not prequant and coupling.  Only one prequant/coupling step
+
+			// quantize/couple
+			// incomplete implementation that assumes the tree is all depth one, or no tree at all
+
+			if ( info.coupling_steps > 0 ) {
+				_vp_couple( k, ci.psy_g_param, b.psy[ psy_look_offset ], info,
+							pcm, mag_memo, mag_sort, ilogmaskch, 
+							nonzero, ci.psy_g_param.sliding_lowpass[W][k] );
+			}
+			
+			// classify and encode by submap
+
+			for ( i=0; i < info.submaps; i++ ) {
+			
+				int ch_in_bundle = 0;
+				int[][] classifications;
+				int resnum = info.residuesubmap[i];
+				
+				for ( j=0; j < vi.channels; j++ ) {
+				
+					if ( info.chmuxlist[j] == i ) {
+
+						zerobundle[ch_in_bundle] = 0;
+						if ( nonzero[j] > 0 )
+							zerobundle[ch_in_bundle] = 1;
+						res_bundle[ch_in_bundle] = pcm[j];
+						couple_bundle[ch_in_bundle++] = pcm[j];
+						couple_bundle_offset = n/2;
+					}
+				}
+				
+				// classifications = _residue_P[ci.residue_type[resnum]].class( vb, b.residue[resnum], couple_bundle, zerobundle, ch_in_bundle );
+				classifications = res2_class( b.residue[resnum], couple_bundle, couple_bundle_offset, zerobundle, ch_in_bundle );
+				
+				// _residue_P[ci.residue_type[resnum]].forward( vb, b.residue[resnum], couple_bundle, NULL, zerobundle, ch_in_bundle, classifications );
+				res2_forward( opb_local, b.residue[resnum], couple_bundle, couple_bundle_offset, null, zerobundle, ch_in_bundle, classifications );
+			}
+			
+			// ok, done encoding.  Mark this protopacket and prepare next.
+		}
+	}
+	
+	// finish taking in the block we just processed
+	public boolean vorbis_bitrate_addblock() {
+		
+		vorbis_block_internal vbi = internal;
+		private_state b = vd.backend_state; 
+		bitrate_manager_state bm = b.bms;
+		vorbis_info vi = vd.vi;
+		codec_setup_info ci = vi.codec_setup;
+		bitrate_manager_info bi = ci.bi;
+		
+		int choice = new Double( Math.rint(bm.avgfloat) ).intValue();
+		int this_bits = vbi.packetblob[choice].oggpack_bytes() * 8;	// long
+		
+		int min_target_bits;		// long
+		int max_target_bits;		// long
+		int avg_target_bits;		// long
+		
+		if ( W > 0 ) {
+			min_target_bits = bm.min_bitsper*bm.short_per_long;	
+			max_target_bits = bm.max_bitsper*bm.short_per_long;
+			avg_target_bits = bm.avg_bitsper*bm.short_per_long;
+		}
+		else {
+			min_target_bits = bm.min_bitsper;
+			max_target_bits = bm.max_bitsper;
+			avg_target_bits = bm.avg_bitsper;
+		}
+		
+		int  samples = ci.blocksizes[W]>>1;
+		int desired_fill = new Float( bi.reservoir_bits*bi.reservoir_bias ).intValue();	// long
+		
+		if ( bm.managed <= 0 ) {
+			
+			// not a bitrate managed stream, but for API simplicity, we'll buffer the packet to keep the code path clean
+			
+			if ( bm.vb != null )
+				return false;		// one has been submitted without being claimed 
+			
+			bm.vb = this;
+			
+			return true;	
+		}
+		
+		bm.vb = this;
+		
+		// look ahead for avg floater
+		if ( bm.avg_bitsper > 0 ) {
+			
+			float slew = 0.f;	// double
+			// long avg_target_bits = (vb->W?bm.avg_bitsper*bm.short_per_long:bm.avg_bitsper);
+			float slewlimit = 15.f/bi.slew_damp;	// double
+			
+			// choosing a new floater:
+			// 		if we're over target, we slew down
+			// 		if we're under target, we slew up
+			
+			// choose slew as follows: look through packetblobs of this frame
+			// and set slew as the first in the appropriate direction that
+			// gives us the slew we want.  This may mean no slew if delta is already favorable.
+			// Then limit slew to slew max
+			
+			if ( bm.avg_reservoir+(this_bits-avg_target_bits) > desired_fill ) {
+				while ( choice>0 && this_bits>avg_target_bits && bm.avg_reservoir+(this_bits-avg_target_bits)>desired_fill ) {
+					choice--;
+					this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+					
+				}
+			}
+			else if (bm.avg_reservoir+(this_bits-avg_target_bits)<desired_fill){
+				while ( choice+1<PACKETBLOBS && this_bits<avg_target_bits && bm.avg_reservoir+(this_bits-avg_target_bits)<desired_fill ) {
+					choice++;
+					this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+					
+				}
+			}
+			
+			slew = new Double( Math.rint(choice-bm.avgfloat)/samples*vi.rate ).floatValue();
+			if ( slew < -slewlimit )
+				slew = -slewlimit;
+			if ( slew > slewlimit )
+				slew = slewlimit;
+			choice = new Float( Math.rint(bm.avgfloat+= slew/vi.rate*samples) ).intValue();
+			this_bits = vbi.packetblob[choice].oggpack_bytes()*8;		
+		}
+		
+		// enforce min(if used) on the current floater (if used)
+		if ( bm.min_bitsper > 0 ) {
+			// do we need to force the bitrate up?
+			if ( this_bits < min_target_bits ) {
+				while ( bm.minmax_reservoir-(min_target_bits-this_bits) < 0 ) {
+					choice++;
+					if ( choice >= PACKETBLOBS )
+						break;
+					this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+				}
+			}
+		}
+		
+		// enforce max (if used) on the current floater (if used)
+		if ( bm.max_bitsper > 0 ) {
+			// do we need to force the bitrate down?
+			if ( this_bits > max_target_bits ) {
+				while ( bm.minmax_reservoir+(this_bits-max_target_bits) > bi.reservoir_bits ) {
+					choice--;
+					if ( choice < 0 )
+						break;
+					this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+				}
+			}
+		}
+		
+		// Choice of packetblobs now made based on floater, and min/max requirements. Now boundary check extreme choices
+		
+		if ( choice < 0 ) {
+			// choosing a smaller packetblob is insufficient to trim bitrate. frame will need to be truncated
+			int maxsize = (max_target_bits+(bi.reservoir_bits-bm.minmax_reservoir))/8;	// long
+			bm.choice = choice = 0;
+			
+			if ( vbi.packetblob[choice].oggpack_bytes() > maxsize ) {
+				
+				vbi.packetblob[choice].oggpack_writetrunc( maxsize*8 );
+				this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+			}
+		}
+		else {
+			
+			int minsize=(min_target_bits-bm.minmax_reservoir+7)/8;	// long
+			if ( choice >= PACKETBLOBS )
+				choice = PACKETBLOBS-1;
+			
+			bm.choice = choice;
+			
+			// prop up bitrate according to demand. pad this frame out with zeroes
+			minsize -= vbi.packetblob[choice].oggpack_bytes();
+			while ( minsize-- > 0 )
+				vbi.packetblob[choice].oggpack_write( 0, 8 );
+			this_bits = vbi.packetblob[choice].oggpack_bytes()*8;
+		}
+		
+		// now we have the final packet and the final packet size.  Update statistics
+		// min and max reservoir
+		if ( bm.min_bitsper > 0 || bm.max_bitsper > 0 ) {
+
+			if ( max_target_bits > 0 && this_bits > max_target_bits ) {
+				bm.minmax_reservoir += (this_bits-max_target_bits);
+			} else if ( min_target_bits > 0 && this_bits < min_target_bits ) {
+				bm.minmax_reservoir += (this_bits-min_target_bits);
+			} else {
+				// inbetween; we want to take reservoir toward but not past desired_fill
+				if ( bm.minmax_reservoir > desired_fill){
+					if ( max_target_bits > 0 ) { 	// logical bulletproofing against initialization state
+						bm.minmax_reservoir += (this_bits-max_target_bits);
+						if ( bm.minmax_reservoir < desired_fill)
+							bm.minmax_reservoir = desired_fill;
+					}
+					else {
+						bm.minmax_reservoir = desired_fill;
+					}
+				}
+				else {
+					if ( min_target_bits > 0 ) { 	// logical bulletproofing against initialization state
+						bm.minmax_reservoir+=(this_bits-min_target_bits);
+						
+						if ( bm.minmax_reservoir > desired_fill )
+							bm.minmax_reservoir = desired_fill;
+					}
+					else {
+						bm.minmax_reservoir=desired_fill;
+					}
+				}
+			}
+		}
+		
+		// avg reservoir
+		if ( bm.avg_bitsper > 0 ) {
+			// int avg_target_bits = (vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper);    // long
+			if ( W > 0 )
+				avg_target_bits = bm.avg_bitsper*bm.short_per_long;
+			else
+				avg_target_bits = bm.avg_bitsper;
+
+			bm.avg_reservoir += this_bits-avg_target_bits;
+		}
+		return true;
+	}
+	
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_block.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_block_internal.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_block_internal.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_block_internal.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,30 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class vorbis_block_internal {
+
+	float[][] pcmdelay;	// **pcmdelay // this is a pointer into local storage
+  	float ampmax;
+  	int blocktype;
+
+  	oggpack_buffer[] packetblob;
+
+
+	public vorbis_block_internal() {
+
+		packetblob = new oggpack_buffer[ PACKETBLOBS ];
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_block_internal.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_comment.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_comment.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_comment.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,91 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import org.xiph.libogg.*;
+
+public class vorbis_comment {
+	
+	// unlimited user comment fields.  libvorbis writes 'libvorbis' whatever vendor is set to in encode
+	
+	 public byte[][] user_comments;
+	 public int[] comment_lengths; 
+	 public int comments;
+	 public byte[] vendor;
+	 
+	 public vorbis_comment() {
+		 
+		 vorbis_comment_init();
+	 }
+	
+	 public void vorbis_comment_init() {
+		 
+		 user_comments=null;
+		 comments=0;
+		 vendor=null;	 
+	 }
+	 
+	 public void vorbis_comment_add( String comment ) {
+		 
+		 add(comment.getBytes());	 
+	 }
+	 
+	 private void add( byte[] comment ) {
+		 
+		 byte[][] foo=new byte[comments+2][];
+		 if (user_comments!=null) {
+			 System.arraycopy(user_comments, 0, foo, 0, comments);	 
+		 }
+		 user_comments=foo;
+		 
+		 int[] goo=new int[comments+2];
+		 if (comment_lengths!=null) {
+			 System.arraycopy(comment_lengths, 0, goo, 0, comments);
+		 }
+		 comment_lengths=goo;
+		 
+		 byte[] bar=new byte[comment.length+1];
+		 System.arraycopy(comment, 0, bar, 0, comment.length);
+		 user_comments[comments]=bar;
+		 comment_lengths[comments]=comment.length;
+		 comments++;
+		 user_comments[comments]=null;	 
+	 }
+	 
+	 public void vorbis_comment_add_tag( String tag, String contents ) {
+		 
+		 if (contents==null)
+			 contents = "";
+		 vorbis_comment_add( tag +"="+ contents );	 
+	 }
+	 
+	 public boolean vorbis_commentheader_out( ogg_packet op ) {
+		 
+		 oggpack_buffer opb = new oggpack_buffer();
+		 if ( !opb._vorbis_pack_comment( this ) )
+				return false;
+			
+		// build the packet
+		op.packet = new byte[ opb.oggpack_bytes() ];
+		// memcpy(b->header1,opb.buffer,oggpack_bytes(&opb));
+		System.arraycopy( opb.buffer, 0, op.packet, 0, opb.oggpack_bytes() );
+		op.bytes = opb.oggpack_bytes();
+		op.b_o_s = 0;
+		op.e_o_s = 0;
+		op.granulepos = 0;
+		op.packetno = 1;
+		
+		return true;
+	 }
+}
+

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/integer_constants.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/integer_constants.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/integer_constants.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,379 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+
+package org.xiph.libvorbis.vorbis_constants;
+
+
+public class integer_constants {
+
+	public static final int PACKETBLOBS = 15;
+
+	public static final int NOISE_COMPAND_LEVELS = 40;
+
+	public static final int P_BANDS = 17;		// 62Hz to 16kHz
+	public static final int P_LEVELS = 8;		// 30dB to 100dB
+	public static final int P_LEVEL_0 = 30;		// 30 dB
+	public static final int P_NOISECURVES = 3;
+	
+	public static final int VQ_FEXP = 10;
+	public static final int VQ_FMAN = 21;
+	public static final int VQ_FEXP_BIAS = 768; // bias toward values smaller than 1.
+
+	public static final int MAX_ATH = 88;
+	public static final int EHMER_OFFSET = 16;
+	public static final int EHMER_MAX = 56;
+
+	public static final int VE_PRE = 16;
+	public static final int VE_WIN = 4;
+	public static final int VE_POST = 2;
+	public static final int VE_AMP = (VE_PRE+VE_POST-1);
+	public static final int VE_BANDS = 7;
+	public static final int VE_NEARDC = 15;
+	public static final int VE_MINSTRETCH = 2;   // a bit less than short block
+	public static final int VE_MAXSTRETCH = 12;  // one-third full block
+	
+	public static final int BLOCKTYPE_IMPULSE = 0;
+	public static final int BLOCKTYPE_PADDING = 1;
+	public static final int BLOCKTYPE_TRANSITION = 0;
+	public static final int BLOCKTYPE_LONG = 1;
+	
+	public static final int WORD_ALIGN = 8;
+
+	public static final int VIF_POSIT = 63;
+	public static final int VIF_CLASS = 16;
+	public static final int VIF_PARTS = 31;
+
+	public static final int VI_TRANSFORMB = 1;
+	public static final int VI_WINDOWB = 1;
+	public static final int VI_TIMEB = 1;
+	public static final int VI_FLOORB = 2;
+	public static final int VI_RESB = 3;
+	public static final int VI_MAPB = 1;
+
+	public static final float cPI3_8 = .38268343236508977175F;
+	public static final float cPI2_8 = .70710678118654752441F;
+	public static final float cPI1_8 = .92387953251128675613F;
+	public static final float M_PI = (3.1415926536f);
+
+	public static final int BUFFER_INCREMENT = 256;
+	
+	public static final float NEGINF = -9999.f;
+	public static float[] stereo_threshholds = { 0.0f, .5f, 1.0f, 1.5f, 2.5f, 4.5f, 8.5f, 16.5f, 9e10f };
+	public static float[] stereo_threshholds_limited = { 0.0f, .5f, 1.0f, 1.5f, 2.0f, 2.5f, 4.5f, 8.5f, 9e10f };
+	
+	
+	public static final int OV_FALSE = -1;
+	public static final int OV_EOF = -2;
+	public static final int OV_HOLE = -3;
+
+	public static final int OV_EREAD = -128;
+	public static final int OV_EFAULT = -129;
+	public static final int OV_EIMPL = -130;
+	public static final int OV_EINVAL = -131;
+	public static final int OV_ENOTVORBIS = -132;
+	public static final int OV_EBADHEADER = -133;
+	public static final int OV_EVERSION = -134;
+	public static final int OV_ENOTAUDIO = -135;
+	public static final int OV_EBADPACKET = -136;
+	public static final int OV_EBADLINK = -137;
+	public static final int OV_ENOSEEK = -138;
+	
+	// deprecated rate management supported only for compatability
+	public static final int OV_ECTL_RATEMANAGE_GET = 0x10;
+	public static final int OV_ECTL_RATEMANAGE_SET = 0x11;
+	public static final int OV_ECTL_RATEMANAGE_AVG = 0x12;
+	public static final int OV_ECTL_RATEMANAGE_HARD = 0x13;
+	
+	// new rate setup
+	public static final int OV_ECTL_RATEMANAGE2_GET = 0x14;
+	public static final int OV_ECTL_RATEMANAGE2_SET = 0x15;
+	
+	public static final int OV_ECTL_LOWPASS_GET = 0x20;
+	public static final int OV_ECTL_LOWPASS_SET = 0x21;
+
+	public static final int OV_ECTL_IBLOCK_GET = 0x30;
+	public static final int OV_ECTL_IBLOCK_SET = 0x31;
+
+
+	public static int ilog( int v ) {
+
+		int ret=0;
+		while ( v > 0 ) {
+			ret++;
+			v >>>= 1;
+		}
+		return ret;
+	}
+
+	public static int ilog2( int v ) {
+
+		int ret=0;
+		if ( v > 0 ) { --v; }
+		while ( v > 0 ) {
+			ret++;
+			v >>>= 1;
+		}
+  		return ret;
+	}
+	
+	public static int icount( int v ) {
+		
+		int ret=0;
+		while( v > 0 ) {
+			ret += v&1;
+			v >>>= 1;
+		}
+		return ret;
+	}
+	
+	public static float unitnorm( float x ) {
+		
+		float calc;
+		int calc2;
+		
+		// Bit 31 (the bit that is selected by the mask 0x80000000) represents the sign of the floating-point number
+		// 0x3f800000 is the hex representation of the float 1.0f.
+		
+		int i = Float.floatToIntBits( x );
+		calc2 = (i & 0x80000000) | (0x3f800000);
+		calc = Float.intBitsToFloat( calc2 );
+		
+		return calc;
+	}
+	
+	public static float todB( float x ) {
+		
+		// ogg_int32_t *i=(ogg_int32_t *)x;
+		int i = Float.floatToIntBits(x);
+		i = i & 0x7fffffff;
+		// return (float)(i * 7.17711438e-7f -764.6161886f);
+		float calc = i * 7.17711438e-7f;
+		calc -= 764.6161886f;
+		return calc;
+	}
+	
+	public static int render_point( int x0, int x1, int y0, int y1, int x ) {
+		
+		y0 &= 0x7fff; // mask off flag
+		y1 &= 0x7fff;
+		
+		int dy = y1-y0;
+		int adx = x1-x0;
+		int ady = Math.abs(dy);
+		int err = ady*(x-x0);
+		
+		int off = err/adx;
+		if ( dy < 0 )
+			return(y0-off);
+		
+		return(y0+off);
+	}
+	
+	public static int vorbis_dBquant( float x ) {
+		
+		int i = new Float( x * 7.3142857f + 1023.5f ).intValue();
+		if ( i > 1023 )
+			return(1023);
+		if ( i < 0 )
+			return(0);
+		return i;
+	}
+	
+	public static float[] FLOOR1_fromdB_LOOKUP = { // [256]
+		  1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, 
+		  1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, 
+		  1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, 
+		  2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, 
+		  2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, 
+		  3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, 
+		  4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, 
+		  6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, 
+		  7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, 
+		  1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, 
+		  1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, 
+		  1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, 
+		  2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, 
+		  2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, 
+		  3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, 
+		  4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, 
+		  5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, 
+		  7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, 
+		  9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, 
+		  1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, 
+		  1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, 
+		  2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, 
+		  2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, 
+		  3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, 
+		  4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, 
+		  5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, 
+		  7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, 
+		  9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, 
+		  0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, 
+		  0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, 
+		  0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, 
+		  0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, 
+		  0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, 
+		  0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, 
+		  0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, 
+		  0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, 
+		  0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, 
+		  0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, 
+		  0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, 
+		  0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, 
+		  0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, 
+		  0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, 
+		  0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, 
+		  0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, 
+		  0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, 
+		  0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, 
+		  0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, 
+		  0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, 
+		  0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, 
+		  0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, 
+		  0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, 
+		  0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, 
+		  0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, 
+		  0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, 
+		  0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, 
+		  0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, 
+		  0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, 
+		  0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, 
+		  0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, 
+		  0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, 
+		  0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, 
+		  0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, 
+		  0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, 
+		  0.82788260F, 0.88168307F, 0.9389798F, 1.F, 
+		};
+	
+	public static float[] FLOOR1_fromdB_INV_LOOKUP = {	// [256]
+		  0.F, 8.81683e+06F, 8.27882e+06F, 7.77365e+06F, 
+		  7.29930e+06F, 6.85389e+06F, 6.43567e+06F, 6.04296e+06F, 
+		  5.67422e+06F, 5.32798e+06F, 5.00286e+06F, 4.69759e+06F, 
+		  4.41094e+06F, 4.14178e+06F, 3.88905e+06F, 3.65174e+06F, 
+		  3.42891e+06F, 3.21968e+06F, 3.02321e+06F, 2.83873e+06F, 
+		  2.66551e+06F, 2.50286e+06F, 2.35014e+06F, 2.20673e+06F, 
+		  2.07208e+06F, 1.94564e+06F, 1.82692e+06F, 1.71544e+06F, 
+		  1.61076e+06F, 1.51247e+06F, 1.42018e+06F, 1.33352e+06F, 
+		  1.25215e+06F, 1.17574e+06F, 1.10400e+06F, 1.03663e+06F, 
+		  973377.F, 913981.F, 858210.F, 805842.F, 
+		  756669.F, 710497.F, 667142.F, 626433.F, 
+		  588208.F, 552316.F, 518613.F, 486967.F, 
+		  457252.F, 429351.F, 403152.F, 378551.F, 
+		  355452.F, 333762.F, 313396.F, 294273.F, 
+		  276316.F, 259455.F, 243623.F, 228757.F, 
+		  214798.F, 201691.F, 189384.F, 177828.F, 
+		  166977.F, 156788.F, 147221.F, 138237.F, 
+		  129802.F, 121881.F, 114444.F, 107461.F, 
+		  100903.F, 94746.3F, 88964.9F, 83536.2F, 
+		  78438.8F, 73652.5F, 69158.2F, 64938.1F, 
+		  60975.6F, 57254.9F, 53761.2F, 50480.6F, 
+		  47400.3F, 44507.9F, 41792.0F, 39241.9F, 
+		  36847.3F, 34598.9F, 32487.7F, 30505.3F, 
+		  28643.8F, 26896.0F, 25254.8F, 23713.7F, 
+		  22266.7F, 20908.0F, 19632.2F, 18434.2F, 
+		  17309.4F, 16253.1F, 15261.4F, 14330.1F, 
+		  13455.7F, 12634.6F, 11863.7F, 11139.7F, 
+		  10460.0F, 9821.72F, 9222.39F, 8659.64F, 
+		  8131.23F, 7635.06F, 7169.17F, 6731.70F, 
+		  6320.93F, 5935.23F, 5573.06F, 5232.99F, 
+		  4913.67F, 4613.84F, 4332.30F, 4067.94F, 
+		  3819.72F, 3586.64F, 3367.78F, 3162.28F, 
+		  2969.31F, 2788.13F, 2617.99F, 2458.24F, 
+		  2308.24F, 2167.39F, 2035.14F, 1910.95F, 
+		  1794.35F, 1684.85F, 1582.04F, 1485.51F, 
+		  1394.86F, 1309.75F, 1229.83F, 1154.78F, 
+		  1084.32F, 1018.15F, 956.024F, 897.687F, 
+		  842.910F, 791.475F, 743.179F, 697.830F, 
+		  655.249F, 615.265F, 577.722F, 542.469F, 
+		  509.367F, 478.286F, 449.101F, 421.696F, 
+		  395.964F, 371.803F, 349.115F, 327.812F, 
+		  307.809F, 289.026F, 271.390F, 254.830F, 
+		  239.280F, 224.679F, 210.969F, 198.096F, 
+		  186.008F, 174.658F, 164.000F, 153.993F, 
+		  144.596F, 135.773F, 127.488F, 119.708F, 
+		  112.404F, 105.545F, 99.1046F, 93.0572F, 
+		  87.3788F, 82.0469F, 77.0404F, 72.3394F, 
+		  67.9252F, 63.7804F, 59.8885F, 56.2341F, 
+		  52.8027F, 49.5807F, 46.5553F, 43.7144F, 
+		  41.0470F, 38.5423F, 36.1904F, 33.9821F, 
+		  31.9085F, 29.9614F, 28.1332F, 26.4165F, 
+		  24.8045F, 23.2910F, 21.8697F, 20.5352F, 
+		  19.2822F, 18.1056F, 17.0008F, 15.9634F, 
+		  14.9893F, 14.0746F, 13.2158F, 12.4094F, 
+		  11.6522F, 10.9411F, 10.2735F, 9.64662F, 
+		  9.05798F, 8.50526F, 7.98626F, 7.49894F, 
+		  7.04135F, 6.61169F, 6.20824F, 5.82941F, 
+		  5.47370F, 5.13970F, 4.82607F, 4.53158F, 
+		  4.25507F, 3.99542F, 3.75162F, 3.52269F, 
+		  3.30774F, 3.10590F, 2.91638F, 2.73842F, 
+		  2.57132F, 2.41442F, 2.26709F, 2.12875F, 
+		  1.99885F, 1.87688F, 1.76236F, 1.65482F, 
+		  1.55384F, 1.45902F, 1.36999F, 1.28640F, 
+		  1.20790F, 1.13419F, 1.06499F, 1.F
+		};
+	
+	public static void render_line( int x0, int x1, int y0, int y1, float[] d ) {
+		
+		int dy=y1-y0;
+		int adx=x1-x0;
+		int ady=Math.abs(dy);
+		int base=dy/adx;
+		int sy=(dy<0?base-1:base+1);
+		int x=x0;
+		int y=y0;
+		int err=0;
+		
+		ady-= Math.abs(base*adx);
+		
+		d[x]*=FLOOR1_fromdB_LOOKUP[y];
+		
+		while ( ++x < x1 ) {
+			err=err+ady;
+			if ( err >= adx ){
+				err-=adx;
+				y+=sy;
+			} else {
+				y += base;
+			}
+			d[x] *= FLOOR1_fromdB_LOOKUP[y];
+		}
+	}
+	
+	public static void render_line0( int x0, int x1, int y0, int y1, int[] d ) {
+		
+		int dy=y1-y0;
+		int adx=x1-x0;
+		int ady=Math.abs(dy);
+		int base=dy/adx;
+		int sy=(dy<0?base-1:base+1);
+		int x=x0;
+		int y=y0;
+		int err=0;
+		
+		ady-=Math.abs(base*adx);
+		
+		d[x]=y;
+		
+		while ( ++x < x1 ) {
+			err=err+ady;
+			if ( err >= adx ) {
+				err-=adx;
+				y+=sy;
+			} else {
+				y += base;
+			}
+			d[x]=y;
+		}
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_constants/integer_constants.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_dsp_state.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_dsp_state.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_dsp_state.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,788 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import java.util.*;
+
+import org.xiph.libogg.*;
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class vorbis_dsp_state {
+
+	int analysisp;
+	
+	public vorbis_info vi;
+
+	float[][] pcm;		// float **pcm // float **pcmret
+
+	int pcm_storage;
+	public int pcm_current;
+	int pcm_returned;
+
+	int preextrapolate;
+	int eofflag;
+
+	int lW;
+	int W;
+	int nW;
+	int centerW;
+
+	int granulepos;
+	int sequence;
+
+	int glue_bits;
+	int time_bits;
+	int floor_bits;
+	int res_bits;
+
+	private_state backend_state;
+
+
+	public vorbis_dsp_state() {}
+
+
+	private vorbis_look_floor1 floor1_look( vorbis_info_floor1 info ) {
+
+		int sortpointer[] = new int[ VIF_POSIT+2 ];
+		vorbis_look_floor1 look = new vorbis_look_floor1();
+
+		int i,j,n=0;
+
+		look.vi = info;
+		look.n = info.postlist[1];
+ 
+		// we drop each position value in-between already decoded values,
+		// and use linear interpolation to predict each new value past the
+		// edges.  The positions are read in the order of the position
+		// list... we precompute the bounding positions in the lookup.  Of
+		// course, the neighbors can change (if a position is declined), but
+		// this is an initial mapping
+
+		for ( i=0; i<info.partitions; i++ ) 
+			n += info.class_dim[ info.partitionclass[i] ];
+		n+=2;
+		look.posts=n;
+
+		// also store a sorted position index
+		for ( i=0; i<n; i++ )
+			sortpointer[i] = info.postlist[i];
+			// sortpointer[i] = info.postlist+i;
+
+		// static int icomp(const void *a,const void *b) { return(**(int **)a-**(int **)b); }
+		// qsort( sortpointer, n, sizeof(*sortpointer), icomp );
+
+		Arrays.sort( sortpointer, 0, n );
+
+		// points from sort order back to range number
+		for ( i=0; i<n; i++ )
+			for ( j=0; j<n; j++)
+				if ( sortpointer[i] == info.postlist[j] )
+					look.forward_index[i] = j;
+		// look.forward_index[i] = sortpointer[i]-info.postlist;
+
+		// points from range order to sorted position
+		for ( i=0; i<n; i++ )
+			look.reverse_index[ look.forward_index[i] ] = i;
+
+		// we actually need the post values too
+		for ( i=0; i<n; i++ )
+			look.sorted_index[i] = info.postlist[ look.forward_index[i] ];
+
+		switch ( info.mult ) {	// quantize values to multiplier spec
+
+			case 1:
+				look.quant_q=256;
+				break;
+			case 2:
+				look.quant_q=128;
+				break;
+			case 3:
+				look.quant_q=86;
+				break;
+			case 4:
+				look.quant_q=64;
+				break;
+		}
+
+		// discover our neighbors for decode where we don't use fit flags (that would push the neighbors outward)
+		for ( i=0; i<n-2; i++ ) {
+			int lo=0;
+			int hi=1;
+			int lx=0;
+			int hx=look.n;
+			int currentx=info.postlist[i+2];
+			for ( j=0; j<i+2; j++ ) {
+				int x=info.postlist[j];
+				if (x>lx && x<currentx) {
+					lo=j;
+					lx=x;
+				}
+				if (x<hx && x>currentx) {
+					hi=j;
+					hx=x;
+				}
+			}
+			look.loneighbor[i]=lo;
+			look.hineighbor[i]=hi;
+		}
+
+		return look;
+	}
+
+
+	private vorbis_look_residue0 res0_look( vorbis_info_residue0 info ) {
+
+		vorbis_look_residue0 look = new vorbis_look_residue0();
+		codec_setup_info ci = vi.codec_setup;
+
+		int j,k,acc=0;
+		int dim;
+		int maxstage = 0;
+
+		look.info = info;
+
+		look.parts = info.partitions;
+		look.fullbooks = ci.fullbooks;
+// PTR CITY
+
+		// look.phrasebook = ci.fullbooks+info.groupbook;
+		look.phrasebook = ci.fullbooks[ info.groupbook ];
+		dim = look.phrasebook.dim;
+
+		// look.partbooks = _ogg_calloc(look.parts,sizeof(*look.partbooks));
+		look.partbooks = new codebook[ look.parts ][];
+		
+
+		for ( j=0; j<look.parts; j++ ) {
+
+			int stages = ilog( info.secondstages[j] );
+			if ( stages > 0 ) {
+				if ( stages > maxstage )
+					maxstage = stages;
+
+				// look.partbooks[j]=_ogg_calloc(stages,sizeof(*look.partbooks[j]));
+				look.partbooks[j] = new codebook[ stages ];
+
+				for ( k=0; k<stages; k++)
+
+					if ( (info.secondstages[j] & (1<<k) ) > 0 ) {
+
+						// look.partbooks[j][k] = ci.fullbooks + info.booklist[acc++];
+
+						look.partbooks[j][k] = ci.fullbooks[ info.booklist[acc++] ];
+
+						// #ifdef TRAIN_RES
+						// 	look.training_data[k][j]=calloc(look.partbooks[j][k].entries,sizeof(***look.training_data));
+						// #endif
+					}
+			}
+		}
+
+		look.partvals = new Double( Math.rint( Math.pow( look.parts, dim) ) ).intValue();
+		look.stages = maxstage;
+
+		// look.decodemap=_ogg_malloc(look.partvals*sizeof(*look.decodemap));
+		look.decodemap = new int[ look.partvals ][ dim ];
+
+		for ( j=0; j<look.partvals; j++) {
+			int val = j;
+			int mult = look.partvals / look.parts;
+
+			// look.decodemap[j]=_ogg_malloc(dim*sizeof(*look.decodemap[j]));
+
+			for ( k=0; k<dim; k++ ){
+				int deco = val/mult;
+				val -= deco*mult;
+				mult /= look.parts;
+				look.decodemap[j][k] = deco;
+			}
+		}
+
+		// #ifdef TRAIN_RES
+		//	static int train_seq=0;
+		//	look.train_seq=train_seq++;
+		// #endif
+
+  		return look;
+	}
+
+
+	private boolean _vds_shared_init( boolean encp ) {
+
+		int i;
+		codec_setup_info ci = vi.codec_setup;
+		int hs;
+
+		if ( ci == null )
+			return false;
+
+		hs = ci.halfrate_flag;
+
+		backend_state = new private_state();
+
+		backend_state.modebits = ilog2( ci.modes );
+
+		backend_state.transform[0][0].mdct_init( ci.blocksizes[0]>>>hs );
+		backend_state.transform[1][0].mdct_init( ci.blocksizes[1]>>>hs );
+
+		// Vorbis I uses only window type 0
+		backend_state.window[0] = ilog2(ci.blocksizes[0])-6;
+		backend_state.window[1] = ilog2(ci.blocksizes[1])-6;
+
+		if (encp) { // encode/decode differ here
+
+			// analysis always needs an fft
+			backend_state.fft_look[0].drft_init( ci.blocksizes[0] );
+			backend_state.fft_look[1].drft_init( ci.blocksizes[1] );
+
+			// finish the codebooks
+			if ( ci.fullbooks == null ) {
+
+				// ci.fullbooks=_ogg_calloc(ci.books,sizeof(*ci.fullbooks));
+				ci.fullbooks = new codebook[ ci.books ];
+
+				for ( i=0; i<ci.books; i++ ) {
+					ci.fullbooks[i] = new codebook();
+					ci.fullbooks[i].vorbis_book_init_encode( ci.book_param[i] );
+				}
+			}
+
+			// backend_state.psy=_ogg_calloc(ci.psys,sizeof(*backend_state.psy));
+			backend_state.psy = new vorbis_look_psy[ ci.psys ];
+
+			for ( i=0; i<ci.psys; i++ ) {
+				backend_state.psy[i] = new vorbis_look_psy();
+				backend_state.psy[i]._vp_psy_init( ci.psy_param[i], ci.psy_g_param, ci.blocksizes[ci.psy_param[i].blockflag]/2, vi.rate );
+			 }
+
+			analysisp = 1;
+		}
+		else {
+			// decode the codebooks - not yet implemented
+			System.out.println( "_vds_shared_init DECODE not yet implemented");
+			return false;
+		}
+
+		pcm_storage = ci.blocksizes[1];
+
+		pcm = new float[ vi.channels ][ pcm_storage ];
+		// pcmret = new float[ vi.channels ];
+
+		lW = 0; // previous window size
+		W = 0;  // current window size
+
+		// all vector indexes
+		centerW = ci.blocksizes[1]/2;
+
+		pcm_current = centerW;
+
+// flr - will always be floor1
+// residue - look data will always fit in res0
+
+		// initialize all the backend lookups
+		// backend_state.flr = _ogg_calloc(ci.floors,sizeof(*backend_state.flr));
+		// backend_state.residue = _ogg_calloc(ci.residues,sizeof(*backend_state.residue));
+
+		backend_state.flr = new vorbis_look_floor1[ ci.floors ];
+		backend_state.residue = new vorbis_look_residue0[ ci.residues ];
+
+		// for ( i=0; i < ci.floors; i++ )
+		//	backend_state.flr[i] = _floor_P[ci.floor_type[i]].look( v, ci.floor_param[i] );
+
+		for ( i=0; i < ci.floors; i++ ) {
+			backend_state.flr[i] = floor1_look( ci.floor_param[i] );
+		}
+
+		// for ( i=0; i < ci.residues; i++ )
+		//	backend_state.residue[i] = _residue_P[ci.residue_type[i]].look( v, ci.residue_param[i] );
+		
+		for ( i=0; i < ci.residues; i++ ) {
+			backend_state.residue[i] = res0_look( ci.residue_param[i] );
+		}
+		
+		return true;
+	}
+
+	public boolean vorbis_analysis_init( vorbis_info _vi ) {
+
+		vi = _vi;
+
+  		if ( !_vds_shared_init( true ) )
+			return false;
+
+		backend_state.psy_g_look = new vorbis_look_psy_global( vi );
+
+		backend_state.ve = new envelope_lookup( vi );
+
+  		backend_state.bms = new bitrate_manager_state( vi );
+  		
+  		// compressed audio packets start after the headers with sequence number 3
+  		sequence = 3;
+
+  		return true;
+	}
+
+	public boolean vorbis_analysis_headerout( vorbis_comment vc, ogg_packet op, ogg_packet op_comm, ogg_packet op_code ) {
+
+		oggpack_buffer opb;
+
+		// first header packet **********************************************
+		opb = new oggpack_buffer();
+		if ( !opb._vorbis_pack_info( vi ) )
+			return false;
+
+		// build the packet
+		backend_state.header = new byte[ opb.oggpack_bytes() ];
+		// memcpy(b->header,opb.buffer,oggpack_bytes(&opb));
+		System.arraycopy( opb.buffer, 0, backend_state.header, 0, opb.oggpack_bytes() );
+		op.packet = backend_state.header;
+		op.bytes = opb.oggpack_bytes();
+		op.b_o_s = 1;
+		op.e_o_s = 0;
+		op.granulepos = 0;
+		op.packetno = 0;
+
+		// second header packet (comments) **********************************
+		opb = new oggpack_buffer();
+		if ( !opb._vorbis_pack_comment( vc ) )
+			return false;
+		
+		// build the packet
+		backend_state.header1 = new byte[ opb.oggpack_bytes() ];
+		// memcpy(b->header1,opb.buffer,oggpack_bytes(&opb));
+		System.arraycopy( opb.buffer, 0, backend_state.header1, 0, opb.oggpack_bytes() );
+		op_comm.packet = backend_state.header1;
+		op_comm.bytes = opb.oggpack_bytes();
+		op_comm.b_o_s = 0;
+		op_comm.e_o_s = 0;
+		op_comm.granulepos = 0;
+		op_comm.packetno = 1;
+
+		// third header packet (modes/codebooks) ****************************
+		opb = new oggpack_buffer();
+		if( !opb._vorbis_pack_books( vi ) )
+			return false;
+
+		// build the packet
+		backend_state.header2 = new byte[ opb.oggpack_bytes() ];
+		// memcpy(b->header2,opb.buffer,oggpack_bytes(&opb));
+		System.arraycopy( opb.buffer, 0, backend_state.header2, 0, opb.oggpack_bytes() );
+		op_code.packet = backend_state.header2;
+		op_code.bytes = opb.oggpack_bytes();
+		op_code.b_o_s = 0;
+		op_code.e_o_s = 0;
+		op_code.granulepos = 0;
+		op_code.packetno = 2;
+
+		return true;
+	}
+	
+	public float[][] vorbis_analysis_buffer( int vals ) {
+		
+		int i;
+		
+		// free header, header1, header2
+		backend_state.header = null;
+		backend_state.header1 = null;
+		backend_state.header2 = null;
+		
+		// Do we have enough storage space for the requested buffer? If not, expand the PCM (and envelope) storage
+		
+		if ( pcm_current + vals >= pcm_storage  ) {
+
+			pcm_storage = pcm_current + vals*2;
+
+// TODO - multiple channels
+// temp work around for loop - need hash, etc
+// for unique array name for array reference
+// this is workaround for only 2 channels
+
+			for ( i=0; i < vi.channels; i+=2 ) {
+				// pcm[i] = _ogg_realloc( v->pcm[i], v->pcm_storage*sizeof(*v->pcm[i]) );
+				float[] temp = new float[ pcm_storage ];
+				System.arraycopy( pcm[i], 0, temp, 0, pcm_current );
+				pcm[i] = temp;
+				
+				float[] temp2 = new float[ pcm_storage ];
+				System.arraycopy( pcm[i+1], 0, temp2, 0, pcm_current );
+				pcm[i+1] = temp2;
+			}
+		}
+		
+// for now I just return pcm and offset
+// by pcm_current to alter the .wav buffer
+
+		// for ( i=0; i < vi.channels; i++ )
+			// v->pcmret[i] = v->pcm[i] + v->pcm_current;
+
+		return pcm;
+	}
+	
+	public boolean vorbis_analysis_wrote( int vals ) {
+
+		codec_setup_info ci = vi.codec_setup;
+
+		if ( vals <= 0 ) {
+			
+			int order=32;
+		    int i;
+		    float[] lpc = new float[ order ];
+		    
+		    // if it wasn't done earlier (very short sample)
+		    if( preextrapolate <= 0 )
+		    	_preextrapolate_helper();
+		    
+		    // We're encoding the end of the stream.  Just make sure we have
+		    // [at least] a few full blocks of zeroes at the end.
+		    
+		    // Actually, we don't want zeroes; that could drop a large
+		    // amplitude off a cliff, creating spread spectrum noise that will
+		    // suck to encode.  Extrapolate for the sake of cleanliness.
+		    
+		    vorbis_analysis_buffer( ci.blocksizes[1]*3 ); 
+		    eofflag = pcm_current;
+		    pcm_current += ci.blocksizes[1]*3;
+		    
+		    for ( i=0; i < vi.channels; i++ ) {
+		    	
+		    	if ( eofflag > order*2 ) {
+		    		// extrapolate with LPC to fill in
+		    		int n;
+		    		
+		    		// make a predictor filter
+		    		n = eofflag;
+		    		if ( n > ci.blocksizes[1] )
+		    			n = ci.blocksizes[1];
+
+		    		// vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order);
+		    		vorbis_lpc_from_data( pcm[i], eofflag-n, lpc, n, order );
+
+		    		// run the predictor filter
+		    		// vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag);
+		    		vorbis_lpc_predict( lpc, pcm[i], eofflag-order, order, eofflag, pcm_current - eofflag );
+		    		
+		    	} else {
+		    		
+		    		// not enough data to extrapolate (unlikely to happen due to
+		    		// guarding the overlap, but bulletproof in case that
+		    		// assumtion goes away). zeroes will do.
+
+		    		// memset(v->pcm[i]+v->eofflag,0,(v->pcm_current-v->eofflag)*sizeof(*v->pcm[i]));
+		    		
+		    		// for ( int j=eofflag; j < pcm_current; j++ ) {
+		    		//	pcm[i][j] = 0;
+		    		// }
+		    		
+		    		Arrays.fill( pcm[i], eofflag, pcm_current, 0 );
+		    	}
+		    }
+		} else {
+			
+			if ( pcm_current+vals > pcm_storage )
+				return false;
+			
+			pcm_current += vals;
+			
+			// we may want to reverse extrapolate the beginning of a stream
+			// too... in case we're beginning on a cliff!
+			// clumsy, but simple.  It only runs once, so simple is good.
+			
+			if ( (preextrapolate <= 0) && pcm_current-centerW > ci.blocksizes[1] )
+				_preextrapolate_helper();
+		}
+		return true;
+	}
+	
+	public boolean vorbis_bitrate_flushpacket( ogg_packet op ) {
+		
+		private_state b = backend_state;
+		bitrate_manager_state bm = b.bms;
+		vorbis_block vb = bm.vb;
+		int choice = PACKETBLOBS/2;
+		
+		if ( vb == null )
+			return false;
+		
+		if ( op != null ) {
+			
+			vorbis_block_internal vbi = vb.internal;
+			
+			if ( vb.vorbis_bitrate_managed() )
+				choice = bm.choice;
+
+		    op.packet = vbi.packetblob[choice].buffer; 	// oggpack_get_buffer();
+		    op.bytes = vbi.packetblob[choice].oggpack_bytes();
+		    op.b_o_s = 0;
+		    op.e_o_s = vb.eofflag;
+		    op.granulepos = vb.granulepos;
+		    op.packetno = vb.sequence; 	// for sake of completeness    
+		}
+		
+		// bm.vb = 0;
+		bm.vb = null;
+		return true;	  
+	}
+	
+	public void _preextrapolate_helper() {
+		
+		int i;
+		int order = 32;
+		float[] lpc = new float[ order ];
+		float[] work = new float[ pcm_current ];
+		int j;
+		preextrapolate = 1;
+		
+		if ( pcm_current-centerW > order*2 ) { // safety
+			
+			for ( i=0; i< vi.channels; i++ ) {
+				
+				// need to run the extrapolation in reverse!
+				
+				for (j=0; j < pcm_current; j++)
+					work[j] = pcm[i][pcm_current-j-1];
+				
+				// prime as above
+				vorbis_lpc_from_data( work, 0, lpc, pcm_current-centerW, order );
+				
+				// run the predictor filter
+				vorbis_lpc_predict( lpc, work, pcm_current-centerW-order, order, pcm_current-centerW, centerW );
+				
+				for ( j=0; j < pcm_current; j++ )
+					pcm[i][pcm_current-j-1] = work[j];
+			}
+		}
+	}
+	
+	public float vorbis_lpc_from_data( float[] data, int offset1, float[] lpci, int n, int m ) {
+		
+		// double *aut=alloca(sizeof(*aut)*(m+1));
+		double[] aut = new double[ m+1 ];
+		// double *lpc=alloca(sizeof(*lpc)*(m));
+		double[] lpc = new double[ m ];
+		double error;
+		int i,j;
+		
+		// autocorrelation, p+1 lag coefficients
+		j = m+1;
+		while ( j-- > 0 ) {
+			double d = 0; // double needed for accumulator depth
+			for ( i=j; i < n; i++ )
+				d += (double)data[offset1+i] * data[offset1+i-j];
+			aut[j] = d;
+		}
+		
+		// Generate lpc coefficients from autocorr values
+		
+		error = aut[0];
+		
+		for ( i=0; i < m; i++ ) {
+			
+			double r = -aut[i+1];
+			
+			if ( error==0 ) {
+				lpci = new float[ lpci.length ];
+				return 0;
+			}
+			
+			// Sum up this iteration's reflection coefficient; note that in Vorbis
+			// we don't save it.  If anyone wants to recycle this code and needs 
+			// reflection coefficients, save the results of 'r' from each iteration.
+			
+			for ( j=0; j < i; j++)
+				r -= lpc[j]*aut[i-j];
+			r /= error;
+			
+			// Update LPC coefficients and total error
+			
+			lpc[i] = r;
+			for ( j=0; j < i/2; j++ ) {
+				
+				double tmp = lpc[j];
+				
+				lpc[j] += r*lpc[i-1-j];
+				lpc[i-1-j] += r*tmp;
+			}
+			if ( i%2 > 0 )
+				lpc[j] += lpc[j]*r;
+			
+			error *= 1.f-r*r;
+		}
+		
+		for ( j=0; j <m ; j++ )
+			lpci[j] = (float)lpc[j];
+		
+		// we need the error value to know how big an impulse to hit the filter with later
+		
+		return new Double( error ).floatValue();
+	}
+	
+	public void vorbis_lpc_predict( float[] coeff, float[] prime, int offset1, int m, int offset2, int n ) {
+		
+		// in: coeff[0...m-1] LPC coefficients 
+		// 	   prime[0...m-1] initial values (allocated size of n+m-1)
+		// out: data[0...n-1] data samples
+		
+		int i,j,o,p;
+		float y;
+		float[] work = new float[ m+n ];
+		
+		if ( prime == null )
+			for ( i=0; i < m; i++ )
+				work[i] = 0.f;
+		else
+			for ( i=0; i < m; i++)
+				work[i] = prime[ offset1+i ];
+		
+		for ( i=0; i < n; i++ ) {
+			y=0;
+			o=i;
+			p=m;
+			for ( j=0; j < m; j++ )
+				y -= work[o++]*coeff[--p];
+		    
+		    prime[ offset2+i ] = work[o] = y;
+		}
+	}
+	
+	public int _ve_envelope_search() {
+		
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy_global gi = ci.psy_g_param;
+		envelope_lookup ve = backend_state.ve;
+		int i, j;
+		
+		int first = ve.current/ve.searchstep;
+		int last = pcm_current/ve.searchstep-VE_WIN;
+		if ( first < 0 )
+			first=0;
+		
+		// make sure we have enough storage to match the PCM
+		if ( last+VE_WIN+VE_POST > ve.storage ) {
+			ve.storage=last+VE_WIN+VE_POST; // be sure
+			
+			// ve.mark = _ogg_realloc(ve.mark,ve.storage*sizeof(*ve.mark));
+			int[] temp = new int[ ve.storage ];
+			System.arraycopy( ve.mark, 0, temp, 0, ve.mark.length );
+			ve.mark = temp;
+		}
+		
+		for ( j=first; j < last; j++ ) {
+			
+			int ret=0;
+			
+			ve.stretch++;
+			if ( ve.stretch > VE_MAXSTRETCH*2 )
+				ve.stretch = VE_MAXSTRETCH*2;
+			
+			for ( i=0; i < ve.ch; i++ ) {
+				// float *pcm = pcm[i] + ve.searchstep*(j);
+				// ret |= _ve_amp( ve, gi, _pcm, ve.band, ve.filter+i*VE_BANDS, j );
+				ret |= ve._ve_amp( gi, pcm[i], ve.searchstep*(j), ve.band, ve.filter, i*VE_BANDS, j );
+			}
+			
+			ve.mark[j+VE_POST] = 0;
+			if ( (ret&1) > 0 ) {
+				ve.mark[j] = 1;
+				ve.mark[j+1] = 1;
+			}
+			
+			if ( (ret&2) > 0 ) {
+				ve.mark[j] = 1;
+				if ( j > 0 )
+					ve.mark[j-1] = 1;
+			}
+			
+			if ( (ret&4) > 0 )
+				ve.stretch = -1;
+		}
+		
+//		ve.out( "", null );
+		
+		ve.current = last*ve.searchstep;
+
+// OOP local variable rename
+		int centerW_local = centerW;
+		int testW = centerW_local + ci.blocksizes[W]/4 + ci.blocksizes[1]/2 + ci.blocksizes[0]/4;
+		
+		j = ve.cursor;
+		
+		while ( j < ve.current-(ve.searchstep) ) { // account for postecho working back one window
+			
+			if ( j >= testW )
+				return 1;
+			
+			ve.cursor=j;
+			
+			if ( ve.mark[ j/ve.searchstep ] > 0 ) {
+				
+				if ( j > centerW_local ) {
+					ve.curmark = j;
+					if ( j >= testW )
+						return 1;
+					return 0;
+				}
+			}
+			
+			j += ve.searchstep;
+		}
+		
+		return -1;
+	}
+		
+	public boolean _ve_envelope_mark() {
+		
+		envelope_lookup ve = backend_state.ve;
+		codec_setup_info ci = vi.codec_setup;
+	
+// local OOP variable rename centerW
+		int centerW_local = centerW;
+		int beginW = centerW_local-ci.blocksizes[W]/4;
+		int endW = centerW_local+ci.blocksizes[W]/4;
+		
+		if ( W > 0 ) {
+			beginW -= ci.blocksizes[lW]/4;
+			endW += ci.blocksizes[nW]/4;
+		} else {
+			beginW -= ci.blocksizes[0]/4;
+			endW += ci.blocksizes[0]/4;
+		}
+		
+		if ( ve.curmark >= beginW && ve.curmark<endW)
+			return true;
+		  {
+		    int first = beginW/ve.searchstep;
+		    int last = endW/ve.searchstep;
+		    int i;
+		    for ( i=first; i < last; i++ )
+		    	if ( ve.mark[i] > 0 )
+		    		return true;
+		  }
+		  
+		  return false;
+	}
+	
+	public float _vp_ampmax_decay( float amp ) {
+		
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy_global gi = ci.psy_g_param;
+		
+		int n = ci.blocksizes[W]/2;
+		float secs = (float)n/vi.rate;
+		
+		amp += secs*gi.ampmax_att_per_sec;
+		if ( amp < -9999 )
+			amp=-9999;
+		
+		return amp;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_dsp_state.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,46 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_info {
+
+	int version;
+	public int channels;
+	int rate;				// long rate
+	int bitrate_upper;		// long bitrate_upper
+	int bitrate_nominal;	// long bitrate_nominal
+	int bitrate_lower;		// long bitrate_lower
+	int bitrate_window;		// long bitrate_window
+
+	codec_setup_info codec_setup;	// void * codec_setup
+
+
+	public vorbis_info() {
+
+		codec_setup = new codec_setup_info();
+	}
+
+	public void vorbis_info_clear() {
+
+		version = 0;
+		channels = 0;
+		rate = 0;
+		bitrate_upper = 0;
+		bitrate_nominal = 0;
+		bitrate_lower = 0;
+		bitrate_window = 0;
+
+		// free codec_setup memory
+		codec_setup = null;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_floor1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_floor1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_floor1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,82 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class vorbis_info_floor1 {
+
+	int partitions;
+	int[] partitionclass;	// #define VIF_PARTS 31
+
+	int[] class_dim;		// #define VIF_CLASS 16
+	int[] class_subs;
+	int[] class_book;
+	int[][] class_subbook;	// [VIF_CLASS][subs]
+
+	int mult;
+	int[] postlist;		// #define VIF_POSIT 63 + 2
+
+	// encode side analysis parameters
+	float maxover;
+	float maxunder;
+	float maxerr;
+
+	float twofitweight;
+	float twofitatten;
+
+	int n;
+
+
+	public vorbis_info_floor1( int _partitions, int[] _partitionclass, int[] _class_dim, int[] _class_subs, int[] _class_book, int[][] _class_subbook, int _mult, int[] _postlist,
+				float _maxover, float _maxunder, float _maxerr, float _twofitweight, float _twofitatten, int _n ) {
+
+		partitions = _partitions;
+
+		partitionclass = new int[ VIF_PARTS ];
+		System.arraycopy( _partitionclass, 0, partitionclass, 0, _partitionclass.length );
+
+		class_dim = new int[ VIF_CLASS ];
+		System.arraycopy( _class_dim, 0, class_dim, 0, _class_dim.length );
+
+		class_subs = new int[ VIF_CLASS ];
+		System.arraycopy( _class_subs, 0, class_subs, 0, _class_subs.length );
+
+		class_book = new int[ VIF_CLASS ];
+		System.arraycopy( _class_book, 0, class_book, 0, _class_book.length );
+
+		class_subbook = new int[ VIF_CLASS ][8];
+		for ( int i=0; i < _class_subbook.length; i++ )
+			System.arraycopy( _class_subbook[i], 0, class_subbook[i], 0, _class_subbook[i].length );
+
+		mult = _mult;
+
+		postlist = new int[ VIF_POSIT+2 ];
+		System.arraycopy( _postlist, 0, postlist, 0, _postlist.length );
+
+		maxover = _maxover;
+		maxunder = _maxunder;
+		maxerr = _maxerr;
+
+		twofitweight = _twofitweight;
+		twofitatten = _twofitatten;
+
+		n = _n;
+	}
+
+	public vorbis_info_floor1( vorbis_info_floor1 src ) {
+
+		this( src.partitions, src.partitionclass, src.class_dim, src.class_subs, src.class_book, src.class_subbook, src.mult, src.postlist,
+				src.maxover, src.maxunder, src.maxerr, src.twofitweight, src.twofitatten, src.n );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_floor1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mapping0.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mapping0.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mapping0.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,54 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_info_mapping0 {
+
+	int submaps;		// <= 16
+	int[] chmuxlist;	// up to 256 channels in a Vorbis stream
+  
+	int[] floorsubmap;	// [mux] submap to floors 16
+	int[] residuesubmap;	// [mux] submap to residue 16
+
+	int coupling_steps;
+	int[] coupling_mag;	// 256
+	int[] coupling_ang;	// 256
+
+
+	public vorbis_info_mapping0( int _submaps, int[] _chmuxlist, int[] _floorsubmap, int[] _residuesubmap, int _coupling_steps, int[] _coupling_mag, int[] _coupling_ang ) {
+
+		submaps = _submaps;
+
+		chmuxlist = new int[ 256 ];
+		System.arraycopy( _chmuxlist, 0, chmuxlist, 0, _chmuxlist.length );
+
+		floorsubmap = new int[ 16 ];
+		System.arraycopy( _floorsubmap, 0, floorsubmap, 0, _floorsubmap.length );
+
+		residuesubmap = new int[ 16 ];
+		System.arraycopy( _residuesubmap, 0, residuesubmap, 0, _residuesubmap.length );
+
+		coupling_steps = _coupling_steps;
+
+		coupling_mag = new int[ 256 ];
+		System.arraycopy( _coupling_mag, 0, coupling_mag, 0, _coupling_mag.length );
+
+		coupling_ang = new int[ 256 ];
+		System.arraycopy( _coupling_ang, 0, coupling_ang, 0, _coupling_ang.length );
+	}
+
+	public vorbis_info_mapping0( vorbis_info_mapping0 src ) {
+
+		this( src.submaps, src.chmuxlist, src.floorsubmap, src.residuesubmap, src.coupling_steps, src.coupling_mag, src.coupling_ang );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mapping0.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mode.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mode.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mode.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,35 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class vorbis_info_mode {
+
+	int blockflag;
+	int windowtype;
+	int transformtype;
+	int mapping;
+
+
+	public vorbis_info_mode( int _blockflag, int _windowtype, int _transformtype, int _mapping ) {
+
+		blockflag = _blockflag;
+		windowtype = _windowtype;
+		transformtype = _transformtype;
+		mapping = _mapping;
+	}
+
+	public vorbis_info_mode( vorbis_info_mode src ) {
+
+		this( src.blockflag, src.windowtype, src.transformtype, src.mapping );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_mode.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,98 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class vorbis_info_psy {
+
+	int blockflag;
+
+	float ath_adjatt;
+	float ath_maxatt;
+
+	float[] tone_masteratt;		// tone_masteratt[P_NOISECURVES]
+	float tone_centerboost;
+	float tone_decay;
+	float tone_abs_limit;
+	float[] toneatt;			// toneatt[P_BANDS]
+
+	int noisemaskp;
+	float noisemaxsupp;
+	float noisewindowlo;
+	float noisewindowhi;
+	int noisewindowlomin;
+	int noisewindowhimin;
+	int noisewindowfixed;
+	float[][] noiseoff;			// noiseoff[P_NOISECURVES][P_BANDS]
+	float[] noisecompand;		// noisecompand[NOISE_COMPAND_LEVELS]
+
+	float max_curve_dB;
+
+	int normal_channel_p;
+	int normal_point_p;
+	int normal_start;
+	int normal_partition;
+	float normal_thresh;		// double normal_thresh
+
+
+	public vorbis_info_psy( int _blockflag, float _ath_adjatt, float _ath_maxatt, float[] _tone_masteratt, float _tone_centerboost, float _tone_decay, float _tone_abs_limit, float[] _toneatt,
+			int _noisemaskp, float _noisemaxsupp, float _noisewindowlo, float _noisewindowhi, int _noisewindowlomin, int _noisewindowhimin, int _noisewindowfixed, float[][] _noiseoff, float[] _noisecompand,
+			float _max_curve_dB, int _normal_channel_p, int _normal_point_p, int _normal_start, int _normal_partition, float _normal_thresh ) {
+
+		blockflag = _blockflag;
+
+		ath_adjatt = _ath_adjatt;
+		ath_maxatt = _ath_maxatt;
+
+		tone_masteratt = new float[ P_NOISECURVES ];
+		System.arraycopy( _tone_masteratt, 0, tone_masteratt, 0, _tone_masteratt.length );
+
+		tone_centerboost = _tone_centerboost;
+		tone_decay = _tone_decay;
+		tone_abs_limit = _tone_abs_limit;
+
+		toneatt = new float[ P_BANDS ];
+		System.arraycopy( _toneatt, 0, toneatt, 0, _toneatt.length );
+
+		noisemaskp = _noisemaskp;
+		noisemaxsupp = _noisemaxsupp;
+		noisewindowlo = _noisewindowlo;
+		noisewindowhi = _noisewindowhi;
+		noisewindowlomin = _noisewindowlomin;
+		noisewindowhimin = _noisewindowhimin;
+		noisewindowfixed = _noisewindowfixed;
+
+		noiseoff = new float[ P_NOISECURVES ][ P_BANDS ];
+		for ( int i=0; i < _noiseoff.length; i++ )
+			System.arraycopy( _noiseoff[i], 0, noiseoff[i], 0, _noiseoff[i].length );
+
+		noisecompand = new float[ NOISE_COMPAND_LEVELS ];
+		System.arraycopy( _noisecompand, 0, noisecompand, 0, _noisecompand.length );
+
+		max_curve_dB = _max_curve_dB;
+
+		normal_channel_p = _normal_channel_p;
+		normal_point_p = _normal_point_p;
+		normal_start = _normal_start;
+		normal_partition = _normal_partition;
+		normal_thresh = _normal_thresh;
+	}
+
+	public vorbis_info_psy( vorbis_info_psy src ) {
+
+		this( src.blockflag, src.ath_adjatt, src.ath_maxatt, src.tone_masteratt, src.tone_centerboost, src.tone_decay, src.tone_abs_limit, src.toneatt,
+			src.noisemaskp, src.noisemaxsupp, src.noisewindowlo, src.noisewindowhi, src.noisewindowlomin, src.noisewindowhimin, src.noisewindowfixed, src.noiseoff, src.noisecompand,
+			src.max_curve_dB, src.normal_channel_p, src.normal_point_p, src.normal_start, src.normal_partition, src.normal_thresh );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy_global.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy_global.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy_global.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,75 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class vorbis_info_psy_global {
+
+	int eighth_octave_lines;
+
+	// for block long/short tuning; encode only
+	float[] preecho_thresh;			// preecho_thresh[VE_BANDS]
+	float[] postecho_thresh;		// postecho_thresh[VE_BANDS]
+	float stretch_penalty;
+	float preecho_minenergy;
+	
+	float ampmax_att_per_sec;
+
+	int[] coupling_pkHz;			// coupling_pkHz[PACKETBLOBS]
+	int[][] coupling_pointlimit;	// coupling_pointlimit[2][PACKETBLOBS]
+	int[] coupling_prepointamp;		// coupling_prepointamp[PACKETBLOBS]
+	int[] coupling_postpointamp;	// coupling_postpointamp[PACKETBLOBS]
+	int[][] sliding_lowpass;		// sliding_lowpass[2][PACKETBLOBS]
+
+
+	public vorbis_info_psy_global( int _eighth_octave_lines, float[] _preecho_thresh, float[] _postecho_thresh, float _stretch_penalty, float _preecho_minenergy, float _ampmax_att_per_sec,
+					int[] _coupling_pkHz, int[][] _coupling_pointlimit, int[] _coupling_prepointamp, int[] _coupling_postpointamp, int[][] _sliding_lowpass ) {
+
+		eighth_octave_lines = _eighth_octave_lines;
+
+		preecho_thresh = new float[ VE_BANDS ];
+		System.arraycopy( _preecho_thresh, 0, preecho_thresh, 0, _preecho_thresh.length );
+
+		postecho_thresh = new float[ VE_BANDS ];
+		System.arraycopy( _postecho_thresh, 0, postecho_thresh, 0, _postecho_thresh.length );
+
+		stretch_penalty = _stretch_penalty;
+		preecho_minenergy = _preecho_minenergy;
+		ampmax_att_per_sec = _ampmax_att_per_sec;
+
+		coupling_pkHz = new int[ PACKETBLOBS ];
+		System.arraycopy( _coupling_pkHz, 0, coupling_pkHz, 0, _coupling_pkHz.length );
+
+		coupling_pointlimit = new int[2][ PACKETBLOBS ];
+		for ( int i=0; i < _coupling_pointlimit.length; i++ )
+			System.arraycopy( _coupling_pointlimit[i], 0, coupling_pointlimit[i], 0, _coupling_pointlimit[i].length );
+
+
+		coupling_prepointamp = new int[ PACKETBLOBS ];
+		System.arraycopy( _coupling_prepointamp, 0, coupling_prepointamp, 0, _coupling_prepointamp.length );
+
+		coupling_postpointamp = new int[ PACKETBLOBS ];
+		System.arraycopy( _coupling_postpointamp, 0, coupling_postpointamp, 0, _coupling_postpointamp.length );
+
+		sliding_lowpass = new int[2][ PACKETBLOBS ];
+		for ( int i=0; i < _sliding_lowpass.length; i++ )
+			System.arraycopy( _sliding_lowpass[i], 0, sliding_lowpass[i], 0, _sliding_lowpass[i].length );
+	}
+
+	public vorbis_info_psy_global( vorbis_info_psy_global src ) {
+
+		this( src.eighth_octave_lines, src.preecho_thresh, src.postecho_thresh, src.stretch_penalty, src.preecho_minenergy, src.ampmax_att_per_sec,
+					src.coupling_pkHz, src.coupling_pointlimit, src.coupling_prepointamp, src.coupling_postpointamp, src.sliding_lowpass );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_psy_global.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_residue0.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_residue0.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_residue0.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,58 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_info_residue0 {
+
+	// block-partitioned VQ coded straight residue
+	int begin;			// long begin
+	int end;			// long end
+
+	// first stage (lossless partitioning)
+	int grouping;		// group n vectors per partition
+	int partitions;		// possible codebooks for a partition
+	int groupbook;		// huffbook for partitioning
+	int[] secondstages;	// expanded out to pointers in lookup   secondstages[64]
+	int[] booklist;		// list of second stage books  booklist[256]
+
+	float[] classmetric1;	// classmetric1[64]
+	float[] classmetric2;	// classmetric2[64]
+
+
+	public vorbis_info_residue0( int _begin, int _end, int _grouping, int _partitions, int _groupbook, int[] _secondstages, int[] _booklist, float[] _classmetric1, float[] _classmetric2 ) {
+
+		begin = _begin;
+		end = _end;
+
+		grouping = _grouping;
+		partitions = _partitions;
+		groupbook = _groupbook;
+		
+		secondstages = new int[ 64 ];
+		System.arraycopy( _secondstages, 0, secondstages, 0, _secondstages.length );
+
+		booklist = new int[ 256 ];
+		System.arraycopy( _booklist, 0, booklist, 0, _booklist.length );
+
+		classmetric1 = new float[ 64 ];
+		System.arraycopy( _classmetric1, 0, classmetric1, 0, _classmetric1.length );
+
+		classmetric2 = new float[ 64 ];
+		System.arraycopy( _classmetric2, 0, classmetric2, 0, _classmetric2.length );
+	}
+
+	public vorbis_info_residue0( vorbis_info_residue0 src ) {
+
+		this( src.begin, src.end, src.grouping, src.partitions, src.groupbook, src.secondstages, src.booklist, src.classmetric1, src.classmetric2 );
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_info_residue0.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_floor1.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_floor1.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_floor1.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,45 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class vorbis_look_floor1 {
+
+	int[] sorted_index;	// int sorted_index[VIF_POSIT+2];
+	int[] forward_index;	// int forward_index[VIF_POSIT+2];
+	int[] reverse_index;	// int reverse_index[VIF_POSIT+2];
+
+	int[] hineighbor;	// int hineighbor[VIF_POSIT];
+	int[] loneighbor;	// int loneighbor[VIF_POSIT];
+	int posts;
+
+	int n;
+	int quant_q;
+	vorbis_info_floor1 vi;
+
+	int phrasebits;
+	int postbits;
+	int frames;
+
+
+	public vorbis_look_floor1() {
+
+		sorted_index = new int[ VIF_POSIT+2 ];
+		forward_index = new int[ VIF_POSIT+2 ];
+		reverse_index = new int[ VIF_POSIT+2 ];
+
+		hineighbor = new int[ VIF_POSIT ];
+		loneighbor = new int[ VIF_POSIT ];
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_floor1.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1620 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class vorbis_look_psy {
+
+	int n;
+	vorbis_info_psy vi;
+
+	float[][][] tonecurves;		// float ***tonecurves
+	float[][] noiseoffset;		// float **noiseoffset
+
+	float[] ath;
+	int[] octave;			// in n.ocshift format
+	int[] bark;
+
+	int firstoc;
+	int shiftoc;
+	int eighth_octave_lines;	// power of two, please
+	int total_octave_lines;
+	int rate;			// cache it
+	
+	float m_val;	// Masking compensation value
+	
+//	 static float ATH[]={
+	public static final float[] ATH = new float[] {
+	  /*15*/  -51, -52, -53, -54, -55, -56, -57, -58,  
+	  /*31*/  -59, -60, -61, -62, -63, -64, -65, -66,
+	  /*63*/  -67, -68, -69, -70, -71, -72, -73, -74, 
+	  /*125*/ -75, -76, -77, -78, -80, -81, -82, -83,
+	  /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, 
+	  /*500*/ -90, -91, -91, -92, -93, -94, -95, -96,
+	  /*1k*/  -96, -97, -98, -98, -99, -99,-100,-100,
+	  /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107,
+	  /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96,
+	  /*8k*/  -95, -95, -96, -97, -96, -95, -93, -90,
+	  /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30
+	};
+	
+//	 static float tonemasks[P_BANDS][6][EHMER_MAX]={
+	public static final float[][][] tonemasks = new float[][][] {
+	  /* 62.5 Hz */
+	  {{ -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60, 
+	     -60,  -60,  -60,  -60,  -62,  -62,  -65,  -73, 
+	     -69,  -68,  -68,  -67,  -70,  -70,  -72,  -74, 
+	     -75,  -79,  -79,  -80,  -83,  -88,  -93, -100, 
+	     -110, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
+	     -48,  -48,  -48,  -48,  -48,  -53,  -61,  -66, 
+	     -66,  -68,  -67,  -70,  -76,  -76,  -72,  -73, 
+	     -75,  -76,  -78,  -79,  -83,  -88,  -93, -100, 
+	     -110, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37, 
+	     -38,  -40,  -42,  -46,  -48,  -53,  -55,  -62, 
+	     -65,  -58,  -56,  -56,  -61,  -60,  -65,  -67, 
+	     -69,  -71,  -77,  -77,  -78,  -80,  -82,  -84, 
+	     -88,  -93,  -98, -106, -112, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
+	     -25,  -26,  -27,  -29,  -32,  -38,  -48,  -52, 
+	     -52,  -50,  -48,  -48,  -51,  -52,  -54,  -60, 
+	     -67,  -67,  -66,  -68,  -69,  -73,  -73,  -76, 
+	     -80,  -81,  -81,  -85,  -85,  -86,  -88,  -93, 
+	     -100, -110, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
+	     -17,  -19,  -20,  -22,  -26,  -28,  -31,  -40, 
+	     -47,  -39,  -39,  -40,  -42,  -43,  -47,  -51, 
+	     -57,  -52,  -55,  -55,  -60,  -58,  -62,  -63, 
+	     -70,  -67,  -69,  -72,  -73,  -77,  -80,  -82, 
+	     -83,  -87,  -90,  -94,  -98, -104, -115, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   {  -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8, 
+	      -8,   -8,  -10,  -11,  -15,  -19,  -25,  -30, 
+	      -34,  -31,  -30,  -31,  -29,  -32,  -35,  -42, 
+	      -48,  -42,  -44,  -46,  -50,  -50,  -51,  -52, 
+	      -59,  -54,  -55,  -55,  -58,  -62,  -63,  -66, 
+	      -72,  -73,  -76,  -75,  -78,  -80,  -80,  -81, 
+	      -84,  -88,  -90,  -94,  -98, -101, -106, -110}}, 
+	  /* 88Hz */
+	  {{ -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66, 
+	     -66,  -66,  -66,  -66,  -66,  -67,  -67,  -67, 
+	     -76,  -72,  -71,  -74,  -76,  -76,  -75,  -78, 
+	     -79,  -79,  -81,  -83,  -86,  -89,  -93,  -97, 
+	     -100, -105, -110, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47, 
+	     -47,  -47,  -47,  -48,  -51,  -55,  -59,  -66, 
+	     -66,  -66,  -67,  -66,  -68,  -69,  -70,  -74, 
+	     -79,  -77,  -77,  -78,  -80,  -81,  -82,  -84, 
+	     -86,  -88,  -91,  -95, -100, -108, -116, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
+	     -36,  -37,  -37,  -41,  -44,  -48,  -51,  -58, 
+	     -62,  -60,  -57,  -59,  -59,  -60,  -63,  -65, 
+	     -72,  -71,  -70,  -72,  -74,  -77,  -76,  -78, 
+	     -81,  -81,  -80,  -83,  -86,  -91,  -96, -100, 
+	     -105, -110, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
+	     -28,  -30,  -32,  -32,  -33,  -35,  -41,  -49, 
+	     -50,  -49,  -47,  -48,  -48,  -52,  -51,  -57, 
+	     -65,  -61,  -59,  -61,  -64,  -69,  -70,  -74, 
+	     -77,  -77,  -78,  -81,  -84,  -85,  -87,  -90, 
+	     -92,  -96, -100, -107, -112, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   { -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
+	     -20,  -21,  -23,  -27,  -30,  -35,  -36,  -41, 
+	     -46,  -44,  -42,  -40,  -41,  -41,  -43,  -48, 
+	     -55,  -53,  -52,  -53,  -56,  -59,  -58,  -60, 
+	     -67,  -66,  -69,  -71,  -72,  -75,  -79,  -81, 
+	     -84,  -87,  -90,  -93,  -97, -101, -107, -114, 
+	     -999, -999, -999, -999, -999, -999, -999, -999},
+	   {  -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9, 
+	      -11,  -12,  -12,  -15,  -16,  -20,  -23,  -30, 
+	      -37,  -34,  -33,  -34,  -31,  -32,  -32,  -38, 
+	      -47,  -44,  -41,  -40,  -47,  -49,  -46,  -46, 
+	      -58,  -50,  -50,  -54,  -58,  -62,  -64,  -67, 
+	      -67,  -70,  -72,  -76,  -79,  -83,  -87,  -91, 
+	      -96, -100, -104, -110, -999, -999, -999, -999}}, 
+	  /* 125 Hz */
+	  {{ -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62, 
+	     -62,  -62,  -63,  -64,  -66,  -67,  -66,  -68, 
+	     -75,  -72,  -76,  -75,  -76,  -78,  -79,  -82, 
+	     -84,  -85,  -90,  -94, -101, -110, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59, 
+	     -59,  -59,  -59,  -60,  -60,  -61,  -63,  -66, 
+	     -71,  -68,  -70,  -70,  -71,  -72,  -72,  -75, 
+	     -81,  -78,  -79,  -82,  -83,  -86,  -90,  -97, 
+	     -103, -113, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, 
+	     -53,  -54,  -55,  -57,  -56,  -57,  -55,  -61, 
+	     -65,  -60,  -60,  -62,  -63,  -63,  -66,  -68, 
+	     -74,  -73,  -75,  -75,  -78,  -80,  -80,  -82, 
+	     -85,  -90,  -96, -101, -108, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46, 
+	     -46,  -46,  -47,  -47,  -47,  -47,  -48,  -51, 
+	     -57,  -51,  -49,  -50,  -51,  -53,  -54,  -59, 
+	     -66,  -60,  -62,  -67,  -67,  -70,  -72,  -75, 
+	     -76,  -78,  -81,  -85,  -88,  -94,  -97, -104, 
+	     -112, -999, -999, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
+	     -39,  -41,  -42,  -42,  -39,  -38,  -41,  -43, 
+	     -52,  -44,  -40,  -39,  -37,  -37,  -40,  -47, 
+	     -54,  -50,  -48,  -50,  -55,  -61,  -59,  -62, 
+	     -66,  -66,  -66,  -69,  -69,  -73,  -74,  -74, 
+	     -75,  -77,  -79,  -82,  -87,  -91,  -95, -100, 
+	     -108, -115, -999, -999, -999, -999, -999, -999}, 
+	   { -28,  -26,  -24,  -22,  -20,  -20,  -23,  -29, 
+	     -30,  -31,  -28,  -27,  -28,  -28,  -28,  -35, 
+	     -40,  -33,  -32,  -29,  -30,  -30,  -30,  -37, 
+	     -45,  -41,  -37,  -38,  -45,  -47,  -47,  -48, 
+	     -53,  -49,  -48,  -50,  -49,  -49,  -51,  -52, 
+	     -58,  -56,  -57,  -56,  -60,  -61,  -62,  -70, 
+	     -72,  -74,  -78,  -83,  -88,  -93, -100, -106}}, 
+	  /* 177 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -110, -105, -100,  -95,  -91,  -87,  -83, 
+	    -80,  -78,  -76,  -78,  -78,  -81,  -83,  -85, 
+	    -86,  -85,  -86,  -87,  -90,  -97, -107, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -110, -105, -100,  -95,  -90, 
+	    -85,  -81,  -77,  -73,  -70,  -67,  -67,  -68, 
+	    -75,  -73,  -70,  -69,  -70,  -72,  -75,  -79, 
+	    -84,  -83,  -84,  -86,  -88,  -89,  -89,  -93, 
+	    -98, -105, -112, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-105, -100,  -95,  -90,  -85,  -80,  -76,  -71, 
+	    -68,  -68,  -65,  -63,  -63,  -62,  -62,  -64, 
+	    -65,  -64,  -61,  -62,  -63,  -64,  -66,  -68, 
+	    -73,  -73,  -74,  -75,  -76,  -81,  -83,  -85, 
+	    -88,  -89,  -92,  -95, -100, -108, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -80,  -75,  -71,  -68,  -65,  -63,  -62,  -61, 
+	     -61,  -61,  -61,  -59,  -56,  -57,  -53,  -50, 
+	     -58,  -52,  -50,  -50,  -52,  -53,  -54,  -58, 
+	     -67,  -63,  -67,  -68,  -72,  -75,  -78,  -80, 
+	     -81,  -81,  -82,  -85,  -89,  -90,  -93,  -97, 
+	     -101, -107, -114, -999, -999, -999, -999, -999, 
+	     -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -65,  -61,  -59,  -57,  -56,  -55,  -55,  -56, 
+	     -56,  -57,  -55,  -53,  -52,  -47,  -44,  -44, 
+	     -50,  -44,  -41,  -39,  -39,  -42,  -40,  -46, 
+	     -51,  -49,  -50,  -53,  -54,  -63,  -60,  -61, 
+	     -62,  -66,  -66,  -66,  -70,  -73,  -74,  -75, 
+	     -76,  -75,  -79,  -85,  -89,  -91,  -96, -102, 
+	     -110, -999, -999, -999, -999, -999, -999, -999}, 
+	   { -52,  -50,  -49,  -49,  -48,  -48,  -48,  -49, 
+	     -50,  -50,  -49,  -46,  -43,  -39,  -35,  -33, 
+	     -38,  -36,  -32,  -29,  -32,  -32,  -32,  -35, 
+	     -44,  -39,  -38,  -38,  -46,  -50,  -45,  -46, 
+	     -53,  -50,  -50,  -50,  -54,  -54,  -53,  -53, 
+	     -56,  -57,  -59,  -66,  -70,  -72,  -74,  -79, 
+	     -83,  -85,  -90, -97, -114, -999, -999, -999}}, 
+	  /* 250 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -110, -105, 
+	    -100,  -95,  -90,  -86,  -80,  -75,  -75,  -79, 
+	    -80,  -79,  -80,  -81,  -82,  -88,  -95, -103, 
+	    -110, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -108, -103,  -98,  -93, 
+	    -88,  -83,  -79,  -78,  -75,  -71,  -67,  -68, 
+	    -73,  -73,  -72,  -73,  -75,  -77,  -80,  -82, 
+	    -88,  -93, -100, -107, -114, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -110, -105, -101,  -96,  -90, 
+	    -86,  -81,  -77,  -73,  -69,  -66,  -61,  -62, 
+	    -66,  -64,  -62,  -65,  -66,  -70,  -72,  -76, 
+	    -81,  -80,  -84,  -90,  -95, -102, -110, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -107, -103,  -97,  -92,  -88, 
+	    -83,  -79,  -74,  -70,  -66,  -59,  -53,  -58, 
+	    -62,  -55,  -54,  -54,  -54,  -58,  -61,  -62, 
+	    -72,  -70,  -72,  -75,  -78,  -80,  -81,  -80, 
+	    -83,  -83,  -88,  -93, -100, -107, -115, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -105, -100,  -95,  -90,  -85, 
+	    -80,  -75,  -70,  -66,  -62,  -56,  -48,  -44, 
+	    -48,  -46,  -46,  -43,  -46,  -48,  -48,  -51, 
+	    -58,  -58,  -59,  -60,  -62,  -62,  -61,  -61, 
+	    -65,  -64,  -65,  -68,  -70,  -74,  -75,  -78, 
+	    -81,  -86,  -95, -110, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999,  -999, -105, -100,  -95,  -90,  -85,  -80, 
+	    -75,  -70,  -65,  -61,  -55,  -49,  -39,  -33, 
+	    -40,  -35,  -32,  -38,  -40,  -33,  -35,  -37, 
+	    -46,  -41,  -45,  -44,  -46,  -42,  -45,  -46, 
+	    -52,  -50,  -50,  -50,  -54,  -54,  -55,  -57, 
+	    -62,  -64,  -66,  -68,  -70,  -76,  -81,  -90, 
+	    -100, -110, -999, -999, -999, -999, -999, -999}}, 
+	  /* 354 hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -105,  -98,  -90,  -85,  -82,  -83,  -80,  -78, 
+	    -84,  -79,  -80,  -83,  -87,  -89,  -91,  -93, 
+	    -99, -106, -117, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -105,  -98,  -90,  -85,  -80,  -75,  -70,  -68, 
+	    -74,  -72,  -74,  -77,  -80,  -82,  -85,  -87, 
+	    -92,  -89,  -91,  -95, -100, -106, -112, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -105,  -98,  -90,  -83,  -75,  -71,  -63,  -64, 
+	    -67,  -62,  -64,  -67,  -70,  -73,  -77,  -81, 
+	    -84,  -83,  -85,  -89,  -90,  -93,  -98, -104, 
+	    -109, -114, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -103,  -96,  -88,  -81,  -75,  -68,  -58,  -54, 
+	    -56,  -54,  -56,  -56,  -58,  -60,  -63,  -66, 
+	    -74,  -69,  -72,  -72,  -75,  -74,  -77,  -81, 
+	    -81,  -82,  -84,  -87,  -93,  -96,  -99, -104, 
+	    -110, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -108, -102,  -96, 
+	    -91,  -85,  -80,  -74,  -68,  -60,  -51,  -46, 
+	    -48,  -46,  -43,  -45,  -47,  -47,  -49,  -48, 
+	    -56,  -53,  -55,  -58,  -57,  -63,  -58,  -60, 
+	    -66,  -64,  -67,  -70,  -70,  -74,  -77,  -84, 
+	    -86,  -89,  -91,  -93,  -94, -101, -109, -118, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -108, -103,  -98,  -93,  -88, 
+	    -83,  -78,  -73,  -68,  -60,  -53,  -44,  -35, 
+	    -38,  -38,  -34,  -34,  -36,  -40,  -41,  -44, 
+	    -51,  -45,  -46,  -47,  -46,  -54,  -50,  -49, 
+	    -50,  -50,  -50,  -51,  -54,  -57,  -58,  -60, 
+	    -66,  -66,  -66,  -64,  -65,  -68,  -77,  -82, 
+	    -87,  -95, -110, -999, -999, -999, -999, -999}}, 
+	  /* 500 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -107, -102,  -97,  -92,  -87,  -83,  -78,  -75, 
+	    -82,  -79,  -83,  -85,  -89,  -92,  -95,  -98, 
+	    -101, -105, -109, -113, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -106, 
+	    -100,  -95,  -90,  -86,  -81,  -78,  -74,  -69, 
+	    -74,  -74,  -76,  -79,  -83,  -84,  -86,  -89, 
+	    -92,  -97,  -93, -100, -103, -107, -110, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -106, -100, 
+	    -95, -90, -87, -83, -80, -75, -69, -60, 
+	    -66, -66, -68, -70, -74, -78, -79, -81, 
+	    -81, -83, -84, -87, -93, -96, -99, -103, 
+	    -107, -110, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -108, -103, -98, 
+	    -93, -89, -85, -82, -78, -71, -62, -55, 
+	    -58, -58, -54, -54, -55, -59, -61, -62, 
+	    -70, -66, -66, -67, -70, -72, -75, -78, 
+	    -84, -84, -84, -88, -91, -90, -95, -98, 
+	    -102, -103, -106, -110, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -108, -103,  -98,  -94, 
+	    -90,  -87,  -82,  -79,  -73,  -67,  -58,  -47, 
+	    -50,  -45,  -41,  -45,  -48,  -44,  -44,  -49, 
+	    -54,  -51,  -48,  -47,  -49,  -50,  -51,  -57, 
+	    -58,  -60,  -63,  -69,  -70,  -69,  -71,  -74, 
+	    -78,  -82,  -90,  -95, -101, -105, -110, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -105, -101, -97, -93, -90, 
+	    -85, -80, -77, -72, -65, -56, -48, -37, 
+	    -40, -36, -34, -40, -50, -47, -38, -41, 
+	    -47, -38, -35, -39, -38, -43, -40, -45, 
+	    -50, -45, -44, -47, -50, -55, -48, -48, 
+	    -52, -66, -70, -76, -82, -90, -97, -105, 
+	    -110, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 707 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -108, -103,  -98,  -93,  -86,  -79,  -76, 
+	    -83,  -81,  -85,  -87,  -89,  -93,  -98, -102, 
+	    -107, -112, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -108, -103,  -98,  -93,  -86,  -79,  -71, 
+	    -77,  -74,  -77,  -79,  -81,  -84,  -85,  -90, 
+	    -92,  -93,  -92,  -98, -101, -108, -112, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -108, -103,  -98,  -93,  -87,  -78,  -68,  -65, 
+	    -66,  -62,  -65,  -67,  -70,  -73,  -75,  -78, 
+	    -82,  -82,  -83,  -84,  -91,  -93,  -98, -102, 
+	    -106, -110, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -105, -100, -95, -90, -82, -74, -62, -57, 
+	    -58, -56, -51, -52, -52, -54, -54, -58, 
+	    -66, -59, -60, -63, -66, -69, -73, -79, 
+	    -83, -84, -80, -81, -81, -82, -88, -92, 
+	    -98, -105, -113, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -107, 
+	    -102,  -97,  -92,  -84,  -79,  -69,  -57,  -47, 
+	    -52,  -47,  -44,  -45,  -50,  -52,  -42,  -42, 
+	    -53,  -43,  -43,  -48,  -51,  -56,  -55,  -52, 
+	    -57,  -59,  -61,  -62,  -67,  -71,  -78,  -83, 
+	    -86,  -94,  -98, -103, -110, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -105, -100, 
+	    -95,  -90,  -84,  -78,  -70,  -61,  -51,  -41, 
+	    -40,  -38,  -40,  -46,  -52,  -51,  -41,  -40, 
+	    -46,  -40,  -38,  -38,  -41,  -46,  -41,  -46, 
+	    -47,  -43,  -43,  -45,  -41,  -45,  -56,  -67, 
+	    -68,  -83,  -87,  -90,  -95, -102, -107, -113, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 1000 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -109, -105, -101,  -96,  -91,  -84,  -77, 
+	    -82,  -82,  -85,  -89,  -94, -100, -106, -110, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -106, -103,  -98,  -92,  -85,  -80,  -71, 
+	    -75,  -72,  -76,  -80,  -84,  -86,  -89,  -93, 
+	    -100, -107, -113, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -107, 
+	    -104, -101,  -97,  -92,  -88,  -84,  -80,  -64, 
+	    -66,  -63,  -64,  -66,  -69,  -73,  -77,  -83, 
+	    -83,  -86,  -91,  -98, -104, -111, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -107, 
+	    -104, -101,  -97,  -92,  -90,  -84,  -74,  -57, 
+	    -58,  -52,  -55,  -54,  -50,  -52,  -50,  -52, 
+	    -63,  -62,  -69,  -76,  -77,  -78,  -78,  -79, 
+	    -82,  -88,  -94, -100, -106, -111, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -106, -102, 
+	    -98,  -95,  -90,  -85,  -83,  -78,  -70,  -50, 
+	    -50,  -41,  -44,  -49,  -47,  -50,  -50,  -44, 
+	    -55,  -46,  -47,  -48,  -48,  -54,  -49,  -49, 
+	    -58,  -62,  -71,  -81,  -87,  -92,  -97, -102, 
+	    -108, -114, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -106, -102, 
+	    -98,  -95,  -90,  -85,  -83,  -78,  -70,  -45, 
+	    -43,  -41,  -47,  -50,  -51,  -50,  -49,  -45, 
+	    -47,  -41,  -44,  -41,  -39,  -43,  -38,  -37, 
+	    -40,  -41,  -44,  -50,  -58,  -65,  -73,  -79, 
+	    -85,  -92,  -97, -101, -105, -109, -113, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 1414 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -107, -100,  -95,  -87,  -81, 
+	    -85,  -83,  -88,  -93, -100, -107, -114, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -107, -101,  -95,  -88,  -83,  -76, 
+	    -73,  -72,  -79,  -84,  -90,  -95, -100, -105, 
+	    -110, -115, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -104,  -98,  -92,  -87,  -81,  -70, 
+	    -65,  -62,  -67,  -71,  -74,  -80,  -85,  -91, 
+	    -95,  -99, -103, -108, -111, -114, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -103,  -97,  -90,  -85,  -76,  -60, 
+	    -56,  -54,  -60,  -62,  -61,  -56,  -63,  -65, 
+	    -73,  -74,  -77,  -75,  -78,  -81,  -86,  -87, 
+	    -88,  -91,  -94,  -98, -103, -110, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -105, 
+	    -100,  -97,  -92,  -86,  -81,  -79,  -70,  -57, 
+	    -51,  -47,  -51,  -58,  -60,  -56,  -53,  -50, 
+	    -58,  -52,  -50,  -50,  -53,  -55,  -64,  -69, 
+	    -71,  -85,  -82,  -78,  -81,  -85,  -95, -102, 
+	    -112, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -105, 
+	    -100,  -97,  -92,  -85,  -83,  -79,  -72,  -49, 
+	    -40,  -43,  -43,  -54,  -56,  -51,  -50,  -40, 
+	    -43,  -38,  -36,  -35,  -37,  -38,  -37,  -44, 
+	    -54,  -60,  -57,  -60,  -70,  -75,  -84,  -92, 
+	    -103, -112, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 2000 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -102,  -95,  -89,  -82, 
+	    -83,  -84,  -90,  -92,  -99, -107, -113, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -107, -101,  -95,  -89,  -83,  -72, 
+	    -74,  -78,  -85,  -88,  -88,  -90,  -92,  -98, 
+	    -105, -111, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -109, -103, -97, -93, -87, -81, -70, 
+	    -70, -67, -75, -73, -76, -79, -81, -83, 
+	    -88, -89, -97, -103, -110, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -107, -100,  -94,  -88,  -83,  -75,  -63, 
+	    -59,  -59,  -63,  -66,  -60,  -62,  -67,  -67, 
+	    -77,  -76,  -81,  -88,  -86,  -92,  -96, -102, 
+	    -109, -116, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -105,  -98,  -92,  -86,  -81,  -73,  -56, 
+	    -52,  -47,  -55,  -60,  -58,  -52,  -51,  -45, 
+	    -49,  -50,  -53,  -54,  -61,  -71,  -70,  -69, 
+	    -78,  -79,  -87,  -90,  -96, -104, -112, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -103,  -96,  -90,  -86,  -78,  -70,  -51, 
+	    -42,  -47,  -48,  -55,  -54,  -54,  -53,  -42, 
+	    -35,  -28,  -33,  -38,  -37,  -44,  -47,  -49, 
+	    -54,  -63,  -68,  -78,  -82,  -89,  -94,  -99, 
+	    -104, -109, -114, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 2828 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -110, -100,  -90,  -79, 
+	    -85,  -81,  -82,  -82,  -89,  -94,  -99, -103, 
+	    -109, -115, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -105,  -97,  -85,  -72, 
+	    -74,  -70,  -70,  -70,  -76,  -85,  -91,  -93, 
+	    -97, -103, -109, -115, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -112,  -93,  -81,  -68, 
+	    -62,  -60,  -60,  -57,  -63,  -70,  -77,  -82, 
+	    -90,  -93,  -98, -104, -109, -113, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -113, -100,  -93,  -84,  -63, 
+	    -58,  -48,  -53,  -54,  -52,  -52,  -57,  -64, 
+	    -66,  -76,  -83,  -81,  -85,  -85,  -90,  -95, 
+	    -98, -101, -103, -106, -108, -111, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -105,  -95,  -86,  -74,  -53, 
+	    -50,  -38,  -43,  -49,  -43,  -42,  -39,  -39, 
+	    -46,  -52,  -57,  -56,  -72,  -69,  -74,  -81, 
+	    -87,  -92,  -94,  -97,  -99, -102, -105, -108, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -108,  -99,  -90,  -76,  -66,  -45, 
+	    -43,  -41,  -44,  -47,  -43,  -47,  -40,  -30, 
+	    -31,  -31,  -39,  -33,  -40,  -41,  -43,  -53, 
+	    -59,  -70,  -73,  -77,  -79,  -82,  -84,  -87, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 4000 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110,  -91,  -76, 
+	    -75,  -85,  -93,  -98, -104, -110, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999},
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110,  -91,  -70, 
+	    -70,  -75,  -86,  -89,  -94,  -98, -101, -106, 
+	    -110, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -110,  -95,  -80,  -60, 
+	    -65,  -64,  -74,  -83,  -88,  -91,  -95,  -99, 
+	    -103, -107, -110, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -110,  -95,  -80,  -58, 
+	    -55,  -49,  -66,  -68,  -71,  -78,  -78,  -80, 
+	    -88,  -85,  -89,  -97, -100, -105, -110, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -110,  -95,  -80,  -53, 
+	    -52,  -41,  -59,  -59,  -49,  -58,  -56,  -63, 
+	    -86,  -79,  -90,  -93,  -98, -103, -107, -112, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110,  -97,  -91,  -73,  -45, 
+	    -40,  -33,  -53,  -61,  -49,  -54,  -50,  -50, 
+	    -60,  -52,  -67,  -74,  -81,  -92,  -96, -100, 
+	    -105, -110, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 5657 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -113, -106,  -99,  -92,  -77, 
+	    -80,  -88,  -97, -106, -115, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -116, -109, -102,  -95,  -89,  -74, 
+	    -72,  -88,  -87,  -95, -102, -109, -116, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -116, -109, -102,  -95,  -89,  -75, 
+	    -66,  -74,  -77,  -78,  -86,  -87,  -90,  -96, 
+	    -105, -115, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -115, -108, -101,  -94,  -88,  -66, 
+	    -56,  -61,  -70,  -65,  -78,  -72,  -83,  -84, 
+	    -93,  -98, -105, -110, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -110, -105,  -95,  -89,  -82,  -57, 
+	    -52,  -52,  -59,  -56,  -59,  -58,  -69,  -67, 
+	    -88,  -82,  -82,  -89,  -94, -100, -108, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -110, -101,  -96,  -90,  -83,  -77,  -54, 
+	    -43,  -38,  -50,  -48,  -52,  -48,  -42,  -42, 
+	    -51,  -52,  -53,  -59,  -65,  -71,  -78,  -85, 
+	    -95, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 8000 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -120, -105,  -86,  -68, 
+	    -78,  -79,  -90, -100, -110, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -120, -105,  -86,  -66, 
+	    -73,  -77,  -88,  -96, -105, -115, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -120, -105,  -92,  -80,  -61, 
+	    -64,  -68,  -80,  -87,  -92, -100, -110, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -120, -104,  -91,  -79,  -52, 
+	    -60,  -54,  -64,  -69,  -77,  -80,  -82,  -84, 
+	    -85,  -87,  -88,  -90, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -118, -100,  -87,  -77,  -49, 
+	    -50,  -44,  -58,  -61,  -61,  -67,  -65,  -62, 
+	    -62,  -62,  -65,  -68, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -115,  -98,  -84,  -62,  -49, 
+	    -44,  -38,  -46,  -49,  -49,  -46,  -39,  -37, 
+	    -39,  -40,  -42,  -43, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 11314 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110,  -88,  -74, 
+	    -77,  -82,  -82,  -85,  -90,  -94,  -99, -104, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110,  -88,  -66, 
+	    -70,  -81,  -80,  -81,  -84,  -88,  -91,  -93, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110,  -88,  -61, 
+	    -63,  -70,  -71,  -74,  -77,  -80,  -83,  -85, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -110, -86, -62, 
+	    -63,  -62,  -62,  -58,  -52,  -50,  -50,  -52, 
+	    -54, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -118, -108,  -84,  -53, 
+	    -50,  -50,  -50,  -55,  -47,  -45,  -40,  -40, 
+	    -40, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -118, -100,  -73,  -43, 
+	    -37,  -42,  -43,  -53,  -38,  -37,  -35,  -35, 
+	    -38, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+	  /* 16000 Hz */
+	  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -91,  -84,  -74, 
+	    -80,  -80,  -80,  -80,  -80, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -91,  -84,  -74, 
+	    -68,  -68,  -68,  -68,  -68, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -86,  -78,  -70, 
+	    -60,  -45,  -30,  -21, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -87,  -78,  -67, 
+	    -48,  -38,  -29,  -21, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -86,  -69,  -56, 
+	    -45,  -35,  -33,  -29, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}, 
+	   {-999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -110, -100,  -83,  -71,  -48, 
+	    -27,  -38,  -37,  -34, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999, 
+	    -999, -999, -999, -999, -999, -999, -999, -999}}
+	};
+
+
+	public vorbis_look_psy() {}
+
+	public vorbis_look_psy( int _n, vorbis_info_psy _vi, float[][][] _tonecurves, float[][] _noiseoffset, float[] _ath, int[] _octave, int[] _bark, int _firstoc, int _shiftoc, int _eighth_octave_lines, int _total_octave_lines, int _rate ) {
+
+		n = _n;
+		vi = _vi;
+
+		tonecurves = (float[][][])_tonecurves.clone();
+		noiseoffset = (float[][])_noiseoffset.clone();
+
+		ath = (float[])_ath.clone();
+		octave = (int[])_octave.clone();
+		bark = (int[])_bark.clone();
+
+		firstoc = _firstoc;
+		shiftoc = _shiftoc;
+		eighth_octave_lines = _eighth_octave_lines;
+		total_octave_lines = _total_octave_lines;  
+		rate = _rate;
+	}
+
+	public vorbis_look_psy( vorbis_look_psy src ) {
+
+		this( src.n, src.vi, src.tonecurves, src.noiseoffset, src.ath, src.octave, src.bark, src.firstoc, src.shiftoc, src.eighth_octave_lines, src.total_octave_lines, src.rate );
+	}
+
+	private float toBARK( double z ) {
+		return new Double( 13.1f*Math.atan(.00074f*(z))+2.24f*Math.atan((z)*(z)*1.85e-8f)+1e-4f*(z) ).floatValue();
+	}
+
+//	private float fromBARK( double z ) {
+//		return new Double( 102.f*(z)-2.f*Math.pow(z,2.f)+.4f*Math.pow(z,3.f)+Math.pow(1.46f,z)-1.f ).floatValue();
+//	}
+
+	// Frequency to octave.  We arbitrarily declare 63.5 Hz to be octave 0.0
+
+	private float toOC( double z ) {
+		return new Double( Math.log(z)*1.442695f-5.965784f ).floatValue();
+	}
+
+	private float fromOC( double o) {
+		return new Double( Math.exp(((o)+5.965784f)*.693147f) ).floatValue();
+	}
+
+	private void min_curve( float[] c, float[] c2 ) {
+
+		for ( int i=0; i<EHMER_MAX; i++ )
+			if ( c2[i] < c[i] )
+				c[i] = c2[i];
+	}
+
+	private void max_curve( float[] c, float[] c2 ) {
+ 
+		for( int i=0; i<EHMER_MAX; i++ )
+			if ( c2[i] > c[i] )
+				c[i] = c2[i];
+	}
+
+	private void attenuate_curve( float[] c, float att ) {
+
+		for ( int i=0; i<EHMER_MAX; i++)
+			c[i] += att;
+	}
+
+	private void setup_tone_curves( float[] curveatt_dB, float binHz, int n, float center_boost, float center_decay_rate ) {
+
+		int i,j,k,m;
+		float[] ath = new float[ EHMER_MAX ];
+		float[][][] workc = new float[ P_BANDS ][ P_LEVELS ][ EHMER_MAX ];
+		float[][] athc = new float[ P_LEVELS ][ EHMER_MAX ];
+
+		// float *brute_buffer=alloca(n*sizeof(*brute_buffer));
+		float[] brute_buffer = new float[ n ];
+
+		// float ***ret=_ogg_malloc(sizeof(*ret)*P_BANDS);
+		tonecurves = new float[ P_BANDS ][ P_LEVELS ][ EHMER_MAX+2 ];
+
+		// Java defaults inits 0.0f
+		// memset(workc,0,sizeof(workc));
+
+		for ( i=0; i<P_BANDS; i++ ) {
+
+			// we add back in the ATH to avoid low level curves falling off to -infinity and
+			// unnecessarily cutting off high level curves in the curve limiting (last step).
+
+			// A half-band's settings must be valid over the whole band, and it's better 
+			// to mask too little than too much
+
+			int ath_offset=i*4;
+			for ( j=0; j<EHMER_MAX; j++ ) {
+				float min=999.0f;
+				for ( k=0; k<4; k++ ) {
+					if ( j+k+ath_offset < MAX_ATH ) {
+						if ( min > ATH[j+k+ath_offset] )
+							min = ATH[j+k+ath_offset];
+						} else {
+							if ( min > ATH[MAX_ATH-1] )
+								min = ATH[MAX_ATH-1];
+						}
+				}
+				ath[j] = min;
+			}
+
+			// copy curves into working space, replicate the 50dB curve to 30
+			// and 40, replicate the 100dB curve to 110
+
+			// for ( j=0; j<6; j++ )
+			// 	memcpy( workc[i][j+2], va.tonemasks[i][j], EHMER_MAX*sizeof(*tonemasks[i][j]) );
+			// memcpy( workc[i][0], va.tonemasks[i][0], EHMER_MAX*sizeof(*tonemasks[i][0]) );
+			// memcpy( workc[i][1], va.tonemasks[i][0], EHMER_MAX*sizeof(*tonemasks[i][0]) );
+
+			for ( j=0; j<6; j++ )
+				System.arraycopy( tonemasks[i][j], 0, workc[i][j+2], 0, tonemasks[i][j].length );
+			System.arraycopy( tonemasks[i][0], 0, workc[i][0], 0, tonemasks[i][0].length );
+			System.arraycopy( tonemasks[i][0], 0, workc[i][1], 0, tonemasks[i][0].length );
+    
+			// apply centered curve boost/decay
+			for ( j=0; j<P_LEVELS; j++ ) {
+				for ( k=0; k<EHMER_MAX; k++ ) {
+					float adj = center_boost+Math.abs(EHMER_OFFSET-k)*center_decay_rate;
+					if ( adj < 0.0f && center_boost > 0 )
+						adj=0.0f;
+					if ( adj > 0.0f && center_boost < 0)
+						adj=0.0f;
+					workc[i][j][k] += adj;
+				}
+			}
+
+			// normalize curves so the driving amplitude is 0dB
+			// make temp curves with the ATH overlayed
+
+			for ( j=0; j<P_LEVELS; j++ ) {
+
+				// attenuate_curve( workc[i][j], curveatt_dB[i]+100.-(j<2?2:j)*10.-P_LEVEL_0 );
+				int tmp = j;
+				if ( j < 2 )
+					tmp = 2;
+				attenuate_curve( workc[i][j], new Double( curveatt_dB[i]+100.0f-(tmp)*10.-P_LEVEL_0 ).floatValue() );
+
+				// memcpy( athc[j], ath, EHMER_MAX*sizeof(**athc) );
+				System.arraycopy( ath, 0, athc[j], 0, athc[j].length );
+
+				attenuate_curve( athc[j], 100.0f-j*10.f-P_LEVEL_0 );
+				max_curve( athc[j], workc[i][j] );
+			}
+
+			// Now limit the louder curves.
+			// the idea is this: We don't know what the playback attenuation
+			// will be; 0dB SL moves every time the user twiddles the volume
+			// knob. So that means we have to use a single 'most pessimal' curve
+			// for all masking amplitudes, right?  Wrong.  The *loudest* sound
+			// can be in (we assume) a range of ...+100dB] SL.  However, sounds
+			// 20dB down will be in a range ...+80], 40dB down is from ...+60], etc...
+
+			for ( j=1; j<P_LEVELS; j++ ) {
+				min_curve( athc[j], athc[j-1] );
+				min_curve( workc[i][j], athc[j] );
+			}
+		}
+
+		for ( i=0; i<P_BANDS; i++ ) {
+
+			int hi_curve,lo_curve,bin;
+			// ret[i]=_ogg_malloc(sizeof(**ret)*P_LEVELS);
+
+			// low frequency curves are measured with greater resolution than
+			// the MDCT/FFT will actually give us; we want the curve applied
+			// to the tone data to be pessimistic and thus apply the minimum
+			// masking possible for a given bin.  That means that a single bin
+			// could span more than one octave and that the curve will be a
+			// composite of multiple octaves.  It also may mean that a single
+			// bin may span > an eighth of an octave and that the eighth
+			// octave values may also be composited.
+    
+			// which octave curves will we be compositing?
+
+			bin = new Double( Math.floor(fromOC(i*.5)/binHz) ).intValue();
+			lo_curve = new Double( Math.ceil(toOC(bin*binHz+1)*2) ).intValue();
+			hi_curve = new Double( Math.floor(toOC((bin+1)*binHz)*2) ).intValue();
+			if (lo_curve>i)
+				lo_curve=i;
+			if (lo_curve<0)
+				lo_curve=0;
+			if (hi_curve>=P_BANDS)
+				hi_curve=P_BANDS-1;
+
+			for ( m=0; m<P_LEVELS; m++ ) {
+
+				// ret[i][m]=_ogg_malloc(sizeof(***ret)*(EHMER_MAX+2));
+      
+				for (j=0; j<n; j++)
+					brute_buffer[j] = 999.0f;
+      
+				// render the curve into bins, then pull values back into curve.
+				// The point is that any inherent subsampling aliasing results in a safe minimum
+
+				for ( k=lo_curve; k<=hi_curve; k++ ) {
+
+					int l=0;
+
+					for ( j=0; j<EHMER_MAX; j++ ) {
+
+						int lo_bin = new Float( fromOC(j*.125+k*.5-2.0625)/binHz ).intValue();
+						int hi_bin = new Float( fromOC(j*.125+k*.5-1.9375)/binHz+1 ).intValue();
+	  
+						if(lo_bin<0)lo_bin=0;
+						if(lo_bin>n)lo_bin=n;
+						if(lo_bin<l)l=lo_bin;
+						if(hi_bin<0)hi_bin=0;
+						if(hi_bin>n)hi_bin=n;
+
+						for ( ; l<hi_bin && l<n; l++) {
+							if ( brute_buffer[l] > workc[k][m][j] )
+								brute_buffer[l]=workc[k][m][j];
+						}
+					}
+
+					for ( ; l<n; l++ ) {
+						if (brute_buffer[l] > workc[k][m][EHMER_MAX-1] )
+							brute_buffer[l]=workc[k][m][EHMER_MAX-1];
+					}
+				}
+
+				// be equally paranoid about being valid up to next half ocatve
+
+				if ( i+1 < P_BANDS ) {
+
+					int l=0;
+					k=i+1;
+
+					for ( j=0; j<EHMER_MAX; j++ ) {
+
+						int lo_bin = new Float( fromOC(j*.125+i*.5-2.0625)/binHz ).intValue();
+						int hi_bin = new Float( fromOC(j*.125+i*.5-1.9375)/binHz+1 ).intValue();
+	  
+						if(lo_bin<0)lo_bin=0;
+						if(lo_bin>n)lo_bin=n;
+						if(lo_bin<l)l=lo_bin;
+						if(hi_bin<0)hi_bin=0;
+						if(hi_bin>n)hi_bin=n;
+
+						for ( ;l<hi_bin && l<n; l++) {
+							if ( brute_buffer[l] > workc[k][m][j] )
+								brute_buffer[l]=workc[k][m][j];
+						}
+					}
+
+					for ( ; l<n; l++ ) {
+						if ( brute_buffer[l] > workc[k][m][EHMER_MAX-1] )
+							brute_buffer[l]=workc[k][m][EHMER_MAX-1];
+					}
+				}
+
+				for (j=0; j<EHMER_MAX; j++ ) {
+
+					bin = new Float( fromOC(j*.125+i*.5-2.)/binHz ).intValue();
+					if ( bin<0 ) {
+						tonecurves[i][m][j+2]=-999.0f;
+					} else {
+						if ( bin>=n ) {
+							tonecurves[i][m][j+2]=-999.0f;
+						} else {
+							tonecurves[i][m][j+2]=brute_buffer[bin];
+						}
+					}
+				}
+
+				// add fenceposts
+				for ( j=0; j<EHMER_OFFSET; j++ )
+					if ( tonecurves[i][m][j+2] > -200.f )
+						break;  
+				tonecurves[i][m][0]=j;
+
+				for ( j=EHMER_MAX-1; j>EHMER_OFFSET+1; j-- )
+					if ( tonecurves[i][m][j+2] > -200.f )
+						break;
+				tonecurves[i][m][1]=j;
+			}
+		}
+	}
+
+	public void _vp_psy_init( vorbis_info_psy _vi, vorbis_info_psy_global gi, int _n, int _rate ) {
+
+		int i,j,lo=-99,hi=1;
+		int maxoc;
+
+		vi=_vi;
+		n=_n;
+		rate=_rate;
+		
+		// AoTuV HF weighting
+		m_val = 1.f;
+		if ( rate < 26000 )
+			m_val = 0;
+		else if( rate < 38000 )
+			m_val = .94f;	// 32kHz
+		else if( rate > 46000 )
+			m_val = 1.275f;	// 48kHz
+
+		eighth_octave_lines = gi.eighth_octave_lines;
+		shiftoc = new Double( Math.rint( Math.log(gi.eighth_octave_lines*8.0f)/ Math.log(2.0f))-1 ).intValue();
+
+		firstoc = new Float( toOC(0.25f*rate*0.5/n)*(1<<(shiftoc+1))-gi.eighth_octave_lines ).intValue();
+		maxoc = new Float( toOC((n+.25f)*rate*0.5/n)*(1<<(shiftoc+1))+0.5f ).intValue();
+		total_octave_lines = maxoc-firstoc+1;
+
+		// ath=_ogg_malloc(n*sizeof(*ath));
+		// octave=_ogg_malloc(n*sizeof(*octave));
+		// bark=_ogg_malloc(n*sizeof(*bark));
+
+		ath = new float[ n ];
+		octave = new int[ n ];
+		bark = new int[ n ];
+
+		// set up the lookups for a given blocksize and sample rate
+
+		for (i=0,j=0; i<MAX_ATH-1; i++ ) {
+			int endpos = new Double( Math.rint(fromOC((i+1)*0.125f-2.0f)*2*n/rate) ).intValue();
+			float base = ATH[i];
+			if (j<endpos) {
+				float delta=(ATH[i+1]-base)/(endpos-j);
+				for (; j<endpos && j<n; j++ ) {
+					ath[j]=base+100.0f;
+					base+=delta;
+				}
+			}
+		}
+
+		for ( i=0; i<n; i++ ) {
+			float _bark=toBARK(rate/(2*n)*i); 
+
+			for (; lo+vi.noisewindowlomin<i && toBARK(rate/(2*n)*lo)<(_bark-vi.noisewindowlo); lo++);
+
+			for (; hi<=n && (hi<i+vi.noisewindowhimin || toBARK(rate/(2*n)*hi)<(_bark+vi.noisewindowhi)); hi++);
+
+			bark[i] = ((lo-1)<<16)+(hi-1);
+		}
+
+		for ( i=0; i<n; i++ )
+			octave[i] = new Float( toOC((i+0.25f)*0.5f*rate/n)*(1<<(shiftoc+1))+0.5f ).intValue();
+
+		setup_tone_curves( vi.toneatt, rate*0.5f/n, n, vi.tone_centerboost, vi.tone_decay );
+
+		// try {
+
+		// PrintStream p = new PrintStream( new FileOutputStream( "jvorbis_psy" + _psy_num + ".txt" ) );
+
+		// p.println( "n: " + n );
+
+		// set up rolling noise median
+		// noiseoffset=_ogg_malloc(P_NOISECURVES*sizeof(*noiseoffset));
+		// for(i=0;i<P_NOISECURVES;i++)
+		//	noiseoffset[i]=_ogg_malloc(n*sizeof(**noiseoffset));
+
+		noiseoffset = new float[ P_NOISECURVES ][ n ];
+
+		for ( i=0; i<n; i++ ) {
+			float halfoc=toOC((i+0.5f)*rate/(2.0f*n))*2.0f;
+			int inthalfoc;
+			float del;
+
+			// p.println( "halfoc: " + halfoc );
+
+			if(halfoc<0)halfoc=0;
+			if(halfoc>=P_BANDS-1)halfoc=P_BANDS-1;
+			inthalfoc=(int)halfoc;
+			del=halfoc-inthalfoc;
+
+			for( j=0; j<P_NOISECURVES; j++) {
+
+				// p.println( "i: " + i + " j: " + j + " inthalfoc: " + inthalfoc );
+// TODO - CRITICAL - pointer leak
+// This has a pointer leak
+// Wraps over in C
+// Error in Java
+// customized if else
+
+				if ( inthalfoc == P_BANDS-1 ) {
+
+					if ( j == P_NOISECURVES-1 ) {
+						noiseoffset[j][i] = vi.noiseoff[j][inthalfoc]*(1.0f-del) + vi.noisecompand[0]*del;
+						// p.println( "vi.noiseoff["+j+"][inthalfoc] = " + vi.noiseoff[j][inthalfoc] );
+						// p.println( "vi.noiseoff["+j+"][inthalfoc+1] = " + vi.noisecompand[0] );
+					} else {
+						noiseoffset[j][i] = vi.noiseoff[j][inthalfoc]*(1.0f-del) + vi.noiseoff[j+1][0]*del;
+						// p.println( "vi.noiseoff["+j+"][inthalfoc] = " + vi.noiseoff[j][inthalfoc] );
+						// p.println( "vi.noiseoff["+j+"][inthalfoc+1] = " + vi.noiseoff[j+1][0] );
+					}
+				} else {
+					noiseoffset[j][i] = vi.noiseoff[j][inthalfoc]*(1.0f-del) + vi.noiseoff[j][inthalfoc+1]*del;
+					// p.println( "vi.noiseoff["+j+"][inthalfoc] = " + vi.noiseoff[j][inthalfoc] );
+					// p.println( "vi.noiseoff["+j+"][inthalfoc+1] = " + vi.noiseoff[j][inthalfoc+1] );
+				}
+				// p.println( "noiseoffset["+j+"]["+i+"] = " + noiseoffset[j][i] );
+			}
+		}
+
+		// p.close();
+
+		// } catch (Exception e) { e.printStackTrace(System.out); }
+	}
+	
+	// octave/(8*eighth_octave_lines) x scale and dB y scale
+	static void seed_curve( float[] seed, float[][] curves, float amp, int oc, int n, int linesper, float dBoffset ) {
+		
+		int i;
+		int post1;
+		int seedptr;
+		float[] posts;
+		int curve;
+		
+		int choice = (int)((amp+dBoffset-P_LEVEL_0)*.1f);
+		choice = Math.max(choice,0);
+		choice = Math.min(choice,P_LEVELS-1);
+		posts = curves[choice];
+		// curve=posts+2;
+		curve = 2;
+		post1=(int)posts[1];
+		
+		seedptr= new Float( oc + (posts[0]-EHMER_OFFSET)*linesper-(linesper>>>1) ).intValue();
+		
+		for ( i=(int)posts[0]; i<post1; i++ ) {
+			
+			if ( seedptr > 0 ) {
+				float lin = amp + posts[curve+i];
+				if ( seed[seedptr] < lin )
+					seed[seedptr] = lin;
+			}
+			seedptr += linesper;
+			if ( seedptr >= n )
+				break;
+		}
+	}
+
+	private void seed_loop( float[][][] curves, float[] f, float[] flr, float[] seed, float specmax ) {
+		
+		int i;
+		float dBoffset = vi.max_curve_dB-specmax;
+		
+		// prime the working vector with peak values
+		for ( i=0; i < n; i++ ) {
+			float max = f[i];
+			int oc = octave[i];
+			while ( i+1 < n && octave[i+1] == oc ) {
+				i++;
+				if ( f[i] > max)
+					max = f[i];
+			}
+			
+			if ( max+6.f > flr[i] ) {
+				
+				oc = oc>>shiftoc;
+		
+				if ( oc >= P_BANDS )
+					oc = P_BANDS-1;
+				
+				if ( oc<0 )
+					oc=0;
+				
+				seed_curve( seed, curves[oc], max, octave[i]-firstoc, total_octave_lines, eighth_octave_lines, dBoffset );
+			}
+		}
+	}
+	
+	static void seed_chase( float[] seeds, int linesper, int n ) {
+		
+		// long  *posstack=alloca(n*sizeof(*posstack));
+		// float *ampstack=alloca(n*sizeof(*ampstack));
+		int[] posstack = new int[ n ];
+		float[] ampstack = new float[ n ];
+		
+		int stack = 0;
+		int pos = 0;
+		int i;
+		
+		for ( i=0; i < n; i++ ) {
+			
+			if( stack < 2 ) {
+				posstack[stack] = i;
+				ampstack[stack++] = seeds[i];
+			} else {
+				while ( true ) {
+					if ( seeds[i] < ampstack[stack-1] ) {
+						posstack[stack] = i;
+						ampstack[stack++] = seeds[i];
+						break;
+					} else {
+						if ( i < posstack[stack-1]+linesper ) {
+							if( stack > 1 && ampstack[stack-1] <= ampstack[stack-2] && i < posstack[stack-2]+linesper ) {
+								// we completely overlap, making stack-1 irrelevant.  pop it
+								stack--;
+								continue;
+							}
+						}
+						posstack[stack] = i;
+						ampstack[stack++] = seeds[i];
+						break;
+					}
+				}
+			}
+		}
+		
+		// the stack now contains only the positions that are relevant. Scan 'em straight through
+		
+		for ( i=0; i < stack; i++ ) {
+			
+			int endpos;
+			if ( i < stack-1 && ampstack[i+1] > ampstack[i] ) {
+				endpos = posstack[i+1];
+			} else {
+				endpos=posstack[i]+linesper+1; // +1 is important, else bin 0 is discarded in short frames
+			}
+			
+			if ( endpos > n )
+				endpos = n;
+			for ( ; pos < endpos; pos++ )
+				seeds[pos] = ampstack[i];
+		}
+	}
+
+	// bleaugh, this is more complicated than it needs to be
+	private void max_seeds( float[] seed, float[] flr ) {
+		
+		int n_local = total_octave_lines;
+		int linesper = eighth_octave_lines;
+		int linpos=0;
+		int pos;
+		
+		seed_chase( seed, linesper, n_local ); // for masking
+		
+		pos = octave[0]-firstoc-(linesper>>1);
+		
+		while ( linpos+1 < n ) {
+			
+			float minV = seed[pos];
+			int end = ((octave[linpos]+octave[linpos+1])>>1)-firstoc;
+			if (minV > vi.tone_abs_limit)
+				minV = vi.tone_abs_limit;
+			
+			while ( pos+1 <= end ) {
+				pos++;
+				if ( (seed[pos] > NEGINF && seed[pos] < minV) || minV == NEGINF )
+					minV = seed[pos];
+			}
+			
+			end = pos+firstoc;
+			for ( ; linpos < n && octave[linpos] <= end; linpos++ )
+				if ( flr[linpos] < minV)
+					flr[linpos] = minV;
+		}
+		
+		float minV = seed[total_octave_lines-1];
+		for ( ; linpos < n;linpos++ )
+			if ( flr[linpos] < minV )
+				flr[linpos] = minV;
+	}
+	
+	static void bark_noise_hybridmp( int n, int[] b, float[] f, int foff, float[] noise, float offset, int fixed ) {
+		
+		// float *N=alloca(n*sizeof(*N));
+		// float *X=alloca(n*sizeof(*N));
+		// float *XX=alloca(n*sizeof(*N));
+		// float *Y=alloca(n*sizeof(*N));
+		// float *XY=alloca(n*sizeof(*N));
+		float[] N = new float[ n ];
+		float[] X = new float[ n ];
+		float[] XX = new float[ n ];
+		float[] Y = new float[ n ];
+		float[] XY = new float[ n ];
+		
+		float tN, tX, tXX, tY, tXY;
+		int i;
+		
+		int lo, hi;
+		float R = 0.f;
+		float A = 0.f;
+		float B = 0.f;
+		float D = 0.f;
+		float w, x, y;
+		
+		tN = tX = tXX = tY = tXY = 0.f;
+		
+		y = f[foff+0] + offset;
+		if ( y < 1.f )
+			y = 1.f;
+		
+		w = y * y * .5f;
+		
+		tN += w;
+		tX += w;
+		tY += w * y;
+		
+		N[0] = tN;
+		X[0] = tX;
+		XX[0] = tXX;
+		Y[0] = tY;
+		XY[0] = tXY;
+		
+		for ( i = 1, x = 1.f; i < n; i++, x += 1.f ) {
+			
+			y = f[foff+i] + offset;
+			if ( y < 1.f )
+				y = 1.f;
+			
+			w = y * y;
+			
+			tN += w;
+			tX += w * x;
+			tXX += w * x * x;
+			tY += w * y;
+			tXY += w * x * y;
+			
+			N[i] = tN;
+			X[i] = tX;
+			XX[i] = tXX;
+			Y[i] = tY;
+			XY[i] = tXY;
+		}
+		
+		for ( i = 0, x = 0.f;; i++, x += 1.f ) {
+			
+			lo = b[i] >> 16;
+			if ( lo >= 0 )
+				break;
+			hi = b[i] & 0xffff;
+			
+			tN = N[hi] + N[-lo];
+			tX = X[hi] - X[-lo];
+			tXX = XX[hi] + XX[-lo];
+			tY = Y[hi] + Y[-lo];    
+			tXY = XY[hi] - XY[-lo];
+			
+			A = tY * tXX - tX * tXY;
+			B = tN * tXY - tX * tY;
+			D = tN * tXX - tX * tX;
+			R = (A + x * B) / D;
+			if (R < 0.f)
+				R = 0.f;
+			
+			noise[i] = R - offset;
+		}
+		
+		for ( ;; i++, x += 1.f ) {
+			
+			lo = b[i] >> 16;
+			hi = b[i] & 0xffff;
+			if ( hi >= n )
+				break;
+			
+			tN = N[hi] - N[lo];
+			tX = X[hi] - X[lo];
+			tXX = XX[hi] - XX[lo];
+			tY = Y[hi] - Y[lo];
+			tXY = XY[hi] - XY[lo];
+			
+			A = tY * tXX - tX * tXY;
+			B = tN * tXY - tX * tY;
+			D = tN * tXX - tX * tX;
+			R = (A + x * B) / D;
+			if ( R < 0.f )
+				R = 0.f;
+			
+			noise[i] = R - offset;
+		}
+		
+		for ( ; i < n; i++, x += 1.f ) {
+			
+			R = (A + x * B) / D;
+			if ( R < 0.f )
+				R = 0.f;
+			
+			noise[i] = R - offset;
+		}
+		
+		if ( fixed <= 0 )
+			return;
+		
+		for ( i = 0, x = 0.f;; i++, x += 1.f ) {
+			
+			hi = i + fixed / 2;
+			lo = hi - fixed;
+			if ( lo >= 0 )
+				break;
+			
+			tN = N[hi] + N[-lo];
+			tX = X[hi] - X[-lo];
+			tXX = XX[hi] + XX[-lo];
+			tY = Y[hi] + Y[-lo];
+			tXY = XY[hi] - XY[-lo];
+			
+			A = tY * tXX - tX * tXY;
+			B = tN * tXY - tX * tY;
+			D = tN * tXX - tX * tX;
+			R = (A + x * B) / D;
+			
+			if ( R - offset < noise[i] )
+				noise[i] = R - offset;
+		}
+		
+		for ( ;; i++, x += 1.f ) {
+			
+			hi = i + fixed / 2;
+			lo = hi - fixed;
+			if ( hi >= n )
+				break;
+			
+			tN = N[hi] - N[lo];
+			tX = X[hi] - X[lo];
+			tXX = XX[hi] - XX[lo];
+			tY = Y[hi] - Y[lo];
+			tXY = XY[hi] - XY[lo];
+			
+			A = tY * tXX - tX * tXY;
+			B = tN * tXY - tX * tY;
+			D = tN * tXX - tX * tX;
+			R = (A + x * B) / D;
+			
+			if ( R - offset < noise[i] )
+				noise[i] = R - offset;
+		}
+		
+		for ( ; i < n; i++, x += 1.f ) {
+			R = (A + x * B) / D;
+			if (R - offset < noise[i])
+				noise[i] = R - offset;
+		}
+	}
+	
+	public void _vp_noisemask( float[] logmdct,  int offset, float[] logmask ) {
+		
+		int i;
+		
+		// float *work=alloca(n*sizeof(*work));
+		float[] work = new float[ n ];
+		
+		bark_noise_hybridmp( n, bark, logmdct, offset, logmask, 140.f, -1 );
+		
+		for ( i=0; i < n; i++ )
+			work[i] = logmdct[offset+i]-logmask[i];
+		
+		bark_noise_hybridmp( n, bark, work, 0, logmask, 0.f, vi.noisewindowfixed );
+		
+		for ( i=0 ; i < n; i++ )
+			work[i] = logmdct[offset+i]-work[i];
+		
+		for ( i=0; i < n; i++ ) {
+			int dB = new Float( logmask[i] + .5f ).intValue();
+			if ( dB >= NOISE_COMPAND_LEVELS )
+				dB = NOISE_COMPAND_LEVELS-1;
+			if ( dB < 0 )
+				dB = 0;
+			logmask[i] = work[i] + vi.noisecompand[dB];
+		}
+	}
+
+	public void _vp_tonemask( float[] logfft, float[] logmask, float global_specmax, float local_specmax ) {
+		
+		int i;
+		
+		// float *seed=alloca(sizeof(*seed)*p->total_octave_lines);
+		float[] seed = new float[ total_octave_lines ];
+		
+		float att = local_specmax + vi.ath_adjatt;
+		for ( i=0; i < total_octave_lines; i++ )
+			seed[i] = NEGINF;
+		
+		// set the ATH (floating below localmax, not global max by a specified att)
+		if ( att < vi.ath_maxatt)
+			att = vi.ath_maxatt;
+		
+		for ( i=0; i < n; i++ )
+			logmask[i] = ath[i] + att;
+		
+		// tone masking
+
+		seed_loop( tonecurves, logfft, logmask, seed, global_specmax );
+		max_seeds( seed, logmask );
+	}
+
+	public void _vp_offset_and_mix( float[] noise, float[] tone, int offset_select, float[] logmask, float[] mdct, int logmdct ) {
+		
+		int i;
+		float de, coeffi, cx;	// AoTuV
+		float toneatt = vi.tone_masteratt[offset_select];
+		
+		cx = m_val;
+		
+		for ( i=0; i < n;  i++ ) {
+			float val = noise[i]+noiseoffset[offset_select][i];
+			if ( val > vi.noisemaxsupp )
+				val = vi.noisemaxsupp;
+			logmask[i] = Math.max( val, tone[i]+toneatt );
+			
+			// AoTuV
+			// @ M1
+			// The following codes improve a noise problem.  
+			// A fundamental idea uses the value of masking and carries out
+			// the relative compensation of the MDCT. 
+			// However, this code is not perfect and all noise problems cannot be solved. 
+			// by Aoyumi @ 2004/04/18
+			
+			if ( offset_select == 1 ) {
+				
+				coeffi = -17.2f;			// coeffi is a -17.2dB threshold
+				val = val - logmask[logmdct+i];  	// val == mdct line value relative to floor in dB
+				
+				if ( val > coeffi ) {
+					
+					// mdct value is > -17.2 dB below floor
+					
+					de = 1.0f-((val-coeffi)*0.005f*cx);
+					
+					// pro-rated attenuation:
+					// -0.00 dB boost if mdct value is -17.2dB (relative to floor) 
+					// -0.77 dB boost if mdct value is 0dB (relative to floor) 
+					// -1.64 dB boost if mdct value is +17.2dB (relative to floor) 
+					// etc...
+					
+					if ( de < 0 )
+						de = 0.0001f;
+				} else
+					de = 1.0f-((val-coeffi)*0.0003f*cx); // mdct value is <= -17.2 dB below floor
+				
+				// pro-rated attenuation:
+				// +0.00 dB atten if mdct value is -17.2dB (relative to floor) 
+				// +0.45 dB atten if mdct value is -34.4dB (relative to floor) 
+				// etc...
+				
+				mdct[i] *= de;
+			}
+		}
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_arrays.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_arrays.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_arrays.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,771 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_look_psy_arrays {
+
+// static float ATH[]={
+public static final float[] ATH = new float[] {
+  /*15*/  -51, -52, -53, -54, -55, -56, -57, -58,  
+  /*31*/  -59, -60, -61, -62, -63, -64, -65, -66,
+  /*63*/  -67, -68, -69, -70, -71, -72, -73, -74, 
+  /*125*/ -75, -76, -77, -78, -80, -81, -82, -83,
+  /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, 
+  /*500*/ -90, -91, -91, -92, -93, -94, -95, -96,
+  /*1k*/  -96, -97, -98, -98, -99, -99,-100,-100,
+  /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107,
+  /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96,
+  /*8k*/  -95, -95, -96, -97, -96, -95, -93, -90,
+  /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30
+};
+
+// static float tonemasks[P_BANDS][6][EHMER_MAX]={
+public static final float[][][] tonemasks = new float[][][] {
+  /* 62.5 Hz */
+  {{ -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60, 
+     -60,  -60,  -60,  -60,  -62,  -62,  -65,  -73, 
+     -69,  -68,  -68,  -67,  -70,  -70,  -72,  -74, 
+     -75,  -79,  -79,  -80,  -83,  -88,  -93, -100, 
+     -110, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
+     -48,  -48,  -48,  -48,  -48,  -53,  -61,  -66, 
+     -66,  -68,  -67,  -70,  -76,  -76,  -72,  -73, 
+     -75,  -76,  -78,  -79,  -83,  -88,  -93, -100, 
+     -110, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37, 
+     -38,  -40,  -42,  -46,  -48,  -53,  -55,  -62, 
+     -65,  -58,  -56,  -56,  -61,  -60,  -65,  -67, 
+     -69,  -71,  -77,  -77,  -78,  -80,  -82,  -84, 
+     -88,  -93,  -98, -106, -112, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
+     -25,  -26,  -27,  -29,  -32,  -38,  -48,  -52, 
+     -52,  -50,  -48,  -48,  -51,  -52,  -54,  -60, 
+     -67,  -67,  -66,  -68,  -69,  -73,  -73,  -76, 
+     -80,  -81,  -81,  -85,  -85,  -86,  -88,  -93, 
+     -100, -110, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
+     -17,  -19,  -20,  -22,  -26,  -28,  -31,  -40, 
+     -47,  -39,  -39,  -40,  -42,  -43,  -47,  -51, 
+     -57,  -52,  -55,  -55,  -60,  -58,  -62,  -63, 
+     -70,  -67,  -69,  -72,  -73,  -77,  -80,  -82, 
+     -83,  -87,  -90,  -94,  -98, -104, -115, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   {  -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8, 
+      -8,   -8,  -10,  -11,  -15,  -19,  -25,  -30, 
+      -34,  -31,  -30,  -31,  -29,  -32,  -35,  -42, 
+      -48,  -42,  -44,  -46,  -50,  -50,  -51,  -52, 
+      -59,  -54,  -55,  -55,  -58,  -62,  -63,  -66, 
+      -72,  -73,  -76,  -75,  -78,  -80,  -80,  -81, 
+      -84,  -88,  -90,  -94,  -98, -101, -106, -110}}, 
+  /* 88Hz */
+  {{ -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66, 
+     -66,  -66,  -66,  -66,  -66,  -67,  -67,  -67, 
+     -76,  -72,  -71,  -74,  -76,  -76,  -75,  -78, 
+     -79,  -79,  -81,  -83,  -86,  -89,  -93,  -97, 
+     -100, -105, -110, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47, 
+     -47,  -47,  -47,  -48,  -51,  -55,  -59,  -66, 
+     -66,  -66,  -67,  -66,  -68,  -69,  -70,  -74, 
+     -79,  -77,  -77,  -78,  -80,  -81,  -82,  -84, 
+     -86,  -88,  -91,  -95, -100, -108, -116, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
+     -36,  -37,  -37,  -41,  -44,  -48,  -51,  -58, 
+     -62,  -60,  -57,  -59,  -59,  -60,  -63,  -65, 
+     -72,  -71,  -70,  -72,  -74,  -77,  -76,  -78, 
+     -81,  -81,  -80,  -83,  -86,  -91,  -96, -100, 
+     -105, -110, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
+     -28,  -30,  -32,  -32,  -33,  -35,  -41,  -49, 
+     -50,  -49,  -47,  -48,  -48,  -52,  -51,  -57, 
+     -65,  -61,  -59,  -61,  -64,  -69,  -70,  -74, 
+     -77,  -77,  -78,  -81,  -84,  -85,  -87,  -90, 
+     -92,  -96, -100, -107, -112, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   { -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
+     -20,  -21,  -23,  -27,  -30,  -35,  -36,  -41, 
+     -46,  -44,  -42,  -40,  -41,  -41,  -43,  -48, 
+     -55,  -53,  -52,  -53,  -56,  -59,  -58,  -60, 
+     -67,  -66,  -69,  -71,  -72,  -75,  -79,  -81, 
+     -84,  -87,  -90,  -93,  -97, -101, -107, -114, 
+     -999, -999, -999, -999, -999, -999, -999, -999},
+   {  -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9, 
+      -11,  -12,  -12,  -15,  -16,  -20,  -23,  -30, 
+      -37,  -34,  -33,  -34,  -31,  -32,  -32,  -38, 
+      -47,  -44,  -41,  -40,  -47,  -49,  -46,  -46, 
+      -58,  -50,  -50,  -54,  -58,  -62,  -64,  -67, 
+      -67,  -70,  -72,  -76,  -79,  -83,  -87,  -91, 
+      -96, -100, -104, -110, -999, -999, -999, -999}}, 
+  /* 125 Hz */
+  {{ -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62, 
+     -62,  -62,  -63,  -64,  -66,  -67,  -66,  -68, 
+     -75,  -72,  -76,  -75,  -76,  -78,  -79,  -82, 
+     -84,  -85,  -90,  -94, -101, -110, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59, 
+     -59,  -59,  -59,  -60,  -60,  -61,  -63,  -66, 
+     -71,  -68,  -70,  -70,  -71,  -72,  -72,  -75, 
+     -81,  -78,  -79,  -82,  -83,  -86,  -90,  -97, 
+     -103, -113, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, 
+     -53,  -54,  -55,  -57,  -56,  -57,  -55,  -61, 
+     -65,  -60,  -60,  -62,  -63,  -63,  -66,  -68, 
+     -74,  -73,  -75,  -75,  -78,  -80,  -80,  -82, 
+     -85,  -90,  -96, -101, -108, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46, 
+     -46,  -46,  -47,  -47,  -47,  -47,  -48,  -51, 
+     -57,  -51,  -49,  -50,  -51,  -53,  -54,  -59, 
+     -66,  -60,  -62,  -67,  -67,  -70,  -72,  -75, 
+     -76,  -78,  -81,  -85,  -88,  -94,  -97, -104, 
+     -112, -999, -999, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
+     -39,  -41,  -42,  -42,  -39,  -38,  -41,  -43, 
+     -52,  -44,  -40,  -39,  -37,  -37,  -40,  -47, 
+     -54,  -50,  -48,  -50,  -55,  -61,  -59,  -62, 
+     -66,  -66,  -66,  -69,  -69,  -73,  -74,  -74, 
+     -75,  -77,  -79,  -82,  -87,  -91,  -95, -100, 
+     -108, -115, -999, -999, -999, -999, -999, -999}, 
+   { -28,  -26,  -24,  -22,  -20,  -20,  -23,  -29, 
+     -30,  -31,  -28,  -27,  -28,  -28,  -28,  -35, 
+     -40,  -33,  -32,  -29,  -30,  -30,  -30,  -37, 
+     -45,  -41,  -37,  -38,  -45,  -47,  -47,  -48, 
+     -53,  -49,  -48,  -50,  -49,  -49,  -51,  -52, 
+     -58,  -56,  -57,  -56,  -60,  -61,  -62,  -70, 
+     -72,  -74,  -78,  -83,  -88,  -93, -100, -106}}, 
+  /* 177 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -110, -105, -100,  -95,  -91,  -87,  -83, 
+    -80,  -78,  -76,  -78,  -78,  -81,  -83,  -85, 
+    -86,  -85,  -86,  -87,  -90,  -97, -107, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -110, -105, -100,  -95,  -90, 
+    -85,  -81,  -77,  -73,  -70,  -67,  -67,  -68, 
+    -75,  -73,  -70,  -69,  -70,  -72,  -75,  -79, 
+    -84,  -83,  -84,  -86,  -88,  -89,  -89,  -93, 
+    -98, -105, -112, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-105, -100,  -95,  -90,  -85,  -80,  -76,  -71, 
+    -68,  -68,  -65,  -63,  -63,  -62,  -62,  -64, 
+    -65,  -64,  -61,  -62,  -63,  -64,  -66,  -68, 
+    -73,  -73,  -74,  -75,  -76,  -81,  -83,  -85, 
+    -88,  -89,  -92,  -95, -100, -108, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -80,  -75,  -71,  -68,  -65,  -63,  -62,  -61, 
+     -61,  -61,  -61,  -59,  -56,  -57,  -53,  -50, 
+     -58,  -52,  -50,  -50,  -52,  -53,  -54,  -58, 
+     -67,  -63,  -67,  -68,  -72,  -75,  -78,  -80, 
+     -81,  -81,  -82,  -85,  -89,  -90,  -93,  -97, 
+     -101, -107, -114, -999, -999, -999, -999, -999, 
+     -999, -999, -999, -999, -999, -999, -999, -999}, 
+   { -65,  -61,  -59,  -57,  -56,  -55,  -55,  -56, 
+     -56,  -57,  -55,  -53,  -52,  -47,  -44,  -44, 
+     -50,  -44,  -41,  -39,  -39,  -42,  -40,  -46, 
+     -51,  -49,  -50,  -53,  -54,  -63,  -60,  -61, 
+     -62,  -66,  -66,  -66,  -70,  -73,  -74,  -75, 
+     -76,  -75,  -79,  -85,  -89,  -91,  -96, -102, 
+     -110, -999, -999, -999, -999, -999, -999, -999}, 
+   { -52,  -50,  -49,  -49,  -48,  -48,  -48,  -49, 
+     -50,  -50,  -49,  -46,  -43,  -39,  -35,  -33, 
+     -38,  -36,  -32,  -29,  -32,  -32,  -32,  -35, 
+     -44,  -39,  -38,  -38,  -46,  -50,  -45,  -46, 
+     -53,  -50,  -50,  -50,  -54,  -54,  -53,  -53, 
+     -56,  -57,  -59,  -66,  -70,  -72,  -74,  -79, 
+     -83,  -85,  -90, -97, -114, -999, -999, -999}}, 
+  /* 250 Hz */
+  {{-999, -999, -999, -999, -999, -999, -110, -105, 
+    -100,  -95,  -90,  -86,  -80,  -75,  -75,  -79, 
+    -80,  -79,  -80,  -81,  -82,  -88,  -95, -103, 
+    -110, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -108, -103,  -98,  -93, 
+    -88,  -83,  -79,  -78,  -75,  -71,  -67,  -68, 
+    -73,  -73,  -72,  -73,  -75,  -77,  -80,  -82, 
+    -88,  -93, -100, -107, -114, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -110, -105, -101,  -96,  -90, 
+    -86,  -81,  -77,  -73,  -69,  -66,  -61,  -62, 
+    -66,  -64,  -62,  -65,  -66,  -70,  -72,  -76, 
+    -81,  -80,  -84,  -90,  -95, -102, -110, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -107, -103,  -97,  -92,  -88, 
+    -83,  -79,  -74,  -70,  -66,  -59,  -53,  -58, 
+    -62,  -55,  -54,  -54,  -54,  -58,  -61,  -62, 
+    -72,  -70,  -72,  -75,  -78,  -80,  -81,  -80, 
+    -83,  -83,  -88,  -93, -100, -107, -115, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -105, -100,  -95,  -90,  -85, 
+    -80,  -75,  -70,  -66,  -62,  -56,  -48,  -44, 
+    -48,  -46,  -46,  -43,  -46,  -48,  -48,  -51, 
+    -58,  -58,  -59,  -60,  -62,  -62,  -61,  -61, 
+    -65,  -64,  -65,  -68,  -70,  -74,  -75,  -78, 
+    -81,  -86,  -95, -110, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999,  -999, -105, -100,  -95,  -90,  -85,  -80, 
+    -75,  -70,  -65,  -61,  -55,  -49,  -39,  -33, 
+    -40,  -35,  -32,  -38,  -40,  -33,  -35,  -37, 
+    -46,  -41,  -45,  -44,  -46,  -42,  -45,  -46, 
+    -52,  -50,  -50,  -50,  -54,  -54,  -55,  -57, 
+    -62,  -64,  -66,  -68,  -70,  -76,  -81,  -90, 
+    -100, -110, -999, -999, -999, -999, -999, -999}}, 
+  /* 354 hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -105,  -98,  -90,  -85,  -82,  -83,  -80,  -78, 
+    -84,  -79,  -80,  -83,  -87,  -89,  -91,  -93, 
+    -99, -106, -117, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -105,  -98,  -90,  -85,  -80,  -75,  -70,  -68, 
+    -74,  -72,  -74,  -77,  -80,  -82,  -85,  -87, 
+    -92,  -89,  -91,  -95, -100, -106, -112, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -105,  -98,  -90,  -83,  -75,  -71,  -63,  -64, 
+    -67,  -62,  -64,  -67,  -70,  -73,  -77,  -81, 
+    -84,  -83,  -85,  -89,  -90,  -93,  -98, -104, 
+    -109, -114, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -103,  -96,  -88,  -81,  -75,  -68,  -58,  -54, 
+    -56,  -54,  -56,  -56,  -58,  -60,  -63,  -66, 
+    -74,  -69,  -72,  -72,  -75,  -74,  -77,  -81, 
+    -81,  -82,  -84,  -87,  -93,  -96,  -99, -104, 
+    -110, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -108, -102,  -96, 
+    -91,  -85,  -80,  -74,  -68,  -60,  -51,  -46, 
+    -48,  -46,  -43,  -45,  -47,  -47,  -49,  -48, 
+    -56,  -53,  -55,  -58,  -57,  -63,  -58,  -60, 
+    -66,  -64,  -67,  -70,  -70,  -74,  -77,  -84, 
+    -86,  -89,  -91,  -93,  -94, -101, -109, -118, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -108, -103,  -98,  -93,  -88, 
+    -83,  -78,  -73,  -68,  -60,  -53,  -44,  -35, 
+    -38,  -38,  -34,  -34,  -36,  -40,  -41,  -44, 
+    -51,  -45,  -46,  -47,  -46,  -54,  -50,  -49, 
+    -50,  -50,  -50,  -51,  -54,  -57,  -58,  -60, 
+    -66,  -66,  -66,  -64,  -65,  -68,  -77,  -82, 
+    -87,  -95, -110, -999, -999, -999, -999, -999}}, 
+  /* 500 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -107, -102,  -97,  -92,  -87,  -83,  -78,  -75, 
+    -82,  -79,  -83,  -85,  -89,  -92,  -95,  -98, 
+    -101, -105, -109, -113, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -106, 
+    -100,  -95,  -90,  -86,  -81,  -78,  -74,  -69, 
+    -74,  -74,  -76,  -79,  -83,  -84,  -86,  -89, 
+    -92,  -97,  -93, -100, -103, -107, -110, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -106, -100, 
+    -95, -90, -87, -83, -80, -75, -69, -60, 
+    -66, -66, -68, -70, -74, -78, -79, -81, 
+    -81, -83, -84, -87, -93, -96, -99, -103, 
+    -107, -110, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -108, -103, -98, 
+    -93, -89, -85, -82, -78, -71, -62, -55, 
+    -58, -58, -54, -54, -55, -59, -61, -62, 
+    -70, -66, -66, -67, -70, -72, -75, -78, 
+    -84, -84, -84, -88, -91, -90, -95, -98, 
+    -102, -103, -106, -110, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -108, -103,  -98,  -94, 
+    -90,  -87,  -82,  -79,  -73,  -67,  -58,  -47, 
+    -50,  -45,  -41,  -45,  -48,  -44,  -44,  -49, 
+    -54,  -51,  -48,  -47,  -49,  -50,  -51,  -57, 
+    -58,  -60,  -63,  -69,  -70,  -69,  -71,  -74, 
+    -78,  -82,  -90,  -95, -101, -105, -110, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -105, -101, -97, -93, -90, 
+    -85, -80, -77, -72, -65, -56, -48, -37, 
+    -40, -36, -34, -40, -50, -47, -38, -41, 
+    -47, -38, -35, -39, -38, -43, -40, -45, 
+    -50, -45, -44, -47, -50, -55, -48, -48, 
+    -52, -66, -70, -76, -82, -90, -97, -105, 
+    -110, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 707 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -108, -103,  -98,  -93,  -86,  -79,  -76, 
+    -83,  -81,  -85,  -87,  -89,  -93,  -98, -102, 
+    -107, -112, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -108, -103,  -98,  -93,  -86,  -79,  -71, 
+    -77,  -74,  -77,  -79,  -81,  -84,  -85,  -90, 
+    -92,  -93,  -92,  -98, -101, -108, -112, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -108, -103,  -98,  -93,  -87,  -78,  -68,  -65, 
+    -66,  -62,  -65,  -67,  -70,  -73,  -75,  -78, 
+    -82,  -82,  -83,  -84,  -91,  -93,  -98, -102, 
+    -106, -110, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -105, -100, -95, -90, -82, -74, -62, -57, 
+    -58, -56, -51, -52, -52, -54, -54, -58, 
+    -66, -59, -60, -63, -66, -69, -73, -79, 
+    -83, -84, -80, -81, -81, -82, -88, -92, 
+    -98, -105, -113, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -107, 
+    -102,  -97,  -92,  -84,  -79,  -69,  -57,  -47, 
+    -52,  -47,  -44,  -45,  -50,  -52,  -42,  -42, 
+    -53,  -43,  -43,  -48,  -51,  -56,  -55,  -52, 
+    -57,  -59,  -61,  -62,  -67,  -71,  -78,  -83, 
+    -86,  -94,  -98, -103, -110, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -105, -100, 
+    -95,  -90,  -84,  -78,  -70,  -61,  -51,  -41, 
+    -40,  -38,  -40,  -46,  -52,  -51,  -41,  -40, 
+    -46,  -40,  -38,  -38,  -41,  -46,  -41,  -46, 
+    -47,  -43,  -43,  -45,  -41,  -45,  -56,  -67, 
+    -68,  -83,  -87,  -90,  -95, -102, -107, -113, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 1000 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -109, -105, -101,  -96,  -91,  -84,  -77, 
+    -82,  -82,  -85,  -89,  -94, -100, -106, -110, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -106, -103,  -98,  -92,  -85,  -80,  -71, 
+    -75,  -72,  -76,  -80,  -84,  -86,  -89,  -93, 
+    -100, -107, -113, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -107, 
+    -104, -101,  -97,  -92,  -88,  -84,  -80,  -64, 
+    -66,  -63,  -64,  -66,  -69,  -73,  -77,  -83, 
+    -83,  -86,  -91,  -98, -104, -111, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -107, 
+    -104, -101,  -97,  -92,  -90,  -84,  -74,  -57, 
+    -58,  -52,  -55,  -54,  -50,  -52,  -50,  -52, 
+    -63,  -62,  -69,  -76,  -77,  -78,  -78,  -79, 
+    -82,  -88,  -94, -100, -106, -111, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -106, -102, 
+    -98,  -95,  -90,  -85,  -83,  -78,  -70,  -50, 
+    -50,  -41,  -44,  -49,  -47,  -50,  -50,  -44, 
+    -55,  -46,  -47,  -48,  -48,  -54,  -49,  -49, 
+    -58,  -62,  -71,  -81,  -87,  -92,  -97, -102, 
+    -108, -114, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -106, -102, 
+    -98,  -95,  -90,  -85,  -83,  -78,  -70,  -45, 
+    -43,  -41,  -47,  -50,  -51,  -50,  -49,  -45, 
+    -47,  -41,  -44,  -41,  -39,  -43,  -38,  -37, 
+    -40,  -41,  -44,  -50,  -58,  -65,  -73,  -79, 
+    -85,  -92,  -97, -101, -105, -109, -113, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 1414 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -107, -100,  -95,  -87,  -81, 
+    -85,  -83,  -88,  -93, -100, -107, -114, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -107, -101,  -95,  -88,  -83,  -76, 
+    -73,  -72,  -79,  -84,  -90,  -95, -100, -105, 
+    -110, -115, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -104,  -98,  -92,  -87,  -81,  -70, 
+    -65,  -62,  -67,  -71,  -74,  -80,  -85,  -91, 
+    -95,  -99, -103, -108, -111, -114, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -103,  -97,  -90,  -85,  -76,  -60, 
+    -56,  -54,  -60,  -62,  -61,  -56,  -63,  -65, 
+    -73,  -74,  -77,  -75,  -78,  -81,  -86,  -87, 
+    -88,  -91,  -94,  -98, -103, -110, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -105, 
+    -100,  -97,  -92,  -86,  -81,  -79,  -70,  -57, 
+    -51,  -47,  -51,  -58,  -60,  -56,  -53,  -50, 
+    -58,  -52,  -50,  -50,  -53,  -55,  -64,  -69, 
+    -71,  -85,  -82,  -78,  -81,  -85,  -95, -102, 
+    -112, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -105, 
+    -100,  -97,  -92,  -85,  -83,  -79,  -72,  -49, 
+    -40,  -43,  -43,  -54,  -56,  -51,  -50,  -40, 
+    -43,  -38,  -36,  -35,  -37,  -38,  -37,  -44, 
+    -54,  -60,  -57,  -60,  -70,  -75,  -84,  -92, 
+    -103, -112, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 2000 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -102,  -95,  -89,  -82, 
+    -83,  -84,  -90,  -92,  -99, -107, -113, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -107, -101,  -95,  -89,  -83,  -72, 
+    -74,  -78,  -85,  -88,  -88,  -90,  -92,  -98, 
+    -105, -111, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -109, -103, -97, -93, -87, -81, -70, 
+    -70, -67, -75, -73, -76, -79, -81, -83, 
+    -88, -89, -97, -103, -110, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -107, -100,  -94,  -88,  -83,  -75,  -63, 
+    -59,  -59,  -63,  -66,  -60,  -62,  -67,  -67, 
+    -77,  -76,  -81,  -88,  -86,  -92,  -96, -102, 
+    -109, -116, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -105,  -98,  -92,  -86,  -81,  -73,  -56, 
+    -52,  -47,  -55,  -60,  -58,  -52,  -51,  -45, 
+    -49,  -50,  -53,  -54,  -61,  -71,  -70,  -69, 
+    -78,  -79,  -87,  -90,  -96, -104, -112, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -103,  -96,  -90,  -86,  -78,  -70,  -51, 
+    -42,  -47,  -48,  -55,  -54,  -54,  -53,  -42, 
+    -35,  -28,  -33,  -38,  -37,  -44,  -47,  -49, 
+    -54,  -63,  -68,  -78,  -82,  -89,  -94,  -99, 
+    -104, -109, -114, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 2828 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -110, -100,  -90,  -79, 
+    -85,  -81,  -82,  -82,  -89,  -94,  -99, -103, 
+    -109, -115, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -105,  -97,  -85,  -72, 
+    -74,  -70,  -70,  -70,  -76,  -85,  -91,  -93, 
+    -97, -103, -109, -115, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -112,  -93,  -81,  -68, 
+    -62,  -60,  -60,  -57,  -63,  -70,  -77,  -82, 
+    -90,  -93,  -98, -104, -109, -113, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -113, -100,  -93,  -84,  -63, 
+    -58,  -48,  -53,  -54,  -52,  -52,  -57,  -64, 
+    -66,  -76,  -83,  -81,  -85,  -85,  -90,  -95, 
+    -98, -101, -103, -106, -108, -111, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -105,  -95,  -86,  -74,  -53, 
+    -50,  -38,  -43,  -49,  -43,  -42,  -39,  -39, 
+    -46,  -52,  -57,  -56,  -72,  -69,  -74,  -81, 
+    -87,  -92,  -94,  -97,  -99, -102, -105, -108, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -108,  -99,  -90,  -76,  -66,  -45, 
+    -43,  -41,  -44,  -47,  -43,  -47,  -40,  -30, 
+    -31,  -31,  -39,  -33,  -40,  -41,  -43,  -53, 
+    -59,  -70,  -73,  -77,  -79,  -82,  -84,  -87, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 4000 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110,  -91,  -76, 
+    -75,  -85,  -93,  -98, -104, -110, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999},
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110,  -91,  -70, 
+    -70,  -75,  -86,  -89,  -94,  -98, -101, -106, 
+    -110, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -110,  -95,  -80,  -60, 
+    -65,  -64,  -74,  -83,  -88,  -91,  -95,  -99, 
+    -103, -107, -110, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -110,  -95,  -80,  -58, 
+    -55,  -49,  -66,  -68,  -71,  -78,  -78,  -80, 
+    -88,  -85,  -89,  -97, -100, -105, -110, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -110,  -95,  -80,  -53, 
+    -52,  -41,  -59,  -59,  -49,  -58,  -56,  -63, 
+    -86,  -79,  -90,  -93,  -98, -103, -107, -112, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110,  -97,  -91,  -73,  -45, 
+    -40,  -33,  -53,  -61,  -49,  -54,  -50,  -50, 
+    -60,  -52,  -67,  -74,  -81,  -92,  -96, -100, 
+    -105, -110, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 5657 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -113, -106,  -99,  -92,  -77, 
+    -80,  -88,  -97, -106, -115, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -116, -109, -102,  -95,  -89,  -74, 
+    -72,  -88,  -87,  -95, -102, -109, -116, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -116, -109, -102,  -95,  -89,  -75, 
+    -66,  -74,  -77,  -78,  -86,  -87,  -90,  -96, 
+    -105, -115, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -115, -108, -101,  -94,  -88,  -66, 
+    -56,  -61,  -70,  -65,  -78,  -72,  -83,  -84, 
+    -93,  -98, -105, -110, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -110, -105,  -95,  -89,  -82,  -57, 
+    -52,  -52,  -59,  -56,  -59,  -58,  -69,  -67, 
+    -88,  -82,  -82,  -89,  -94, -100, -108, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -110, -101,  -96,  -90,  -83,  -77,  -54, 
+    -43,  -38,  -50,  -48,  -52,  -48,  -42,  -42, 
+    -51,  -52,  -53,  -59,  -65,  -71,  -78,  -85, 
+    -95, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 8000 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -120, -105,  -86,  -68, 
+    -78,  -79,  -90, -100, -110, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -120, -105,  -86,  -66, 
+    -73,  -77,  -88,  -96, -105, -115, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -120, -105,  -92,  -80,  -61, 
+    -64,  -68,  -80,  -87,  -92, -100, -110, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -120, -104,  -91,  -79,  -52, 
+    -60,  -54,  -64,  -69,  -77,  -80,  -82,  -84, 
+    -85,  -87,  -88,  -90, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -118, -100,  -87,  -77,  -49, 
+    -50,  -44,  -58,  -61,  -61,  -67,  -65,  -62, 
+    -62,  -62,  -65,  -68, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -115,  -98,  -84,  -62,  -49, 
+    -44,  -38,  -46,  -49,  -49,  -46,  -39,  -37, 
+    -39,  -40,  -42,  -43, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 11314 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110,  -88,  -74, 
+    -77,  -82,  -82,  -85,  -90,  -94,  -99, -104, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110,  -88,  -66, 
+    -70,  -81,  -80,  -81,  -84,  -88,  -91,  -93, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110,  -88,  -61, 
+    -63,  -70,  -71,  -74,  -77,  -80,  -83,  -85, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -110, -86, -62, 
+    -63,  -62,  -62,  -58,  -52,  -50,  -50,  -52, 
+    -54, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -118, -108,  -84,  -53, 
+    -50,  -50,  -50,  -55,  -47,  -45,  -40,  -40, 
+    -40, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -118, -100,  -73,  -43, 
+    -37,  -42,  -43,  -53,  -38,  -37,  -35,  -35, 
+    -38, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}, 
+  /* 16000 Hz */
+  {{-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -91,  -84,  -74, 
+    -80,  -80,  -80,  -80,  -80, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -91,  -84,  -74, 
+    -68,  -68,  -68,  -68,  -68, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -86,  -78,  -70, 
+    -60,  -45,  -30,  -21, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -87,  -78,  -67, 
+    -48,  -38,  -29,  -21, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -86,  -69,  -56, 
+    -45,  -35,  -33,  -29, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}, 
+   {-999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -110, -100,  -83,  -71,  -48, 
+    -27,  -38,  -37,  -34, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999, 
+    -999, -999, -999, -999, -999, -999, -999, -999}}
+};
+
+	public vorbis_look_psy_arrays() {}
+
+}
+
+	


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_arrays.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_global.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_global.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_global.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,52 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+class vorbis_look_psy_global {
+
+	float ampmax;
+	int channels;
+
+	vorbis_info_psy_global gi;
+	int[][] coupling_pointlimit; 	// int coupling_pointlimit[2][P_NOISECURVES];
+
+
+	public vorbis_look_psy_global( float _ampmax, int _channels, vorbis_info_psy_global _gi, int[][] _coupling_pointlimit ) {
+
+		ampmax = _ampmax;
+		channels = _channels;
+		gi = _gi;
+
+		coupling_pointlimit = new int[2][ P_NOISECURVES ];
+		for ( int i=0; i < _coupling_pointlimit.length; i++ )
+			System.arraycopy( _coupling_pointlimit[i], 0, coupling_pointlimit[i], 0, _coupling_pointlimit[i].length );
+	}
+
+	public vorbis_look_psy_global( vorbis_look_psy_global src ) {
+
+		this( src.ampmax, src.channels, new vorbis_info_psy_global( src.gi ), src.coupling_pointlimit );
+	}
+
+	public vorbis_look_psy_global( vorbis_info _vi ) {
+
+		coupling_pointlimit = new int[2][ P_NOISECURVES ];
+		
+		channels = _vi.channels;
+		
+		ampmax = -9999.0f;
+		gi = _vi.codec_setup.psy_g_param;
+	}
+}
+


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_psy_global.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_residue0.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_residue0.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_residue0.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,46 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class vorbis_look_residue0 {
+
+	vorbis_info_residue0 info;
+
+	int parts;
+	int stages;
+
+	codebook[] fullbooks;		// *fullbooks;
+	codebook phrasebook;		// *phrasebook;
+	codebook[][] partbooks;		// ***partbooks;
+
+	int partvals;
+	int[][] decodemap;		// **decodemap;
+
+	int postbits;
+	int phrasebits;
+	int frames;
+
+	// #ifdef TRAIN_RES
+	// int        train_seq;
+	// long      *training_data[8][64];
+	// float      training_max[8][64];
+	// float      training_min[8][64];
+	// float     tmin;
+	// float     tmax;
+	// #endif
+
+
+	public vorbis_look_residue0() {
+
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_look_residue0.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_mapping_template.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_mapping_template.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_mapping_template.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,26 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_mapping_template {
+
+	vorbis_info_mapping0[] map;
+	vorbis_residue_template[] res;
+
+
+	public vorbis_mapping_template( vorbis_info_mapping0[] _map, vorbis_residue_template[] _res ) {
+
+		map = _map;
+		res = _res;
+	}
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_mapping_template.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_residue_template.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_residue_template.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_residue_template.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,47 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+public class vorbis_residue_template {
+
+	int res_type;
+	int limit_type; // 0 lowpass limited, 1 point stereo limited
+
+	vorbis_info_residue0 res;
+
+	static_codebook book_aux;
+	static_codebook book_aux_managed;
+	static_bookblock books_base;
+	static_bookblock books_base_managed;
+
+
+	public vorbis_residue_template( int _res_type, int _limit_type, vorbis_info_residue0 _res, 
+				static_codebook _book_aux, static_codebook _book_aux_managed, static_bookblock _books_base, static_bookblock _books_base_managed ) {
+
+		res_type = _res_type;
+		limit_type = _limit_type;
+
+		res = _res;
+
+		book_aux = _book_aux;
+		book_aux_managed = _book_aux_managed;
+		books_base = _books_base;
+		books_base_managed = _books_base_managed;
+	}
+
+	public vorbis_residue_template( vorbis_residue_template src ) {
+
+		this( src.res_type, src.limit_type, new vorbis_info_residue0( src.res ), 
+			new static_codebook( src.book_aux ), new static_codebook( src.book_aux_managed ), new static_bookblock( src.books_base ), new static_bookblock( src.books_base_managed ) );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_residue_template.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbis_window.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbis_window.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbis_window.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,2136 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+class vorbis_window {
+	
+	static float[] vwin64 = { // vwin64[32]
+			  0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, 
+			  0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F, 
+			  0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F, 
+			  0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F, 
+			  0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F, 
+			  0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F, 
+			  0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F, 
+			  0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F, 
+			};
+	
+	static float[] vwin128 = { // vwin128[64]
+			  0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F, 
+			  0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F, 
+			  0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F, 
+			  0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F, 
+			  0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F, 
+			  0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F, 
+			  0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F, 
+			  0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F, 
+			  0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F, 
+			  0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F, 
+			  0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F, 
+			  0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F, 
+			  0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F, 
+			  0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F, 
+			  0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F, 
+			  0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F, 
+			};
+	
+	static float[] vwin256 = { // vwin256[128]
+			  0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F, 
+			  0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F, 
+			  0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F, 
+			  0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F, 
+			  0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F, 
+			  0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F, 
+			  0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F, 
+			  0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F, 
+			  0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F, 
+			  0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F, 
+			  0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F, 
+			  0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F, 
+			  0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F, 
+			  0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F, 
+			  0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F, 
+			  0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F, 
+			  0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F, 
+			  0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F, 
+			  0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F, 
+			  0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F, 
+			  0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F, 
+			  0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F, 
+			  0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F, 
+			  0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F, 
+			  0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F, 
+			  0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F, 
+			  0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F, 
+			  0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F, 
+			  0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F, 
+			  0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F, 
+			  0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F, 
+			  0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F, 
+			};
+	
+	static float[] vwin512 = { // vwin512[256]
+			  0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F, 
+			  0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F, 
+			  0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F, 
+			  0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F, 
+			  0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F, 
+			  0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F, 
+			  0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F, 
+			  0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F, 
+			  0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F, 
+			  0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F, 
+			  0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F, 
+			  0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F, 
+			  0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F, 
+			  0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F, 
+			  0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F, 
+			  0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F, 
+			  0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F, 
+			  0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F, 
+			  0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F, 
+			  0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F, 
+			  0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F, 
+			  0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F, 
+			  0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F, 
+			  0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F, 
+			  0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F, 
+			  0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F, 
+			  0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F, 
+			  0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F, 
+			  0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F, 
+			  0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F, 
+			  0.6542670475F, 0.6614989319F, 0.6686768267F, 0.6757988210F, 
+			  0.6828630426F, 0.6898676592F, 0.6968108799F, 0.7036909564F, 
+			  0.7105061843F, 0.7172549043F, 0.7239355032F, 0.7305464154F, 
+			  0.7370861235F, 0.7435531598F, 0.7499461068F, 0.7562635986F, 
+			  0.7625043214F, 0.7686670148F, 0.7747504721F, 0.7807535410F, 
+			  0.7866751247F, 0.7925141825F, 0.7982697296F, 0.8039408387F, 
+			  0.8095266395F, 0.8150263196F, 0.8204391248F, 0.8257643590F, 
+			  0.8310013848F, 0.8361496236F, 0.8412085555F, 0.8461777194F, 
+			  0.8510567129F, 0.8558451924F, 0.8605428730F, 0.8651495278F, 
+			  0.8696649882F, 0.8740891432F, 0.8784219392F, 0.8826633797F, 
+			  0.8868135244F, 0.8908724888F, 0.8948404441F, 0.8987176157F, 
+			  0.9025042831F, 0.9062007791F, 0.9098074886F, 0.9133248482F, 
+			  0.9167533451F, 0.9200935163F, 0.9233459472F, 0.9265112712F, 
+			  0.9295901680F, 0.9325833632F, 0.9354916263F, 0.9383157705F, 
+			  0.9410566504F, 0.9437151618F, 0.9462922398F, 0.9487888576F, 
+			  0.9512060252F, 0.9535447882F, 0.9558062262F, 0.9579914516F, 
+			  0.9601016078F, 0.9621378683F, 0.9641014348F, 0.9659935361F, 
+			  0.9678154261F, 0.9695683830F, 0.9712537071F, 0.9728727198F, 
+			  0.9744267618F, 0.9759171916F, 0.9773453842F, 0.9787127293F, 
+			  0.9800206298F, 0.9812705006F, 0.9824637665F, 0.9836018613F, 
+			  0.9846862258F, 0.9857183066F, 0.9866995544F, 0.9876314227F, 
+			  0.9885153662F, 0.9893528393F, 0.9901452948F, 0.9908941823F, 
+			  0.9916009470F, 0.9922670279F, 0.9928938570F, 0.9934828574F, 
+			  0.9940354423F, 0.9945530133F, 0.9950369595F, 0.9954886562F, 
+			  0.9959094633F, 0.9963007242F, 0.9966637649F, 0.9969998925F, 
+			  0.9973103939F, 0.9975965351F, 0.9978595598F, 0.9981006885F, 
+			  0.9983211172F, 0.9985220166F, 0.9987045311F, 0.9988697776F, 
+			  0.9990188449F, 0.9991527924F, 0.9992726499F, 0.9993794157F, 
+			  0.9994740570F, 0.9995575079F, 0.9996306699F, 0.9996944099F, 
+			  0.9997495605F, 0.9997969190F, 0.9998372465F, 0.9998712678F, 
+			  0.9998996704F, 0.9999231041F, 0.9999421807F, 0.9999574732F, 
+			  0.9999695157F, 0.9999788026F, 0.9999857885F, 0.9999908879F, 
+			  0.9999944746F, 0.9999968817F, 0.9999984010F, 0.9999992833F, 
+			  0.9999997377F, 0.9999999317F, 0.9999999911F, 0.9999999999F, 
+			};
+	
+	static float[] vwin1024 = { // vwin1024[512]
+			  0.0000036962F, 0.0000332659F, 0.0000924041F, 0.0001811086F, 
+			  0.0002993761F, 0.0004472021F, 0.0006245811F, 0.0008315063F, 
+			  0.0010679699F, 0.0013339631F, 0.0016294757F, 0.0019544965F, 
+			  0.0023090133F, 0.0026930125F, 0.0031064797F, 0.0035493989F, 
+			  0.0040217533F, 0.0045235250F, 0.0050546946F, 0.0056152418F, 
+			  0.0062051451F, 0.0068243817F, 0.0074729278F, 0.0081507582F, 
+			  0.0088578466F, 0.0095941655F, 0.0103596863F, 0.0111543789F, 
+			  0.0119782122F, 0.0128311538F, 0.0137131701F, 0.0146242260F, 
+			  0.0155642855F, 0.0165333111F, 0.0175312640F, 0.0185581042F, 
+			  0.0196137903F, 0.0206982797F, 0.0218115284F, 0.0229534910F, 
+			  0.0241241208F, 0.0253233698F, 0.0265511886F, 0.0278075263F, 
+			  0.0290923308F, 0.0304055484F, 0.0317471241F, 0.0331170013F, 
+			  0.0345151222F, 0.0359414274F, 0.0373958560F, 0.0388783456F, 
+			  0.0403888325F, 0.0419272511F, 0.0434935347F, 0.0450876148F, 
+			  0.0467094213F, 0.0483588828F, 0.0500359261F, 0.0517404765F, 
+			  0.0534724575F, 0.0552317913F, 0.0570183983F, 0.0588321971F, 
+			  0.0606731048F, 0.0625410369F, 0.0644359070F, 0.0663576272F, 
+			  0.0683061077F, 0.0702812571F, 0.0722829821F, 0.0743111878F, 
+			  0.0763657775F, 0.0784466526F, 0.0805537129F, 0.0826868561F, 
+			  0.0848459782F, 0.0870309736F, 0.0892417345F, 0.0914781514F, 
+			  0.0937401128F, 0.0960275056F, 0.0983402145F, 0.1006781223F, 
+			  0.1030411101F, 0.1054290568F, 0.1078418397F, 0.1102793336F, 
+			  0.1127414119F, 0.1152279457F, 0.1177388042F, 0.1202738544F, 
+			  0.1228329618F, 0.1254159892F, 0.1280227980F, 0.1306532471F, 
+			  0.1333071937F, 0.1359844927F, 0.1386849970F, 0.1414085575F, 
+			  0.1441550230F, 0.1469242403F, 0.1497160539F, 0.1525303063F, 
+			  0.1553668381F, 0.1582254875F, 0.1611060909F, 0.1640084822F, 
+			  0.1669324936F, 0.1698779549F, 0.1728446939F, 0.1758325362F, 
+			  0.1788413055F, 0.1818708232F, 0.1849209084F, 0.1879913785F, 
+			  0.1910820485F, 0.1941927312F, 0.1973232376F, 0.2004733764F, 
+			  0.2036429541F, 0.2068317752F, 0.2100396421F, 0.2132663552F, 
+			  0.2165117125F, 0.2197755102F, 0.2230575422F, 0.2263576007F, 
+			  0.2296754753F, 0.2330109540F, 0.2363638225F, 0.2397338646F, 
+			  0.2431208619F, 0.2465245941F, 0.2499448389F, 0.2533813719F, 
+			  0.2568339669F, 0.2603023956F, 0.2637864277F, 0.2672858312F, 
+			  0.2708003718F, 0.2743298135F, 0.2778739186F, 0.2814324472F, 
+			  0.2850051576F, 0.2885918065F, 0.2921921485F, 0.2958059366F, 
+			  0.2994329219F, 0.3030728538F, 0.3067254799F, 0.3103905462F, 
+			  0.3140677969F, 0.3177569747F, 0.3214578205F, 0.3251700736F, 
+			  0.3288934718F, 0.3326277513F, 0.3363726468F, 0.3401278914F, 
+			  0.3438932168F, 0.3476683533F, 0.3514530297F, 0.3552469734F, 
+			  0.3590499106F, 0.3628615659F, 0.3666816630F, 0.3705099239F, 
+			  0.3743460698F, 0.3781898204F, 0.3820408945F, 0.3858990095F, 
+			  0.3897638820F, 0.3936352274F, 0.3975127601F, 0.4013961936F, 
+			  0.4052852405F, 0.4091796123F, 0.4130790198F, 0.4169831732F, 
+			  0.4208917815F, 0.4248045534F, 0.4287211965F, 0.4326414181F, 
+			  0.4365649248F, 0.4404914225F, 0.4444206167F, 0.4483522125F, 
+			  0.4522859146F, 0.4562214270F, 0.4601584538F, 0.4640966984F, 
+			  0.4680358644F, 0.4719756548F, 0.4759157726F, 0.4798559209F, 
+			  0.4837958024F, 0.4877351199F, 0.4916735765F, 0.4956108751F, 
+			  0.4995467188F, 0.5034808109F, 0.5074128550F, 0.5113425550F, 
+			  0.5152696149F, 0.5191937395F, 0.5231146336F, 0.5270320028F, 
+			  0.5309455530F, 0.5348549910F, 0.5387600239F, 0.5426603597F, 
+			  0.5465557070F, 0.5504457754F, 0.5543302752F, 0.5582089175F, 
+			  0.5620814145F, 0.5659474793F, 0.5698068262F, 0.5736591704F, 
+			  0.5775042283F, 0.5813417176F, 0.5851713571F, 0.5889928670F, 
+			  0.5928059689F, 0.5966103856F, 0.6004058415F, 0.6041920626F, 
+			  0.6079687761F, 0.6117357113F, 0.6154925986F, 0.6192391705F, 
+			  0.6229751612F, 0.6267003064F, 0.6304143441F, 0.6341170137F, 
+			  0.6378080569F, 0.6414872173F, 0.6451542405F, 0.6488088741F, 
+			  0.6524508681F, 0.6560799742F, 0.6596959469F, 0.6632985424F, 
+			  0.6668875197F, 0.6704626398F, 0.6740236662F, 0.6775703649F, 
+			  0.6811025043F, 0.6846198554F, 0.6881221916F, 0.6916092892F, 
+			  0.6950809269F, 0.6985368861F, 0.7019769510F, 0.7054009085F, 
+			  0.7088085484F, 0.7121996632F, 0.7155740484F, 0.7189315023F, 
+			  0.7222718263F, 0.7255948245F, 0.7289003043F, 0.7321880760F, 
+			  0.7354579530F, 0.7387097518F, 0.7419432921F, 0.7451583966F, 
+			  0.7483548915F, 0.7515326059F, 0.7546913723F, 0.7578310265F, 
+			  0.7609514077F, 0.7640523581F, 0.7671337237F, 0.7701953535F, 
+			  0.7732371001F, 0.7762588195F, 0.7792603711F, 0.7822416178F, 
+			  0.7852024259F, 0.7881426654F, 0.7910622097F, 0.7939609356F, 
+			  0.7968387237F, 0.7996954579F, 0.8025310261F, 0.8053453193F, 
+			  0.8081382324F, 0.8109096638F, 0.8136595156F, 0.8163876936F, 
+			  0.8190941071F, 0.8217786690F, 0.8244412960F, 0.8270819086F, 
+			  0.8297004305F, 0.8322967896F, 0.8348709171F, 0.8374227481F, 
+			  0.8399522213F, 0.8424592789F, 0.8449438672F, 0.8474059356F, 
+			  0.8498454378F, 0.8522623306F, 0.8546565748F, 0.8570281348F, 
+			  0.8593769787F, 0.8617030779F, 0.8640064080F, 0.8662869477F, 
+			  0.8685446796F, 0.8707795899F, 0.8729916682F, 0.8751809079F, 
+			  0.8773473059F, 0.8794908626F, 0.8816115819F, 0.8837094713F, 
+			  0.8857845418F, 0.8878368079F, 0.8898662874F, 0.8918730019F, 
+			  0.8938569760F, 0.8958182380F, 0.8977568194F, 0.8996727552F, 
+			  0.9015660837F, 0.9034368465F, 0.9052850885F, 0.9071108577F, 
+			  0.9089142057F, 0.9106951869F, 0.9124538591F, 0.9141902832F, 
+			  0.9159045233F, 0.9175966464F, 0.9192667228F, 0.9209148257F, 
+			  0.9225410313F, 0.9241454187F, 0.9257280701F, 0.9272890704F, 
+			  0.9288285075F, 0.9303464720F, 0.9318430576F, 0.9333183603F, 
+			  0.9347724792F, 0.9362055158F, 0.9376175745F, 0.9390087622F, 
+			  0.9403791881F, 0.9417289644F, 0.9430582055F, 0.9443670283F, 
+			  0.9456555521F, 0.9469238986F, 0.9481721917F, 0.9494005577F, 
+			  0.9506091252F, 0.9517980248F, 0.9529673894F, 0.9541173540F, 
+			  0.9552480557F, 0.9563596334F, 0.9574522282F, 0.9585259830F, 
+			  0.9595810428F, 0.9606175542F, 0.9616356656F, 0.9626355274F, 
+			  0.9636172915F, 0.9645811114F, 0.9655271425F, 0.9664555414F, 
+			  0.9673664664F, 0.9682600774F, 0.9691365355F, 0.9699960034F, 
+			  0.9708386448F, 0.9716646250F, 0.9724741103F, 0.9732672685F, 
+			  0.9740442683F, 0.9748052795F, 0.9755504729F, 0.9762800205F, 
+			  0.9769940950F, 0.9776928703F, 0.9783765210F, 0.9790452223F, 
+			  0.9796991504F, 0.9803384823F, 0.9809633954F, 0.9815740679F, 
+			  0.9821706784F, 0.9827534063F, 0.9833224312F, 0.9838779332F, 
+			  0.9844200928F, 0.9849490910F, 0.9854651087F, 0.9859683274F, 
+			  0.9864589286F, 0.9869370940F, 0.9874030054F, 0.9878568447F, 
+			  0.9882987937F, 0.9887290343F, 0.9891477481F, 0.9895551169F, 
+			  0.9899513220F, 0.9903365446F, 0.9907109658F, 0.9910747662F, 
+			  0.9914281260F, 0.9917712252F, 0.9921042433F, 0.9924273593F, 
+			  0.9927407516F, 0.9930445982F, 0.9933390763F, 0.9936243626F, 
+			  0.9939006331F, 0.9941680631F, 0.9944268269F, 0.9946770982F, 
+			  0.9949190498F, 0.9951528537F, 0.9953786808F, 0.9955967011F, 
+			  0.9958070836F, 0.9960099963F, 0.9962056061F, 0.9963940787F, 
+			  0.9965755786F, 0.9967502693F, 0.9969183129F, 0.9970798704F, 
+			  0.9972351013F, 0.9973841640F, 0.9975272151F, 0.9976644103F, 
+			  0.9977959036F, 0.9979218476F, 0.9980423932F, 0.9981576901F, 
+			  0.9982678862F, 0.9983731278F, 0.9984735596F, 0.9985693247F, 
+			  0.9986605645F, 0.9987474186F, 0.9988300248F, 0.9989085193F, 
+			  0.9989830364F, 0.9990537085F, 0.9991206662F, 0.9991840382F, 
+			  0.9992439513F, 0.9993005303F, 0.9993538982F, 0.9994041757F, 
+			  0.9994514817F, 0.9994959330F, 0.9995376444F, 0.9995767286F, 
+			  0.9996132960F, 0.9996474550F, 0.9996793121F, 0.9997089710F, 
+			  0.9997365339F, 0.9997621003F, 0.9997857677F, 0.9998076311F, 
+			  0.9998277836F, 0.9998463156F, 0.9998633155F, 0.9998788692F, 
+			  0.9998930603F, 0.9999059701F, 0.9999176774F, 0.9999282586F, 
+			  0.9999377880F, 0.9999463370F, 0.9999539749F, 0.9999607685F, 
+			  0.9999667820F, 0.9999720773F, 0.9999767136F, 0.9999807479F, 
+			  0.9999842344F, 0.9999872249F, 0.9999897688F, 0.9999919127F, 
+			  0.9999937009F, 0.9999951749F, 0.9999963738F, 0.9999973342F, 
+			  0.9999980900F, 0.9999986724F, 0.9999991103F, 0.9999994297F, 
+			  0.9999996543F, 0.9999998049F, 0.9999999000F, 0.9999999552F, 
+			  0.9999999836F, 0.9999999957F, 0.9999999994F, 1.0000000000F, 
+			};
+	
+	static float[] vwin2048 = { // vwin2048[1024]
+			  0.0000009241F, 0.0000083165F, 0.0000231014F, 0.0000452785F, 
+			  0.0000748476F, 0.0001118085F, 0.0001561608F, 0.0002079041F, 
+			  0.0002670379F, 0.0003335617F, 0.0004074748F, 0.0004887765F, 
+			  0.0005774661F, 0.0006735427F, 0.0007770054F, 0.0008878533F, 
+			  0.0010060853F, 0.0011317002F, 0.0012646969F, 0.0014050742F, 
+			  0.0015528307F, 0.0017079650F, 0.0018704756F, 0.0020403610F, 
+			  0.0022176196F, 0.0024022497F, 0.0025942495F, 0.0027936173F, 
+			  0.0030003511F, 0.0032144490F, 0.0034359088F, 0.0036647286F, 
+			  0.0039009061F, 0.0041444391F, 0.0043953253F, 0.0046535621F, 
+			  0.0049191472F, 0.0051920781F, 0.0054723520F, 0.0057599664F, 
+			  0.0060549184F, 0.0063572052F, 0.0066668239F, 0.0069837715F, 
+			  0.0073080449F, 0.0076396410F, 0.0079785566F, 0.0083247884F, 
+			  0.0086783330F, 0.0090391871F, 0.0094073470F, 0.0097828092F, 
+			  0.0101655700F, 0.0105556258F, 0.0109529726F, 0.0113576065F, 
+			  0.0117695237F, 0.0121887200F, 0.0126151913F, 0.0130489335F, 
+			  0.0134899422F, 0.0139382130F, 0.0143937415F, 0.0148565233F, 
+			  0.0153265536F, 0.0158038279F, 0.0162883413F, 0.0167800889F, 
+			  0.0172790660F, 0.0177852675F, 0.0182986882F, 0.0188193231F, 
+			  0.0193471668F, 0.0198822141F, 0.0204244594F, 0.0209738974F, 
+			  0.0215305225F, 0.0220943289F, 0.0226653109F, 0.0232434627F, 
+			  0.0238287784F, 0.0244212519F, 0.0250208772F, 0.0256276481F, 
+			  0.0262415582F, 0.0268626014F, 0.0274907711F, 0.0281260608F, 
+			  0.0287684638F, 0.0294179736F, 0.0300745833F, 0.0307382859F, 
+			  0.0314090747F, 0.0320869424F, 0.0327718819F, 0.0334638860F, 
+			  0.0341629474F, 0.0348690586F, 0.0355822122F, 0.0363024004F, 
+			  0.0370296157F, 0.0377638502F, 0.0385050960F, 0.0392533451F, 
+			  0.0400085896F, 0.0407708211F, 0.0415400315F, 0.0423162123F, 
+			  0.0430993552F, 0.0438894515F, 0.0446864926F, 0.0454904698F, 
+			  0.0463013742F, 0.0471191969F, 0.0479439288F, 0.0487755607F, 
+			  0.0496140836F, 0.0504594879F, 0.0513117642F, 0.0521709031F, 
+			  0.0530368949F, 0.0539097297F, 0.0547893979F, 0.0556758894F, 
+			  0.0565691941F, 0.0574693019F, 0.0583762026F, 0.0592898858F, 
+			  0.0602103410F, 0.0611375576F, 0.0620715250F, 0.0630122324F, 
+			  0.0639596688F, 0.0649138234F, 0.0658746848F, 0.0668422421F, 
+			  0.0678164838F, 0.0687973985F, 0.0697849746F, 0.0707792005F, 
+			  0.0717800645F, 0.0727875547F, 0.0738016591F, 0.0748223656F, 
+			  0.0758496620F, 0.0768835359F, 0.0779239751F, 0.0789709668F, 
+			  0.0800244985F, 0.0810845574F, 0.0821511306F, 0.0832242052F, 
+			  0.0843037679F, 0.0853898056F, 0.0864823050F, 0.0875812525F, 
+			  0.0886866347F, 0.0897984378F, 0.0909166480F, 0.0920412513F, 
+			  0.0931722338F, 0.0943095813F, 0.0954532795F, 0.0966033140F, 
+			  0.0977596702F, 0.0989223336F, 0.1000912894F, 0.1012665227F, 
+			  0.1024480185F, 0.1036357616F, 0.1048297369F, 0.1060299290F, 
+			  0.1072363224F, 0.1084489014F, 0.1096676504F, 0.1108925534F, 
+			  0.1121235946F, 0.1133607577F, 0.1146040267F, 0.1158533850F, 
+			  0.1171088163F, 0.1183703040F, 0.1196378312F, 0.1209113812F, 
+			  0.1221909370F, 0.1234764815F, 0.1247679974F, 0.1260654674F, 
+			  0.1273688740F, 0.1286781995F, 0.1299934263F, 0.1313145365F, 
+			  0.1326415121F, 0.1339743349F, 0.1353129866F, 0.1366574490F, 
+			  0.1380077035F, 0.1393637315F, 0.1407255141F, 0.1420930325F, 
+			  0.1434662677F, 0.1448452004F, 0.1462298115F, 0.1476200814F, 
+			  0.1490159906F, 0.1504175195F, 0.1518246482F, 0.1532373569F, 
+			  0.1546556253F, 0.1560794333F, 0.1575087606F, 0.1589435866F, 
+			  0.1603838909F, 0.1618296526F, 0.1632808509F, 0.1647374648F, 
+			  0.1661994731F, 0.1676668546F, 0.1691395880F, 0.1706176516F, 
+			  0.1721010238F, 0.1735896829F, 0.1750836068F, 0.1765827736F, 
+			  0.1780871610F, 0.1795967468F, 0.1811115084F, 0.1826314234F, 
+			  0.1841564689F, 0.1856866221F, 0.1872218600F, 0.1887621595F, 
+			  0.1903074974F, 0.1918578503F, 0.1934131947F, 0.1949735068F, 
+			  0.1965387630F, 0.1981089393F, 0.1996840117F, 0.2012639560F, 
+			  0.2028487479F, 0.2044383630F, 0.2060327766F, 0.2076319642F, 
+			  0.2092359007F, 0.2108445614F, 0.2124579211F, 0.2140759545F, 
+			  0.2156986364F, 0.2173259411F, 0.2189578432F, 0.2205943168F, 
+			  0.2222353361F, 0.2238808751F, 0.2255309076F, 0.2271854073F, 
+			  0.2288443480F, 0.2305077030F, 0.2321754457F, 0.2338475493F, 
+			  0.2355239869F, 0.2372047315F, 0.2388897560F, 0.2405790329F, 
+			  0.2422725350F, 0.2439702347F, 0.2456721043F, 0.2473781159F, 
+			  0.2490882418F, 0.2508024539F, 0.2525207240F, 0.2542430237F, 
+			  0.2559693248F, 0.2576995986F, 0.2594338166F, 0.2611719498F, 
+			  0.2629139695F, 0.2646598466F, 0.2664095520F, 0.2681630564F, 
+			  0.2699203304F, 0.2716813445F, 0.2734460691F, 0.2752144744F, 
+			  0.2769865307F, 0.2787622079F, 0.2805414760F, 0.2823243047F, 
+			  0.2841106637F, 0.2859005227F, 0.2876938509F, 0.2894906179F, 
+			  0.2912907928F, 0.2930943447F, 0.2949012426F, 0.2967114554F, 
+			  0.2985249520F, 0.3003417009F, 0.3021616708F, 0.3039848301F, 
+			  0.3058111471F, 0.3076405901F, 0.3094731273F, 0.3113087266F, 
+			  0.3131473560F, 0.3149889833F, 0.3168335762F, 0.3186811024F, 
+			  0.3205315294F, 0.3223848245F, 0.3242409552F, 0.3260998886F, 
+			  0.3279615918F, 0.3298260319F, 0.3316931758F, 0.3335629903F, 
+			  0.3354354423F, 0.3373104982F, 0.3391881247F, 0.3410682882F, 
+			  0.3429509551F, 0.3448360917F, 0.3467236642F, 0.3486136387F, 
+			  0.3505059811F, 0.3524006575F, 0.3542976336F, 0.3561968753F, 
+			  0.3580983482F, 0.3600020179F, 0.3619078499F, 0.3638158096F, 
+			  0.3657258625F, 0.3676379737F, 0.3695521086F, 0.3714682321F, 
+			  0.3733863094F, 0.3753063055F, 0.3772281852F, 0.3791519134F, 
+			  0.3810774548F, 0.3830047742F, 0.3849338362F, 0.3868646053F, 
+			  0.3887970459F, 0.3907311227F, 0.3926667998F, 0.3946040417F, 
+			  0.3965428125F, 0.3984830765F, 0.4004247978F, 0.4023679403F, 
+			  0.4043124683F, 0.4062583455F, 0.4082055359F, 0.4101540034F, 
+			  0.4121037117F, 0.4140546246F, 0.4160067058F, 0.4179599190F, 
+			  0.4199142277F, 0.4218695956F, 0.4238259861F, 0.4257833627F, 
+			  0.4277416888F, 0.4297009279F, 0.4316610433F, 0.4336219983F, 
+			  0.4355837562F, 0.4375462803F, 0.4395095337F, 0.4414734797F, 
+			  0.4434380815F, 0.4454033021F, 0.4473691046F, 0.4493354521F, 
+			  0.4513023078F, 0.4532696345F, 0.4552373954F, 0.4572055533F, 
+			  0.4591740713F, 0.4611429123F, 0.4631120393F, 0.4650814151F, 
+			  0.4670510028F, 0.4690207650F, 0.4709906649F, 0.4729606651F, 
+			  0.4749307287F, 0.4769008185F, 0.4788708972F, 0.4808409279F, 
+			  0.4828108732F, 0.4847806962F, 0.4867503597F, 0.4887198264F, 
+			  0.4906890593F, 0.4926580213F, 0.4946266753F, 0.4965949840F, 
+			  0.4985629105F, 0.5005304176F, 0.5024974683F, 0.5044640255F, 
+			  0.5064300522F, 0.5083955114F, 0.5103603659F, 0.5123245790F, 
+			  0.5142881136F, 0.5162509328F, 0.5182129997F, 0.5201742774F, 
+			  0.5221347290F, 0.5240943178F, 0.5260530070F, 0.5280107598F, 
+			  0.5299675395F, 0.5319233095F, 0.5338780330F, 0.5358316736F, 
+			  0.5377841946F, 0.5397355596F, 0.5416857320F, 0.5436346755F, 
+			  0.5455823538F, 0.5475287304F, 0.5494737691F, 0.5514174337F, 
+			  0.5533596881F, 0.5553004962F, 0.5572398218F, 0.5591776291F, 
+			  0.5611138821F, 0.5630485449F, 0.5649815818F, 0.5669129570F, 
+			  0.5688426349F, 0.5707705799F, 0.5726967564F, 0.5746211290F, 
+			  0.5765436624F, 0.5784643212F, 0.5803830702F, 0.5822998743F, 
+			  0.5842146984F, 0.5861275076F, 0.5880382669F, 0.5899469416F, 
+			  0.5918534968F, 0.5937578981F, 0.5956601107F, 0.5975601004F, 
+			  0.5994578326F, 0.6013532732F, 0.6032463880F, 0.6051371429F, 
+			  0.6070255039F, 0.6089114372F, 0.6107949090F, 0.6126758856F, 
+			  0.6145543334F, 0.6164302191F, 0.6183035092F, 0.6201741706F, 
+			  0.6220421700F, 0.6239074745F, 0.6257700513F, 0.6276298674F, 
+			  0.6294868903F, 0.6313410873F, 0.6331924262F, 0.6350408745F, 
+			  0.6368864001F, 0.6387289710F, 0.6405685552F, 0.6424051209F, 
+			  0.6442386364F, 0.6460690702F, 0.6478963910F, 0.6497205673F, 
+			  0.6515415682F, 0.6533593625F, 0.6551739194F, 0.6569852082F, 
+			  0.6587931984F, 0.6605978593F, 0.6623991609F, 0.6641970728F, 
+			  0.6659915652F, 0.6677826081F, 0.6695701718F, 0.6713542268F, 
+			  0.6731347437F, 0.6749116932F, 0.6766850461F, 0.6784547736F, 
+			  0.6802208469F, 0.6819832374F, 0.6837419164F, 0.6854968559F, 
+			  0.6872480275F, 0.6889954034F, 0.6907389556F, 0.6924786566F, 
+			  0.6942144788F, 0.6959463950F, 0.6976743780F, 0.6993984008F, 
+			  0.7011184365F, 0.7028344587F, 0.7045464407F, 0.7062543564F, 
+			  0.7079581796F, 0.7096578844F, 0.7113534450F, 0.7130448359F, 
+			  0.7147320316F, 0.7164150070F, 0.7180937371F, 0.7197681970F, 
+			  0.7214383620F, 0.7231042077F, 0.7247657098F, 0.7264228443F, 
+			  0.7280755871F, 0.7297239147F, 0.7313678035F, 0.7330072301F, 
+			  0.7346421715F, 0.7362726046F, 0.7378985069F, 0.7395198556F, 
+			  0.7411366285F, 0.7427488034F, 0.7443563584F, 0.7459592717F, 
+			  0.7475575218F, 0.7491510873F, 0.7507399471F, 0.7523240803F, 
+			  0.7539034661F, 0.7554780839F, 0.7570479136F, 0.7586129349F, 
+			  0.7601731279F, 0.7617284730F, 0.7632789506F, 0.7648245416F, 
+			  0.7663652267F, 0.7679009872F, 0.7694318044F, 0.7709576599F, 
+			  0.7724785354F, 0.7739944130F, 0.7755052749F, 0.7770111035F, 
+			  0.7785118815F, 0.7800075916F, 0.7814982170F, 0.7829837410F, 
+			  0.7844641472F, 0.7859394191F, 0.7874095408F, 0.7888744965F, 
+			  0.7903342706F, 0.7917888476F, 0.7932382124F, 0.7946823501F, 
+			  0.7961212460F, 0.7975548855F, 0.7989832544F, 0.8004063386F, 
+			  0.8018241244F, 0.8032365981F, 0.8046437463F, 0.8060455560F, 
+			  0.8074420141F, 0.8088331080F, 0.8102188253F, 0.8115991536F, 
+			  0.8129740810F, 0.8143435957F, 0.8157076861F, 0.8170663409F, 
+			  0.8184195489F, 0.8197672994F, 0.8211095817F, 0.8224463853F, 
+			  0.8237777001F, 0.8251035161F, 0.8264238235F, 0.8277386129F, 
+			  0.8290478750F, 0.8303516008F, 0.8316497814F, 0.8329424083F, 
+			  0.8342294731F, 0.8355109677F, 0.8367868841F, 0.8380572148F, 
+			  0.8393219523F, 0.8405810893F, 0.8418346190F, 0.8430825345F, 
+			  0.8443248294F, 0.8455614974F, 0.8467925323F, 0.8480179285F, 
+			  0.8492376802F, 0.8504517822F, 0.8516602292F, 0.8528630164F, 
+			  0.8540601391F, 0.8552515928F, 0.8564373733F, 0.8576174766F, 
+			  0.8587918990F, 0.8599606368F, 0.8611236868F, 0.8622810460F, 
+			  0.8634327113F, 0.8645786802F, 0.8657189504F, 0.8668535195F, 
+			  0.8679823857F, 0.8691055472F, 0.8702230025F, 0.8713347503F, 
+			  0.8724407896F, 0.8735411194F, 0.8746357394F, 0.8757246489F, 
+			  0.8768078479F, 0.8778853364F, 0.8789571146F, 0.8800231832F, 
+			  0.8810835427F, 0.8821381942F, 0.8831871387F, 0.8842303777F, 
+			  0.8852679127F, 0.8862997456F, 0.8873258784F, 0.8883463132F, 
+			  0.8893610527F, 0.8903700994F, 0.8913734562F, 0.8923711263F, 
+			  0.8933631129F, 0.8943494196F, 0.8953300500F, 0.8963050083F, 
+			  0.8972742985F, 0.8982379249F, 0.8991958922F, 0.9001482052F, 
+			  0.9010948688F, 0.9020358883F, 0.9029712690F, 0.9039010165F, 
+			  0.9048251367F, 0.9057436357F, 0.9066565195F, 0.9075637946F, 
+			  0.9084654678F, 0.9093615456F, 0.9102520353F, 0.9111369440F, 
+			  0.9120162792F, 0.9128900484F, 0.9137582595F, 0.9146209204F, 
+			  0.9154780394F, 0.9163296248F, 0.9171756853F, 0.9180162296F, 
+			  0.9188512667F, 0.9196808057F, 0.9205048559F, 0.9213234270F, 
+			  0.9221365285F, 0.9229441704F, 0.9237463629F, 0.9245431160F, 
+			  0.9253344404F, 0.9261203465F, 0.9269008453F, 0.9276759477F, 
+			  0.9284456648F, 0.9292100080F, 0.9299689889F, 0.9307226190F, 
+			  0.9314709103F, 0.9322138747F, 0.9329515245F, 0.9336838721F, 
+			  0.9344109300F, 0.9351327108F, 0.9358492275F, 0.9365604931F, 
+			  0.9372665208F, 0.9379673239F, 0.9386629160F, 0.9393533107F, 
+			  0.9400385220F, 0.9407185637F, 0.9413934501F, 0.9420631954F, 
+			  0.9427278141F, 0.9433873208F, 0.9440417304F, 0.9446910576F, 
+			  0.9453353176F, 0.9459745255F, 0.9466086968F, 0.9472378469F, 
+			  0.9478619915F, 0.9484811463F, 0.9490953274F, 0.9497045506F, 
+			  0.9503088323F, 0.9509081888F, 0.9515026365F, 0.9520921921F, 
+			  0.9526768723F, 0.9532566940F, 0.9538316742F, 0.9544018300F, 
+			  0.9549671786F, 0.9555277375F, 0.9560835241F, 0.9566345562F, 
+			  0.9571808513F, 0.9577224275F, 0.9582593027F, 0.9587914949F, 
+			  0.9593190225F, 0.9598419038F, 0.9603601571F, 0.9608738012F, 
+			  0.9613828546F, 0.9618873361F, 0.9623872646F, 0.9628826591F, 
+			  0.9633735388F, 0.9638599227F, 0.9643418303F, 0.9648192808F, 
+			  0.9652922939F, 0.9657608890F, 0.9662250860F, 0.9666849046F, 
+			  0.9671403646F, 0.9675914861F, 0.9680382891F, 0.9684807937F, 
+			  0.9689190202F, 0.9693529890F, 0.9697827203F, 0.9702082347F, 
+			  0.9706295529F, 0.9710466953F, 0.9714596828F, 0.9718685362F, 
+			  0.9722732762F, 0.9726739240F, 0.9730705005F, 0.9734630267F, 
+			  0.9738515239F, 0.9742360134F, 0.9746165163F, 0.9749930540F, 
+			  0.9753656481F, 0.9757343198F, 0.9760990909F, 0.9764599829F, 
+			  0.9768170175F, 0.9771702164F, 0.9775196013F, 0.9778651941F, 
+			  0.9782070167F, 0.9785450909F, 0.9788794388F, 0.9792100824F, 
+			  0.9795370437F, 0.9798603449F, 0.9801800080F, 0.9804960554F, 
+			  0.9808085092F, 0.9811173916F, 0.9814227251F, 0.9817245318F, 
+			  0.9820228343F, 0.9823176549F, 0.9826090160F, 0.9828969402F, 
+			  0.9831814498F, 0.9834625674F, 0.9837403156F, 0.9840147169F, 
+			  0.9842857939F, 0.9845535692F, 0.9848180654F, 0.9850793052F, 
+			  0.9853373113F, 0.9855921062F, 0.9858437127F, 0.9860921535F, 
+			  0.9863374512F, 0.9865796287F, 0.9868187085F, 0.9870547136F, 
+			  0.9872876664F, 0.9875175899F, 0.9877445067F, 0.9879684396F, 
+			  0.9881894112F, 0.9884074444F, 0.9886225619F, 0.9888347863F, 
+			  0.9890441404F, 0.9892506468F, 0.9894543284F, 0.9896552077F, 
+			  0.9898533074F, 0.9900486502F, 0.9902412587F, 0.9904311555F, 
+			  0.9906183633F, 0.9908029045F, 0.9909848019F, 0.9911640779F, 
+			  0.9913407550F, 0.9915148557F, 0.9916864025F, 0.9918554179F, 
+			  0.9920219241F, 0.9921859437F, 0.9923474989F, 0.9925066120F, 
+			  0.9926633054F, 0.9928176012F, 0.9929695218F, 0.9931190891F, 
+			  0.9932663254F, 0.9934112527F, 0.9935538932F, 0.9936942686F, 
+			  0.9938324012F, 0.9939683126F, 0.9941020248F, 0.9942335597F, 
+			  0.9943629388F, 0.9944901841F, 0.9946153170F, 0.9947383593F, 
+			  0.9948593325F, 0.9949782579F, 0.9950951572F, 0.9952100516F, 
+			  0.9953229625F, 0.9954339111F, 0.9955429186F, 0.9956500062F, 
+			  0.9957551948F, 0.9958585056F, 0.9959599593F, 0.9960595769F, 
+			  0.9961573792F, 0.9962533869F, 0.9963476206F, 0.9964401009F, 
+			  0.9965308483F, 0.9966198833F, 0.9967072261F, 0.9967928971F, 
+			  0.9968769164F, 0.9969593041F, 0.9970400804F, 0.9971192651F, 
+			  0.9971968781F, 0.9972729391F, 0.9973474680F, 0.9974204842F, 
+			  0.9974920074F, 0.9975620569F, 0.9976306521F, 0.9976978122F, 
+			  0.9977635565F, 0.9978279039F, 0.9978908736F, 0.9979524842F, 
+			  0.9980127547F, 0.9980717037F, 0.9981293499F, 0.9981857116F, 
+			  0.9982408073F, 0.9982946554F, 0.9983472739F, 0.9983986810F, 
+			  0.9984488947F, 0.9984979328F, 0.9985458132F, 0.9985925534F, 
+			  0.9986381711F, 0.9986826838F, 0.9987261086F, 0.9987684630F, 
+			  0.9988097640F, 0.9988500286F, 0.9988892738F, 0.9989275163F, 
+			  0.9989647727F, 0.9990010597F, 0.9990363938F, 0.9990707911F, 
+			  0.9991042679F, 0.9991368404F, 0.9991685244F, 0.9991993358F, 
+			  0.9992292905F, 0.9992584038F, 0.9992866914F, 0.9993141686F, 
+			  0.9993408506F, 0.9993667526F, 0.9993918895F, 0.9994162761F, 
+			  0.9994399273F, 0.9994628576F, 0.9994850815F, 0.9995066133F, 
+			  0.9995274672F, 0.9995476574F, 0.9995671978F, 0.9995861021F, 
+			  0.9996043841F, 0.9996220573F, 0.9996391352F, 0.9996556310F, 
+			  0.9996715579F, 0.9996869288F, 0.9997017568F, 0.9997160543F, 
+			  0.9997298342F, 0.9997431088F, 0.9997558905F, 0.9997681914F, 
+			  0.9997800236F, 0.9997913990F, 0.9998023292F, 0.9998128261F, 
+			  0.9998229009F, 0.9998325650F, 0.9998418296F, 0.9998507058F, 
+			  0.9998592044F, 0.9998673362F, 0.9998751117F, 0.9998825415F, 
+			  0.9998896358F, 0.9998964047F, 0.9999028584F, 0.9999090066F, 
+			  0.9999148590F, 0.9999204253F, 0.9999257148F, 0.9999307368F, 
+			  0.9999355003F, 0.9999400144F, 0.9999442878F, 0.9999483293F, 
+			  0.9999521472F, 0.9999557499F, 0.9999591457F, 0.9999623426F, 
+			  0.9999653483F, 0.9999681708F, 0.9999708175F, 0.9999732959F, 
+			  0.9999756132F, 0.9999777765F, 0.9999797928F, 0.9999816688F, 
+			  0.9999834113F, 0.9999850266F, 0.9999865211F, 0.9999879009F, 
+			  0.9999891721F, 0.9999903405F, 0.9999914118F, 0.9999923914F, 
+			  0.9999932849F, 0.9999940972F, 0.9999948336F, 0.9999954989F, 
+			  0.9999960978F, 0.9999966349F, 0.9999971146F, 0.9999975411F, 
+			  0.9999979185F, 0.9999982507F, 0.9999985414F, 0.9999987944F, 
+			  0.9999990129F, 0.9999992003F, 0.9999993596F, 0.9999994939F, 
+			  0.9999996059F, 0.9999996981F, 0.9999997732F, 0.9999998333F, 
+			  0.9999998805F, 0.9999999170F, 0.9999999444F, 0.9999999643F, 
+			  0.9999999784F, 0.9999999878F, 0.9999999937F, 0.9999999972F, 
+			  0.9999999990F, 0.9999999997F, 1.0000000000F, 1.0000000000F, 
+			};
+	
+	static float[] vwin4096 = { // vwin4096[2048]
+			  0.0000002310F, 0.0000020791F, 0.0000057754F, 0.0000113197F, 
+			  0.0000187121F, 0.0000279526F, 0.0000390412F, 0.0000519777F, 
+			  0.0000667623F, 0.0000833949F, 0.0001018753F, 0.0001222036F, 
+			  0.0001443798F, 0.0001684037F, 0.0001942754F, 0.0002219947F, 
+			  0.0002515616F, 0.0002829761F, 0.0003162380F, 0.0003513472F, 
+			  0.0003883038F, 0.0004271076F, 0.0004677584F, 0.0005102563F, 
+			  0.0005546011F, 0.0006007928F, 0.0006488311F, 0.0006987160F, 
+			  0.0007504474F, 0.0008040251F, 0.0008594490F, 0.0009167191F, 
+			  0.0009758351F, 0.0010367969F, 0.0010996044F, 0.0011642574F, 
+			  0.0012307558F, 0.0012990994F, 0.0013692880F, 0.0014413216F, 
+			  0.0015151998F, 0.0015909226F, 0.0016684898F, 0.0017479011F, 
+			  0.0018291565F, 0.0019122556F, 0.0019971983F, 0.0020839845F, 
+			  0.0021726138F, 0.0022630861F, 0.0023554012F, 0.0024495588F, 
+			  0.0025455588F, 0.0026434008F, 0.0027430847F, 0.0028446103F, 
+			  0.0029479772F, 0.0030531853F, 0.0031602342F, 0.0032691238F, 
+			  0.0033798538F, 0.0034924239F, 0.0036068338F, 0.0037230833F, 
+			  0.0038411721F, 0.0039610999F, 0.0040828664F, 0.0042064714F, 
+			  0.0043319145F, 0.0044591954F, 0.0045883139F, 0.0047192696F, 
+			  0.0048520622F, 0.0049866914F, 0.0051231569F, 0.0052614583F, 
+			  0.0054015953F, 0.0055435676F, 0.0056873748F, 0.0058330166F, 
+			  0.0059804926F, 0.0061298026F, 0.0062809460F, 0.0064339226F, 
+			  0.0065887320F, 0.0067453738F, 0.0069038476F, 0.0070641531F, 
+			  0.0072262899F, 0.0073902575F, 0.0075560556F, 0.0077236838F, 
+			  0.0078931417F, 0.0080644288F, 0.0082375447F, 0.0084124891F, 
+			  0.0085892615F, 0.0087678614F, 0.0089482885F, 0.0091305422F, 
+			  0.0093146223F, 0.0095005281F, 0.0096882592F, 0.0098778153F, 
+			  0.0100691958F, 0.0102624002F, 0.0104574281F, 0.0106542791F, 
+			  0.0108529525F, 0.0110534480F, 0.0112557651F, 0.0114599032F, 
+			  0.0116658618F, 0.0118736405F, 0.0120832387F, 0.0122946560F, 
+			  0.0125078917F, 0.0127229454F, 0.0129398166F, 0.0131585046F, 
+			  0.0133790090F, 0.0136013292F, 0.0138254647F, 0.0140514149F, 
+			  0.0142791792F, 0.0145087572F, 0.0147401481F, 0.0149733515F, 
+			  0.0152083667F, 0.0154451932F, 0.0156838304F, 0.0159242777F, 
+			  0.0161665345F, 0.0164106001F, 0.0166564741F, 0.0169041557F, 
+			  0.0171536443F, 0.0174049393F, 0.0176580401F, 0.0179129461F, 
+			  0.0181696565F, 0.0184281708F, 0.0186884883F, 0.0189506084F, 
+			  0.0192145303F, 0.0194802535F, 0.0197477772F, 0.0200171008F, 
+			  0.0202882236F, 0.0205611449F, 0.0208358639F, 0.0211123801F, 
+			  0.0213906927F, 0.0216708011F, 0.0219527043F, 0.0222364019F, 
+			  0.0225218930F, 0.0228091769F, 0.0230982529F, 0.0233891203F, 
+			  0.0236817782F, 0.0239762259F, 0.0242724628F, 0.0245704880F, 
+			  0.0248703007F, 0.0251719002F, 0.0254752858F, 0.0257804565F, 
+			  0.0260874117F, 0.0263961506F, 0.0267066722F, 0.0270189760F, 
+			  0.0273330609F, 0.0276489263F, 0.0279665712F, 0.0282859949F, 
+			  0.0286071966F, 0.0289301753F, 0.0292549303F, 0.0295814607F, 
+			  0.0299097656F, 0.0302398442F, 0.0305716957F, 0.0309053191F, 
+			  0.0312407135F, 0.0315778782F, 0.0319168122F, 0.0322575145F, 
+			  0.0325999844F, 0.0329442209F, 0.0332902231F, 0.0336379900F, 
+			  0.0339875208F, 0.0343388146F, 0.0346918703F, 0.0350466871F, 
+			  0.0354032640F, 0.0357616000F, 0.0361216943F, 0.0364835458F, 
+			  0.0368471535F, 0.0372125166F, 0.0375796339F, 0.0379485046F, 
+			  0.0383191276F, 0.0386915020F, 0.0390656267F, 0.0394415008F, 
+			  0.0398191231F, 0.0401984927F, 0.0405796086F, 0.0409624698F, 
+			  0.0413470751F, 0.0417334235F, 0.0421215141F, 0.0425113457F, 
+			  0.0429029172F, 0.0432962277F, 0.0436912760F, 0.0440880610F, 
+			  0.0444865817F, 0.0448868370F, 0.0452888257F, 0.0456925468F, 
+			  0.0460979992F, 0.0465051816F, 0.0469140931F, 0.0473247325F, 
+			  0.0477370986F, 0.0481511902F, 0.0485670064F, 0.0489845458F, 
+			  0.0494038074F, 0.0498247899F, 0.0502474922F, 0.0506719131F, 
+			  0.0510980514F, 0.0515259060F, 0.0519554756F, 0.0523867590F, 
+			  0.0528197550F, 0.0532544624F, 0.0536908800F, 0.0541290066F, 
+			  0.0545688408F, 0.0550103815F, 0.0554536274F, 0.0558985772F, 
+			  0.0563452297F, 0.0567935837F, 0.0572436377F, 0.0576953907F, 
+			  0.0581488412F, 0.0586039880F, 0.0590608297F, 0.0595193651F, 
+			  0.0599795929F, 0.0604415117F, 0.0609051202F, 0.0613704170F, 
+			  0.0618374009F, 0.0623060704F, 0.0627764243F, 0.0632484611F, 
+			  0.0637221795F, 0.0641975781F, 0.0646746555F, 0.0651534104F, 
+			  0.0656338413F, 0.0661159469F, 0.0665997257F, 0.0670851763F, 
+			  0.0675722973F, 0.0680610873F, 0.0685515448F, 0.0690436684F, 
+			  0.0695374567F, 0.0700329081F, 0.0705300213F, 0.0710287947F, 
+			  0.0715292269F, 0.0720313163F, 0.0725350616F, 0.0730404612F, 
+			  0.0735475136F, 0.0740562172F, 0.0745665707F, 0.0750785723F, 
+			  0.0755922207F, 0.0761075143F, 0.0766244515F, 0.0771430307F, 
+			  0.0776632505F, 0.0781851092F, 0.0787086052F, 0.0792337371F, 
+			  0.0797605032F, 0.0802889018F, 0.0808189315F, 0.0813505905F, 
+			  0.0818838773F, 0.0824187903F, 0.0829553277F, 0.0834934881F, 
+			  0.0840332697F, 0.0845746708F, 0.0851176899F, 0.0856623252F, 
+			  0.0862085751F, 0.0867564379F, 0.0873059119F, 0.0878569954F, 
+			  0.0884096867F, 0.0889639840F, 0.0895198858F, 0.0900773902F, 
+			  0.0906364955F, 0.0911972000F, 0.0917595019F, 0.0923233995F, 
+			  0.0928888909F, 0.0934559745F, 0.0940246485F, 0.0945949110F, 
+			  0.0951667604F, 0.0957401946F, 0.0963152121F, 0.0968918109F, 
+			  0.0974699893F, 0.0980497454F, 0.0986310773F, 0.0992139832F, 
+			  0.0997984614F, 0.1003845098F, 0.1009721267F, 0.1015613101F, 
+			  0.1021520582F, 0.1027443692F, 0.1033382410F, 0.1039336718F, 
+			  0.1045306597F, 0.1051292027F, 0.1057292990F, 0.1063309466F, 
+			  0.1069341435F, 0.1075388878F, 0.1081451776F, 0.1087530108F, 
+			  0.1093623856F, 0.1099732998F, 0.1105857516F, 0.1111997389F, 
+			  0.1118152597F, 0.1124323121F, 0.1130508939F, 0.1136710032F, 
+			  0.1142926379F, 0.1149157960F, 0.1155404755F, 0.1161666742F, 
+			  0.1167943901F, 0.1174236211F, 0.1180543652F, 0.1186866202F, 
+			  0.1193203841F, 0.1199556548F, 0.1205924300F, 0.1212307078F, 
+			  0.1218704860F, 0.1225117624F, 0.1231545349F, 0.1237988013F, 
+			  0.1244445596F, 0.1250918074F, 0.1257405427F, 0.1263907632F, 
+			  0.1270424667F, 0.1276956512F, 0.1283503142F, 0.1290064537F, 
+			  0.1296640674F, 0.1303231530F, 0.1309837084F, 0.1316457312F, 
+			  0.1323092193F, 0.1329741703F, 0.1336405820F, 0.1343084520F, 
+			  0.1349777782F, 0.1356485582F, 0.1363207897F, 0.1369944704F, 
+			  0.1376695979F, 0.1383461700F, 0.1390241842F, 0.1397036384F, 
+			  0.1403845300F, 0.1410668567F, 0.1417506162F, 0.1424358061F, 
+			  0.1431224240F, 0.1438104674F, 0.1444999341F, 0.1451908216F, 
+			  0.1458831274F, 0.1465768492F, 0.1472719844F, 0.1479685308F, 
+			  0.1486664857F, 0.1493658468F, 0.1500666115F, 0.1507687775F, 
+			  0.1514723422F, 0.1521773031F, 0.1528836577F, 0.1535914035F, 
+			  0.1543005380F, 0.1550110587F, 0.1557229631F, 0.1564362485F, 
+			  0.1571509124F, 0.1578669524F, 0.1585843657F, 0.1593031499F, 
+			  0.1600233024F, 0.1607448205F, 0.1614677017F, 0.1621919433F, 
+			  0.1629175428F, 0.1636444975F, 0.1643728047F, 0.1651024619F, 
+			  0.1658334665F, 0.1665658156F, 0.1672995067F, 0.1680345371F, 
+			  0.1687709041F, 0.1695086050F, 0.1702476372F, 0.1709879978F, 
+			  0.1717296843F, 0.1724726938F, 0.1732170237F, 0.1739626711F, 
+			  0.1747096335F, 0.1754579079F, 0.1762074916F, 0.1769583819F, 
+			  0.1777105760F, 0.1784640710F, 0.1792188642F, 0.1799749529F, 
+			  0.1807323340F, 0.1814910049F, 0.1822509628F, 0.1830122046F, 
+			  0.1837747277F, 0.1845385292F, 0.1853036062F, 0.1860699558F, 
+			  0.1868375751F, 0.1876064613F, 0.1883766114F, 0.1891480226F, 
+			  0.1899206919F, 0.1906946164F, 0.1914697932F, 0.1922462194F, 
+			  0.1930238919F, 0.1938028079F, 0.1945829643F, 0.1953643583F, 
+			  0.1961469868F, 0.1969308468F, 0.1977159353F, 0.1985022494F, 
+			  0.1992897859F, 0.2000785420F, 0.2008685145F, 0.2016597005F, 
+			  0.2024520968F, 0.2032457005F, 0.2040405084F, 0.2048365175F, 
+			  0.2056337247F, 0.2064321269F, 0.2072317211F, 0.2080325041F, 
+			  0.2088344727F, 0.2096376240F, 0.2104419547F, 0.2112474618F, 
+			  0.2120541420F, 0.2128619923F, 0.2136710094F, 0.2144811902F, 
+			  0.2152925315F, 0.2161050301F, 0.2169186829F, 0.2177334866F, 
+			  0.2185494381F, 0.2193665340F, 0.2201847712F, 0.2210041465F, 
+			  0.2218246565F, 0.2226462981F, 0.2234690680F, 0.2242929629F, 
+			  0.2251179796F, 0.2259441147F, 0.2267713650F, 0.2275997272F, 
+			  0.2284291979F, 0.2292597739F, 0.2300914518F, 0.2309242283F, 
+			  0.2317581001F, 0.2325930638F, 0.2334291160F, 0.2342662534F, 
+			  0.2351044727F, 0.2359437703F, 0.2367841431F, 0.2376255875F, 
+			  0.2384681001F, 0.2393116776F, 0.2401563165F, 0.2410020134F, 
+			  0.2418487649F, 0.2426965675F, 0.2435454178F, 0.2443953122F, 
+			  0.2452462474F, 0.2460982199F, 0.2469512262F, 0.2478052628F, 
+			  0.2486603262F, 0.2495164129F, 0.2503735194F, 0.2512316421F, 
+			  0.2520907776F, 0.2529509222F, 0.2538120726F, 0.2546742250F, 
+			  0.2555373760F, 0.2564015219F, 0.2572666593F, 0.2581327845F, 
+			  0.2589998939F, 0.2598679840F, 0.2607370510F, 0.2616070916F, 
+			  0.2624781019F, 0.2633500783F, 0.2642230173F, 0.2650969152F, 
+			  0.2659717684F, 0.2668475731F, 0.2677243257F, 0.2686020226F, 
+			  0.2694806601F, 0.2703602344F, 0.2712407419F, 0.2721221789F, 
+			  0.2730045417F, 0.2738878265F, 0.2747720297F, 0.2756571474F, 
+			  0.2765431760F, 0.2774301117F, 0.2783179508F, 0.2792066895F, 
+			  0.2800963240F, 0.2809868505F, 0.2818782654F, 0.2827705647F, 
+			  0.2836637447F, 0.2845578016F, 0.2854527315F, 0.2863485307F, 
+			  0.2872451953F, 0.2881427215F, 0.2890411055F, 0.2899403433F, 
+			  0.2908404312F, 0.2917413654F, 0.2926431418F, 0.2935457567F, 
+			  0.2944492061F, 0.2953534863F, 0.2962585932F, 0.2971645230F, 
+			  0.2980712717F, 0.2989788356F, 0.2998872105F, 0.3007963927F, 
+			  0.3017063781F, 0.3026171629F, 0.3035287430F, 0.3044411145F, 
+			  0.3053542736F, 0.3062682161F, 0.3071829381F, 0.3080984356F, 
+			  0.3090147047F, 0.3099317413F, 0.3108495414F, 0.3117681011F, 
+			  0.3126874163F, 0.3136074830F, 0.3145282972F, 0.3154498548F, 
+			  0.3163721517F, 0.3172951841F, 0.3182189477F, 0.3191434385F, 
+			  0.3200686525F, 0.3209945856F, 0.3219212336F, 0.3228485927F, 
+			  0.3237766585F, 0.3247054271F, 0.3256348943F, 0.3265650560F, 
+			  0.3274959081F, 0.3284274465F, 0.3293596671F, 0.3302925657F, 
+			  0.3312261382F, 0.3321603804F, 0.3330952882F, 0.3340308574F, 
+			  0.3349670838F, 0.3359039634F, 0.3368414919F, 0.3377796651F, 
+			  0.3387184789F, 0.3396579290F, 0.3405980113F, 0.3415387216F, 
+			  0.3424800556F, 0.3434220091F, 0.3443645779F, 0.3453077578F, 
+			  0.3462515446F, 0.3471959340F, 0.3481409217F, 0.3490865036F, 
+			  0.3500326754F, 0.3509794328F, 0.3519267715F, 0.3528746873F, 
+			  0.3538231759F, 0.3547722330F, 0.3557218544F, 0.3566720357F, 
+			  0.3576227727F, 0.3585740610F, 0.3595258964F, 0.3604782745F, 
+			  0.3614311910F, 0.3623846417F, 0.3633386221F, 0.3642931280F, 
+			  0.3652481549F, 0.3662036987F, 0.3671597548F, 0.3681163191F, 
+			  0.3690733870F, 0.3700309544F, 0.3709890167F, 0.3719475696F, 
+			  0.3729066089F, 0.3738661299F, 0.3748261285F, 0.3757866002F, 
+			  0.3767475406F, 0.3777089453F, 0.3786708100F, 0.3796331302F, 
+			  0.3805959014F, 0.3815591194F, 0.3825227796F, 0.3834868777F, 
+			  0.3844514093F, 0.3854163698F, 0.3863817549F, 0.3873475601F, 
+			  0.3883137810F, 0.3892804131F, 0.3902474521F, 0.3912148933F, 
+			  0.3921827325F, 0.3931509650F, 0.3941195865F, 0.3950885925F, 
+			  0.3960579785F, 0.3970277400F, 0.3979978725F, 0.3989683716F, 
+			  0.3999392328F, 0.4009104516F, 0.4018820234F, 0.4028539438F, 
+			  0.4038262084F, 0.4047988125F, 0.4057717516F, 0.4067450214F, 
+			  0.4077186172F, 0.4086925345F, 0.4096667688F, 0.4106413155F, 
+			  0.4116161703F, 0.4125913284F, 0.4135667854F, 0.4145425368F, 
+			  0.4155185780F, 0.4164949044F, 0.4174715116F, 0.4184483949F, 
+			  0.4194255498F, 0.4204029718F, 0.4213806563F, 0.4223585987F, 
+			  0.4233367946F, 0.4243152392F, 0.4252939281F, 0.4262728566F, 
+			  0.4272520202F, 0.4282314144F, 0.4292110345F, 0.4301908760F, 
+			  0.4311709343F, 0.4321512047F, 0.4331316828F, 0.4341123639F, 
+			  0.4350932435F, 0.4360743168F, 0.4370555794F, 0.4380370267F, 
+			  0.4390186540F, 0.4400004567F, 0.4409824303F, 0.4419645701F, 
+			  0.4429468716F, 0.4439293300F, 0.4449119409F, 0.4458946996F, 
+			  0.4468776014F, 0.4478606418F, 0.4488438162F, 0.4498271199F, 
+			  0.4508105483F, 0.4517940967F, 0.4527777607F, 0.4537615355F, 
+			  0.4547454165F, 0.4557293991F, 0.4567134786F, 0.4576976505F, 
+			  0.4586819101F, 0.4596662527F, 0.4606506738F, 0.4616351687F, 
+			  0.4626197328F, 0.4636043614F, 0.4645890499F, 0.4655737936F, 
+			  0.4665585880F, 0.4675434284F, 0.4685283101F, 0.4695132286F, 
+			  0.4704981791F, 0.4714831570F, 0.4724681577F, 0.4734531766F, 
+			  0.4744382089F, 0.4754232501F, 0.4764082956F, 0.4773933406F, 
+			  0.4783783806F, 0.4793634108F, 0.4803484267F, 0.4813334237F, 
+			  0.4823183969F, 0.4833033419F, 0.4842882540F, 0.4852731285F, 
+			  0.4862579608F, 0.4872427462F, 0.4882274802F, 0.4892121580F, 
+			  0.4901967751F, 0.4911813267F, 0.4921658083F, 0.4931502151F, 
+			  0.4941345427F, 0.4951187863F, 0.4961029412F, 0.4970870029F, 
+			  0.4980709667F, 0.4990548280F, 0.5000385822F, 0.5010222245F, 
+			  0.5020057505F, 0.5029891553F, 0.5039724345F, 0.5049555834F, 
+			  0.5059385973F, 0.5069214716F, 0.5079042018F, 0.5088867831F, 
+			  0.5098692110F, 0.5108514808F, 0.5118335879F, 0.5128155277F, 
+			  0.5137972956F, 0.5147788869F, 0.5157602971F, 0.5167415215F, 
+			  0.5177225555F, 0.5187033945F, 0.5196840339F, 0.5206644692F, 
+			  0.5216446956F, 0.5226247086F, 0.5236045035F, 0.5245840759F, 
+			  0.5255634211F, 0.5265425344F, 0.5275214114F, 0.5285000474F, 
+			  0.5294784378F, 0.5304565781F, 0.5314344637F, 0.5324120899F, 
+			  0.5333894522F, 0.5343665461F, 0.5353433670F, 0.5363199102F, 
+			  0.5372961713F, 0.5382721457F, 0.5392478287F, 0.5402232159F, 
+			  0.5411983027F, 0.5421730845F, 0.5431475569F, 0.5441217151F, 
+			  0.5450955548F, 0.5460690714F, 0.5470422602F, 0.5480151169F, 
+			  0.5489876368F, 0.5499598155F, 0.5509316484F, 0.5519031310F, 
+			  0.5528742587F, 0.5538450271F, 0.5548154317F, 0.5557854680F, 
+			  0.5567551314F, 0.5577244174F, 0.5586933216F, 0.5596618395F, 
+			  0.5606299665F, 0.5615976983F, 0.5625650302F, 0.5635319580F, 
+			  0.5644984770F, 0.5654645828F, 0.5664302709F, 0.5673955370F, 
+			  0.5683603765F, 0.5693247850F, 0.5702887580F, 0.5712522912F, 
+			  0.5722153800F, 0.5731780200F, 0.5741402069F, 0.5751019362F, 
+			  0.5760632034F, 0.5770240042F, 0.5779843341F, 0.5789441889F, 
+			  0.5799035639F, 0.5808624549F, 0.5818208575F, 0.5827787673F, 
+			  0.5837361800F, 0.5846930910F, 0.5856494961F, 0.5866053910F, 
+			  0.5875607712F, 0.5885156324F, 0.5894699703F, 0.5904237804F, 
+			  0.5913770586F, 0.5923298004F, 0.5932820016F, 0.5942336578F, 
+			  0.5951847646F, 0.5961353179F, 0.5970853132F, 0.5980347464F, 
+			  0.5989836131F, 0.5999319090F, 0.6008796298F, 0.6018267713F, 
+			  0.6027733292F, 0.6037192993F, 0.6046646773F, 0.6056094589F, 
+			  0.6065536400F, 0.6074972162F, 0.6084401833F, 0.6093825372F, 
+			  0.6103242736F, 0.6112653884F, 0.6122058772F, 0.6131457359F, 
+			  0.6140849604F, 0.6150235464F, 0.6159614897F, 0.6168987862F, 
+			  0.6178354318F, 0.6187714223F, 0.6197067535F, 0.6206414213F, 
+			  0.6215754215F, 0.6225087501F, 0.6234414028F, 0.6243733757F, 
+			  0.6253046646F, 0.6262352654F, 0.6271651739F, 0.6280943862F, 
+			  0.6290228982F, 0.6299507057F, 0.6308778048F, 0.6318041913F, 
+			  0.6327298612F, 0.6336548105F, 0.6345790352F, 0.6355025312F, 
+			  0.6364252945F, 0.6373473211F, 0.6382686070F, 0.6391891483F, 
+			  0.6401089409F, 0.6410279808F, 0.6419462642F, 0.6428637869F, 
+			  0.6437805452F, 0.6446965350F, 0.6456117524F, 0.6465261935F, 
+			  0.6474398544F, 0.6483527311F, 0.6492648197F, 0.6501761165F, 
+			  0.6510866174F, 0.6519963186F, 0.6529052162F, 0.6538133064F, 
+			  0.6547205854F, 0.6556270492F, 0.6565326941F, 0.6574375162F, 
+			  0.6583415117F, 0.6592446769F, 0.6601470079F, 0.6610485009F, 
+			  0.6619491521F, 0.6628489578F, 0.6637479143F, 0.6646460177F, 
+			  0.6655432643F, 0.6664396505F, 0.6673351724F, 0.6682298264F, 
+			  0.6691236087F, 0.6700165157F, 0.6709085436F, 0.6717996889F, 
+			  0.6726899478F, 0.6735793167F, 0.6744677918F, 0.6753553697F, 
+			  0.6762420466F, 0.6771278190F, 0.6780126832F, 0.6788966357F, 
+			  0.6797796728F, 0.6806617909F, 0.6815429866F, 0.6824232562F, 
+			  0.6833025961F, 0.6841810030F, 0.6850584731F, 0.6859350031F, 
+			  0.6868105894F, 0.6876852284F, 0.6885589168F, 0.6894316510F, 
+			  0.6903034275F, 0.6911742430F, 0.6920440939F, 0.6929129769F, 
+			  0.6937808884F, 0.6946478251F, 0.6955137837F, 0.6963787606F, 
+			  0.6972427525F, 0.6981057560F, 0.6989677678F, 0.6998287845F, 
+			  0.7006888028F, 0.7015478194F, 0.7024058309F, 0.7032628340F, 
+			  0.7041188254F, 0.7049738019F, 0.7058277601F, 0.7066806969F, 
+			  0.7075326089F, 0.7083834929F, 0.7092333457F, 0.7100821640F, 
+			  0.7109299447F, 0.7117766846F, 0.7126223804F, 0.7134670291F, 
+			  0.7143106273F, 0.7151531721F, 0.7159946602F, 0.7168350885F, 
+			  0.7176744539F, 0.7185127534F, 0.7193499837F, 0.7201861418F, 
+			  0.7210212247F, 0.7218552293F, 0.7226881526F, 0.7235199914F, 
+			  0.7243507428F, 0.7251804039F, 0.7260089715F, 0.7268364426F, 
+			  0.7276628144F, 0.7284880839F, 0.7293122481F, 0.7301353040F, 
+			  0.7309572487F, 0.7317780794F, 0.7325977930F, 0.7334163868F, 
+			  0.7342338579F, 0.7350502033F, 0.7358654202F, 0.7366795059F, 
+			  0.7374924573F, 0.7383042718F, 0.7391149465F, 0.7399244787F, 
+			  0.7407328655F, 0.7415401041F, 0.7423461920F, 0.7431511261F, 
+			  0.7439549040F, 0.7447575227F, 0.7455589797F, 0.7463592723F, 
+			  0.7471583976F, 0.7479563532F, 0.7487531363F, 0.7495487443F, 
+			  0.7503431745F, 0.7511364244F, 0.7519284913F, 0.7527193726F, 
+			  0.7535090658F, 0.7542975683F, 0.7550848776F, 0.7558709910F, 
+			  0.7566559062F, 0.7574396205F, 0.7582221314F, 0.7590034366F, 
+			  0.7597835334F, 0.7605624194F, 0.7613400923F, 0.7621165495F, 
+			  0.7628917886F, 0.7636658072F, 0.7644386030F, 0.7652101735F, 
+			  0.7659805164F, 0.7667496292F, 0.7675175098F, 0.7682841556F, 
+			  0.7690495645F, 0.7698137341F, 0.7705766622F, 0.7713383463F, 
+			  0.7720987844F, 0.7728579741F, 0.7736159132F, 0.7743725994F, 
+			  0.7751280306F, 0.7758822046F, 0.7766351192F, 0.7773867722F, 
+			  0.7781371614F, 0.7788862848F, 0.7796341401F, 0.7803807253F, 
+			  0.7811260383F, 0.7818700769F, 0.7826128392F, 0.7833543230F, 
+			  0.7840945263F, 0.7848334471F, 0.7855710833F, 0.7863074330F, 
+			  0.7870424941F, 0.7877762647F, 0.7885087428F, 0.7892399264F, 
+			  0.7899698137F, 0.7906984026F, 0.7914256914F, 0.7921516780F, 
+			  0.7928763607F, 0.7935997375F, 0.7943218065F, 0.7950425661F, 
+			  0.7957620142F, 0.7964801492F, 0.7971969692F, 0.7979124724F, 
+			  0.7986266570F, 0.7993395214F, 0.8000510638F, 0.8007612823F, 
+			  0.8014701754F, 0.8021777413F, 0.8028839784F, 0.8035888849F, 
+			  0.8042924592F, 0.8049946997F, 0.8056956048F, 0.8063951727F, 
+			  0.8070934020F, 0.8077902910F, 0.8084858381F, 0.8091800419F, 
+			  0.8098729007F, 0.8105644130F, 0.8112545774F, 0.8119433922F, 
+			  0.8126308561F, 0.8133169676F, 0.8140017251F, 0.8146851272F, 
+			  0.8153671726F, 0.8160478598F, 0.8167271874F, 0.8174051539F, 
+			  0.8180817582F, 0.8187569986F, 0.8194308741F, 0.8201033831F, 
+			  0.8207745244F, 0.8214442966F, 0.8221126986F, 0.8227797290F, 
+			  0.8234453865F, 0.8241096700F, 0.8247725781F, 0.8254341097F, 
+			  0.8260942636F, 0.8267530385F, 0.8274104334F, 0.8280664470F, 
+			  0.8287210782F, 0.8293743259F, 0.8300261889F, 0.8306766662F, 
+			  0.8313257566F, 0.8319734591F, 0.8326197727F, 0.8332646963F, 
+			  0.8339082288F, 0.8345503692F, 0.8351911167F, 0.8358304700F, 
+			  0.8364684284F, 0.8371049907F, 0.8377401562F, 0.8383739238F, 
+			  0.8390062927F, 0.8396372618F, 0.8402668305F, 0.8408949977F, 
+			  0.8415217626F, 0.8421471245F, 0.8427710823F, 0.8433936354F, 
+			  0.8440147830F, 0.8446345242F, 0.8452528582F, 0.8458697844F, 
+			  0.8464853020F, 0.8470994102F, 0.8477121084F, 0.8483233958F, 
+			  0.8489332718F, 0.8495417356F, 0.8501487866F, 0.8507544243F, 
+			  0.8513586479F, 0.8519614568F, 0.8525628505F, 0.8531628283F, 
+			  0.8537613897F, 0.8543585341F, 0.8549542611F, 0.8555485699F, 
+			  0.8561414603F, 0.8567329315F, 0.8573229832F, 0.8579116149F, 
+			  0.8584988262F, 0.8590846165F, 0.8596689855F, 0.8602519327F, 
+			  0.8608334577F, 0.8614135603F, 0.8619922399F, 0.8625694962F, 
+			  0.8631453289F, 0.8637197377F, 0.8642927222F, 0.8648642821F, 
+			  0.8654344172F, 0.8660031272F, 0.8665704118F, 0.8671362708F, 
+			  0.8677007039F, 0.8682637109F, 0.8688252917F, 0.8693854460F, 
+			  0.8699441737F, 0.8705014745F, 0.8710573485F, 0.8716117953F, 
+			  0.8721648150F, 0.8727164073F, 0.8732665723F, 0.8738153098F, 
+			  0.8743626197F, 0.8749085021F, 0.8754529569F, 0.8759959840F, 
+			  0.8765375835F, 0.8770777553F, 0.8776164996F, 0.8781538162F, 
+			  0.8786897054F, 0.8792241670F, 0.8797572013F, 0.8802888082F, 
+			  0.8808189880F, 0.8813477407F, 0.8818750664F, 0.8824009653F, 
+			  0.8829254375F, 0.8834484833F, 0.8839701028F, 0.8844902961F, 
+			  0.8850090636F, 0.8855264054F, 0.8860423218F, 0.8865568131F, 
+			  0.8870698794F, 0.8875815212F, 0.8880917386F, 0.8886005319F, 
+			  0.8891079016F, 0.8896138479F, 0.8901183712F, 0.8906214719F, 
+			  0.8911231503F, 0.8916234067F, 0.8921222417F, 0.8926196556F, 
+			  0.8931156489F, 0.8936102219F, 0.8941033752F, 0.8945951092F, 
+			  0.8950854244F, 0.8955743212F, 0.8960618003F, 0.8965478621F, 
+			  0.8970325071F, 0.8975157359F, 0.8979975490F, 0.8984779471F, 
+			  0.8989569307F, 0.8994345004F, 0.8999106568F, 0.9003854005F, 
+			  0.9008587323F, 0.9013306526F, 0.9018011623F, 0.9022702619F, 
+			  0.9027379521F, 0.9032042337F, 0.9036691074F, 0.9041325739F, 
+			  0.9045946339F, 0.9050552882F, 0.9055145376F, 0.9059723828F, 
+			  0.9064288246F, 0.9068838638F, 0.9073375013F, 0.9077897379F, 
+			  0.9082405743F, 0.9086900115F, 0.9091380503F, 0.9095846917F, 
+			  0.9100299364F, 0.9104737854F, 0.9109162397F, 0.9113573001F, 
+			  0.9117969675F, 0.9122352430F, 0.9126721275F, 0.9131076219F, 
+			  0.9135417273F, 0.9139744447F, 0.9144057750F, 0.9148357194F, 
+			  0.9152642787F, 0.9156914542F, 0.9161172468F, 0.9165416576F, 
+			  0.9169646877F, 0.9173863382F, 0.9178066102F, 0.9182255048F, 
+			  0.9186430232F, 0.9190591665F, 0.9194739359F, 0.9198873324F, 
+			  0.9202993574F, 0.9207100120F, 0.9211192973F, 0.9215272147F, 
+			  0.9219337653F, 0.9223389504F, 0.9227427713F, 0.9231452290F, 
+			  0.9235463251F, 0.9239460607F, 0.9243444371F, 0.9247414557F, 
+			  0.9251371177F, 0.9255314245F, 0.9259243774F, 0.9263159778F, 
+			  0.9267062270F, 0.9270951264F, 0.9274826774F, 0.9278688814F, 
+			  0.9282537398F, 0.9286372540F, 0.9290194254F, 0.9294002555F, 
+			  0.9297797458F, 0.9301578976F, 0.9305347125F, 0.9309101919F, 
+			  0.9312843373F, 0.9316571503F, 0.9320286323F, 0.9323987849F, 
+			  0.9327676097F, 0.9331351080F, 0.9335012816F, 0.9338661320F, 
+			  0.9342296607F, 0.9345918694F, 0.9349527596F, 0.9353123330F, 
+			  0.9356705911F, 0.9360275357F, 0.9363831683F, 0.9367374905F, 
+			  0.9370905042F, 0.9374422108F, 0.9377926122F, 0.9381417099F, 
+			  0.9384895057F, 0.9388360014F, 0.9391811985F, 0.9395250989F, 
+			  0.9398677043F, 0.9402090165F, 0.9405490371F, 0.9408877680F, 
+			  0.9412252110F, 0.9415613678F, 0.9418962402F, 0.9422298301F, 
+			  0.9425621392F, 0.9428931695F, 0.9432229226F, 0.9435514005F, 
+			  0.9438786050F, 0.9442045381F, 0.9445292014F, 0.9448525971F, 
+			  0.9451747268F, 0.9454955926F, 0.9458151963F, 0.9461335399F, 
+			  0.9464506253F, 0.9467664545F, 0.9470810293F, 0.9473943517F, 
+			  0.9477064238F, 0.9480172474F, 0.9483268246F, 0.9486351573F, 
+			  0.9489422475F, 0.9492480973F, 0.9495527087F, 0.9498560837F, 
+			  0.9501582243F, 0.9504591325F, 0.9507588105F, 0.9510572603F, 
+			  0.9513544839F, 0.9516504834F, 0.9519452609F, 0.9522388186F, 
+			  0.9525311584F, 0.9528222826F, 0.9531121932F, 0.9534008923F, 
+			  0.9536883821F, 0.9539746647F, 0.9542597424F, 0.9545436171F, 
+			  0.9548262912F, 0.9551077667F, 0.9553880459F, 0.9556671309F, 
+			  0.9559450239F, 0.9562217272F, 0.9564972429F, 0.9567715733F, 
+			  0.9570447206F, 0.9573166871F, 0.9575874749F, 0.9578570863F, 
+			  0.9581255236F, 0.9583927890F, 0.9586588849F, 0.9589238134F, 
+			  0.9591875769F, 0.9594501777F, 0.9597116180F, 0.9599719003F, 
+			  0.9602310267F, 0.9604889995F, 0.9607458213F, 0.9610014942F, 
+			  0.9612560206F, 0.9615094028F, 0.9617616433F, 0.9620127443F, 
+			  0.9622627083F, 0.9625115376F, 0.9627592345F, 0.9630058016F, 
+			  0.9632512411F, 0.9634955555F, 0.9637387471F, 0.9639808185F, 
+			  0.9642217720F, 0.9644616100F, 0.9647003349F, 0.9649379493F, 
+			  0.9651744556F, 0.9654098561F, 0.9656441534F, 0.9658773499F, 
+			  0.9661094480F, 0.9663404504F, 0.9665703593F, 0.9667991774F, 
+			  0.9670269071F, 0.9672535509F, 0.9674791114F, 0.9677035909F, 
+			  0.9679269921F, 0.9681493174F, 0.9683705694F, 0.9685907506F, 
+			  0.9688098636F, 0.9690279108F, 0.9692448948F, 0.9694608182F, 
+			  0.9696756836F, 0.9698894934F, 0.9701022503F, 0.9703139569F, 
+			  0.9705246156F, 0.9707342291F, 0.9709428000F, 0.9711503309F, 
+			  0.9713568243F, 0.9715622829F, 0.9717667093F, 0.9719701060F, 
+			  0.9721724757F, 0.9723738210F, 0.9725741446F, 0.9727734490F, 
+			  0.9729717369F, 0.9731690109F, 0.9733652737F, 0.9735605279F, 
+			  0.9737547762F, 0.9739480212F, 0.9741402656F, 0.9743315120F, 
+			  0.9745217631F, 0.9747110216F, 0.9748992901F, 0.9750865714F, 
+			  0.9752728681F, 0.9754581829F, 0.9756425184F, 0.9758258775F, 
+			  0.9760082627F, 0.9761896768F, 0.9763701224F, 0.9765496024F, 
+			  0.9767281193F, 0.9769056760F, 0.9770822751F, 0.9772579193F, 
+			  0.9774326114F, 0.9776063542F, 0.9777791502F, 0.9779510023F, 
+			  0.9781219133F, 0.9782918858F, 0.9784609226F, 0.9786290264F, 
+			  0.9787962000F, 0.9789624461F, 0.9791277676F, 0.9792921671F, 
+			  0.9794556474F, 0.9796182113F, 0.9797798615F, 0.9799406009F, 
+			  0.9801004321F, 0.9802593580F, 0.9804173813F, 0.9805745049F, 
+			  0.9807307314F, 0.9808860637F, 0.9810405046F, 0.9811940568F, 
+			  0.9813467232F, 0.9814985065F, 0.9816494095F, 0.9817994351F, 
+			  0.9819485860F, 0.9820968650F, 0.9822442750F, 0.9823908186F, 
+			  0.9825364988F, 0.9826813184F, 0.9828252801F, 0.9829683868F, 
+			  0.9831106413F, 0.9832520463F, 0.9833926048F, 0.9835323195F, 
+			  0.9836711932F, 0.9838092288F, 0.9839464291F, 0.9840827969F, 
+			  0.9842183351F, 0.9843530464F, 0.9844869337F, 0.9846199998F, 
+			  0.9847522475F, 0.9848836798F, 0.9850142993F, 0.9851441090F, 
+			  0.9852731117F, 0.9854013101F, 0.9855287073F, 0.9856553058F, 
+			  0.9857811087F, 0.9859061188F, 0.9860303388F, 0.9861537717F, 
+			  0.9862764202F, 0.9863982872F, 0.9865193756F, 0.9866396882F, 
+			  0.9867592277F, 0.9868779972F, 0.9869959993F, 0.9871132370F, 
+			  0.9872297131F, 0.9873454304F, 0.9874603918F, 0.9875746001F, 
+			  0.9876880581F, 0.9878007688F, 0.9879127348F, 0.9880239592F, 
+			  0.9881344447F, 0.9882441941F, 0.9883532104F, 0.9884614962F, 
+			  0.9885690546F, 0.9886758883F, 0.9887820001F, 0.9888873930F, 
+			  0.9889920697F, 0.9890960331F, 0.9891992859F, 0.9893018312F, 
+			  0.9894036716F, 0.9895048100F, 0.9896052493F, 0.9897049923F, 
+			  0.9898040418F, 0.9899024006F, 0.9900000717F, 0.9900970577F, 
+			  0.9901933616F, 0.9902889862F, 0.9903839343F, 0.9904782087F, 
+			  0.9905718122F, 0.9906647477F, 0.9907570180F, 0.9908486259F, 
+			  0.9909395742F, 0.9910298658F, 0.9911195034F, 0.9912084899F, 
+			  0.9912968281F, 0.9913845208F, 0.9914715708F, 0.9915579810F, 
+			  0.9916437540F, 0.9917288928F, 0.9918134001F, 0.9918972788F, 
+			  0.9919805316F, 0.9920631613F, 0.9921451707F, 0.9922265626F, 
+			  0.9923073399F, 0.9923875052F, 0.9924670615F, 0.9925460114F, 
+			  0.9926243577F, 0.9927021033F, 0.9927792508F, 0.9928558032F, 
+			  0.9929317631F, 0.9930071333F, 0.9930819167F, 0.9931561158F, 
+			  0.9932297337F, 0.9933027728F, 0.9933752362F, 0.9934471264F, 
+			  0.9935184462F, 0.9935891985F, 0.9936593859F, 0.9937290112F, 
+			  0.9937980771F, 0.9938665864F, 0.9939345418F, 0.9940019460F, 
+			  0.9940688018F, 0.9941351118F, 0.9942008789F, 0.9942661057F, 
+			  0.9943307950F, 0.9943949494F, 0.9944585717F, 0.9945216645F, 
+			  0.9945842307F, 0.9946462728F, 0.9947077936F, 0.9947687957F, 
+			  0.9948292820F, 0.9948892550F, 0.9949487174F, 0.9950076719F, 
+			  0.9950661212F, 0.9951240679F, 0.9951815148F, 0.9952384645F, 
+			  0.9952949196F, 0.9953508828F, 0.9954063568F, 0.9954613442F, 
+			  0.9955158476F, 0.9955698697F, 0.9956234132F, 0.9956764806F, 
+			  0.9957290746F, 0.9957811978F, 0.9958328528F, 0.9958840423F, 
+			  0.9959347688F, 0.9959850351F, 0.9960348435F, 0.9960841969F, 
+			  0.9961330977F, 0.9961815486F, 0.9962295521F, 0.9962771108F, 
+			  0.9963242274F, 0.9963709043F, 0.9964171441F, 0.9964629494F, 
+			  0.9965083228F, 0.9965532668F, 0.9965977840F, 0.9966418768F, 
+			  0.9966855479F, 0.9967287998F, 0.9967716350F, 0.9968140559F, 
+			  0.9968560653F, 0.9968976655F, 0.9969388591F, 0.9969796485F, 
+			  0.9970200363F, 0.9970600250F, 0.9970996170F, 0.9971388149F, 
+			  0.9971776211F, 0.9972160380F, 0.9972540683F, 0.9972917142F, 
+			  0.9973289783F, 0.9973658631F, 0.9974023709F, 0.9974385042F, 
+			  0.9974742655F, 0.9975096571F, 0.9975446816F, 0.9975793413F, 
+			  0.9976136386F, 0.9976475759F, 0.9976811557F, 0.9977143803F, 
+			  0.9977472521F, 0.9977797736F, 0.9978119470F, 0.9978437748F, 
+			  0.9978752593F, 0.9979064029F, 0.9979372079F, 0.9979676768F, 
+			  0.9979978117F, 0.9980276151F, 0.9980570893F, 0.9980862367F, 
+			  0.9981150595F, 0.9981435600F, 0.9981717406F, 0.9981996035F, 
+			  0.9982271511F, 0.9982543856F, 0.9982813093F, 0.9983079246F, 
+			  0.9983342336F, 0.9983602386F, 0.9983859418F, 0.9984113456F, 
+			  0.9984364522F, 0.9984612638F, 0.9984857825F, 0.9985100108F, 
+			  0.9985339507F, 0.9985576044F, 0.9985809743F, 0.9986040624F, 
+			  0.9986268710F, 0.9986494022F, 0.9986716583F, 0.9986936413F, 
+			  0.9987153535F, 0.9987367969F, 0.9987579738F, 0.9987788864F, 
+			  0.9987995366F, 0.9988199267F, 0.9988400587F, 0.9988599348F, 
+			  0.9988795572F, 0.9988989278F, 0.9989180487F, 0.9989369222F, 
+			  0.9989555501F, 0.9989739347F, 0.9989920780F, 0.9990099820F, 
+			  0.9990276487F, 0.9990450803F, 0.9990622787F, 0.9990792460F, 
+			  0.9990959841F, 0.9991124952F, 0.9991287812F, 0.9991448440F, 
+			  0.9991606858F, 0.9991763084F, 0.9991917139F, 0.9992069042F, 
+			  0.9992218813F, 0.9992366471F, 0.9992512035F, 0.9992655525F, 
+			  0.9992796961F, 0.9992936361F, 0.9993073744F, 0.9993209131F, 
+			  0.9993342538F, 0.9993473987F, 0.9993603494F, 0.9993731080F, 
+			  0.9993856762F, 0.9993980559F, 0.9994102490F, 0.9994222573F, 
+			  0.9994340827F, 0.9994457269F, 0.9994571918F, 0.9994684793F, 
+			  0.9994795910F, 0.9994905288F, 0.9995012945F, 0.9995118898F, 
+			  0.9995223165F, 0.9995325765F, 0.9995426713F, 0.9995526029F, 
+			  0.9995623728F, 0.9995719829F, 0.9995814349F, 0.9995907304F, 
+			  0.9995998712F, 0.9996088590F, 0.9996176954F, 0.9996263821F, 
+			  0.9996349208F, 0.9996433132F, 0.9996515609F, 0.9996596656F, 
+			  0.9996676288F, 0.9996754522F, 0.9996831375F, 0.9996906862F, 
+			  0.9996981000F, 0.9997053804F, 0.9997125290F, 0.9997195474F, 
+			  0.9997264371F, 0.9997331998F, 0.9997398369F, 0.9997463500F, 
+			  0.9997527406F, 0.9997590103F, 0.9997651606F, 0.9997711930F, 
+			  0.9997771089F, 0.9997829098F, 0.9997885973F, 0.9997941728F, 
+			  0.9997996378F, 0.9998049936F, 0.9998102419F, 0.9998153839F, 
+			  0.9998204211F, 0.9998253550F, 0.9998301868F, 0.9998349182F, 
+			  0.9998395503F, 0.9998440847F, 0.9998485226F, 0.9998528654F, 
+			  0.9998571146F, 0.9998612713F, 0.9998653370F, 0.9998693130F, 
+			  0.9998732007F, 0.9998770012F, 0.9998807159F, 0.9998843461F, 
+			  0.9998878931F, 0.9998913581F, 0.9998947424F, 0.9998980473F, 
+			  0.9999012740F, 0.9999044237F, 0.9999074976F, 0.9999104971F, 
+			  0.9999134231F, 0.9999162771F, 0.9999190601F, 0.9999217733F, 
+			  0.9999244179F, 0.9999269950F, 0.9999295058F, 0.9999319515F, 
+			  0.9999343332F, 0.9999366519F, 0.9999389088F, 0.9999411050F, 
+			  0.9999432416F, 0.9999453196F, 0.9999473402F, 0.9999493044F, 
+			  0.9999512132F, 0.9999530677F, 0.9999548690F, 0.9999566180F, 
+			  0.9999583157F, 0.9999599633F, 0.9999615616F, 0.9999631116F, 
+			  0.9999646144F, 0.9999660709F, 0.9999674820F, 0.9999688487F, 
+			  0.9999701719F, 0.9999714526F, 0.9999726917F, 0.9999738900F, 
+			  0.9999750486F, 0.9999761682F, 0.9999772497F, 0.9999782941F, 
+			  0.9999793021F, 0.9999802747F, 0.9999812126F, 0.9999821167F, 
+			  0.9999829878F, 0.9999838268F, 0.9999846343F, 0.9999854113F, 
+			  0.9999861584F, 0.9999868765F, 0.9999875664F, 0.9999882287F, 
+			  0.9999888642F, 0.9999894736F, 0.9999900577F, 0.9999906172F, 
+			  0.9999911528F, 0.9999916651F, 0.9999921548F, 0.9999926227F, 
+			  0.9999930693F, 0.9999934954F, 0.9999939015F, 0.9999942883F, 
+			  0.9999946564F, 0.9999950064F, 0.9999953390F, 0.9999956547F, 
+			  0.9999959541F, 0.9999962377F, 0.9999965062F, 0.9999967601F, 
+			  0.9999969998F, 0.9999972260F, 0.9999974392F, 0.9999976399F, 
+			  0.9999978285F, 0.9999980056F, 0.9999981716F, 0.9999983271F, 
+			  0.9999984724F, 0.9999986081F, 0.9999987345F, 0.9999988521F, 
+			  0.9999989613F, 0.9999990625F, 0.9999991562F, 0.9999992426F, 
+			  0.9999993223F, 0.9999993954F, 0.9999994625F, 0.9999995239F, 
+			  0.9999995798F, 0.9999996307F, 0.9999996768F, 0.9999997184F, 
+			  0.9999997559F, 0.9999997895F, 0.9999998195F, 0.9999998462F, 
+			  0.9999998698F, 0.9999998906F, 0.9999999088F, 0.9999999246F, 
+			  0.9999999383F, 0.9999999500F, 0.9999999600F, 0.9999999684F, 
+			  0.9999999754F, 0.9999999811F, 0.9999999858F, 0.9999999896F, 
+			  0.9999999925F, 0.9999999948F, 0.9999999965F, 0.9999999978F, 
+			  0.9999999986F, 0.9999999992F, 0.9999999996F, 0.9999999998F, 
+			  0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, 
+			};
+	
+	static float[] vwin8192 = { // vwin8192[4096]
+			  0.0000000578F, 0.0000005198F, 0.0000014438F, 0.0000028299F, 
+			  0.0000046780F, 0.0000069882F, 0.0000097604F, 0.0000129945F, 
+			  0.0000166908F, 0.0000208490F, 0.0000254692F, 0.0000305515F, 
+			  0.0000360958F, 0.0000421021F, 0.0000485704F, 0.0000555006F, 
+			  0.0000628929F, 0.0000707472F, 0.0000790635F, 0.0000878417F, 
+			  0.0000970820F, 0.0001067842F, 0.0001169483F, 0.0001275744F, 
+			  0.0001386625F, 0.0001502126F, 0.0001622245F, 0.0001746984F, 
+			  0.0001876343F, 0.0002010320F, 0.0002148917F, 0.0002292132F, 
+			  0.0002439967F, 0.0002592421F, 0.0002749493F, 0.0002911184F, 
+			  0.0003077493F, 0.0003248421F, 0.0003423967F, 0.0003604132F, 
+			  0.0003788915F, 0.0003978316F, 0.0004172335F, 0.0004370971F, 
+			  0.0004574226F, 0.0004782098F, 0.0004994587F, 0.0005211694F, 
+			  0.0005433418F, 0.0005659759F, 0.0005890717F, 0.0006126292F, 
+			  0.0006366484F, 0.0006611292F, 0.0006860716F, 0.0007114757F, 
+			  0.0007373414F, 0.0007636687F, 0.0007904576F, 0.0008177080F, 
+			  0.0008454200F, 0.0008735935F, 0.0009022285F, 0.0009313250F, 
+			  0.0009608830F, 0.0009909025F, 0.0010213834F, 0.0010523257F, 
+			  0.0010837295F, 0.0011155946F, 0.0011479211F, 0.0011807090F, 
+			  0.0012139582F, 0.0012476687F, 0.0012818405F, 0.0013164736F, 
+			  0.0013515679F, 0.0013871235F, 0.0014231402F, 0.0014596182F, 
+			  0.0014965573F, 0.0015339576F, 0.0015718190F, 0.0016101415F, 
+			  0.0016489251F, 0.0016881698F, 0.0017278754F, 0.0017680421F, 
+			  0.0018086698F, 0.0018497584F, 0.0018913080F, 0.0019333185F, 
+			  0.0019757898F, 0.0020187221F, 0.0020621151F, 0.0021059690F, 
+			  0.0021502837F, 0.0021950591F, 0.0022402953F, 0.0022859921F, 
+			  0.0023321497F, 0.0023787679F, 0.0024258467F, 0.0024733861F, 
+			  0.0025213861F, 0.0025698466F, 0.0026187676F, 0.0026681491F, 
+			  0.0027179911F, 0.0027682935F, 0.0028190562F, 0.0028702794F, 
+			  0.0029219628F, 0.0029741066F, 0.0030267107F, 0.0030797749F, 
+			  0.0031332994F, 0.0031872841F, 0.0032417289F, 0.0032966338F, 
+			  0.0033519988F, 0.0034078238F, 0.0034641089F, 0.0035208539F, 
+			  0.0035780589F, 0.0036357237F, 0.0036938485F, 0.0037524331F, 
+			  0.0038114775F, 0.0038709817F, 0.0039309456F, 0.0039913692F, 
+			  0.0040522524F, 0.0041135953F, 0.0041753978F, 0.0042376599F, 
+			  0.0043003814F, 0.0043635624F, 0.0044272029F, 0.0044913028F, 
+			  0.0045558620F, 0.0046208806F, 0.0046863585F, 0.0047522955F, 
+			  0.0048186919F, 0.0048855473F, 0.0049528619F, 0.0050206356F, 
+			  0.0050888684F, 0.0051575601F, 0.0052267108F, 0.0052963204F, 
+			  0.0053663890F, 0.0054369163F, 0.0055079025F, 0.0055793474F, 
+			  0.0056512510F, 0.0057236133F, 0.0057964342F, 0.0058697137F, 
+			  0.0059434517F, 0.0060176482F, 0.0060923032F, 0.0061674166F, 
+			  0.0062429883F, 0.0063190183F, 0.0063955066F, 0.0064724532F, 
+			  0.0065498579F, 0.0066277207F, 0.0067060416F, 0.0067848205F, 
+			  0.0068640575F, 0.0069437523F, 0.0070239051F, 0.0071045157F, 
+			  0.0071855840F, 0.0072671102F, 0.0073490940F, 0.0074315355F, 
+			  0.0075144345F, 0.0075977911F, 0.0076816052F, 0.0077658768F, 
+			  0.0078506057F, 0.0079357920F, 0.0080214355F, 0.0081075363F, 
+			  0.0081940943F, 0.0082811094F, 0.0083685816F, 0.0084565108F, 
+			  0.0085448970F, 0.0086337401F, 0.0087230401F, 0.0088127969F, 
+			  0.0089030104F, 0.0089936807F, 0.0090848076F, 0.0091763911F, 
+			  0.0092684311F, 0.0093609276F, 0.0094538805F, 0.0095472898F, 
+			  0.0096411554F, 0.0097354772F, 0.0098302552F, 0.0099254894F, 
+			  0.0100211796F, 0.0101173259F, 0.0102139281F, 0.0103109863F, 
+			  0.0104085002F, 0.0105064700F, 0.0106048955F, 0.0107037766F, 
+			  0.0108031133F, 0.0109029056F, 0.0110031534F, 0.0111038565F, 
+			  0.0112050151F, 0.0113066289F, 0.0114086980F, 0.0115112222F, 
+			  0.0116142015F, 0.0117176359F, 0.0118215252F, 0.0119258695F, 
+			  0.0120306686F, 0.0121359225F, 0.0122416312F, 0.0123477944F, 
+			  0.0124544123F, 0.0125614847F, 0.0126690116F, 0.0127769928F, 
+			  0.0128854284F, 0.0129943182F, 0.0131036623F, 0.0132134604F, 
+			  0.0133237126F, 0.0134344188F, 0.0135455790F, 0.0136571929F, 
+			  0.0137692607F, 0.0138817821F, 0.0139947572F, 0.0141081859F, 
+			  0.0142220681F, 0.0143364037F, 0.0144511927F, 0.0145664350F, 
+			  0.0146821304F, 0.0147982791F, 0.0149148808F, 0.0150319355F, 
+			  0.0151494431F, 0.0152674036F, 0.0153858168F, 0.0155046828F, 
+			  0.0156240014F, 0.0157437726F, 0.0158639962F, 0.0159846723F, 
+			  0.0161058007F, 0.0162273814F, 0.0163494142F, 0.0164718991F, 
+			  0.0165948361F, 0.0167182250F, 0.0168420658F, 0.0169663584F, 
+			  0.0170911027F, 0.0172162987F, 0.0173419462F, 0.0174680452F, 
+			  0.0175945956F, 0.0177215974F, 0.0178490504F, 0.0179769545F, 
+			  0.0181053098F, 0.0182341160F, 0.0183633732F, 0.0184930812F, 
+			  0.0186232399F, 0.0187538494F, 0.0188849094F, 0.0190164200F, 
+			  0.0191483809F, 0.0192807923F, 0.0194136539F, 0.0195469656F, 
+			  0.0196807275F, 0.0198149394F, 0.0199496012F, 0.0200847128F, 
+			  0.0202202742F, 0.0203562853F, 0.0204927460F, 0.0206296561F, 
+			  0.0207670157F, 0.0209048245F, 0.0210430826F, 0.0211817899F, 
+			  0.0213209462F, 0.0214605515F, 0.0216006057F, 0.0217411086F, 
+			  0.0218820603F, 0.0220234605F, 0.0221653093F, 0.0223076066F, 
+			  0.0224503521F, 0.0225935459F, 0.0227371879F, 0.0228812779F, 
+			  0.0230258160F, 0.0231708018F, 0.0233162355F, 0.0234621169F, 
+			  0.0236084459F, 0.0237552224F, 0.0239024462F, 0.0240501175F, 
+			  0.0241982359F, 0.0243468015F, 0.0244958141F, 0.0246452736F, 
+			  0.0247951800F, 0.0249455331F, 0.0250963329F, 0.0252475792F, 
+			  0.0253992720F, 0.0255514111F, 0.0257039965F, 0.0258570281F, 
+			  0.0260105057F, 0.0261644293F, 0.0263187987F, 0.0264736139F, 
+			  0.0266288747F, 0.0267845811F, 0.0269407330F, 0.0270973302F, 
+			  0.0272543727F, 0.0274118604F, 0.0275697930F, 0.0277281707F, 
+			  0.0278869932F, 0.0280462604F, 0.0282059723F, 0.0283661287F, 
+			  0.0285267295F, 0.0286877747F, 0.0288492641F, 0.0290111976F, 
+			  0.0291735751F, 0.0293363965F, 0.0294996617F, 0.0296633706F, 
+			  0.0298275231F, 0.0299921190F, 0.0301571583F, 0.0303226409F, 
+			  0.0304885667F, 0.0306549354F, 0.0308217472F, 0.0309890017F, 
+			  0.0311566989F, 0.0313248388F, 0.0314934211F, 0.0316624459F, 
+			  0.0318319128F, 0.0320018220F, 0.0321721732F, 0.0323429663F, 
+			  0.0325142013F, 0.0326858779F, 0.0328579962F, 0.0330305559F, 
+			  0.0332035570F, 0.0333769994F, 0.0335508829F, 0.0337252074F, 
+			  0.0338999728F, 0.0340751790F, 0.0342508259F, 0.0344269134F, 
+			  0.0346034412F, 0.0347804094F, 0.0349578178F, 0.0351356663F, 
+			  0.0353139548F, 0.0354926831F, 0.0356718511F, 0.0358514588F, 
+			  0.0360315059F, 0.0362119924F, 0.0363929182F, 0.0365742831F, 
+			  0.0367560870F, 0.0369383297F, 0.0371210113F, 0.0373041315F, 
+			  0.0374876902F, 0.0376716873F, 0.0378561226F, 0.0380409961F, 
+			  0.0382263077F, 0.0384120571F, 0.0385982443F, 0.0387848691F, 
+			  0.0389719315F, 0.0391594313F, 0.0393473683F, 0.0395357425F, 
+			  0.0397245537F, 0.0399138017F, 0.0401034866F, 0.0402936080F, 
+			  0.0404841660F, 0.0406751603F, 0.0408665909F, 0.0410584576F, 
+			  0.0412507603F, 0.0414434988F, 0.0416366731F, 0.0418302829F, 
+			  0.0420243282F, 0.0422188088F, 0.0424137246F, 0.0426090755F, 
+			  0.0428048613F, 0.0430010819F, 0.0431977371F, 0.0433948269F, 
+			  0.0435923511F, 0.0437903095F, 0.0439887020F, 0.0441875285F, 
+			  0.0443867889F, 0.0445864830F, 0.0447866106F, 0.0449871717F, 
+			  0.0451881661F, 0.0453895936F, 0.0455914542F, 0.0457937477F, 
+			  0.0459964738F, 0.0461996326F, 0.0464032239F, 0.0466072475F, 
+			  0.0468117032F, 0.0470165910F, 0.0472219107F, 0.0474276622F, 
+			  0.0476338452F, 0.0478404597F, 0.0480475056F, 0.0482549827F, 
+			  0.0484628907F, 0.0486712297F, 0.0488799994F, 0.0490891998F, 
+			  0.0492988306F, 0.0495088917F, 0.0497193830F, 0.0499303043F, 
+			  0.0501416554F, 0.0503534363F, 0.0505656468F, 0.0507782867F, 
+			  0.0509913559F, 0.0512048542F, 0.0514187815F, 0.0516331376F, 
+			  0.0518479225F, 0.0520631358F, 0.0522787775F, 0.0524948475F, 
+			  0.0527113455F, 0.0529282715F, 0.0531456252F, 0.0533634066F, 
+			  0.0535816154F, 0.0538002515F, 0.0540193148F, 0.0542388051F, 
+			  0.0544587222F, 0.0546790660F, 0.0548998364F, 0.0551210331F, 
+			  0.0553426561F, 0.0555647051F, 0.0557871801F, 0.0560100807F, 
+			  0.0562334070F, 0.0564571587F, 0.0566813357F, 0.0569059378F, 
+			  0.0571309649F, 0.0573564168F, 0.0575822933F, 0.0578085942F, 
+			  0.0580353195F, 0.0582624689F, 0.0584900423F, 0.0587180396F, 
+			  0.0589464605F, 0.0591753049F, 0.0594045726F, 0.0596342635F, 
+			  0.0598643774F, 0.0600949141F, 0.0603258735F, 0.0605572555F, 
+			  0.0607890597F, 0.0610212862F, 0.0612539346F, 0.0614870049F, 
+			  0.0617204968F, 0.0619544103F, 0.0621887451F, 0.0624235010F, 
+			  0.0626586780F, 0.0628942758F, 0.0631302942F, 0.0633667331F, 
+			  0.0636035923F, 0.0638408717F, 0.0640785710F, 0.0643166901F, 
+			  0.0645552288F, 0.0647941870F, 0.0650335645F, 0.0652733610F, 
+			  0.0655135765F, 0.0657542108F, 0.0659952636F, 0.0662367348F, 
+			  0.0664786242F, 0.0667209316F, 0.0669636570F, 0.0672068000F, 
+			  0.0674503605F, 0.0676943384F, 0.0679387334F, 0.0681835454F, 
+			  0.0684287742F, 0.0686744196F, 0.0689204814F, 0.0691669595F, 
+			  0.0694138536F, 0.0696611637F, 0.0699088894F, 0.0701570307F, 
+			  0.0704055873F, 0.0706545590F, 0.0709039458F, 0.0711537473F, 
+			  0.0714039634F, 0.0716545939F, 0.0719056387F, 0.0721570975F, 
+			  0.0724089702F, 0.0726612565F, 0.0729139563F, 0.0731670694F, 
+			  0.0734205956F, 0.0736745347F, 0.0739288866F, 0.0741836510F, 
+			  0.0744388277F, 0.0746944166F, 0.0749504175F, 0.0752068301F, 
+			  0.0754636543F, 0.0757208899F, 0.0759785367F, 0.0762365946F, 
+			  0.0764950632F, 0.0767539424F, 0.0770132320F, 0.0772729319F, 
+			  0.0775330418F, 0.0777935616F, 0.0780544909F, 0.0783158298F, 
+			  0.0785775778F, 0.0788397349F, 0.0791023009F, 0.0793652755F, 
+			  0.0796286585F, 0.0798924498F, 0.0801566492F, 0.0804212564F, 
+			  0.0806862712F, 0.0809516935F, 0.0812175231F, 0.0814837597F, 
+			  0.0817504031F, 0.0820174532F, 0.0822849097F, 0.0825527724F, 
+			  0.0828210412F, 0.0830897158F, 0.0833587960F, 0.0836282816F, 
+			  0.0838981724F, 0.0841684682F, 0.0844391688F, 0.0847102740F, 
+			  0.0849817835F, 0.0852536973F, 0.0855260150F, 0.0857987364F, 
+			  0.0860718614F, 0.0863453897F, 0.0866193211F, 0.0868936554F, 
+			  0.0871683924F, 0.0874435319F, 0.0877190737F, 0.0879950175F, 
+			  0.0882713632F, 0.0885481105F, 0.0888252592F, 0.0891028091F, 
+			  0.0893807600F, 0.0896591117F, 0.0899378639F, 0.0902170165F, 
+			  0.0904965692F, 0.0907765218F, 0.0910568740F, 0.0913376258F, 
+			  0.0916187767F, 0.0919003268F, 0.0921822756F, 0.0924646230F, 
+			  0.0927473687F, 0.0930305126F, 0.0933140545F, 0.0935979940F, 
+			  0.0938823310F, 0.0941670653F, 0.0944521966F, 0.0947377247F, 
+			  0.0950236494F, 0.0953099704F, 0.0955966876F, 0.0958838007F, 
+			  0.0961713094F, 0.0964592136F, 0.0967475131F, 0.0970362075F, 
+			  0.0973252967F, 0.0976147805F, 0.0979046585F, 0.0981949307F, 
+			  0.0984855967F, 0.0987766563F, 0.0990681093F, 0.0993599555F, 
+			  0.0996521945F, 0.0999448263F, 0.1002378506F, 0.1005312671F, 
+			  0.1008250755F, 0.1011192757F, 0.1014138675F, 0.1017088505F, 
+			  0.1020042246F, 0.1022999895F, 0.1025961450F, 0.1028926909F, 
+			  0.1031896268F, 0.1034869526F, 0.1037846680F, 0.1040827729F, 
+			  0.1043812668F, 0.1046801497F, 0.1049794213F, 0.1052790813F, 
+			  0.1055791294F, 0.1058795656F, 0.1061803894F, 0.1064816006F, 
+			  0.1067831991F, 0.1070851846F, 0.1073875568F, 0.1076903155F, 
+			  0.1079934604F, 0.1082969913F, 0.1086009079F, 0.1089052101F, 
+			  0.1092098975F, 0.1095149699F, 0.1098204270F, 0.1101262687F, 
+			  0.1104324946F, 0.1107391045F, 0.1110460982F, 0.1113534754F, 
+			  0.1116612359F, 0.1119693793F, 0.1122779055F, 0.1125868142F, 
+			  0.1128961052F, 0.1132057781F, 0.1135158328F, 0.1138262690F, 
+			  0.1141370863F, 0.1144482847F, 0.1147598638F, 0.1150718233F, 
+			  0.1153841631F, 0.1156968828F, 0.1160099822F, 0.1163234610F, 
+			  0.1166373190F, 0.1169515559F, 0.1172661714F, 0.1175811654F, 
+			  0.1178965374F, 0.1182122874F, 0.1185284149F, 0.1188449198F, 
+			  0.1191618018F, 0.1194790606F, 0.1197966960F, 0.1201147076F, 
+			  0.1204330953F, 0.1207518587F, 0.1210709976F, 0.1213905118F, 
+			  0.1217104009F, 0.1220306647F, 0.1223513029F, 0.1226723153F, 
+			  0.1229937016F, 0.1233154615F, 0.1236375948F, 0.1239601011F, 
+			  0.1242829803F, 0.1246062319F, 0.1249298559F, 0.1252538518F, 
+			  0.1255782195F, 0.1259029586F, 0.1262280689F, 0.1265535501F, 
+			  0.1268794019F, 0.1272056241F, 0.1275322163F, 0.1278591784F, 
+			  0.1281865099F, 0.1285142108F, 0.1288422805F, 0.1291707190F, 
+			  0.1294995259F, 0.1298287009F, 0.1301582437F, 0.1304881542F, 
+			  0.1308184319F, 0.1311490766F, 0.1314800881F, 0.1318114660F, 
+			  0.1321432100F, 0.1324753200F, 0.1328077955F, 0.1331406364F, 
+			  0.1334738422F, 0.1338074129F, 0.1341413479F, 0.1344756472F, 
+			  0.1348103103F, 0.1351453370F, 0.1354807270F, 0.1358164801F, 
+			  0.1361525959F, 0.1364890741F, 0.1368259145F, 0.1371631167F, 
+			  0.1375006805F, 0.1378386056F, 0.1381768917F, 0.1385155384F, 
+			  0.1388545456F, 0.1391939129F, 0.1395336400F, 0.1398737266F, 
+			  0.1402141724F, 0.1405549772F, 0.1408961406F, 0.1412376623F, 
+			  0.1415795421F, 0.1419217797F, 0.1422643746F, 0.1426073268F, 
+			  0.1429506358F, 0.1432943013F, 0.1436383231F, 0.1439827008F, 
+			  0.1443274342F, 0.1446725229F, 0.1450179667F, 0.1453637652F, 
+			  0.1457099181F, 0.1460564252F, 0.1464032861F, 0.1467505006F, 
+			  0.1470980682F, 0.1474459888F, 0.1477942620F, 0.1481428875F, 
+			  0.1484918651F, 0.1488411942F, 0.1491908748F, 0.1495409065F, 
+			  0.1498912889F, 0.1502420218F, 0.1505931048F, 0.1509445376F, 
+			  0.1512963200F, 0.1516484516F, 0.1520009321F, 0.1523537612F, 
+			  0.1527069385F, 0.1530604638F, 0.1534143368F, 0.1537685571F, 
+			  0.1541231244F, 0.1544780384F, 0.1548332987F, 0.1551889052F, 
+			  0.1555448574F, 0.1559011550F, 0.1562577978F, 0.1566147853F, 
+			  0.1569721173F, 0.1573297935F, 0.1576878135F, 0.1580461771F, 
+			  0.1584048838F, 0.1587639334F, 0.1591233255F, 0.1594830599F, 
+			  0.1598431361F, 0.1602035540F, 0.1605643131F, 0.1609254131F, 
+			  0.1612868537F, 0.1616486346F, 0.1620107555F, 0.1623732160F, 
+			  0.1627360158F, 0.1630991545F, 0.1634626319F, 0.1638264476F, 
+			  0.1641906013F, 0.1645550926F, 0.1649199212F, 0.1652850869F, 
+			  0.1656505892F, 0.1660164278F, 0.1663826024F, 0.1667491127F, 
+			  0.1671159583F, 0.1674831388F, 0.1678506541F, 0.1682185036F, 
+			  0.1685866872F, 0.1689552044F, 0.1693240549F, 0.1696932384F, 
+			  0.1700627545F, 0.1704326029F, 0.1708027833F, 0.1711732952F, 
+			  0.1715441385F, 0.1719153127F, 0.1722868175F, 0.1726586526F, 
+			  0.1730308176F, 0.1734033121F, 0.1737761359F, 0.1741492886F, 
+			  0.1745227698F, 0.1748965792F, 0.1752707164F, 0.1756451812F, 
+			  0.1760199731F, 0.1763950918F, 0.1767705370F, 0.1771463083F, 
+			  0.1775224054F, 0.1778988279F, 0.1782755754F, 0.1786526477F, 
+			  0.1790300444F, 0.1794077651F, 0.1797858094F, 0.1801641771F, 
+			  0.1805428677F, 0.1809218810F, 0.1813012165F, 0.1816808739F, 
+			  0.1820608528F, 0.1824411530F, 0.1828217739F, 0.1832027154F, 
+			  0.1835839770F, 0.1839655584F, 0.1843474592F, 0.1847296790F, 
+			  0.1851122175F, 0.1854950744F, 0.1858782492F, 0.1862617417F, 
+			  0.1866455514F, 0.1870296780F, 0.1874141211F, 0.1877988804F, 
+			  0.1881839555F, 0.1885693461F, 0.1889550517F, 0.1893410721F, 
+			  0.1897274068F, 0.1901140555F, 0.1905010178F, 0.1908882933F, 
+			  0.1912758818F, 0.1916637828F, 0.1920519959F, 0.1924405208F, 
+			  0.1928293571F, 0.1932185044F, 0.1936079625F, 0.1939977308F, 
+			  0.1943878091F, 0.1947781969F, 0.1951688939F, 0.1955598998F, 
+			  0.1959512141F, 0.1963428364F, 0.1967347665F, 0.1971270038F, 
+			  0.1975195482F, 0.1979123990F, 0.1983055561F, 0.1986990190F, 
+			  0.1990927873F, 0.1994868607F, 0.1998812388F, 0.2002759212F, 
+			  0.2006709075F, 0.2010661974F, 0.2014617904F, 0.2018576862F, 
+			  0.2022538844F, 0.2026503847F, 0.2030471865F, 0.2034442897F, 
+			  0.2038416937F, 0.2042393982F, 0.2046374028F, 0.2050357071F, 
+			  0.2054343107F, 0.2058332133F, 0.2062324145F, 0.2066319138F, 
+			  0.2070317110F, 0.2074318055F, 0.2078321970F, 0.2082328852F, 
+			  0.2086338696F, 0.2090351498F, 0.2094367255F, 0.2098385962F, 
+			  0.2102407617F, 0.2106432213F, 0.2110459749F, 0.2114490220F, 
+			  0.2118523621F, 0.2122559950F, 0.2126599202F, 0.2130641373F, 
+			  0.2134686459F, 0.2138734456F, 0.2142785361F, 0.2146839168F, 
+			  0.2150895875F, 0.2154955478F, 0.2159017972F, 0.2163083353F, 
+			  0.2167151617F, 0.2171222761F, 0.2175296780F, 0.2179373670F, 
+			  0.2183453428F, 0.2187536049F, 0.2191621529F, 0.2195709864F, 
+			  0.2199801051F, 0.2203895085F, 0.2207991961F, 0.2212091677F, 
+			  0.2216194228F, 0.2220299610F, 0.2224407818F, 0.2228518850F, 
+			  0.2232632699F, 0.2236749364F, 0.2240868839F, 0.2244991121F, 
+			  0.2249116204F, 0.2253244086F, 0.2257374763F, 0.2261508229F, 
+			  0.2265644481F, 0.2269783514F, 0.2273925326F, 0.2278069911F, 
+			  0.2282217265F, 0.2286367384F, 0.2290520265F, 0.2294675902F, 
+			  0.2298834292F, 0.2302995431F, 0.2307159314F, 0.2311325937F, 
+			  0.2315495297F, 0.2319667388F, 0.2323842207F, 0.2328019749F, 
+			  0.2332200011F, 0.2336382988F, 0.2340568675F, 0.2344757070F, 
+			  0.2348948166F, 0.2353141961F, 0.2357338450F, 0.2361537629F, 
+			  0.2365739493F, 0.2369944038F, 0.2374151261F, 0.2378361156F, 
+			  0.2382573720F, 0.2386788948F, 0.2391006836F, 0.2395227380F, 
+			  0.2399450575F, 0.2403676417F, 0.2407904902F, 0.2412136026F, 
+			  0.2416369783F, 0.2420606171F, 0.2424845185F, 0.2429086820F, 
+			  0.2433331072F, 0.2437577936F, 0.2441827409F, 0.2446079486F, 
+			  0.2450334163F, 0.2454591435F, 0.2458851298F, 0.2463113747F, 
+			  0.2467378779F, 0.2471646389F, 0.2475916573F, 0.2480189325F, 
+			  0.2484464643F, 0.2488742521F, 0.2493022955F, 0.2497305940F, 
+			  0.2501591473F, 0.2505879549F, 0.2510170163F, 0.2514463311F, 
+			  0.2518758989F, 0.2523057193F, 0.2527357916F, 0.2531661157F, 
+			  0.2535966909F, 0.2540275169F, 0.2544585931F, 0.2548899193F, 
+			  0.2553214948F, 0.2557533193F, 0.2561853924F, 0.2566177135F, 
+			  0.2570502822F, 0.2574830981F, 0.2579161608F, 0.2583494697F, 
+			  0.2587830245F, 0.2592168246F, 0.2596508697F, 0.2600851593F, 
+			  0.2605196929F, 0.2609544701F, 0.2613894904F, 0.2618247534F, 
+			  0.2622602586F, 0.2626960055F, 0.2631319938F, 0.2635682230F, 
+			  0.2640046925F, 0.2644414021F, 0.2648783511F, 0.2653155391F, 
+			  0.2657529657F, 0.2661906305F, 0.2666285329F, 0.2670666725F, 
+			  0.2675050489F, 0.2679436616F, 0.2683825101F, 0.2688215940F, 
+			  0.2692609127F, 0.2697004660F, 0.2701402532F, 0.2705802739F, 
+			  0.2710205278F, 0.2714610142F, 0.2719017327F, 0.2723426830F, 
+			  0.2727838644F, 0.2732252766F, 0.2736669191F, 0.2741087914F, 
+			  0.2745508930F, 0.2749932235F, 0.2754357824F, 0.2758785693F, 
+			  0.2763215837F, 0.2767648251F, 0.2772082930F, 0.2776519870F, 
+			  0.2780959066F, 0.2785400513F, 0.2789844207F, 0.2794290143F, 
+			  0.2798738316F, 0.2803188722F, 0.2807641355F, 0.2812096211F, 
+			  0.2816553286F, 0.2821012574F, 0.2825474071F, 0.2829937773F, 
+			  0.2834403673F, 0.2838871768F, 0.2843342053F, 0.2847814523F, 
+			  0.2852289174F, 0.2856765999F, 0.2861244996F, 0.2865726159F, 
+			  0.2870209482F, 0.2874694962F, 0.2879182594F, 0.2883672372F, 
+			  0.2888164293F, 0.2892658350F, 0.2897154540F, 0.2901652858F, 
+			  0.2906153298F, 0.2910655856F, 0.2915160527F, 0.2919667306F, 
+			  0.2924176189F, 0.2928687171F, 0.2933200246F, 0.2937715409F, 
+			  0.2942232657F, 0.2946751984F, 0.2951273386F, 0.2955796856F, 
+			  0.2960322391F, 0.2964849986F, 0.2969379636F, 0.2973911335F, 
+			  0.2978445080F, 0.2982980864F, 0.2987518684F, 0.2992058534F, 
+			  0.2996600409F, 0.3001144305F, 0.3005690217F, 0.3010238139F, 
+			  0.3014788067F, 0.3019339995F, 0.3023893920F, 0.3028449835F, 
+			  0.3033007736F, 0.3037567618F, 0.3042129477F, 0.3046693306F, 
+			  0.3051259102F, 0.3055826859F, 0.3060396572F, 0.3064968236F, 
+			  0.3069541847F, 0.3074117399F, 0.3078694887F, 0.3083274307F, 
+			  0.3087855653F, 0.3092438920F, 0.3097024104F, 0.3101611199F, 
+			  0.3106200200F, 0.3110791103F, 0.3115383902F, 0.3119978592F, 
+			  0.3124575169F, 0.3129173627F, 0.3133773961F, 0.3138376166F, 
+			  0.3142980238F, 0.3147586170F, 0.3152193959F, 0.3156803598F, 
+			  0.3161415084F, 0.3166028410F, 0.3170643573F, 0.3175260566F, 
+			  0.3179879384F, 0.3184500023F, 0.3189122478F, 0.3193746743F, 
+			  0.3198372814F, 0.3203000685F, 0.3207630351F, 0.3212261807F, 
+			  0.3216895048F, 0.3221530069F, 0.3226166865F, 0.3230805430F, 
+			  0.3235445760F, 0.3240087849F, 0.3244731693F, 0.3249377285F, 
+			  0.3254024622F, 0.3258673698F, 0.3263324507F, 0.3267977045F, 
+			  0.3272631306F, 0.3277287286F, 0.3281944978F, 0.3286604379F, 
+			  0.3291265482F, 0.3295928284F, 0.3300592777F, 0.3305258958F, 
+			  0.3309926821F, 0.3314596361F, 0.3319267573F, 0.3323940451F, 
+			  0.3328614990F, 0.3333291186F, 0.3337969033F, 0.3342648525F, 
+			  0.3347329658F, 0.3352012427F, 0.3356696825F, 0.3361382849F, 
+			  0.3366070492F, 0.3370759749F, 0.3375450616F, 0.3380143087F, 
+			  0.3384837156F, 0.3389532819F, 0.3394230071F, 0.3398928905F, 
+			  0.3403629317F, 0.3408331302F, 0.3413034854F, 0.3417739967F, 
+			  0.3422446638F, 0.3427154860F, 0.3431864628F, 0.3436575938F, 
+			  0.3441288782F, 0.3446003158F, 0.3450719058F, 0.3455436478F, 
+			  0.3460155412F, 0.3464875856F, 0.3469597804F, 0.3474321250F, 
+			  0.3479046189F, 0.3483772617F, 0.3488500527F, 0.3493229914F, 
+			  0.3497960774F, 0.3502693100F, 0.3507426887F, 0.3512162131F, 
+			  0.3516898825F, 0.3521636965F, 0.3526376545F, 0.3531117559F, 
+			  0.3535860003F, 0.3540603870F, 0.3545349157F, 0.3550095856F, 
+			  0.3554843964F, 0.3559593474F, 0.3564344381F, 0.3569096680F, 
+			  0.3573850366F, 0.3578605432F, 0.3583361875F, 0.3588119687F, 
+			  0.3592878865F, 0.3597639402F, 0.3602401293F, 0.3607164533F, 
+			  0.3611929117F, 0.3616695038F, 0.3621462292F, 0.3626230873F, 
+			  0.3631000776F, 0.3635771995F, 0.3640544525F, 0.3645318360F, 
+			  0.3650093496F, 0.3654869926F, 0.3659647645F, 0.3664426648F, 
+			  0.3669206930F, 0.3673988484F, 0.3678771306F, 0.3683555390F, 
+			  0.3688340731F, 0.3693127322F, 0.3697915160F, 0.3702704237F, 
+			  0.3707494549F, 0.3712286091F, 0.3717078857F, 0.3721872840F, 
+			  0.3726668037F, 0.3731464441F, 0.3736262047F, 0.3741060850F, 
+			  0.3745860843F, 0.3750662023F, 0.3755464382F, 0.3760267915F, 
+			  0.3765072618F, 0.3769878484F, 0.3774685509F, 0.3779493686F, 
+			  0.3784303010F, 0.3789113475F, 0.3793925076F, 0.3798737809F, 
+			  0.3803551666F, 0.3808366642F, 0.3813182733F, 0.3817999932F, 
+			  0.3822818234F, 0.3827637633F, 0.3832458124F, 0.3837279702F, 
+			  0.3842102360F, 0.3846926093F, 0.3851750897F, 0.3856576764F, 
+			  0.3861403690F, 0.3866231670F, 0.3871060696F, 0.3875890765F, 
+			  0.3880721870F, 0.3885554007F, 0.3890387168F, 0.3895221349F, 
+			  0.3900056544F, 0.3904892748F, 0.3909729955F, 0.3914568160F, 
+			  0.3919407356F, 0.3924247539F, 0.3929088702F, 0.3933930841F, 
+			  0.3938773949F, 0.3943618021F, 0.3948463052F, 0.3953309035F, 
+			  0.3958155966F, 0.3963003838F, 0.3967852646F, 0.3972702385F, 
+			  0.3977553048F, 0.3982404631F, 0.3987257127F, 0.3992110531F, 
+			  0.3996964838F, 0.4001820041F, 0.4006676136F, 0.4011533116F, 
+			  0.4016390976F, 0.4021249710F, 0.4026109313F, 0.4030969779F, 
+			  0.4035831102F, 0.4040693277F, 0.4045556299F, 0.4050420160F, 
+			  0.4055284857F, 0.4060150383F, 0.4065016732F, 0.4069883899F, 
+			  0.4074751879F, 0.4079620665F, 0.4084490252F, 0.4089360635F, 
+			  0.4094231807F, 0.4099103763F, 0.4103976498F, 0.4108850005F, 
+			  0.4113724280F, 0.4118599315F, 0.4123475107F, 0.4128351648F, 
+			  0.4133228934F, 0.4138106959F, 0.4142985716F, 0.4147865201F, 
+			  0.4152745408F, 0.4157626330F, 0.4162507963F, 0.4167390301F, 
+			  0.4172273337F, 0.4177157067F, 0.4182041484F, 0.4186926583F, 
+			  0.4191812359F, 0.4196698805F, 0.4201585915F, 0.4206473685F, 
+			  0.4211362108F, 0.4216251179F, 0.4221140892F, 0.4226031241F, 
+			  0.4230922221F, 0.4235813826F, 0.4240706050F, 0.4245598887F, 
+			  0.4250492332F, 0.4255386379F, 0.4260281022F, 0.4265176256F, 
+			  0.4270072075F, 0.4274968473F, 0.4279865445F, 0.4284762984F, 
+			  0.4289661086F, 0.4294559743F, 0.4299458951F, 0.4304358704F, 
+			  0.4309258996F, 0.4314159822F, 0.4319061175F, 0.4323963050F, 
+			  0.4328865441F, 0.4333768342F, 0.4338671749F, 0.4343575654F, 
+			  0.4348480052F, 0.4353384938F, 0.4358290306F, 0.4363196149F, 
+			  0.4368102463F, 0.4373009241F, 0.4377916478F, 0.4382824168F, 
+			  0.4387732305F, 0.4392640884F, 0.4397549899F, 0.4402459343F, 
+			  0.4407369212F, 0.4412279499F, 0.4417190198F, 0.4422101305F, 
+			  0.4427012813F, 0.4431924717F, 0.4436837010F, 0.4441749686F, 
+			  0.4446662742F, 0.4451576169F, 0.4456489963F, 0.4461404118F, 
+			  0.4466318628F, 0.4471233487F, 0.4476148690F, 0.4481064230F, 
+			  0.4485980103F, 0.4490896302F, 0.4495812821F, 0.4500729654F, 
+			  0.4505646797F, 0.4510564243F, 0.4515481986F, 0.4520400021F, 
+			  0.4525318341F, 0.4530236942F, 0.4535155816F, 0.4540074959F, 
+			  0.4544994365F, 0.4549914028F, 0.4554833941F, 0.4559754100F, 
+			  0.4564674499F, 0.4569595131F, 0.4574515991F, 0.4579437074F, 
+			  0.4584358372F, 0.4589279881F, 0.4594201595F, 0.4599123508F, 
+			  0.4604045615F, 0.4608967908F, 0.4613890383F, 0.4618813034F, 
+			  0.4623735855F, 0.4628658841F, 0.4633581984F, 0.4638505281F, 
+			  0.4643428724F, 0.4648352308F, 0.4653276028F, 0.4658199877F, 
+			  0.4663123849F, 0.4668047940F, 0.4672972143F, 0.4677896451F, 
+			  0.4682820861F, 0.4687745365F, 0.4692669958F, 0.4697594634F, 
+			  0.4702519387F, 0.4707444211F, 0.4712369102F, 0.4717294052F, 
+			  0.4722219056F, 0.4727144109F, 0.4732069204F, 0.4736994336F, 
+			  0.4741919498F, 0.4746844686F, 0.4751769893F, 0.4756695113F, 
+			  0.4761620341F, 0.4766545571F, 0.4771470797F, 0.4776396013F, 
+			  0.4781321213F, 0.4786246392F, 0.4791171544F, 0.4796096663F, 
+			  0.4801021744F, 0.4805946779F, 0.4810871765F, 0.4815796694F, 
+			  0.4820721561F, 0.4825646360F, 0.4830571086F, 0.4835495732F, 
+			  0.4840420293F, 0.4845344763F, 0.4850269136F, 0.4855193407F, 
+			  0.4860117569F, 0.4865041617F, 0.4869965545F, 0.4874889347F, 
+			  0.4879813018F, 0.4884736551F, 0.4889659941F, 0.4894583182F, 
+			  0.4899506268F, 0.4904429193F, 0.4909351952F, 0.4914274538F, 
+			  0.4919196947F, 0.4924119172F, 0.4929041207F, 0.4933963046F, 
+			  0.4938884685F, 0.4943806116F, 0.4948727335F, 0.4953648335F, 
+			  0.4958569110F, 0.4963489656F, 0.4968409965F, 0.4973330032F, 
+			  0.4978249852F, 0.4983169419F, 0.4988088726F, 0.4993007768F, 
+			  0.4997926539F, 0.5002845034F, 0.5007763247F, 0.5012681171F, 
+			  0.5017598801F, 0.5022516132F, 0.5027433157F, 0.5032349871F, 
+			  0.5037266268F, 0.5042182341F, 0.5047098086F, 0.5052013497F, 
+			  0.5056928567F, 0.5061843292F, 0.5066757664F, 0.5071671679F, 
+			  0.5076585330F, 0.5081498613F, 0.5086411520F, 0.5091324047F, 
+			  0.5096236187F, 0.5101147934F, 0.5106059284F, 0.5110970230F, 
+			  0.5115880766F, 0.5120790887F, 0.5125700587F, 0.5130609860F, 
+			  0.5135518700F, 0.5140427102F, 0.5145335059F, 0.5150242566F, 
+			  0.5155149618F, 0.5160056208F, 0.5164962331F, 0.5169867980F, 
+			  0.5174773151F, 0.5179677837F, 0.5184582033F, 0.5189485733F, 
+			  0.5194388931F, 0.5199291621F, 0.5204193798F, 0.5209095455F, 
+			  0.5213996588F, 0.5218897190F, 0.5223797256F, 0.5228696779F, 
+			  0.5233595755F, 0.5238494177F, 0.5243392039F, 0.5248289337F, 
+			  0.5253186063F, 0.5258082213F, 0.5262977781F, 0.5267872760F, 
+			  0.5272767146F, 0.5277660932F, 0.5282554112F, 0.5287446682F, 
+			  0.5292338635F, 0.5297229965F, 0.5302120667F, 0.5307010736F, 
+			  0.5311900164F, 0.5316788947F, 0.5321677079F, 0.5326564554F, 
+			  0.5331451366F, 0.5336337511F, 0.5341222981F, 0.5346107771F, 
+			  0.5350991876F, 0.5355875290F, 0.5360758007F, 0.5365640021F, 
+			  0.5370521327F, 0.5375401920F, 0.5380281792F, 0.5385160939F, 
+			  0.5390039355F, 0.5394917034F, 0.5399793971F, 0.5404670159F, 
+			  0.5409545594F, 0.5414420269F, 0.5419294179F, 0.5424167318F, 
+			  0.5429039680F, 0.5433911261F, 0.5438782053F, 0.5443652051F, 
+			  0.5448521250F, 0.5453389644F, 0.5458257228F, 0.5463123995F, 
+			  0.5467989940F, 0.5472855057F, 0.5477719341F, 0.5482582786F, 
+			  0.5487445387F, 0.5492307137F, 0.5497168031F, 0.5502028063F, 
+			  0.5506887228F, 0.5511745520F, 0.5516602934F, 0.5521459463F, 
+			  0.5526315103F, 0.5531169847F, 0.5536023690F, 0.5540876626F, 
+			  0.5545728649F, 0.5550579755F, 0.5555429937F, 0.5560279189F, 
+			  0.5565127507F, 0.5569974884F, 0.5574821315F, 0.5579666794F, 
+			  0.5584511316F, 0.5589354875F, 0.5594197465F, 0.5599039080F, 
+			  0.5603879716F, 0.5608719367F, 0.5613558026F, 0.5618395689F, 
+			  0.5623232350F, 0.5628068002F, 0.5632902642F, 0.5637736262F, 
+			  0.5642568858F, 0.5647400423F, 0.5652230953F, 0.5657060442F, 
+			  0.5661888883F, 0.5666716272F, 0.5671542603F, 0.5676367870F, 
+			  0.5681192069F, 0.5686015192F, 0.5690837235F, 0.5695658192F, 
+			  0.5700478058F, 0.5705296827F, 0.5710114494F, 0.5714931052F, 
+			  0.5719746497F, 0.5724560822F, 0.5729374023F, 0.5734186094F, 
+			  0.5738997029F, 0.5743806823F, 0.5748615470F, 0.5753422965F, 
+			  0.5758229301F, 0.5763034475F, 0.5767838480F, 0.5772641310F, 
+			  0.5777442960F, 0.5782243426F, 0.5787042700F, 0.5791840778F, 
+			  0.5796637654F, 0.5801433322F, 0.5806227778F, 0.5811021016F, 
+			  0.5815813029F, 0.5820603814F, 0.5825393363F, 0.5830181673F, 
+			  0.5834968737F, 0.5839754549F, 0.5844539105F, 0.5849322399F, 
+			  0.5854104425F, 0.5858885179F, 0.5863664653F, 0.5868442844F, 
+			  0.5873219746F, 0.5877995353F, 0.5882769660F, 0.5887542661F, 
+			  0.5892314351F, 0.5897084724F, 0.5901853776F, 0.5906621500F, 
+			  0.5911387892F, 0.5916152945F, 0.5920916655F, 0.5925679016F, 
+			  0.5930440022F, 0.5935199669F, 0.5939957950F, 0.5944714861F, 
+			  0.5949470396F, 0.5954224550F, 0.5958977317F, 0.5963728692F, 
+			  0.5968478669F, 0.5973227244F, 0.5977974411F, 0.5982720163F, 
+			  0.5987464497F, 0.5992207407F, 0.5996948887F, 0.6001688932F, 
+			  0.6006427537F, 0.6011164696F, 0.6015900405F, 0.6020634657F, 
+			  0.6025367447F, 0.6030098770F, 0.6034828621F, 0.6039556995F, 
+			  0.6044283885F, 0.6049009288F, 0.6053733196F, 0.6058455606F, 
+			  0.6063176512F, 0.6067895909F, 0.6072613790F, 0.6077330152F, 
+			  0.6082044989F, 0.6086758295F, 0.6091470065F, 0.6096180294F, 
+			  0.6100888977F, 0.6105596108F, 0.6110301682F, 0.6115005694F, 
+			  0.6119708139F, 0.6124409011F, 0.6129108305F, 0.6133806017F, 
+			  0.6138502139F, 0.6143196669F, 0.6147889599F, 0.6152580926F, 
+			  0.6157270643F, 0.6161958746F, 0.6166645230F, 0.6171330088F, 
+			  0.6176013317F, 0.6180694910F, 0.6185374863F, 0.6190053171F, 
+			  0.6194729827F, 0.6199404828F, 0.6204078167F, 0.6208749841F, 
+			  0.6213419842F, 0.6218088168F, 0.6222754811F, 0.6227419768F, 
+			  0.6232083032F, 0.6236744600F, 0.6241404465F, 0.6246062622F, 
+			  0.6250719067F, 0.6255373795F, 0.6260026799F, 0.6264678076F, 
+			  0.6269327619F, 0.6273975425F, 0.6278621487F, 0.6283265800F, 
+			  0.6287908361F, 0.6292549163F, 0.6297188201F, 0.6301825471F, 
+			  0.6306460966F, 0.6311094683F, 0.6315726617F, 0.6320356761F, 
+			  0.6324985111F, 0.6329611662F, 0.6334236410F, 0.6338859348F, 
+			  0.6343480472F, 0.6348099777F, 0.6352717257F, 0.6357332909F, 
+			  0.6361946726F, 0.6366558704F, 0.6371168837F, 0.6375777122F, 
+			  0.6380383552F, 0.6384988123F, 0.6389590830F, 0.6394191668F, 
+			  0.6398790631F, 0.6403387716F, 0.6407982916F, 0.6412576228F, 
+			  0.6417167645F, 0.6421757163F, 0.6426344778F, 0.6430930483F, 
+			  0.6435514275F, 0.6440096149F, 0.6444676098F, 0.6449254119F, 
+			  0.6453830207F, 0.6458404356F, 0.6462976562F, 0.6467546820F, 
+			  0.6472115125F, 0.6476681472F, 0.6481245856F, 0.6485808273F, 
+			  0.6490368717F, 0.6494927183F, 0.6499483667F, 0.6504038164F, 
+			  0.6508590670F, 0.6513141178F, 0.6517689684F, 0.6522236185F, 
+			  0.6526780673F, 0.6531323146F, 0.6535863598F, 0.6540402024F, 
+			  0.6544938419F, 0.6549472779F, 0.6554005099F, 0.6558535373F, 
+			  0.6563063598F, 0.6567589769F, 0.6572113880F, 0.6576635927F, 
+			  0.6581155906F, 0.6585673810F, 0.6590189637F, 0.6594703380F, 
+			  0.6599215035F, 0.6603724598F, 0.6608232064F, 0.6612737427F, 
+			  0.6617240684F, 0.6621741829F, 0.6626240859F, 0.6630737767F, 
+			  0.6635232550F, 0.6639725202F, 0.6644215720F, 0.6648704098F, 
+			  0.6653190332F, 0.6657674417F, 0.6662156348F, 0.6666636121F, 
+			  0.6671113731F, 0.6675589174F, 0.6680062445F, 0.6684533538F, 
+			  0.6689002450F, 0.6693469177F, 0.6697933712F, 0.6702396052F, 
+			  0.6706856193F, 0.6711314129F, 0.6715769855F, 0.6720223369F, 
+			  0.6724674664F, 0.6729123736F, 0.6733570581F, 0.6738015194F, 
+			  0.6742457570F, 0.6746897706F, 0.6751335596F, 0.6755771236F, 
+			  0.6760204621F, 0.6764635747F, 0.6769064609F, 0.6773491204F, 
+			  0.6777915525F, 0.6782337570F, 0.6786757332F, 0.6791174809F, 
+			  0.6795589995F, 0.6800002886F, 0.6804413477F, 0.6808821765F, 
+			  0.6813227743F, 0.6817631409F, 0.6822032758F, 0.6826431785F, 
+			  0.6830828485F, 0.6835222855F, 0.6839614890F, 0.6844004585F, 
+			  0.6848391936F, 0.6852776939F, 0.6857159589F, 0.6861539883F, 
+			  0.6865917815F, 0.6870293381F, 0.6874666576F, 0.6879037398F, 
+			  0.6883405840F, 0.6887771899F, 0.6892135571F, 0.6896496850F, 
+			  0.6900855733F, 0.6905212216F, 0.6909566294F, 0.6913917963F, 
+			  0.6918267218F, 0.6922614055F, 0.6926958471F, 0.6931300459F, 
+			  0.6935640018F, 0.6939977141F, 0.6944311825F, 0.6948644066F, 
+			  0.6952973859F, 0.6957301200F, 0.6961626085F, 0.6965948510F, 
+			  0.6970268470F, 0.6974585961F, 0.6978900980F, 0.6983213521F, 
+			  0.6987523580F, 0.6991831154F, 0.6996136238F, 0.7000438828F, 
+			  0.7004738921F, 0.7009036510F, 0.7013331594F, 0.7017624166F, 
+			  0.7021914224F, 0.7026201763F, 0.7030486779F, 0.7034769268F, 
+			  0.7039049226F, 0.7043326648F, 0.7047601531F, 0.7051873870F, 
+			  0.7056143662F, 0.7060410902F, 0.7064675586F, 0.7068937711F, 
+			  0.7073197271F, 0.7077454264F, 0.7081708684F, 0.7085960529F, 
+			  0.7090209793F, 0.7094456474F, 0.7098700566F, 0.7102942066F, 
+			  0.7107180970F, 0.7111417274F, 0.7115650974F, 0.7119882066F, 
+			  0.7124110545F, 0.7128336409F, 0.7132559653F, 0.7136780272F, 
+			  0.7140998264F, 0.7145213624F, 0.7149426348F, 0.7153636433F, 
+			  0.7157843874F, 0.7162048668F, 0.7166250810F, 0.7170450296F, 
+			  0.7174647124F, 0.7178841289F, 0.7183032786F, 0.7187221613F, 
+			  0.7191407765F, 0.7195591239F, 0.7199772030F, 0.7203950135F, 
+			  0.7208125550F, 0.7212298271F, 0.7216468294F, 0.7220635616F, 
+			  0.7224800233F, 0.7228962140F, 0.7233121335F, 0.7237277813F, 
+			  0.7241431571F, 0.7245582604F, 0.7249730910F, 0.7253876484F, 
+			  0.7258019322F, 0.7262159422F, 0.7266296778F, 0.7270431388F, 
+			  0.7274563247F, 0.7278692353F, 0.7282818700F, 0.7286942287F, 
+			  0.7291063108F, 0.7295181160F, 0.7299296440F, 0.7303408944F, 
+			  0.7307518669F, 0.7311625609F, 0.7315729763F, 0.7319831126F, 
+			  0.7323929695F, 0.7328025466F, 0.7332118435F, 0.7336208600F, 
+			  0.7340295955F, 0.7344380499F, 0.7348462226F, 0.7352541134F, 
+			  0.7356617220F, 0.7360690478F, 0.7364760907F, 0.7368828502F, 
+			  0.7372893259F, 0.7376955176F, 0.7381014249F, 0.7385070475F, 
+			  0.7389123849F, 0.7393174368F, 0.7397222029F, 0.7401266829F, 
+			  0.7405308763F, 0.7409347829F, 0.7413384023F, 0.7417417341F, 
+			  0.7421447780F, 0.7425475338F, 0.7429500009F, 0.7433521791F, 
+			  0.7437540681F, 0.7441556674F, 0.7445569769F, 0.7449579960F, 
+			  0.7453587245F, 0.7457591621F, 0.7461593084F, 0.7465591631F, 
+			  0.7469587259F, 0.7473579963F, 0.7477569741F, 0.7481556590F, 
+			  0.7485540506F, 0.7489521486F, 0.7493499526F, 0.7497474623F, 
+			  0.7501446775F, 0.7505415977F, 0.7509382227F, 0.7513345521F, 
+			  0.7517305856F, 0.7521263229F, 0.7525217636F, 0.7529169074F, 
+			  0.7533117541F, 0.7537063032F, 0.7541005545F, 0.7544945076F, 
+			  0.7548881623F, 0.7552815182F, 0.7556745749F, 0.7560673323F, 
+			  0.7564597899F, 0.7568519474F, 0.7572438046F, 0.7576353611F, 
+			  0.7580266166F, 0.7584175708F, 0.7588082235F, 0.7591985741F, 
+			  0.7595886226F, 0.7599783685F, 0.7603678116F, 0.7607569515F, 
+			  0.7611457879F, 0.7615343206F, 0.7619225493F, 0.7623104735F, 
+			  0.7626980931F, 0.7630854078F, 0.7634724171F, 0.7638591209F, 
+			  0.7642455188F, 0.7646316106F, 0.7650173959F, 0.7654028744F, 
+			  0.7657880459F, 0.7661729100F, 0.7665574664F, 0.7669417150F, 
+			  0.7673256553F, 0.7677092871F, 0.7680926100F, 0.7684756239F, 
+			  0.7688583284F, 0.7692407232F, 0.7696228080F, 0.7700045826F, 
+			  0.7703860467F, 0.7707671999F, 0.7711480420F, 0.7715285728F, 
+			  0.7719087918F, 0.7722886989F, 0.7726682938F, 0.7730475762F, 
+			  0.7734265458F, 0.7738052023F, 0.7741835454F, 0.7745615750F, 
+			  0.7749392906F, 0.7753166921F, 0.7756937791F, 0.7760705514F, 
+			  0.7764470087F, 0.7768231508F, 0.7771989773F, 0.7775744880F, 
+			  0.7779496827F, 0.7783245610F, 0.7786991227F, 0.7790733676F, 
+			  0.7794472953F, 0.7798209056F, 0.7801941982F, 0.7805671729F, 
+			  0.7809398294F, 0.7813121675F, 0.7816841869F, 0.7820558873F, 
+			  0.7824272684F, 0.7827983301F, 0.7831690720F, 0.7835394940F, 
+			  0.7839095957F, 0.7842793768F, 0.7846488373F, 0.7850179767F, 
+			  0.7853867948F, 0.7857552914F, 0.7861234663F, 0.7864913191F, 
+			  0.7868588497F, 0.7872260578F, 0.7875929431F, 0.7879595055F, 
+			  0.7883257445F, 0.7886916601F, 0.7890572520F, 0.7894225198F, 
+			  0.7897874635F, 0.7901520827F, 0.7905163772F, 0.7908803468F, 
+			  0.7912439912F, 0.7916073102F, 0.7919703035F, 0.7923329710F, 
+			  0.7926953124F, 0.7930573274F, 0.7934190158F, 0.7937803774F, 
+			  0.7941414120F, 0.7945021193F, 0.7948624991F, 0.7952225511F, 
+			  0.7955822752F, 0.7959416711F, 0.7963007387F, 0.7966594775F, 
+			  0.7970178875F, 0.7973759685F, 0.7977337201F, 0.7980911422F, 
+			  0.7984482346F, 0.7988049970F, 0.7991614292F, 0.7995175310F, 
+			  0.7998733022F, 0.8002287426F, 0.8005838519F, 0.8009386299F, 
+			  0.8012930765F, 0.8016471914F, 0.8020009744F, 0.8023544253F, 
+			  0.8027075438F, 0.8030603298F, 0.8034127831F, 0.8037649035F, 
+			  0.8041166906F, 0.8044681445F, 0.8048192647F, 0.8051700512F, 
+			  0.8055205038F, 0.8058706222F, 0.8062204062F, 0.8065698556F, 
+			  0.8069189702F, 0.8072677499F, 0.8076161944F, 0.8079643036F, 
+			  0.8083120772F, 0.8086595151F, 0.8090066170F, 0.8093533827F, 
+			  0.8096998122F, 0.8100459051F, 0.8103916613F, 0.8107370806F, 
+			  0.8110821628F, 0.8114269077F, 0.8117713151F, 0.8121153849F, 
+			  0.8124591169F, 0.8128025108F, 0.8131455666F, 0.8134882839F, 
+			  0.8138306627F, 0.8141727027F, 0.8145144038F, 0.8148557658F, 
+			  0.8151967886F, 0.8155374718F, 0.8158778154F, 0.8162178192F, 
+			  0.8165574830F, 0.8168968067F, 0.8172357900F, 0.8175744328F, 
+			  0.8179127349F, 0.8182506962F, 0.8185883164F, 0.8189255955F, 
+			  0.8192625332F, 0.8195991295F, 0.8199353840F, 0.8202712967F, 
+			  0.8206068673F, 0.8209420958F, 0.8212769820F, 0.8216115256F, 
+			  0.8219457266F, 0.8222795848F, 0.8226131000F, 0.8229462721F, 
+			  0.8232791009F, 0.8236115863F, 0.8239437280F, 0.8242755260F, 
+			  0.8246069801F, 0.8249380901F, 0.8252688559F, 0.8255992774F, 
+			  0.8259293544F, 0.8262590867F, 0.8265884741F, 0.8269175167F, 
+			  0.8272462141F, 0.8275745663F, 0.8279025732F, 0.8282302344F, 
+			  0.8285575501F, 0.8288845199F, 0.8292111437F, 0.8295374215F, 
+			  0.8298633530F, 0.8301889382F, 0.8305141768F, 0.8308390688F, 
+			  0.8311636141F, 0.8314878124F, 0.8318116637F, 0.8321351678F, 
+			  0.8324583246F, 0.8327811340F, 0.8331035957F, 0.8334257098F, 
+			  0.8337474761F, 0.8340688944F, 0.8343899647F, 0.8347106867F, 
+			  0.8350310605F, 0.8353510857F, 0.8356707624F, 0.8359900904F, 
+			  0.8363090696F, 0.8366276999F, 0.8369459811F, 0.8372639131F, 
+			  0.8375814958F, 0.8378987292F, 0.8382156130F, 0.8385321472F, 
+			  0.8388483316F, 0.8391641662F, 0.8394796508F, 0.8397947853F, 
+			  0.8401095697F, 0.8404240037F, 0.8407380873F, 0.8410518204F, 
+			  0.8413652029F, 0.8416782347F, 0.8419909156F, 0.8423032456F, 
+			  0.8426152245F, 0.8429268523F, 0.8432381289F, 0.8435490541F, 
+			  0.8438596279F, 0.8441698502F, 0.8444797208F, 0.8447892396F, 
+			  0.8450984067F, 0.8454072218F, 0.8457156849F, 0.8460237959F, 
+			  0.8463315547F, 0.8466389612F, 0.8469460154F, 0.8472527170F, 
+			  0.8475590661F, 0.8478650625F, 0.8481707063F, 0.8484759971F, 
+			  0.8487809351F, 0.8490855201F, 0.8493897521F, 0.8496936308F, 
+			  0.8499971564F, 0.8503003286F, 0.8506031474F, 0.8509056128F, 
+			  0.8512077246F, 0.8515094828F, 0.8518108872F, 0.8521119379F, 
+			  0.8524126348F, 0.8527129777F, 0.8530129666F, 0.8533126015F, 
+			  0.8536118822F, 0.8539108087F, 0.8542093809F, 0.8545075988F, 
+			  0.8548054623F, 0.8551029712F, 0.8554001257F, 0.8556969255F, 
+			  0.8559933707F, 0.8562894611F, 0.8565851968F, 0.8568805775F, 
+			  0.8571756034F, 0.8574702743F, 0.8577645902F, 0.8580585509F, 
+			  0.8583521566F, 0.8586454070F, 0.8589383021F, 0.8592308420F, 
+			  0.8595230265F, 0.8598148556F, 0.8601063292F, 0.8603974473F, 
+			  0.8606882098F, 0.8609786167F, 0.8612686680F, 0.8615583636F, 
+			  0.8618477034F, 0.8621366874F, 0.8624253156F, 0.8627135878F, 
+			  0.8630015042F, 0.8632890646F, 0.8635762690F, 0.8638631173F, 
+			  0.8641496096F, 0.8644357457F, 0.8647215257F, 0.8650069495F, 
+			  0.8652920171F, 0.8655767283F, 0.8658610833F, 0.8661450820F, 
+			  0.8664287243F, 0.8667120102F, 0.8669949397F, 0.8672775127F, 
+			  0.8675597293F, 0.8678415894F, 0.8681230929F, 0.8684042398F, 
+			  0.8686850302F, 0.8689654640F, 0.8692455412F, 0.8695252617F, 
+			  0.8698046255F, 0.8700836327F, 0.8703622831F, 0.8706405768F, 
+			  0.8709185138F, 0.8711960940F, 0.8714733174F, 0.8717501840F, 
+			  0.8720266939F, 0.8723028469F, 0.8725786430F, 0.8728540824F, 
+			  0.8731291648F, 0.8734038905F, 0.8736782592F, 0.8739522711F, 
+			  0.8742259261F, 0.8744992242F, 0.8747721653F, 0.8750447496F, 
+			  0.8753169770F, 0.8755888475F, 0.8758603611F, 0.8761315177F, 
+			  0.8764023175F, 0.8766727603F, 0.8769428462F, 0.8772125752F, 
+			  0.8774819474F, 0.8777509626F, 0.8780196209F, 0.8782879224F, 
+			  0.8785558669F, 0.8788234546F, 0.8790906854F, 0.8793575594F, 
+			  0.8796240765F, 0.8798902368F, 0.8801560403F, 0.8804214870F, 
+			  0.8806865768F, 0.8809513099F, 0.8812156863F, 0.8814797059F, 
+			  0.8817433687F, 0.8820066749F, 0.8822696243F, 0.8825322171F, 
+			  0.8827944532F, 0.8830563327F, 0.8833178556F, 0.8835790219F, 
+			  0.8838398316F, 0.8841002848F, 0.8843603815F, 0.8846201217F, 
+			  0.8848795054F, 0.8851385327F, 0.8853972036F, 0.8856555182F, 
+			  0.8859134764F, 0.8861710783F, 0.8864283239F, 0.8866852133F, 
+			  0.8869417464F, 0.8871979234F, 0.8874537443F, 0.8877092090F, 
+			  0.8879643177F, 0.8882190704F, 0.8884734671F, 0.8887275078F, 
+			  0.8889811927F, 0.8892345216F, 0.8894874948F, 0.8897401122F, 
+			  0.8899923738F, 0.8902442798F, 0.8904958301F, 0.8907470248F, 
+			  0.8909978640F, 0.8912483477F, 0.8914984759F, 0.8917482487F, 
+			  0.8919976662F, 0.8922467284F, 0.8924954353F, 0.8927437871F, 
+			  0.8929917837F, 0.8932394252F, 0.8934867118F, 0.8937336433F, 
+			  0.8939802199F, 0.8942264417F, 0.8944723087F, 0.8947178210F, 
+			  0.8949629785F, 0.8952077815F, 0.8954522299F, 0.8956963239F, 
+			  0.8959400634F, 0.8961834486F, 0.8964264795F, 0.8966691561F, 
+			  0.8969114786F, 0.8971534470F, 0.8973950614F, 0.8976363219F, 
+			  0.8978772284F, 0.8981177812F, 0.8983579802F, 0.8985978256F, 
+			  0.8988373174F, 0.8990764556F, 0.8993152405F, 0.8995536720F, 
+			  0.8997917502F, 0.9000294751F, 0.9002668470F, 0.9005038658F, 
+			  0.9007405317F, 0.9009768446F, 0.9012128048F, 0.9014484123F, 
+			  0.9016836671F, 0.9019185693F, 0.9021531191F, 0.9023873165F, 
+			  0.9026211616F, 0.9028546546F, 0.9030877954F, 0.9033205841F, 
+			  0.9035530210F, 0.9037851059F, 0.9040168392F, 0.9042482207F, 
+			  0.9044792507F, 0.9047099293F, 0.9049402564F, 0.9051702323F, 
+			  0.9053998569F, 0.9056291305F, 0.9058580531F, 0.9060866248F, 
+			  0.9063148457F, 0.9065427159F, 0.9067702355F, 0.9069974046F, 
+			  0.9072242233F, 0.9074506917F, 0.9076768100F, 0.9079025782F, 
+			  0.9081279964F, 0.9083530647F, 0.9085777833F, 0.9088021523F, 
+			  0.9090261717F, 0.9092498417F, 0.9094731623F, 0.9096961338F, 
+			  0.9099187561F, 0.9101410295F, 0.9103629540F, 0.9105845297F, 
+			  0.9108057568F, 0.9110266354F, 0.9112471656F, 0.9114673475F, 
+			  0.9116871812F, 0.9119066668F, 0.9121258046F, 0.9123445945F, 
+			  0.9125630367F, 0.9127811314F, 0.9129988786F, 0.9132162785F, 
+			  0.9134333312F, 0.9136500368F, 0.9138663954F, 0.9140824073F, 
+			  0.9142980724F, 0.9145133910F, 0.9147283632F, 0.9149429890F, 
+			  0.9151572687F, 0.9153712023F, 0.9155847900F, 0.9157980319F, 
+			  0.9160109282F, 0.9162234790F, 0.9164356844F, 0.9166475445F, 
+			  0.9168590595F, 0.9170702296F, 0.9172810548F, 0.9174915354F, 
+			  0.9177016714F, 0.9179114629F, 0.9181209102F, 0.9183300134F, 
+			  0.9185387726F, 0.9187471879F, 0.9189552595F, 0.9191629876F, 
+			  0.9193703723F, 0.9195774136F, 0.9197841119F, 0.9199904672F, 
+			  0.9201964797F, 0.9204021495F, 0.9206074767F, 0.9208124616F, 
+			  0.9210171043F, 0.9212214049F, 0.9214253636F, 0.9216289805F, 
+			  0.9218322558F, 0.9220351896F, 0.9222377821F, 0.9224400335F, 
+			  0.9226419439F, 0.9228435134F, 0.9230447423F, 0.9232456307F, 
+			  0.9234461787F, 0.9236463865F, 0.9238462543F, 0.9240457822F, 
+			  0.9242449704F, 0.9244438190F, 0.9246423282F, 0.9248404983F, 
+			  0.9250383293F, 0.9252358214F, 0.9254329747F, 0.9256297896F, 
+			  0.9258262660F, 0.9260224042F, 0.9262182044F, 0.9264136667F, 
+			  0.9266087913F, 0.9268035783F, 0.9269980280F, 0.9271921405F, 
+			  0.9273859160F, 0.9275793546F, 0.9277724566F, 0.9279652221F, 
+			  0.9281576513F, 0.9283497443F, 0.9285415014F, 0.9287329227F, 
+			  0.9289240084F, 0.9291147586F, 0.9293051737F, 0.9294952536F, 
+			  0.9296849987F, 0.9298744091F, 0.9300634850F, 0.9302522266F, 
+			  0.9304406340F, 0.9306287074F, 0.9308164471F, 0.9310038532F, 
+			  0.9311909259F, 0.9313776654F, 0.9315640719F, 0.9317501455F, 
+			  0.9319358865F, 0.9321212951F, 0.9323063713F, 0.9324911155F, 
+			  0.9326755279F, 0.9328596085F, 0.9330433577F, 0.9332267756F, 
+			  0.9334098623F, 0.9335926182F, 0.9337750434F, 0.9339571380F, 
+			  0.9341389023F, 0.9343203366F, 0.9345014409F, 0.9346822155F, 
+			  0.9348626606F, 0.9350427763F, 0.9352225630F, 0.9354020207F, 
+			  0.9355811498F, 0.9357599503F, 0.9359384226F, 0.9361165667F, 
+			  0.9362943830F, 0.9364718716F, 0.9366490327F, 0.9368258666F, 
+			  0.9370023733F, 0.9371785533F, 0.9373544066F, 0.9375299335F, 
+			  0.9377051341F, 0.9378800087F, 0.9380545576F, 0.9382287809F, 
+			  0.9384026787F, 0.9385762515F, 0.9387494993F, 0.9389224223F, 
+			  0.9390950209F, 0.9392672951F, 0.9394392453F, 0.9396108716F, 
+			  0.9397821743F, 0.9399531536F, 0.9401238096F, 0.9402941427F, 
+			  0.9404641530F, 0.9406338407F, 0.9408032061F, 0.9409722495F, 
+			  0.9411409709F, 0.9413093707F, 0.9414774491F, 0.9416452062F, 
+			  0.9418126424F, 0.9419797579F, 0.9421465528F, 0.9423130274F, 
+			  0.9424791819F, 0.9426450166F, 0.9428105317F, 0.9429757274F, 
+			  0.9431406039F, 0.9433051616F, 0.9434694005F, 0.9436333209F, 
+			  0.9437969232F, 0.9439602074F, 0.9441231739F, 0.9442858229F, 
+			  0.9444481545F, 0.9446101691F, 0.9447718669F, 0.9449332481F, 
+			  0.9450943129F, 0.9452550617F, 0.9454154945F, 0.9455756118F, 
+			  0.9457354136F, 0.9458949003F, 0.9460540721F, 0.9462129292F, 
+			  0.9463714719F, 0.9465297003F, 0.9466876149F, 0.9468452157F, 
+			  0.9470025031F, 0.9471594772F, 0.9473161384F, 0.9474724869F, 
+			  0.9476285229F, 0.9477842466F, 0.9479396584F, 0.9480947585F, 
+			  0.9482495470F, 0.9484040243F, 0.9485581906F, 0.9487120462F, 
+			  0.9488655913F, 0.9490188262F, 0.9491717511F, 0.9493243662F, 
+			  0.9494766718F, 0.9496286683F, 0.9497803557F, 0.9499317345F, 
+			  0.9500828047F, 0.9502335668F, 0.9503840209F, 0.9505341673F, 
+			  0.9506840062F, 0.9508335380F, 0.9509827629F, 0.9511316810F, 
+			  0.9512802928F, 0.9514285984F, 0.9515765982F, 0.9517242923F, 
+			  0.9518716810F, 0.9520187646F, 0.9521655434F, 0.9523120176F, 
+			  0.9524581875F, 0.9526040534F, 0.9527496154F, 0.9528948739F, 
+			  0.9530398292F, 0.9531844814F, 0.9533288310F, 0.9534728780F, 
+			  0.9536166229F, 0.9537600659F, 0.9539032071F, 0.9540460470F, 
+			  0.9541885858F, 0.9543308237F, 0.9544727611F, 0.9546143981F, 
+			  0.9547557351F, 0.9548967723F, 0.9550375100F, 0.9551779485F, 
+			  0.9553180881F, 0.9554579290F, 0.9555974714F, 0.9557367158F, 
+			  0.9558756623F, 0.9560143112F, 0.9561526628F, 0.9562907174F, 
+			  0.9564284752F, 0.9565659366F, 0.9567031017F, 0.9568399710F, 
+			  0.9569765446F, 0.9571128229F, 0.9572488061F, 0.9573844944F, 
+			  0.9575198883F, 0.9576549879F, 0.9577897936F, 0.9579243056F, 
+			  0.9580585242F, 0.9581924497F, 0.9583260824F, 0.9584594226F, 
+			  0.9585924705F, 0.9587252264F, 0.9588576906F, 0.9589898634F, 
+			  0.9591217452F, 0.9592533360F, 0.9593846364F, 0.9595156465F, 
+			  0.9596463666F, 0.9597767971F, 0.9599069382F, 0.9600367901F, 
+			  0.9601663533F, 0.9602956279F, 0.9604246143F, 0.9605533128F, 
+			  0.9606817236F, 0.9608098471F, 0.9609376835F, 0.9610652332F, 
+			  0.9611924963F, 0.9613194733F, 0.9614461644F, 0.9615725699F, 
+			  0.9616986901F, 0.9618245253F, 0.9619500757F, 0.9620753418F, 
+			  0.9622003238F, 0.9623250219F, 0.9624494365F, 0.9625735679F, 
+			  0.9626974163F, 0.9628209821F, 0.9629442656F, 0.9630672671F, 
+			  0.9631899868F, 0.9633124251F, 0.9634345822F, 0.9635564585F, 
+			  0.9636780543F, 0.9637993699F, 0.9639204056F, 0.9640411616F, 
+			  0.9641616383F, 0.9642818359F, 0.9644017549F, 0.9645213955F, 
+			  0.9646407579F, 0.9647598426F, 0.9648786497F, 0.9649971797F, 
+			  0.9651154328F, 0.9652334092F, 0.9653511095F, 0.9654685337F, 
+			  0.9655856823F, 0.9657025556F, 0.9658191538F, 0.9659354773F, 
+			  0.9660515263F, 0.9661673013F, 0.9662828024F, 0.9663980300F, 
+			  0.9665129845F, 0.9666276660F, 0.9667420750F, 0.9668562118F, 
+			  0.9669700766F, 0.9670836698F, 0.9671969917F, 0.9673100425F, 
+			  0.9674228227F, 0.9675353325F, 0.9676475722F, 0.9677595422F, 
+			  0.9678712428F, 0.9679826742F, 0.9680938368F, 0.9682047309F, 
+			  0.9683153569F, 0.9684257150F, 0.9685358056F, 0.9686456289F, 
+			  0.9687551853F, 0.9688644752F, 0.9689734987F, 0.9690822564F, 
+			  0.9691907483F, 0.9692989750F, 0.9694069367F, 0.9695146337F, 
+			  0.9696220663F, 0.9697292349F, 0.9698361398F, 0.9699427813F, 
+			  0.9700491597F, 0.9701552754F, 0.9702611286F, 0.9703667197F, 
+			  0.9704720490F, 0.9705771169F, 0.9706819236F, 0.9707864695F, 
+			  0.9708907549F, 0.9709947802F, 0.9710985456F, 0.9712020514F, 
+			  0.9713052981F, 0.9714082859F, 0.9715110151F, 0.9716134862F, 
+			  0.9717156993F, 0.9718176549F, 0.9719193532F, 0.9720207946F, 
+			  0.9721219794F, 0.9722229080F, 0.9723235806F, 0.9724239976F, 
+			  0.9725241593F, 0.9726240661F, 0.9727237183F, 0.9728231161F, 
+			  0.9729222601F, 0.9730211503F, 0.9731197873F, 0.9732181713F, 
+			  0.9733163027F, 0.9734141817F, 0.9735118088F, 0.9736091842F, 
+			  0.9737063083F, 0.9738031814F, 0.9738998039F, 0.9739961760F, 
+			  0.9740922981F, 0.9741881706F, 0.9742837938F, 0.9743791680F, 
+			  0.9744742935F, 0.9745691707F, 0.9746637999F, 0.9747581814F, 
+			  0.9748523157F, 0.9749462029F, 0.9750398435F, 0.9751332378F, 
+			  0.9752263861F, 0.9753192887F, 0.9754119461F, 0.9755043585F, 
+			  0.9755965262F, 0.9756884496F, 0.9757801291F, 0.9758715650F, 
+			  0.9759627575F, 0.9760537071F, 0.9761444141F, 0.9762348789F, 
+			  0.9763251016F, 0.9764150828F, 0.9765048228F, 0.9765943218F, 
+			  0.9766835802F, 0.9767725984F, 0.9768613767F, 0.9769499154F, 
+			  0.9770382149F, 0.9771262755F, 0.9772140976F, 0.9773016815F, 
+			  0.9773890275F, 0.9774761360F, 0.9775630073F, 0.9776496418F, 
+			  0.9777360398F, 0.9778222016F, 0.9779081277F, 0.9779938182F, 
+			  0.9780792736F, 0.9781644943F, 0.9782494805F, 0.9783342326F, 
+			  0.9784187509F, 0.9785030359F, 0.9785870877F, 0.9786709069F, 
+			  0.9787544936F, 0.9788378484F, 0.9789209714F, 0.9790038631F, 
+			  0.9790865238F, 0.9791689538F, 0.9792511535F, 0.9793331232F, 
+			  0.9794148633F, 0.9794963742F, 0.9795776561F, 0.9796587094F, 
+			  0.9797395345F, 0.9798201316F, 0.9799005013F, 0.9799806437F, 
+			  0.9800605593F, 0.9801402483F, 0.9802197112F, 0.9802989483F, 
+			  0.9803779600F, 0.9804567465F, 0.9805353082F, 0.9806136455F, 
+			  0.9806917587F, 0.9807696482F, 0.9808473143F, 0.9809247574F, 
+			  0.9810019778F, 0.9810789759F, 0.9811557519F, 0.9812323064F, 
+			  0.9813086395F, 0.9813847517F, 0.9814606433F, 0.9815363147F, 
+			  0.9816117662F, 0.9816869981F, 0.9817620108F, 0.9818368047F, 
+			  0.9819113801F, 0.9819857374F, 0.9820598769F, 0.9821337989F, 
+			  0.9822075038F, 0.9822809920F, 0.9823542638F, 0.9824273195F, 
+			  0.9825001596F, 0.9825727843F, 0.9826451940F, 0.9827173891F, 
+			  0.9827893700F, 0.9828611368F, 0.9829326901F, 0.9830040302F, 
+			  0.9830751574F, 0.9831460720F, 0.9832167745F, 0.9832872652F, 
+			  0.9833575444F, 0.9834276124F, 0.9834974697F, 0.9835671166F, 
+			  0.9836365535F, 0.9837057806F, 0.9837747983F, 0.9838436071F, 
+			  0.9839122072F, 0.9839805990F, 0.9840487829F, 0.9841167591F, 
+			  0.9841845282F, 0.9842520903F, 0.9843194459F, 0.9843865953F, 
+			  0.9844535389F, 0.9845202771F, 0.9845868101F, 0.9846531383F, 
+			  0.9847192622F, 0.9847851820F, 0.9848508980F, 0.9849164108F, 
+			  0.9849817205F, 0.9850468276F, 0.9851117324F, 0.9851764352F, 
+			  0.9852409365F, 0.9853052366F, 0.9853693358F, 0.9854332344F, 
+			  0.9854969330F, 0.9855604317F, 0.9856237309F, 0.9856868310F, 
+			  0.9857497325F, 0.9858124355F, 0.9858749404F, 0.9859372477F, 
+			  0.9859993577F, 0.9860612707F, 0.9861229871F, 0.9861845072F, 
+			  0.9862458315F, 0.9863069601F, 0.9863678936F, 0.9864286322F, 
+			  0.9864891764F, 0.9865495264F, 0.9866096826F, 0.9866696454F, 
+			  0.9867294152F, 0.9867889922F, 0.9868483769F, 0.9869075695F, 
+			  0.9869665706F, 0.9870253803F, 0.9870839991F, 0.9871424273F, 
+			  0.9872006653F, 0.9872587135F, 0.9873165721F, 0.9873742415F, 
+			  0.9874317222F, 0.9874890144F, 0.9875461185F, 0.9876030348F, 
+			  0.9876597638F, 0.9877163057F, 0.9877726610F, 0.9878288300F, 
+			  0.9878848130F, 0.9879406104F, 0.9879962225F, 0.9880516497F, 
+			  0.9881068924F, 0.9881619509F, 0.9882168256F, 0.9882715168F, 
+			  0.9883260249F, 0.9883803502F, 0.9884344931F, 0.9884884539F, 
+			  0.9885422331F, 0.9885958309F, 0.9886492477F, 0.9887024838F, 
+			  0.9887555397F, 0.9888084157F, 0.9888611120F, 0.9889136292F, 
+			  0.9889659675F, 0.9890181273F, 0.9890701089F, 0.9891219128F, 
+			  0.9891735392F, 0.9892249885F, 0.9892762610F, 0.9893273572F, 
+			  0.9893782774F, 0.9894290219F, 0.9894795911F, 0.9895299853F, 
+			  0.9895802049F, 0.9896302502F, 0.9896801217F, 0.9897298196F, 
+			  0.9897793443F, 0.9898286961F, 0.9898778755F, 0.9899268828F, 
+			  0.9899757183F, 0.9900243823F, 0.9900728753F, 0.9901211976F, 
+			  0.9901693495F, 0.9902173314F, 0.9902651436F, 0.9903127865F, 
+			  0.9903602605F, 0.9904075659F, 0.9904547031F, 0.9905016723F, 
+			  0.9905484740F, 0.9905951086F, 0.9906415763F, 0.9906878775F, 
+			  0.9907340126F, 0.9907799819F, 0.9908257858F, 0.9908714247F, 
+			  0.9909168988F, 0.9909622086F, 0.9910073543F, 0.9910523364F, 
+			  0.9910971552F, 0.9911418110F, 0.9911863042F, 0.9912306351F, 
+			  0.9912748042F, 0.9913188117F, 0.9913626580F, 0.9914063435F, 
+			  0.9914498684F, 0.9914932333F, 0.9915364383F, 0.9915794839F, 
+			  0.9916223703F, 0.9916650981F, 0.9917076674F, 0.9917500787F, 
+			  0.9917923323F, 0.9918344286F, 0.9918763679F, 0.9919181505F, 
+			  0.9919597769F, 0.9920012473F, 0.9920425621F, 0.9920837217F, 
+			  0.9921247263F, 0.9921655765F, 0.9922062724F, 0.9922468145F, 
+			  0.9922872030F, 0.9923274385F, 0.9923675211F, 0.9924074513F, 
+			  0.9924472294F, 0.9924868557F, 0.9925263306F, 0.9925656544F, 
+			  0.9926048275F, 0.9926438503F, 0.9926827230F, 0.9927214461F, 
+			  0.9927600199F, 0.9927984446F, 0.9928367208F, 0.9928748486F, 
+			  0.9929128285F, 0.9929506608F, 0.9929883459F, 0.9930258841F, 
+			  0.9930632757F, 0.9931005211F, 0.9931376207F, 0.9931745747F, 
+			  0.9932113836F, 0.9932480476F, 0.9932845671F, 0.9933209425F, 
+			  0.9933571742F, 0.9933932623F, 0.9934292074F, 0.9934650097F, 
+			  0.9935006696F, 0.9935361874F, 0.9935715635F, 0.9936067982F, 
+			  0.9936418919F, 0.9936768448F, 0.9937116574F, 0.9937463300F, 
+			  0.9937808629F, 0.9938152565F, 0.9938495111F, 0.9938836271F, 
+			  0.9939176047F, 0.9939514444F, 0.9939851465F, 0.9940187112F, 
+			  0.9940521391F, 0.9940854303F, 0.9941185853F, 0.9941516044F, 
+			  0.9941844879F, 0.9942172361F, 0.9942498495F, 0.9942823283F, 
+			  0.9943146729F, 0.9943468836F, 0.9943789608F, 0.9944109047F, 
+			  0.9944427158F, 0.9944743944F, 0.9945059408F, 0.9945373553F, 
+			  0.9945686384F, 0.9945997902F, 0.9946308112F, 0.9946617017F, 
+			  0.9946924621F, 0.9947230926F, 0.9947535937F, 0.9947839656F, 
+			  0.9948142086F, 0.9948443232F, 0.9948743097F, 0.9949041683F, 
+			  0.9949338995F, 0.9949635035F, 0.9949929807F, 0.9950223315F, 
+			  0.9950515561F, 0.9950806549F, 0.9951096282F, 0.9951384764F, 
+			  0.9951671998F, 0.9951957987F, 0.9952242735F, 0.9952526245F, 
+			  0.9952808520F, 0.9953089564F, 0.9953369380F, 0.9953647971F, 
+			  0.9953925340F, 0.9954201491F, 0.9954476428F, 0.9954750153F, 
+			  0.9955022670F, 0.9955293981F, 0.9955564092F, 0.9955833003F, 
+			  0.9956100720F, 0.9956367245F, 0.9956632582F, 0.9956896733F, 
+			  0.9957159703F, 0.9957421494F, 0.9957682110F, 0.9957941553F, 
+			  0.9958199828F, 0.9958456937F, 0.9958712884F, 0.9958967672F, 
+			  0.9959221305F, 0.9959473784F, 0.9959725115F, 0.9959975300F, 
+			  0.9960224342F, 0.9960472244F, 0.9960719011F, 0.9960964644F, 
+			  0.9961209148F, 0.9961452525F, 0.9961694779F, 0.9961935913F, 
+			  0.9962175930F, 0.9962414834F, 0.9962652627F, 0.9962889313F, 
+			  0.9963124895F, 0.9963359377F, 0.9963592761F, 0.9963825051F, 
+			  0.9964056250F, 0.9964286361F, 0.9964515387F, 0.9964743332F, 
+			  0.9964970198F, 0.9965195990F, 0.9965420709F, 0.9965644360F, 
+			  0.9965866946F, 0.9966088469F, 0.9966308932F, 0.9966528340F, 
+			  0.9966746695F, 0.9966964001F, 0.9967180260F, 0.9967395475F, 
+			  0.9967609651F, 0.9967822789F, 0.9968034894F, 0.9968245968F, 
+			  0.9968456014F, 0.9968665036F, 0.9968873037F, 0.9969080019F, 
+			  0.9969285987F, 0.9969490942F, 0.9969694889F, 0.9969897830F, 
+			  0.9970099769F, 0.9970300708F, 0.9970500651F, 0.9970699601F, 
+			  0.9970897561F, 0.9971094533F, 0.9971290522F, 0.9971485531F, 
+			  0.9971679561F, 0.9971872617F, 0.9972064702F, 0.9972255818F, 
+			  0.9972445968F, 0.9972635157F, 0.9972823386F, 0.9973010659F, 
+			  0.9973196980F, 0.9973382350F, 0.9973566773F, 0.9973750253F, 
+			  0.9973932791F, 0.9974114392F, 0.9974295059F, 0.9974474793F, 
+			  0.9974653599F, 0.9974831480F, 0.9975008438F, 0.9975184476F, 
+			  0.9975359598F, 0.9975533806F, 0.9975707104F, 0.9975879495F, 
+			  0.9976050981F, 0.9976221566F, 0.9976391252F, 0.9976560043F, 
+			  0.9976727941F, 0.9976894950F, 0.9977061073F, 0.9977226312F, 
+			  0.9977390671F, 0.9977554152F, 0.9977716759F, 0.9977878495F, 
+			  0.9978039361F, 0.9978199363F, 0.9978358501F, 0.9978516780F, 
+			  0.9978674202F, 0.9978830771F, 0.9978986488F, 0.9979141358F, 
+			  0.9979295383F, 0.9979448566F, 0.9979600909F, 0.9979752417F, 
+			  0.9979903091F, 0.9980052936F, 0.9980201952F, 0.9980350145F, 
+			  0.9980497515F, 0.9980644067F, 0.9980789804F, 0.9980934727F, 
+			  0.9981078841F, 0.9981222147F, 0.9981364649F, 0.9981506350F, 
+			  0.9981647253F, 0.9981787360F, 0.9981926674F, 0.9982065199F, 
+			  0.9982202936F, 0.9982339890F, 0.9982476062F, 0.9982611456F, 
+			  0.9982746074F, 0.9982879920F, 0.9983012996F, 0.9983145304F, 
+			  0.9983276849F, 0.9983407632F, 0.9983537657F, 0.9983666926F, 
+			  0.9983795442F, 0.9983923208F, 0.9984050226F, 0.9984176501F, 
+			  0.9984302033F, 0.9984426827F, 0.9984550884F, 0.9984674208F, 
+			  0.9984796802F, 0.9984918667F, 0.9985039808F, 0.9985160227F, 
+			  0.9985279926F, 0.9985398909F, 0.9985517177F, 0.9985634734F, 
+			  0.9985751583F, 0.9985867727F, 0.9985983167F, 0.9986097907F, 
+			  0.9986211949F, 0.9986325297F, 0.9986437953F, 0.9986549919F, 
+			  0.9986661199F, 0.9986771795F, 0.9986881710F, 0.9986990946F, 
+			  0.9987099507F, 0.9987207394F, 0.9987314611F, 0.9987421161F, 
+			  0.9987527045F, 0.9987632267F, 0.9987736829F, 0.9987840734F, 
+			  0.9987943985F, 0.9988046584F, 0.9988148534F, 0.9988249838F, 
+			  0.9988350498F, 0.9988450516F, 0.9988549897F, 0.9988648641F, 
+			  0.9988746753F, 0.9988844233F, 0.9988941086F, 0.9989037313F, 
+			  0.9989132918F, 0.9989227902F, 0.9989322269F, 0.9989416021F, 
+			  0.9989509160F, 0.9989601690F, 0.9989693613F, 0.9989784931F, 
+			  0.9989875647F, 0.9989965763F, 0.9990055283F, 0.9990144208F, 
+			  0.9990232541F, 0.9990320286F, 0.9990407443F, 0.9990494016F, 
+			  0.9990580008F, 0.9990665421F, 0.9990750257F, 0.9990834519F, 
+			  0.9990918209F, 0.9991001331F, 0.9991083886F, 0.9991165877F, 
+			  0.9991247307F, 0.9991328177F, 0.9991408491F, 0.9991488251F, 
+			  0.9991567460F, 0.9991646119F, 0.9991724232F, 0.9991801801F, 
+			  0.9991878828F, 0.9991955316F, 0.9992031267F, 0.9992106684F, 
+			  0.9992181569F, 0.9992255925F, 0.9992329753F, 0.9992403057F, 
+			  0.9992475839F, 0.9992548101F, 0.9992619846F, 0.9992691076F, 
+			  0.9992761793F, 0.9992832001F, 0.9992901701F, 0.9992970895F, 
+			  0.9993039587F, 0.9993107777F, 0.9993175470F, 0.9993242667F, 
+			  0.9993309371F, 0.9993375583F, 0.9993441307F, 0.9993506545F, 
+			  0.9993571298F, 0.9993635570F, 0.9993699362F, 0.9993762678F, 
+			  0.9993825519F, 0.9993887887F, 0.9993949785F, 0.9994011216F, 
+			  0.9994072181F, 0.9994132683F, 0.9994192725F, 0.9994252307F, 
+			  0.9994311434F, 0.9994370107F, 0.9994428327F, 0.9994486099F, 
+			  0.9994543423F, 0.9994600303F, 0.9994656739F, 0.9994712736F, 
+			  0.9994768294F, 0.9994823417F, 0.9994878105F, 0.9994932363F, 
+			  0.9994986191F, 0.9995039592F, 0.9995092568F, 0.9995145122F, 
+			  0.9995197256F, 0.9995248971F, 0.9995300270F, 0.9995351156F, 
+			  0.9995401630F, 0.9995451695F, 0.9995501352F, 0.9995550604F, 
+			  0.9995599454F, 0.9995647903F, 0.9995695953F, 0.9995743607F, 
+			  0.9995790866F, 0.9995837734F, 0.9995884211F, 0.9995930300F, 
+			  0.9995976004F, 0.9996021324F, 0.9996066263F, 0.9996110822F, 
+			  0.9996155004F, 0.9996198810F, 0.9996242244F, 0.9996285306F, 
+			  0.9996327999F, 0.9996370326F, 0.9996412287F, 0.9996453886F, 
+			  0.9996495125F, 0.9996536004F, 0.9996576527F, 0.9996616696F, 
+			  0.9996656512F, 0.9996695977F, 0.9996735094F, 0.9996773865F, 
+			  0.9996812291F, 0.9996850374F, 0.9996888118F, 0.9996925523F, 
+			  0.9996962591F, 0.9996999325F, 0.9997035727F, 0.9997071798F, 
+			  0.9997107541F, 0.9997142957F, 0.9997178049F, 0.9997212818F, 
+			  0.9997247266F, 0.9997281396F, 0.9997315209F, 0.9997348708F, 
+			  0.9997381893F, 0.9997414767F, 0.9997447333F, 0.9997479591F, 
+			  0.9997511544F, 0.9997543194F, 0.9997574542F, 0.9997605591F, 
+			  0.9997636342F, 0.9997666797F, 0.9997696958F, 0.9997726828F, 
+			  0.9997756407F, 0.9997785698F, 0.9997814703F, 0.9997843423F, 
+			  0.9997871860F, 0.9997900016F, 0.9997927894F, 0.9997955494F, 
+			  0.9997982818F, 0.9998009869F, 0.9998036648F, 0.9998063157F, 
+			  0.9998089398F, 0.9998115373F, 0.9998141082F, 0.9998166529F, 
+			  0.9998191715F, 0.9998216642F, 0.9998241311F, 0.9998265724F, 
+			  0.9998289884F, 0.9998313790F, 0.9998337447F, 0.9998360854F, 
+			  0.9998384015F, 0.9998406930F, 0.9998429602F, 0.9998452031F, 
+			  0.9998474221F, 0.9998496171F, 0.9998517885F, 0.9998539364F, 
+			  0.9998560610F, 0.9998581624F, 0.9998602407F, 0.9998622962F, 
+			  0.9998643291F, 0.9998663394F, 0.9998683274F, 0.9998702932F, 
+			  0.9998722370F, 0.9998741589F, 0.9998760591F, 0.9998779378F, 
+			  0.9998797952F, 0.9998816313F, 0.9998834464F, 0.9998852406F, 
+			  0.9998870141F, 0.9998887670F, 0.9998904995F, 0.9998922117F, 
+			  0.9998939039F, 0.9998955761F, 0.9998972285F, 0.9998988613F, 
+			  0.9999004746F, 0.9999020686F, 0.9999036434F, 0.9999051992F, 
+			  0.9999067362F, 0.9999082544F, 0.9999097541F, 0.9999112354F, 
+			  0.9999126984F, 0.9999141433F, 0.9999155703F, 0.9999169794F, 
+			  0.9999183709F, 0.9999197449F, 0.9999211014F, 0.9999224408F, 
+			  0.9999237631F, 0.9999250684F, 0.9999263570F, 0.9999276289F, 
+			  0.9999288843F, 0.9999301233F, 0.9999313461F, 0.9999325529F, 
+			  0.9999337437F, 0.9999349187F, 0.9999360780F, 0.9999372218F, 
+			  0.9999383503F, 0.9999394635F, 0.9999405616F, 0.9999416447F, 
+			  0.9999427129F, 0.9999437665F, 0.9999448055F, 0.9999458301F, 
+			  0.9999468404F, 0.9999478365F, 0.9999488185F, 0.9999497867F, 
+			  0.9999507411F, 0.9999516819F, 0.9999526091F, 0.9999535230F, 
+			  0.9999544236F, 0.9999553111F, 0.9999561856F, 0.9999570472F, 
+			  0.9999578960F, 0.9999587323F, 0.9999595560F, 0.9999603674F, 
+			  0.9999611666F, 0.9999619536F, 0.9999627286F, 0.9999634917F, 
+			  0.9999642431F, 0.9999649828F, 0.9999657110F, 0.9999664278F, 
+			  0.9999671334F, 0.9999678278F, 0.9999685111F, 0.9999691835F, 
+			  0.9999698451F, 0.9999704960F, 0.9999711364F, 0.9999717662F, 
+			  0.9999723858F, 0.9999729950F, 0.9999735942F, 0.9999741834F, 
+			  0.9999747626F, 0.9999753321F, 0.9999758919F, 0.9999764421F, 
+			  0.9999769828F, 0.9999775143F, 0.9999780364F, 0.9999785495F, 
+			  0.9999790535F, 0.9999795485F, 0.9999800348F, 0.9999805124F, 
+			  0.9999809813F, 0.9999814417F, 0.9999818938F, 0.9999823375F, 
+			  0.9999827731F, 0.9999832005F, 0.9999836200F, 0.9999840316F, 
+			  0.9999844353F, 0.9999848314F, 0.9999852199F, 0.9999856008F, 
+			  0.9999859744F, 0.9999863407F, 0.9999866997F, 0.9999870516F, 
+			  0.9999873965F, 0.9999877345F, 0.9999880656F, 0.9999883900F, 
+			  0.9999887078F, 0.9999890190F, 0.9999893237F, 0.9999896220F, 
+			  0.9999899140F, 0.9999901999F, 0.9999904796F, 0.9999907533F, 
+			  0.9999910211F, 0.9999912830F, 0.9999915391F, 0.9999917896F, 
+			  0.9999920345F, 0.9999922738F, 0.9999925077F, 0.9999927363F, 
+			  0.9999929596F, 0.9999931777F, 0.9999933907F, 0.9999935987F, 
+			  0.9999938018F, 0.9999940000F, 0.9999941934F, 0.9999943820F, 
+			  0.9999945661F, 0.9999947456F, 0.9999949206F, 0.9999950912F, 
+			  0.9999952575F, 0.9999954195F, 0.9999955773F, 0.9999957311F, 
+			  0.9999958807F, 0.9999960265F, 0.9999961683F, 0.9999963063F, 
+			  0.9999964405F, 0.9999965710F, 0.9999966979F, 0.9999968213F, 
+			  0.9999969412F, 0.9999970576F, 0.9999971707F, 0.9999972805F, 
+			  0.9999973871F, 0.9999974905F, 0.9999975909F, 0.9999976881F, 
+			  0.9999977824F, 0.9999978738F, 0.9999979624F, 0.9999980481F, 
+			  0.9999981311F, 0.9999982115F, 0.9999982892F, 0.9999983644F, 
+			  0.9999984370F, 0.9999985072F, 0.9999985750F, 0.9999986405F, 
+			  0.9999987037F, 0.9999987647F, 0.9999988235F, 0.9999988802F, 
+			  0.9999989348F, 0.9999989873F, 0.9999990379F, 0.9999990866F, 
+			  0.9999991334F, 0.9999991784F, 0.9999992217F, 0.9999992632F, 
+			  0.9999993030F, 0.9999993411F, 0.9999993777F, 0.9999994128F, 
+			  0.9999994463F, 0.9999994784F, 0.9999995091F, 0.9999995384F, 
+			  0.9999995663F, 0.9999995930F, 0.9999996184F, 0.9999996426F, 
+			  0.9999996657F, 0.9999996876F, 0.9999997084F, 0.9999997282F, 
+			  0.9999997469F, 0.9999997647F, 0.9999997815F, 0.9999997973F, 
+			  0.9999998123F, 0.9999998265F, 0.9999998398F, 0.9999998524F, 
+			  0.9999998642F, 0.9999998753F, 0.9999998857F, 0.9999998954F, 
+			  0.9999999045F, 0.9999999130F, 0.9999999209F, 0.9999999282F, 
+			  0.9999999351F, 0.9999999414F, 0.9999999472F, 0.9999999526F, 
+			  0.9999999576F, 0.9999999622F, 0.9999999664F, 0.9999999702F, 
+			  0.9999999737F, 0.9999999769F, 0.9999999798F, 0.9999999824F, 
+			  0.9999999847F, 0.9999999868F, 0.9999999887F, 0.9999999904F, 
+			  0.9999999919F, 0.9999999932F, 0.9999999943F, 0.9999999953F, 
+			  0.9999999961F, 0.9999999969F, 0.9999999975F, 0.9999999980F, 
+			  0.9999999985F, 0.9999999988F, 0.9999999991F, 0.9999999993F, 
+			  0.9999999995F, 0.9999999997F, 0.9999999998F, 0.9999999999F, 
+			  0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, 
+			  1.0000000000F, 1.0000000000F, 1.0000000000F, 1.0000000000F, 
+			};
+	
+	static float[][] vwin = {
+		vwin64,
+		vwin128,
+		vwin256,
+		vwin512,
+		vwin1024,
+		vwin2048,
+		vwin4096,
+		vwin8192,
+	};
+	
+	public vorbis_window() {}
+
+	public float[] vorbis_window_get( int n ) {
+	
+		return vwin[n];
+	}
+
+	public void _vorbis_apply_window( float[] d, int[] winno, int[] blocksizes, int lW, int W, int nW ) {
+	
+		// lW=(W?lW:0);
+		// nW=(W?nW:0);
+		if ( W <= 0 ) {
+			lW = 0;
+			nW = 0;
+		}
+	
+		float[] windowLW = vwin[ winno[lW] ];
+		float[] windowNW = vwin[ winno[nW] ];
+	
+		int n = blocksizes[W];
+		int ln = blocksizes[lW];
+		int rn = blocksizes[nW];
+	
+		int leftbegin = n/4-ln/4;
+		int leftend = leftbegin+ln/2;
+	
+		int rightbegin = n/2+n/4-rn/4;
+		int rightend = rightbegin+rn/2;
+	
+		int i,p;
+	
+		for ( i=0; i < leftbegin; i++ )
+			d[i] = 0.f;
+	
+		for ( p=0; i < leftend; i++,p++ )
+			d[i] *= windowLW[p];
+	
+		for ( i=rightbegin, p=rn/2-1; i < rightend; i++, p-- )
+			d[i] *= windowNW[p];
+	
+		for ( ; i < n; i++ )
+			d[i] = 0.f;
+	}
+	
+}
\ No newline at end of file


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbis_window.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vorbisenc.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vorbisenc.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vorbisenc.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,990 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import org.xiph.libvorbis.modes.*;
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+
+/*********************************************************************
+   Encoding using a VBR quality mode.  The usable range is -.1
+   (lowest quality, smallest file) to 1. (highest quality, largest file).
+   Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR 
+  
+   ret = vorbis_encode_init_vbr(&vi,2,44100,.4);
+
+   ---------------------------------------------------------------------
+
+   Encoding using an average bitrate mode (ABR).
+   example: 44kHz stereo coupled, average 128kbps VBR 
+  
+   ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1);
+
+   ---------------------------------------------------------------------
+
+   Encode using a quality mode, but select that quality mode by asking for
+   an approximate bitrate.  This is not ABR, it is true VBR, but selected
+   using the bitrate interface, and then turning bitrate management off:
+
+   ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) ||
+           vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE_AVG,NULL) ||
+           vorbis_encode_setup_init(&vi));
+
+   *********************************************************************/
+
+
+public class vorbisenc {
+
+	private vorbis_info vi;
+	
+	private ve_setup_data_template[] setup_list;
+
+
+	public vorbisenc() {
+		
+		setup_44 ve_setup_44_stereo = new org.xiph.libvorbis.modes.setup_44();
+		setup_list = new ve_setup_data_template[] { ve_setup_44_stereo.data };
+	}
+	
+	public boolean vorbis_encode_setup_vbr( int channels, int rate, float quality ) {
+		
+		quality += .0000001;
+		if ( quality >= 1. )
+			quality = .9999f;
+
+		if ( !get_setup_template( channels, rate, quality, 0 )) {
+			System.out.println( "Unable to find setup template - " + channels + " channels, " + rate + " rate, " + quality + " quality" );
+			return false;
+		}
+
+		return vorbis_encode_setup_setting( channels, rate );
+	}
+
+	public boolean vorbis_encode_init_vbr( vorbis_info _vi, int channels, int rate, float base_quality ) {
+
+		if ( _vi == null ) {
+			System.out.println( "vorbis_info doesnt exist" );
+			return false;
+		}
+		
+		vi = _vi;
+		
+		if ( !vorbis_encode_setup_vbr( channels, rate, base_quality) )
+			return false;
+
+		return vorbis_encode_setup_init();
+	}
+
+	public boolean vorbis_encode_setup_managed( vorbis_info _vi, int channels, int rate, int max_bitrate, int nominal_bitrate, int min_bitrate ) {
+
+		vi = _vi;
+
+		float tnominal = new Integer( nominal_bitrate ).floatValue();
+
+		if ( nominal_bitrate <= 0. ) {
+			if ( max_bitrate > 0. ) {
+				if ( min_bitrate > 0. )
+					nominal_bitrate = new Double( (max_bitrate+min_bitrate)*.5).intValue();
+				else
+					nominal_bitrate = new Double( max_bitrate * .875 ).intValue();
+			} else {
+				if ( min_bitrate > 0. ) 
+					nominal_bitrate = min_bitrate;
+				else
+					return false;
+			}
+		}
+
+		if ( !get_setup_template( channels, rate, nominal_bitrate, 1 )) {
+			System.out.println( "Unable to find setup template - " + channels + " channels, " + rate + " rate, " + nominal_bitrate + " nominal_bitrate" );
+			return false;
+		}
+
+		vorbis_encode_setup_setting( channels, rate );
+
+		highlevel_encode_setup hi = vi.codec_setup.hi;
+
+		// initialize management with sane defaults
+		hi.managed = 1;
+		hi.bitrate_min = min_bitrate;
+		hi.bitrate_max = max_bitrate;
+		hi.bitrate_av = new Float( tnominal ).intValue();
+		hi.bitrate_av_damp = 1.5f;
+		hi.bitrate_reservoir = nominal_bitrate*2;
+		hi.bitrate_reservoir_bias = .1f;	// bias toward hoarding bits
+
+		return true;
+	}
+
+	public boolean vorbis_encode_init( vorbis_info _vi, int channels, int rate, int max_bitrate, int nominal_bitrate, int min_bitrate ) {
+		
+		if ( _vi == null )
+			return false;
+		
+		if ( !vorbis_encode_setup_managed( _vi, channels, rate, max_bitrate, nominal_bitrate, min_bitrate ) )
+			return false;
+
+		return vorbis_encode_setup_init();
+	}
+	
+	public Object vorbis_encode_ctl( vorbis_info _vi, int number, Object arg ) {
+		
+		if ( _vi == null )
+			return false;
+		
+		codec_setup_info ci = vi.codec_setup;
+		highlevel_encode_setup hi = ci.hi;
+		int setp = (number&0xf); // a read request has a low nibble of 0
+		
+		if ( ( setp > 0 ) && ( hi.set_in_stone > 0 ) )
+			return false;
+		
+		switch (number) {
+		
+			// now deprecated *****************
+			/*
+			case OV_ECTL_RATEMANAGE_GET: {
+				
+				ovectl_ratemanage_arg ai= ( ovectl_ratemanage_arg )arg;
+				
+				ai.management_active=hi.managed;
+				ai.bitrate_hard_window=ai.bitrate_av_window=(double)hi.bitrate_reservoir/vi.rate;
+				ai.bitrate_av_window_center=1.;
+				ai.bitrate_hard_min=hi.bitrate_min;
+				ai.bitrate_hard_max=hi.bitrate_max;
+				ai.bitrate_av_lo=hi.bitrate_av;
+				ai.bitrate_av_hi=hi.bitrate_av;
+			}
+			return true;
+			
+			// now deprecated *****************
+			case OV_ECTL_RATEMANAGE_SET: {
+				
+				ovectl_ratemanage_arg ai= ( ovectl_ratemanage_arg )arg;
+				
+				if ( ai == null ) {
+					hi.managed=0;	
+				} else {
+					hi.managed=ai.management_active;
+					vorbis_encode_ctl( vi, OV_ECTL_RATEMANAGE_AVG, arg );
+					vorbis_encode_ctl( vi, OV_ECTL_RATEMANAGE_HARD, arg );
+				}
+			}
+			return true;
+			
+			// now deprecated *****************
+			case OV_ECTL_RATEMANAGE_AVG: {
+				
+				ovectl_ratemanage_arg ai= ( ovectl_ratemanage_arg )arg;
+				
+				if (ai == null) {
+					hi.bitrate_av=0;
+				} else {
+					hi.bitrate_av=(ai.bitrate_av_lo+ai.bitrate_av_hi)*.5;
+				}
+			}
+			return true;
+			
+			// now deprecated *****************
+			case OV_ECTL_RATEMANAGE_HARD: {
+				
+				ovectl_ratemanage_arg ai= ( ovectl_ratemanage_arg )arg;
+				
+				if (ai == null ) {
+					hi.bitrate_min=0;
+					hi.bitrate_max=0;	
+				} else {
+					hi.bitrate_min=ai.bitrate_hard_min;
+					hi.bitrate_max=ai.bitrate_hard_max;
+					hi.bitrate_reservoir=ai.bitrate_hard_window*(hi.bitrate_max+hi.bitrate_min)*.5;	
+				}
+				if ( hi.bitrate_reservoir < 128.f )
+					hi.bitrate_reservoir=128;
+			}
+			return true;
+			*/
+		
+			// replacement ratemanage interface
+			case OV_ECTL_RATEMANAGE2_GET: {
+				
+				ovectl_ratemanage2_arg ai = ( ovectl_ratemanage2_arg )arg;
+				
+				if ( ai == null )
+					return false;
+				
+				ai.management_active=hi.managed;
+				ai.bitrate_limit_min_kbps=hi.bitrate_min/1000;
+				ai.bitrate_limit_max_kbps=hi.bitrate_max/1000;
+				ai.bitrate_average_kbps=hi.bitrate_av/1000;
+				ai.bitrate_average_damping=hi.bitrate_av_damp;
+				ai.bitrate_limit_reservoir_bits=hi.bitrate_reservoir;
+				ai.bitrate_limit_reservoir_bias=hi.bitrate_reservoir_bias;
+				
+				return ai;
+			}
+			
+			case OV_ECTL_RATEMANAGE2_SET: {
+				
+				ovectl_ratemanage2_arg ai = (ovectl_ratemanage2_arg )arg;
+				
+				if ( ai == null ) {
+					hi.managed=0;
+				} else {
+					// sanity check; only catch invariant violations
+					if ( ai.bitrate_limit_min_kbps>0 && ai.bitrate_average_kbps>0 && ai.bitrate_limit_min_kbps>ai.bitrate_average_kbps )
+						return false;
+					
+					if ( ai.bitrate_limit_max_kbps>0 && ai.bitrate_average_kbps>0 && ai.bitrate_limit_max_kbps<ai.bitrate_average_kbps )
+						return false;
+					
+					if ( ai.bitrate_limit_min_kbps>0 && ai.bitrate_limit_max_kbps>0 && ai.bitrate_limit_min_kbps>ai.bitrate_limit_max_kbps)
+						return false;
+					
+					if ( ai.bitrate_average_damping <= 0. )
+						return false;
+					
+					if ( ai.bitrate_limit_reservoir_bits < 0 )
+						return false;
+					
+					if ( ai.bitrate_limit_reservoir_bias < 0. )
+						return false;
+					
+					if ( ai.bitrate_limit_reservoir_bias > 1. )
+						return false;
+					
+					hi.managed=ai.management_active;
+					hi.bitrate_min=ai.bitrate_limit_min_kbps * 1000;
+					hi.bitrate_max=ai.bitrate_limit_max_kbps * 1000;
+					hi.bitrate_av=ai.bitrate_average_kbps * 1000;
+					hi.bitrate_av_damp=ai.bitrate_average_damping;
+					hi.bitrate_reservoir=ai.bitrate_limit_reservoir_bits;
+					hi.bitrate_reservoir_bias=ai.bitrate_limit_reservoir_bias;
+				}
+			}
+			return true;
+			
+			case OV_ECTL_LOWPASS_GET: {
+				
+				return hi.lowpass_kHz;	
+			}
+			
+			case OV_ECTL_LOWPASS_SET: {
+				
+				hi.lowpass_kHz = (Float)arg;
+				
+				if ( hi.lowpass_kHz < 2.f )
+					hi.lowpass_kHz = 2.f;
+				if ( hi.lowpass_kHz > 99.f )
+					hi.lowpass_kHz = 99.f;
+				
+			}
+			return true;
+			
+			case OV_ECTL_IBLOCK_GET: {
+				
+				return hi.impulse_noisetune;
+			}
+
+			case OV_ECTL_IBLOCK_SET: {
+				
+				hi.impulse_noisetune = (Float)arg;
+				
+				if ( hi.impulse_noisetune > 0.f )
+					hi.impulse_noisetune = 0.f;
+				if ( hi.impulse_noisetune < -15.f )
+					hi.impulse_noisetune = -15.f;
+				
+			}
+			return true;
+		}
+		return true;
+	}
+	
+	private boolean get_setup_template( int ch, int srate, float req, int q_or_bitrate ) {
+
+		int i=0, j;
+		highlevel_encode_setup hi = vi.codec_setup.hi;
+		
+		if ( q_or_bitrate > 0 )
+			req /= ch;
+		
+		while ( setup_list[i] != null ) {
+			
+			if ( setup_list[i].coupling_restriction == -1 || setup_list[i].coupling_restriction == ch ) {
+				
+				if ( srate >= setup_list[i].samplerate_min_restriction && srate <= setup_list[i].samplerate_max_restriction ) {
+					
+					int mappings = setup_list[i].mappings;
+					float[] map;
+					if ( q_or_bitrate > 0 )
+						map = setup_list[i].rate_mapping;
+					else
+						map = setup_list[i].quality_mapping;
+					
+					// the template matches.  Does the requested quality mode fall within this templates modes?
+					if ( req < map[0] ) {
+						++i;
+						continue;
+					}
+					
+					if ( req > map[setup_list[i].mappings]) {
+						++i;
+						continue;
+					}
+					
+					for ( j=0; j < mappings; j++)
+						if ( req >= map[j] && req < map[j+1] )
+							break;
+					
+					// an all points match
+					hi.setup = setup_list[i];
+					
+					if ( j == mappings )
+						hi.base_setting = j - .001f;
+					else {
+						float low = map[j];
+						float high = map[j+1];
+						float del = (req-low) / (high-low);
+						hi.base_setting = j + del;
+					}
+					
+					return true;
+				}
+			}
+			i++;
+		}
+		hi.setup = null;
+		return false;
+	}
+
+	private boolean vorbis_encode_setup_setting( int channels, int rate ) {
+
+		int i, is;
+
+		codec_setup_info ci = vi.codec_setup;
+		highlevel_encode_setup hi = ci.hi;
+		ve_setup_data_template setup = hi.setup;
+		float ds;	// double
+
+		// vorbis_encode_toplevel_setup(vorbis_info *vi,int ch,long rate)
+		vi.version = 0;
+		vi.channels = channels;
+		vi.rate = rate;
+
+		is = new Float(hi.base_setting).intValue();
+		ds = hi.base_setting - is;
+
+		hi.short_setting = hi.base_setting;
+		hi.long_setting = hi.base_setting;
+
+		hi.managed = 0;
+
+		hi.impulse_block_p = 1;
+		hi.noise_normalize_p = 1;
+
+		hi.stereo_point_setting = hi.base_setting;
+		hi.lowpass_kHz = setup.psy_lowpass[is]*(1.0f-ds)+setup.psy_lowpass[is+1]*ds;  
+  
+		hi.ath_floating_dB = setup.psy_ath_float[is]*(1.0f-ds)+setup.psy_ath_float[is+1]*ds;
+		hi.ath_absolute_dB = setup.psy_ath_abs[is]*(1.0f-ds)+setup.psy_ath_abs[is+1]*ds;
+
+		hi.amplitude_track_dBpersec = -6.0f;
+		hi.trigger_setting = hi.base_setting;
+
+		for ( i=0; i < 4; i++ )
+			hi.block[i] = new highlevel_byblocktype( hi.base_setting, hi.base_setting, hi.base_setting, hi.base_setting );
+		
+		return true;
+	}
+
+	public boolean vorbis_encode_setup_init() {		// the final setup call
+
+		int i0=0;
+		int singleblock=0;
+
+		codec_setup_info ci = vi.codec_setup;
+		ve_setup_data_template setup = null;
+		highlevel_encode_setup hi = ci.hi;
+
+		if ( ci == null ) {
+			System.out.println( "vorbis_info.codec_setup_info doesnt exist");
+			return false;
+		}
+			
+		if ( hi.impulse_block_p == 0 )
+			i0 = 1;
+
+		// too low/high an ATH floater is nonsensical, but doesn't break anything
+		if ( hi.ath_floating_dB > -80 )
+			hi.ath_floating_dB = -80;
+		if ( hi.ath_floating_dB < -200 )
+			hi.ath_floating_dB = -200;
+
+  		// again, bound this to avoid the app shooting itself in the foot
+		if ( hi.amplitude_track_dBpersec > 0. )
+			hi.amplitude_track_dBpersec = 0.0f;
+		if ( hi.amplitude_track_dBpersec < -99999. )
+			hi.amplitude_track_dBpersec = -99999.0f;
+  
+		// get the appropriate setup template; matches the fetch in previous stages
+		setup = hi.setup;
+		if (setup == null ) {
+			System.out.println( "vorbis_info.codec_setup.highlevel_encode_setup.ve_setup_data_template doesnt exist");
+			return false;
+		}
+
+		hi.set_in_stone=1;
+
+		// choose block sizes from configured sizes as well as paying attention 
+		// to long_block_p and short_block_p.  If the configured short and long 
+		// blocks are the same length, we set long_block_p and unset short_block_p
+
+		vorbis_encode_blocksize_setup( hi.base_setting, setup.blocksize_short, setup.blocksize_long );
+		if ( ci.blocksizes[0] == ci.blocksizes[1] )
+			singleblock = 1;
+
+		// floor setup; choose proper floor params.  Allocated on the floor stack in order; if we alloc only long floor, it's 0
+		vorbis_encode_floor_setup( hi.short_setting, 0, setup.floor_books, setup.floor_params, setup.floor_short_mapping );
+		if ( singleblock == 0 )
+			vorbis_encode_floor_setup( hi.long_setting, 1, setup.floor_books, setup.floor_params, setup.floor_long_mapping );
+
+		// setup of [mostly] short block detection and stereo
+		vorbis_encode_global_psych_setup( hi.trigger_setting, setup.global_params, setup.global_mapping );
+		vorbis_encode_global_stereo( hi, setup.stereo_modes );
+
+		// basic psych setup and noise normalization
+		vorbis_encode_psyset_setup( hi.short_setting, setup.psy_noise_normal_start[0], setup.psy_noise_normal_partition[0], setup.psy_noise_normal_thresh, 0 );
+		vorbis_encode_psyset_setup( hi.short_setting, setup.psy_noise_normal_start[0], setup.psy_noise_normal_partition[0], setup.psy_noise_normal_thresh, 1 );
+		if ( singleblock == 0 ) {
+			vorbis_encode_psyset_setup( hi.long_setting, setup.psy_noise_normal_start[1], setup.psy_noise_normal_partition[1], setup.psy_noise_normal_thresh, 2 );
+			vorbis_encode_psyset_setup( hi.long_setting, setup.psy_noise_normal_start[1], setup.psy_noise_normal_partition[1], setup.psy_noise_normal_thresh, 3 );
+		}
+
+		// tone masking setup
+		vorbis_encode_tonemask_setup( hi.block[i0].tone_mask_setting, 0, setup.psy_tone_masteratt, setup.psy_tone_0dB, setup.psy_tone_adj_impulse) ;
+		vorbis_encode_tonemask_setup( hi.block[1].tone_mask_setting, 1, setup.psy_tone_masteratt, setup.psy_tone_0dB, setup.psy_tone_adj_other );
+		if ( singleblock == 0 ) {
+			vorbis_encode_tonemask_setup( hi.block[2].tone_mask_setting, 2, setup.psy_tone_masteratt, setup.psy_tone_0dB, setup.psy_tone_adj_other );
+			vorbis_encode_tonemask_setup( hi.block[3].tone_mask_setting, 3, setup.psy_tone_masteratt, setup.psy_tone_0dB, setup.psy_tone_adj_long );
+		}
+
+		// noise companding setup
+		vorbis_encode_compand_setup( hi.block[i0].noise_compand_setting, 0, setup.psy_noise_compand, setup.psy_noise_compand_short_mapping );
+		vorbis_encode_compand_setup( hi.block[1].noise_compand_setting, 1, setup.psy_noise_compand, setup.psy_noise_compand_short_mapping );
+		if ( singleblock == 0 ) {
+			vorbis_encode_compand_setup( hi.block[2].noise_compand_setting, 2, setup.psy_noise_compand, setup.psy_noise_compand_long_mapping );
+			vorbis_encode_compand_setup( hi.block[3].noise_compand_setting, 3, setup.psy_noise_compand, setup.psy_noise_compand_long_mapping );
+		}
+
+		// peak guarding setup
+		vorbis_encode_peak_setup( hi.block[i0].tone_peaklimit_setting, 0, setup.psy_tone_dBsuppress );
+		vorbis_encode_peak_setup( hi.block[1].tone_peaklimit_setting, 1, setup.psy_tone_dBsuppress );
+		if ( singleblock == 0 ) {
+			vorbis_encode_peak_setup( hi.block[2].tone_peaklimit_setting, 2, setup.psy_tone_dBsuppress );
+			vorbis_encode_peak_setup( hi.block[3].tone_peaklimit_setting, 3, setup.psy_tone_dBsuppress );
+		}
+
+		// noise bias setup
+		float userbias = 0;
+		if ( i0 == 0 )
+			userbias = hi.impulse_noisetune;
+		vorbis_encode_noisebias_setup( hi.block[i0].noise_bias_setting, 0, setup.psy_noise_dBsuppress, setup.psy_noise_bias_impulse, setup.psy_noiseguards, userbias );
+		vorbis_encode_noisebias_setup( hi.block[1].noise_bias_setting, 1, setup.psy_noise_dBsuppress, setup.psy_noise_bias_padding, setup.psy_noiseguards, 0.0f );
+		if ( singleblock == 0 ) {
+			vorbis_encode_noisebias_setup( hi.block[2].noise_bias_setting, 2, setup.psy_noise_dBsuppress, setup.psy_noise_bias_trans, setup.psy_noiseguards, 0.0f );
+			vorbis_encode_noisebias_setup( hi.block[3].noise_bias_setting, 3, setup.psy_noise_dBsuppress, setup.psy_noise_bias_long, setup.psy_noiseguards, 0.0f );
+		}
+
+		vorbis_encode_ath_setup( 0 );
+		vorbis_encode_ath_setup( 1 );
+		if ( singleblock == 0 ) {
+			vorbis_encode_ath_setup( 2 );
+			vorbis_encode_ath_setup( 3 );
+		}
+
+		vorbis_encode_map_n_res_setup( hi.base_setting, setup.maps );
+
+		// set bitrate readonlies and management
+		if ( hi.bitrate_av > 0 )
+			vi.bitrate_nominal = hi.bitrate_av;
+		else
+			vi.bitrate_nominal = new Float( setting_to_approx_bitrate() ).intValue();
+		
+		vi.bitrate_lower = hi.bitrate_min;
+		vi.bitrate_upper = hi.bitrate_max;
+		if ( hi.bitrate_av > 0 )
+			vi.bitrate_window = hi.bitrate_reservoir / hi.bitrate_av;
+		else
+			vi.bitrate_window = 0;
+
+		if ( hi.managed > 0 ) {
+			
+			ci.bi = new bitrate_manager_info(  
+					hi.bitrate_av,
+					hi.bitrate_min,
+					hi.bitrate_max,
+					hi.bitrate_reservoir,
+					hi.bitrate_reservoir_bias, 
+					hi.bitrate_av_damp );
+		}
+		
+		return true;
+	}
+
+	private void vorbis_encode_blocksize_setup( float s, int[] shortb, int[] longb ) {
+
+		codec_setup_info ci = vi.codec_setup;
+  		int is = new Float( s ).intValue();
+
+		int blockshort = shortb[is];
+		int blocklong = longb[is];
+		ci.blocksizes[0] = blockshort;
+		ci.blocksizes[1] = blocklong;
+	}
+
+	private void vorbis_encode_floor_setup( float s, int block, static_codebook[][] books, vorbis_info_floor1[] in, int[] x ) {
+
+		int i, k;
+		int is = new Float(s).intValue();
+
+		codec_setup_info ci = vi.codec_setup;
+
+		// _ogg_calloc(1,sizeof(*f))
+		// memcpy(f,in+x[is],sizeof(*f));
+		vorbis_info_floor1 f = new vorbis_info_floor1( in[ x[is] ] );
+
+		// fill in the lowpass field, even if it's temporary
+		f.n = ci.blocksizes[block] >> 1;
+
+		// books
+		{
+			int partitions = f.partitions;
+			int maxclass = -1;
+			int maxbook = -1;
+
+			for ( i=0; i < partitions; i++ )
+				if ( f.partitionclass[i] > maxclass )
+					maxclass = f.partitionclass[i];
+
+			for ( i=0; i <= maxclass; i++ ) {
+				if ( f.class_book[i] > maxbook )
+					maxbook = f.class_book[i];
+
+				f.class_book[i] += ci.books;
+
+				for ( k=0; k < (1 << f.class_subs[i]); k++ ){
+					if ( f.class_subbook[i][k] > maxbook )
+						maxbook = f.class_subbook[i][k];
+					if ( f.class_subbook[i][k] >= 0 )
+						f.class_subbook[i][k] += ci.books;
+				}
+			}
+
+			for ( i=0; i <= maxbook; i++ ) {
+				ci.book_param[ci.books++] = books[x[is]][i];
+			}
+		}
+
+		// for now, we're only using floor 1
+		ci.floor_type[ci.floors] = 1;
+		ci.floor_param[ci.floors] = f;
+		ci.floors++;
+	}
+
+	private void vorbis_encode_global_psych_setup( float s, vorbis_info_psy_global[] in, float[] x ) {
+
+		int i;
+		int is = new Float(s).intValue();
+		float ds = s-is;
+		codec_setup_info ci = vi.codec_setup;
+
+		// memcpy(g,in+(int)x[is],sizeof(*g));
+		ci.psy_g_param = new vorbis_info_psy_global( in[ new Float( x[is] ).intValue() ] );
+		vorbis_info_psy_global g = ci.psy_g_param;
+
+		ds = x[is]*(1.0f-ds) + x[is+1]*ds;
+
+		is = new Float(ds).intValue();
+		ds -= is;
+		if ( ds == 0 && is > 0 ) {
+			is--;
+			ds = 1.0f;
+		}
+
+		// interpolate the trigger threshholds
+		for ( i = 0; i < 4; i++ ) {
+			g.preecho_thresh[i] = new Double( in[is].preecho_thresh[i]*(1.-ds)+in[is+1].preecho_thresh[i]*ds ).floatValue();
+			g.postecho_thresh[i] = new Double( in[is].postecho_thresh[i]*(1.-ds)+in[is+1].postecho_thresh[i]*ds ).floatValue();
+		}
+		g.ampmax_att_per_sec = ci.hi.amplitude_track_dBpersec;
+	}
+
+	private void vorbis_encode_global_stereo( highlevel_encode_setup hi, adj_stereo[] p ) {
+
+		float s = hi.stereo_point_setting;
+		int i;
+		int is = new Float(s).intValue();
+		float ds = s-is;
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy_global g = ci.psy_g_param;
+
+		if ( p != null ) {
+
+			// memcpy(g.coupling_prepointamp, p[is].pre, sizeof(*p[is].pre)*PACKETBLOBS);
+			// memcpy(g.coupling_postpointamp, p[is].post, sizeof(*p[is].post)*PACKETBLOBS);
+
+			g.coupling_prepointamp = (int[])p[is].pre.clone();
+			g.coupling_postpointamp = (int[])p[is].post.clone();
+
+			if ( hi.managed != 0 ) {
+				// interpolate the kHz threshholds
+				for ( i=0; i<PACKETBLOBS; i++ ) {
+					float kHz = new Double( p[is].kHz[i]*(1.-ds)+p[is+1].kHz[i]*ds ).floatValue();
+					g.coupling_pointlimit[0][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[0] ).intValue();
+					g.coupling_pointlimit[1][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[1] ).intValue();
+					g.coupling_pkHz[i] = new Float( kHz ).intValue();
+	
+					kHz = new Double( p[is].lowpasskHz[i]*(1.-ds)+p[is+1].lowpasskHz[i]*ds ).floatValue();
+					g.sliding_lowpass[0][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[0] ).intValue();
+					g.sliding_lowpass[1][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[1] ).intValue();
+ 				}
+			} else {
+				float kHz = new Double( p[is].kHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].kHz[PACKETBLOBS/2]*ds ).floatValue();
+				for ( i=0; i<PACKETBLOBS; i++ ) {
+					g.coupling_pointlimit[0][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[0] ).intValue();
+					g.coupling_pointlimit[1][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[1] ).intValue();
+					g.coupling_pkHz[i] = new Float( kHz ).intValue();
+				}
+      
+				kHz = new Double( p[is].lowpasskHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].lowpasskHz[PACKETBLOBS/2]*ds ).floatValue();
+				for ( i=0; i<PACKETBLOBS; i++ ) {
+					g.sliding_lowpass[0][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[0] ).intValue();
+					g.sliding_lowpass[1][i] = new Double( kHz*1000./vi.rate*ci.blocksizes[1] ).intValue();
+				}
+			}
+		} else {
+			for ( i=0; i<PACKETBLOBS; i++ ) {
+				g.sliding_lowpass[0][i] = ci.blocksizes[0];
+				g.sliding_lowpass[1][i] = ci.blocksizes[1];
+			}
+		}
+	}
+
+	private void vorbis_encode_psyset_setup( float s, int[] nn_start, int[] nn_partition, float[] nn_thresh, int block ) {
+
+		codec_setup_info ci = vi.codec_setup;
+		highlevel_encode_setup hi = ci.hi;
+		int is = new Float(s).intValue();
+
+		if ( block >= ci.psys )
+			ci.psys = block+1;
+
+		ci.psy_param[block] = new vorbis_info_psy( 
+
+			// static vorbis_info_psy _psy_info_template = {
+			-1,
+			-140.f, -140.f,
+
+			// tonemask att boost/decay,suppr,curves
+			new float[] {0.f,0.f,0.f},     0.f, 0.f,    -40.f, new float[] { 0.f},
+
+			// noisemaskp,supp, low/high window, low/hi guard, minimum
+			1,          -0.f,         .5f, .5f,         0, 0, 0,
+			new float[][] {{-1}, {-1}, {-1}}, new float[] {-1}, 105.f,
+			0, 0, -1, -1, 0.0f );
+
+		vorbis_info_psy p = ci.psy_param[block];
+
+
+		p.blockflag = block >> 1;
+
+		if ( hi.noise_normalize_p != 0 ) {
+			p.normal_channel_p = 1;
+			p.normal_point_p = 1;
+			p.normal_start = nn_start[is];
+			p.normal_partition = nn_partition[is];
+			p.normal_thresh = nn_thresh[is];
+		}
+	}
+
+	private void vorbis_encode_tonemask_setup( float s, int block, att3[] att, int[] max, vp_adjblock[] in ) {
+
+		int i;
+		int is = new Float(s).intValue();
+		float ds = s-is;
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy p = ci.psy_param[block];
+
+		// 0 and 2 are only used by bitmanagement, but there's no harm to always filling the values in here
+		p.tone_masteratt[0] = new Double( att[is].att[0]*(1.-ds)+att[is+1].att[0]*ds ).floatValue();
+		p.tone_masteratt[1] = new Double( att[is].att[1]*(1.-ds)+att[is+1].att[1]*ds ).floatValue();
+		p.tone_masteratt[2] = new Double( att[is].att[2]*(1.-ds)+att[is+1].att[2]*ds ).floatValue();
+		p.tone_centerboost = new Double( att[is].boost*(1.-ds)+att[is+1].boost*ds ).floatValue();
+		p.tone_decay = new Double( att[is].decay*(1.-ds)+att[is+1].decay*ds ).floatValue();
+
+		p.max_curve_dB = new Double( max[is]*(1.-ds)+max[is+1]*ds ).floatValue();
+
+		for ( i=0; i < P_BANDS; i++ )
+			p.toneatt[i] = new Double( in[is].block[i]*(1.-ds)+in[is+1].block[i]*ds ).floatValue();
+	}
+
+	private void vorbis_encode_compand_setup( float s, int block, compandblock[] in, float[] x ) {
+
+		int i;
+		int is = new Float(s).intValue();
+		float ds = s-is;
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy p = ci.psy_param[block];
+
+		ds = x[is]*(1.0f-ds)+x[is+1]*ds;
+		is = new Float( ds ).intValue();
+		ds -= is;
+		if ( ds==0 && is>0 ) {
+			is--;
+			ds=1.0f;
+		}
+
+		// interpolate the compander settings
+		for ( i=0; i<NOISE_COMPAND_LEVELS; i++ )
+			p.noisecompand[i] = new Double( in[is].data[i]*(1.-ds)+in[is+1].data[i]*ds ).floatValue();
+	}
+
+	private void vorbis_encode_peak_setup( float s, int block, int[] suppress ) {
+
+		int is = new Float(s).intValue();
+		float ds = s-is;
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy p = ci.psy_param[block];
+
+		p.tone_abs_limit = new Double( suppress[is]*(1.-ds)+suppress[is+1]*ds ).floatValue();
+	}
+
+	private void vorbis_encode_noisebias_setup( float s, int block, int[] suppress, noise3[] in, noiseguard[] guard, float userbias ) {
+
+		int i, j;
+		int is = new Float(s).intValue();
+		float ds = s- is;
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy p = ci.psy_param[block];
+
+		p.noisemaxsupp = new Double( suppress[is]*(1.-ds)+suppress[is+1]*ds ).floatValue();
+		p.noisewindowlomin = guard[block].lo;
+		p.noisewindowhimin = guard[block].hi;
+		p.noisewindowfixed = guard[block].fixed;
+
+		for ( j=0; j<P_NOISECURVES; j++ )
+			for ( i=0; i<P_BANDS; i++ )
+				p.noiseoff[j][i] = new Double( in[is].data[j][i]*(1.-ds)+in[is+1].data[j][i]*ds ).floatValue();
+
+  		// impulse blocks may take a user specified bias to boost the nominal/high noise encoding depth
+		for ( j = 0; j < P_NOISECURVES; j++ ) {
+			float min = p.noiseoff[j][0]+6; // the lowest it can go
+			for ( i = 0; i < P_BANDS; i++ ) {
+				p.noiseoff[j][i] += userbias;
+				if ( p.noiseoff[j][i] < min )
+					p.noiseoff[j][i] = min;
+			}
+		}
+	}
+
+	private void vorbis_encode_ath_setup( int block ) {
+
+		codec_setup_info ci = vi.codec_setup;
+		vorbis_info_psy p = ci.psy_param[block];
+
+		p.ath_adjatt = ci.hi.ath_floating_dB;
+		p.ath_maxatt = ci.hi.ath_absolute_dB;
+	}
+
+	private int book_dup_or_new( codec_setup_info ci, static_codebook book ) {
+
+		int i;
+
+		for ( i=0; i<ci.books; i++ )
+			if ( ci.book_param[i] == book )
+				return(i);
+
+		return(ci.books++);
+	}
+
+	private void vorbis_encode_residue_setup( int number, int block, vorbis_residue_template res ) {
+
+		codec_setup_info ci = vi.codec_setup;
+		int i;
+
+		// vorbis_info_residue0 *r = ci.residue_param[number] = _ogg_malloc(sizeof(*r));
+		// memcpy(r,res.res,sizeof(*r));
+
+		ci.residue_param[number] = new vorbis_info_residue0( res.res );
+		vorbis_info_residue0 r = ci.residue_param[number];
+
+		if (ci.residues <= number)
+			ci.residues = number+1;
+
+		switch ( ci.blocksizes[block] ) {
+
+			case 64:case 128:case 256:
+				r.grouping=16;
+				break;
+
+			default:
+				r.grouping=32;
+				break;
+		}
+
+		ci.residue_type[number] = res.res_type;
+
+		// to be adjusted by lowpass/pointlimit later
+		r.end = ci.blocksizes[block]>>1;
+		if ( res.res_type == 2 ) {
+			r.end *= vi.channels;
+		}
+  
+		// fill in all the books
+		{
+			int booklist=0,k;
+    
+			if ( ci.hi.managed != 0 ) {
+				for ( i=0; i<r.partitions; i++ )
+					for ( k=0; k<3; k++ )
+						if ( res.books_base_managed.books[i][k] != null )
+							r.secondstages[i] |= (1<<k);
+
+				r.groupbook = book_dup_or_new(ci,res.book_aux_managed);
+				ci.book_param[r.groupbook] = res.book_aux_managed;      
+    
+				for ( i=0; i<r.partitions; i++ ){
+					for ( k=0; k<3; k++ ){
+						if ( res.books_base_managed.books[i][k] != null ) {
+							int bookid = book_dup_or_new( ci, res.books_base_managed.books[i][k] );
+							r.booklist[booklist++] = bookid;
+							ci.book_param[bookid] = res.books_base_managed.books[i][k];
+						}
+					}
+				}
+
+			} else {
+
+				for ( i=0; i<r.partitions; i++ )
+					for ( k=0; k<3; k++ )
+						if ( res.books_base.books[i][k] != null )
+							r.secondstages[i] |= (1<<k);
+  
+				r.groupbook = book_dup_or_new(ci,res.book_aux);
+				ci.book_param[r.groupbook] = res.book_aux;
+      
+				for ( i=0;i<r.partitions;i++ ) {
+					for ( k=0; k<3; k++ ) {
+						if(res.books_base.books[i][k] != null ) {
+							int bookid = book_dup_or_new( ci, res.books_base.books[i][k] );
+							r.booklist[booklist++] = bookid;
+							ci.book_param[bookid] = res.books_base.books[i][k];
+						}
+					}
+				}
+			}
+		}
+  
+		// lowpass setup/pointlimit
+		{
+			float freq = ci.hi.lowpass_kHz*1000.0f;
+			vorbis_info_floor1 f = ci.floor_param[block]; // by convention
+			float nyq = vi.rate / 2.0f;
+			int blocksize = ci.blocksizes[block]>>1;
+
+			// lowpass needs to be set in the floor and the residue.
+			if (freq>nyq)
+				freq=nyq;
+
+			// in the floor, the granularity can be very fine; it doesn't alter the 
+			// encoding structure, only the samples used to fit the floor approximation
+			f.n = new Double( freq/nyq*blocksize ).intValue(); 
+
+			// this res may by limited by the maximum pointlimit of the mode,
+			// not the lowpass. the floor is always lowpass limited.
+			if ( res.limit_type != 0 ) {
+				if ( ci.hi.managed != 0 )
+					freq=ci.psy_g_param.coupling_pkHz[PACKETBLOBS-1]*1000.0f;
+				else
+					freq=ci.psy_g_param.coupling_pkHz[PACKETBLOBS/2]*1000.0f;
+				if (freq > nyq)
+					freq=nyq;
+			}
+    
+			// in the residue, we're constrained, physically, by partition
+			// boundaries.  We still lowpass 'wherever', but we have to round up
+			// here to next boundary, or the vorbis spec will round it *down* to
+			// previous boundary in encode/decode
+
+			if (ci.residue_type[block]==2)
+				r.end = new Double((freq/nyq*blocksize*2)/r.grouping+.9).intValue() * r.grouping; // round up only if we're well past
+			else
+				r.end = new Double((freq/nyq*blocksize)/r.grouping+.9).intValue() * r.grouping; // round up only if we're well past
+		}
+	}      
+
+	// we assume two maps in this encoder
+	private void vorbis_encode_map_n_res_setup( float s, vorbis_mapping_template[] maps ) {
+
+		codec_setup_info ci = vi.codec_setup;
+		int i, j;
+		int is = new Float(s).intValue();
+		int modes = 2;
+		vorbis_info_mapping0[] map = maps[is].map;
+		vorbis_info_mode[] mode = { new vorbis_info_mode( 0, 0, 0, 0), new vorbis_info_mode( 1, 0, 0, 1 ) }; // _mode_template
+		vorbis_residue_template[] res = maps[is].res;
+
+		if ( ci.blocksizes[0] == ci.blocksizes[1] )
+			modes=1;
+
+		for ( i = 0; i < modes; i++ ) {
+
+			// ci.map_param[i] = _ogg_calloc(1,sizeof(*map));
+			// ci.mode_param[i] = _ogg_calloc(1,sizeof(*mode));
+			// memcpy(ci.mode_param[i],mode+i,sizeof(*_mode_template));
+			// memcpy(ci.map_param[i],map+i,sizeof(*map));
+
+			ci.mode_param[i] = new vorbis_info_mode( mode[i] );
+			if ( i >= ci.modes )
+				ci.modes = i+1;
+
+			ci.map_type[i] = 0;
+
+			ci.map_param[i] = new vorbis_info_mapping0( map[i] );
+
+			if ( i >= ci.maps )
+				ci.maps = i+1;
+
+			for ( j=0; j < map[i].submaps; j++ )
+				vorbis_encode_residue_setup( map[i].residuesubmap[j], i, res[ map[i].residuesubmap[j] ] );
+		}
+	}
+
+	private float setting_to_approx_bitrate() {
+
+		codec_setup_info ci = vi.codec_setup;
+		highlevel_encode_setup hi= ci.hi;
+		ve_setup_data_template setup = hi.setup;
+
+		int is = new Float( hi.base_setting ).intValue();
+		float ds = hi.base_setting - is;
+		int ch = vi.channels;
+		float[] r = setup.rate_mapping;
+
+		if ( r == null )
+			return (-1);
+  
+		return ( (r[is]*(1.0f-ds)+r[is+1]*ds)*ch );  
+	}
+
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vorbisenc.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/org/xiph/libvorbis/vp_adjblock.java
===================================================================
--- trunk/vorbis-java/org/xiph/libvorbis/vp_adjblock.java	                        (rev 0)
+++ trunk/vorbis-java/org/xiph/libvorbis/vp_adjblock.java	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,32 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************/
+
+package org.xiph.libvorbis;
+
+import static org.xiph.libvorbis.vorbis_constants.integer_constants.*;
+
+public class vp_adjblock {
+
+	int[] block;	// block[P_BANDS]
+
+
+	public vp_adjblock( int[] _block ) {
+
+		block = new int[ P_BANDS ];
+		System.arraycopy( _block, 0, block, 0, _block.length );
+	}
+
+	public vp_adjblock( vp_adjblock src ) {
+
+		this( src.block );
+	}
+}


Property changes on: trunk/vorbis-java/org/xiph/libvorbis/vp_adjblock.java
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/vorbis-java/output.log.1
===================================================================
--- trunk/vorbis-java/output.log.1	                        (rev 0)
+++ trunk/vorbis-java/output.log.1	2007-08-08 23:16:42 UTC (rev 13469)
@@ -0,0 +1,1701 @@
+
+[27 Jul 2007 03:21:03,755] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 03:21:03,756] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 03:21:03,757] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 03:21:03,757] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 03:21:03,757] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 03:21:03,758] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 03:21:03,758] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 03:21:03,759] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 03:21:03,759] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 03:21:03,760] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 03:21:03,760] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 03:21:03,761] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 03:21:03,761] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 03:21:03,761] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 03:21:03,761] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 03:21:03,764] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 03:21:03,764] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 03:21:03,764] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 03:21:03,764] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 03:21:03,765] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 03:21:03,766] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 03:21:03,766] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 03:21:03,766] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 03:21:03,766] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 03:21:03,767] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 03:21:03,767] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode
+
+[27 Jul 2007 03:21:03,767] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 03:21:03,767] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 03:21:03,768] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 03:21:03,768] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 03:21:03,769] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 03:21:03,769] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 03:21:03,769] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 03:21:03,769] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 03:21:03,770] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 03:21:03,770] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 04:06:50,388] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 04:06:50,391] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 04:06:50,392] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 04:06:50,395] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 04:06:50,395] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 04:06:50,396] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 04:06:50,397] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 04:06:50,398] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 04:06:50,403] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 04:06:50,404] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 04:06:50,404] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 04:06:50,404] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 04:06:50,405] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 04:06:50,405] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 04:06:50,405] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 04:06:50,406] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 04:06:50,406] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 04:06:50,407] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 04:06:50,407] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 04:06:50,408] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 04:06:50,408] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:06:50,409] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 04:06:50,409] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 04:06:50,410] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 04:06:50,410] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 04:06:50,411] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 04:06:50,411] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 04:06:50,411] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 04:06:50,411] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 04:06:50,412] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 04:06:50,412] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 04:06:50,414] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 04:06:50,415] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 04:06:50,415] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 04:06:50,415] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 04:06:50,415] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 04:06:50,416] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 04:06:50,416] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 04:06:50,417] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:06:50,417] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 04:06:50,417] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 04:06:50,417] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode
+
+[27 Jul 2007 04:06:50,418] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 04:06:50,418] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 04:06:50,419] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 04:06:50,419] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 04:06:50,419] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 04:06:50,419] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 04:06:50,420] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 04:06:50,420] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 04:06:50,420] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 04:06:50,421] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 04:58:00,774] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 04:58:00,777] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 04:58:00,778] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 04:58:00,781] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 04:58:00,781] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 04:58:00,781] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 04:58:00,782] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 04:58:00,782] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 04:58:00,783] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 04:58:00,788] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 04:58:00,788] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 04:58:00,788] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 04:58:00,789] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 04:58:00,789] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 04:58:00,789] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 04:58:00,790] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 04:58:00,790] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 04:58:00,791] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 04:58:00,791] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 04:58:00,792] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 04:58:00,792] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:58:00,792] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 04:58:00,793] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 04:58:00,793] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 04:58:00,794] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 04:58:00,794] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 04:58:00,794] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 04:58:00,794] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 04:58:00,795] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 04:58:00,795] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 04:58:00,795] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 04:58:00,796] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 04:58:00,797] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 04:58:00,797] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 04:58:00,797] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 04:58:00,797] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 04:58:00,798] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 04:58:00,799] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 04:58:00,799] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:58:00,799] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 04:58:00,799] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 04:58:00,799] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 04:58:00,800] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 04:58:00,800] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 04:58:00,800] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 04:58:00,801] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 04:58:00,801] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 04:58:00,801] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 04:58:00,801] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 04:58:00,802] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 04:58:00,802] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 04:58:00,802] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 04:59:30,350] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 04:59:30,353] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 04:59:30,354] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 04:59:30,357] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 04:59:30,357] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 04:59:30,358] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 04:59:30,358] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 04:59:30,359] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 04:59:30,359] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 04:59:30,364] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 04:59:30,365] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 04:59:30,365] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 04:59:30,365] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 04:59:30,366] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 04:59:30,366] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 04:59:30,366] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 04:59:30,367] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 04:59:30,367] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 04:59:30,368] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 04:59:30,368] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 04:59:30,368] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:59:30,369] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 04:59:30,369] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 04:59:30,370] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 04:59:30,370] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 04:59:30,370] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 04:59:30,371] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 04:59:30,371] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 04:59:30,371] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 04:59:30,371] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 04:59:30,372] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 04:59:30,373] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 04:59:30,373] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 04:59:30,374] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 04:59:30,374] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 04:59:30,374] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 04:59:30,375] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 04:59:30,375] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 04:59:30,375] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 04:59:30,376] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 04:59:30,376] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 04:59:30,376] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 04:59:30,376] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 04:59:30,376] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 04:59:30,377] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 04:59:30,377] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 04:59:30,378] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 04:59:30,378] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 04:59:30,378] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 04:59:30,378] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 04:59:30,378] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 04:59:30,379] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:00:46,313] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:00:46,316] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:00:46,317] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:00:46,320] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:00:46,320] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:00:46,320] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:00:46,321] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:00:46,321] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:00:46,322] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:00:46,327] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:00:46,327] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:00:46,328] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:00:46,328] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:00:46,328] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:00:46,329] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:00:46,329] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:00:46,330] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:00:46,330] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:00:46,330] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:00:46,331] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:00:46,331] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:00:46,331] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:00:46,332] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:00:46,332] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:00:46,333] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:00:46,333] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:00:46,333] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:00:46,334] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:00:46,334] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:00:46,334] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:00:46,334] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:00:46,336] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:00:46,336] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:00:46,336] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:00:46,337] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:00:46,337] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:00:46,338] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:00:46,338] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:00:46,338] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:00:46,338] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:00:46,339] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:00:46,339] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:00:46,339] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:00:46,339] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:00:46,340] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:00:46,340] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:00:46,340] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:00:46,340] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:00:46,341] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:00:46,341] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:00:46,341] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:00:46,341] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:01:22,227] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:01:22,230] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:01:22,230] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:01:22,233] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:01:22,234] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:01:22,234] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:01:22,235] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:01:22,235] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:01:22,236] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:01:22,241] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:01:22,241] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:01:22,241] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:01:22,242] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:01:22,242] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:01:22,242] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:01:22,243] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:01:22,243] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:01:22,244] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:01:22,244] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:01:22,244] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:01:22,245] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:01:22,245] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:01:22,245] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:01:22,246] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:01:22,246] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:01:22,247] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:01:22,247] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:01:22,247] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:01:22,248] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:01:22,248] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:01:22,248] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:01:22,249] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:01:22,250] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:01:22,250] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:01:22,250] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:01:22,251] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:01:22,251] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:01:22,252] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:01:22,252] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:01:22,252] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:01:22,252] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:01:22,253] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:01:22,253] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:01:22,253] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:01:22,254] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:01:22,254] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:01:22,254] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:01:22,254] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:01:22,255] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:01:22,255] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:01:22,255] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:01:22,255] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:02:04,521] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:02:04,524] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:02:04,525] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:02:04,528] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:02:04,528] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:02:04,529] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:02:04,529] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:02:04,530] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:02:04,530] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:02:04,535] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:02:04,536] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:02:04,536] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:02:04,536] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:02:04,537] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:02:04,537] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:02:04,538] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:02:04,538] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:02:04,539] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:02:04,539] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:02:04,539] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:02:04,539] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:02:04,540] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:02:04,540] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:02:04,541] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:02:04,541] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:02:04,541] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:02:04,542] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:02:04,542] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:02:04,542] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:02:04,543] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:02:04,543] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:02:04,544] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:02:04,545] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:02:04,545] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:02:04,545] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:02:04,545] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:02:04,546] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:02:04,546] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:02:04,547] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:02:04,547] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:02:04,547] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:02:04,547] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:02:04,547] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:02:04,548] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:02:04,548] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:02:04,549] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:02:04,549] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:02:04,549] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:02:04,549] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:02:04,550] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:02:04,550] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:02:04,550] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:03:25,282] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:03:25,285] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:03:25,286] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:03:25,289] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:03:25,290] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:03:25,290] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:03:25,291] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:03:25,291] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:03:25,297] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:03:25,297] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:03:25,297] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:03:25,298] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:03:25,298] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:03:25,299] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:03:25,299] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:03:25,300] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:03:25,300] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:03:25,301] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:03:25,301] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:03:25,301] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:03:25,302] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:03:25,302] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:03:25,302] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:03:25,303] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:03:25,303] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:03:25,304] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:03:25,304] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:03:25,304] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:03:25,305] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:03:25,305] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:03:25,305] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:03:25,307] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:03:25,308] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:03:25,308] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:03:25,308] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:03:25,308] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:03:25,309] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:03:25,310] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:03:25,310] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:03:25,310] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:03:25,310] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:03:25,310] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode
+
+[27 Jul 2007 05:03:25,311] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:03:25,311] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:03:25,312] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:03:25,312] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:03:25,312] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:03:25,312] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:03:25,313] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:03:25,313] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:03:25,313] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:03:25,313] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:34:11,188] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:34:11,191] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:34:11,192] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:34:11,195] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:34:11,195] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:34:11,196] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:34:11,196] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:34:11,197] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:34:11,197] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:34:11,202] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:34:11,202] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:34:11,203] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:34:11,203] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:34:11,203] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:34:11,204] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:34:11,204] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:34:11,205] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:34:11,205] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:34:11,206] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:34:11,206] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:34:11,206] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:34:11,207] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:34:11,207] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:34:11,208] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:34:11,208] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:34:11,208] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:34:11,209] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:34:11,209] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:34:11,209] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:34:11,209] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:34:11,210] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:34:11,211] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:34:11,212] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:34:11,212] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:34:11,213] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:34:11,213] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:34:11,214] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:34:11,214] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:34:11,215] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:34:11,215] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:34:11,215] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:34:11,215] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:34:11,216] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:34:11,216] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:34:11,217] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:34:11,217] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:34:11,217] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:34:11,217] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:34:11,218] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:34:11,218] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:34:11,218] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:34:11,218] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:35:25,561] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:35:25,564] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:35:25,565] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:35:25,568] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:35:25,568] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:35:25,568] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:35:25,569] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:35:25,569] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:35:25,570] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:35:25,575] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:35:25,575] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:35:25,575] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:35:25,576] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:35:25,576] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:35:25,576] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:35:25,577] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:35:25,577] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:35:25,578] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:35:25,578] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:35:25,578] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:35:25,579] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:35:25,579] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:35:25,580] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:35:25,580] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:35:25,581] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:35:25,581] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:35:25,581] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:35:25,581] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:35:25,582] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:35:25,582] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:35:25,582] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:35:25,583] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:35:25,584] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:35:25,584] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:35:25,584] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:35:25,584] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:35:25,585] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:35:25,586] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:35:25,586] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:35:25,586] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:35:25,586] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:35:25,587] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:35:25,587] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:35:25,587] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:35:25,588] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:35:25,588] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:35:25,588] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:35:25,589] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:35:25,589] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:35:25,589] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:35:25,589] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:35:25,590] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:40:18,817] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:40:18,820] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:40:18,821] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:40:18,823] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:40:18,824] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:40:18,824] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:40:18,825] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:40:18,825] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:40:18,826] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:40:18,832] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:40:18,832] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:40:18,833] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:40:18,833] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:40:18,834] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:40:18,834] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:40:18,834] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:40:18,835] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:40:18,835] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:40:18,836] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:40:18,836] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:40:18,836] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:40:18,837] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:40:18,837] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:40:18,838] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:40:18,838] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:40:18,838] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:40:18,839] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:40:18,839] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:40:18,839] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:40:18,839] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:40:18,839] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:40:18,841] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:40:18,841] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:40:18,841] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:40:18,842] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:40:18,842] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:40:18,843] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:40:18,843] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:40:18,843] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:40:18,844] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:40:18,844] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:40:18,844] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:40:18,844] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:40:18,844] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:40:18,845] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:40:18,845] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:40:18,846] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:40:18,846] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:40:18,846] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:40:18,846] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:40:18,847] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:40:18,847] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:41:26,311] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:41:26,313] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:41:26,314] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:41:26,317] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:41:26,317] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:41:26,318] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:41:26,318] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:41:26,319] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:41:26,319] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:41:26,324] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:41:26,324] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:41:26,325] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:41:26,325] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:41:26,325] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:41:26,326] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:41:26,326] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:41:26,327] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:41:26,327] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:41:26,328] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:41:26,328] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:41:26,328] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:41:26,329] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:41:26,329] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:41:26,330] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:41:26,330] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:41:26,330] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:41:26,331] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:41:26,331] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:41:26,331] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:41:26,331] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:41:26,331] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:41:26,333] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:41:26,333] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:41:26,333] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:41:26,334] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:41:26,334] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:41:26,335] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:41:26,335] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:41:26,335] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:41:26,335] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:41:26,336] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:41:26,336] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:41:26,336] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:41:26,336] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:41:26,337] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:41:26,337] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:41:26,337] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:41:26,338] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:41:26,338] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:41:26,338] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:41:26,338] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:41:26,338] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:42:58,857] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:42:58,859] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:42:58,860] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:42:58,863] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:42:58,864] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:42:58,864] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:42:58,865] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:42:58,865] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:42:58,866] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:42:58,870] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:42:58,871] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:42:58,871] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:42:58,871] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:42:58,872] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:42:58,872] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:42:58,873] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:42:58,873] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:42:58,874] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:42:58,874] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:42:58,874] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:42:58,874] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:42:58,875] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:42:58,875] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:42:58,876] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:42:58,876] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:42:58,877] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:42:58,877] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:42:58,877] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:42:58,877] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:42:58,878] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:42:58,878] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:42:58,879] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:42:58,880] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:42:58,880] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:42:58,880] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:42:58,880] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:42:58,881] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:42:58,881] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:42:58,882] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:42:58,882] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:42:58,882] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:42:58,882] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:42:58,883] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:42:58,883] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:42:58,883] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:42:58,884] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:42:58,884] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:42:58,884] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:42:58,884] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:42:58,884] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:42:58,885] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:42:58,885] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 05:43:52,329] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 05:43:52,332] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 05:43:52,333] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 05:43:52,336] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 05:43:52,336] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 05:43:52,336] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 05:43:52,337] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 05:43:52,337] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 05:43:52,338] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 05:43:52,343] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 05:43:52,343] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 05:43:52,343] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 05:43:52,344] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 05:43:52,344] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 05:43:52,344] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 05:43:52,345] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 05:43:52,345] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 05:43:52,346] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 05:43:52,346] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 05:43:52,346] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 05:43:52,347] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:43:52,347] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 05:43:52,347] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 05:43:52,348] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 05:43:52,348] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 05:43:52,349] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 05:43:52,349] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 05:43:52,349] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 05:43:52,350] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 05:43:52,350] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 05:43:52,350] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 05:43:52,351] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 05:43:52,352] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 05:43:52,352] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 05:43:52,352] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 05:43:52,353] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 05:43:52,353] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 05:43:52,354] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 05:43:52,354] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 05:43:52,354] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 05:43:52,354] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 05:43:52,355] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode, sharing
+
+[27 Jul 2007 05:43:52,355] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 05:43:52,355] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 05:43:52,356] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 05:43:52,356] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 05:43:52,356] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 05:43:52,356] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 05:43:52,357] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 05:43:52,357] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 05:43:52,357] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 05:43:52,357] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 06:00:00,478] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 06:00:00,481] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 06:00:00,482] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 06:00:00,485] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 06:00:00,486] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 06:00:00,486] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 06:00:00,487] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 06:00:00,487] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 06:00:00,492] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 06:00:00,493] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 06:00:00,493] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 06:00:00,493] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 06:00:00,494] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 06:00:00,494] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 06:00:00,495] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 06:00:00,495] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 06:00:00,496] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 06:00:00,496] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 06:00:00,497] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 06:00:00,497] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 06:00:00,497] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 06:00:00,498] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 06:00:00,498] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 06:00:00,499] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 06:00:00,499] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 06:00:00,499] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 06:00:00,500] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 06:00:00,500] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 06:00:00,500] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 06:00:00,501] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 06:00:00,501] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 06:00:00,503] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 06:00:00,503] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 06:00:00,504] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 06:00:00,504] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 06:00:00,504] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 06:00:00,505] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 06:00:00,505] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 06:00:00,506] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 06:00:00,506] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 06:00:00,506] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 06:00:00,506] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode
+
+[27 Jul 2007 06:00:00,507] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 06:00:00,507] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 06:00:00,508] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 06:00:00,508] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 06:00:00,508] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 06:00:00,508] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 06:00:00,509] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 06:00:00,509] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 06:00:00,509] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 06:00:00,509] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[27 Jul 2007 06:19:43,017] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[27 Jul 2007 06:19:43,021] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[27 Jul 2007 06:19:43,022] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[27 Jul 2007 06:19:43,025] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[27 Jul 2007 06:19:43,025] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[27 Jul 2007 06:19:43,026] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[27 Jul 2007 06:19:43,026] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[27 Jul 2007 06:19:43,027] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[27 Jul 2007 06:19:43,034] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[27 Jul 2007 06:19:43,034] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[27 Jul 2007 06:19:43,035] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[27 Jul 2007 06:19:43,035] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[27 Jul 2007 06:19:43,036] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[27 Jul 2007 06:19:43,036] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[27 Jul 2007 06:19:43,036] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[27 Jul 2007 06:19:43,037] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[27 Jul 2007 06:19:43,037] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[27 Jul 2007 06:19:43,038] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[27 Jul 2007 06:19:43,038] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[27 Jul 2007 06:19:43,039] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[27 Jul 2007 06:19:43,039] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 06:19:43,039] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[27 Jul 2007 06:19:43,040] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[27 Jul 2007 06:19:43,040] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[27 Jul 2007 06:19:43,041] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[27 Jul 2007 06:19:43,041] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0
+
+[27 Jul 2007 06:19:43,042] - DEBUG [main] (VorbisEncoder.java:37) - sun.management.compiler = HotSpot Client Compiler
+
+[27 Jul 2007 06:19:43,042] - DEBUG [main] (VorbisEncoder.java:37) - os.version = 10.4.10
+
+[27 Jul 2007 06:19:43,042] - DEBUG [main] (VorbisEncoder.java:37) - user.home = /Users/bencohee
+
+[27 Jul 2007 06:19:43,042] - DEBUG [main] (VorbisEncoder.java:37) - user.timezone = America/Los_Angeles
+
+[27 Jul 2007 06:19:43,043] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.printerjob = apple.awt.CPrinterJob
+
+[27 Jul 2007 06:19:43,045] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding = MacRoman
+
+[27 Jul 2007 06:19:43,045] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.version = 1.5
+
+[27 Jul 2007 06:19:43,045] - DEBUG [main] (VorbisEncoder.java:37) - user.name = bencohee
+
+[27 Jul 2007 06:19:43,046] - DEBUG [main] (VorbisEncoder.java:37) - java.class.path = /Users/bencohee/Development/Java/JVorbis/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
+
+[27 Jul 2007 06:19:43,046] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.version = 1.0
+
+[27 Jul 2007 06:19:43,046] - DEBUG [main] (VorbisEncoder.java:37) - sun.arch.data.model = 32
+
+[27 Jul 2007 06:19:43,047] - DEBUG [main] (VorbisEncoder.java:37) - java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
+
+[27 Jul 2007 06:19:43,047] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.vendor = Sun Microsystems Inc.
+
+[27 Jul 2007 06:19:43,048] - DEBUG [main] (VorbisEncoder.java:37) - user.language = en
+
+[27 Jul 2007 06:19:43,048] - DEBUG [main] (VorbisEncoder.java:37) - awt.toolkit = apple.awt.CToolkit
+
+[27 Jul 2007 06:19:43,048] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.info = mixed mode
+
+[27 Jul 2007 06:19:43,048] - DEBUG [main] (VorbisEncoder.java:37) - java.version = 1.5.0_07
+
+[27 Jul 2007 06:19:43,049] - DEBUG [main] (VorbisEncoder.java:37) - java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
+
+[27 Jul 2007 06:19:43,049] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
+
+[27 Jul 2007 06:19:43,050] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor = Apple Computer, Inc.
+
+[27 Jul 2007 06:19:43,050] - DEBUG [main] (VorbisEncoder.java:37) - file.separator = /
+
+[27 Jul 2007 06:19:43,050] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url.bug = http://developer.apple.com/java/
+
+[27 Jul 2007 06:19:43,050] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.endian = little
+
+[27 Jul 2007 06:19:43,051] - DEBUG [main] (VorbisEncoder.java:37) - sun.io.unicode.encoding = UnicodeLittle
+
+[27 Jul 2007 06:19:43,051] - DEBUG [main] (VorbisEncoder.java:37) - mrj.version = 1040.1.5.0_07-164
+
+[27 Jul 2007 06:19:43,051] - DEBUG [main] (VorbisEncoder.java:37) - sun.cpu.isalist = 
+
+[02 Aug 2007 01:05:13,374] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition
+
+[02 Aug 2007 01:05:13,396] - DEBUG [main] (VorbisEncoder.java:37) - sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries
+
+[02 Aug 2007 01:05:13,397] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.version = 1.5.0_07-87
+
+[02 Aug 2007 01:05:13,402] - DEBUG [main] (VorbisEncoder.java:37) - awt.nativeDoubleBuffering = true
+
+[02 Aug 2007 01:05:13,403] - DEBUG [main] (VorbisEncoder.java:37) - gopherProxySet = false
+
+[02 Aug 2007 01:05:13,403] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.vendor = "Apple Computer, Inc."
+
+[02 Aug 2007 01:05:13,404] - DEBUG [main] (VorbisEncoder.java:37) - java.vendor.url = http://apple.com/
+
+[02 Aug 2007 01:05:13,405] - DEBUG [main] (VorbisEncoder.java:37) - path.separator = :
+
+[02 Aug 2007 01:05:13,411] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.name = Java HotSpot(TM) Client VM
+
+[02 Aug 2007 01:05:13,412] - DEBUG [main] (VorbisEncoder.java:37) - file.encoding.pkg = sun.io
+
+[02 Aug 2007 01:05:13,412] - DEBUG [main] (VorbisEncoder.java:37) - user.country = US
+
+[02 Aug 2007 01:05:13,413] - DEBUG [main] (VorbisEncoder.java:37) - sun.os.patch.level = unknown
+
+[02 Aug 2007 01:05:13,413] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.name = Java Virtual Machine Specification
+
+[02 Aug 2007 01:05:13,414] - DEBUG [main] (VorbisEncoder.java:37) - user.dir = /Users/bencohee/Development/Java/JVorbis
+
+[02 Aug 2007 01:05:13,414] - DEBUG [main] (VorbisEncoder.java:37) - java.runtime.version = 1.5.0_07-164
+
+[02 Aug 2007 01:05:13,415] - DEBUG [main] (VorbisEncoder.java:37) - java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
+
+[02 Aug 2007 01:05:13,416] - DEBUG [main] (VorbisEncoder.java:37) - java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed
+
+[02 Aug 2007 01:05:13,417] - DEBUG [main] (VorbisEncoder.java:37) - os.arch = i386
+
+[02 Aug 2007 01:05:13,417] - DEBUG [main] (VorbisEncoder.java:37) - java.io.tmpdir = /tmp
+
+[02 Aug 2007 01:05:13,418] - DEBUG [main] (VorbisEncoder.java:37) - line.separator = 
+
+
+[02 Aug 2007 01:05:13,418] - DEBUG [main] (VorbisEncoder.java:37) - java.vm.specification.vendor = Sun Microsystems Inc.
+
+[02 Aug 2007 01:05:13,420] - DEBUG [main] (VorbisEncoder.java:37) - os.name = Mac OS X
+
+[02 Aug 2007 01:05:13,421] - DEBUG [main] (VorbisEncoder.java:37) - sun.jnu.encoding = MacRoman
+
+[02 Aug 2007 01:05:13,421] - DEBUG [main] (VorbisEncoder.java:37) - java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
+
+[02 Aug 2007 01:05:13,422] - DEBUG [main] (VorbisEncoder.java:37) - java.specification.name = Java Platform API Specification
+
+[02 Aug 2007 01:05:13,422] - DEBUG [main] (VorbisEncoder.java:37) - java.class.version = 49.0

Added: trunk/vorbis-java/test.wav
===================================================================
(Binary files differ)


Property changes on: trunk/vorbis-java/test.wav
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/vorbis-java/test_original.wav
===================================================================
(Binary files differ)


Property changes on: trunk/vorbis-java/test_original.wav
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream



More information about the commits mailing list