ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

des.c
Go to the documentation of this file.
00001 /*
00002  * dlls/rsaenh/des.c
00003  * DES functions
00004  *
00005  * Copyright 2004 Michael Jung
00006  * Based on public domain code by Tom St Denis (tomstdenis@iahu.ca)
00007  * and Dobes Vandermeer.
00008  * 
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public
00011  * License as published by the Free Software Foundation; either
00012  * version 2.1 of the License, or (at your option) any later version.
00013  *
00014  * This library is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  * Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with this library; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00022  */
00023 
00024 /*
00025  * This file contains code from the LibTomCrypt cryptographic 
00026  * library written by Tom St Denis (tomstdenis@iahu.ca). LibTomCrypt
00027  * is in the public domain. The code in this file is tailored to
00028  * special requirements. Take a look at http://libtomcrypt.org for the
00029  * original version. 
00030  */
00031 
00032 #include "tomcrypt.h"
00033 
00034 #define EN0 0 
00035 #define DE1 1
00036 
00037 static const ulong32 bytebit[8] =
00038 {
00039     0200, 0100, 040, 020, 010, 04, 02, 01 
00040 };
00041 
00042 static const ulong32 bigbyte[24] =
00043 {
00044     0x800000UL,  0x400000UL,  0x200000UL,  0x100000UL,
00045     0x80000UL,   0x40000UL,   0x20000UL,   0x10000UL,
00046     0x8000UL,    0x4000UL,    0x2000UL,    0x1000UL,
00047     0x800UL,     0x400UL,     0x200UL,     0x100UL,
00048     0x80UL,      0x40UL,      0x20UL,      0x10UL,
00049     0x8UL,       0x4UL,       0x2UL,       0x1L 
00050 };
00051 
00052 /* Use the key schedule specific in the standard (ANSI X3.92-1981) */
00053 
00054 static const unsigned char pc1[56] = {
00055     56, 48, 40, 32, 24, 16,  8,  0, 57, 49, 41, 33, 25, 17,  
00056      9,  1, 58, 50, 42, 34, 26, 18, 10,  2, 59, 51, 43, 35, 
00057     62, 54, 46, 38, 30, 22, 14,  6, 61, 53, 45, 37, 29, 21,
00058     13,  5, 60, 52, 44, 36, 28, 20, 12,  4, 27, 19, 11,  3 
00059 };
00060 
00061 static const unsigned char totrot[16] = {
00062     1,   2,  4,  6,
00063     8,  10, 12, 14, 
00064     15, 17, 19, 21, 
00065     23, 25, 27, 28
00066 };
00067 
00068 static const unsigned char pc2[48] = {
00069     13, 16, 10, 23,  0,  4,      2, 27, 14,  5, 20,  9,
00070     22, 18, 11,  3, 25,  7,     15,  6, 26, 19, 12,  1,
00071     40, 51, 30, 36, 46, 54,     29, 39, 50, 44, 32, 47,
00072     43, 48, 38, 55, 33, 52,     45, 41, 49, 35, 28, 31
00073 };
00074 
00075 
00076 static const ulong32 SP1[64] =
00077 {
00078     0x01010400UL, 0x00000000UL, 0x00010000UL, 0x01010404UL,
00079     0x01010004UL, 0x00010404UL, 0x00000004UL, 0x00010000UL,
00080     0x00000400UL, 0x01010400UL, 0x01010404UL, 0x00000400UL,
00081     0x01000404UL, 0x01010004UL, 0x01000000UL, 0x00000004UL,
00082     0x00000404UL, 0x01000400UL, 0x01000400UL, 0x00010400UL,
00083     0x00010400UL, 0x01010000UL, 0x01010000UL, 0x01000404UL,
00084     0x00010004UL, 0x01000004UL, 0x01000004UL, 0x00010004UL,
00085     0x00000000UL, 0x00000404UL, 0x00010404UL, 0x01000000UL,
00086     0x00010000UL, 0x01010404UL, 0x00000004UL, 0x01010000UL,
00087     0x01010400UL, 0x01000000UL, 0x01000000UL, 0x00000400UL,
00088     0x01010004UL, 0x00010000UL, 0x00010400UL, 0x01000004UL,
00089     0x00000400UL, 0x00000004UL, 0x01000404UL, 0x00010404UL,
00090     0x01010404UL, 0x00010004UL, 0x01010000UL, 0x01000404UL,
00091     0x01000004UL, 0x00000404UL, 0x00010404UL, 0x01010400UL,
00092     0x00000404UL, 0x01000400UL, 0x01000400UL, 0x00000000UL,
00093     0x00010004UL, 0x00010400UL, 0x00000000UL, 0x01010004UL
00094 };
00095 
00096 static const ulong32 SP2[64] =
00097 {
00098     0x80108020UL, 0x80008000UL, 0x00008000UL, 0x00108020UL,
00099     0x00100000UL, 0x00000020UL, 0x80100020UL, 0x80008020UL,
00100     0x80000020UL, 0x80108020UL, 0x80108000UL, 0x80000000UL,
00101     0x80008000UL, 0x00100000UL, 0x00000020UL, 0x80100020UL,
00102     0x00108000UL, 0x00100020UL, 0x80008020UL, 0x00000000UL,
00103     0x80000000UL, 0x00008000UL, 0x00108020UL, 0x80100000UL,
00104     0x00100020UL, 0x80000020UL, 0x00000000UL, 0x00108000UL,
00105     0x00008020UL, 0x80108000UL, 0x80100000UL, 0x00008020UL,
00106     0x00000000UL, 0x00108020UL, 0x80100020UL, 0x00100000UL,
00107     0x80008020UL, 0x80100000UL, 0x80108000UL, 0x00008000UL,
00108     0x80100000UL, 0x80008000UL, 0x00000020UL, 0x80108020UL,
00109     0x00108020UL, 0x00000020UL, 0x00008000UL, 0x80000000UL,
00110     0x00008020UL, 0x80108000UL, 0x00100000UL, 0x80000020UL,
00111     0x00100020UL, 0x80008020UL, 0x80000020UL, 0x00100020UL,
00112     0x00108000UL, 0x00000000UL, 0x80008000UL, 0x00008020UL,
00113     0x80000000UL, 0x80100020UL, 0x80108020UL, 0x00108000UL
00114 };
00115 
00116 static const ulong32 SP3[64] =
00117 {
00118     0x00000208UL, 0x08020200UL, 0x00000000UL, 0x08020008UL,
00119     0x08000200UL, 0x00000000UL, 0x00020208UL, 0x08000200UL,
00120     0x00020008UL, 0x08000008UL, 0x08000008UL, 0x00020000UL,
00121     0x08020208UL, 0x00020008UL, 0x08020000UL, 0x00000208UL,
00122     0x08000000UL, 0x00000008UL, 0x08020200UL, 0x00000200UL,
00123     0x00020200UL, 0x08020000UL, 0x08020008UL, 0x00020208UL,
00124     0x08000208UL, 0x00020200UL, 0x00020000UL, 0x08000208UL,
00125     0x00000008UL, 0x08020208UL, 0x00000200UL, 0x08000000UL,
00126     0x08020200UL, 0x08000000UL, 0x00020008UL, 0x00000208UL,
00127     0x00020000UL, 0x08020200UL, 0x08000200UL, 0x00000000UL,
00128     0x00000200UL, 0x00020008UL, 0x08020208UL, 0x08000200UL,
00129     0x08000008UL, 0x00000200UL, 0x00000000UL, 0x08020008UL,
00130     0x08000208UL, 0x00020000UL, 0x08000000UL, 0x08020208UL,
00131     0x00000008UL, 0x00020208UL, 0x00020200UL, 0x08000008UL,
00132     0x08020000UL, 0x08000208UL, 0x00000208UL, 0x08020000UL,
00133     0x00020208UL, 0x00000008UL, 0x08020008UL, 0x00020200UL
00134 };
00135 
00136 static const ulong32 SP4[64] =
00137 {
00138     0x00802001UL, 0x00002081UL, 0x00002081UL, 0x00000080UL,
00139     0x00802080UL, 0x00800081UL, 0x00800001UL, 0x00002001UL,
00140     0x00000000UL, 0x00802000UL, 0x00802000UL, 0x00802081UL,
00141     0x00000081UL, 0x00000000UL, 0x00800080UL, 0x00800001UL,
00142     0x00000001UL, 0x00002000UL, 0x00800000UL, 0x00802001UL,
00143     0x00000080UL, 0x00800000UL, 0x00002001UL, 0x00002080UL,
00144     0x00800081UL, 0x00000001UL, 0x00002080UL, 0x00800080UL,
00145     0x00002000UL, 0x00802080UL, 0x00802081UL, 0x00000081UL,
00146     0x00800080UL, 0x00800001UL, 0x00802000UL, 0x00802081UL,
00147     0x00000081UL, 0x00000000UL, 0x00000000UL, 0x00802000UL,
00148     0x00002080UL, 0x00800080UL, 0x00800081UL, 0x00000001UL,
00149     0x00802001UL, 0x00002081UL, 0x00002081UL, 0x00000080UL,
00150     0x00802081UL, 0x00000081UL, 0x00000001UL, 0x00002000UL,
00151     0x00800001UL, 0x00002001UL, 0x00802080UL, 0x00800081UL,
00152     0x00002001UL, 0x00002080UL, 0x00800000UL, 0x00802001UL,
00153     0x00000080UL, 0x00800000UL, 0x00002000UL, 0x00802080UL
00154 };
00155 
00156 static const ulong32 SP5[64] =
00157 {
00158     0x00000100UL, 0x02080100UL, 0x02080000UL, 0x42000100UL,
00159     0x00080000UL, 0x00000100UL, 0x40000000UL, 0x02080000UL,
00160     0x40080100UL, 0x00080000UL, 0x02000100UL, 0x40080100UL,
00161     0x42000100UL, 0x42080000UL, 0x00080100UL, 0x40000000UL,
00162     0x02000000UL, 0x40080000UL, 0x40080000UL, 0x00000000UL,
00163     0x40000100UL, 0x42080100UL, 0x42080100UL, 0x02000100UL,
00164     0x42080000UL, 0x40000100UL, 0x00000000UL, 0x42000000UL,
00165     0x02080100UL, 0x02000000UL, 0x42000000UL, 0x00080100UL,
00166     0x00080000UL, 0x42000100UL, 0x00000100UL, 0x02000000UL,
00167     0x40000000UL, 0x02080000UL, 0x42000100UL, 0x40080100UL,
00168     0x02000100UL, 0x40000000UL, 0x42080000UL, 0x02080100UL,
00169     0x40080100UL, 0x00000100UL, 0x02000000UL, 0x42080000UL,
00170     0x42080100UL, 0x00080100UL, 0x42000000UL, 0x42080100UL,
00171     0x02080000UL, 0x00000000UL, 0x40080000UL, 0x42000000UL,
00172     0x00080100UL, 0x02000100UL, 0x40000100UL, 0x00080000UL,
00173     0x00000000UL, 0x40080000UL, 0x02080100UL, 0x40000100UL
00174 };
00175 
00176 static const ulong32 SP6[64] =
00177 {
00178     0x20000010UL, 0x20400000UL, 0x00004000UL, 0x20404010UL,
00179     0x20400000UL, 0x00000010UL, 0x20404010UL, 0x00400000UL,
00180     0x20004000UL, 0x00404010UL, 0x00400000UL, 0x20000010UL,
00181     0x00400010UL, 0x20004000UL, 0x20000000UL, 0x00004010UL,
00182     0x00000000UL, 0x00400010UL, 0x20004010UL, 0x00004000UL,
00183     0x00404000UL, 0x20004010UL, 0x00000010UL, 0x20400010UL,
00184     0x20400010UL, 0x00000000UL, 0x00404010UL, 0x20404000UL,
00185     0x00004010UL, 0x00404000UL, 0x20404000UL, 0x20000000UL,
00186     0x20004000UL, 0x00000010UL, 0x20400010UL, 0x00404000UL,
00187     0x20404010UL, 0x00400000UL, 0x00004010UL, 0x20000010UL,
00188     0x00400000UL, 0x20004000UL, 0x20000000UL, 0x00004010UL,
00189     0x20000010UL, 0x20404010UL, 0x00404000UL, 0x20400000UL,
00190     0x00404010UL, 0x20404000UL, 0x00000000UL, 0x20400010UL,
00191     0x00000010UL, 0x00004000UL, 0x20400000UL, 0x00404010UL,
00192     0x00004000UL, 0x00400010UL, 0x20004010UL, 0x00000000UL,
00193     0x20404000UL, 0x20000000UL, 0x00400010UL, 0x20004010UL
00194 };
00195 
00196 static const ulong32 SP7[64] =
00197 {
00198     0x00200000UL, 0x04200002UL, 0x04000802UL, 0x00000000UL,
00199     0x00000800UL, 0x04000802UL, 0x00200802UL, 0x04200800UL,
00200     0x04200802UL, 0x00200000UL, 0x00000000UL, 0x04000002UL,
00201     0x00000002UL, 0x04000000UL, 0x04200002UL, 0x00000802UL,
00202     0x04000800UL, 0x00200802UL, 0x00200002UL, 0x04000800UL,
00203     0x04000002UL, 0x04200000UL, 0x04200800UL, 0x00200002UL,
00204     0x04200000UL, 0x00000800UL, 0x00000802UL, 0x04200802UL,
00205     0x00200800UL, 0x00000002UL, 0x04000000UL, 0x00200800UL,
00206     0x04000000UL, 0x00200800UL, 0x00200000UL, 0x04000802UL,
00207     0x04000802UL, 0x04200002UL, 0x04200002UL, 0x00000002UL,
00208     0x00200002UL, 0x04000000UL, 0x04000800UL, 0x00200000UL,
00209     0x04200800UL, 0x00000802UL, 0x00200802UL, 0x04200800UL,
00210     0x00000802UL, 0x04000002UL, 0x04200802UL, 0x04200000UL,
00211     0x00200800UL, 0x00000000UL, 0x00000002UL, 0x04200802UL,
00212     0x00000000UL, 0x00200802UL, 0x04200000UL, 0x00000800UL,
00213     0x04000002UL, 0x04000800UL, 0x00000800UL, 0x00200002UL
00214 };
00215 
00216 static const ulong32 SP8[64] =
00217 {
00218     0x10001040UL, 0x00001000UL, 0x00040000UL, 0x10041040UL,
00219     0x10000000UL, 0x10001040UL, 0x00000040UL, 0x10000000UL,
00220     0x00040040UL, 0x10040000UL, 0x10041040UL, 0x00041000UL,
00221     0x10041000UL, 0x00041040UL, 0x00001000UL, 0x00000040UL,
00222     0x10040000UL, 0x10000040UL, 0x10001000UL, 0x00001040UL,
00223     0x00041000UL, 0x00040040UL, 0x10040040UL, 0x10041000UL,
00224     0x00001040UL, 0x00000000UL, 0x00000000UL, 0x10040040UL,
00225     0x10000040UL, 0x10001000UL, 0x00041040UL, 0x00040000UL,
00226     0x00041040UL, 0x00040000UL, 0x10041000UL, 0x00001000UL,
00227     0x00000040UL, 0x10040040UL, 0x00001000UL, 0x00041040UL,
00228     0x10001000UL, 0x00000040UL, 0x10000040UL, 0x10040000UL,
00229     0x10040040UL, 0x10000000UL, 0x00040000UL, 0x10001040UL,
00230     0x00000000UL, 0x10041040UL, 0x00040040UL, 0x10000040UL,
00231     0x10040000UL, 0x10001000UL, 0x10001040UL, 0x00000000UL,
00232     0x10041040UL, 0x00041000UL, 0x00041000UL, 0x00001040UL,
00233     0x00001040UL, 0x00040040UL, 0x10000000UL, 0x10041000UL
00234 };
00235 
00236 static const ulong64 des_ip[8][256] = {
00237 
00238 { CONST64(0x00000000,0x00000000), CONST64(0x00000010,0x00000000), CONST64(0x00000000,0x00000010), CONST64(0x00000010,0x00000010),
00239   CONST64(0x00001000,0x00000000), CONST64(0x00001010,0x00000000), CONST64(0x00001000,0x00000010), CONST64(0x00001010,0x00000010),
00240   CONST64(0x00000000,0x00001000), CONST64(0x00000010,0x00001000), CONST64(0x00000000,0x00001010), CONST64(0x00000010,0x00001010),
00241   CONST64(0x00001000,0x00001000), CONST64(0x00001010,0x00001000), CONST64(0x00001000,0x00001010), CONST64(0x00001010,0x00001010),
00242   CONST64(0x00100000,0x00000000), CONST64(0x00100010,0x00000000), CONST64(0x00100000,0x00000010), CONST64(0x00100010,0x00000010),
00243   CONST64(0x00101000,0x00000000), CONST64(0x00101010,0x00000000), CONST64(0x00101000,0x00000010), CONST64(0x00101010,0x00000010),
00244   CONST64(0x00100000,0x00001000), CONST64(0x00100010,0x00001000), CONST64(0x00100000,0x00001010), CONST64(0x00100010,0x00001010),
00245   CONST64(0x00101000,0x00001000), CONST64(0x00101010,0x00001000), CONST64(0x00101000,0x00001010), CONST64(0x00101010,0x00001010),
00246   CONST64(0x00000000,0x00100000), CONST64(0x00000010,0x00100000), CONST64(0x00000000,0x00100010), CONST64(0x00000010,0x00100010),
00247   CONST64(0x00001000,0x00100000), CONST64(0x00001010,0x00100000), CONST64(0x00001000,0x00100010), CONST64(0x00001010,0x00100010),
00248   CONST64(0x00000000,0x00101000), CONST64(0x00000010,0x00101000), CONST64(0x00000000,0x00101010), CONST64(0x00000010,0x00101010),
00249   CONST64(0x00001000,0x00101000), CONST64(0x00001010,0x00101000), CONST64(0x00001000,0x00101010), CONST64(0x00001010,0x00101010),
00250   CONST64(0x00100000,0x00100000), CONST64(0x00100010,0x00100000), CONST64(0x00100000,0x00100010), CONST64(0x00100010,0x00100010),
00251   CONST64(0x00101000,0x00100000), CONST64(0x00101010,0x00100000), CONST64(0x00101000,0x00100010), CONST64(0x00101010,0x00100010),
00252   CONST64(0x00100000,0x00101000), CONST64(0x00100010,0x00101000), CONST64(0x00100000,0x00101010), CONST64(0x00100010,0x00101010),
00253   CONST64(0x00101000,0x00101000), CONST64(0x00101010,0x00101000), CONST64(0x00101000,0x00101010), CONST64(0x00101010,0x00101010),
00254   CONST64(0x10000000,0x00000000), CONST64(0x10000010,0x00000000), CONST64(0x10000000,0x00000010), CONST64(0x10000010,0x00000010),
00255   CONST64(0x10001000,0x00000000), CONST64(0x10001010,0x00000000), CONST64(0x10001000,0x00000010), CONST64(0x10001010,0x00000010),
00256   CONST64(0x10000000,0x00001000), CONST64(0x10000010,0x00001000), CONST64(0x10000000,0x00001010), CONST64(0x10000010,0x00001010),
00257   CONST64(0x10001000,0x00001000), CONST64(0x10001010,0x00001000), CONST64(0x10001000,0x00001010), CONST64(0x10001010,0x00001010),
00258   CONST64(0x10100000,0x00000000), CONST64(0x10100010,0x00000000), CONST64(0x10100000,0x00000010), CONST64(0x10100010,0x00000010),
00259   CONST64(0x10101000,0x00000000), CONST64(0x10101010,0x00000000), CONST64(0x10101000,0x00000010), CONST64(0x10101010,0x00000010),
00260   CONST64(0x10100000,0x00001000), CONST64(0x10100010,0x00001000), CONST64(0x10100000,0x00001010), CONST64(0x10100010,0x00001010),
00261   CONST64(0x10101000,0x00001000), CONST64(0x10101010,0x00001000), CONST64(0x10101000,0x00001010), CONST64(0x10101010,0x00001010),
00262   CONST64(0x10000000,0x00100000), CONST64(0x10000010,0x00100000), CONST64(0x10000000,0x00100010), CONST64(0x10000010,0x00100010),
00263   CONST64(0x10001000,0x00100000), CONST64(0x10001010,0x00100000), CONST64(0x10001000,0x00100010), CONST64(0x10001010,0x00100010),
00264   CONST64(0x10000000,0x00101000), CONST64(0x10000010,0x00101000), CONST64(0x10000000,0x00101010), CONST64(0x10000010,0x00101010),
00265   CONST64(0x10001000,0x00101000), CONST64(0x10001010,0x00101000), CONST64(0x10001000,0x00101010), CONST64(0x10001010,0x00101010),
00266   CONST64(0x10100000,0x00100000), CONST64(0x10100010,0x00100000), CONST64(0x10100000,0x00100010), CONST64(0x10100010,0x00100010),
00267   CONST64(0x10101000,0x00100000), CONST64(0x10101010,0x00100000), CONST64(0x10101000,0x00100010), CONST64(0x10101010,0x00100010),
00268   CONST64(0x10100000,0x00101000), CONST64(0x10100010,0x00101000), CONST64(0x10100000,0x00101010), CONST64(0x10100010,0x00101010),
00269   CONST64(0x10101000,0x00101000), CONST64(0x10101010,0x00101000), CONST64(0x10101000,0x00101010), CONST64(0x10101010,0x00101010),
00270   CONST64(0x00000000,0x10000000), CONST64(0x00000010,0x10000000), CONST64(0x00000000,0x10000010), CONST64(0x00000010,0x10000010),
00271   CONST64(0x00001000,0x10000000), CONST64(0x00001010,0x10000000), CONST64(0x00001000,0x10000010), CONST64(0x00001010,0x10000010),
00272   CONST64(0x00000000,0x10001000), CONST64(0x00000010,0x10001000), CONST64(0x00000000,0x10001010), CONST64(0x00000010,0x10001010),
00273   CONST64(0x00001000,0x10001000), CONST64(0x00001010,0x10001000), CONST64(0x00001000,0x10001010), CONST64(0x00001010,0x10001010),
00274   CONST64(0x00100000,0x10000000), CONST64(0x00100010,0x10000000), CONST64(0x00100000,0x10000010), CONST64(0x00100010,0x10000010),
00275   CONST64(0x00101000,0x10000000), CONST64(0x00101010,0x10000000), CONST64(0x00101000,0x10000010), CONST64(0x00101010,0x10000010),
00276   CONST64(0x00100000,0x10001000), CONST64(0x00100010,0x10001000), CONST64(0x00100000,0x10001010), CONST64(0x00100010,0x10001010),
00277   CONST64(0x00101000,0x10001000), CONST64(0x00101010,0x10001000), CONST64(0x00101000,0x10001010), CONST64(0x00101010,0x10001010),
00278   CONST64(0x00000000,0x10100000), CONST64(0x00000010,0x10100000), CONST64(0x00000000,0x10100010), CONST64(0x00000010,0x10100010),
00279   CONST64(0x00001000,0x10100000), CONST64(0x00001010,0x10100000), CONST64(0x00001000,0x10100010), CONST64(0x00001010,0x10100010),
00280   CONST64(0x00000000,0x10101000), CONST64(0x00000010,0x10101000), CONST64(0x00000000,0x10101010), CONST64(0x00000010,0x10101010),
00281   CONST64(0x00001000,0x10101000), CONST64(0x00001010,0x10101000), CONST64(0x00001000,0x10101010), CONST64(0x00001010,0x10101010),
00282   CONST64(0x00100000,0x10100000), CONST64(0x00100010,0x10100000), CONST64(0x00100000,0x10100010), CONST64(0x00100010,0x10100010),
00283   CONST64(0x00101000,0x10100000), CONST64(0x00101010,0x10100000), CONST64(0x00101000,0x10100010), CONST64(0x00101010,0x10100010),
00284   CONST64(0x00100000,0x10101000), CONST64(0x00100010,0x10101000), CONST64(0x00100000,0x10101010), CONST64(0x00100010,0x10101010),
00285   CONST64(0x00101000,0x10101000), CONST64(0x00101010,0x10101000), CONST64(0x00101000,0x10101010), CONST64(0x00101010,0x10101010),
00286   CONST64(0x10000000,0x10000000), CONST64(0x10000010,0x10000000), CONST64(0x10000000,0x10000010), CONST64(0x10000010,0x10000010),
00287   CONST64(0x10001000,0x10000000), CONST64(0x10001010,0x10000000), CONST64(0x10001000,0x10000010), CONST64(0x10001010,0x10000010),
00288   CONST64(0x10000000,0x10001000), CONST64(0x10000010,0x10001000), CONST64(0x10000000,0x10001010), CONST64(0x10000010,0x10001010),
00289   CONST64(0x10001000,0x10001000), CONST64(0x10001010,0x10001000), CONST64(0x10001000,0x10001010), CONST64(0x10001010,0x10001010),
00290   CONST64(0x10100000,0x10000000), CONST64(0x10100010,0x10000000), CONST64(0x10100000,0x10000010), CONST64(0x10100010,0x10000010),
00291   CONST64(0x10101000,0x10000000), CONST64(0x10101010,0x10000000), CONST64(0x10101000,0x10000010), CONST64(0x10101010,0x10000010),
00292   CONST64(0x10100000,0x10001000), CONST64(0x10100010,0x10001000), CONST64(0x10100000,0x10001010), CONST64(0x10100010,0x10001010),
00293   CONST64(0x10101000,0x10001000), CONST64(0x10101010,0x10001000), CONST64(0x10101000,0x10001010), CONST64(0x10101010,0x10001010),
00294   CONST64(0x10000000,0x10100000), CONST64(0x10000010,0x10100000), CONST64(0x10000000,0x10100010), CONST64(0x10000010,0x10100010),
00295   CONST64(0x10001000,0x10100000), CONST64(0x10001010,0x10100000), CONST64(0x10001000,0x10100010), CONST64(0x10001010,0x10100010),
00296   CONST64(0x10000000,0x10101000), CONST64(0x10000010,0x10101000), CONST64(0x10000000,0x10101010), CONST64(0x10000010,0x10101010),
00297   CONST64(0x10001000,0x10101000), CONST64(0x10001010,0x10101000), CONST64(0x10001000,0x10101010), CONST64(0x10001010,0x10101010),
00298   CONST64(0x10100000,0x10100000), CONST64(0x10100010,0x10100000), CONST64(0x10100000,0x10100010), CONST64(0x10100010,0x10100010),
00299   CONST64(0x10101000,0x10100000), CONST64(0x10101010,0x10100000), CONST64(0x10101000,0x10100010), CONST64(0x10101010,0x10100010),
00300   CONST64(0x10100000,0x10101000), CONST64(0x10100010,0x10101000), CONST64(0x10100000,0x10101010), CONST64(0x10100010,0x10101010),
00301   CONST64(0x10101000,0x10101000), CONST64(0x10101010,0x10101000), CONST64(0x10101000,0x10101010), CONST64(0x10101010,0x10101010)
00302   },
00303 { CONST64(0x00000000,0x00000000), CONST64(0x00000008,0x00000000), CONST64(0x00000000,0x00000008), CONST64(0x00000008,0x00000008),
00304   CONST64(0x00000800,0x00000000), CONST64(0x00000808,0x00000000), CONST64(0x00000800,0x00000008), CONST64(0x00000808,0x00000008),
00305   CONST64(0x00000000,0x00000800), CONST64(0x00000008,0x00000800), CONST64(0x00000000,0x00000808), CONST64(0x00000008,0x00000808),
00306   CONST64(0x00000800,0x00000800), CONST64(0x00000808,0x00000800), CONST64(0x00000800,0x00000808), CONST64(0x00000808,0x00000808),
00307   CONST64(0x00080000,0x00000000), CONST64(0x00080008,0x00000000), CONST64(0x00080000,0x00000008), CONST64(0x00080008,0x00000008),
00308   CONST64(0x00080800,0x00000000), CONST64(0x00080808,0x00000000), CONST64(0x00080800,0x00000008), CONST64(0x00080808,0x00000008),
00309   CONST64(0x00080000,0x00000800), CONST64(0x00080008,0x00000800), CONST64(0x00080000,0x00000808), CONST64(0x00080008,0x00000808),
00310   CONST64(0x00080800,0x00000800), CONST64(0x00080808,0x00000800), CONST64(0x00080800,0x00000808), CONST64(0x00080808,0x00000808),
00311   CONST64(0x00000000,0x00080000), CONST64(0x00000008,0x00080000), CONST64(0x00000000,0x00080008), CONST64(0x00000008,0x00080008),
00312   CONST64(0x00000800,0x00080000), CONST64(0x00000808,0x00080000), CONST64(0x00000800,0x00080008), CONST64(0x00000808,0x00080008),
00313   CONST64(0x00000000,0x00080800), CONST64(0x00000008,0x00080800), CONST64(0x00000000,0x00080808), CONST64(0x00000008,0x00080808),
00314   CONST64(0x00000800,0x00080800), CONST64(0x00000808,0x00080800), CONST64(0x00000800,0x00080808), CONST64(0x00000808,0x00080808),
00315   CONST64(0x00080000,0x00080000), CONST64(0x00080008,0x00080000), CONST64(0x00080000,0x00080008), CONST64(0x00080008,0x00080008),
00316   CONST64(0x00080800,0x00080000), CONST64(0x00080808,0x00080000), CONST64(0x00080800,0x00080008), CONST64(0x00080808,0x00080008),
00317   CONST64(0x00080000,0x00080800), CONST64(0x00080008,0x00080800), CONST64(0x00080000,0x00080808), CONST64(0x00080008,0x00080808),
00318   CONST64(0x00080800,0x00080800), CONST64(0x00080808,0x00080800), CONST64(0x00080800,0x00080808), CONST64(0x00080808,0x00080808),
00319   CONST64(0x08000000,0x00000000), CONST64(0x08000008,0x00000000), CONST64(0x08000000,0x00000008), CONST64(0x08000008,0x00000008),
00320   CONST64(0x08000800,0x00000000), CONST64(0x08000808,0x00000000), CONST64(0x08000800,0x00000008), CONST64(0x08000808,0x00000008),
00321   CONST64(0x08000000,0x00000800), CONST64(0x08000008,0x00000800), CONST64(0x08000000,0x00000808), CONST64(0x08000008,0x00000808),
00322   CONST64(0x08000800,0x00000800), CONST64(0x08000808,0x00000800), CONST64(0x08000800,0x00000808), CONST64(0x08000808,0x00000808),
00323   CONST64(0x08080000,0x00000000), CONST64(0x08080008,0x00000000), CONST64(0x08080000,0x00000008), CONST64(0x08080008,0x00000008),
00324   CONST64(0x08080800,0x00000000), CONST64(0x08080808,0x00000000), CONST64(0x08080800,0x00000008), CONST64(0x08080808,0x00000008),
00325   CONST64(0x08080000,0x00000800), CONST64(0x08080008,0x00000800), CONST64(0x08080000,0x00000808), CONST64(0x08080008,0x00000808),
00326   CONST64(0x08080800,0x00000800), CONST64(0x08080808,0x00000800), CONST64(0x08080800,0x00000808), CONST64(0x08080808,0x00000808),
00327   CONST64(0x08000000,0x00080000), CONST64(0x08000008,0x00080000), CONST64(0x08000000,0x00080008), CONST64(0x08000008,0x00080008),
00328   CONST64(0x08000800,0x00080000), CONST64(0x08000808,0x00080000), CONST64(0x08000800,0x00080008), CONST64(0x08000808,0x00080008),
00329   CONST64(0x08000000,0x00080800), CONST64(0x08000008,0x00080800), CONST64(0x08000000,0x00080808), CONST64(0x08000008,0x00080808),
00330   CONST64(0x08000800,0x00080800), CONST64(0x08000808,0x00080800), CONST64(0x08000800,0x00080808), CONST64(0x08000808,0x00080808),
00331   CONST64(0x08080000,0x00080000), CONST64(0x08080008,0x00080000), CONST64(0x08080000,0x00080008), CONST64(0x08080008,0x00080008),
00332   CONST64(0x08080800,0x00080000), CONST64(0x08080808,0x00080000), CONST64(0x08080800,0x00080008), CONST64(0x08080808,0x00080008),
00333   CONST64(0x08080000,0x00080800), CONST64(0x08080008,0x00080800), CONST64(0x08080000,0x00080808), CONST64(0x08080008,0x00080808),
00334   CONST64(0x08080800,0x00080800), CONST64(0x08080808,0x00080800), CONST64(0x08080800,0x00080808), CONST64(0x08080808,0x00080808),
00335   CONST64(0x00000000,0x08000000), CONST64(0x00000008,0x08000000), CONST64(0x00000000,0x08000008), CONST64(0x00000008,0x08000008),
00336   CONST64(0x00000800,0x08000000), CONST64(0x00000808,0x08000000), CONST64(0x00000800,0x08000008), CONST64(0x00000808,0x08000008),
00337   CONST64(0x00000000,0x08000800), CONST64(0x00000008,0x08000800), CONST64(0x00000000,0x08000808), CONST64(0x00000008,0x08000808),
00338   CONST64(0x00000800,0x08000800), CONST64(0x00000808,0x08000800), CONST64(0x00000800,0x08000808), CONST64(0x00000808,0x08000808),
00339   CONST64(0x00080000,0x08000000), CONST64(0x00080008,0x08000000), CONST64(0x00080000,0x08000008), CONST64(0x00080008,0x08000008),
00340   CONST64(0x00080800,0x08000000), CONST64(0x00080808,0x08000000), CONST64(0x00080800,0x08000008), CONST64(0x00080808,0x08000008),
00341   CONST64(0x00080000,0x08000800), CONST64(0x00080008,0x08000800), CONST64(0x00080000,0x08000808), CONST64(0x00080008,0x08000808),
00342   CONST64(0x00080800,0x08000800), CONST64(0x00080808,0x08000800), CONST64(0x00080800,0x08000808), CONST64(0x00080808,0x08000808),
00343   CONST64(0x00000000,0x08080000), CONST64(0x00000008,0x08080000), CONST64(0x00000000,0x08080008), CONST64(0x00000008,0x08080008),
00344   CONST64(0x00000800,0x08080000), CONST64(0x00000808,0x08080000), CONST64(0x00000800,0x08080008), CONST64(0x00000808,0x08080008),
00345   CONST64(0x00000000,0x08080800), CONST64(0x00000008,0x08080800), CONST64(0x00000000,0x08080808), CONST64(0x00000008,0x08080808),
00346   CONST64(0x00000800,0x08080800), CONST64(0x00000808,0x08080800), CONST64(0x00000800,0x08080808), CONST64(0x00000808,0x08080808),
00347   CONST64(0x00080000,0x08080000), CONST64(0x00080008,0x08080000), CONST64(0x00080000,0x08080008), CONST64(0x00080008,0x08080008),
00348   CONST64(0x00080800,0x08080000), CONST64(0x00080808,0x08080000), CONST64(0x00080800,0x08080008), CONST64(0x00080808,0x08080008),
00349   CONST64(0x00080000,0x08080800), CONST64(0x00080008,0x08080800), CONST64(0x00080000,0x08080808), CONST64(0x00080008,0x08080808),
00350   CONST64(0x00080800,0x08080800), CONST64(0x00080808,0x08080800), CONST64(0x00080800,0x08080808), CONST64(0x00080808,0x08080808),
00351   CONST64(0x08000000,0x08000000), CONST64(0x08000008,0x08000000), CONST64(0x08000000,0x08000008), CONST64(0x08000008,0x08000008),
00352   CONST64(0x08000800,0x08000000), CONST64(0x08000808,0x08000000), CONST64(0x08000800,0x08000008), CONST64(0x08000808,0x08000008),
00353   CONST64(0x08000000,0x08000800), CONST64(0x08000008,0x08000800), CONST64(0x08000000,0x08000808), CONST64(0x08000008,0x08000808),
00354   CONST64(0x08000800,0x08000800), CONST64(0x08000808,0x08000800), CONST64(0x08000800,0x08000808), CONST64(0x08000808,0x08000808),
00355   CONST64(0x08080000,0x08000000), CONST64(0x08080008,0x08000000), CONST64(0x08080000,0x08000008), CONST64(0x08080008,0x08000008),
00356   CONST64(0x08080800,0x08000000), CONST64(0x08080808,0x08000000), CONST64(0x08080800,0x08000008), CONST64(0x08080808,0x08000008),
00357   CONST64(0x08080000,0x08000800), CONST64(0x08080008,0x08000800), CONST64(0x08080000,0x08000808), CONST64(0x08080008,0x08000808),
00358   CONST64(0x08080800,0x08000800), CONST64(0x08080808,0x08000800), CONST64(0x08080800,0x08000808), CONST64(0x08080808,0x08000808),
00359   CONST64(0x08000000,0x08080000), CONST64(0x08000008,0x08080000), CONST64(0x08000000,0x08080008), CONST64(0x08000008,0x08080008),
00360   CONST64(0x08000800,0x08080000), CONST64(0x08000808,0x08080000), CONST64(0x08000800,0x08080008), CONST64(0x08000808,0x08080008),
00361   CONST64(0x08000000,0x08080800), CONST64(0x08000008,0x08080800), CONST64(0x08000000,0x08080808), CONST64(0x08000008,0x08080808),
00362   CONST64(0x08000800,0x08080800), CONST64(0x08000808,0x08080800), CONST64(0x08000800,0x08080808), CONST64(0x08000808,0x08080808),
00363   CONST64(0x08080000,0x08080000), CONST64(0x08080008,0x08080000), CONST64(0x08080000,0x08080008), CONST64(0x08080008,0x08080008),
00364   CONST64(0x08080800,0x08080000), CONST64(0x08080808,0x08080000), CONST64(0x08080800,0x08080008), CONST64(0x08080808,0x08080008),
00365   CONST64(0x08080000,0x08080800), CONST64(0x08080008,0x08080800), CONST64(0x08080000,0x08080808), CONST64(0x08080008,0x08080808),
00366   CONST64(0x08080800,0x08080800), CONST64(0x08080808,0x08080800), CONST64(0x08080800,0x08080808), CONST64(0x08080808,0x08080808)
00367   },
00368 { CONST64(0x00000000,0x00000000), CONST64(0x00000004,0x00000000), CONST64(0x00000000,0x00000004), CONST64(0x00000004,0x00000004),
00369   CONST64(0x00000400,0x00000000), CONST64(0x00000404,0x00000000), CONST64(0x00000400,0x00000004), CONST64(0x00000404,0x00000004),
00370   CONST64(0x00000000,0x00000400), CONST64(0x00000004,0x00000400), CONST64(0x00000000,0x00000404), CONST64(0x00000004,0x00000404),
00371   CONST64(0x00000400,0x00000400), CONST64(0x00000404,0x00000400), CONST64(0x00000400,0x00000404), CONST64(0x00000404,0x00000404),
00372   CONST64(0x00040000,0x00000000), CONST64(0x00040004,0x00000000), CONST64(0x00040000,0x00000004), CONST64(0x00040004,0x00000004),
00373   CONST64(0x00040400,0x00000000), CONST64(0x00040404,0x00000000), CONST64(0x00040400,0x00000004), CONST64(0x00040404,0x00000004),
00374   CONST64(0x00040000,0x00000400), CONST64(0x00040004,0x00000400), CONST64(0x00040000,0x00000404), CONST64(0x00040004,0x00000404),
00375   CONST64(0x00040400,0x00000400), CONST64(0x00040404,0x00000400), CONST64(0x00040400,0x00000404), CONST64(0x00040404,0x00000404),
00376   CONST64(0x00000000,0x00040000), CONST64(0x00000004,0x00040000), CONST64(0x00000000,0x00040004), CONST64(0x00000004,0x00040004),
00377   CONST64(0x00000400,0x00040000), CONST64(0x00000404,0x00040000), CONST64(0x00000400,0x00040004), CONST64(0x00000404,0x00040004),
00378   CONST64(0x00000000,0x00040400), CONST64(0x00000004,0x00040400), CONST64(0x00000000,0x00040404), CONST64(0x00000004,0x00040404),
00379   CONST64(0x00000400,0x00040400), CONST64(0x00000404,0x00040400), CONST64(0x00000400,0x00040404), CONST64(0x00000404,0x00040404),
00380   CONST64(0x00040000,0x00040000), CONST64(0x00040004,0x00040000), CONST64(0x00040000,0x00040004), CONST64(0x00040004,0x00040004),
00381   CONST64(0x00040400,0x00040000), CONST64(0x00040404,0x00040000), CONST64(0x00040400,0x00040004), CONST64(0x00040404,0x00040004),
00382   CONST64(0x00040000,0x00040400), CONST64(0x00040004,0x00040400), CONST64(0x00040000,0x00040404), CONST64(0x00040004,0x00040404),
00383   CONST64(0x00040400,0x00040400), CONST64(0x00040404,0x00040400), CONST64(0x00040400,0x00040404), CONST64(0x00040404,0x00040404),
00384   CONST64(0x04000000,0x00000000), CONST64(0x04000004,0x00000000), CONST64(0x04000000,0x00000004), CONST64(0x04000004,0x00000004),
00385   CONST64(0x04000400,0x00000000), CONST64(0x04000404,0x00000000), CONST64(0x04000400,0x00000004), CONST64(0x04000404,0x00000004),
00386   CONST64(0x04000000,0x00000400), CONST64(0x04000004,0x00000400), CONST64(0x04000000,0x00000404), CONST64(0x04000004,0x00000404),
00387   CONST64(0x04000400,0x00000400), CONST64(0x04000404,0x00000400), CONST64(0x04000400,0x00000404), CONST64(0x04000404,0x00000404),
00388   CONST64(0x04040000,0x00000000), CONST64(0x04040004,0x00000000), CONST64(0x04040000,0x00000004), CONST64(0x04040004,0x00000004),
00389   CONST64(0x04040400,0x00000000), CONST64(0x04040404,0x00000000), CONST64(0x04040400,0x00000004), CONST64(0x04040404,0x00000004),
00390   CONST64(0x04040000,0x00000400), CONST64(0x04040004,0x00000400), CONST64(0x04040000,0x00000404), CONST64(0x04040004,0x00000404),
00391   CONST64(0x04040400,0x00000400), CONST64(0x04040404,0x00000400), CONST64(0x04040400,0x00000404), CONST64(0x04040404,0x00000404),
00392   CONST64(0x04000000,0x00040000), CONST64(0x04000004,0x00040000), CONST64(0x04000000,0x00040004), CONST64(0x04000004,0x00040004),
00393   CONST64(0x04000400,0x00040000), CONST64(0x04000404,0x00040000), CONST64(0x04000400,0x00040004), CONST64(0x04000404,0x00040004),
00394   CONST64(0x04000000,0x00040400), CONST64(0x04000004,0x00040400), CONST64(0x04000000,0x00040404), CONST64(0x04000004,0x00040404),
00395   CONST64(0x04000400,0x00040400), CONST64(0x04000404,0x00040400), CONST64(0x04000400,0x00040404), CONST64(0x04000404,0x00040404),
00396   CONST64(0x04040000,0x00040000), CONST64(0x04040004,0x00040000), CONST64(0x04040000,0x00040004), CONST64(0x04040004,0x00040004),
00397   CONST64(0x04040400,0x00040000), CONST64(0x04040404,0x00040000), CONST64(0x04040400,0x00040004), CONST64(0x04040404,0x00040004),
00398   CONST64(0x04040000,0x00040400), CONST64(0x04040004,0x00040400), CONST64(0x04040000,0x00040404), CONST64(0x04040004,0x00040404),
00399   CONST64(0x04040400,0x00040400), CONST64(0x04040404,0x00040400), CONST64(0x04040400,0x00040404), CONST64(0x04040404,0x00040404),
00400   CONST64(0x00000000,0x04000000), CONST64(0x00000004,0x04000000), CONST64(0x00000000,0x04000004), CONST64(0x00000004,0x04000004),
00401   CONST64(0x00000400,0x04000000), CONST64(0x00000404,0x04000000), CONST64(0x00000400,0x04000004), CONST64(0x00000404,0x04000004),
00402   CONST64(0x00000000,0x04000400), CONST64(0x00000004,0x04000400), CONST64(0x00000000,0x04000404), CONST64(0x00000004,0x04000404),
00403   CONST64(0x00000400,0x04000400), CONST64(0x00000404,0x04000400), CONST64(0x00000400,0x04000404), CONST64(0x00000404,0x04000404),
00404   CONST64(0x00040000,0x04000000), CONST64(0x00040004,0x04000000), CONST64(0x00040000,0x04000004), CONST64(0x00040004,0x04000004),
00405   CONST64(0x00040400,0x04000000), CONST64(0x00040404,0x04000000), CONST64(0x00040400,0x04000004), CONST64(0x00040404,0x04000004),
00406   CONST64(0x00040000,0x04000400), CONST64(0x00040004,0x04000400), CONST64(0x00040000,0x04000404), CONST64(0x00040004,0x04000404),
00407   CONST64(0x00040400,0x04000400), CONST64(0x00040404,0x04000400), CONST64(0x00040400,0x04000404), CONST64(0x00040404,0x04000404),
00408   CONST64(0x00000000,0x04040000), CONST64(0x00000004,0x04040000), CONST64(0x00000000,0x04040004), CONST64(0x00000004,0x04040004),
00409   CONST64(0x00000400,0x04040000), CONST64(0x00000404,0x04040000), CONST64(0x00000400,0x04040004), CONST64(0x00000404,0x04040004),
00410   CONST64(0x00000000,0x04040400), CONST64(0x00000004,0x04040400), CONST64(0x00000000,0x04040404), CONST64(0x00000004,0x04040404),
00411   CONST64(0x00000400,0x04040400), CONST64(0x00000404,0x04040400), CONST64(0x00000400,0x04040404), CONST64(0x00000404,0x04040404),
00412   CONST64(0x00040000,0x04040000), CONST64(0x00040004,0x04040000), CONST64(0x00040000,0x04040004), CONST64(0x00040004,0x04040004),
00413   CONST64(0x00040400,0x04040000), CONST64(0x00040404,0x04040000), CONST64(0x00040400,0x04040004), CONST64(0x00040404,0x04040004),
00414   CONST64(0x00040000,0x04040400), CONST64(0x00040004,0x04040400), CONST64(0x00040000,0x04040404), CONST64(0x00040004,0x04040404),
00415   CONST64(0x00040400,0x04040400), CONST64(0x00040404,0x04040400), CONST64(0x00040400,0x04040404), CONST64(0x00040404,0x04040404),
00416   CONST64(0x04000000,0x04000000), CONST64(0x04000004,0x04000000), CONST64(0x04000000,0x04000004), CONST64(0x04000004,0x04000004),
00417   CONST64(0x04000400,0x04000000), CONST64(0x04000404,0x04000000), CONST64(0x04000400,0x04000004), CONST64(0x04000404,0x04000004),
00418   CONST64(0x04000000,0x04000400), CONST64(0x04000004,0x04000400), CONST64(0x04000000,0x04000404), CONST64(0x04000004,0x04000404),
00419   CONST64(0x04000400,0x04000400), CONST64(0x04000404,0x04000400), CONST64(0x04000400,0x04000404), CONST64(0x04000404,0x04000404),
00420   CONST64(0x04040000,0x04000000), CONST64(0x04040004,0x04000000), CONST64(0x04040000,0x04000004), CONST64(0x04040004,0x04000004),
00421   CONST64(0x04040400,0x04000000), CONST64(0x04040404,0x04000000), CONST64(0x04040400,0x04000004), CONST64(0x04040404,0x04000004),
00422   CONST64(0x04040000,0x04000400), CONST64(0x04040004,0x04000400), CONST64(0x04040000,0x04000404), CONST64(0x04040004,0x04000404),
00423   CONST64(0x04040400,0x04000400), CONST64(0x04040404,0x04000400), CONST64(0x04040400,0x04000404), CONST64(0x04040404,0x04000404),
00424   CONST64(0x04000000,0x04040000), CONST64(0x04000004,0x04040000), CONST64(0x04000000,0x04040004), CONST64(0x04000004,0x04040004),
00425   CONST64(0x04000400,0x04040000), CONST64(0x04000404,0x04040000), CONST64(0x04000400,0x04040004), CONST64(0x04000404,0x04040004),
00426   CONST64(0x04000000,0x04040400), CONST64(0x04000004,0x04040400), CONST64(0x04000000,0x04040404), CONST64(0x04000004,0x04040404),
00427   CONST64(0x04000400,0x04040400), CONST64(0x04000404,0x04040400), CONST64(0x04000400,0x04040404), CONST64(0x04000404,0x04040404),
00428   CONST64(0x04040000,0x04040000), CONST64(0x04040004,0x04040000), CONST64(0x04040000,0x04040004), CONST64(0x04040004,0x04040004),
00429   CONST64(0x04040400,0x04040000), CONST64(0x04040404,0x04040000), CONST64(0x04040400,0x04040004), CONST64(0x04040404,0x04040004),
00430   CONST64(0x04040000,0x04040400), CONST64(0x04040004,0x04040400), CONST64(0x04040000,0x04040404), CONST64(0x04040004,0x04040404),
00431   CONST64(0x04040400,0x04040400), CONST64(0x04040404,0x04040400), CONST64(0x04040400,0x04040404), CONST64(0x04040404,0x04040404)
00432   },
00433 { CONST64(0x00000000,0x00000000), CONST64(0x00000002,0x00000000), CONST64(0x00000000,0x00000002), CONST64(0x00000002,0x00000002),
00434   CONST64(0x00000200,0x00000000), CONST64(0x00000202,0x00000000), CONST64(0x00000200,0x00000002), CONST64(0x00000202,0x00000002),
00435   CONST64(0x00000000,0x00000200), CONST64(0x00000002,0x00000200), CONST64(0x00000000,0x00000202), CONST64(0x00000002,0x00000202),
00436   CONST64(0x00000200,0x00000200), CONST64(0x00000202,0x00000200), CONST64(0x00000200,0x00000202), CONST64(0x00000202,0x00000202),
00437   CONST64(0x00020000,0x00000000), CONST64(0x00020002,0x00000000), CONST64(0x00020000,0x00000002), CONST64(0x00020002,0x00000002),
00438   CONST64(0x00020200,0x00000000), CONST64(0x00020202,0x00000000), CONST64(0x00020200,0x00000002), CONST64(0x00020202,0x00000002),
00439   CONST64(0x00020000,0x00000200), CONST64(0x00020002,0x00000200), CONST64(0x00020000,0x00000202), CONST64(0x00020002,0x00000202),
00440   CONST64(0x00020200,0x00000200), CONST64(0x00020202,0x00000200), CONST64(0x00020200,0x00000202), CONST64(0x00020202,0x00000202),
00441   CONST64(0x00000000,0x00020000), CONST64(0x00000002,0x00020000), CONST64(0x00000000,0x00020002), CONST64(0x00000002,0x00020002),
00442   CONST64(0x00000200,0x00020000), CONST64(0x00000202,0x00020000), CONST64(0x00000200,0x00020002), CONST64(0x00000202,0x00020002),
00443   CONST64(0x00000000,0x00020200), CONST64(0x00000002,0x00020200), CONST64(0x00000000,0x00020202), CONST64(0x00000002,0x00020202),
00444   CONST64(0x00000200,0x00020200), CONST64(0x00000202,0x00020200), CONST64(0x00000200,0x00020202), CONST64(0x00000202,0x00020202),
00445   CONST64(0x00020000,0x00020000), CONST64(0x00020002,0x00020000), CONST64(0x00020000,0x00020002), CONST64(0x00020002,0x00020002),
00446   CONST64(0x00020200,0x00020000), CONST64(0x00020202,0x00020000), CONST64(0x00020200,0x00020002), CONST64(0x00020202,0x00020002),
00447   CONST64(0x00020000,0x00020200), CONST64(0x00020002,0x00020200), CONST64(0x00020000,0x00020202), CONST64(0x00020002,0x00020202),
00448   CONST64(0x00020200,0x00020200), CONST64(0x00020202,0x00020200), CONST64(0x00020200,0x00020202), CONST64(0x00020202,0x00020202),
00449   CONST64(0x02000000,0x00000000), CONST64(0x02000002,0x00000000), CONST64(0x02000000,0x00000002), CONST64(0x02000002,0x00000002),
00450   CONST64(0x02000200,0x00000000), CONST64(0x02000202,0x00000000), CONST64(0x02000200,0x00000002), CONST64(0x02000202,0x00000002),
00451   CONST64(0x02000000,0x00000200), CONST64(0x02000002,0x00000200), CONST64(0x02000000,0x00000202), CONST64(0x02000002,0x00000202),
00452   CONST64(0x02000200,0x00000200), CONST64(0x02000202,0x00000200), CONST64(0x02000200,0x00000202), CONST64(0x02000202,0x00000202),
00453   CONST64(0x02020000,0x00000000), CONST64(0x02020002,0x00000000), CONST64(0x02020000,0x00000002), CONST64(0x02020002,0x00000002),
00454   CONST64(0x02020200,0x00000000), CONST64(0x02020202,0x00000000), CONST64(0x02020200,0x00000002), CONST64(0x02020202,0x00000002),
00455   CONST64(0x02020000,0x00000200), CONST64(0x02020002,0x00000200), CONST64(0x02020000,0x00000202), CONST64(0x02020002,0x00000202),
00456   CONST64(0x02020200,0x00000200), CONST64(0x02020202,0x00000200), CONST64(0x02020200,0x00000202), CONST64(0x02020202,0x00000202),
00457   CONST64(0x02000000,0x00020000), CONST64(0x02000002,0x00020000), CONST64(0x02000000,0x00020002), CONST64(0x02000002,0x00020002),
00458   CONST64(0x02000200,0x00020000), CONST64(0x02000202,0x00020000), CONST64(0x02000200,0x00020002), CONST64(0x02000202,0x00020002),
00459   CONST64(0x02000000,0x00020200), CONST64(0x02000002,0x00020200), CONST64(0x02000000,0x00020202), CONST64(0x02000002,0x00020202),
00460   CONST64(0x02000200,0x00020200), CONST64(0x02000202,0x00020200), CONST64(0x02000200,0x00020202), CONST64(0x02000202,0x00020202),
00461   CONST64(0x02020000,0x00020000), CONST64(0x02020002,0x00020000), CONST64(0x02020000,0x00020002), CONST64(0x02020002,0x00020002),
00462   CONST64(0x02020200,0x00020000), CONST64(0x02020202,0x00020000), CONST64(0x02020200,0x00020002), CONST64(0x02020202,0x00020002),
00463   CONST64(0x02020000,0x00020200), CONST64(0x02020002,0x00020200), CONST64(0x02020000,0x00020202), CONST64(0x02020002,0x00020202),
00464   CONST64(0x02020200,0x00020200), CONST64(0x02020202,0x00020200), CONST64(0x02020200,0x00020202), CONST64(0x02020202,0x00020202),
00465   CONST64(0x00000000,0x02000000), CONST64(0x00000002,0x02000000), CONST64(0x00000000,0x02000002), CONST64(0x00000002,0x02000002),
00466   CONST64(0x00000200,0x02000000), CONST64(0x00000202,0x02000000), CONST64(0x00000200,0x02000002), CONST64(0x00000202,0x02000002),
00467   CONST64(0x00000000,0x02000200), CONST64(0x00000002,0x02000200), CONST64(0x00000000,0x02000202), CONST64(0x00000002,0x02000202),
00468   CONST64(0x00000200,0x02000200), CONST64(0x00000202,0x02000200), CONST64(0x00000200,0x02000202), CONST64(0x00000202,0x02000202),
00469   CONST64(0x00020000,0x02000000), CONST64(0x00020002,0x02000000), CONST64(0x00020000,0x02000002), CONST64(0x00020002,0x02000002),
00470   CONST64(0x00020200,0x02000000), CONST64(0x00020202,0x02000000), CONST64(0x00020200,0x02000002), CONST64(0x00020202,0x02000002),
00471   CONST64(0x00020000,0x02000200), CONST64(0x00020002,0x02000200), CONST64(0x00020000,0x02000202), CONST64(0x00020002,0x02000202),
00472   CONST64(0x00020200,0x02000200), CONST64(0x00020202,0x02000200), CONST64(0x00020200,0x02000202), CONST64(0x00020202,0x02000202),
00473   CONST64(0x00000000,0x02020000), CONST64(0x00000002,0x02020000), CONST64(0x00000000,0x02020002), CONST64(0x00000002,0x02020002),
00474   CONST64(0x00000200,0x02020000), CONST64(0x00000202,0x02020000), CONST64(0x00000200,0x02020002), CONST64(0x00000202,0x02020002),
00475   CONST64(0x00000000,0x02020200), CONST64(0x00000002,0x02020200), CONST64(0x00000000,0x02020202), CONST64(0x00000002,0x02020202),
00476   CONST64(0x00000200,0x02020200), CONST64(0x00000202,0x02020200), CONST64(0x00000200,0x02020202), CONST64(0x00000202,0x02020202),
00477   CONST64(0x00020000,0x02020000), CONST64(0x00020002,0x02020000), CONST64(0x00020000,0x02020002), CONST64(0x00020002,0x02020002),
00478   CONST64(0x00020200,0x02020000), CONST64(0x00020202,0x02020000), CONST64(0x00020200,0x02020002), CONST64(0x00020202,0x02020002),
00479   CONST64(0x00020000,0x02020200), CONST64(0x00020002,0x02020200), CONST64(0x00020000,0x02020202), CONST64(0x00020002,0x02020202),
00480   CONST64(0x00020200,0x02020200), CONST64(0x00020202,0x02020200), CONST64(0x00020200,0x02020202), CONST64(0x00020202,0x02020202),
00481   CONST64(0x02000000,0x02000000), CONST64(0x02000002,0x02000000), CONST64(0x02000000,0x02000002), CONST64(0x02000002,0x02000002),
00482   CONST64(0x02000200,0x02000000), CONST64(0x02000202,0x02000000), CONST64(0x02000200,0x02000002), CONST64(0x02000202,0x02000002),
00483   CONST64(0x02000000,0x02000200), CONST64(0x02000002,0x02000200), CONST64(0x02000000,0x02000202), CONST64(0x02000002,0x02000202),
00484   CONST64(0x02000200,0x02000200), CONST64(0x02000202,0x02000200), CONST64(0x02000200,0x02000202), CONST64(0x02000202,0x02000202),
00485   CONST64(0x02020000,0x02000000), CONST64(0x02020002,0x02000000), CONST64(0x02020000,0x02000002), CONST64(0x02020002,0x02000002),
00486   CONST64(0x02020200,0x02000000), CONST64(0x02020202,0x02000000), CONST64(0x02020200,0x02000002), CONST64(0x02020202,0x02000002),
00487   CONST64(0x02020000,0x02000200), CONST64(0x02020002,0x02000200), CONST64(0x02020000,0x02000202), CONST64(0x02020002,0x02000202),
00488   CONST64(0x02020200,0x02000200), CONST64(0x02020202,0x02000200), CONST64(0x02020200,0x02000202), CONST64(0x02020202,0x02000202),
00489   CONST64(0x02000000,0x02020000), CONST64(0x02000002,0x02020000), CONST64(0x02000000,0x02020002), CONST64(0x02000002,0x02020002),
00490   CONST64(0x02000200,0x02020000), CONST64(0x02000202,0x02020000), CONST64(0x02000200,0x02020002), CONST64(0x02000202,0x02020002),
00491   CONST64(0x02000000,0x02020200), CONST64(0x02000002,0x02020200), CONST64(0x02000000,0x02020202), CONST64(0x02000002,0x02020202),
00492   CONST64(0x02000200,0x02020200), CONST64(0x02000202,0x02020200), CONST64(0x02000200,0x02020202), CONST64(0x02000202,0x02020202),
00493   CONST64(0x02020000,0x02020000), CONST64(0x02020002,0x02020000), CONST64(0x02020000,0x02020002), CONST64(0x02020002,0x02020002),
00494   CONST64(0x02020200,0x02020000), CONST64(0x02020202,0x02020000), CONST64(0x02020200,0x02020002), CONST64(0x02020202,0x02020002),
00495   CONST64(0x02020000,0x02020200), CONST64(0x02020002,0x02020200), CONST64(0x02020000,0x02020202), CONST64(0x02020002,0x02020202),
00496   CONST64(0x02020200,0x02020200), CONST64(0x02020202,0x02020200), CONST64(0x02020200,0x02020202), CONST64(0x02020202,0x02020202)
00497   },
00498 { CONST64(0x00000000,0x00000000), CONST64(0x00000100,0x00000000), CONST64(0x00000000,0x00000100), CONST64(0x00000100,0x00000100),
00499   CONST64(0x00010000,0x00000000), CONST64(0x00010100,0x00000000), CONST64(0x00010000,0x00000100), CONST64(0x00010100,0x00000100),
00500   CONST64(0x00000000,0x00010000), CONST64(0x00000100,0x00010000), CONST64(0x00000000,0x00010100), CONST64(0x00000100,0x00010100),
00501   CONST64(0x00010000,0x00010000), CONST64(0x00010100,0x00010000), CONST64(0x00010000,0x00010100), CONST64(0x00010100,0x00010100),
00502   CONST64(0x01000000,0x00000000), CONST64(0x01000100,0x00000000), CONST64(0x01000000,0x00000100), CONST64(0x01000100,0x00000100),
00503   CONST64(0x01010000,0x00000000), CONST64(0x01010100,0x00000000), CONST64(0x01010000,0x00000100), CONST64(0x01010100,0x00000100),
00504   CONST64(0x01000000,0x00010000), CONST64(0x01000100,0x00010000), CONST64(0x01000000,0x00010100), CONST64(0x01000100,0x00010100),
00505   CONST64(0x01010000,0x00010000), CONST64(0x01010100,0x00010000), CONST64(0x01010000,0x00010100), CONST64(0x01010100,0x00010100),
00506   CONST64(0x00000000,0x01000000), CONST64(0x00000100,0x01000000), CONST64(0x00000000,0x01000100), CONST64(0x00000100,0x01000100),
00507   CONST64(0x00010000,0x01000000), CONST64(0x00010100,0x01000000), CONST64(0x00010000,0x01000100), CONST64(0x00010100,0x01000100),
00508   CONST64(0x00000000,0x01010000), CONST64(0x00000100,0x01010000), CONST64(0x00000000,0x01010100), CONST64(0x00000100,0x01010100),
00509   CONST64(0x00010000,0x01010000), CONST64(0x00010100,0x01010000), CONST64(0x00010000,0x01010100), CONST64(0x00010100,0x01010100),
00510   CONST64(0x01000000,0x01000000), CONST64(0x01000100,0x01000000), CONST64(0x01000000,0x01000100), CONST64(0x01000100,0x01000100),
00511   CONST64(0x01010000,0x01000000), CONST64(0x01010100,0x01000000), CONST64(0x01010000,0x01000100), CONST64(0x01010100,0x01000100),
00512   CONST64(0x01000000,0x01010000), CONST64(0x01000100,0x01010000), CONST64(0x01000000,0x01010100), CONST64(0x01000100,0x01010100),
00513   CONST64(0x01010000,0x01010000), CONST64(0x01010100,0x01010000), CONST64(0x01010000,0x01010100), CONST64(0x01010100,0x01010100),
00514   CONST64(0x00000001,0x00000000), CONST64(0x00000101,0x00000000), CONST64(0x00000001,0x00000100), CONST64(0x00000101,0x00000100),
00515   CONST64(0x00010001,0x00000000), CONST64(0x00010101,0x00000000), CONST64(0x00010001,0x00000100), CONST64(0x00010101,0x00000100),
00516   CONST64(0x00000001,0x00010000), CONST64(0x00000101,0x00010000), CONST64(0x00000001,0x00010100), CONST64(0x00000101,0x00010100),
00517   CONST64(0x00010001,0x00010000), CONST64(0x00010101,0x00010000), CONST64(0x00010001,0x00010100), CONST64(0x00010101,0x00010100),
00518   CONST64(0x01000001,0x00000000), CONST64(0x01000101,0x00000000), CONST64(0x01000001,0x00000100), CONST64(0x01000101,0x00000100),
00519   CONST64(0x01010001,0x00000000), CONST64(0x01010101,0x00000000), CONST64(0x01010001,0x00000100), CONST64(0x01010101,0x00000100),
00520   CONST64(0x01000001,0x00010000), CONST64(0x01000101,0x00010000), CONST64(0x01000001,0x00010100), CONST64(0x01000101,0x00010100),
00521   CONST64(0x01010001,0x00010000), CONST64(0x01010101,0x00010000), CONST64(0x01010001,0x00010100), CONST64(0x01010101,0x00010100),
00522   CONST64(0x00000001,0x01000000), CONST64(0x00000101,0x01000000), CONST64(0x00000001,0x01000100), CONST64(0x00000101,0x01000100),
00523   CONST64(0x00010001,0x01000000), CONST64(0x00010101,0x01000000), CONST64(0x00010001,0x01000100), CONST64(0x00010101,0x01000100),
00524   CONST64(0x00000001,0x01010000), CONST64(0x00000101,0x01010000), CONST64(0x00000001,0x01010100), CONST64(0x00000101,0x01010100),
00525   CONST64(0x00010001,0x01010000), CONST64(0x00010101,0x01010000), CONST64(0x00010001,0x01010100), CONST64(0x00010101,0x01010100),
00526   CONST64(0x01000001,0x01000000), CONST64(0x01000101,0x01000000), CONST64(0x01000001,0x01000100), CONST64(0x01000101,0x01000100),
00527   CONST64(0x01010001,0x01000000), CONST64(0x01010101,0x01000000), CONST64(0x01010001,0x01000100), CONST64(0x01010101,0x01000100),
00528   CONST64(0x01000001,0x01010000), CONST64(0x01000101,0x01010000), CONST64(0x01000001,0x01010100), CONST64(0x01000101,0x01010100),
00529   CONST64(0x01010001,0x01010000), CONST64(0x01010101,0x01010000), CONST64(0x01010001,0x01010100), CONST64(0x01010101,0x01010100),
00530   CONST64(0x00000000,0x00000001), CONST64(0x00000100,0x00000001), CONST64(0x00000000,0x00000101), CONST64(0x00000100,0x00000101),
00531   CONST64(0x00010000,0x00000001), CONST64(0x00010100,0x00000001), CONST64(0x00010000,0x00000101), CONST64(0x00010100,0x00000101),
00532   CONST64(0x00000000,0x00010001), CONST64(0x00000100,0x00010001), CONST64(0x00000000,0x00010101), CONST64(0x00000100,0x00010101),
00533   CONST64(0x00010000,0x00010001), CONST64(0x00010100,0x00010001), CONST64(0x00010000,0x00010101), CONST64(0x00010100,0x00010101),
00534   CONST64(0x01000000,0x00000001), CONST64(0x01000100,0x00000001), CONST64(0x01000000,0x00000101), CONST64(0x01000100,0x00000101),
00535   CONST64(0x01010000,0x00000001), CONST64(0x01010100,0x00000001), CONST64(0x01010000,0x00000101), CONST64(0x01010100,0x00000101),
00536   CONST64(0x01000000,0x00010001), CONST64(0x01000100,0x00010001), CONST64(0x01000000,0x00010101), CONST64(0x01000100,0x00010101),
00537   CONST64(0x01010000,0x00010001), CONST64(0x01010100,0x00010001), CONST64(0x01010000,0x00010101), CONST64(0x01010100,0x00010101),
00538   CONST64(0x00000000,0x01000001), CONST64(0x00000100,0x01000001), CONST64(0x00000000,0x01000101), CONST64(0x00000100,0x01000101),
00539   CONST64(0x00010000,0x01000001), CONST64(0x00010100,0x01000001), CONST64(0x00010000,0x01000101), CONST64(0x00010100,0x01000101),
00540   CONST64(0x00000000,0x01010001), CONST64(0x00000100,0x01010001), CONST64(0x00000000,0x01010101), CONST64(0x00000100,0x01010101),
00541   CONST64(0x00010000,0x01010001), CONST64(0x00010100,0x01010001), CONST64(0x00010000,0x01010101), CONST64(0x00010100,0x01010101),
00542   CONST64(0x01000000,0x01000001), CONST64(0x01000100,0x01000001), CONST64(0x01000000,0x01000101), CONST64(0x01000100,0x01000101),
00543   CONST64(0x01010000,0x01000001), CONST64(0x01010100,0x01000001), CONST64(0x01010000,0x01000101), CONST64(0x01010100,0x01000101),
00544   CONST64(0x01000000,0x01010001), CONST64(0x01000100,0x01010001), CONST64(0x01000000,0x01010101), CONST64(0x01000100,0x01010101),
00545   CONST64(0x01010000,0x01010001), CONST64(0x01010100,0x01010001), CONST64(0x01010000,0x01010101), CONST64(0x01010100,0x01010101),
00546   CONST64(0x00000001,0x00000001), CONST64(0x00000101,0x00000001), CONST64(0x00000001,0x00000101), CONST64(0x00000101,0x00000101),
00547   CONST64(0x00010001,0x00000001), CONST64(0x00010101,0x00000001), CONST64(0x00010001,0x00000101), CONST64(0x00010101,0x00000101),
00548   CONST64(0x00000001,0x00010001), CONST64(0x00000101,0x00010001), CONST64(0x00000001,0x00010101), CONST64(0x00000101,0x00010101),
00549   CONST64(0x00010001,0x00010001), CONST64(0x00010101,0x00010001), CONST64(0x00010001,0x00010101), CONST64(0x00010101,0x00010101),
00550   CONST64(0x01000001,0x00000001), CONST64(0x01000101,0x00000001), CONST64(0x01000001,0x00000101), CONST64(0x01000101,0x00000101),
00551   CONST64(0x01010001,0x00000001), CONST64(0x01010101,0x00000001), CONST64(0x01010001,0x00000101), CONST64(0x01010101,0x00000101),
00552   CONST64(0x01000001,0x00010001), CONST64(0x01000101,0x00010001), CONST64(0x01000001,0x00010101), CONST64(0x01000101,0x00010101),
00553   CONST64(0x01010001,0x00010001), CONST64(0x01010101,0x00010001), CONST64(0x01010001,0x00010101), CONST64(0x01010101,0x00010101),
00554   CONST64(0x00000001,0x01000001), CONST64(0x00000101,0x01000001), CONST64(0x00000001,0x01000101), CONST64(0x00000101,0x01000101),
00555   CONST64(0x00010001,0x01000001), CONST64(0x00010101,0x01000001), CONST64(0x00010001,0x01000101), CONST64(0x00010101,0x01000101),
00556   CONST64(0x00000001,0x01010001), CONST64(0x00000101,0x01010001), CONST64(0x00000001,0x01010101), CONST64(0x00000101,0x01010101),
00557   CONST64(0x00010001,0x01010001), CONST64(0x00010101,0x01010001), CONST64(0x00010001,0x01010101), CONST64(0x00010101,0x01010101),
00558   CONST64(0x01000001,0x01000001), CONST64(0x01000101,0x01000001), CONST64(0x01000001,0x01000101), CONST64(0x01000101,0x01000101),
00559   CONST64(0x01010001,0x01000001), CONST64(0x01010101,0x01000001), CONST64(0x01010001,0x01000101), CONST64(0x01010101,0x01000101),
00560   CONST64(0x01000001,0x01010001), CONST64(0x01000101,0x01010001), CONST64(0x01000001,0x01010101), CONST64(0x01000101,0x01010101),
00561   CONST64(0x01010001,0x01010001), CONST64(0x01010101,0x01010001), CONST64(0x01010001,0x01010101), CONST64(0x01010101,0x01010101)
00562   },
00563 { CONST64(0x00000000,0x00000000), CONST64(0x00000080,0x00000000), CONST64(0x00000000,0x00000080), CONST64(0x00000080,0x00000080),
00564   CONST64(0x00008000,0x00000000), CONST64(0x00008080,0x00000000), CONST64(0x00008000,0x00000080), CONST64(0x00008080,0x00000080),
00565   CONST64(0x00000000,0x00008000), CONST64(0x00000080,0x00008000), CONST64(0x00000000,0x00008080), CONST64(0x00000080,0x00008080),
00566   CONST64(0x00008000,0x00008000), CONST64(0x00008080,0x00008000), CONST64(0x00008000,0x00008080), CONST64(0x00008080,0x00008080),
00567   CONST64(0x00800000,0x00000000), CONST64(0x00800080,0x00000000), CONST64(0x00800000,0x00000080), CONST64(0x00800080,0x00000080),
00568   CONST64(0x00808000,0x00000000), CONST64(0x00808080,0x00000000), CONST64(0x00808000,0x00000080), CONST64(0x00808080,0x00000080),
00569   CONST64(0x00800000,0x00008000), CONST64(0x00800080,0x00008000), CONST64(0x00800000,0x00008080), CONST64(0x00800080,0x00008080),
00570   CONST64(0x00808000,0x00008000), CONST64(0x00808080,0x00008000), CONST64(0x00808000,0x00008080), CONST64(0x00808080,0x00008080),
00571   CONST64(0x00000000,0x00800000), CONST64(0x00000080,0x00800000), CONST64(0x00000000,0x00800080), CONST64(0x00000080,0x00800080),
00572   CONST64(0x00008000,0x00800000), CONST64(0x00008080,0x00800000), CONST64(0x00008000,0x00800080), CONST64(0x00008080,0x00800080),
00573   CONST64(0x00000000,0x00808000), CONST64(0x00000080,0x00808000), CONST64(0x00000000,0x00808080), CONST64(0x00000080,0x00808080),
00574   CONST64(0x00008000,0x00808000), CONST64(0x00008080,0x00808000), CONST64(0x00008000,0x00808080), CONST64(0x00008080,0x00808080),
00575   CONST64(0x00800000,0x00800000), CONST64(0x00800080,0x00800000), CONST64(0x00800000,0x00800080), CONST64(0x00800080,0x00800080),
00576   CONST64(0x00808000,0x00800000), CONST64(0x00808080,0x00800000), CONST64(0x00808000,0x00800080), CONST64(0x00808080,0x00800080),
00577   CONST64(0x00800000,0x00808000), CONST64(0x00800080,0x00808000), CONST64(0x00800000,0x00808080), CONST64(0x00800080,0x00808080),
00578   CONST64(0x00808000,0x00808000), CONST64(0x00808080,0x00808000), CONST64(0x00808000,0x00808080), CONST64(0x00808080,0x00808080),
00579   CONST64(0x80000000,0x00000000), CONST64(0x80000080,0x00000000), CONST64(0x80000000,0x00000080), CONST64(0x80000080,0x00000080),
00580   CONST64(0x80008000,0x00000000), CONST64(0x80008080,0x00000000), CONST64(0x80008000,0x00000080), CONST64(0x80008080,0x00000080),
00581   CONST64(0x80000000,0x00008000), CONST64(0x80000080,0x00008000), CONST64(0x80000000,0x00008080), CONST64(0x80000080,0x00008080),
00582   CONST64(0x80008000,0x00008000), CONST64(0x80008080,0x00008000), CONST64(0x80008000,0x00008080), CONST64(0x80008080,0x00008080),
00583   CONST64(0x80800000,0x00000000), CONST64(0x80800080,0x00000000), CONST64(0x80800000,0x00000080), CONST64(0x80800080,0x00000080),
00584   CONST64(0x80808000,0x00000000), CONST64(0x80808080,0x00000000), CONST64(0x80808000,0x00000080), CONST64(0x80808080,0x00000080),
00585   CONST64(0x80800000,0x00008000), CONST64(0x80800080,0x00008000), CONST64(0x80800000,0x00008080), CONST64(0x80800080,0x00008080),
00586   CONST64(0x80808000,0x00008000), CONST64(0x80808080,0x00008000), CONST64(0x80808000,0x00008080), CONST64(0x80808080,0x00008080),
00587   CONST64(0x80000000,0x00800000), CONST64(0x80000080,0x00800000), CONST64(0x80000000,0x00800080), CONST64(0x80000080,0x00800080),
00588   CONST64(0x80008000,0x00800000), CONST64(0x80008080,0x00800000), CONST64(0x80008000,0x00800080), CONST64(0x80008080,0x00800080),
00589   CONST64(0x80000000,0x00808000), CONST64(0x80000080,0x00808000), CONST64(0x80000000,0x00808080), CONST64(0x80000080,0x00808080),
00590   CONST64(0x80008000,0x00808000), CONST64(0x80008080,0x00808000), CONST64(0x80008000,0x00808080), CONST64(0x80008080,0x00808080),
00591   CONST64(0x80800000,0x00800000), CONST64(0x80800080,0x00800000), CONST64(0x80800000,0x00800080), CONST64(0x80800080,0x00800080),
00592   CONST64(0x80808000,0x00800000), CONST64(0x80808080,0x00800000), CONST64(0x80808000,0x00800080), CONST64(0x80808080,0x00800080),
00593   CONST64(0x80800000,0x00808000), CONST64(0x80800080,0x00808000), CONST64(0x80800000,0x00808080), CONST64(0x80800080,0x00808080),
00594   CONST64(0x80808000,0x00808000), CONST64(0x80808080,0x00808000), CONST64(0x80808000,0x00808080), CONST64(0x80808080,0x00808080),
00595   CONST64(0x00000000,0x80000000), CONST64(0x00000080,0x80000000), CONST64(0x00000000,0x80000080), CONST64(0x00000080,0x80000080),
00596   CONST64(0x00008000,0x80000000), CONST64(0x00008080,0x80000000), CONST64(0x00008000,0x80000080), CONST64(0x00008080,0x80000080),
00597   CONST64(0x00000000,0x80008000), CONST64(0x00000080,0x80008000), CONST64(0x00000000,0x80008080), CONST64(0x00000080,0x80008080),
00598   CONST64(0x00008000,0x80008000), CONST64(0x00008080,0x80008000), CONST64(0x00008000,0x80008080), CONST64(0x00008080,0x80008080),
00599   CONST64(0x00800000,0x80000000), CONST64(0x00800080,0x80000000), CONST64(0x00800000,0x80000080), CONST64(0x00800080,0x80000080),
00600   CONST64(0x00808000,0x80000000), CONST64(0x00808080,0x80000000), CONST64(0x00808000,0x80000080), CONST64(0x00808080,0x80000080),
00601   CONST64(0x00800000,0x80008000), CONST64(0x00800080,0x80008000), CONST64(0x00800000,0x80008080), CONST64(0x00800080,0x80008080),
00602   CONST64(0x00808000,0x80008000), CONST64(0x00808080,0x80008000), CONST64(0x00808000,0x80008080), CONST64(0x00808080,0x80008080),
00603   CONST64(0x00000000,0x80800000), CONST64(0x00000080,0x80800000), CONST64(0x00000000,0x80800080), CONST64(0x00000080,0x80800080),
00604   CONST64(0x00008000,0x80800000), CONST64(0x00008080,0x80800000), CONST64(0x00008000,0x80800080), CONST64(0x00008080,0x80800080),
00605   CONST64(0x00000000,0x80808000), CONST64(0x00000080,0x80808000), CONST64(0x00000000,0x80808080), CONST64(0x00000080,0x80808080),
00606   CONST64(0x00008000,0x80808000), CONST64(0x00008080,0x80808000), CONST64(0x00008000,0x80808080), CONST64(0x00008080,0x80808080),
00607   CONST64(0x00800000,0x80800000), CONST64(0x00800080,0x80800000), CONST64(0x00800000,0x80800080), CONST64(0x00800080,0x80800080),
00608   CONST64(0x00808000,0x80800000), CONST64(0x00808080,0x80800000), CONST64(0x00808000,0x80800080), CONST64(0x00808080,0x80800080),
00609   CONST64(0x00800000,0x80808000), CONST64(0x00800080,0x80808000), CONST64(0x00800000,0x80808080), CONST64(0x00800080,0x80808080),
00610   CONST64(0x00808000,0x80808000), CONST64(0x00808080,0x80808000), CONST64(0x00808000,0x80808080), CONST64(0x00808080,0x80808080),
00611   CONST64(0x80000000,0x80000000), CONST64(0x80000080,0x80000000), CONST64(0x80000000,0x80000080), CONST64(0x80000080,0x80000080),
00612   CONST64(0x80008000,0x80000000), CONST64(0x80008080,0x80000000), CONST64(0x80008000,0x80000080), CONST64(0x80008080,0x80000080),
00613   CONST64(0x80000000,0x80008000), CONST64(0x80000080,0x80008000), CONST64(0x80000000,0x80008080), CONST64(0x80000080,0x80008080),
00614   CONST64(0x80008000,0x80008000), CONST64(0x80008080,0x80008000), CONST64(0x80008000,0x80008080), CONST64(0x80008080,0x80008080),
00615   CONST64(0x80800000,0x80000000), CONST64(0x80800080,0x80000000), CONST64(0x80800000,0x80000080), CONST64(0x80800080,0x80000080),
00616   CONST64(0x80808000,0x80000000), CONST64(0x80808080,0x80000000), CONST64(0x80808000,0x80000080), CONST64(0x80808080,0x80000080),
00617   CONST64(0x80800000,0x80008000), CONST64(0x80800080,0x80008000), CONST64(0x80800000,0x80008080), CONST64(0x80800080,0x80008080),
00618   CONST64(0x80808000,0x80008000), CONST64(0x80808080,0x80008000), CONST64(0x80808000,0x80008080), CONST64(0x80808080,0x80008080),
00619   CONST64(0x80000000,0x80800000), CONST64(0x80000080,0x80800000), CONST64(0x80000000,0x80800080), CONST64(0x80000080,0x80800080),
00620   CONST64(0x80008000,0x80800000), CONST64(0x80008080,0x80800000), CONST64(0x80008000,0x80800080), CONST64(0x80008080,0x80800080),
00621   CONST64(0x80000000,0x80808000), CONST64(0x80000080,0x80808000), CONST64(0x80000000,0x80808080), CONST64(0x80000080,0x80808080),
00622   CONST64(0x80008000,0x80808000), CONST64(0x80008080,0x80808000), CONST64(0x80008000,0x80808080), CONST64(0x80008080,0x80808080),
00623   CONST64(0x80800000,0x80800000), CONST64(0x80800080,0x80800000), CONST64(0x80800000,0x80800080), CONST64(0x80800080,0x80800080),
00624   CONST64(0x80808000,0x80800000), CONST64(0x80808080,0x80800000), CONST64(0x80808000,0x80800080), CONST64(0x80808080,0x80800080),
00625   CONST64(0x80800000,0x80808000), CONST64(0x80800080,0x80808000), CONST64(0x80800000,0x80808080), CONST64(0x80800080,0x80808080),
00626   CONST64(0x80808000,0x80808000), CONST64(0x80808080,0x80808000), CONST64(0x80808000,0x80808080), CONST64(0x80808080,0x80808080)
00627   },
00628 { CONST64(0x00000000,0x00000000), CONST64(0x00000040,0x00000000), CONST64(0x00000000,0x00000040), CONST64(0x00000040,0x00000040),
00629   CONST64(0x00004000,0x00000000), CONST64(0x00004040,0x00000000), CONST64(0x00004000,0x00000040), CONST64(0x00004040,0x00000040),
00630   CONST64(0x00000000,0x00004000), CONST64(0x00000040,0x00004000), CONST64(0x00000000,0x00004040), CONST64(0x00000040,0x00004040),
00631   CONST64(0x00004000,0x00004000), CONST64(0x00004040,0x00004000), CONST64(0x00004000,0x00004040), CONST64(0x00004040,0x00004040),
00632   CONST64(0x00400000,0x00000000), CONST64(0x00400040,0x00000000), CONST64(0x00400000,0x00000040), CONST64(0x00400040,0x00000040),
00633   CONST64(0x00404000,0x00000000), CONST64(0x00404040,0x00000000), CONST64(0x00404000,0x00000040), CONST64(0x00404040,0x00000040),
00634   CONST64(0x00400000,0x00004000), CONST64(0x00400040,0x00004000), CONST64(0x00400000,0x00004040), CONST64(0x00400040,0x00004040),
00635   CONST64(0x00404000,0x00004000), CONST64(0x00404040,0x00004000), CONST64(0x00404000,0x00004040), CONST64(0x00404040,0x00004040),
00636   CONST64(0x00000000,0x00400000), CONST64(0x00000040,0x00400000), CONST64(0x00000000,0x00400040), CONST64(0x00000040,0x00400040),
00637   CONST64(0x00004000,0x00400000), CONST64(0x00004040,0x00400000), CONST64(0x00004000,0x00400040), CONST64(0x00004040,0x00400040),
00638   CONST64(0x00000000,0x00404000), CONST64(0x00000040,0x00404000), CONST64(0x00000000,0x00404040), CONST64(0x00000040,0x00404040),
00639   CONST64(0x00004000,0x00404000), CONST64(0x00004040,0x00404000), CONST64(0x00004000,0x00404040), CONST64(0x00004040,0x00404040),
00640   CONST64(0x00400000,0x00400000), CONST64(0x00400040,0x00400000), CONST64(0x00400000,0x00400040), CONST64(0x00400040,0x00400040),
00641   CONST64(0x00404000,0x00400000), CONST64(0x00404040,0x00400000), CONST64(0x00404000,0x00400040), CONST64(0x00404040,0x00400040),
00642   CONST64(0x00400000,0x00404000), CONST64(0x00400040,0x00404000), CONST64(0x00400000,0x00404040), CONST64(0x00400040,0x00404040),
00643   CONST64(0x00404000,0x00404000), CONST64(0x00404040,0x00404000), CONST64(0x00404000,0x00404040), CONST64(0x00404040,0x00404040),
00644   CONST64(0x40000000,0x00000000), CONST64(0x40000040,0x00000000), CONST64(0x40000000,0x00000040), CONST64(0x40000040,0x00000040),
00645   CONST64(0x40004000,0x00000000), CONST64(0x40004040,0x00000000), CONST64(0x40004000,0x00000040), CONST64(0x40004040,0x00000040),
00646   CONST64(0x40000000,0x00004000), CONST64(0x40000040,0x00004000), CONST64(0x40000000,0x00004040), CONST64(0x40000040,0x00004040),
00647   CONST64(0x40004000,0x00004000), CONST64(0x40004040,0x00004000), CONST64(0x40004000,0x00004040), CONST64(0x40004040,0x00004040),
00648   CONST64(0x40400000,0x00000000), CONST64(0x40400040,0x00000000), CONST64(0x40400000,0x00000040), CONST64(0x40400040,0x00000040),
00649   CONST64(0x40404000,0x00000000), CONST64(0x40404040,0x00000000), CONST64(0x40404000,0x00000040), CONST64(0x40404040,0x00000040),
00650   CONST64(0x40400000,0x00004000), CONST64(0x40400040,0x00004000), CONST64(0x40400000,0x00004040), CONST64(0x40400040,0x00004040),
00651   CONST64(0x40404000,0x00004000), CONST64(0x40404040,0x00004000), CONST64(0x40404000,0x00004040), CONST64(0x40404040,0x00004040),
00652   CONST64(0x40000000,0x00400000), CONST64(0x40000040,0x00400000), CONST64(0x40000000,0x00400040), CONST64(0x40000040,0x00400040),
00653   CONST64(0x40004000,0x00400000), CONST64(0x40004040,0x00400000), CONST64(0x40004000,0x00400040), CONST64(0x40004040,0x00400040),
00654   CONST64(0x40000000,0x00404000), CONST64(0x40000040,0x00404000), CONST64(0x40000000,0x00404040), CONST64(0x40000040,0x00404040),
00655   CONST64(0x40004000,0x00404000), CONST64(0x40004040,0x00404000), CONST64(0x40004000,0x00404040), CONST64(0x40004040,0x00404040),
00656   CONST64(0x40400000,0x00400000), CONST64(0x40400040,0x00400000), CONST64(0x40400000,0x00400040), CONST64(0x40400040,0x00400040),
00657   CONST64(0x40404000,0x00400000), CONST64(0x40404040,0x00400000), CONST64(0x40404000,0x00400040), CONST64(0x40404040,0x00400040),
00658   CONST64(0x40400000,0x00404000), CONST64(0x40400040,0x00404000), CONST64(0x40400000,0x00404040), CONST64(0x40400040,0x00404040),
00659   CONST64(0x40404000,0x00404000), CONST64(0x40404040,0x00404000), CONST64(0x40404000,0x00404040), CONST64(0x40404040,0x00404040),
00660   CONST64(0x00000000,0x40000000), CONST64(0x00000040,0x40000000), CONST64(0x00000000,0x40000040), CONST64(0x00000040,0x40000040),
00661   CONST64(0x00004000,0x40000000), CONST64(0x00004040,0x40000000), CONST64(0x00004000,0x40000040), CONST64(0x00004040,0x40000040),
00662   CONST64(0x00000000,0x40004000), CONST64(0x00000040,0x40004000), CONST64(0x00000000,0x40004040), CONST64(0x00000040,0x40004040),
00663   CONST64(0x00004000,0x40004000), CONST64(0x00004040,0x40004000), CONST64(0x00004000,0x40004040), CONST64(0x00004040,0x40004040),
00664   CONST64(0x00400000,0x40000000), CONST64(0x00400040,0x40000000), CONST64(0x00400000,0x40000040), CONST64(0x00400040,0x40000040),
00665   CONST64(0x00404000,0x40000000), CONST64(0x00404040,0x40000000), CONST64(0x00404000,0x40000040), CONST64(0x00404040,0x40000040),
00666   CONST64(0x00400000,0x40004000), CONST64(0x00400040,0x40004000), CONST64(0x00400000,0x40004040), CONST64(0x00400040,0x40004040),
00667   CONST64(0x00404000,0x40004000), CONST64(0x00404040,0x40004000), CONST64(0x00404000,0x40004040), CONST64(0x00404040,0x40004040),
00668   CONST64(0x00000000,0x40400000), CONST64(0x00000040,0x40400000), CONST64(0x00000000,0x40400040), CONST64(0x00000040,0x40400040),
00669   CONST64(0x00004000,0x40400000), CONST64(0x00004040,0x40400000), CONST64(0x00004000,0x40400040), CONST64(0x00004040,0x40400040),
00670   CONST64(0x00000000,0x40404000), CONST64(0x00000040,0x40404000), CONST64(0x00000000,0x40404040), CONST64(0x00000040,0x40404040),
00671   CONST64(0x00004000,0x40404000), CONST64(0x00004040,0x40404000), CONST64(0x00004000,0x40404040), CONST64(0x00004040,0x40404040),
00672   CONST64(0x00400000,0x40400000), CONST64(0x00400040,0x40400000), CONST64(0x00400000,0x40400040), CONST64(0x00400040,0x40400040),
00673   CONST64(0x00404000,0x40400000), CONST64(0x00404040,0x40400000), CONST64(0x00404000,0x40400040), CONST64(0x00404040,0x40400040),
00674   CONST64(0x00400000,0x40404000), CONST64(0x00400040,0x40404000), CONST64(0x00400000,0x40404040), CONST64(0x00400040,0x40404040),
00675   CONST64(0x00404000,0x40404000), CONST64(0x00404040,0x40404000), CONST64(0x00404000,0x40404040), CONST64(0x00404040,0x40404040),
00676   CONST64(0x40000000,0x40000000), CONST64(0x40000040,0x40000000), CONST64(0x40000000,0x40000040), CONST64(0x40000040,0x40000040),
00677   CONST64(0x40004000,0x40000000), CONST64(0x40004040,0x40000000), CONST64(0x40004000,0x40000040), CONST64(0x40004040,0x40000040),
00678   CONST64(0x40000000,0x40004000), CONST64(0x40000040,0x40004000), CONST64(0x40000000,0x40004040), CONST64(0x40000040,0x40004040),
00679   CONST64(0x40004000,0x40004000), CONST64(0x40004040,0x40004000), CONST64(0x40004000,0x40004040), CONST64(0x40004040,0x40004040),
00680   CONST64(0x40400000,0x40000000), CONST64(0x40400040,0x40000000), CONST64(0x40400000,0x40000040), CONST64(0x40400040,0x40000040),
00681   CONST64(0x40404000,0x40000000), CONST64(0x40404040,0x40000000), CONST64(0x40404000,0x40000040), CONST64(0x40404040,0x40000040),
00682   CONST64(0x40400000,0x40004000), CONST64(0x40400040,0x40004000), CONST64(0x40400000,0x40004040), CONST64(0x40400040,0x40004040),
00683   CONST64(0x40404000,0x40004000), CONST64(0x40404040,0x40004000), CONST64(0x40404000,0x40004040), CONST64(0x40404040,0x40004040),
00684   CONST64(0x40000000,0x40400000), CONST64(0x40000040,0x40400000), CONST64(0x40000000,0x40400040), CONST64(0x40000040,0x40400040),
00685   CONST64(0x40004000,0x40400000), CONST64(0x40004040,0x40400000), CONST64(0x40004000,0x40400040), CONST64(0x40004040,0x40400040),
00686   CONST64(0x40000000,0x40404000), CONST64(0x40000040,0x40404000), CONST64(0x40000000,0x40404040), CONST64(0x40000040,0x40404040),
00687   CONST64(0x40004000,0x40404000), CONST64(0x40004040,0x40404000), CONST64(0x40004000,0x40404040), CONST64(0x40004040,0x40404040),
00688   CONST64(0x40400000,0x40400000), CONST64(0x40400040,0x40400000), CONST64(0x40400000,0x40400040), CONST64(0x40400040,0x40400040),
00689   CONST64(0x40404000,0x40400000), CONST64(0x40404040,0x40400000), CONST64(0x40404000,0x40400040), CONST64(0x40404040,0x40400040),
00690   CONST64(0x40400000,0x40404000), CONST64(0x40400040,0x40404000), CONST64(0x40400000,0x40404040), CONST64(0x40400040,0x40404040),
00691   CONST64(0x40404000,0x40404000), CONST64(0x40404040,0x40404000), CONST64(0x40404000,0x40404040), CONST64(0x40404040,0x40404040)
00692   },
00693 { CONST64(0x00000000,0x00000000), CONST64(0x00000020,0x00000000), CONST64(0x00000000,0x00000020), CONST64(0x00000020,0x00000020),
00694   CONST64(0x00002000,0x00000000), CONST64(0x00002020,0x00000000), CONST64(0x00002000,0x00000020), CONST64(0x00002020,0x00000020),
00695   CONST64(0x00000000,0x00002000), CONST64(0x00000020,0x00002000), CONST64(0x00000000,0x00002020), CONST64(0x00000020,0x00002020),
00696   CONST64(0x00002000,0x00002000), CONST64(0x00002020,0x00002000), CONST64(0x00002000,0x00002020), CONST64(0x00002020,0x00002020),
00697   CONST64(0x00200000,0x00000000), CONST64(0x00200020,0x00000000), CONST64(0x00200000,0x00000020), CONST64(0x00200020,0x00000020),
00698   CONST64(0x00202000,0x00000000), CONST64(0x00202020,0x00000000), CONST64(0x00202000,0x00000020), CONST64(0x00202020,0x00000020),
00699   CONST64(0x00200000,0x00002000), CONST64(0x00200020,0x00002000), CONST64(0x00200000,0x00002020), CONST64(0x00200020,0x00002020),
00700   CONST64(0x00202000,0x00002000), CONST64(0x00202020,0x00002000), CONST64(0x00202000,0x00002020), CONST64(0x00202020,0x00002020),
00701   CONST64(0x00000000,0x00200000), CONST64(0x00000020,0x00200000), CONST64(0x00000000,0x00200020), CONST64(0x00000020,0x00200020),
00702   CONST64(0x00002000,0x00200000), CONST64(0x00002020,0x00200000), CONST64(0x00002000,0x00200020), CONST64(0x00002020,0x00200020),
00703   CONST64(0x00000000,0x00202000), CONST64(0x00000020,0x00202000), CONST64(0x00000000,0x00202020), CONST64(0x00000020,0x00202020),
00704   CONST64(0x00002000,0x00202000), CONST64(0x00002020,0x00202000), CONST64(0x00002000,0x00202020), CONST64(0x00002020,0x00202020),
00705   CONST64(0x00200000,0x00200000), CONST64(0x00200020,0x00200000), CONST64(0x00200000,0x00200020), CONST64(0x00200020,0x00200020),
00706   CONST64(0x00202000,0x00200000), CONST64(0x00202020,0x00200000), CONST64(0x00202000,0x00200020), CONST64(0x00202020,0x00200020),
00707   CONST64(0x00200000,0x00202000), CONST64(0x00200020,0x00202000), CONST64(0x00200000,0x00202020), CONST64(0x00200020,0x00202020),
00708   CONST64(0x00202000,0x00202000), CONST64(0x00202020,0x00202000), CONST64(0x00202000,0x00202020), CONST64(0x00202020,0x00202020),
00709   CONST64(0x20000000,0x00000000), CONST64(0x20000020,0x00000000), CONST64(0x20000000,0x00000020), CONST64(0x20000020,0x00000020),
00710   CONST64(0x20002000,0x00000000), CONST64(0x20002020,0x00000000), CONST64(0x20002000,0x00000020), CONST64(0x20002020,0x00000020),
00711   CONST64(0x20000000,0x00002000), CONST64(0x20000020,0x00002000), CONST64(0x20000000,0x00002020), CONST64(0x20000020,0x00002020),
00712   CONST64(0x20002000,0x00002000), CONST64(0x20002020,0x00002000), CONST64(0x20002000,0x00002020), CONST64(0x20002020,0x00002020),
00713   CONST64(0x20200000,0x00000000), CONST64(0x20200020,0x00000000), CONST64(0x20200000,0x00000020), CONST64(0x20200020,0x00000020),
00714   CONST64(0x20202000,0x00000000), CONST64(0x20202020,0x00000000), CONST64(0x20202000,0x00000020), CONST64(0x20202020,0x00000020),
00715   CONST64(0x20200000,0x00002000), CONST64(0x20200020,0x00002000), CONST64(0x20200000,0x00002020), CONST64(0x20200020,0x00002020),
00716   CONST64(0x20202000,0x00002000), CONST64(0x20202020,0x00002000), CONST64(0x20202000,0x00002020), CONST64(0x20202020,0x00002020),
00717   CONST64(0x20000000,0x00200000), CONST64(0x20000020,0x00200000), CONST64(0x20000000,0x00200020), CONST64(0x20000020,0x00200020),
00718   CONST64(0x20002000,0x00200000), CONST64(0x20002020,0x00200000), CONST64(0x20002000,0x00200020), CONST64(0x20002020,0x00200020),
00719   CONST64(0x20000000,0x00202000), CONST64(0x20000020,0x00202000), CONST64(0x20000000,0x00202020), CONST64(0x20000020,0x00202020),
00720   CONST64(0x20002000,0x00202000), CONST64(0x20002020,0x00202000), CONST64(0x20002000,0x00202020), CONST64(0x20002020,0x00202020),
00721   CONST64(0x20200000,0x00200000), CONST64(0x20200020,0x00200000), CONST64(0x20200000,0x00200020), CONST64(0x20200020,0x00200020),
00722   CONST64(0x20202000,0x00200000), CONST64(0x20202020,0x00200000), CONST64(0x20202000,0x00200020), CONST64(0x20202020,0x00200020),
00723   CONST64(0x20200000,0x00202000), CONST64(0x20200020,0x00202000), CONST64(0x20200000,0x00202020), CONST64(0x20200020,0x00202020),
00724   CONST64(0x20202000,0x00202000), CONST64(0x20202020,0x00202000), CONST64(0x20202000,0x00202020), CONST64(0x20202020,0x00202020),
00725   CONST64(0x00000000,0x20000000), CONST64(0x00000020,0x20000000), CONST64(0x00000000,0x20000020), CONST64(0x00000020,0x20000020),
00726   CONST64(0x00002000,0x20000000), CONST64(0x00002020,0x20000000), CONST64(0x00002000,0x20000020), CONST64(0x00002020,0x20000020),
00727   CONST64(0x00000000,0x20002000), CONST64(0x00000020,0x20002000), CONST64(0x00000000,0x20002020), CONST64(0x00000020,0x20002020),
00728   CONST64(0x00002000,0x20002000), CONST64(0x00002020,0x20002000), CONST64(0x00002000,0x20002020), CONST64(0x00002020,0x20002020),
00729   CONST64(0x00200000,0x20000000), CONST64(0x00200020,0x20000000), CONST64(0x00200000,0x20000020), CONST64(0x00200020,0x20000020),
00730   CONST64(0x00202000,0x20000000), CONST64(0x00202020,0x20000000), CONST64(0x00202000,0x20000020), CONST64(0x00202020,0x20000020),
00731   CONST64(0x00200000,0x20002000), CONST64(0x00200020,0x20002000), CONST64(0x00200000,0x20002020), CONST64(0x00200020,0x20002020),
00732   CONST64(0x00202000,0x20002000), CONST64(0x00202020,0x20002000), CONST64(0x00202000,0x20002020), CONST64(0x00202020,0x20002020),
00733   CONST64(0x00000000,0x20200000), CONST64(0x00000020,0x20200000), CONST64(0x00000000,0x20200020), CONST64(0x00000020,0x20200020),
00734   CONST64(0x00002000,0x20200000), CONST64(0x00002020,0x20200000), CONST64(0x00002000,0x20200020), CONST64(0x00002020,0x20200020),
00735   CONST64(0x00000000,0x20202000), CONST64(0x00000020,0x20202000), CONST64(0x00000000,0x20202020), CONST64(0x00000020,0x20202020),
00736   CONST64(0x00002000,0x20202000), CONST64(0x00002020,0x20202000), CONST64(0x00002000,0x20202020), CONST64(0x00002020,0x20202020),
00737   CONST64(0x00200000,0x20200000), CONST64(0x00200020,0x20200000), CONST64(0x00200000,0x20200020), CONST64(0x00200020,0x20200020),
00738   CONST64(0x00202000,0x20200000), CONST64(0x00202020,0x20200000), CONST64(0x00202000,0x20200020), CONST64(0x00202020,0x20200020),
00739   CONST64(0x00200000,0x20202000), CONST64(0x00200020,0x20202000), CONST64(0x00200000,0x20202020), CONST64(0x00200020,0x20202020),
00740   CONST64(0x00202000,0x20202000), CONST64(0x00202020,0x20202000), CONST64(0x00202000,0x20202020), CONST64(0x00202020,0x20202020),
00741   CONST64(0x20000000,0x20000000), CONST64(0x20000020,0x20000000), CONST64(0x20000000,0x20000020), CONST64(0x20000020,0x20000020),
00742   CONST64(0x20002000,0x20000000), CONST64(0x20002020,0x20000000), CONST64(0x20002000,0x20000020), CONST64(0x20002020,0x20000020),
00743   CONST64(0x20000000,0x20002000), CONST64(0x20000020,0x20002000), CONST64(0x20000000,0x20002020), CONST64(0x20000020,0x20002020),
00744   CONST64(0x20002000,0x20002000), CONST64(0x20002020,0x20002000), CONST64(0x20002000,0x20002020), CONST64(0x20002020,0x20002020),
00745   CONST64(0x20200000,0x20000000), CONST64(0x20200020,0x20000000), CONST64(0x20200000,0x20000020), CONST64(0x20200020,0x20000020),
00746   CONST64(0x20202000,0x20000000), CONST64(0x20202020,0x20000000), CONST64(0x20202000,0x20000020), CONST64(0x20202020,0x20000020),
00747   CONST64(0x20200000,0x20002000), CONST64(0x20200020,0x20002000), CONST64(0x20200000,0x20002020), CONST64(0x20200020,0x20002020),
00748   CONST64(0x20202000,0x20002000), CONST64(0x20202020,0x20002000), CONST64(0x20202000,0x20002020), CONST64(0x20202020,0x20002020),
00749   CONST64(0x20000000,0x20200000), CONST64(0x20000020,0x20200000), CONST64(0x20000000,0x20200020), CONST64(0x20000020,0x20200020),
00750   CONST64(0x20002000,0x20200000), CONST64(0x20002020,0x20200000), CONST64(0x20002000,0x20200020), CONST64(0x20002020,0x20200020),
00751   CONST64(0x20000000,0x20202000), CONST64(0x20000020,0x20202000), CONST64(0x20000000,0x20202020), CONST64(0x20000020,0x20202020),
00752   CONST64(0x20002000,0x20202000), CONST64(0x20002020,0x20202000), CONST64(0x20002000,0x20202020), CONST64(0x20002020,0x20202020),
00753   CONST64(0x20200000,0x20200000), CONST64(0x20200020,0x20200000), CONST64(0x20200000,0x20200020), CONST64(0x20200020,0x20200020),
00754   CONST64(0x20202000,0x20200000), CONST64(0x20202020,0x20200000), CONST64(0x20202000,0x20200020), CONST64(0x20202020,0x20200020),
00755   CONST64(0x20200000,0x20202000), CONST64(0x20200020,0x20202000), CONST64(0x20200000,0x20202020), CONST64(0x20200020,0x20202020),
00756   CONST64(0x20202000,0x20202000), CONST64(0x20202020,0x20202000), CONST64(0x20202000,0x20202020), CONST64(0x20202020,0x20202020)
00757   }};
00758 
00759 static const ulong64 des_fp[8][256] = {
00760 
00761 { CONST64(0x00000000,0x00000000), CONST64(0x00000080,0x00000000), CONST64(0x00000000,0x02000000), CONST64(0x00000080,0x02000000),
00762   CONST64(0x00000000,0x00020000), CONST64(0x00000080,0x00020000), CONST64(0x00000000,0x02020000), CONST64(0x00000080,0x02020000),
00763   CONST64(0x00000000,0x00000200), CONST64(0x00000080,0x00000200), CONST64(0x00000000,0x02000200), CONST64(0x00000080,0x02000200),
00764   CONST64(0x00000000,0x00020200), CONST64(0x00000080,0x00020200), CONST64(0x00000000,0x02020200), CONST64(0x00000080,0x02020200),
00765   CONST64(0x00000000,0x00000002), CONST64(0x00000080,0x00000002), CONST64(0x00000000,0x02000002), CONST64(0x00000080,0x02000002),
00766   CONST64(0x00000000,0x00020002), CONST64(0x00000080,0x00020002), CONST64(0x00000000,0x02020002), CONST64(0x00000080,0x02020002),
00767   CONST64(0x00000000,0x00000202), CONST64(0x00000080,0x00000202), CONST64(0x00000000,0x02000202), CONST64(0x00000080,0x02000202),
00768   CONST64(0x00000000,0x00020202), CONST64(0x00000080,0x00020202), CONST64(0x00000000,0x02020202), CONST64(0x00000080,0x02020202),
00769   CONST64(0x02000000,0x00000000), CONST64(0x02000080,0x00000000), CONST64(0x02000000,0x02000000), CONST64(0x02000080,0x02000000),
00770   CONST64(0x02000000,0x00020000), CONST64(0x02000080,0x00020000), CONST64(0x02000000,0x02020000), CONST64(0x02000080,0x02020000),
00771   CONST64(0x02000000,0x00000200), CONST64(0x02000080,0x00000200), CONST64(0x02000000,0x02000200), CONST64(0x02000080,0x02000200),
00772   CONST64(0x02000000,0x00020200), CONST64(0x02000080,0x00020200), CONST64(0x02000000,0x02020200), CONST64(0x02000080,0x02020200),
00773   CONST64(0x02000000,0x00000002), CONST64(0x02000080,0x00000002), CONST64(0x02000000,0x02000002), CONST64(0x02000080,0x02000002),
00774   CONST64(0x02000000,0x00020002), CONST64(0x02000080,0x00020002), CONST64(0x02000000,0x02020002), CONST64(0x02000080,0x02020002),
00775   CONST64(0x02000000,0x00000202), CONST64(0x02000080,0x00000202), CONST64(0x02000000,0x02000202), CONST64(0x02000080,0x02000202),
00776   CONST64(0x02000000,0x00020202), CONST64(0x02000080,0x00020202), CONST64(0x02000000,0x02020202), CONST64(0x02000080,0x02020202),
00777   CONST64(0x00020000,0x00000000), CONST64(0x00020080,0x00000000), CONST64(0x00020000,0x02000000), CONST64(0x00020080,0x02000000),
00778   CONST64(0x00020000,0x00020000), CONST64(0x00020080,0x00020000), CONST64(0x00020000,0x02020000), CONST64(0x00020080,0x02020000),
00779   CONST64(0x00020000,0x00000200), CONST64(0x00020080,0x00000200), CONST64(0x00020000,0x02000200), CONST64(0x00020080,0x02000200),
00780   CONST64(0x00020000,0x00020200), CONST64(0x00020080,0x00020200), CONST64(0x00020000,0x02020200), CONST64(0x00020080,0x02020200),
00781   CONST64(0x00020000,0x00000002), CONST64(0x00020080,0x00000002), CONST64(0x00020000,0x02000002), CONST64(0x00020080,0x02000002),
00782   CONST64(0x00020000,0x00020002), CONST64(0x00020080,0x00020002), CONST64(0x00020000,0x02020002), CONST64(0x00020080,0x02020002),
00783   CONST64(0x00020000,0x00000202), CONST64(0x00020080,0x00000202), CONST64(0x00020000,0x02000202), CONST64(0x00020080,0x02000202),
00784   CONST64(0x00020000,0x00020202), CONST64(0x00020080,0x00020202), CONST64(0x00020000,0x02020202), CONST64(0x00020080,0x02020202),
00785   CONST64(0x02020000,0x00000000), CONST64(0x02020080,0x00000000), CONST64(0x02020000,0x02000000), CONST64(0x02020080,0x02000000),
00786   CONST64(0x02020000,0x00020000), CONST64(0x02020080,0x00020000), CONST64(0x02020000,0x02020000), CONST64(0x02020080,0x02020000),
00787   CONST64(0x02020000,0x00000200), CONST64(0x02020080,0x00000200), CONST64(0x02020000,0x02000200), CONST64(0x02020080,0x02000200),
00788   CONST64(0x02020000,0x00020200), CONST64(0x02020080,0x00020200), CONST64(0x02020000,0x02020200), CONST64(0x02020080,0x02020200),
00789   CONST64(0x02020000,0x00000002), CONST64(0x02020080,0x00000002), CONST64(0x02020000,0x02000002), CONST64(0x02020080,0x02000002),
00790   CONST64(0x02020000,0x00020002), CONST64(0x02020080,0x00020002), CONST64(0x02020000,0x02020002), CONST64(0x02020080,0x02020002),
00791   CONST64(0x02020000,0x00000202), CONST64(0x02020080,0x00000202), CONST64(0x02020000,0x02000202), CONST64(0x02020080,0x02000202),
00792   CONST64(0x02020000,0x00020202), CONST64(0x02020080,0x00020202), CONST64(0x02020000,0x02020202), CONST64(0x02020080,0x02020202),
00793   CONST64(0x00000200,0x00000000), CONST64(0x00000280,0x00000000), CONST64(0x00000200,0x02000000), CONST64(0x00000280,0x02000000),
00794   CONST64(0x00000200,0x00020000), CONST64(0x00000280,0x00020000), CONST64(0x00000200,0x02020000), CONST64(0x00000280,0x02020000),
00795   CONST64(0x00000200,0x00000200), CONST64(0x00000280,0x00000200), CONST64(0x00000200,0x02000200), CONST64(0x00000280,0x02000200),
00796   CONST64(0x00000200,0x00020200), CONST64(0x00000280,0x00020200), CONST64(0x00000200,0x02020200), CONST64(0x00000280,0x02020200),
00797   CONST64(0x00000200,0x00000002), CONST64(0x00000280,0x00000002), CONST64(0x00000200,0x02000002), CONST64(0x00000280,0x02000002),
00798   CONST64(0x00000200,0x00020002), CONST64(0x00000280,0x00020002), CONST64(0x00000200,0x02020002), CONST64(0x00000280,0x02020002),
00799   CONST64(0x00000200,0x00000202), CONST64(0x00000280,0x00000202), CONST64(0x00000200,0x02000202), CONST64(0x00000280,0x02000202),
00800   CONST64(0x00000200,0x00020202), CONST64(0x00000280,0x00020202), CONST64(0x00000200,0x02020202), CONST64(0x00000280,0x02020202),
00801   CONST64(0x02000200,0x00000000), CONST64(0x02000280,0x00000000), CONST64(0x02000200,0x02000000), CONST64(0x02000280,0x02000000),
00802   CONST64(0x02000200,0x00020000), CONST64(0x02000280,0x00020000), CONST64(0x02000200,0x02020000), CONST64(0x02000280,0x02020000),
00803   CONST64(0x02000200,0x00000200), CONST64(0x02000280,0x00000200), CONST64(0x02000200,0x02000200), CONST64(0x02000280,0x02000200),
00804   CONST64(0x02000200,0x00020200), CONST64(0x02000280,0x00020200), CONST64(0x02000200,0x02020200), CONST64(0x02000280,0x02020200),
00805   CONST64(0x02000200,0x00000002), CONST64(0x02000280,0x00000002), CONST64(0x02000200,0x02000002), CONST64(0x02000280,0x02000002),
00806   CONST64(0x02000200,0x00020002), CONST64(0x02000280,0x00020002), CONST64(0x02000200,0x02020002), CONST64(0x02000280,0x02020002),
00807   CONST64(0x02000200,0x00000202), CONST64(0x02000280,0x00000202), CONST64(0x02000200,0x02000202), CONST64(0x02000280,0x02000202),
00808   CONST64(0x02000200,0x00020202), CONST64(0x02000280,0x00020202), CONST64(0x02000200,0x02020202), CONST64(0x02000280,0x02020202),
00809   CONST64(0x00020200,0x00000000), CONST64(0x00020280,0x00000000), CONST64(0x00020200,0x02000000), CONST64(0x00020280,0x02000000),
00810   CONST64(0x00020200,0x00020000), CONST64(0x00020280,0x00020000), CONST64(0x00020200,0x02020000), CONST64(0x00020280,0x02020000),
00811   CONST64(0x00020200,0x00000200), CONST64(0x00020280,0x00000200), CONST64(0x00020200,0x02000200), CONST64(0x00020280,0x02000200),
00812   CONST64(0x00020200,0x00020200), CONST64(0x00020280,0x00020200), CONST64(0x00020200,0x02020200), CONST64(0x00020280,0x02020200),
00813   CONST64(0x00020200,0x00000002), CONST64(0x00020280,0x00000002), CONST64(0x00020200,0x02000002), CONST64(0x00020280,0x02000002),
00814   CONST64(0x00020200,0x00020002), CONST64(0x00020280,0x00020002), CONST64(0x00020200,0x02020002), CONST64(0x00020280,0x02020002),
00815   CONST64(0x00020200,0x00000202), CONST64(0x00020280,0x00000202), CONST64(0x00020200,0x02000202), CONST64(0x00020280,0x02000202),
00816   CONST64(0x00020200,0x00020202), CONST64(0x00020280,0x00020202), CONST64(0x00020200,0x02020202), CONST64(0x00020280,0x02020202),
00817   CONST64(0x02020200,0x00000000), CONST64(0x02020280,0x00000000), CONST64(0x02020200,0x02000000), CONST64(0x02020280,0x02000000),
00818   CONST64(0x02020200,0x00020000), CONST64(0x02020280,0x00020000), CONST64(0x02020200,0x02020000), CONST64(0x02020280,0x02020000),
00819   CONST64(0x02020200,0x00000200), CONST64(0x02020280,0x00000200), CONST64(0x02020200,0x02000200), CONST64(0x02020280,0x02000200),
00820   CONST64(0x02020200,0x00020200), CONST64(0x02020280,0x00020200), CONST64(0x02020200,0x02020200), CONST64(0x02020280,0x02020200),
00821   CONST64(0x02020200,0x00000002), CONST64(0x02020280,0x00000002), CONST64(0x02020200,0x02000002), CONST64(0x02020280,0x02000002),
00822   CONST64(0x02020200,0x00020002), CONST64(0x02020280,0x00020002), CONST64(0x02020200,0x02020002), CONST64(0x02020280,0x02020002),
00823   CONST64(0x02020200,0x00000202), CONST64(0x02020280,0x00000202), CONST64(0x02020200,0x02000202), CONST64(0x02020280,0x02000202),
00824   CONST64(0x02020200,0x00020202), CONST64(0x02020280,0x00020202), CONST64(0x02020200,0x02020202), CONST64(0x02020280,0x02020202)
00825   },
00826 { CONST64(0x00000000,0x00000000), CONST64(0x00000002,0x00000000), CONST64(0x00000000,0x08000000), CONST64(0x00000002,0x08000000),
00827   CONST64(0x00000000,0x00080000), CONST64(0x00000002,0x00080000), CONST64(0x00000000,0x08080000), CONST64(0x00000002,0x08080000),
00828   CONST64(0x00000000,0x00000800), CONST64(0x00000002,0x00000800), CONST64(0x00000000,0x08000800), CONST64(0x00000002,0x08000800),
00829   CONST64(0x00000000,0x00080800), CONST64(0x00000002,0x00080800), CONST64(0x00000000,0x08080800), CONST64(0x00000002,0x08080800),
00830   CONST64(0x00000000,0x00000008), CONST64(0x00000002,0x00000008), CONST64(0x00000000,0x08000008), CONST64(0x00000002,0x08000008),
00831   CONST64(0x00000000,0x00080008), CONST64(0x00000002,0x00080008), CONST64(0x00000000,0x08080008), CONST64(0x00000002,0x08080008),
00832   CONST64(0x00000000,0x00000808), CONST64(0x00000002,0x00000808), CONST64(0x00000000,0x08000808), CONST64(0x00000002,0x08000808),
00833   CONST64(0x00000000,0x00080808), CONST64(0x00000002,0x00080808), CONST64(0x00000000,0x08080808), CONST64(0x00000002,0x08080808),
00834   CONST64(0x08000000,0x00000000), CONST64(0x08000002,0x00000000), CONST64(0x08000000,0x08000000), CONST64(0x08000002,0x08000000),
00835   CONST64(0x08000000,0x00080000), CONST64(0x08000002,0x00080000), CONST64(0x08000000,0x08080000), CONST64(0x08000002,0x08080000),
00836   CONST64(0x08000000,0x00000800), CONST64(0x08000002,0x00000800), CONST64(0x08000000,0x08000800), CONST64(0x08000002,0x08000800),
00837   CONST64(0x08000000,0x00080800), CONST64(0x08000002,0x00080800), CONST64(0x08000000,0x08080800), CONST64(0x08000002,0x08080800),
00838   CONST64(0x08000000,0x00000008), CONST64(0x08000002,0x00000008), CONST64(0x08000000,0x08000008), CONST64(0x08000002,0x08000008),
00839   CONST64(0x08000000,0x00080008), CONST64(0x08000002,0x00080008), CONST64(0x08000000,0x08080008), CONST64(0x08000002,0x08080008),
00840   CONST64(0x08000000,0x00000808), CONST64(0x08000002,0x00000808), CONST64(0x08000000,0x08000808), CONST64(0x08000002,0x08000808),
00841   CONST64(0x08000000,0x00080808), CONST64(0x08000002,0x00080808), CONST64(0x08000000,0x08080808), CONST64(0x08000002,0x08080808),
00842   CONST64(0x00080000,0x00000000), CONST64(0x00080002,0x00000000), CONST64(0x00080000,0x08000000), CONST64(0x00080002,0x08000000),
00843   CONST64(0x00080000,0x00080000), CONST64(0x00080002,0x00080000), CONST64(0x00080000,0x08080000), CONST64(0x00080002,0x08080000),
00844   CONST64(0x00080000,0x00000800), CONST64(0x00080002,0x00000800), CONST64(0x00080000,0x08000800), CONST64(0x00080002,0x08000800),
00845   CONST64(0x00080000,0x00080800), CONST64(0x00080002,0x00080800), CONST64(0x00080000,0x08080800), CONST64(0x00080002,0x08080800),
00846   CONST64(0x00080000,0x00000008), CONST64(0x00080002,0x00000008), CONST64(0x00080000,0x08000008), CONST64(0x00080002,0x08000008),
00847   CONST64(0x00080000,0x00080008), CONST64(0x00080002,0x00080008), CONST64(0x00080000,0x08080008), CONST64(0x00080002,0x08080008),
00848   CONST64(0x00080000,0x00000808), CONST64(0x00080002,0x00000808), CONST64(0x00080000,0x08000808), CONST64(0x00080002,0x08000808),
00849   CONST64(0x00080000,0x00080808), CONST64(0x00080002,0x00080808), CONST64(0x00080000,0x08080808), CONST64(0x00080002,0x08080808),
00850   CONST64(0x08080000,0x00000000), CONST64(0x08080002,0x00000000), CONST64(0x08080000,0x08000000), CONST64(0x08080002,0x08000000),
00851   CONST64(0x08080000,0x00080000), CONST64(0x08080002,0x00080000), CONST64(0x08080000,0x08080000), CONST64(0x08080002,0x08080000),
00852   CONST64(0x08080000,0x00000800), CONST64(0x08080002,0x00000800), CONST64(0x08080000,0x08000800), CONST64(0x08080002,0x08000800),
00853   CONST64(0x08080000,0x00080800), CONST64(0x08080002,0x00080800), CONST64(0x08080000,0x08080800), CONST64(0x08080002,0x08080800),
00854   CONST64(0x08080000,0x00000008), CONST64(0x08080002,0x00000008), CONST64(0x08080000,0x08000008), CONST64(0x08080002,0x08000008),
00855   CONST64(0x08080000,0x00080008), CONST64(0x08080002,0x00080008), CONST64(0x08080000,0x08080008), CONST64(0x08080002,0x08080008),
00856   CONST64(0x08080000,0x00000808), CONST64(0x08080002,0x00000808), CONST64(0x08080000,0x08000808), CONST64(0x08080002,0x08000808),
00857   CONST64(0x08080000,0x00080808), CONST64(0x08080002,0x00080808), CONST64(0x08080000,0x08080808), CONST64(0x08080002,0x08080808),
00858   CONST64(0x00000800,0x00000000), CONST64(0x00000802,0x00000000), CONST64(0x00000800,0x08000000), CONST64(0x00000802,0x08000000),
00859   CONST64(0x00000800,0x00080000), CONST64(0x00000802,0x00080000), CONST64(0x00000800,0x08080000), CONST64(0x00000802,0x08080000),
00860   CONST64(0x00000800,0x00000800), CONST64(0x00000802,0x00000800), CONST64(0x00000800,0x08000800), CONST64(0x00000802,0x08000800),
00861   CONST64(0x00000800,0x00080800), CONST64(0x00000802,0x00080800), CONST64(0x00000800,0x08080800), CONST64(0x00000802,0x08080800),
00862   CONST64(0x00000800,0x00000008), CONST64(0x00000802,0x00000008), CONST64(0x00000800,0x08000008), CONST64(0x00000802,0x08000008),
00863   CONST64(0x00000800,0x00080008), CONST64(0x00000802,0x00080008), CONST64(0x00000800,0x08080008), CONST64(0x00000802,0x08080008),
00864   CONST64(0x00000800,0x00000808), CONST64(0x00000802,0x00000808), CONST64(0x00000800,0x08000808), CONST64(0x00000802,0x08000808),
00865   CONST64(0x00000800,0x00080808), CONST64(0x00000802,0x00080808), CONST64(0x00000800,0x08080808), CONST64(0x00000802,0x08080808),
00866   CONST64(0x08000800,0x00000000), CONST64(0x08000802,0x00000000), CONST64(0x08000800,0x08000000), CONST64(0x08000802,0x08000000),
00867   CONST64(0x08000800,0x00080000), CONST64(0x08000802,0x00080000), CONST64(0x08000800,0x08080000), CONST64(0x08000802,0x08080000),
00868   CONST64(0x08000800,0x00000800), CONST64(0x08000802,0x00000800), CONST64(0x08000800,0x08000800), CONST64(0x08000802,0x08000800),
00869   CONST64(0x08000800,0x00080800), CONST64(0x08000802,0x00080800), CONST64(0x08000800,0x08080800), CONST64(0x08000802,0x08080800),
00870   CONST64(0x08000800,0x00000008), CONST64(0x08000802,0x00000008), CONST64(0x08000800,0x08000008), CONST64(0x08000802,0x08000008),
00871   CONST64(0x08000800,0x00080008), CONST64(0x08000802,0x00080008), CONST64(0x08000800,0x08080008), CONST64(0x08000802,0x08080008),
00872   CONST64(0x08000800,0x00000808), CONST64(0x08000802,0x00000808), CONST64(0x08000800,0x08000808), CONST64(0x08000802,0x08000808),
00873   CONST64(0x08000800,0x00080808), CONST64(0x08000802,0x00080808), CONST64(0x08000800,0x08080808), CONST64(0x08000802,0x08080808),
00874   CONST64(0x00080800,0x00000000), CONST64(0x00080802,0x00000000), CONST64(0x00080800,0x08000000), CONST64(0x00080802,0x08000000),
00875   CONST64(0x00080800,0x00080000), CONST64(0x00080802,0x00080000), CONST64(0x00080800,0x08080000), CONST64(0x00080802,0x08080000),
00876   CONST64(0x00080800,0x00000800), CONST64(0x00080802,0x00000800), CONST64(0x00080800,0x08000800), CONST64(0x00080802,0x08000800),
00877   CONST64(0x00080800,0x00080800), CONST64(0x00080802,0x00080800), CONST64(0x00080800,0x08080800), CONST64(0x00080802,0x08080800),
00878   CONST64(0x00080800,0x00000008), CONST64(0x00080802,0x00000008), CONST64(0x00080800,0x08000008), CONST64(0x00080802,0x08000008),
00879   CONST64(0x00080800,0x00080008), CONST64(0x00080802,0x00080008), CONST64(0x00080800,0x08080008), CONST64(0x00080802,0x08080008),
00880   CONST64(0x00080800,0x00000808), CONST64(0x00080802,0x00000808), CONST64(0x00080800,0x08000808), CONST64(0x00080802,0x08000808),
00881   CONST64(0x00080800,0x00080808), CONST64(0x00080802,0x00080808), CONST64(0x00080800,0x08080808), CONST64(0x00080802,0x08080808),
00882   CONST64(0x08080800,0x00000000), CONST64(0x08080802,0x00000000), CONST64(0x08080800,0x08000000), CONST64(0x08080802,0x08000000),
00883   CONST64(0x08080800,0x00080000), CONST64(0x08080802,0x00080000), CONST64(0x08080800,0x08080000), CONST64(0x08080802,0x08080000),
00884   CONST64(0x08080800,0x00000800), CONST64(0x08080802,0x00000800), CONST64(0x08080800,0x08000800), CONST64(0x08080802,0x08000800),
00885   CONST64(0x08080800,0x00080800), CONST64(0x08080802,0x00080800), CONST64(0x08080800,0x08080800), CONST64(0x08080802,0x08080800),
00886   CONST64(0x08080800,0x00000008), CONST64(0x08080802,0x00000008), CONST64(0x08080800,0x08000008), CONST64(0x08080802,0x08000008),
00887   CONST64(0x08080800,0x00080008), CONST64(0x08080802,0x00080008), CONST64(0x08080800,0x08080008), CONST64(0x08080802,0x08080008),
00888   CONST64(0x08080800,0x00000808), CONST64(0x08080802,0x00000808), CONST64(0x08080800,0x08000808), CONST64(0x08080802,0x08000808),
00889   CONST64(0x08080800,0x00080808), CONST64(0x08080802,0x00080808), CONST64(0x08080800,0x08080808), CONST64(0x08080802,0x08080808)
00890   },
00891 { CONST64(0x00000000,0x00000000), CONST64(0x00000008,0x00000000), CONST64(0x00000000,0x20000000), CONST64(0x00000008,0x20000000),
00892   CONST64(0x00000000,0x00200000), CONST64(0x00000008,0x00200000), CONST64(0x00000000,0x20200000), CONST64(0x00000008,0x20200000),
00893   CONST64(0x00000000,0x00002000), CONST64(0x00000008,0x00002000), CONST64(0x00000000,0x20002000), CONST64(0x00000008,0x20002000),
00894   CONST64(0x00000000,0x00202000), CONST64(0x00000008,0x00202000), CONST64(0x00000000,0x20202000), CONST64(0x00000008,0x20202000),
00895   CONST64(0x00000000,0x00000020), CONST64(0x00000008,0x00000020), CONST64(0x00000000,0x20000020), CONST64(0x00000008,0x20000020),
00896   CONST64(0x00000000,0x00200020), CONST64(0x00000008,0x00200020), CONST64(0x00000000,0x20200020), CONST64(0x00000008,0x20200020),
00897   CONST64(0x00000000,0x00002020), CONST64(0x00000008,0x00002020), CONST64(0x00000000,0x20002020), CONST64(0x00000008,0x20002020),
00898   CONST64(0x00000000,0x00202020), CONST64(0x00000008,0x00202020), CONST64(0x00000000,0x20202020), CONST64(0x00000008,0x20202020),
00899   CONST64(0x20000000,0x00000000), CONST64(0x20000008,0x00000000), CONST64(0x20000000,0x20000000), CONST64(0x20000008,0x20000000),
00900   CONST64(0x20000000,0x00200000), CONST64(0x20000008,0x00200000), CONST64(0x20000000,0x20200000), CONST64(0x20000008,0x20200000),
00901   CONST64(0x20000000,0x00002000), CONST64(0x20000008,0x00002000), CONST64(0x20000000,0x20002000), CONST64(0x20000008,0x20002000),
00902   CONST64(0x20000000,0x00202000), CONST64(0x20000008,0x00202000), CONST64(0x20000000,0x20202000), CONST64(0x20000008,0x20202000),
00903   CONST64(0x20000000,0x00000020), CONST64(0x20000008,0x00000020), CONST64(0x20000000,0x20000020), CONST64(0x20000008,0x20000020),
00904   CONST64(0x20000000,0x00200020), CONST64(0x20000008,0x00200020), CONST64(0x20000000,0x20200020), CONST64(0x20000008,0x20200020),
00905   CONST64(0x20000000,0x00002020), CONST64(0x20000008,0x00002020), CONST64(0x20000000,0x20002020), CONST64(0x20000008,0x20002020),
00906   CONST64(0x20000000,0x00202020), CONST64(0x20000008,0x00202020), CONST64(0x20000000,0x20202020), CONST64(0x20000008,0x20202020),
00907   CONST64(0x00200000,0x00000000), CONST64(0x00200008,0x00000000), CONST64(0x00200000,0x20000000), CONST64(0x00200008,0x20000000),
00908   CONST64(0x00200000,0x00200000), CONST64(0x00200008,0x00200000), CONST64(0x00200000,0x20200000), CONST64(0x00200008,0x20200000),
00909   CONST64(0x00200000,0x00002000), CONST64(0x00200008,0x00002000), CONST64(0x00200000,0x20002000), CONST64(0x00200008,0x20002000),
00910   CONST64(0x00200000,0x00202000), CONST64(0x00200008,0x00202000), CONST64(0x00200000,0x20202000), CONST64(0x00200008,0x20202000),
00911   CONST64(0x00200000,0x00000020), CONST64(0x00200008,0x00000020), CONST64(0x00200000,0x20000020), CONST64(0x00200008,0x20000020),
00912   CONST64(0x00200000,0x00200020), CONST64(0x00200008,0x00200020), CONST64(0x00200000,0x20200020), CONST64(0x00200008,0x20200020),
00913   CONST64(0x00200000,0x00002020), CONST64(0x00200008,0x00002020), CONST64(0x00200000,0x20002020), CONST64(0x00200008,0x20002020),
00914   CONST64(0x00200000,0x00202020), CONST64(0x00200008,0x00202020), CONST64(0x00200000,0x20202020), CONST64(0x00200008,0x20202020),
00915   CONST64(0x20200000,0x00000000), CONST64(0x20200008,0x00000000), CONST64(0x20200000,0x20000000), CONST64(0x20200008,0x20000000),
00916   CONST64(0x20200000,0x00200000), CONST64(0x20200008,0x00200000), CONST64(0x20200000,0x20200000), CONST64(0x20200008,0x20200000),
00917   CONST64(0x20200000,0x00002000), CONST64(0x20200008,0x00002000), CONST64(0x20200000,0x20002000), CONST64(0x20200008,0x20002000),
00918   CONST64(0x20200000,0x00202000), CONST64(0x20200008,0x00202000), CONST64(0x20200000,0x20202000), CONST64(0x20200008,0x20202000),
00919   CONST64(0x20200000,0x00000020), CONST64(0x20200008,0x00000020), CONST64(0x20200000,0x20000020), CONST64(0x20200008,0x20000020),
00920   CONST64(0x20200000,0x00200020), CONST64(0x20200008,0x00200020), CONST64(0x20200000,0x20200020), CONST64(0x20200008,0x20200020),
00921   CONST64(0x20200000,0x00002020), CONST64(0x20200008,0x00002020), CONST64(0x20200000,0x20002020), CONST64(0x20200008,0x20002020),
00922   CONST64(0x20200000,0x00202020), CONST64(0x20200008,0x00202020), CONST64(0x20200000,0x20202020), CONST64(0x20200008,0x20202020),
00923   CONST64(0x00002000,0x00000000), CONST64(0x00002008,0x00000000), CONST64(0x00002000,0x20000000), CONST64(0x00002008,0x20000000),
00924   CONST64(0x00002000,0x00200000), CONST64(0x00002008,0x00200000), CONST64(0x00002000,0x20200000), CONST64(0x00002008,0x20200000),
00925   CONST64(0x00002000,0x00002000), CONST64(0x00002008,0x00002000), CONST64(0x00002000,0x20002000), CONST64(0x00002008,0x20002000),
00926   CONST64(0x00002000,0x00202000), CONST64(0x00002008,0x00202000), CONST64(0x00002000,0x20202000), CONST64(0x00002008,0x20202000),
00927   CONST64(0x00002000,0x00000020), CONST64(0x00002008,0x00000020), CONST64(0x00002000,0x20000020), CONST64(0x00002008,0x20000020),
00928   CONST64(0x00002000,0x00200020), CONST64(0x00002008,0x00200020), CONST64(0x00002000,0x20200020), CONST64(0x00002008,0x20200020),
00929   CONST64(0x00002000,0x00002020), CONST64(0x00002008,0x00002020), CONST64(0x00002000,0x20002020), CONST64(0x00002008,0x20002020),
00930   CONST64(0x00002000,0x00202020), CONST64(0x00002008,0x00202020), CONST64(0x00002000,0x20202020), CONST64(0x00002008,0x20202020),
00931   CONST64(0x20002000,0x00000000), CONST64(0x20002008,0x00000000), CONST64(0x20002000,0x20000000), CONST64(0x20002008,0x20000000),
00932   CONST64(0x20002000,0x00200000), CONST64(0x20002008,0x00200000), CONST64(0x20002000,0x20200000), CONST64(0x20002008,0x20200000),
00933   CONST64(0x20002000,0x00002000), CONST64(0x20002008,0x00002000), CONST64(0x20002000,0x20002000), CONST64(0x20002008,0x20002000),
00934   CONST64(0x20002000,0x00202000), CONST64(0x20002008,0x00202000), CONST64(0x20002000,0x20202000), CONST64(0x20002008,0x20202000),
00935   CONST64(0x20002000,0x00000020), CONST64(0x20002008,0x00000020), CONST64(0x20002000,0x20000020), CONST64(0x20002008,0x20000020),
00936   CONST64(0x20002000,0x00200020), CONST64(0x20002008,0x00200020), CONST64(0x20002000,0x20200020), CONST64(0x20002008,0x20200020),
00937   CONST64(0x20002000,0x00002020), CONST64(0x20002008,0x00002020), CONST64(0x20002000,0x20002020), CONST64(0x20002008,0x20002020),
00938   CONST64(0x20002000,0x00202020), CONST64(0x20002008,0x00202020), CONST64(0x20002000,0x20202020), CONST64(0x20002008,0x20202020),
00939   CONST64(0x00202000,0x00000000), CONST64(0x00202008,0x00000000), CONST64(0x00202000,0x20000000), CONST64(0x00202008,0x20000000),
00940   CONST64(0x00202000,0x00200000), CONST64(0x00202008,0x00200000), CONST64(0x00202000,0x20200000), CONST64(0x00202008,0x20200000),
00941   CONST64(0x00202000,0x00002000), CONST64(0x00202008,0x00002000), CONST64(0x00202000,0x20002000), CONST64(0x00202008,0x20002000),
00942   CONST64(0x00202000,0x00202000), CONST64(0x00202008,0x00202000), CONST64(0x00202000,0x20202000), CONST64(0x00202008,0x20202000),
00943   CONST64(0x00202000,0x00000020), CONST64(0x00202008,0x00000020), CONST64(0x00202000,0x20000020), CONST64(0x00202008,0x20000020),
00944   CONST64(0x00202000,0x00200020), CONST64(0x00202008,0x00200020), CONST64(0x00202000,0x20200020), CONST64(0x00202008,0x20200020),
00945   CONST64(0x00202000,0x00002020), CONST64(0x00202008,0x00002020), CONST64(0x00202000,0x20002020), CONST64(0x00202008,0x20002020),
00946   CONST64(0x00202000,0x00202020), CONST64(0x00202008,0x00202020), CONST64(0x00202000,0x20202020), CONST64(0x00202008,0x20202020),
00947   CONST64(0x20202000,0x00000000), CONST64(0x20202008,0x00000000), CONST64(0x20202000,0x20000000), CONST64(0x20202008,0x20000000),
00948   CONST64(0x20202000,0x00200000), CONST64(0x20202008,0x00200000), CONST64(0x20202000,0x20200000), CONST64(0x20202008,0x20200000),
00949   CONST64(0x20202000,0x00002000), CONST64(0x20202008,0x00002000), CONST64(0x20202000,0x20002000), CONST64(0x20202008,0x20002000),
00950   CONST64(0x20202000,0x00202000), CONST64(0x20202008,0x00202000), CONST64(0x20202000,0x20202000), CONST64(0x20202008,0x20202000),
00951   CONST64(0x20202000,0x00000020), CONST64(0x20202008,0x00000020), CONST64(0x20202000,0x20000020), CONST64(0x20202008,0x20000020),
00952   CONST64(0x20202000,0x00200020), CONST64(0x20202008,0x00200020), CONST64(0x20202000,0x20200020), CONST64(0x20202008,0x20200020),
00953   CONST64(0x20202000,0x00002020), CONST64(0x20202008,0x00002020), CONST64(0x20202000,0x20002020), CONST64(0x20202008,0x20002020),
00954   CONST64(0x20202000,0x00202020), CONST64(0x20202008,0x00202020), CONST64(0x20202000,0x20202020), CONST64(0x20202008,0x20202020)
00955   },
00956 { CONST64(0x00000000,0x00000000), CONST64(0x00000020,0x00000000), CONST64(0x00000000,0x80000000), CONST64(0x00000020,0x80000000),
00957   CONST64(0x00000000,0x00800000), CONST64(0x00000020,0x00800000), CONST64(0x00000000,0x80800000), CONST64(0x00000020,0x80800000),
00958   CONST64(0x00000000,0x00008000), CONST64(0x00000020,0x00008000), CONST64(0x00000000,0x80008000), CONST64(0x00000020,0x80008000),
00959   CONST64(0x00000000,0x00808000), CONST64(0x00000020,0x00808000), CONST64(0x00000000,0x80808000), CONST64(0x00000020,0x80808000),
00960   CONST64(0x00000000,0x00000080), CONST64(0x00000020,0x00000080), CONST64(0x00000000,0x80000080), CONST64(0x00000020,0x80000080),
00961   CONST64(0x00000000,0x00800080), CONST64(0x00000020,0x00800080), CONST64(0x00000000,0x80800080), CONST64(0x00000020,0x80800080),
00962   CONST64(0x00000000,0x00008080), CONST64(0x00000020,0x00008080), CONST64(0x00000000,0x80008080), CONST64(0x00000020,0x80008080),
00963   CONST64(0x00000000,0x00808080), CONST64(0x00000020,0x00808080), CONST64(0x00000000,0x80808080), CONST64(0x00000020,0x80808080),
00964   CONST64(0x80000000,0x00000000), CONST64(0x80000020,0x00000000), CONST64(0x80000000,0x80000000), CONST64(0x80000020,0x80000000),
00965   CONST64(0x80000000,0x00800000), CONST64(0x80000020,0x00800000), CONST64(0x80000000,0x80800000), CONST64(0x80000020,0x80800000),
00966   CONST64(0x80000000,0x00008000), CONST64(0x80000020,0x00008000), CONST64(0x80000000,0x80008000), CONST64(0x80000020,0x80008000),
00967   CONST64(0x80000000,0x00808000), CONST64(0x80000020,0x00808000), CONST64(0x80000000,0x80808000), CONST64(0x80000020,0x80808000),
00968   CONST64(0x80000000,0x00000080), CONST64(0x80000020,0x00000080), CONST64(0x80000000,0x80000080), CONST64(0x80000020,0x80000080),
00969   CONST64(0x80000000,0x00800080), CONST64(0x80000020,0x00800080), CONST64(0x80000000,0x80800080), CONST64(0x80000020,0x80800080),
00970   CONST64(0x80000000,0x00008080), CONST64(0x80000020,0x00008080), CONST64(0x80000000,0x80008080), CONST64(0x80000020,0x80008080),
00971   CONST64(0x80000000,0x00808080), CONST64(0x80000020,0x00808080), CONST64(0x80000000,0x80808080), CONST64(0x80000020,0x80808080),
00972   CONST64(0x00800000,0x00000000), CONST64(0x00800020,0x00000000), CONST64(0x00800000,0x80000000), CONST64(0x00800020,0x80000000),
00973   CONST64(0x00800000,0x00800000), CONST64(0x00800020,0x00800000), CONST64(0x00800000,0x80800000), CONST64(0x00800020,0x80800000),
00974   CONST64(0x00800000,0x00008000), CONST64(0x00800020,0x00008000), CONST64(0x00800000,0x80008000), CONST64(0x00800020,0x80008000),
00975   CONST64(0x00800000,0x00808000), CONST64(0x00800020,0x00808000), CONST64(0x00800000,0x80808000), CONST64(0x00800020,0x80808000),
00976   CONST64(0x00800000,0x00000080), CONST64(0x00800020,0x00000080), CONST64(0x00800000,0x80000080), CONST64(0x00800020,0x80000080),
00977   CONST64(0x00800000,0x00800080), CONST64(0x00800020,0x00800080), CONST64(0x00800000,0x80800080), CONST64(0x00800020,0x80800080),
00978   CONST64(0x00800000,0x00008080), CONST64(0x00800020,0x00008080), CONST64(0x00800000,0x80008080), CONST64(0x00800020,0x80008080),
00979   CONST64(0x00800000,0x00808080), CONST64(0x00800020,0x00808080), CONST64(0x00800000,0x80808080), CONST64(0x00800020,0x80808080),
00980   CONST64(0x80800000,0x00000000), CONST64(0x80800020,0x00000000), CONST64(0x80800000,0x80000000), CONST64(0x80800020,0x80000000),
00981   CONST64(0x80800000,0x00800000), CONST64(0x80800020,0x00800000), CONST64(0x80800000,0x80800000), CONST64(0x80800020,0x80800000),
00982   CONST64(0x80800000,0x00008000), CONST64(0x80800020,0x00008000), CONST64(0x80800000,0x80008000), CONST64(0x80800020,0x80008000),
00983   CONST64(0x80800000,0x00808000), CONST64(0x80800020,0x00808000), CONST64(0x80800000,0x80808000), CONST64(0x80800020,0x80808000),
00984   CONST64(0x80800000,0x00000080), CONST64(0x80800020,0x00000080), CONST64(0x80800000,0x80000080), CONST64(0x80800020,0x80000080),
00985   CONST64(0x80800000,0x00800080), CONST64(0x80800020,0x00800080), CONST64(0x80800000,0x80800080), CONST64(0x80800020,0x80800080),
00986   CONST64(0x80800000,0x00008080), CONST64(0x80800020,0x00008080), CONST64(0x80800000,0x80008080), CONST64(0x80800020,0x80008080),
00987   CONST64(0x80800000,0x00808080), CONST64(0x80800020,0x00808080), CONST64(0x80800000,0x80808080), CONST64(0x80800020,0x80808080),
00988   CONST64(0x00008000,0x00000000), CONST64(0x00008020,0x00000000), CONST64(0x00008000,0x80000000), CONST64(0x00008020,0x80000000),
00989   CONST64(0x00008000,0x00800000), CONST64(0x00008020,0x00800000), CONST64(0x00008000,0x80800000), CONST64(0x00008020,0x80800000),
00990   CONST64(0x00008000,0x00008000), CONST64(0x00008020,0x00008000), CONST64(0x00008000,0x80008000), CONST64(0x00008020,0x80008000),
00991   CONST64(0x00008000,0x00808000), CONST64(0x00008020,0x00808000), CONST64(0x00008000,0x80808000), CONST64(0x00008020,0x80808000),
00992   CONST64(0x00008000,0x00000080), CONST64(0x00008020,0x00000080), CONST64(0x00008000,0x80000080), CONST64(0x00008020,0x80000080),
00993   CONST64(0x00008000,0x00800080), CONST64(0x00008020,0x00800080), CONST64(0x00008000,0x80800080), CONST64(0x00008020,0x80800080),
00994   CONST64(0x00008000,0x00008080), CONST64(0x00008020,0x00008080), CONST64(0x00008000,0x80008080), CONST64(0x00008020,0x80008080),
00995   CONST64(0x00008000,0x00808080), CONST64(0x00008020,0x00808080), CONST64(0x00008000,0x80808080), CONST64(0x00008020,0x80808080),
00996   CONST64(0x80008000,0x00000000), CONST64(0x80008020,0x00000000), CONST64(0x80008000,0x80000000), CONST64(0x80008020,0x80000000),
00997   CONST64(0x80008000,0x00800000), CONST64(0x80008020,0x00800000), CONST64(0x80008000,0x80800000), CONST64(0x80008020,0x80800000),
00998   CONST64(0x80008000,0x00008000), CONST64(0x80008020,0x00008000), CONST64(0x80008000,0x80008000), CONST64(0x80008020,0x80008000),
00999   CONST64(0x80008000,0x00808000), CONST64(0x80008020,0x00808000), CONST64(0x80008000,0x80808000), CONST64(0x80008020,0x80808000),
01000   CONST64(0x80008000,0x00000080), CONST64(0x80008020,0x00000080), CONST64(0x80008000,0x80000080), CONST64(0x80008020,0x80000080),
01001   CONST64(0x80008000,0x00800080), CONST64(0x80008020,0x00800080), CONST64(0x80008000,0x80800080), CONST64(0x80008020,0x80800080),
01002   CONST64(0x80008000,0x00008080), CONST64(0x80008020,0x00008080), CONST64(0x80008000,0x80008080), CONST64(0x80008020,0x80008080),
01003   CONST64(0x80008000,0x00808080), CONST64(0x80008020,0x00808080), CONST64(0x80008000,0x80808080), CONST64(0x80008020,0x80808080),
01004   CONST64(0x00808000,0x00000000), CONST64(0x00808020,0x00000000), CONST64(0x00808000,0x80000000), CONST64(0x00808020,0x80000000),
01005   CONST64(0x00808000,0x00800000), CONST64(0x00808020,0x00800000), CONST64(0x00808000,0x80800000), CONST64(0x00808020,0x80800000),
01006   CONST64(0x00808000,0x00008000), CONST64(0x00808020,0x00008000), CONST64(0x00808000,0x80008000), CONST64(0x00808020,0x80008000),
01007   CONST64(0x00808000,0x00808000), CONST64(0x00808020,0x00808000), CONST64(0x00808000,0x80808000), CONST64(0x00808020,0x80808000),
01008   CONST64(0x00808000,0x00000080), CONST64(0x00808020,0x00000080), CONST64(0x00808000,0x80000080), CONST64(0x00808020,0x80000080),
01009   CONST64(0x00808000,0x00800080), CONST64(0x00808020,0x00800080), CONST64(0x00808000,0x80800080), CONST64(0x00808020,0x80800080),
01010   CONST64(0x00808000,0x00008080), CONST64(0x00808020,0x00008080), CONST64(0x00808000,0x80008080), CONST64(0x00808020,0x80008080),
01011   CONST64(0x00808000,0x00808080), CONST64(0x00808020,0x00808080), CONST64(0x00808000,0x80808080), CONST64(0x00808020,0x80808080),
01012   CONST64(0x80808000,0x00000000), CONST64(0x80808020,0x00000000), CONST64(0x80808000,0x80000000), CONST64(0x80808020,0x80000000),
01013   CONST64(0x80808000,0x00800000), CONST64(0x80808020,0x00800000), CONST64(0x80808000,0x80800000), CONST64(0x80808020,0x80800000),
01014   CONST64(0x80808000,0x00008000), CONST64(0x80808020,0x00008000), CONST64(0x80808000,0x80008000), CONST64(0x80808020,0x80008000),
01015   CONST64(0x80808000,0x00808000), CONST64(0x80808020,0x00808000), CONST64(0x80808000,0x80808000), CONST64(0x80808020,0x80808000),
01016   CONST64(0x80808000,0x00000080), CONST64(0x80808020,0x00000080), CONST64(0x80808000,0x80000080), CONST64(0x80808020,0x80000080),
01017   CONST64(0x80808000,0x00800080), CONST64(0x80808020,0x00800080), CONST64(0x80808000,0x80800080), CONST64(0x80808020,0x80800080),
01018   CONST64(0x80808000,0x00008080), CONST64(0x80808020,0x00008080), CONST64(0x80808000,0x80008080), CONST64(0x80808020,0x80008080),
01019   CONST64(0x80808000,0x00808080), CONST64(0x80808020,0x00808080), CONST64(0x80808000,0x80808080), CONST64(0x80808020,0x80808080)
01020   },
01021 { CONST64(0x00000000,0x00000000), CONST64(0x00000040,0x00000000), CONST64(0x00000000,0x01000000), CONST64(0x00000040,0x01000000),
01022   CONST64(0x00000000,0x00010000), CONST64(0x00000040,0x00010000), CONST64(0x00000000,0x01010000), CONST64(0x00000040,0x01010000),
01023   CONST64(0x00000000,0x00000100), CONST64(0x00000040,0x00000100), CONST64(0x00000000,0x01000100), CONST64(0x00000040,0x01000100),
01024   CONST64(0x00000000,0x00010100), CONST64(0x00000040,0x00010100), CONST64(0x00000000,0x01010100), CONST64(0x00000040,0x01010100),
01025   CONST64(0x00000000,0x00000001), CONST64(0x00000040,0x00000001), CONST64(0x00000000,0x01000001), CONST64(0x00000040,0x01000001),
01026   CONST64(0x00000000,0x00010001), CONST64(0x00000040,0x00010001), CONST64(0x00000000,0x01010001), CONST64(0x00000040,0x01010001),
01027   CONST64(0x00000000,0x00000101), CONST64(0x00000040,0x00000101), CONST64(0x00000000,0x01000101), CONST64(0x00000040,0x01000101),
01028   CONST64(0x00000000,0x00010101), CONST64(0x00000040,0x00010101), CONST64(0x00000000,0x01010101), CONST64(0x00000040,0x01010101),
01029   CONST64(0x01000000,0x00000000), CONST64(0x01000040,0x00000000), CONST64(0x01000000,0x01000000), CONST64(0x01000040,0x01000000),
01030   CONST64(0x01000000,0x00010000), CONST64(0x01000040,0x00010000), CONST64(0x01000000,0x01010000), CONST64(0x01000040,0x01010000),
01031   CONST64(0x01000000,0x00000100), CONST64(0x01000040,0x00000100), CONST64(0x01000000,0x01000100), CONST64(0x01000040,0x01000100),
01032   CONST64(0x01000000,0x00010100), CONST64(0x01000040,0x00010100), CONST64(0x01000000,0x01010100), CONST64(0x01000040,0x01010100),
01033   CONST64(0x01000000,0x00000001), CONST64(0x01000040,0x00000001), CONST64(0x01000000,0x01000001), CONST64(0x01000040,0x01000001),
01034   CONST64(0x01000000,0x00010001), CONST64(0x01000040,0x00010001), CONST64(0x01000000,0x01010001), CONST64(0x01000040,0x01010001),
01035   CONST64(0x01000000,0x00000101), CONST64(0x01000040,0x00000101), CONST64(0x01000000,0x01000101), CONST64(0x01000040,0x01000101),
01036   CONST64(0x01000000,0x00010101), CONST64(0x01000040,0x00010101), CONST64(0x01000000,0x01010101), CONST64(0x01000040,0x01010101),
01037   CONST64(0x00010000,0x00000000), CONST64(0x00010040,0x00000000), CONST64(0x00010000,0x01000000), CONST64(0x00010040,0x01000000),
01038   CONST64(0x00010000,0x00010000), CONST64(0x00010040,0x00010000), CONST64(0x00010000,0x01010000), CONST64(0x00010040,0x01010000),
01039   CONST64(0x00010000,0x00000100), CONST64(0x00010040,0x00000100), CONST64(0x00010000,0x01000100), CONST64(0x00010040,0x01000100),
01040   CONST64(0x00010000,0x00010100), CONST64(0x00010040,0x00010100), CONST64(0x00010000,0x01010100), CONST64(0x00010040,0x01010100),
01041   CONST64(0x00010000,0x00000001), CONST64(0x00010040,0x00000001), CONST64(0x00010000,0x01000001), CONST64(0x00010040,0x01000001),
01042   CONST64(0x00010000,0x00010001), CONST64(0x00010040,0x00010001), CONST64(0x00010000,0x01010001), CONST64(0x00010040,0x01010001),
01043   CONST64(0x00010000,0x00000101), CONST64(0x00010040,0x00000101), CONST64(0x00010000,0x01000101), CONST64(0x00010040,0x01000101),
01044   CONST64(0x00010000,0x00010101), CONST64(0x00010040,0x00010101), CONST64(0x00010000,0x01010101), CONST64(0x00010040,0x01010101),
01045   CONST64(0x01010000,0x00000000), CONST64(0x01010040,0x00000000), CONST64(0x01010000,0x01000000), CONST64(0x01010040,0x01000000),
01046   CONST64(0x01010000,0x00010000), CONST64(0x01010040,0x00010000), CONST64(0x01010000,0x01010000), CONST64(0x01010040,0x01010000),
01047   CONST64(0x01010000,0x00000100), CONST64(0x01010040,0x00000100), CONST64(0x01010000,0x01000100), CONST64(0x01010040,0x01000100),
01048   CONST64(0x01010000,0x00010100), CONST64(0x01010040,0x00010100), CONST64(0x01010000,0x01010100), CONST64(0x01010040,0x01010100),
01049   CONST64(0x01010000,0x00000001), CONST64(0x01010040,0x00000001), CONST64(0x01010000,0x01000001), CONST64(0x01010040,0x01000001),
01050   CONST64(0x01010000,0x00010001), CONST64(0x01010040,0x00010001), CONST64(0x01010000,0x01010001), CONST64(0x01010040,0x01010001),
01051   CONST64(0x01010000,0x00000101), CONST64(0x01010040,0x00000101), CONST64(0x01010000,0x01000101), CONST64(0x01010040,0x01000101),
01052   CONST64(0x01010000,0x00010101), CONST64(0x01010040,0x00010101), CONST64(0x01010000,0x01010101), CONST64(0x01010040,0x01010101),
01053   CONST64(0x00000100,0x00000000), CONST64(0x00000140,0x00000000), CONST64(0x00000100,0x01000000), CONST64(0x00000140,0x01000000),
01054   CONST64(0x00000100,0x00010000), CONST64(0x00000140,0x00010000), CONST64(0x00000100,0x01010000), CONST64(0x00000140,0x01010000),
01055   CONST64(0x00000100,0x00000100), CONST64(0x00000140,0x00000100), CONST64(0x00000100,0x01000100), CONST64(0x00000140,0x01000100),
01056   CONST64(0x00000100,0x00010100), CONST64(0x00000140,0x00010100), CONST64(0x00000100,0x01010100), CONST64(0x00000140,0x01010100),
01057   CONST64(0x00000100,0x00000001), CONST64(0x00000140,0x00000001), CONST64(0x00000100,0x01000001), CONST64(0x00000140,0x01000001),
01058   CONST64(0x00000100,0x00010001), CONST64(0x00000140,0x00010001), CONST64(0x00000100,0x01010001), CONST64(0x00000140,0x01010001),
01059   CONST64(0x00000100,0x00000101), CONST64(0x00000140,0x00000101), CONST64(0x00000100,0x01000101), CONST64(0x00000140,0x01000101),
01060   CONST64(0x00000100,0x00010101), CONST64(0x00000140,0x00010101), CONST64(0x00000100,0x01010101), CONST64(0x00000140,0x01010101),
01061   CONST64(0x01000100,0x00000000), CONST64(0x01000140,0x00000000), CONST64(0x01000100,0x01000000), CONST64(0x01000140,0x01000000),
01062   CONST64(0x01000100,0x00010000), CONST64(0x01000140,0x00010000), CONST64(0x01000100,0x01010000), CONST64(0x01000140,0x01010000),
01063   CONST64(0x01000100,0x00000100), CONST64(0x01000140,0x00000100), CONST64(0x01000100,0x01000100), CONST64(0x01000140,0x01000100),
01064   CONST64(0x01000100,0x00010100), CONST64(0x01000140,0x00010100), CONST64(0x01000100,0x01010100), CONST64(0x01000140,0x01010100),
01065   CONST64(0x01000100,0x00000001), CONST64(0x01000140,0x00000001), CONST64(0x01000100,0x01000001), CONST64(0x01000140,0x01000001),
01066   CONST64(0x01000100,0x00010001), CONST64(0x01000140,0x00010001), CONST64(0x01000100,0x01010001), CONST64(0x01000140,0x01010001),
01067   CONST64(0x01000100,0x00000101), CONST64(0x01000140,0x00000101), CONST64(0x01000100,0x01000101), CONST64(0x01000140,0x01000101),
01068   CONST64(0x01000100,0x00010101), CONST64(0x01000140,0x00010101), CONST64(0x01000100,0x01010101), CONST64(0x01000140,0x01010101),
01069   CONST64(0x00010100,0x00000000), CONST64(0x00010140,0x00000000), CONST64(0x00010100,0x01000000), CONST64(0x00010140,0x01000000),
01070   CONST64(0x00010100,0x00010000), CONST64(0x00010140,0x00010000), CONST64(0x00010100,0x01010000), CONST64(0x00010140,0x01010000),
01071   CONST64(0x00010100,0x00000100), CONST64(0x00010140,0x00000100), CONST64(0x00010100,0x01000100), CONST64(0x00010140,0x01000100),
01072   CONST64(0x00010100,0x00010100), CONST64(0x00010140,0x00010100), CONST64(0x00010100,0x01010100), CONST64(0x00010140,0x01010100),
01073   CONST64(0x00010100,0x00000001), CONST64(0x00010140,0x00000001), CONST64(0x00010100,0x01000001), CONST64(0x00010140,0x01000001),
01074   CONST64(0x00010100,0x00010001), CONST64(0x00010140,0x00010001), CONST64(0x00010100,0x01010001), CONST64(0x00010140,0x01010001),
01075   CONST64(0x00010100,0x00000101), CONST64(0x00010140,0x00000101), CONST64(0x00010100,0x01000101), CONST64(0x00010140,0x01000101),
01076   CONST64(0x00010100,0x00010101), CONST64(0x00010140,0x00010101), CONST64(0x00010100,0x01010101), CONST64(0x00010140,0x01010101),
01077   CONST64(0x01010100,0x00000000), CONST64(0x01010140,0x00000000), CONST64(0x01010100,0x01000000), CONST64(0x01010140,0x01000000),
01078   CONST64(0x01010100,0x00010000), CONST64(0x01010140,0x00010000), CONST64(0x01010100,0x01010000), CONST64(0x01010140,0x01010000),
01079   CONST64(0x01010100,0x00000100), CONST64(0x01010140,0x00000100), CONST64(0x01010100,0x01000100), CONST64(0x01010140,0x01000100),
01080   CONST64(0x01010100,0x00010100), CONST64(0x01010140,0x00010100), CONST64(0x01010100,0x01010100), CONST64(0x01010140,0x01010100),
01081   CONST64(0x01010100,0x00000001), CONST64(0x01010140,0x00000001), CONST64(0x01010100,0x01000001), CONST64(0x01010140,0x01000001),
01082   CONST64(0x01010100,0x00010001), CONST64(0x01010140,0x00010001), CONST64(0x01010100,0x01010001), CONST64(0x01010140,0x01010001),
01083   CONST64(0x01010100,0x00000101), CONST64(0x01010140,0x00000101), CONST64(0x01010100,0x01000101), CONST64(0x01010140,0x01000101),
01084   CONST64(0x01010100,0x00010101), CONST64(0x01010140,0x00010101), CONST64(0x01010100,0x01010101), CONST64(0x01010140,0x01010101)
01085   },
01086 { CONST64(0x00000000,0x00000000), CONST64(0x00000001,0x00000000), CONST64(0x00000000,0x04000000), CONST64(0x00000001,0x04000000),
01087   CONST64(0x00000000,0x00040000), CONST64(0x00000001,0x00040000), CONST64(0x00000000,0x04040000), CONST64(0x00000001,0x04040000),
01088   CONST64(0x00000000,0x00000400), CONST64(0x00000001,0x00000400), CONST64(0x00000000,0x04000400), CONST64(0x00000001,0x04000400),
01089   CONST64(0x00000000,0x00040400), CONST64(0x00000001,0x00040400), CONST64(0x00000000,0x04040400), CONST64(0x00000001,0x04040400),
01090   CONST64(0x00000000,0x00000004), CONST64(0x00000001,0x00000004), CONST64(0x00000000,0x04000004), CONST64(0x00000001,0x04000004),
01091   CONST64(0x00000000,0x00040004), CONST64(0x00000001,0x00040004), CONST64(0x00000000,0x04040004), CONST64(0x00000001,0x04040004),
01092   CONST64(0x00000000,0x00000404), CONST64(0x00000001,0x00000404), CONST64(0x00000000,0x04000404), CONST64(0x00000001,0x04000404),
01093   CONST64(0x00000000,0x00040404), CONST64(0x00000001,0x00040404), CONST64(0x00000000,0x04040404), CONST64(0x00000001,0x04040404),
01094   CONST64(0x04000000,0x00000000), CONST64(0x04000001,0x00000000), CONST64(0x04000000,0x04000000), CONST64(0x04000001,0x04000000),
01095   CONST64(0x04000000,0x00040000), CONST64(0x04000001,0x00040000), CONST64(0x04000000,0x04040000), CONST64(0x04000001,0x04040000),
01096   CONST64(0x04000000,0x00000400), CONST64(0x04000001,0x00000400), CONST64(0x04000000,0x04000400), CONST64(0x04000001,0x04000400),
01097   CONST64(0x04000000,0x00040400), CONST64(0x04000001,0x00040400), CONST64(0x04000000,0x04040400), CONST64(0x04000001,0x04040400),
01098   CONST64(0x04000000,0x00000004), CONST64(0x04000001,0x00000004), CONST64(0x04000000,0x04000004), CONST64(0x04000001,0x04000004),
01099   CONST64(0x04000000,0x00040004), CONST64(0x04000001,0x00040004), CONST64(0x04000000,0x04040004), CONST64(0x04000001,0x04040004),
01100   CONST64(0x04000000,0x00000404), CONST64(0x04000001,0x00000404), CONST64(0x04000000,0x04000404), CONST64(0x04000001,0x04000404),
01101   CONST64(0x04000000,0x00040404), CONST64(0x04000001,0x00040404), CONST64(0x04000000,0x04040404), CONST64(0x04000001,0x04040404),
01102   CONST64(0x00040000,0x00000000), CONST64(0x00040001,0x00000000), CONST64(0x00040000,0x04000000), CONST64(0x00040001,0x04000000),
01103   CONST64(0x00040000,0x00040000), CONST64(0x00040001,0x00040000), CONST64(0x00040000,0x04040000), CONST64(0x00040001,0x04040000),
01104   CONST64(0x00040000,0x00000400), CONST64(0x00040001,0x00000400), CONST64(0x00040000,0x04000400), CONST64(0x00040001,0x04000400),
01105   CONST64(0x00040000,0x00040400), CONST64(0x00040001,0x00040400), CONST64(0x00040000,0x04040400), CONST64(0x00040001,0x04040400),
01106   CONST64(0x00040000,0x00000004), CONST64(0x00040001,0x00000004), CONST64(0x00040000,0x04000004), CONST64(0x00040001,0x04000004),
01107   CONST64(0x00040000,0x00040004), CONST64(0x00040001,0x00040004), CONST64(0x00040000,0x04040004), CONST64(0x00040001,0x04040004),
01108   CONST64(0x00040000,0x00000404), CONST64(0x00040001,0x00000404), CONST64(0x00040000,0x04000404), CONST64(0x00040001,0x04000404),
01109   CONST64(0x00040000,0x00040404), CONST64(0x00040001,0x00040404), CONST64(0x00040000,0x04040404), CONST64(0x00040001,0x04040404),
01110   CONST64(0x04040000,0x00000000), CONST64(0x04040001,0x00000000), CONST64(0x04040000,0x04000000), CONST64(0x04040001,0x04000000),
01111   CONST64(0x04040000,0x00040000), CONST64(0x04040001,0x00040000), CONST64(0x04040000,0x04040000), CONST64(0x04040001,0x04040000),
01112   CONST64(0x04040000,0x00000400), CONST64(0x04040001,0x00000400), CONST64(0x04040000,0x04000400), CONST64(0x04040001,0x04000400),
01113   CONST64(0x04040000,0x00040400), CONST64(0x04040001,0x00040400), CONST64(0x04040000,0x04040400), CONST64(0x04040001,0x04040400),
01114   CONST64(0x04040000,0x00000004), CONST64(0x04040001,0x00000004), CONST64(0x04040000,0x04000004), CONST64(0x04040001,0x04000004),
01115   CONST64(0x04040000,0x00040004), CONST64(0x04040001,0x00040004), CONST64(0x04040000,0x04040004), CONST64(0x04040001,0x04040004),
01116   CONST64(0x04040000,0x00000404), CONST64(0x04040001,0x00000404), CONST64(0x04040000,0x04000404), CONST64(0x04040001,0x04000404),
01117   CONST64(0x04040000,0x00040404), CONST64(0x04040001,0x00040404), CONST64(0x04040000,0x04040404), CONST64(0x04040001,0x04040404),
01118   CONST64(0x00000400,0x00000000), CONST64(0x00000401,0x00000000), CONST64(0x00000400,0x04000000), CONST64(0x00000401,0x04000000),
01119   CONST64(0x00000400,0x00040000), CONST64(0x00000401,0x00040000), CONST64(0x00000400,0x04040000), CONST64(0x00000401,0x04040000),
01120   CONST64(0x00000400,0x00000400), CONST64(0x00000401,0x00000400), CONST64(0x00000400,0x04000400), CONST64(0x00000401,0x04000400),
01121   CONST64(0x00000400,0x00040400), CONST64(0x00000401,0x00040400), CONST64(0x00000400,0x04040400), CONST64(0x00000401,0x04040400),
01122   CONST64(0x00000400,0x00000004), CONST64(0x00000401,0x00000004), CONST64(0x00000400,0x04000004), CONST64(0x00000401,0x04000004),
01123   CONST64(0x00000400,0x00040004), CONST64(0x00000401,0x00040004), CONST64(0x00000400,0x04040004), CONST64(0x00000401,0x04040004),
01124   CONST64(0x00000400,0x00000404), CONST64(0x00000401,0x00000404), CONST64(0x00000400,0x04000404), CONST64(0x00000401,0x04000404),
01125   CONST64(0x00000400,0x00040404), CONST64(0x00000401,0x00040404), CONST64(0x00000400,0x04040404), CONST64(0x00000401,0x04040404),
01126   CONST64(0x04000400,0x00000000), CONST64(0x04000401,0x00000000), CONST64(0x04000400,0x04000000), CONST64(0x04000401,0x04000000),
01127   CONST64(0x04000400,0x00040000), CONST64(0x04000401,0x00040000), CONST64(0x04000400,0x04040000), CONST64(0x04000401,0x04040000),
01128   CONST64(0x04000400,0x00000400), CONST64(0x04000401,0x00000400), CONST64(0x04000400,0x04000400), CONST64(0x04000401,0x04000400),
01129   CONST64(0x04000400,0x00040400), CONST64(0x04000401,0x00040400), CONST64(0x04000400,0x04040400), CONST64(0x04000401,0x04040400),
01130   CONST64(0x04000400,0x00000004), CONST64(0x04000401,0x00000004), CONST64(0x04000400,0x04000004), CONST64(0x04000401,0x04000004),
01131   CONST64(0x04000400,0x00040004), CONST64(0x04000401,0x00040004), CONST64(0x04000400,0x04040004), CONST64(0x04000401,0x04040004),
01132   CONST64(0x04000400,0x00000404), CONST64(0x04000401,0x00000404), CONST64(0x04000400,0x04000404), CONST64(0x04000401,0x04000404),
01133   CONST64(0x04000400,0x00040404), CONST64(0x04000401,0x00040404), CONST64(0x04000400,0x04040404), CONST64(0x04000401,0x04040404),
01134   CONST64(0x00040400,0x00000000), CONST64(0x00040401,0x00000000), CONST64(0x00040400,0x04000000), CONST64(0x00040401,0x04000000),
01135   CONST64(0x00040400,0x00040000), CONST64(0x00040401,0x00040000), CONST64(0x00040400,0x04040000), CONST64(0x00040401,0x04040000),
01136   CONST64(0x00040400,0x00000400), CONST64(0x00040401,0x00000400), CONST64(0x00040400,0x04000400), CONST64(0x00040401,0x04000400),
01137   CONST64(0x00040400,0x00040400), CONST64(0x00040401,0x00040400), CONST64(0x00040400,0x04040400), CONST64(0x00040401,0x04040400),
01138   CONST64(0x00040400,0x00000004), CONST64(0x00040401,0x00000004), CONST64(0x00040400,0x04000004), CONST64(0x00040401,0x04000004),
01139   CONST64(0x00040400,0x00040004), CONST64(0x00040401,0x00040004), CONST64(0x00040400,0x04040004), CONST64(0x00040401,0x04040004),
01140   CONST64(0x00040400,0x00000404), CONST64(0x00040401,0x00000404), CONST64(0x00040400,0x04000404), CONST64(0x00040401,0x04000404),
01141   CONST64(0x00040400,0x00040404), CONST64(0x00040401,0x00040404), CONST64(0x00040400,0x04040404), CONST64(0x00040401,0x04040404),
01142   CONST64(0x04040400,0x00000000), CONST64(0x04040401,0x00000000), CONST64(0x04040400,0x04000000), CONST64(0x04040401,0x04000000),
01143   CONST64(0x04040400,0x00040000), CONST64(0x04040401,0x00040000), CONST64(0x04040400,0x04040000), CONST64(0x04040401,0x04040000),
01144   CONST64(0x04040400,0x00000400), CONST64(0x04040401,0x00000400), CONST64(0x04040400,0x04000400), CONST64(0x04040401,0x04000400),
01145   CONST64(0x04040400,0x00040400), CONST64(0x04040401,0x00040400), CONST64(0x04040400,0x04040400), CONST64(0x04040401,0x04040400),
01146   CONST64(0x04040400,0x00000004), CONST64(0x04040401,0x00000004), CONST64(0x04040400,0x04000004), CONST64(0x04040401,0x04000004),
01147   CONST64(0x04040400,0x00040004), CONST64(0x04040401,0x00040004), CONST64(0x04040400,0x04040004), CONST64(0x04040401,0x04040004),
01148   CONST64(0x04040400,0x00000404), CONST64(0x04040401,0x00000404), CONST64(0x04040400,0x04000404), CONST64(0x04040401,0x04000404),
01149   CONST64(0x04040400,0x00040404), CONST64(0x04040401,0x00040404), CONST64(0x04040400,0x04040404), CONST64(0x04040401,0x04040404)
01150   },
01151 { CONST64(0x00000000,0x00000000), CONST64(0x00000004,0x00000000), CONST64(0x00000000,0x10000000), CONST64(0x00000004,0x10000000),
01152   CONST64(0x00000000,0x00100000), CONST64(0x00000004,0x00100000), CONST64(0x00000000,0x10100000), CONST64(0x00000004,0x10100000),
01153   CONST64(0x00000000,0x00001000), CONST64(0x00000004,0x00001000), CONST64(0x00000000,0x10001000), CONST64(0x00000004,0x10001000),
01154   CONST64(0x00000000,0x00101000), CONST64(0x00000004,0x00101000), CONST64(0x00000000,0x10101000), CONST64(0x00000004,0x10101000),
01155   CONST64(0x00000000,0x00000010), CONST64(0x00000004,0x00000010), CONST64(0x00000000,0x10000010), CONST64(0x00000004,0x10000010),
01156   CONST64(0x00000000,0x00100010), CONST64(0x00000004,0x00100010), CONST64(0x00000000,0x10100010), CONST64(0x00000004,0x10100010),
01157   CONST64(0x00000000,0x00001010), CONST64(0x00000004,0x00001010), CONST64(0x00000000,0x10001010), CONST64(0x00000004,0x10001010),
01158   CONST64(0x00000000,0x00101010), CONST64(0x00000004,0x00101010), CONST64(0x00000000,0x10101010), CONST64(0x00000004,0x10101010),
01159   CONST64(0x10000000,0x00000000), CONST64(0x10000004,0x00000000), CONST64(0x10000000,0x10000000), CONST64(0x10000004,0x10000000),
01160   CONST64(0x10000000,0x00100000), CONST64(0x10000004,0x00100000), CONST64(0x10000000,0x10100000), CONST64(0x10000004,0x10100000),
01161   CONST64(0x10000000,0x00001000), CONST64(0x10000004,0x00001000), CONST64(0x10000000,0x10001000), CONST64(0x10000004,0x10001000),
01162   CONST64(0x10000000,0x00101000), CONST64(0x10000004,0x00101000), CONST64(0x10000000,0x10101000), CONST64(0x10000004,0x10101000),
01163   CONST64(0x10000000,0x00000010), CONST64(0x10000004,0x00000010), CONST64(0x10000000,0x10000010), CONST64(0x10000004,0x10000010),
01164   CONST64(0x10000000,0x00100010), CONST64(0x10000004,0x00100010), CONST64(0x10000000,0x10100010), CONST64(0x10000004,0x10100010),
01165   CONST64(0x10000000,0x00001010), CONST64(0x10000004,0x00001010), CONST64(0x10000000,0x10001010), CONST64(0x10000004,0x10001010),
01166   CONST64(0x10000000,0x00101010), CONST64(0x10000004,0x00101010), CONST64(0x10000000,0x10101010), CONST64(0x10000004,0x10101010),
01167   CONST64(0x00100000,0x00000000), CONST64(0x00100004,0x00000000), CONST64(0x00100000,0x10000000), CONST64(0x00100004,0x10000000),
01168   CONST64(0x00100000,0x00100000), CONST64(0x00100004,0x00100000), CONST64(0x00100000,0x10100000), CONST64(0x00100004,0x10100000),
01169   CONST64(0x00100000,0x00001000), CONST64(0x00100004,0x00001000), CONST64(0x00100000,0x10001000), CONST64(0x00100004,0x10001000),
01170   CONST64(0x00100000,0x00101000), CONST64(0x00100004,0x00101000), CONST64(0x00100000,0x10101000), CONST64(0x00100004,0x10101000),
01171   CONST64(0x00100000,0x00000010), CONST64(0x00100004,0x00000010), CONST64(0x00100000,0x10000010), CONST64(0x00100004,0x10000010),
01172   CONST64(0x00100000,0x00100010), CONST64(0x00100004,0x00100010), CONST64(0x00100000,0x10100010), CONST64(0x00100004,0x10100010),
01173   CONST64(0x00100000,0x00001010), CONST64(0x00100004,0x00001010), CONST64(0x00100000,0x10001010), CONST64(0x00100004,0x10001010),
01174   CONST64(0x00100000,0x00101010), CONST64(0x00100004,0x00101010), CONST64(0x00100000,0x10101010), CONST64(0x00100004,0x10101010),
01175   CONST64(0x10100000,0x00000000), CONST64(0x10100004,0x00000000), CONST64(0x10100000,0x10000000), CONST64(0x10100004,0x10000000),
01176   CONST64(0x10100000,0x00100000), CONST64(0x10100004,0x00100000), CONST64(0x10100000,0x10100000), CONST64(0x10100004,0x10100000),
01177   CONST64(0x10100000,0x00001000), CONST64(0x10100004,0x00001000), CONST64(0x10100000,0x10001000), CONST64(0x10100004,0x10001000),
01178   CONST64(0x10100000,0x00101000), CONST64(0x10100004,0x00101000), CONST64(0x10100000,0x10101000), CONST64(0x10100004,0x10101000),
01179   CONST64(0x10100000,0x00000010), CONST64(0x10100004,0x00000010), CONST64(0x10100000,0x10000010), CONST64(0x10100004,0x10000010),
01180   CONST64(0x10100000,0x00100010), CONST64(0x10100004,0x00100010), CONST64(0x10100000,0x10100010), CONST64(0x10100004,0x10100010),
01181   CONST64(0x10100000,0x00001010), CONST64(0x10100004,0x00001010), CONST64(0x10100000,0x10001010), CONST64(0x10100004,0x10001010),
01182   CONST64(0x10100000,0x00101010), CONST64(0x10100004,0x00101010), CONST64(0x10100000,0x10101010), CONST64(0x10100004,0x10101010),
01183   CONST64(0x00001000,0x00000000), CONST64(0x00001004,0x00000000), CONST64(0x00001000,0x10000000), CONST64(0x00001004,0x10000000),
01184   CONST64(0x00001000,0x00100000), CONST64(0x00001004,0x00100000), CONST64(0x00001000,0x10100000), CONST64(0x00001004,0x10100000),
01185   CONST64(0x00001000,0x00001000), CONST64(0x00001004,0x00001000), CONST64(0x00001000,0x10001000), CONST64(0x00001004,0x10001000),
01186   CONST64(0x00001000,0x00101000), CONST64(0x00001004,0x00101000), CONST64(0x00001000,0x10101000), CONST64(0x00001004,0x10101000),
01187   CONST64(0x00001000,0x00000010), CONST64(0x00001004,0x00000010), CONST64(0x00001000,0x10000010), CONST64(0x00001004,0x10000010),
01188   CONST64(0x00001000,0x00100010), CONST64(0x00001004,0x00100010), CONST64(0x00001000,0x10100010), CONST64(0x00001004,0x10100010),
01189   CONST64(0x00001000,0x00001010), CONST64(0x00001004,0x00001010), CONST64(0x00001000,0x10001010), CONST64(0x00001004,0x10001010),
01190   CONST64(0x00001000,0x00101010), CONST64(0x00001004,0x00101010), CONST64(0x00001000,0x10101010), CONST64(0x00001004,0x10101010),
01191   CONST64(0x10001000,0x00000000), CONST64(0x10001004,0x00000000), CONST64(0x10001000,0x10000000), CONST64(0x10001004,0x10000000),
01192   CONST64(0x10001000,0x00100000), CONST64(0x10001004,0x00100000), CONST64(0x10001000,0x10100000), CONST64(0x10001004,0x10100000),
01193   CONST64(0x10001000,0x00001000), CONST64(0x10001004,0x00001000), CONST64(0x10001000,0x10001000), CONST64(0x10001004,0x10001000),
01194   CONST64(0x10001000,0x00101000), CONST64(0x10001004,0x00101000), CONST64(0x10001000,0x10101000), CONST64(0x10001004,0x10101000),
01195   CONST64(0x10001000,0x00000010), CONST64(0x10001004,0x00000010), CONST64(0x10001000,0x10000010), CONST64(0x10001004,0x10000010),
01196   CONST64(0x10001000,0x00100010), CONST64(0x10001004,0x00100010), CONST64(0x10001000,0x10100010), CONST64(0x10001004,0x10100010),
01197   CONST64(0x10001000,0x00001010), CONST64(0x10001004,0x00001010), CONST64(0x10001000,0x10001010), CONST64(0x10001004,0x10001010),
01198   CONST64(0x10001000,0x00101010), CONST64(0x10001004,0x00101010), CONST64(0x10001000,0x10101010), CONST64(0x10001004,0x10101010),
01199   CONST64(0x00101000,0x00000000), CONST64(0x00101004,0x00000000), CONST64(0x00101000,0x10000000), CONST64(0x00101004,0x10000000),
01200   CONST64(0x00101000,0x00100000), CONST64(0x00101004,0x00100000), CONST64(0x00101000,0x10100000), CONST64(0x00101004,0x10100000),
01201   CONST64(0x00101000,0x00001000), CONST64(0x00101004,0x00001000), CONST64(0x00101000,0x10001000), CONST64(0x00101004,0x10001000),
01202   CONST64(0x00101000,0x00101000), CONST64(0x00101004,0x00101000), CONST64(0x00101000,0x10101000), CONST64(0x00101004,0x10101000),
01203   CONST64(0x00101000,0x00000010), CONST64(0x00101004,0x00000010), CONST64(0x00101000,0x10000010), CONST64(0x00101004,0x10000010),
01204   CONST64(0x00101000,0x00100010), CONST64(0x00101004,0x00100010), CONST64(0x00101000,0x10100010), CONST64(0x00101004,0x10100010),
01205   CONST64(0x00101000,0x00001010), CONST64(0x00101004,0x00001010), CONST64(0x00101000,0x10001010), CONST64(0x00101004,0x10001010),
01206   CONST64(0x00101000,0x00101010), CONST64(0x00101004,0x00101010), CONST64(0x00101000,0x10101010), CONST64(0x00101004,0x10101010),
01207   CONST64(0x10101000,0x00000000), CONST64(0x10101004,0x00000000), CONST64(0x10101000,0x10000000), CONST64(0x10101004,0x10000000),
01208   CONST64(0x10101000,0x00100000), CONST64(0x10101004,0x00100000), CONST64(0x10101000,0x10100000), CONST64(0x10101004,0x10100000),
01209   CONST64(0x10101000,0x00001000), CONST64(0x10101004,0x00001000), CONST64(0x10101000,0x10001000), CONST64(0x10101004,0x10001000),
01210   CONST64(0x10101000,0x00101000), CONST64(0x10101004,0x00101000), CONST64(0x10101000,0x10101000), CONST64(0x10101004,0x10101000),
01211   CONST64(0x10101000,0x00000010), CONST64(0x10101004,0x00000010), CONST64(0x10101000,0x10000010), CONST64(0x10101004,0x10000010),
01212   CONST64(0x10101000,0x00100010), CONST64(0x10101004,0x00100010), CONST64(0x10101000,0x10100010), CONST64(0x10101004,0x10100010),
01213   CONST64(0x10101000,0x00001010), CONST64(0x10101004,0x00001010), CONST64(0x10101000,0x10001010), CONST64(0x10101004,0x10001010),
01214   CONST64(0x10101000,0x00101010), CONST64(0x10101004,0x00101010), CONST64(0x10101000,0x10101010), CONST64(0x10101004,0x10101010)
01215   },
01216 { CONST64(0x00000000,0x00000000), CONST64(0x00000010,0x00000000), CONST64(0x00000000,0x40000000), CONST64(0x00000010,0x40000000),
01217   CONST64(0x00000000,0x00400000), CONST64(0x00000010,0x00400000), CONST64(0x00000000,0x40400000), CONST64(0x00000010,0x40400000),
01218   CONST64(0x00000000,0x00004000), CONST64(0x00000010,0x00004000), CONST64(0x00000000,0x40004000), CONST64(0x00000010,0x40004000),
01219   CONST64(0x00000000,0x00404000), CONST64(0x00000010,0x00404000), CONST64(0x00000000,0x40404000), CONST64(0x00000010,0x40404000),
01220   CONST64(0x00000000,0x00000040), CONST64(0x00000010,0x00000040), CONST64(0x00000000,0x40000040), CONST64(0x00000010,0x40000040),
01221   CONST64(0x00000000,0x00400040), CONST64(0x00000010,0x00400040), CONST64(0x00000000,0x40400040), CONST64(0x00000010,0x40400040),
01222   CONST64(0x00000000,0x00004040), CONST64(0x00000010,0x00004040), CONST64(0x00000000,0x40004040), CONST64(0x00000010,0x40004040),
01223   CONST64(0x00000000,0x00404040), CONST64(0x00000010,0x00404040), CONST64(0x00000000,0x40404040), CONST64(0x00000010,0x40404040),
01224   CONST64(0x40000000,0x00000000), CONST64(0x40000010,0x00000000), CONST64(0x40000000,0x40000000), CONST64(0x40000010,0x40000000),
01225   CONST64(0x40000000,0x00400000), CONST64(0x40000010,0x00400000), CONST64(0x40000000,0x40400000), CONST64(0x40000010,0x40400000),
01226   CONST64(0x40000000,0x00004000), CONST64(0x40000010,0x00004000), CONST64(0x40000000,0x40004000), CONST64(0x40000010,0x40004000),
01227   CONST64(0x40000000,0x00404000), CONST64(0x40000010,0x00404000), CONST64(0x40000000,0x40404000), CONST64(0x40000010,0x40404000),
01228   CONST64(0x40000000,0x00000040), CONST64(0x40000010,0x00000040), CONST64(0x40000000,0x40000040), CONST64(0x40000010,0x40000040),
01229   CONST64(0x40000000,0x00400040), CONST64(0x40000010,0x00400040), CONST64(0x40000000,0x40400040), CONST64(0x40000010,0x40400040),
01230   CONST64(0x40000000,0x00004040), CONST64(0x40000010,0x00004040), CONST64(0x40000000,0x40004040), CONST64(0x40000010,0x40004040),
01231   CONST64(0x40000000,0x00404040), CONST64(0x40000010,0x00404040), CONST64(0x40000000,0x40404040), CONST64(0x40000010,0x40404040),
01232   CONST64(0x00400000,0x00000000), CONST64(0x00400010,0x00000000), CONST64(0x00400000,0x40000000), CONST64(0x00400010,0x40000000),
01233   CONST64(0x00400000,0x00400000), CONST64(0x00400010,0x00400000), CONST64(0x00400000,0x40400000), CONST64(0x00400010,0x40400000),
01234   CONST64(0x00400000,0x00004000), CONST64(0x00400010,0x00004000), CONST64(0x00400000,0x40004000), CONST64(0x00400010,0x40004000),
01235   CONST64(0x00400000,0x00404000), CONST64(0x00400010,0x00404000), CONST64(0x00400000,0x40404000), CONST64(0x00400010,0x40404000),
01236   CONST64(0x00400000,0x00000040), CONST64(0x00400010,0x00000040), CONST64(0x00400000,0x40000040), CONST64(0x00400010,0x40000040),
01237   CONST64(0x00400000,0x00400040), CONST64(0x00400010,0x00400040), CONST64(0x00400000,0x40400040), CONST64(0x00400010,0x40400040),
01238   CONST64(0x00400000,0x00004040), CONST64(0x00400010,0x00004040), CONST64(0x00400000,0x40004040), CONST64(0x00400010,0x40004040),
01239   CONST64(0x00400000,0x00404040), CONST64(0x00400010,0x00404040), CONST64(0x00400000,0x40404040), CONST64(0x00400010,0x40404040),
01240   CONST64(0x40400000,0x00000000), CONST64(0x40400010,0x00000000), CONST64(0x40400000,0x40000000), CONST64(0x40400010,0x40000000),
01241   CONST64(0x40400000,0x00400000), CONST64(0x40400010,0x00400000), CONST64(0x40400000,0x40400000), CONST64(0x40400010,0x40400000),
01242   CONST64(0x40400000,0x00004000), CONST64(0x40400010,0x00004000), CONST64(0x40400000,0x40004000), CONST64(0x40400010,0x40004000),
01243   CONST64(0x40400000,0x00404000), CONST64(0x40400010,0x00404000), CONST64(0x40400000,0x40404000), CONST64(0x40400010,0x40404000),
01244   CONST64(0x40400000,0x00000040), CONST64(0x40400010,0x00000040), CONST64(0x40400000,0x40000040), CONST64(0x40400010,0x40000040),
01245   CONST64(0x40400000,0x00400040), CONST64(0x40400010,0x00400040), CONST64(0x40400000,0x40400040), CONST64(0x40400010,0x40400040),
01246   CONST64(0x40400000,0x00004040), CONST64(0x40400010,0x00004040), CONST64(0x40400000,0x40004040), CONST64(0x40400010,0x40004040),
01247   CONST64(0x40400000,0x00404040), CONST64(0x40400010,0x00404040), CONST64(0x40400000,0x40404040), CONST64(0x40400010,0x40404040),
01248   CONST64(0x00004000,0x00000000), CONST64(0x00004010,0x00000000), CONST64(0x00004000,0x40000000), CONST64(0x00004010,0x40000000),
01249   CONST64(0x00004000,0x00400000), CONST64(0x00004010,0x00400000), CONST64(0x00004000,0x40400000), CONST64(0x00004010,0x40400000),
01250   CONST64(0x00004000,0x00004000), CONST64(0x00004010,0x00004000), CONST64(0x00004000,0x40004000), CONST64(0x00004010,0x40004000),
01251   CONST64(0x00004000,0x00404000), CONST64(0x00004010,0x00404000), CONST64(0x00004000,0x40404000), CONST64(0x00004010,0x40404000),
01252   CONST64(0x00004000,0x00000040), CONST64(0x00004010,0x00000040), CONST64(0x00004000,0x40000040), CONST64(0x00004010,0x40000040),
01253   CONST64(0x00004000,0x00400040), CONST64(0x00004010,0x00400040), CONST64(0x00004000,0x40400040), CONST64(0x00004010,0x40400040),
01254   CONST64(0x00004000,0x00004040), CONST64(0x00004010,0x00004040), CONST64(0x00004000,0x40004040), CONST64(0x00004010,0x40004040),
01255   CONST64(0x00004000,0x00404040), CONST64(0x00004010,0x00404040), CONST64(0x00004000,0x40404040), CONST64(0x00004010,0x40404040),
01256   CONST64(0x40004000,0x00000000), CONST64(0x40004010,0x00000000), CONST64(0x40004000,0x40000000), CONST64(0x40004010,0x40000000),
01257   CONST64(0x40004000,0x00400000), CONST64(0x40004010,0x00400000), CONST64(0x40004000,0x40400000), CONST64(0x40004010,0x40400000),
01258   CONST64(0x40004000,0x00004000), CONST64(0x40004010,0x00004000), CONST64(0x40004000,0x40004000), CONST64(0x40004010,0x40004000),
01259   CONST64(0x40004000,0x00404000), CONST64(0x40004010,0x00404000), CONST64(0x40004000,0x40404000), CONST64(0x40004010,0x40404000),
01260   CONST64(0x40004000,0x00000040), CONST64(0x40004010,0x00000040), CONST64(0x40004000,0x40000040), CONST64(0x40004010,0x40000040),
01261   CONST64(0x40004000,0x00400040), CONST64(0x40004010,0x00400040), CONST64(0x40004000,0x40400040), CONST64(0x40004010,0x40400040),
01262   CONST64(0x40004000,0x00004040), CONST64(0x40004010,0x00004040), CONST64(0x40004000,0x40004040), CONST64(0x40004010,0x40004040),
01263   CONST64(0x40004000,0x00404040), CONST64(0x40004010,0x00404040), CONST64(0x40004000,0x40404040), CONST64(0x40004010,0x40404040),
01264   CONST64(0x00404000,0x00000000), CONST64(0x00404010,0x00000000), CONST64(0x00404000,0x40000000), CONST64(0x00404010,0x40000000),
01265   CONST64(0x00404000,0x00400000), CONST64(0x00404010,0x00400000), CONST64(0x00404000,0x40400000), CONST64(0x00404010,0x40400000),
01266   CONST64(0x00404000,0x00004000), CONST64(0x00404010,0x00004000), CONST64(0x00404000,0x40004000), CONST64(0x00404010,0x40004000),
01267   CONST64(0x00404000,0x00404000), CONST64(0x00404010,0x00404000), CONST64(0x00404000,0x40404000), CONST64(0x00404010,0x40404000),
01268   CONST64(0x00404000,0x00000040), CONST64(0x00404010,0x00000040), CONST64(0x00404000,0x40000040), CONST64(0x00404010,0x40000040),
01269   CONST64(0x00404000,0x00400040), CONST64(0x00404010,0x00400040), CONST64(0x00404000,0x40400040), CONST64(0x00404010,0x40400040),
01270   CONST64(0x00404000,0x00004040), CONST64(0x00404010,0x00004040), CONST64(0x00404000,0x40004040), CONST64(0x00404010,0x40004040),
01271   CONST64(0x00404000,0x00404040), CONST64(0x00404010,0x00404040), CONST64(0x00404000,0x40404040), CONST64(0x00404010,0x40404040),
01272   CONST64(0x40404000,0x00000000), CONST64(0x40404010,0x00000000), CONST64(0x40404000,0x40000000), CONST64(0x40404010,0x40000000),
01273   CONST64(0x40404000,0x00400000), CONST64(0x40404010,0x00400000), CONST64(0x40404000,0x40400000), CONST64(0x40404010,0x40400000),
01274   CONST64(0x40404000,0x00004000), CONST64(0x40404010,0x00004000), CONST64(0x40404000,0x40004000), CONST64(0x40404010,0x40004000),
01275   CONST64(0x40404000,0x00404000), CONST64(0x40404010,0x00404000), CONST64(0x40404000,0x40404000), CONST64(0x40404010,0x40404000),
01276   CONST64(0x40404000,0x00000040), CONST64(0x40404010,0x00000040), CONST64(0x40404000,0x40000040), CONST64(0x40404010,0x40000040),
01277   CONST64(0x40404000,0x00400040), CONST64(0x40404010,0x00400040), CONST64(0x40404000,0x40400040), CONST64(0x40404010,0x40400040),
01278   CONST64(0x40404000,0x00004040), CONST64(0x40404010,0x00004040), CONST64(0x40404000,0x40004040), CONST64(0x40404010,0x40004040),
01279   CONST64(0x40404000,0x00404040), CONST64(0x40404010,0x00404040), CONST64(0x40404000,0x40404040), CONST64(0x40404010,0x40404040)
01280   }};
01281   
01282 
01283 static void cookey(const ulong32 *raw1, ulong32 *keyout);
01284 
01285 static void deskey(const unsigned char *key, short edf, ulong32 *keyout)
01286 {
01287     ulong32 i, j, l, m, n, kn[32];
01288     unsigned char pc1m[56], pcr[56];
01289 
01290     for (j=0; j < 56; j++) {
01291         l = (ulong32)pc1[j];
01292         m = l & 7;
01293         pc1m[j] = (unsigned char)((key[l >> 3U] & bytebit[m]) == bytebit[m] ? 1 : 0);
01294     }
01295 
01296     for (i=0; i < 16; i++) {
01297         if (edf == DE1) {
01298            m = (15 - i) << 1;
01299         } else {
01300            m = i << 1;
01301         }
01302         n = m + 1;
01303         kn[m] = kn[n] = 0L;
01304         for (j=0; j < 28; j++) {
01305             l = j + (ulong32)totrot[i];
01306             if (l < 28) {
01307                pcr[j] = pc1m[l];
01308             } else {
01309                pcr[j] = pc1m[l - 28];
01310             }
01311         }
01312         for (/*j = 28*/; j < 56; j++) {
01313             l = j + (ulong32)totrot[i];
01314             if (l < 56) {
01315                pcr[j] = pc1m[l];
01316             } else {
01317                pcr[j] = pc1m[l - 28];
01318             }
01319         }
01320         for (j=0; j < 24; j++)  {
01321             if ((int)pcr[(int)pc2[j]] != 0) {
01322                kn[m] |= bigbyte[j];
01323             }
01324             if ((int)pcr[(int)pc2[j+24]] != 0) {
01325                kn[n] |= bigbyte[j];
01326             }
01327         }
01328     }
01329 
01330     cookey(kn, keyout);
01331 }
01332 
01333 static void cookey(const ulong32 *raw1, ulong32 *keyout)
01334 {
01335     ulong32 *cook;
01336     const ulong32 *raw0;
01337     ulong32 dough[32];
01338     int i;
01339 
01340     cook = dough;
01341     for(i=0; i < 16; i++, raw1++)
01342     {
01343         raw0 = raw1++;
01344         *cook    = (*raw0 & 0x00fc0000L) << 6;
01345         *cook   |= (*raw0 & 0x00000fc0L) << 10;
01346         *cook   |= (*raw1 & 0x00fc0000L) >> 10;
01347         *cook++ |= (*raw1 & 0x00000fc0L) >> 6;
01348         *cook    = (*raw0 & 0x0003f000L) << 12;
01349         *cook   |= (*raw0 & 0x0000003fL) << 16;
01350         *cook   |= (*raw1 & 0x0003f000L) >> 4;
01351         *cook++ |= (*raw1 & 0x0000003fL);
01352     }
01353 
01354     memcpy(keyout, dough, sizeof dough);
01355 }
01356 
01357 static void desfunc(ulong32 *block, const ulong32 *keys)
01358 {
01359     ulong64 tmp;
01360     ulong32 work, right, leftt;
01361     int cur_round;
01362 
01363     leftt = block[0];
01364     right = block[1];
01365 
01366     tmp = des_ip[0][byte(leftt, 0)] ^
01367           des_ip[1][byte(leftt, 1)] ^
01368           des_ip[2][byte(leftt, 2)] ^
01369           des_ip[3][byte(leftt, 3)] ^
01370           des_ip[4][byte(right, 0)] ^
01371           des_ip[5][byte(right, 1)] ^
01372           des_ip[6][byte(right, 2)] ^
01373           des_ip[7][byte(right, 3)];
01374     leftt = (ulong32)(tmp >> 32);
01375     right = (ulong32)(tmp & 0xFFFFFFFFUL);
01376 
01377     for (cur_round = 0; cur_round < 8; cur_round++) {
01378         work  = ROR(right, 4) ^ *keys++;
01379         leftt ^= SP7[work        & 0x3fL]
01380               ^ SP5[(work >>  8) & 0x3fL]
01381               ^ SP3[(work >> 16) & 0x3fL]
01382               ^ SP1[(work >> 24) & 0x3fL];
01383         work  = right ^ *keys++;
01384         leftt ^= SP8[ work        & 0x3fL]
01385               ^  SP6[(work >>  8) & 0x3fL]
01386               ^  SP4[(work >> 16) & 0x3fL]
01387               ^  SP2[(work >> 24) & 0x3fL];
01388 
01389         work = ROR(leftt, 4) ^ *keys++;
01390         right ^= SP7[ work        & 0x3fL]
01391               ^  SP5[(work >>  8) & 0x3fL]
01392               ^  SP3[(work >> 16) & 0x3fL]
01393               ^  SP1[(work >> 24) & 0x3fL];
01394         work  = leftt ^ *keys++;
01395         right ^= SP8[ work        & 0x3fL]
01396               ^  SP6[(work >>  8) & 0x3fL]
01397               ^  SP4[(work >> 16) & 0x3fL]
01398               ^  SP2[(work >> 24) & 0x3fL];
01399     }
01400 
01401     tmp = des_fp[0][byte(leftt, 0)] ^
01402           des_fp[1][byte(leftt, 1)] ^
01403           des_fp[2][byte(leftt, 2)] ^
01404           des_fp[3][byte(leftt, 3)] ^
01405           des_fp[4][byte(right, 0)] ^
01406           des_fp[5][byte(right, 1)] ^
01407           des_fp[6][byte(right, 2)] ^
01408           des_fp[7][byte(right, 3)];
01409     leftt = (ulong32)(tmp >> 32);
01410     right = (ulong32)(tmp & 0xFFFFFFFFUL);
01411     
01412     block[0] = right;
01413     block[1] = leftt;
01414 }
01415 
01416 int des_setup(const unsigned char *key, int keylen, int num_rounds, des_key *des)
01417 {
01418     if (num_rounds != 0 && num_rounds != 16) {
01419         return CRYPT_INVALID_ROUNDS;
01420     }
01421 
01422     if (keylen != 8) {
01423         return CRYPT_INVALID_KEYSIZE;
01424     }
01425 
01426     deskey(key, EN0, des->ek);
01427     deskey(key, DE1, des->dk);
01428 
01429     return CRYPT_OK;
01430 }
01431 
01432 int des3_setup(const unsigned char *key, int keylen, int num_rounds, des3_key *des3)
01433 {
01434     if(num_rounds != 0 && num_rounds != 16) {
01435         return CRYPT_INVALID_ROUNDS;
01436     }
01437 
01438     if (keylen != 24) {
01439         return CRYPT_INVALID_KEYSIZE;
01440     }
01441 
01442     deskey(key,    EN0, des3->ek[0]);
01443     deskey(key+8,  DE1, des3->ek[1]);
01444     deskey(key+16, EN0, des3->ek[2]);
01445 
01446     deskey(key,    DE1, des3->dk[2]);
01447     deskey(key+8,  EN0, des3->dk[1]);
01448     deskey(key+16, DE1, des3->dk[0]);
01449 
01450     return CRYPT_OK;
01451 }
01452 
01453 void des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, const des_key *des)
01454 {
01455     ulong32 work[2];
01456     LOAD32H(work[0], pt+0);
01457     LOAD32H(work[1], pt+4);
01458     desfunc(work, des->ek);
01459     STORE32H(work[0],ct+0);
01460     STORE32H(work[1],ct+4);
01461 }
01462 
01463 void des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, const des_key *des)
01464 {
01465     ulong32 work[2];
01466     LOAD32H(work[0], ct+0);
01467     LOAD32H(work[1], ct+4);
01468     desfunc(work, des->dk);
01469     STORE32H(work[0],pt+0);
01470     STORE32H(work[1],pt+4);
01471 }
01472 
01473 void des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, const des3_key *des3)
01474 {
01475     ulong32 work[2];
01476     LOAD32H(work[0], pt+0);
01477     LOAD32H(work[1], pt+4);
01478     desfunc(work, des3->ek[0]);
01479     desfunc(work, des3->ek[1]);
01480     desfunc(work, des3->ek[2]);
01481     STORE32H(work[0],ct+0);
01482     STORE32H(work[1],ct+4);
01483 }
01484 
01485 void des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, const des3_key *des3)
01486 {
01487     ulong32 work[2];
01488     LOAD32H(work[0], ct+0);
01489     LOAD32H(work[1], ct+4);
01490     desfunc(work, des3->dk[0]);
01491     desfunc(work, des3->dk[1]);
01492     desfunc(work, des3->dk[2]);
01493     STORE32H(work[0],pt+0);
01494     STORE32H(work[1],pt+4);
01495 }

Generated on Sat May 26 2012 04:24:43 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.