001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     *
010     *     http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    package org.apache.hadoop.util;
019    
020    import java.util.zip.Checksum;
021    
022    import org.apache.hadoop.classification.InterfaceAudience;
023    import org.apache.hadoop.classification.InterfaceStability;
024    
025    /**
026     * A pure-java implementation of the CRC32 checksum that uses
027     * the same polynomial as the built-in native CRC32.
028     *
029     * This is to avoid the JNI overhead for certain uses of Checksumming
030     * where many small pieces of data are checksummed in succession.
031     *
032     * The current version is ~10x to 1.8x as fast as Sun's native
033     * java.util.zip.CRC32 in Java 1.6
034     *
035     * @see java.util.zip.CRC32
036     */
037    @InterfaceAudience.Public
038    @InterfaceStability.Stable
039    public class PureJavaCrc32 implements Checksum {
040    
041      /** the current CRC value, bit-flipped */
042      private int crc;
043    
044      /** Create a new PureJavaCrc32 object. */
045      public PureJavaCrc32() {
046        reset();
047      }
048    
049      @Override
050      public long getValue() {
051        return (~crc) & 0xffffffffL;
052      }
053    
054      @Override
055      public void reset() {
056        crc = 0xffffffff;
057      }
058    
059      @Override
060      public void update(byte[] b, int off, int len) {
061        int localCrc = crc;
062    
063        while(len > 7) {
064          final int c0 =(b[off+0] ^ localCrc) & 0xff;
065          final int c1 =(b[off+1] ^ (localCrc >>>= 8)) & 0xff;
066          final int c2 =(b[off+2] ^ (localCrc >>>= 8)) & 0xff;
067          final int c3 =(b[off+3] ^ (localCrc >>>= 8)) & 0xff;
068          localCrc = (T[T8_7_start + c0] ^ T[T8_6_start + c1])
069              ^ (T[T8_5_start + c2] ^ T[T8_4_start + c3]);
070    
071          final int c4 = b[off+4] & 0xff;
072          final int c5 = b[off+5] & 0xff;
073          final int c6 = b[off+6] & 0xff;
074          final int c7 = b[off+7] & 0xff;
075    
076          localCrc ^= (T[T8_3_start + c4] ^ T[T8_2_start + c5])
077               ^ (T[T8_1_start + c6] ^ T[T8_0_start + c7]);
078    
079          off += 8;
080          len -= 8;
081        }
082    
083        /* loop unroll - duff's device style */
084        switch(len) {
085          case 7: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
086          case 6: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
087          case 5: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
088          case 4: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
089          case 3: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
090          case 2: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
091          case 1: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
092          default:
093            /* nothing */
094        }
095        
096        // Publish crc out to object
097        crc = localCrc;
098      }
099    
100      @Override
101      final public void update(int b) {
102        crc = (crc >>> 8) ^ T[T8_0_start + ((crc ^ b) & 0xff)];
103      }
104    
105      /*
106       * CRC-32 lookup tables generated by the polynomial 0xEDB88320.
107       * See also TestPureJavaCrc32.Table.
108       */
109      private static final int T8_0_start = 0*256;
110      private static final int T8_1_start = 1*256;
111      private static final int T8_2_start = 2*256;
112      private static final int T8_3_start = 3*256;
113      private static final int T8_4_start = 4*256;
114      private static final int T8_5_start = 5*256;
115      private static final int T8_6_start = 6*256;
116      private static final int T8_7_start = 7*256;
117    
118      private static final int[] T = new int[] {
119            /* T8_0 */
120        0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 
121        0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 
122        0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 
123        0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 
124        0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 
125        0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 
126        0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 
127        0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 
128        0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 
129        0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 
130        0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 
131        0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 
132        0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 
133        0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 
134        0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 
135        0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 
136        0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 
137        0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 
138        0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 
139        0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 
140        0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 
141        0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 
142        0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 
143        0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 
144        0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 
145        0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 
146        0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 
147        0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 
148        0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 
149        0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 
150        0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 
151        0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 
152        0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 
153        0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 
154        0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 
155        0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 
156        0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 
157        0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 
158        0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 
159        0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 
160        0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 
161        0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 
162        0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 
163        0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 
164        0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 
165        0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 
166        0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 
167        0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 
168        0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 
169        0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 
170        0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 
171        0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 
172        0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 
173        0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 
174        0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 
175        0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 
176        0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 
177        0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 
178        0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 
179        0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 
180        0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 
181        0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 
182        0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 
183        0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
184        /* T8_1 */
185        0x00000000, 0x191B3141, 0x32366282, 0x2B2D53C3, 
186        0x646CC504, 0x7D77F445, 0x565AA786, 0x4F4196C7, 
187        0xC8D98A08, 0xD1C2BB49, 0xFAEFE88A, 0xE3F4D9CB, 
188        0xACB54F0C, 0xB5AE7E4D, 0x9E832D8E, 0x87981CCF, 
189        0x4AC21251, 0x53D92310, 0x78F470D3, 0x61EF4192, 
190        0x2EAED755, 0x37B5E614, 0x1C98B5D7, 0x05838496, 
191        0x821B9859, 0x9B00A918, 0xB02DFADB, 0xA936CB9A, 
192        0xE6775D5D, 0xFF6C6C1C, 0xD4413FDF, 0xCD5A0E9E, 
193        0x958424A2, 0x8C9F15E3, 0xA7B24620, 0xBEA97761, 
194        0xF1E8E1A6, 0xE8F3D0E7, 0xC3DE8324, 0xDAC5B265, 
195        0x5D5DAEAA, 0x44469FEB, 0x6F6BCC28, 0x7670FD69, 
196        0x39316BAE, 0x202A5AEF, 0x0B07092C, 0x121C386D, 
197        0xDF4636F3, 0xC65D07B2, 0xED705471, 0xF46B6530, 
198        0xBB2AF3F7, 0xA231C2B6, 0x891C9175, 0x9007A034, 
199        0x179FBCFB, 0x0E848DBA, 0x25A9DE79, 0x3CB2EF38, 
200        0x73F379FF, 0x6AE848BE, 0x41C51B7D, 0x58DE2A3C, 
201        0xF0794F05, 0xE9627E44, 0xC24F2D87, 0xDB541CC6, 
202        0x94158A01, 0x8D0EBB40, 0xA623E883, 0xBF38D9C2, 
203        0x38A0C50D, 0x21BBF44C, 0x0A96A78F, 0x138D96CE, 
204        0x5CCC0009, 0x45D73148, 0x6EFA628B, 0x77E153CA, 
205        0xBABB5D54, 0xA3A06C15, 0x888D3FD6, 0x91960E97, 
206        0xDED79850, 0xC7CCA911, 0xECE1FAD2, 0xF5FACB93, 
207        0x7262D75C, 0x6B79E61D, 0x4054B5DE, 0x594F849F, 
208        0x160E1258, 0x0F152319, 0x243870DA, 0x3D23419B, 
209        0x65FD6BA7, 0x7CE65AE6, 0x57CB0925, 0x4ED03864, 
210        0x0191AEA3, 0x188A9FE2, 0x33A7CC21, 0x2ABCFD60, 
211        0xAD24E1AF, 0xB43FD0EE, 0x9F12832D, 0x8609B26C, 
212        0xC94824AB, 0xD05315EA, 0xFB7E4629, 0xE2657768, 
213        0x2F3F79F6, 0x362448B7, 0x1D091B74, 0x04122A35, 
214        0x4B53BCF2, 0x52488DB3, 0x7965DE70, 0x607EEF31, 
215        0xE7E6F3FE, 0xFEFDC2BF, 0xD5D0917C, 0xCCCBA03D, 
216        0x838A36FA, 0x9A9107BB, 0xB1BC5478, 0xA8A76539, 
217        0x3B83984B, 0x2298A90A, 0x09B5FAC9, 0x10AECB88, 
218        0x5FEF5D4F, 0x46F46C0E, 0x6DD93FCD, 0x74C20E8C, 
219        0xF35A1243, 0xEA412302, 0xC16C70C1, 0xD8774180, 
220        0x9736D747, 0x8E2DE606, 0xA500B5C5, 0xBC1B8484, 
221        0x71418A1A, 0x685ABB5B, 0x4377E898, 0x5A6CD9D9, 
222        0x152D4F1E, 0x0C367E5F, 0x271B2D9C, 0x3E001CDD, 
223        0xB9980012, 0xA0833153, 0x8BAE6290, 0x92B553D1, 
224        0xDDF4C516, 0xC4EFF457, 0xEFC2A794, 0xF6D996D5, 
225        0xAE07BCE9, 0xB71C8DA8, 0x9C31DE6B, 0x852AEF2A, 
226        0xCA6B79ED, 0xD37048AC, 0xF85D1B6F, 0xE1462A2E, 
227        0x66DE36E1, 0x7FC507A0, 0x54E85463, 0x4DF36522, 
228        0x02B2F3E5, 0x1BA9C2A4, 0x30849167, 0x299FA026, 
229        0xE4C5AEB8, 0xFDDE9FF9, 0xD6F3CC3A, 0xCFE8FD7B, 
230        0x80A96BBC, 0x99B25AFD, 0xB29F093E, 0xAB84387F, 
231        0x2C1C24B0, 0x350715F1, 0x1E2A4632, 0x07317773, 
232        0x4870E1B4, 0x516BD0F5, 0x7A468336, 0x635DB277, 
233        0xCBFAD74E, 0xD2E1E60F, 0xF9CCB5CC, 0xE0D7848D, 
234        0xAF96124A, 0xB68D230B, 0x9DA070C8, 0x84BB4189, 
235        0x03235D46, 0x1A386C07, 0x31153FC4, 0x280E0E85, 
236        0x674F9842, 0x7E54A903, 0x5579FAC0, 0x4C62CB81, 
237        0x8138C51F, 0x9823F45E, 0xB30EA79D, 0xAA1596DC, 
238        0xE554001B, 0xFC4F315A, 0xD7626299, 0xCE7953D8, 
239        0x49E14F17, 0x50FA7E56, 0x7BD72D95, 0x62CC1CD4, 
240        0x2D8D8A13, 0x3496BB52, 0x1FBBE891, 0x06A0D9D0, 
241        0x5E7EF3EC, 0x4765C2AD, 0x6C48916E, 0x7553A02F, 
242        0x3A1236E8, 0x230907A9, 0x0824546A, 0x113F652B, 
243        0x96A779E4, 0x8FBC48A5, 0xA4911B66, 0xBD8A2A27, 
244        0xF2CBBCE0, 0xEBD08DA1, 0xC0FDDE62, 0xD9E6EF23, 
245        0x14BCE1BD, 0x0DA7D0FC, 0x268A833F, 0x3F91B27E, 
246        0x70D024B9, 0x69CB15F8, 0x42E6463B, 0x5BFD777A, 
247        0xDC656BB5, 0xC57E5AF4, 0xEE530937, 0xF7483876, 
248        0xB809AEB1, 0xA1129FF0, 0x8A3FCC33, 0x9324FD72,
249        /* T8_2 */
250        0x00000000, 0x01C26A37, 0x0384D46E, 0x0246BE59, 
251        0x0709A8DC, 0x06CBC2EB, 0x048D7CB2, 0x054F1685, 
252        0x0E1351B8, 0x0FD13B8F, 0x0D9785D6, 0x0C55EFE1, 
253        0x091AF964, 0x08D89353, 0x0A9E2D0A, 0x0B5C473D, 
254        0x1C26A370, 0x1DE4C947, 0x1FA2771E, 0x1E601D29, 
255        0x1B2F0BAC, 0x1AED619B, 0x18ABDFC2, 0x1969B5F5, 
256        0x1235F2C8, 0x13F798FF, 0x11B126A6, 0x10734C91, 
257        0x153C5A14, 0x14FE3023, 0x16B88E7A, 0x177AE44D, 
258        0x384D46E0, 0x398F2CD7, 0x3BC9928E, 0x3A0BF8B9, 
259        0x3F44EE3C, 0x3E86840B, 0x3CC03A52, 0x3D025065, 
260        0x365E1758, 0x379C7D6F, 0x35DAC336, 0x3418A901, 
261        0x3157BF84, 0x3095D5B3, 0x32D36BEA, 0x331101DD, 
262        0x246BE590, 0x25A98FA7, 0x27EF31FE, 0x262D5BC9, 
263        0x23624D4C, 0x22A0277B, 0x20E69922, 0x2124F315, 
264        0x2A78B428, 0x2BBADE1F, 0x29FC6046, 0x283E0A71, 
265        0x2D711CF4, 0x2CB376C3, 0x2EF5C89A, 0x2F37A2AD, 
266        0x709A8DC0, 0x7158E7F7, 0x731E59AE, 0x72DC3399, 
267        0x7793251C, 0x76514F2B, 0x7417F172, 0x75D59B45, 
268        0x7E89DC78, 0x7F4BB64F, 0x7D0D0816, 0x7CCF6221, 
269        0x798074A4, 0x78421E93, 0x7A04A0CA, 0x7BC6CAFD, 
270        0x6CBC2EB0, 0x6D7E4487, 0x6F38FADE, 0x6EFA90E9, 
271        0x6BB5866C, 0x6A77EC5B, 0x68315202, 0x69F33835, 
272        0x62AF7F08, 0x636D153F, 0x612BAB66, 0x60E9C151, 
273        0x65A6D7D4, 0x6464BDE3, 0x662203BA, 0x67E0698D, 
274        0x48D7CB20, 0x4915A117, 0x4B531F4E, 0x4A917579, 
275        0x4FDE63FC, 0x4E1C09CB, 0x4C5AB792, 0x4D98DDA5, 
276        0x46C49A98, 0x4706F0AF, 0x45404EF6, 0x448224C1, 
277        0x41CD3244, 0x400F5873, 0x4249E62A, 0x438B8C1D, 
278        0x54F16850, 0x55330267, 0x5775BC3E, 0x56B7D609, 
279        0x53F8C08C, 0x523AAABB, 0x507C14E2, 0x51BE7ED5, 
280        0x5AE239E8, 0x5B2053DF, 0x5966ED86, 0x58A487B1, 
281        0x5DEB9134, 0x5C29FB03, 0x5E6F455A, 0x5FAD2F6D, 
282        0xE1351B80, 0xE0F771B7, 0xE2B1CFEE, 0xE373A5D9, 
283        0xE63CB35C, 0xE7FED96B, 0xE5B86732, 0xE47A0D05, 
284        0xEF264A38, 0xEEE4200F, 0xECA29E56, 0xED60F461, 
285        0xE82FE2E4, 0xE9ED88D3, 0xEBAB368A, 0xEA695CBD, 
286        0xFD13B8F0, 0xFCD1D2C7, 0xFE976C9E, 0xFF5506A9, 
287        0xFA1A102C, 0xFBD87A1B, 0xF99EC442, 0xF85CAE75, 
288        0xF300E948, 0xF2C2837F, 0xF0843D26, 0xF1465711, 
289        0xF4094194, 0xF5CB2BA3, 0xF78D95FA, 0xF64FFFCD, 
290        0xD9785D60, 0xD8BA3757, 0xDAFC890E, 0xDB3EE339, 
291        0xDE71F5BC, 0xDFB39F8B, 0xDDF521D2, 0xDC374BE5, 
292        0xD76B0CD8, 0xD6A966EF, 0xD4EFD8B6, 0xD52DB281, 
293        0xD062A404, 0xD1A0CE33, 0xD3E6706A, 0xD2241A5D, 
294        0xC55EFE10, 0xC49C9427, 0xC6DA2A7E, 0xC7184049, 
295        0xC25756CC, 0xC3953CFB, 0xC1D382A2, 0xC011E895, 
296        0xCB4DAFA8, 0xCA8FC59F, 0xC8C97BC6, 0xC90B11F1, 
297        0xCC440774, 0xCD866D43, 0xCFC0D31A, 0xCE02B92D, 
298        0x91AF9640, 0x906DFC77, 0x922B422E, 0x93E92819, 
299        0x96A63E9C, 0x976454AB, 0x9522EAF2, 0x94E080C5, 
300        0x9FBCC7F8, 0x9E7EADCF, 0x9C381396, 0x9DFA79A1, 
301        0x98B56F24, 0x99770513, 0x9B31BB4A, 0x9AF3D17D, 
302        0x8D893530, 0x8C4B5F07, 0x8E0DE15E, 0x8FCF8B69, 
303        0x8A809DEC, 0x8B42F7DB, 0x89044982, 0x88C623B5, 
304        0x839A6488, 0x82580EBF, 0x801EB0E6, 0x81DCDAD1, 
305        0x8493CC54, 0x8551A663, 0x8717183A, 0x86D5720D, 
306        0xA9E2D0A0, 0xA820BA97, 0xAA6604CE, 0xABA46EF9, 
307        0xAEEB787C, 0xAF29124B, 0xAD6FAC12, 0xACADC625, 
308        0xA7F18118, 0xA633EB2F, 0xA4755576, 0xA5B73F41, 
309        0xA0F829C4, 0xA13A43F3, 0xA37CFDAA, 0xA2BE979D, 
310        0xB5C473D0, 0xB40619E7, 0xB640A7BE, 0xB782CD89, 
311        0xB2CDDB0C, 0xB30FB13B, 0xB1490F62, 0xB08B6555, 
312        0xBBD72268, 0xBA15485F, 0xB853F606, 0xB9919C31, 
313        0xBCDE8AB4, 0xBD1CE083, 0xBF5A5EDA, 0xBE9834ED,
314        /* T8_3 */
315        0x00000000, 0xB8BC6765, 0xAA09C88B, 0x12B5AFEE, 
316        0x8F629757, 0x37DEF032, 0x256B5FDC, 0x9DD738B9, 
317        0xC5B428EF, 0x7D084F8A, 0x6FBDE064, 0xD7018701, 
318        0x4AD6BFB8, 0xF26AD8DD, 0xE0DF7733, 0x58631056, 
319        0x5019579F, 0xE8A530FA, 0xFA109F14, 0x42ACF871, 
320        0xDF7BC0C8, 0x67C7A7AD, 0x75720843, 0xCDCE6F26, 
321        0x95AD7F70, 0x2D111815, 0x3FA4B7FB, 0x8718D09E, 
322        0x1ACFE827, 0xA2738F42, 0xB0C620AC, 0x087A47C9, 
323        0xA032AF3E, 0x188EC85B, 0x0A3B67B5, 0xB28700D0, 
324        0x2F503869, 0x97EC5F0C, 0x8559F0E2, 0x3DE59787, 
325        0x658687D1, 0xDD3AE0B4, 0xCF8F4F5A, 0x7733283F, 
326        0xEAE41086, 0x525877E3, 0x40EDD80D, 0xF851BF68, 
327        0xF02BF8A1, 0x48979FC4, 0x5A22302A, 0xE29E574F, 
328        0x7F496FF6, 0xC7F50893, 0xD540A77D, 0x6DFCC018, 
329        0x359FD04E, 0x8D23B72B, 0x9F9618C5, 0x272A7FA0, 
330        0xBAFD4719, 0x0241207C, 0x10F48F92, 0xA848E8F7, 
331        0x9B14583D, 0x23A83F58, 0x311D90B6, 0x89A1F7D3, 
332        0x1476CF6A, 0xACCAA80F, 0xBE7F07E1, 0x06C36084, 
333        0x5EA070D2, 0xE61C17B7, 0xF4A9B859, 0x4C15DF3C, 
334        0xD1C2E785, 0x697E80E0, 0x7BCB2F0E, 0xC377486B, 
335        0xCB0D0FA2, 0x73B168C7, 0x6104C729, 0xD9B8A04C, 
336        0x446F98F5, 0xFCD3FF90, 0xEE66507E, 0x56DA371B, 
337        0x0EB9274D, 0xB6054028, 0xA4B0EFC6, 0x1C0C88A3, 
338        0x81DBB01A, 0x3967D77F, 0x2BD27891, 0x936E1FF4, 
339        0x3B26F703, 0x839A9066, 0x912F3F88, 0x299358ED, 
340        0xB4446054, 0x0CF80731, 0x1E4DA8DF, 0xA6F1CFBA, 
341        0xFE92DFEC, 0x462EB889, 0x549B1767, 0xEC277002, 
342        0x71F048BB, 0xC94C2FDE, 0xDBF98030, 0x6345E755, 
343        0x6B3FA09C, 0xD383C7F9, 0xC1366817, 0x798A0F72, 
344        0xE45D37CB, 0x5CE150AE, 0x4E54FF40, 0xF6E89825, 
345        0xAE8B8873, 0x1637EF16, 0x048240F8, 0xBC3E279D, 
346        0x21E91F24, 0x99557841, 0x8BE0D7AF, 0x335CB0CA, 
347        0xED59B63B, 0x55E5D15E, 0x47507EB0, 0xFFEC19D5, 
348        0x623B216C, 0xDA874609, 0xC832E9E7, 0x708E8E82, 
349        0x28ED9ED4, 0x9051F9B1, 0x82E4565F, 0x3A58313A, 
350        0xA78F0983, 0x1F336EE6, 0x0D86C108, 0xB53AA66D, 
351        0xBD40E1A4, 0x05FC86C1, 0x1749292F, 0xAFF54E4A, 
352        0x322276F3, 0x8A9E1196, 0x982BBE78, 0x2097D91D, 
353        0x78F4C94B, 0xC048AE2E, 0xD2FD01C0, 0x6A4166A5, 
354        0xF7965E1C, 0x4F2A3979, 0x5D9F9697, 0xE523F1F2, 
355        0x4D6B1905, 0xF5D77E60, 0xE762D18E, 0x5FDEB6EB, 
356        0xC2098E52, 0x7AB5E937, 0x680046D9, 0xD0BC21BC, 
357        0x88DF31EA, 0x3063568F, 0x22D6F961, 0x9A6A9E04, 
358        0x07BDA6BD, 0xBF01C1D8, 0xADB46E36, 0x15080953, 
359        0x1D724E9A, 0xA5CE29FF, 0xB77B8611, 0x0FC7E174, 
360        0x9210D9CD, 0x2AACBEA8, 0x38191146, 0x80A57623, 
361        0xD8C66675, 0x607A0110, 0x72CFAEFE, 0xCA73C99B, 
362        0x57A4F122, 0xEF189647, 0xFDAD39A9, 0x45115ECC, 
363        0x764DEE06, 0xCEF18963, 0xDC44268D, 0x64F841E8, 
364        0xF92F7951, 0x41931E34, 0x5326B1DA, 0xEB9AD6BF, 
365        0xB3F9C6E9, 0x0B45A18C, 0x19F00E62, 0xA14C6907, 
366        0x3C9B51BE, 0x842736DB, 0x96929935, 0x2E2EFE50, 
367        0x2654B999, 0x9EE8DEFC, 0x8C5D7112, 0x34E11677, 
368        0xA9362ECE, 0x118A49AB, 0x033FE645, 0xBB838120, 
369        0xE3E09176, 0x5B5CF613, 0x49E959FD, 0xF1553E98, 
370        0x6C820621, 0xD43E6144, 0xC68BCEAA, 0x7E37A9CF, 
371        0xD67F4138, 0x6EC3265D, 0x7C7689B3, 0xC4CAEED6, 
372        0x591DD66F, 0xE1A1B10A, 0xF3141EE4, 0x4BA87981, 
373        0x13CB69D7, 0xAB770EB2, 0xB9C2A15C, 0x017EC639, 
374        0x9CA9FE80, 0x241599E5, 0x36A0360B, 0x8E1C516E, 
375        0x866616A7, 0x3EDA71C2, 0x2C6FDE2C, 0x94D3B949, 
376        0x090481F0, 0xB1B8E695, 0xA30D497B, 0x1BB12E1E, 
377        0x43D23E48, 0xFB6E592D, 0xE9DBF6C3, 0x516791A6, 
378        0xCCB0A91F, 0x740CCE7A, 0x66B96194, 0xDE0506F1,
379        /* T8_4 */
380        0x00000000, 0x3D6029B0, 0x7AC05360, 0x47A07AD0, 
381        0xF580A6C0, 0xC8E08F70, 0x8F40F5A0, 0xB220DC10, 
382        0x30704BC1, 0x0D106271, 0x4AB018A1, 0x77D03111, 
383        0xC5F0ED01, 0xF890C4B1, 0xBF30BE61, 0x825097D1, 
384        0x60E09782, 0x5D80BE32, 0x1A20C4E2, 0x2740ED52, 
385        0x95603142, 0xA80018F2, 0xEFA06222, 0xD2C04B92, 
386        0x5090DC43, 0x6DF0F5F3, 0x2A508F23, 0x1730A693, 
387        0xA5107A83, 0x98705333, 0xDFD029E3, 0xE2B00053, 
388        0xC1C12F04, 0xFCA106B4, 0xBB017C64, 0x866155D4, 
389        0x344189C4, 0x0921A074, 0x4E81DAA4, 0x73E1F314, 
390        0xF1B164C5, 0xCCD14D75, 0x8B7137A5, 0xB6111E15, 
391        0x0431C205, 0x3951EBB5, 0x7EF19165, 0x4391B8D5, 
392        0xA121B886, 0x9C419136, 0xDBE1EBE6, 0xE681C256, 
393        0x54A11E46, 0x69C137F6, 0x2E614D26, 0x13016496, 
394        0x9151F347, 0xAC31DAF7, 0xEB91A027, 0xD6F18997, 
395        0x64D15587, 0x59B17C37, 0x1E1106E7, 0x23712F57, 
396        0x58F35849, 0x659371F9, 0x22330B29, 0x1F532299, 
397        0xAD73FE89, 0x9013D739, 0xD7B3ADE9, 0xEAD38459, 
398        0x68831388, 0x55E33A38, 0x124340E8, 0x2F236958, 
399        0x9D03B548, 0xA0639CF8, 0xE7C3E628, 0xDAA3CF98, 
400        0x3813CFCB, 0x0573E67B, 0x42D39CAB, 0x7FB3B51B, 
401        0xCD93690B, 0xF0F340BB, 0xB7533A6B, 0x8A3313DB, 
402        0x0863840A, 0x3503ADBA, 0x72A3D76A, 0x4FC3FEDA, 
403        0xFDE322CA, 0xC0830B7A, 0x872371AA, 0xBA43581A, 
404        0x9932774D, 0xA4525EFD, 0xE3F2242D, 0xDE920D9D, 
405        0x6CB2D18D, 0x51D2F83D, 0x167282ED, 0x2B12AB5D, 
406        0xA9423C8C, 0x9422153C, 0xD3826FEC, 0xEEE2465C, 
407        0x5CC29A4C, 0x61A2B3FC, 0x2602C92C, 0x1B62E09C, 
408        0xF9D2E0CF, 0xC4B2C97F, 0x8312B3AF, 0xBE729A1F, 
409        0x0C52460F, 0x31326FBF, 0x7692156F, 0x4BF23CDF, 
410        0xC9A2AB0E, 0xF4C282BE, 0xB362F86E, 0x8E02D1DE, 
411        0x3C220DCE, 0x0142247E, 0x46E25EAE, 0x7B82771E, 
412        0xB1E6B092, 0x8C869922, 0xCB26E3F2, 0xF646CA42, 
413        0x44661652, 0x79063FE2, 0x3EA64532, 0x03C66C82, 
414        0x8196FB53, 0xBCF6D2E3, 0xFB56A833, 0xC6368183, 
415        0x74165D93, 0x49767423, 0x0ED60EF3, 0x33B62743, 
416        0xD1062710, 0xEC660EA0, 0xABC67470, 0x96A65DC0, 
417        0x248681D0, 0x19E6A860, 0x5E46D2B0, 0x6326FB00, 
418        0xE1766CD1, 0xDC164561, 0x9BB63FB1, 0xA6D61601, 
419        0x14F6CA11, 0x2996E3A1, 0x6E369971, 0x5356B0C1, 
420        0x70279F96, 0x4D47B626, 0x0AE7CCF6, 0x3787E546, 
421        0x85A73956, 0xB8C710E6, 0xFF676A36, 0xC2074386, 
422        0x4057D457, 0x7D37FDE7, 0x3A978737, 0x07F7AE87, 
423        0xB5D77297, 0x88B75B27, 0xCF1721F7, 0xF2770847, 
424        0x10C70814, 0x2DA721A4, 0x6A075B74, 0x576772C4, 
425        0xE547AED4, 0xD8278764, 0x9F87FDB4, 0xA2E7D404, 
426        0x20B743D5, 0x1DD76A65, 0x5A7710B5, 0x67173905, 
427        0xD537E515, 0xE857CCA5, 0xAFF7B675, 0x92979FC5, 
428        0xE915E8DB, 0xD475C16B, 0x93D5BBBB, 0xAEB5920B, 
429        0x1C954E1B, 0x21F567AB, 0x66551D7B, 0x5B3534CB, 
430        0xD965A31A, 0xE4058AAA, 0xA3A5F07A, 0x9EC5D9CA, 
431        0x2CE505DA, 0x11852C6A, 0x562556BA, 0x6B457F0A, 
432        0x89F57F59, 0xB49556E9, 0xF3352C39, 0xCE550589, 
433        0x7C75D999, 0x4115F029, 0x06B58AF9, 0x3BD5A349, 
434        0xB9853498, 0x84E51D28, 0xC34567F8, 0xFE254E48, 
435        0x4C059258, 0x7165BBE8, 0x36C5C138, 0x0BA5E888, 
436        0x28D4C7DF, 0x15B4EE6F, 0x521494BF, 0x6F74BD0F, 
437        0xDD54611F, 0xE03448AF, 0xA794327F, 0x9AF41BCF, 
438        0x18A48C1E, 0x25C4A5AE, 0x6264DF7E, 0x5F04F6CE, 
439        0xED242ADE, 0xD044036E, 0x97E479BE, 0xAA84500E, 
440        0x4834505D, 0x755479ED, 0x32F4033D, 0x0F942A8D, 
441        0xBDB4F69D, 0x80D4DF2D, 0xC774A5FD, 0xFA148C4D, 
442        0x78441B9C, 0x4524322C, 0x028448FC, 0x3FE4614C, 
443        0x8DC4BD5C, 0xB0A494EC, 0xF704EE3C, 0xCA64C78C,
444        /* T8_5 */
445        0x00000000, 0xCB5CD3A5, 0x4DC8A10B, 0x869472AE, 
446        0x9B914216, 0x50CD91B3, 0xD659E31D, 0x1D0530B8, 
447        0xEC53826D, 0x270F51C8, 0xA19B2366, 0x6AC7F0C3, 
448        0x77C2C07B, 0xBC9E13DE, 0x3A0A6170, 0xF156B2D5, 
449        0x03D6029B, 0xC88AD13E, 0x4E1EA390, 0x85427035, 
450        0x9847408D, 0x531B9328, 0xD58FE186, 0x1ED33223, 
451        0xEF8580F6, 0x24D95353, 0xA24D21FD, 0x6911F258, 
452        0x7414C2E0, 0xBF481145, 0x39DC63EB, 0xF280B04E, 
453        0x07AC0536, 0xCCF0D693, 0x4A64A43D, 0x81387798, 
454        0x9C3D4720, 0x57619485, 0xD1F5E62B, 0x1AA9358E, 
455        0xEBFF875B, 0x20A354FE, 0xA6372650, 0x6D6BF5F5, 
456        0x706EC54D, 0xBB3216E8, 0x3DA66446, 0xF6FAB7E3, 
457        0x047A07AD, 0xCF26D408, 0x49B2A6A6, 0x82EE7503, 
458        0x9FEB45BB, 0x54B7961E, 0xD223E4B0, 0x197F3715, 
459        0xE82985C0, 0x23755665, 0xA5E124CB, 0x6EBDF76E, 
460        0x73B8C7D6, 0xB8E41473, 0x3E7066DD, 0xF52CB578, 
461        0x0F580A6C, 0xC404D9C9, 0x4290AB67, 0x89CC78C2, 
462        0x94C9487A, 0x5F959BDF, 0xD901E971, 0x125D3AD4, 
463        0xE30B8801, 0x28575BA4, 0xAEC3290A, 0x659FFAAF, 
464        0x789ACA17, 0xB3C619B2, 0x35526B1C, 0xFE0EB8B9, 
465        0x0C8E08F7, 0xC7D2DB52, 0x4146A9FC, 0x8A1A7A59, 
466        0x971F4AE1, 0x5C439944, 0xDAD7EBEA, 0x118B384F, 
467        0xE0DD8A9A, 0x2B81593F, 0xAD152B91, 0x6649F834, 
468        0x7B4CC88C, 0xB0101B29, 0x36846987, 0xFDD8BA22, 
469        0x08F40F5A, 0xC3A8DCFF, 0x453CAE51, 0x8E607DF4, 
470        0x93654D4C, 0x58399EE9, 0xDEADEC47, 0x15F13FE2, 
471        0xE4A78D37, 0x2FFB5E92, 0xA96F2C3C, 0x6233FF99, 
472        0x7F36CF21, 0xB46A1C84, 0x32FE6E2A, 0xF9A2BD8F, 
473        0x0B220DC1, 0xC07EDE64, 0x46EAACCA, 0x8DB67F6F, 
474        0x90B34FD7, 0x5BEF9C72, 0xDD7BEEDC, 0x16273D79, 
475        0xE7718FAC, 0x2C2D5C09, 0xAAB92EA7, 0x61E5FD02, 
476        0x7CE0CDBA, 0xB7BC1E1F, 0x31286CB1, 0xFA74BF14, 
477        0x1EB014D8, 0xD5ECC77D, 0x5378B5D3, 0x98246676, 
478        0x852156CE, 0x4E7D856B, 0xC8E9F7C5, 0x03B52460, 
479        0xF2E396B5, 0x39BF4510, 0xBF2B37BE, 0x7477E41B, 
480        0x6972D4A3, 0xA22E0706, 0x24BA75A8, 0xEFE6A60D, 
481        0x1D661643, 0xD63AC5E6, 0x50AEB748, 0x9BF264ED, 
482        0x86F75455, 0x4DAB87F0, 0xCB3FF55E, 0x006326FB, 
483        0xF135942E, 0x3A69478B, 0xBCFD3525, 0x77A1E680, 
484        0x6AA4D638, 0xA1F8059D, 0x276C7733, 0xEC30A496, 
485        0x191C11EE, 0xD240C24B, 0x54D4B0E5, 0x9F886340, 
486        0x828D53F8, 0x49D1805D, 0xCF45F2F3, 0x04192156, 
487        0xF54F9383, 0x3E134026, 0xB8873288, 0x73DBE12D, 
488        0x6EDED195, 0xA5820230, 0x2316709E, 0xE84AA33B, 
489        0x1ACA1375, 0xD196C0D0, 0x5702B27E, 0x9C5E61DB, 
490        0x815B5163, 0x4A0782C6, 0xCC93F068, 0x07CF23CD, 
491        0xF6999118, 0x3DC542BD, 0xBB513013, 0x700DE3B6, 
492        0x6D08D30E, 0xA65400AB, 0x20C07205, 0xEB9CA1A0, 
493        0x11E81EB4, 0xDAB4CD11, 0x5C20BFBF, 0x977C6C1A, 
494        0x8A795CA2, 0x41258F07, 0xC7B1FDA9, 0x0CED2E0C, 
495        0xFDBB9CD9, 0x36E74F7C, 0xB0733DD2, 0x7B2FEE77, 
496        0x662ADECF, 0xAD760D6A, 0x2BE27FC4, 0xE0BEAC61, 
497        0x123E1C2F, 0xD962CF8A, 0x5FF6BD24, 0x94AA6E81, 
498        0x89AF5E39, 0x42F38D9C, 0xC467FF32, 0x0F3B2C97, 
499        0xFE6D9E42, 0x35314DE7, 0xB3A53F49, 0x78F9ECEC, 
500        0x65FCDC54, 0xAEA00FF1, 0x28347D5F, 0xE368AEFA, 
501        0x16441B82, 0xDD18C827, 0x5B8CBA89, 0x90D0692C, 
502        0x8DD55994, 0x46898A31, 0xC01DF89F, 0x0B412B3A, 
503        0xFA1799EF, 0x314B4A4A, 0xB7DF38E4, 0x7C83EB41, 
504        0x6186DBF9, 0xAADA085C, 0x2C4E7AF2, 0xE712A957, 
505        0x15921919, 0xDECECABC, 0x585AB812, 0x93066BB7, 
506        0x8E035B0F, 0x455F88AA, 0xC3CBFA04, 0x089729A1, 
507        0xF9C19B74, 0x329D48D1, 0xB4093A7F, 0x7F55E9DA, 
508        0x6250D962, 0xA90C0AC7, 0x2F987869, 0xE4C4ABCC,
509        /* T8_6 */
510        0x00000000, 0xA6770BB4, 0x979F1129, 0x31E81A9D, 
511        0xF44F2413, 0x52382FA7, 0x63D0353A, 0xC5A73E8E, 
512        0x33EF4E67, 0x959845D3, 0xA4705F4E, 0x020754FA, 
513        0xC7A06A74, 0x61D761C0, 0x503F7B5D, 0xF64870E9, 
514        0x67DE9CCE, 0xC1A9977A, 0xF0418DE7, 0x56368653, 
515        0x9391B8DD, 0x35E6B369, 0x040EA9F4, 0xA279A240, 
516        0x5431D2A9, 0xF246D91D, 0xC3AEC380, 0x65D9C834, 
517        0xA07EF6BA, 0x0609FD0E, 0x37E1E793, 0x9196EC27, 
518        0xCFBD399C, 0x69CA3228, 0x582228B5, 0xFE552301, 
519        0x3BF21D8F, 0x9D85163B, 0xAC6D0CA6, 0x0A1A0712, 
520        0xFC5277FB, 0x5A257C4F, 0x6BCD66D2, 0xCDBA6D66, 
521        0x081D53E8, 0xAE6A585C, 0x9F8242C1, 0x39F54975, 
522        0xA863A552, 0x0E14AEE6, 0x3FFCB47B, 0x998BBFCF, 
523        0x5C2C8141, 0xFA5B8AF5, 0xCBB39068, 0x6DC49BDC, 
524        0x9B8CEB35, 0x3DFBE081, 0x0C13FA1C, 0xAA64F1A8, 
525        0x6FC3CF26, 0xC9B4C492, 0xF85CDE0F, 0x5E2BD5BB, 
526        0x440B7579, 0xE27C7ECD, 0xD3946450, 0x75E36FE4, 
527        0xB044516A, 0x16335ADE, 0x27DB4043, 0x81AC4BF7, 
528        0x77E43B1E, 0xD19330AA, 0xE07B2A37, 0x460C2183, 
529        0x83AB1F0D, 0x25DC14B9, 0x14340E24, 0xB2430590, 
530        0x23D5E9B7, 0x85A2E203, 0xB44AF89E, 0x123DF32A, 
531        0xD79ACDA4, 0x71EDC610, 0x4005DC8D, 0xE672D739, 
532        0x103AA7D0, 0xB64DAC64, 0x87A5B6F9, 0x21D2BD4D, 
533        0xE47583C3, 0x42028877, 0x73EA92EA, 0xD59D995E, 
534        0x8BB64CE5, 0x2DC14751, 0x1C295DCC, 0xBA5E5678, 
535        0x7FF968F6, 0xD98E6342, 0xE86679DF, 0x4E11726B, 
536        0xB8590282, 0x1E2E0936, 0x2FC613AB, 0x89B1181F, 
537        0x4C162691, 0xEA612D25, 0xDB8937B8, 0x7DFE3C0C, 
538        0xEC68D02B, 0x4A1FDB9F, 0x7BF7C102, 0xDD80CAB6, 
539        0x1827F438, 0xBE50FF8C, 0x8FB8E511, 0x29CFEEA5, 
540        0xDF879E4C, 0x79F095F8, 0x48188F65, 0xEE6F84D1, 
541        0x2BC8BA5F, 0x8DBFB1EB, 0xBC57AB76, 0x1A20A0C2, 
542        0x8816EAF2, 0x2E61E146, 0x1F89FBDB, 0xB9FEF06F, 
543        0x7C59CEE1, 0xDA2EC555, 0xEBC6DFC8, 0x4DB1D47C, 
544        0xBBF9A495, 0x1D8EAF21, 0x2C66B5BC, 0x8A11BE08, 
545        0x4FB68086, 0xE9C18B32, 0xD82991AF, 0x7E5E9A1B, 
546        0xEFC8763C, 0x49BF7D88, 0x78576715, 0xDE206CA1, 
547        0x1B87522F, 0xBDF0599B, 0x8C184306, 0x2A6F48B2, 
548        0xDC27385B, 0x7A5033EF, 0x4BB82972, 0xEDCF22C6, 
549        0x28681C48, 0x8E1F17FC, 0xBFF70D61, 0x198006D5, 
550        0x47ABD36E, 0xE1DCD8DA, 0xD034C247, 0x7643C9F3, 
551        0xB3E4F77D, 0x1593FCC9, 0x247BE654, 0x820CEDE0, 
552        0x74449D09, 0xD23396BD, 0xE3DB8C20, 0x45AC8794, 
553        0x800BB91A, 0x267CB2AE, 0x1794A833, 0xB1E3A387, 
554        0x20754FA0, 0x86024414, 0xB7EA5E89, 0x119D553D, 
555        0xD43A6BB3, 0x724D6007, 0x43A57A9A, 0xE5D2712E, 
556        0x139A01C7, 0xB5ED0A73, 0x840510EE, 0x22721B5A, 
557        0xE7D525D4, 0x41A22E60, 0x704A34FD, 0xD63D3F49, 
558        0xCC1D9F8B, 0x6A6A943F, 0x5B828EA2, 0xFDF58516, 
559        0x3852BB98, 0x9E25B02C, 0xAFCDAAB1, 0x09BAA105, 
560        0xFFF2D1EC, 0x5985DA58, 0x686DC0C5, 0xCE1ACB71, 
561        0x0BBDF5FF, 0xADCAFE4B, 0x9C22E4D6, 0x3A55EF62, 
562        0xABC30345, 0x0DB408F1, 0x3C5C126C, 0x9A2B19D8, 
563        0x5F8C2756, 0xF9FB2CE2, 0xC813367F, 0x6E643DCB, 
564        0x982C4D22, 0x3E5B4696, 0x0FB35C0B, 0xA9C457BF, 
565        0x6C636931, 0xCA146285, 0xFBFC7818, 0x5D8B73AC, 
566        0x03A0A617, 0xA5D7ADA3, 0x943FB73E, 0x3248BC8A, 
567        0xF7EF8204, 0x519889B0, 0x6070932D, 0xC6079899, 
568        0x304FE870, 0x9638E3C4, 0xA7D0F959, 0x01A7F2ED, 
569        0xC400CC63, 0x6277C7D7, 0x539FDD4A, 0xF5E8D6FE, 
570        0x647E3AD9, 0xC209316D, 0xF3E12BF0, 0x55962044, 
571        0x90311ECA, 0x3646157E, 0x07AE0FE3, 0xA1D90457, 
572        0x579174BE, 0xF1E67F0A, 0xC00E6597, 0x66796E23, 
573        0xA3DE50AD, 0x05A95B19, 0x34414184, 0x92364A30,
574        /* T8_7 */
575        0x00000000, 0xCCAA009E, 0x4225077D, 0x8E8F07E3, 
576        0x844A0EFA, 0x48E00E64, 0xC66F0987, 0x0AC50919, 
577        0xD3E51BB5, 0x1F4F1B2B, 0x91C01CC8, 0x5D6A1C56, 
578        0x57AF154F, 0x9B0515D1, 0x158A1232, 0xD92012AC, 
579        0x7CBB312B, 0xB01131B5, 0x3E9E3656, 0xF23436C8, 
580        0xF8F13FD1, 0x345B3F4F, 0xBAD438AC, 0x767E3832, 
581        0xAF5E2A9E, 0x63F42A00, 0xED7B2DE3, 0x21D12D7D, 
582        0x2B142464, 0xE7BE24FA, 0x69312319, 0xA59B2387, 
583        0xF9766256, 0x35DC62C8, 0xBB53652B, 0x77F965B5, 
584        0x7D3C6CAC, 0xB1966C32, 0x3F196BD1, 0xF3B36B4F, 
585        0x2A9379E3, 0xE639797D, 0x68B67E9E, 0xA41C7E00, 
586        0xAED97719, 0x62737787, 0xECFC7064, 0x205670FA, 
587        0x85CD537D, 0x496753E3, 0xC7E85400, 0x0B42549E, 
588        0x01875D87, 0xCD2D5D19, 0x43A25AFA, 0x8F085A64, 
589        0x562848C8, 0x9A824856, 0x140D4FB5, 0xD8A74F2B, 
590        0xD2624632, 0x1EC846AC, 0x9047414F, 0x5CED41D1, 
591        0x299DC2ED, 0xE537C273, 0x6BB8C590, 0xA712C50E, 
592        0xADD7CC17, 0x617DCC89, 0xEFF2CB6A, 0x2358CBF4, 
593        0xFA78D958, 0x36D2D9C6, 0xB85DDE25, 0x74F7DEBB, 
594        0x7E32D7A2, 0xB298D73C, 0x3C17D0DF, 0xF0BDD041, 
595        0x5526F3C6, 0x998CF358, 0x1703F4BB, 0xDBA9F425, 
596        0xD16CFD3C, 0x1DC6FDA2, 0x9349FA41, 0x5FE3FADF, 
597        0x86C3E873, 0x4A69E8ED, 0xC4E6EF0E, 0x084CEF90, 
598        0x0289E689, 0xCE23E617, 0x40ACE1F4, 0x8C06E16A, 
599        0xD0EBA0BB, 0x1C41A025, 0x92CEA7C6, 0x5E64A758, 
600        0x54A1AE41, 0x980BAEDF, 0x1684A93C, 0xDA2EA9A2, 
601        0x030EBB0E, 0xCFA4BB90, 0x412BBC73, 0x8D81BCED, 
602        0x8744B5F4, 0x4BEEB56A, 0xC561B289, 0x09CBB217, 
603        0xAC509190, 0x60FA910E, 0xEE7596ED, 0x22DF9673, 
604        0x281A9F6A, 0xE4B09FF4, 0x6A3F9817, 0xA6959889, 
605        0x7FB58A25, 0xB31F8ABB, 0x3D908D58, 0xF13A8DC6, 
606        0xFBFF84DF, 0x37558441, 0xB9DA83A2, 0x7570833C, 
607        0x533B85DA, 0x9F918544, 0x111E82A7, 0xDDB48239, 
608        0xD7718B20, 0x1BDB8BBE, 0x95548C5D, 0x59FE8CC3, 
609        0x80DE9E6F, 0x4C749EF1, 0xC2FB9912, 0x0E51998C, 
610        0x04949095, 0xC83E900B, 0x46B197E8, 0x8A1B9776, 
611        0x2F80B4F1, 0xE32AB46F, 0x6DA5B38C, 0xA10FB312, 
612        0xABCABA0B, 0x6760BA95, 0xE9EFBD76, 0x2545BDE8, 
613        0xFC65AF44, 0x30CFAFDA, 0xBE40A839, 0x72EAA8A7, 
614        0x782FA1BE, 0xB485A120, 0x3A0AA6C3, 0xF6A0A65D, 
615        0xAA4DE78C, 0x66E7E712, 0xE868E0F1, 0x24C2E06F, 
616        0x2E07E976, 0xE2ADE9E8, 0x6C22EE0B, 0xA088EE95, 
617        0x79A8FC39, 0xB502FCA7, 0x3B8DFB44, 0xF727FBDA, 
618        0xFDE2F2C3, 0x3148F25D, 0xBFC7F5BE, 0x736DF520, 
619        0xD6F6D6A7, 0x1A5CD639, 0x94D3D1DA, 0x5879D144, 
620        0x52BCD85D, 0x9E16D8C3, 0x1099DF20, 0xDC33DFBE, 
621        0x0513CD12, 0xC9B9CD8C, 0x4736CA6F, 0x8B9CCAF1, 
622        0x8159C3E8, 0x4DF3C376, 0xC37CC495, 0x0FD6C40B, 
623        0x7AA64737, 0xB60C47A9, 0x3883404A, 0xF42940D4, 
624        0xFEEC49CD, 0x32464953, 0xBCC94EB0, 0x70634E2E, 
625        0xA9435C82, 0x65E95C1C, 0xEB665BFF, 0x27CC5B61, 
626        0x2D095278, 0xE1A352E6, 0x6F2C5505, 0xA386559B, 
627        0x061D761C, 0xCAB77682, 0x44387161, 0x889271FF, 
628        0x825778E6, 0x4EFD7878, 0xC0727F9B, 0x0CD87F05, 
629        0xD5F86DA9, 0x19526D37, 0x97DD6AD4, 0x5B776A4A, 
630        0x51B26353, 0x9D1863CD, 0x1397642E, 0xDF3D64B0, 
631        0x83D02561, 0x4F7A25FF, 0xC1F5221C, 0x0D5F2282, 
632        0x079A2B9B, 0xCB302B05, 0x45BF2CE6, 0x89152C78, 
633        0x50353ED4, 0x9C9F3E4A, 0x121039A9, 0xDEBA3937, 
634        0xD47F302E, 0x18D530B0, 0x965A3753, 0x5AF037CD, 
635        0xFF6B144A, 0x33C114D4, 0xBD4E1337, 0x71E413A9, 
636        0x7B211AB0, 0xB78B1A2E, 0x39041DCD, 0xF5AE1D53, 
637        0x2C8E0FFF, 0xE0240F61, 0x6EAB0882, 0xA201081C, 
638        0xA8C40105, 0x646E019B, 0xEAE10678, 0x264B06E6
639      };
640    }