1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  *
  22  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 
  26 /*      Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
  27 /*        All Rights Reserved   */
  28 
  29 /*
  30  * Portions of this source code were derived from Berkeley 4.3 BSD
  31  * under license from the Regents of the University of California.
  32  */
  33 
  34 #ifndef _SYS_DESDATA_H
  35 #define _SYS_DESDATA_H
  36 
  37 #ifdef  __cplusplus
  38 extern "C" {
  39 #endif
  40 
  41 /*
  42  * softdesdata.c, Data for software implementation of DES
  43  */
  44 
  45 /*
  46  * Lint can't handle static's in include files.
  47  * Complains "defined but not used" and then "used but not defined"
  48  */
  49 #ifdef __lint
  50 #define static
  51 #endif
  52 
  53 /*
  54  * Permuted-choice 1 from the key bits
  55  * to yield C and D.
  56  * Note that bits 8,16... are left out:
  57  * They are intended for a parity check.
  58  * Table has been munged to be zero-origin
  59  */
  60 
  61 const short     PC1_C[] = {
  62         57-1, 49-1, 41-1, 33-1, 25-1, 17-1,  9-1,
  63         1-1,  58-1, 50-1, 42-1, 34-1, 26-1, 18-1,
  64         10-1,  2-1, 59-1, 51-1, 43-1, 35-1, 27-1,
  65         19-1, 11-1,  3-1, 60-1, 52-1, 44-1, 36-1,
  66 };
  67 
  68 const short     PC1_D[] = {
  69         63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1,
  70         7-1,  62-1, 54-1, 46-1, 38-1, 30-1, 22-1,
  71         14-1,  6-1, 61-1, 53-1, 45-1, 37-1, 29-1,
  72         21-1, 13-1,  5-1, 28-1, 20-1, 12-1,  4-1,
  73 };
  74 
  75 /*
  76  * Sequence of shifts used for the key schedule.
  77  */
  78 const char      shifts[] = {
  79         1-1, 1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1,
  80         1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1, 1-1,
  81 };
  82 
  83 /*
  84  * Permuted-choice 2, to pick out the bits from
  85  * the CD array that generate the key schedule.
  86  */
  87 const   char    PC2_C[] = {
  88         14, 17, 11, 24, 1,  5,
  89         3,  28, 15, 6,  21, 10,
  90         23, 19, 12, 4,  26, 8,
  91         16, 7,  27, 20, 13, 2,
  92 };
  93 
  94 const   char    PC2_D[] = {
  95         41-28, 52-28, 31-28, 37-28, 47-28, 55-28,
  96         30-28, 40-28, 51-28, 45-28, 33-28, 48-28,
  97         44-28, 49-28, 39-28, 56-28, 34-28, 53-28,
  98         46-28, 42-28, 50-28, 36-28, 29-28, 32-28,
  99 };
 100 
 101 /*
 102  * Initial permutation
 103  */
 104 const   short   IPtab[64] = {
 105         40-1,  8-1, 48-1, 16-1, 56-1, 24-1, 64-1, 32-1,
 106         39-1,  7-1, 47-1, 15-1, 55-1, 23-1, 63-1, 31-1,
 107         38-1,  6-1, 46-1, 14-1, 54-1, 22-1, 62-1, 30-1,
 108         37-1,  5-1, 45-1, 13-1, 53-1, 21-1, 61-1, 29-1,
 109         36-1,  4-1, 44-1, 12-1, 52-1, 20-1, 60-1, 28-1,
 110         35-1,  3-1, 43-1, 11-1, 51-1, 19-1, 59-1, 27-1,
 111         34-1,  2-1, 42-1, 10-1, 50-1, 18-1, 58-1, 26-1,
 112         33-1,  1-1, 41-1,  9-1, 49-1, 17-1, 57-1, 25-1,
 113 };
 114 
 115 /*
 116  * Final permutation
 117  */
 118 const   short   FPtab[64] = {
 119         58-1, 50-1, 42-1, 34-1, 26-1, 18-1, 10-1,  2-1,
 120         60-1, 52-1, 44-1, 36-1, 28-1, 20-1, 12-1,  4-1,
 121         62-1, 54-1, 46-1, 38-1, 30-1, 22-1, 14-1,  6-1,
 122         64-1, 56-1, 48-1, 40-1, 32-1, 24-1, 16-1,  8-1,
 123         57-1, 49-1, 41-1, 33-1, 25-1, 17-1,  9-1,  1-1,
 124         59-1, 51-1, 43-1, 35-1, 27-1, 19-1, 11-1,  3-1,
 125         61-1, 53-1, 45-1, 37-1, 29-1, 21-1, 13-1,  5-1,
 126         63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1,  7-1,
 127 };
 128 
 129 /*
 130  * Mask bit selection table
 131  */
 132 const   uint32_t longtab[32] = {
 133         0x80000000U,    0x40000000U,    0x20000000U,    0x10000000U,
 134         0x8000000U,     0x4000000U,     0x2000000U,     0x1000000U,
 135         0x800000U,      0x400000U,      0x200000U,      0x100000U,
 136         0x80000U,       0x40000U,       0x20000U,       0x10000U,
 137         0x8000U,        0x4000U,        0x2000U,        0x1000U,
 138         0x800U,         0x400U,         0x200U,         0x100U,
 139         0x80U,          0x40U,          0x20U,          0x10U,
 140         0x8U,           0x4U,           0x2U,           0x1U,
 141 };
 142 
 143 /*
 144  * Table to expand 32 bit (4 bytes of 8 bits) R value
 145  * to 48 bits (8 bytes of 6 bits)
 146  */
 147 struct R_to_ER {
 148         uint32_t l0, l1;
 149 };
 150 
 151 const   struct R_to_ER R_to_ER_tab[4][256] = {
 152         {{ 0x00000000, 0x00000000, },   { 0x00022000, 0x00000000, },
 153         { 0x00040000, 0x00000000, },    { 0x00062000, 0x00000000, },
 154         { 0x00080000, 0x00000000, },    { 0x000a2000, 0x00000000, },
 155         { 0x000c0000, 0x00000000, },    { 0x000e2000, 0x00000000, },
 156         { 0x01100000, 0x00000000, },    { 0x01122000, 0x00000000, },
 157         { 0x01140000, 0x00000000, },    { 0x01162000, 0x00000000, },
 158         { 0x01180000, 0x00000000, },    { 0x011a2000, 0x00000000, },
 159         { 0x011c0000, 0x00000000, },    { 0x011e2000, 0x00000000, },
 160         { 0x02200000, 0x00000000, },    { 0x02222000, 0x00000000, },
 161         { 0x02240000, 0x00000000, },    { 0x02262000, 0x00000000, },
 162         { 0x02280000, 0x00000000, },    { 0x022a2000, 0x00000000, },
 163         { 0x022c0000, 0x00000000, },    { 0x022e2000, 0x00000000, },
 164         { 0x03300000, 0x00000000, },    { 0x03322000, 0x00000000, },
 165         { 0x03340000, 0x00000000, },    { 0x03362000, 0x00000000, },
 166         { 0x03380000, 0x00000000, },    { 0x033a2000, 0x00000000, },
 167         { 0x033c0000, 0x00000000, },    { 0x033e2000, 0x00000000, },
 168         { 0x04000000, 0x00000000, },    { 0x04022000, 0x00000000, },
 169         { 0x04040000, 0x00000000, },    { 0x04062000, 0x00000000, },
 170         { 0x04080000, 0x00000000, },    { 0x040a2000, 0x00000000, },
 171         { 0x040c0000, 0x00000000, },    { 0x040e2000, 0x00000000, },
 172         { 0x05100000, 0x00000000, },    { 0x05122000, 0x00000000, },
 173         { 0x05140000, 0x00000000, },    { 0x05162000, 0x00000000, },
 174         { 0x05180000, 0x00000000, },    { 0x051a2000, 0x00000000, },
 175         { 0x051c0000, 0x00000000, },    { 0x051e2000, 0x00000000, },
 176         { 0x06200000, 0x00000000, },    { 0x06222000, 0x00000000, },
 177         { 0x06240000, 0x00000000, },    { 0x06262000, 0x00000000, },
 178         { 0x06280000, 0x00000000, },    { 0x062a2000, 0x00000000, },
 179         { 0x062c0000, 0x00000000, },    { 0x062e2000, 0x00000000, },
 180         { 0x07300000, 0x00000000, },    { 0x07322000, 0x00000000, },
 181         { 0x07340000, 0x00000000, },    { 0x07362000, 0x00000000, },
 182         { 0x07380000, 0x00000000, },    { 0x073a2000, 0x00000000, },
 183         { 0x073c0000, 0x00000000, },    { 0x073e2000, 0x00000000, },
 184         { 0x08000000, 0x00000000, },    { 0x08022000, 0x00000000, },
 185         { 0x08040000, 0x00000000, },    { 0x08062000, 0x00000000, },
 186         { 0x08080000, 0x00000000, },    { 0x080a2000, 0x00000000, },
 187         { 0x080c0000, 0x00000000, },    { 0x080e2000, 0x00000000, },
 188         { 0x09100000, 0x00000000, },    { 0x09122000, 0x00000000, },
 189         { 0x09140000, 0x00000000, },    { 0x09162000, 0x00000000, },
 190         { 0x09180000, 0x00000000, },    { 0x091a2000, 0x00000000, },
 191         { 0x091c0000, 0x00000000, },    { 0x091e2000, 0x00000000, },
 192         { 0x0a200000, 0x00000000, },    { 0x0a222000, 0x00000000, },
 193         { 0x0a240000, 0x00000000, },    { 0x0a262000, 0x00000000, },
 194         { 0x0a280000, 0x00000000, },    { 0x0a2a2000, 0x00000000, },
 195         { 0x0a2c0000, 0x00000000, },    { 0x0a2e2000, 0x00000000, },
 196         { 0x0b300000, 0x00000000, },    { 0x0b322000, 0x00000000, },
 197         { 0x0b340000, 0x00000000, },    { 0x0b362000, 0x00000000, },
 198         { 0x0b380000, 0x00000000, },    { 0x0b3a2000, 0x00000000, },
 199         { 0x0b3c0000, 0x00000000, },    { 0x0b3e2000, 0x00000000, },
 200         { 0x0c000000, 0x00000000, },    { 0x0c022000, 0x00000000, },
 201         { 0x0c040000, 0x00000000, },    { 0x0c062000, 0x00000000, },
 202         { 0x0c080000, 0x00000000, },    { 0x0c0a2000, 0x00000000, },
 203         { 0x0c0c0000, 0x00000000, },    { 0x0c0e2000, 0x00000000, },
 204         { 0x0d100000, 0x00000000, },    { 0x0d122000, 0x00000000, },
 205         { 0x0d140000, 0x00000000, },    { 0x0d162000, 0x00000000, },
 206         { 0x0d180000, 0x00000000, },    { 0x0d1a2000, 0x00000000, },
 207         { 0x0d1c0000, 0x00000000, },    { 0x0d1e2000, 0x00000000, },
 208         { 0x0e200000, 0x00000000, },    { 0x0e222000, 0x00000000, },
 209         { 0x0e240000, 0x00000000, },    { 0x0e262000, 0x00000000, },
 210         { 0x0e280000, 0x00000000, },    { 0x0e2a2000, 0x00000000, },
 211         { 0x0e2c0000, 0x00000000, },    { 0x0e2e2000, 0x00000000, },
 212         { 0x0f300000, 0x00000000, },    { 0x0f322000, 0x00000000, },
 213         { 0x0f340000, 0x00000000, },    { 0x0f362000, 0x00000000, },
 214         { 0x0f380000, 0x00000000, },    { 0x0f3a2000, 0x00000000, },
 215         { 0x0f3c0000, 0x00000000, },    { 0x0f3e2000, 0x00000000, },
 216         { 0x10000000, 0x00000001, },    { 0x10022000, 0x00000001, },
 217         { 0x10040000, 0x00000001, },    { 0x10062000, 0x00000001, },
 218         { 0x10080000, 0x00000001, },    { 0x100a2000, 0x00000001, },
 219         { 0x100c0000, 0x00000001, },    { 0x100e2000, 0x00000001, },
 220         { 0x11100000, 0x00000001, },    { 0x11122000, 0x00000001, },
 221         { 0x11140000, 0x00000001, },    { 0x11162000, 0x00000001, },
 222         { 0x11180000, 0x00000001, },    { 0x111a2000, 0x00000001, },
 223         { 0x111c0000, 0x00000001, },    { 0x111e2000, 0x00000001, },
 224         { 0x12200000, 0x00000001, },    { 0x12222000, 0x00000001, },
 225         { 0x12240000, 0x00000001, },    { 0x12262000, 0x00000001, },
 226         { 0x12280000, 0x00000001, },    { 0x122a2000, 0x00000001, },
 227         { 0x122c0000, 0x00000001, },    { 0x122e2000, 0x00000001, },
 228         { 0x13300000, 0x00000001, },    { 0x13322000, 0x00000001, },
 229         { 0x13340000, 0x00000001, },    { 0x13362000, 0x00000001, },
 230         { 0x13380000, 0x00000001, },    { 0x133a2000, 0x00000001, },
 231         { 0x133c0000, 0x00000001, },    { 0x133e2000, 0x00000001, },
 232         { 0x14000000, 0x00000001, },    { 0x14022000, 0x00000001, },
 233         { 0x14040000, 0x00000001, },    { 0x14062000, 0x00000001, },
 234         { 0x14080000, 0x00000001, },    { 0x140a2000, 0x00000001, },
 235         { 0x140c0000, 0x00000001, },    { 0x140e2000, 0x00000001, },
 236         { 0x15100000, 0x00000001, },    { 0x15122000, 0x00000001, },
 237         { 0x15140000, 0x00000001, },    { 0x15162000, 0x00000001, },
 238         { 0x15180000, 0x00000001, },    { 0x151a2000, 0x00000001, },
 239         { 0x151c0000, 0x00000001, },    { 0x151e2000, 0x00000001, },
 240         { 0x16200000, 0x00000001, },    { 0x16222000, 0x00000001, },
 241         { 0x16240000, 0x00000001, },    { 0x16262000, 0x00000001, },
 242         { 0x16280000, 0x00000001, },    { 0x162a2000, 0x00000001, },
 243         { 0x162c0000, 0x00000001, },    { 0x162e2000, 0x00000001, },
 244         { 0x17300000, 0x00000001, },    { 0x17322000, 0x00000001, },
 245         { 0x17340000, 0x00000001, },    { 0x17362000, 0x00000001, },
 246         { 0x17380000, 0x00000001, },    { 0x173a2000, 0x00000001, },
 247         { 0x173c0000, 0x00000001, },    { 0x173e2000, 0x00000001, },
 248         { 0x18000000, 0x00000001, },    { 0x18022000, 0x00000001, },
 249         { 0x18040000, 0x00000001, },    { 0x18062000, 0x00000001, },
 250         { 0x18080000, 0x00000001, },    { 0x180a2000, 0x00000001, },
 251         { 0x180c0000, 0x00000001, },    { 0x180e2000, 0x00000001, },
 252         { 0x19100000, 0x00000001, },    { 0x19122000, 0x00000001, },
 253         { 0x19140000, 0x00000001, },    { 0x19162000, 0x00000001, },
 254         { 0x19180000, 0x00000001, },    { 0x191a2000, 0x00000001, },
 255         { 0x191c0000, 0x00000001, },    { 0x191e2000, 0x00000001, },
 256         { 0x1a200000, 0x00000001, },    { 0x1a222000, 0x00000001, },
 257         { 0x1a240000, 0x00000001, },    { 0x1a262000, 0x00000001, },
 258         { 0x1a280000, 0x00000001, },    { 0x1a2a2000, 0x00000001, },
 259         { 0x1a2c0000, 0x00000001, },    { 0x1a2e2000, 0x00000001, },
 260         { 0x1b300000, 0x00000001, },    { 0x1b322000, 0x00000001, },
 261         { 0x1b340000, 0x00000001, },    { 0x1b362000, 0x00000001, },
 262         { 0x1b380000, 0x00000001, },    { 0x1b3a2000, 0x00000001, },
 263         { 0x1b3c0000, 0x00000001, },    { 0x1b3e2000, 0x00000001, },
 264         { 0x1c000000, 0x00000001, },    { 0x1c022000, 0x00000001, },
 265         { 0x1c040000, 0x00000001, },    { 0x1c062000, 0x00000001, },
 266         { 0x1c080000, 0x00000001, },    { 0x1c0a2000, 0x00000001, },
 267         { 0x1c0c0000, 0x00000001, },    { 0x1c0e2000, 0x00000001, },
 268         { 0x1d100000, 0x00000001, },    { 0x1d122000, 0x00000001, },
 269         { 0x1d140000, 0x00000001, },    { 0x1d162000, 0x00000001, },
 270         { 0x1d180000, 0x00000001, },    { 0x1d1a2000, 0x00000001, },
 271         { 0x1d1c0000, 0x00000001, },    { 0x1d1e2000, 0x00000001, },
 272         { 0x1e200000, 0x00000001, },    { 0x1e222000, 0x00000001, },
 273         { 0x1e240000, 0x00000001, },    { 0x1e262000, 0x00000001, },
 274         { 0x1e280000, 0x00000001, },    { 0x1e2a2000, 0x00000001, },
 275         { 0x1e2c0000, 0x00000001, },    { 0x1e2e2000, 0x00000001, },
 276         { 0x1f300000, 0x00000001, },    { 0x1f322000, 0x00000001, },
 277         { 0x1f340000, 0x00000001, },    { 0x1f362000, 0x00000001, },
 278         { 0x1f380000, 0x00000001, },    { 0x1f3a2000, 0x00000001, },
 279         { 0x1f3c0000, 0x00000001, },    { 0x1f3e2000, 0x00000001, }, },
 280 
 281         {{ 0x00000000, 0x00000000, },   { 0x00000002, 0x20000000, },
 282         { 0x00000004, 0x00000000, },    { 0x00000006, 0x20000000, },
 283         { 0x00000008, 0x00000000, },    { 0x0000000a, 0x20000000, },
 284         { 0x0000000c, 0x00000000, },    { 0x0000000e, 0x20000000, },
 285         { 0x00000110, 0x00000000, },    { 0x00000112, 0x20000000, },
 286         { 0x00000114, 0x00000000, },    { 0x00000116, 0x20000000, },
 287         { 0x00000118, 0x00000000, },    { 0x0000011a, 0x20000000, },
 288         { 0x0000011c, 0x00000000, },    { 0x0000011e, 0x20000000, },
 289         { 0x00000220, 0x00000000, },    { 0x00000222, 0x20000000, },
 290         { 0x00000224, 0x00000000, },    { 0x00000226, 0x20000000, },
 291         { 0x00000228, 0x00000000, },    { 0x0000022a, 0x20000000, },
 292         { 0x0000022c, 0x00000000, },    { 0x0000022e, 0x20000000, },
 293         { 0x00000330, 0x00000000, },    { 0x00000332, 0x20000000, },
 294         { 0x00000334, 0x00000000, },    { 0x00000336, 0x20000000, },
 295         { 0x00000338, 0x00000000, },    { 0x0000033a, 0x20000000, },
 296         { 0x0000033c, 0x00000000, },    { 0x0000033e, 0x20000000, },
 297         { 0x00000400, 0x00000000, },    { 0x00000402, 0x20000000, },
 298         { 0x00000404, 0x00000000, },    { 0x00000406, 0x20000000, },
 299         { 0x00000408, 0x00000000, },    { 0x0000040a, 0x20000000, },
 300         { 0x0000040c, 0x00000000, },    { 0x0000040e, 0x20000000, },
 301         { 0x00000510, 0x00000000, },    { 0x00000512, 0x20000000, },
 302         { 0x00000514, 0x00000000, },    { 0x00000516, 0x20000000, },
 303         { 0x00000518, 0x00000000, },    { 0x0000051a, 0x20000000, },
 304         { 0x0000051c, 0x00000000, },    { 0x0000051e, 0x20000000, },
 305         { 0x00000620, 0x00000000, },    { 0x00000622, 0x20000000, },
 306         { 0x00000624, 0x00000000, },    { 0x00000626, 0x20000000, },
 307         { 0x00000628, 0x00000000, },    { 0x0000062a, 0x20000000, },
 308         { 0x0000062c, 0x00000000, },    { 0x0000062e, 0x20000000, },
 309         { 0x00000730, 0x00000000, },    { 0x00000732, 0x20000000, },
 310         { 0x00000734, 0x00000000, },    { 0x00000736, 0x20000000, },
 311         { 0x00000738, 0x00000000, },    { 0x0000073a, 0x20000000, },
 312         { 0x0000073c, 0x00000000, },    { 0x0000073e, 0x20000000, },
 313         { 0x00000800, 0x00000000, },    { 0x00000802, 0x20000000, },
 314         { 0x00000804, 0x00000000, },    { 0x00000806, 0x20000000, },
 315         { 0x00000808, 0x00000000, },    { 0x0000080a, 0x20000000, },
 316         { 0x0000080c, 0x00000000, },    { 0x0000080e, 0x20000000, },
 317         { 0x00000910, 0x00000000, },    { 0x00000912, 0x20000000, },
 318         { 0x00000914, 0x00000000, },    { 0x00000916, 0x20000000, },
 319         { 0x00000918, 0x00000000, },    { 0x0000091a, 0x20000000, },
 320         { 0x0000091c, 0x00000000, },    { 0x0000091e, 0x20000000, },
 321         { 0x00000a20, 0x00000000, },    { 0x00000a22, 0x20000000, },
 322         { 0x00000a24, 0x00000000, },    { 0x00000a26, 0x20000000, },
 323         { 0x00000a28, 0x00000000, },    { 0x00000a2a, 0x20000000, },
 324         { 0x00000a2c, 0x00000000, },    { 0x00000a2e, 0x20000000, },
 325         { 0x00000b30, 0x00000000, },    { 0x00000b32, 0x20000000, },
 326         { 0x00000b34, 0x00000000, },    { 0x00000b36, 0x20000000, },
 327         { 0x00000b38, 0x00000000, },    { 0x00000b3a, 0x20000000, },
 328         { 0x00000b3c, 0x00000000, },    { 0x00000b3e, 0x20000000, },
 329         { 0x00000c00, 0x00000000, },    { 0x00000c02, 0x20000000, },
 330         { 0x00000c04, 0x00000000, },    { 0x00000c06, 0x20000000, },
 331         { 0x00000c08, 0x00000000, },    { 0x00000c0a, 0x20000000, },
 332         { 0x00000c0c, 0x00000000, },    { 0x00000c0e, 0x20000000, },
 333         { 0x00000d10, 0x00000000, },    { 0x00000d12, 0x20000000, },
 334         { 0x00000d14, 0x00000000, },    { 0x00000d16, 0x20000000, },
 335         { 0x00000d18, 0x00000000, },    { 0x00000d1a, 0x20000000, },
 336         { 0x00000d1c, 0x00000000, },    { 0x00000d1e, 0x20000000, },
 337         { 0x00000e20, 0x00000000, },    { 0x00000e22, 0x20000000, },
 338         { 0x00000e24, 0x00000000, },    { 0x00000e26, 0x20000000, },
 339         { 0x00000e28, 0x00000000, },    { 0x00000e2a, 0x20000000, },
 340         { 0x00000e2c, 0x00000000, },    { 0x00000e2e, 0x20000000, },
 341         { 0x00000f30, 0x00000000, },    { 0x00000f32, 0x20000000, },
 342         { 0x00000f34, 0x00000000, },    { 0x00000f36, 0x20000000, },
 343         { 0x00000f38, 0x00000000, },    { 0x00000f3a, 0x20000000, },
 344         { 0x00000f3c, 0x00000000, },    { 0x00000f3e, 0x20000000, },
 345         { 0x00011000, 0x00000000, },    { 0x00011002, 0x20000000, },
 346         { 0x00011004, 0x00000000, },    { 0x00011006, 0x20000000, },
 347         { 0x00011008, 0x00000000, },    { 0x0001100a, 0x20000000, },
 348         { 0x0001100c, 0x00000000, },    { 0x0001100e, 0x20000000, },
 349         { 0x00011110, 0x00000000, },    { 0x00011112, 0x20000000, },
 350         { 0x00011114, 0x00000000, },    { 0x00011116, 0x20000000, },
 351         { 0x00011118, 0x00000000, },    { 0x0001111a, 0x20000000, },
 352         { 0x0001111c, 0x00000000, },    { 0x0001111e, 0x20000000, },
 353         { 0x00011220, 0x00000000, },    { 0x00011222, 0x20000000, },
 354         { 0x00011224, 0x00000000, },    { 0x00011226, 0x20000000, },
 355         { 0x00011228, 0x00000000, },    { 0x0001122a, 0x20000000, },
 356         { 0x0001122c, 0x00000000, },    { 0x0001122e, 0x20000000, },
 357         { 0x00011330, 0x00000000, },    { 0x00011332, 0x20000000, },
 358         { 0x00011334, 0x00000000, },    { 0x00011336, 0x20000000, },
 359         { 0x00011338, 0x00000000, },    { 0x0001133a, 0x20000000, },
 360         { 0x0001133c, 0x00000000, },    { 0x0001133e, 0x20000000, },
 361         { 0x00011400, 0x00000000, },    { 0x00011402, 0x20000000, },
 362         { 0x00011404, 0x00000000, },    { 0x00011406, 0x20000000, },
 363         { 0x00011408, 0x00000000, },    { 0x0001140a, 0x20000000, },
 364         { 0x0001140c, 0x00000000, },    { 0x0001140e, 0x20000000, },
 365         { 0x00011510, 0x00000000, },    { 0x00011512, 0x20000000, },
 366         { 0x00011514, 0x00000000, },    { 0x00011516, 0x20000000, },
 367         { 0x00011518, 0x00000000, },    { 0x0001151a, 0x20000000, },
 368         { 0x0001151c, 0x00000000, },    { 0x0001151e, 0x20000000, },
 369         { 0x00011620, 0x00000000, },    { 0x00011622, 0x20000000, },
 370         { 0x00011624, 0x00000000, },    { 0x00011626, 0x20000000, },
 371         { 0x00011628, 0x00000000, },    { 0x0001162a, 0x20000000, },
 372         { 0x0001162c, 0x00000000, },    { 0x0001162e, 0x20000000, },
 373         { 0x00011730, 0x00000000, },    { 0x00011732, 0x20000000, },
 374         { 0x00011734, 0x00000000, },    { 0x00011736, 0x20000000, },
 375         { 0x00011738, 0x00000000, },    { 0x0001173a, 0x20000000, },
 376         { 0x0001173c, 0x00000000, },    { 0x0001173e, 0x20000000, },
 377         { 0x00011800, 0x00000000, },    { 0x00011802, 0x20000000, },
 378         { 0x00011804, 0x00000000, },    { 0x00011806, 0x20000000, },
 379         { 0x00011808, 0x00000000, },    { 0x0001180a, 0x20000000, },
 380         { 0x0001180c, 0x00000000, },    { 0x0001180e, 0x20000000, },
 381         { 0x00011910, 0x00000000, },    { 0x00011912, 0x20000000, },
 382         { 0x00011914, 0x00000000, },    { 0x00011916, 0x20000000, },
 383         { 0x00011918, 0x00000000, },    { 0x0001191a, 0x20000000, },
 384         { 0x0001191c, 0x00000000, },    { 0x0001191e, 0x20000000, },
 385         { 0x00011a20, 0x00000000, },    { 0x00011a22, 0x20000000, },
 386         { 0x00011a24, 0x00000000, },    { 0x00011a26, 0x20000000, },
 387         { 0x00011a28, 0x00000000, },    { 0x00011a2a, 0x20000000, },
 388         { 0x00011a2c, 0x00000000, },    { 0x00011a2e, 0x20000000, },
 389         { 0x00011b30, 0x00000000, },    { 0x00011b32, 0x20000000, },
 390         { 0x00011b34, 0x00000000, },    { 0x00011b36, 0x20000000, },
 391         { 0x00011b38, 0x00000000, },    { 0x00011b3a, 0x20000000, },
 392         { 0x00011b3c, 0x00000000, },    { 0x00011b3e, 0x20000000, },
 393         { 0x00011c00, 0x00000000, },    { 0x00011c02, 0x20000000, },
 394         { 0x00011c04, 0x00000000, },    { 0x00011c06, 0x20000000, },
 395         { 0x00011c08, 0x00000000, },    { 0x00011c0a, 0x20000000, },
 396         { 0x00011c0c, 0x00000000, },    { 0x00011c0e, 0x20000000, },
 397         { 0x00011d10, 0x00000000, },    { 0x00011d12, 0x20000000, },
 398         { 0x00011d14, 0x00000000, },    { 0x00011d16, 0x20000000, },
 399         { 0x00011d18, 0x00000000, },    { 0x00011d1a, 0x20000000, },
 400         { 0x00011d1c, 0x00000000, },    { 0x00011d1e, 0x20000000, },
 401         { 0x00011e20, 0x00000000, },    { 0x00011e22, 0x20000000, },
 402         { 0x00011e24, 0x00000000, },    { 0x00011e26, 0x20000000, },
 403         { 0x00011e28, 0x00000000, },    { 0x00011e2a, 0x20000000, },
 404         { 0x00011e2c, 0x00000000, },    { 0x00011e2e, 0x20000000, },
 405         { 0x00011f30, 0x00000000, },    { 0x00011f32, 0x20000000, },
 406         { 0x00011f34, 0x00000000, },    { 0x00011f36, 0x20000000, },
 407         { 0x00011f38, 0x00000000, },    { 0x00011f3a, 0x20000000, },
 408         { 0x00011f3c, 0x00000000, },    { 0x00011f3e, 0x20000000, }, },
 409 
 410         {{ 0x00000000, 0x00000000, },   { 0x00000000, 0x00022000, },
 411         { 0x00000000, 0x00040000, },    { 0x00000000, 0x00062000, },
 412         { 0x00000000, 0x00080000, },    { 0x00000000, 0x000a2000, },
 413         { 0x00000000, 0x000c0000, },    { 0x00000000, 0x000e2000, },
 414         { 0x00000000, 0x01100000, },    { 0x00000000, 0x01122000, },
 415         { 0x00000000, 0x01140000, },    { 0x00000000, 0x01162000, },
 416         { 0x00000000, 0x01180000, },    { 0x00000000, 0x011a2000, },
 417         { 0x00000000, 0x011c0000, },    { 0x00000000, 0x011e2000, },
 418         { 0x00000000, 0x02200000, },    { 0x00000000, 0x02222000, },
 419         { 0x00000000, 0x02240000, },    { 0x00000000, 0x02262000, },
 420         { 0x00000000, 0x02280000, },    { 0x00000000, 0x022a2000, },
 421         { 0x00000000, 0x022c0000, },    { 0x00000000, 0x022e2000, },
 422         { 0x00000000, 0x03300000, },    { 0x00000000, 0x03322000, },
 423         { 0x00000000, 0x03340000, },    { 0x00000000, 0x03362000, },
 424         { 0x00000000, 0x03380000, },    { 0x00000000, 0x033a2000, },
 425         { 0x00000000, 0x033c0000, },    { 0x00000000, 0x033e2000, },
 426         { 0x00000000, 0x04000000, },    { 0x00000000, 0x04022000, },
 427         { 0x00000000, 0x04040000, },    { 0x00000000, 0x04062000, },
 428         { 0x00000000, 0x04080000, },    { 0x00000000, 0x040a2000, },
 429         { 0x00000000, 0x040c0000, },    { 0x00000000, 0x040e2000, },
 430         { 0x00000000, 0x05100000, },    { 0x00000000, 0x05122000, },
 431         { 0x00000000, 0x05140000, },    { 0x00000000, 0x05162000, },
 432         { 0x00000000, 0x05180000, },    { 0x00000000, 0x051a2000, },
 433         { 0x00000000, 0x051c0000, },    { 0x00000000, 0x051e2000, },
 434         { 0x00000000, 0x06200000, },    { 0x00000000, 0x06222000, },
 435         { 0x00000000, 0x06240000, },    { 0x00000000, 0x06262000, },
 436         { 0x00000000, 0x06280000, },    { 0x00000000, 0x062a2000, },
 437         { 0x00000000, 0x062c0000, },    { 0x00000000, 0x062e2000, },
 438         { 0x00000000, 0x07300000, },    { 0x00000000, 0x07322000, },
 439         { 0x00000000, 0x07340000, },    { 0x00000000, 0x07362000, },
 440         { 0x00000000, 0x07380000, },    { 0x00000000, 0x073a2000, },
 441         { 0x00000000, 0x073c0000, },    { 0x00000000, 0x073e2000, },
 442         { 0x00000000, 0x08000000, },    { 0x00000000, 0x08022000, },
 443         { 0x00000000, 0x08040000, },    { 0x00000000, 0x08062000, },
 444         { 0x00000000, 0x08080000, },    { 0x00000000, 0x080a2000, },
 445         { 0x00000000, 0x080c0000, },    { 0x00000000, 0x080e2000, },
 446         { 0x00000000, 0x09100000, },    { 0x00000000, 0x09122000, },
 447         { 0x00000000, 0x09140000, },    { 0x00000000, 0x09162000, },
 448         { 0x00000000, 0x09180000, },    { 0x00000000, 0x091a2000, },
 449         { 0x00000000, 0x091c0000, },    { 0x00000000, 0x091e2000, },
 450         { 0x00000000, 0x0a200000, },    { 0x00000000, 0x0a222000, },
 451         { 0x00000000, 0x0a240000, },    { 0x00000000, 0x0a262000, },
 452         { 0x00000000, 0x0a280000, },    { 0x00000000, 0x0a2a2000, },
 453         { 0x00000000, 0x0a2c0000, },    { 0x00000000, 0x0a2e2000, },
 454         { 0x00000000, 0x0b300000, },    { 0x00000000, 0x0b322000, },
 455         { 0x00000000, 0x0b340000, },    { 0x00000000, 0x0b362000, },
 456         { 0x00000000, 0x0b380000, },    { 0x00000000, 0x0b3a2000, },
 457         { 0x00000000, 0x0b3c0000, },    { 0x00000000, 0x0b3e2000, },
 458         { 0x00000000, 0x0c000000, },    { 0x00000000, 0x0c022000, },
 459         { 0x00000000, 0x0c040000, },    { 0x00000000, 0x0c062000, },
 460         { 0x00000000, 0x0c080000, },    { 0x00000000, 0x0c0a2000, },
 461         { 0x00000000, 0x0c0c0000, },    { 0x00000000, 0x0c0e2000, },
 462         { 0x00000000, 0x0d100000, },    { 0x00000000, 0x0d122000, },
 463         { 0x00000000, 0x0d140000, },    { 0x00000000, 0x0d162000, },
 464         { 0x00000000, 0x0d180000, },    { 0x00000000, 0x0d1a2000, },
 465         { 0x00000000, 0x0d1c0000, },    { 0x00000000, 0x0d1e2000, },
 466         { 0x00000000, 0x0e200000, },    { 0x00000000, 0x0e222000, },
 467         { 0x00000000, 0x0e240000, },    { 0x00000000, 0x0e262000, },
 468         { 0x00000000, 0x0e280000, },    { 0x00000000, 0x0e2a2000, },
 469         { 0x00000000, 0x0e2c0000, },    { 0x00000000, 0x0e2e2000, },
 470         { 0x00000000, 0x0f300000, },    { 0x00000000, 0x0f322000, },
 471         { 0x00000000, 0x0f340000, },    { 0x00000000, 0x0f362000, },
 472         { 0x00000000, 0x0f380000, },    { 0x00000000, 0x0f3a2000, },
 473         { 0x00000000, 0x0f3c0000, },    { 0x00000000, 0x0f3e2000, },
 474         { 0x00000001, 0x10000000, },    { 0x00000001, 0x10022000, },
 475         { 0x00000001, 0x10040000, },    { 0x00000001, 0x10062000, },
 476         { 0x00000001, 0x10080000, },    { 0x00000001, 0x100a2000, },
 477         { 0x00000001, 0x100c0000, },    { 0x00000001, 0x100e2000, },
 478         { 0x00000001, 0x11100000, },    { 0x00000001, 0x11122000, },
 479         { 0x00000001, 0x11140000, },    { 0x00000001, 0x11162000, },
 480         { 0x00000001, 0x11180000, },    { 0x00000001, 0x111a2000, },
 481         { 0x00000001, 0x111c0000, },    { 0x00000001, 0x111e2000, },
 482         { 0x00000001, 0x12200000, },    { 0x00000001, 0x12222000, },
 483         { 0x00000001, 0x12240000, },    { 0x00000001, 0x12262000, },
 484         { 0x00000001, 0x12280000, },    { 0x00000001, 0x122a2000, },
 485         { 0x00000001, 0x122c0000, },    { 0x00000001, 0x122e2000, },
 486         { 0x00000001, 0x13300000, },    { 0x00000001, 0x13322000, },
 487         { 0x00000001, 0x13340000, },    { 0x00000001, 0x13362000, },
 488         { 0x00000001, 0x13380000, },    { 0x00000001, 0x133a2000, },
 489         { 0x00000001, 0x133c0000, },    { 0x00000001, 0x133e2000, },
 490         { 0x00000001, 0x14000000, },    { 0x00000001, 0x14022000, },
 491         { 0x00000001, 0x14040000, },    { 0x00000001, 0x14062000, },
 492         { 0x00000001, 0x14080000, },    { 0x00000001, 0x140a2000, },
 493         { 0x00000001, 0x140c0000, },    { 0x00000001, 0x140e2000, },
 494         { 0x00000001, 0x15100000, },    { 0x00000001, 0x15122000, },
 495         { 0x00000001, 0x15140000, },    { 0x00000001, 0x15162000, },
 496         { 0x00000001, 0x15180000, },    { 0x00000001, 0x151a2000, },
 497         { 0x00000001, 0x151c0000, },    { 0x00000001, 0x151e2000, },
 498         { 0x00000001, 0x16200000, },    { 0x00000001, 0x16222000, },
 499         { 0x00000001, 0x16240000, },    { 0x00000001, 0x16262000, },
 500         { 0x00000001, 0x16280000, },    { 0x00000001, 0x162a2000, },
 501         { 0x00000001, 0x162c0000, },    { 0x00000001, 0x162e2000, },
 502         { 0x00000001, 0x17300000, },    { 0x00000001, 0x17322000, },
 503         { 0x00000001, 0x17340000, },    { 0x00000001, 0x17362000, },
 504         { 0x00000001, 0x17380000, },    { 0x00000001, 0x173a2000, },
 505         { 0x00000001, 0x173c0000, },    { 0x00000001, 0x173e2000, },
 506         { 0x00000001, 0x18000000, },    { 0x00000001, 0x18022000, },
 507         { 0x00000001, 0x18040000, },    { 0x00000001, 0x18062000, },
 508         { 0x00000001, 0x18080000, },    { 0x00000001, 0x180a2000, },
 509         { 0x00000001, 0x180c0000, },    { 0x00000001, 0x180e2000, },
 510         { 0x00000001, 0x19100000, },    { 0x00000001, 0x19122000, },
 511         { 0x00000001, 0x19140000, },    { 0x00000001, 0x19162000, },
 512         { 0x00000001, 0x19180000, },    { 0x00000001, 0x191a2000, },
 513         { 0x00000001, 0x191c0000, },    { 0x00000001, 0x191e2000, },
 514         { 0x00000001, 0x1a200000, },    { 0x00000001, 0x1a222000, },
 515         { 0x00000001, 0x1a240000, },    { 0x00000001, 0x1a262000, },
 516         { 0x00000001, 0x1a280000, },    { 0x00000001, 0x1a2a2000, },
 517         { 0x00000001, 0x1a2c0000, },    { 0x00000001, 0x1a2e2000, },
 518         { 0x00000001, 0x1b300000, },    { 0x00000001, 0x1b322000, },
 519         { 0x00000001, 0x1b340000, },    { 0x00000001, 0x1b362000, },
 520         { 0x00000001, 0x1b380000, },    { 0x00000001, 0x1b3a2000, },
 521         { 0x00000001, 0x1b3c0000, },    { 0x00000001, 0x1b3e2000, },
 522         { 0x00000001, 0x1c000000, },    { 0x00000001, 0x1c022000, },
 523         { 0x00000001, 0x1c040000, },    { 0x00000001, 0x1c062000, },
 524         { 0x00000001, 0x1c080000, },    { 0x00000001, 0x1c0a2000, },
 525         { 0x00000001, 0x1c0c0000, },    { 0x00000001, 0x1c0e2000, },
 526         { 0x00000001, 0x1d100000, },    { 0x00000001, 0x1d122000, },
 527         { 0x00000001, 0x1d140000, },    { 0x00000001, 0x1d162000, },
 528         { 0x00000001, 0x1d180000, },    { 0x00000001, 0x1d1a2000, },
 529         { 0x00000001, 0x1d1c0000, },    { 0x00000001, 0x1d1e2000, },
 530         { 0x00000001, 0x1e200000, },    { 0x00000001, 0x1e222000, },
 531         { 0x00000001, 0x1e240000, },    { 0x00000001, 0x1e262000, },
 532         { 0x00000001, 0x1e280000, },    { 0x00000001, 0x1e2a2000, },
 533         { 0x00000001, 0x1e2c0000, },    { 0x00000001, 0x1e2e2000, },
 534         { 0x00000001, 0x1f300000, },    { 0x00000001, 0x1f322000, },
 535         { 0x00000001, 0x1f340000, },    { 0x00000001, 0x1f362000, },
 536         { 0x00000001, 0x1f380000, },    { 0x00000001, 0x1f3a2000, },
 537         { 0x00000001, 0x1f3c0000, },    { 0x00000001, 0x1f3e2000, }, },
 538 
 539         {{ 0x00000000, 0x00000000, },   { 0x20000000, 0x00000002, },
 540         { 0x00000000, 0x00000004, },    { 0x20000000, 0x00000006, },
 541         { 0x00000000, 0x00000008, },    { 0x20000000, 0x0000000a, },
 542         { 0x00000000, 0x0000000c, },    { 0x20000000, 0x0000000e, },
 543         { 0x00000000, 0x00000110, },    { 0x20000000, 0x00000112, },
 544         { 0x00000000, 0x00000114, },    { 0x20000000, 0x00000116, },
 545         { 0x00000000, 0x00000118, },    { 0x20000000, 0x0000011a, },
 546         { 0x00000000, 0x0000011c, },    { 0x20000000, 0x0000011e, },
 547         { 0x00000000, 0x00000220, },    { 0x20000000, 0x00000222, },
 548         { 0x00000000, 0x00000224, },    { 0x20000000, 0x00000226, },
 549         { 0x00000000, 0x00000228, },    { 0x20000000, 0x0000022a, },
 550         { 0x00000000, 0x0000022c, },    { 0x20000000, 0x0000022e, },
 551         { 0x00000000, 0x00000330, },    { 0x20000000, 0x00000332, },
 552         { 0x00000000, 0x00000334, },    { 0x20000000, 0x00000336, },
 553         { 0x00000000, 0x00000338, },    { 0x20000000, 0x0000033a, },
 554         { 0x00000000, 0x0000033c, },    { 0x20000000, 0x0000033e, },
 555         { 0x00000000, 0x00000400, },    { 0x20000000, 0x00000402, },
 556         { 0x00000000, 0x00000404, },    { 0x20000000, 0x00000406, },
 557         { 0x00000000, 0x00000408, },    { 0x20000000, 0x0000040a, },
 558         { 0x00000000, 0x0000040c, },    { 0x20000000, 0x0000040e, },
 559         { 0x00000000, 0x00000510, },    { 0x20000000, 0x00000512, },
 560         { 0x00000000, 0x00000514, },    { 0x20000000, 0x00000516, },
 561         { 0x00000000, 0x00000518, },    { 0x20000000, 0x0000051a, },
 562         { 0x00000000, 0x0000051c, },    { 0x20000000, 0x0000051e, },
 563         { 0x00000000, 0x00000620, },    { 0x20000000, 0x00000622, },
 564         { 0x00000000, 0x00000624, },    { 0x20000000, 0x00000626, },
 565         { 0x00000000, 0x00000628, },    { 0x20000000, 0x0000062a, },
 566         { 0x00000000, 0x0000062c, },    { 0x20000000, 0x0000062e, },
 567         { 0x00000000, 0x00000730, },    { 0x20000000, 0x00000732, },
 568         { 0x00000000, 0x00000734, },    { 0x20000000, 0x00000736, },
 569         { 0x00000000, 0x00000738, },    { 0x20000000, 0x0000073a, },
 570         { 0x00000000, 0x0000073c, },    { 0x20000000, 0x0000073e, },
 571         { 0x00000000, 0x00000800, },    { 0x20000000, 0x00000802, },
 572         { 0x00000000, 0x00000804, },    { 0x20000000, 0x00000806, },
 573         { 0x00000000, 0x00000808, },    { 0x20000000, 0x0000080a, },
 574         { 0x00000000, 0x0000080c, },    { 0x20000000, 0x0000080e, },
 575         { 0x00000000, 0x00000910, },    { 0x20000000, 0x00000912, },
 576         { 0x00000000, 0x00000914, },    { 0x20000000, 0x00000916, },
 577         { 0x00000000, 0x00000918, },    { 0x20000000, 0x0000091a, },
 578         { 0x00000000, 0x0000091c, },    { 0x20000000, 0x0000091e, },
 579         { 0x00000000, 0x00000a20, },    { 0x20000000, 0x00000a22, },
 580         { 0x00000000, 0x00000a24, },    { 0x20000000, 0x00000a26, },
 581         { 0x00000000, 0x00000a28, },    { 0x20000000, 0x00000a2a, },
 582         { 0x00000000, 0x00000a2c, },    { 0x20000000, 0x00000a2e, },
 583         { 0x00000000, 0x00000b30, },    { 0x20000000, 0x00000b32, },
 584         { 0x00000000, 0x00000b34, },    { 0x20000000, 0x00000b36, },
 585         { 0x00000000, 0x00000b38, },    { 0x20000000, 0x00000b3a, },
 586         { 0x00000000, 0x00000b3c, },    { 0x20000000, 0x00000b3e, },
 587         { 0x00000000, 0x00000c00, },    { 0x20000000, 0x00000c02, },
 588         { 0x00000000, 0x00000c04, },    { 0x20000000, 0x00000c06, },
 589         { 0x00000000, 0x00000c08, },    { 0x20000000, 0x00000c0a, },
 590         { 0x00000000, 0x00000c0c, },    { 0x20000000, 0x00000c0e, },
 591         { 0x00000000, 0x00000d10, },    { 0x20000000, 0x00000d12, },
 592         { 0x00000000, 0x00000d14, },    { 0x20000000, 0x00000d16, },
 593         { 0x00000000, 0x00000d18, },    { 0x20000000, 0x00000d1a, },
 594         { 0x00000000, 0x00000d1c, },    { 0x20000000, 0x00000d1e, },
 595         { 0x00000000, 0x00000e20, },    { 0x20000000, 0x00000e22, },
 596         { 0x00000000, 0x00000e24, },    { 0x20000000, 0x00000e26, },
 597         { 0x00000000, 0x00000e28, },    { 0x20000000, 0x00000e2a, },
 598         { 0x00000000, 0x00000e2c, },    { 0x20000000, 0x00000e2e, },
 599         { 0x00000000, 0x00000f30, },    { 0x20000000, 0x00000f32, },
 600         { 0x00000000, 0x00000f34, },    { 0x20000000, 0x00000f36, },
 601         { 0x00000000, 0x00000f38, },    { 0x20000000, 0x00000f3a, },
 602         { 0x00000000, 0x00000f3c, },    { 0x20000000, 0x00000f3e, },
 603         { 0x00000000, 0x00011000, },    { 0x20000000, 0x00011002, },
 604         { 0x00000000, 0x00011004, },    { 0x20000000, 0x00011006, },
 605         { 0x00000000, 0x00011008, },    { 0x20000000, 0x0001100a, },
 606         { 0x00000000, 0x0001100c, },    { 0x20000000, 0x0001100e, },
 607         { 0x00000000, 0x00011110, },    { 0x20000000, 0x00011112, },
 608         { 0x00000000, 0x00011114, },    { 0x20000000, 0x00011116, },
 609         { 0x00000000, 0x00011118, },    { 0x20000000, 0x0001111a, },
 610         { 0x00000000, 0x0001111c, },    { 0x20000000, 0x0001111e, },
 611         { 0x00000000, 0x00011220, },    { 0x20000000, 0x00011222, },
 612         { 0x00000000, 0x00011224, },    { 0x20000000, 0x00011226, },
 613         { 0x00000000, 0x00011228, },    { 0x20000000, 0x0001122a, },
 614         { 0x00000000, 0x0001122c, },    { 0x20000000, 0x0001122e, },
 615         { 0x00000000, 0x00011330, },    { 0x20000000, 0x00011332, },
 616         { 0x00000000, 0x00011334, },    { 0x20000000, 0x00011336, },
 617         { 0x00000000, 0x00011338, },    { 0x20000000, 0x0001133a, },
 618         { 0x00000000, 0x0001133c, },    { 0x20000000, 0x0001133e, },
 619         { 0x00000000, 0x00011400, },    { 0x20000000, 0x00011402, },
 620         { 0x00000000, 0x00011404, },    { 0x20000000, 0x00011406, },
 621         { 0x00000000, 0x00011408, },    { 0x20000000, 0x0001140a, },
 622         { 0x00000000, 0x0001140c, },    { 0x20000000, 0x0001140e, },
 623         { 0x00000000, 0x00011510, },    { 0x20000000, 0x00011512, },
 624         { 0x00000000, 0x00011514, },    { 0x20000000, 0x00011516, },
 625         { 0x00000000, 0x00011518, },    { 0x20000000, 0x0001151a, },
 626         { 0x00000000, 0x0001151c, },    { 0x20000000, 0x0001151e, },
 627         { 0x00000000, 0x00011620, },    { 0x20000000, 0x00011622, },
 628         { 0x00000000, 0x00011624, },    { 0x20000000, 0x00011626, },
 629         { 0x00000000, 0x00011628, },    { 0x20000000, 0x0001162a, },
 630         { 0x00000000, 0x0001162c, },    { 0x20000000, 0x0001162e, },
 631         { 0x00000000, 0x00011730, },    { 0x20000000, 0x00011732, },
 632         { 0x00000000, 0x00011734, },    { 0x20000000, 0x00011736, },
 633         { 0x00000000, 0x00011738, },    { 0x20000000, 0x0001173a, },
 634         { 0x00000000, 0x0001173c, },    { 0x20000000, 0x0001173e, },
 635         { 0x00000000, 0x00011800, },    { 0x20000000, 0x00011802, },
 636         { 0x00000000, 0x00011804, },    { 0x20000000, 0x00011806, },
 637         { 0x00000000, 0x00011808, },    { 0x20000000, 0x0001180a, },
 638         { 0x00000000, 0x0001180c, },    { 0x20000000, 0x0001180e, },
 639         { 0x00000000, 0x00011910, },    { 0x20000000, 0x00011912, },
 640         { 0x00000000, 0x00011914, },    { 0x20000000, 0x00011916, },
 641         { 0x00000000, 0x00011918, },    { 0x20000000, 0x0001191a, },
 642         { 0x00000000, 0x0001191c, },    { 0x20000000, 0x0001191e, },
 643         { 0x00000000, 0x00011a20, },    { 0x20000000, 0x00011a22, },
 644         { 0x00000000, 0x00011a24, },    { 0x20000000, 0x00011a26, },
 645         { 0x00000000, 0x00011a28, },    { 0x20000000, 0x00011a2a, },
 646         { 0x00000000, 0x00011a2c, },    { 0x20000000, 0x00011a2e, },
 647         { 0x00000000, 0x00011b30, },    { 0x20000000, 0x00011b32, },
 648         { 0x00000000, 0x00011b34, },    { 0x20000000, 0x00011b36, },
 649         { 0x00000000, 0x00011b38, },    { 0x20000000, 0x00011b3a, },
 650         { 0x00000000, 0x00011b3c, },    { 0x20000000, 0x00011b3e, },
 651         { 0x00000000, 0x00011c00, },    { 0x20000000, 0x00011c02, },
 652         { 0x00000000, 0x00011c04, },    { 0x20000000, 0x00011c06, },
 653         { 0x00000000, 0x00011c08, },    { 0x20000000, 0x00011c0a, },
 654         { 0x00000000, 0x00011c0c, },    { 0x20000000, 0x00011c0e, },
 655         { 0x00000000, 0x00011d10, },    { 0x20000000, 0x00011d12, },
 656         { 0x00000000, 0x00011d14, },    { 0x20000000, 0x00011d16, },
 657         { 0x00000000, 0x00011d18, },    { 0x20000000, 0x00011d1a, },
 658         { 0x00000000, 0x00011d1c, },    { 0x20000000, 0x00011d1e, },
 659         { 0x00000000, 0x00011e20, },    { 0x20000000, 0x00011e22, },
 660         { 0x00000000, 0x00011e24, },    { 0x20000000, 0x00011e26, },
 661         { 0x00000000, 0x00011e28, },    { 0x20000000, 0x00011e2a, },
 662         { 0x00000000, 0x00011e2c, },    { 0x20000000, 0x00011e2e, },
 663         { 0x00000000, 0x00011f30, },    { 0x20000000, 0x00011f32, },
 664         { 0x00000000, 0x00011f34, },    { 0x20000000, 0x00011f36, },
 665         { 0x00000000, 0x00011f38, },    { 0x20000000, 0x00011f3a, },
 666         { 0x00000000, 0x00011f3c, },    { 0x20000000, 0x00011f3e, }, }
 667 };
 668 
 669 /*
 670  * The 8 selection functions.
 671  * 8 functions to map 6 bits to 64 bits
 672  */
 673 const   uint32_t  S_tab[8][64] = {
 674         {
 675                 0xe0000000U, 0x00000000U, 0x40000000U, 0xf0000000U,
 676                 0xd0000000U, 0x70000000U, 0x10000000U, 0x40000000U,
 677                 0x20000000U, 0xe0000000U, 0xf0000000U, 0x20000000U,
 678                 0xb0000000U, 0xd0000000U, 0x80000000U, 0x10000000U,
 679                 0x30000000U, 0xa0000000U, 0xa0000000U, 0x60000000U,
 680                 0x60000000U, 0xc0000000U, 0xc0000000U, 0xb0000000U,
 681                 0x50000000U, 0x90000000U, 0x90000000U, 0x50000000U,
 682                 0x00000000U, 0x30000000U, 0x70000000U, 0x80000000U,
 683                 0x40000000U, 0xf0000000U, 0x10000000U, 0xc0000000U,
 684                 0xe0000000U, 0x80000000U, 0x80000000U, 0x20000000U,
 685                 0xd0000000U, 0x40000000U, 0x60000000U, 0x90000000U,
 686                 0x20000000U, 0x10000000U, 0xb0000000U, 0x70000000U,
 687                 0xf0000000U, 0x50000000U, 0xc0000000U, 0xb0000000U,
 688                 0x90000000U, 0x30000000U, 0x70000000U, 0xe0000000U,
 689                 0x30000000U, 0xa0000000U, 0xa0000000U, 0x00000000U,
 690                 0x50000000U, 0x60000000U, 0x00000000U, 0xd0000000U,
 691         },
 692         {
 693                 0x0f000000U, 0x03000000U, 0x01000000U, 0x0d000000U,
 694                 0x08000000U, 0x04000000U, 0x0e000000U, 0x07000000U,
 695                 0x06000000U, 0x0f000000U, 0x0b000000U, 0x02000000U,
 696                 0x03000000U, 0x08000000U, 0x04000000U, 0x0e000000U,
 697                 0x09000000U, 0x0c000000U, 0x07000000U, 0x00000000U,
 698                 0x02000000U, 0x01000000U, 0x0d000000U, 0x0a000000U,
 699                 0x0c000000U, 0x06000000U, 0x00000000U, 0x09000000U,
 700                 0x05000000U, 0x0b000000U, 0x0a000000U, 0x05000000U,
 701                 0x00000000U, 0x0d000000U, 0x0e000000U, 0x08000000U,
 702                 0x07000000U, 0x0a000000U, 0x0b000000U, 0x01000000U,
 703                 0x0a000000U, 0x03000000U, 0x04000000U, 0x0f000000U,
 704                 0x0d000000U, 0x04000000U, 0x01000000U, 0x02000000U,
 705                 0x05000000U, 0x0b000000U, 0x08000000U, 0x06000000U,
 706                 0x0c000000U, 0x07000000U, 0x06000000U, 0x0c000000U,
 707                 0x09000000U, 0x00000000U, 0x03000000U, 0x05000000U,
 708                 0x02000000U, 0x0e000000U, 0x0f000000U, 0x09000000U,
 709         },
 710         {
 711                 0x00a00000U, 0x00d00000U, 0x00000000U, 0x00700000U,
 712                 0x00900000U, 0x00000000U, 0x00e00000U, 0x00900000U,
 713                 0x00600000U, 0x00300000U, 0x00300000U, 0x00400000U,
 714                 0x00f00000U, 0x00600000U, 0x00500000U, 0x00a00000U,
 715                 0x00100000U, 0x00200000U, 0x00d00000U, 0x00800000U,
 716                 0x00c00000U, 0x00500000U, 0x00700000U, 0x00e00000U,
 717                 0x00b00000U, 0x00c00000U, 0x00400000U, 0x00b00000U,
 718                 0x00200000U, 0x00f00000U, 0x00800000U, 0x00100000U,
 719                 0x00d00000U, 0x00100000U, 0x00600000U, 0x00a00000U,
 720                 0x00400000U, 0x00d00000U, 0x00900000U, 0x00000000U,
 721                 0x00800000U, 0x00600000U, 0x00f00000U, 0x00900000U,
 722                 0x00300000U, 0x00800000U, 0x00000000U, 0x00700000U,
 723                 0x00b00000U, 0x00400000U, 0x00100000U, 0x00f00000U,
 724                 0x00200000U, 0x00e00000U, 0x00c00000U, 0x00300000U,
 725                 0x00500000U, 0x00b00000U, 0x00a00000U, 0x00500000U,
 726                 0x00e00000U, 0x00200000U, 0x00700000U, 0x00c00000U,
 727         },
 728         {
 729                 0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U,
 730                 0x000e0000U, 0x000b0000U, 0x00030000, 0x00050000U,
 731                 0x00000000U, 0x00060000U, 0x00060000, 0x000f0000U,
 732                 0x00090000U, 0x00000000U, 0x000a0000, 0x00030000U,
 733                 0x00010000U, 0x00040000U, 0x00020000, 0x00070000U,
 734                 0x00080000U, 0x00020000U, 0x00050000, 0x000c0000U,
 735                 0x000b0000U, 0x00010000U, 0x000c0000, 0x000a0000U,
 736                 0x00040000U, 0x000e0000U, 0x000f0000, 0x00090000U,
 737                 0x000a0000U, 0x00030000U, 0x00060000, 0x000f0000U,
 738                 0x00090000U, 0x00000000U, 0x00000000, 0x00060000U,
 739                 0x000c0000U, 0x000a0000U, 0x000b0000, 0x00010000U,
 740                 0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U,
 741                 0x000f0000U, 0x00090000U, 0x00010000, 0x00040000U,
 742                 0x00030000U, 0x00050000U, 0x000e0000, 0x000b0000U,
 743                 0x00050000U, 0x000c0000U, 0x00020000, 0x00070000U,
 744                 0x00080000U, 0x00020000U, 0x00040000, 0x000e0000U,
 745         },
 746         {
 747                 0x00002000U, 0x0000e000U, 0x0000c000U, 0x0000b000U,
 748                 0x00004000U, 0x00002000U, 0x00001000U, 0x0000c000U,
 749                 0x00007000U, 0x00004000U, 0x0000a000U, 0x00007000U,
 750                 0x0000b000U, 0x0000d000U, 0x00006000U, 0x00001000U,
 751                 0x00008000U, 0x00005000U, 0x00005000U, 0x00000000U,
 752                 0x00003000U, 0x0000f000U, 0x0000f000U, 0x0000a000U,
 753                 0x0000d000U, 0x00003000U, 0x00000000U, 0x00009000U,
 754                 0x0000e000U, 0x00008000U, 0x00009000U, 0x00006000U,
 755                 0x00004000U, 0x0000b000U, 0x00002000U, 0x00008000U,
 756                 0x00001000U, 0x0000c000U, 0x0000b000U, 0x00007000U,
 757                 0x0000a000U, 0x00001000U, 0x0000d000U, 0x0000e000U,
 758                 0x00007000U, 0x00002000U, 0x00008000U, 0x0000d000U,
 759                 0x0000f000U, 0x00006000U, 0x00009000U, 0x0000f000U,
 760                 0x0000c000U, 0x00000000U, 0x00005000U, 0x00009000U,
 761                 0x00006000U, 0x0000a000U, 0x00003000U, 0x00004000U,
 762                 0x00000000U, 0x00005000U, 0x0000e000U, 0x00003000U,
 763         },
 764         {
 765                 0x00000c00U, 0x00000a00U, 0x00000100U, 0x00000f00U,
 766                 0x00000a00U, 0x00000400U, 0x00000f00U, 0x00000200U,
 767                 0x00000900U, 0x00000700U, 0x00000200U, 0x00000c00U,
 768                 0x00000600U, 0x00000900U, 0x00000800U, 0x00000500U,
 769                 0x00000000U, 0x00000600U, 0x00000d00U, 0x00000100U,
 770                 0x00000300U, 0x00000d00U, 0x00000400U, 0x00000e00U,
 771                 0x00000e00U, 0x00000000U, 0x00000700U, 0x00000b00U,
 772                 0x00000500U, 0x00000300U, 0x00000b00U, 0x00000800U,
 773                 0x00000900U, 0x00000400U, 0x00000e00U, 0x00000300U,
 774                 0x00000f00U, 0x00000200U, 0x00000500U, 0x00000c00U,
 775                 0x00000200U, 0x00000900U, 0x00000800U, 0x00000500U,
 776                 0x00000c00U, 0x00000f00U, 0x00000300U, 0x00000a00U,
 777                 0x00000700U, 0x00000b00U, 0x00000000U, 0x00000e00U,
 778                 0x00000400U, 0x00000100U, 0x00000a00U, 0x00000700U,
 779                 0x00000100U, 0x00000600U, 0x00000d00U, 0x00000000U,
 780                 0x00000b00U, 0x00000800U, 0x00000600U, 0x00000d00U,
 781         },
 782         {
 783                 0x00000040U, 0x000000d0U, 0x000000b0U, 0x00000000U,
 784                 0x00000020U, 0x000000b0U, 0x000000e0U, 0x00000070U,
 785                 0x000000f0U, 0x00000040U, 0x00000000U, 0x00000090U,
 786                 0x00000080U, 0x00000010U, 0x000000d0U, 0x000000a0U,
 787                 0x00000030U, 0x000000e0U, 0x000000c0U, 0x00000030U,
 788                 0x00000090U, 0x00000050U, 0x00000070U, 0x000000c0U,
 789                 0x00000050U, 0x00000020U, 0x000000a0U, 0x000000f0U,
 790                 0x00000060U, 0x00000080U, 0x00000010U, 0x00000060U,
 791                 0x00000010U, 0x00000060U, 0x00000040U, 0x000000b0U,
 792                 0x000000b0U, 0x000000d0U, 0x000000d0U, 0x00000080U,
 793                 0x000000c0U, 0x00000010U, 0x00000030U, 0x00000040U,
 794                 0x00000070U, 0x000000a0U, 0x000000e0U, 0x00000070U,
 795                 0x000000a0U, 0x00000090U, 0x000000f0U, 0x00000050U,
 796                 0x00000060U, 0x00000000U, 0x00000080U, 0x000000f0U,
 797                 0x00000000U, 0x000000e0U, 0x00000050U, 0x00000020U,
 798                 0x00000090U, 0x00000030U, 0x00000020U, 0x000000c0U,
 799         },
 800         {
 801                 0x0000000dU, 0x00000001U, 0x00000002U, 0x0000000fU,
 802                 0x00000008U, 0x0000000dU, 0x00000004U, 0x00000008U,
 803                 0x00000006U, 0x0000000aU, 0x0000000fU, 0x00000003U,
 804                 0x0000000bU, 0x00000007U, 0x00000001U, 0x00000004U,
 805                 0x0000000aU, 0x0000000cU, 0x00000009U, 0x00000005U,
 806                 0x00000003U, 0x00000006U, 0x0000000eU, 0x0000000bU,
 807                 0x00000005U, 0x00000000U, 0x00000000U, 0x0000000eU,
 808                 0x0000000cU, 0x00000009U, 0x00000007U, 0x00000002U,
 809                 0x00000007U, 0x00000002U, 0x0000000bU, 0x00000001U,
 810                 0x00000004U, 0x0000000eU, 0x00000001U, 0x00000007U,
 811                 0x00000009U, 0x00000004U, 0x0000000cU, 0x0000000aU,
 812                 0x0000000eU, 0x00000008U, 0x00000002U, 0x0000000dU,
 813                 0x00000000U, 0x0000000fU, 0x00000006U, 0x0000000cU,
 814                 0x0000000aU, 0x00000009U, 0x0000000dU, 0x00000000U,
 815                 0x0000000fU, 0x00000003U, 0x00000003U, 0x00000005U,
 816                 0x00000005U, 0x00000006U, 0x00000008U, 0x0000000bU,
 817         },
 818 };
 819 
 820 /*
 821  * Permute 32 bit output of S boxes
 822  */
 823 const   uint32_t        P_tab[4][256] = {
 824         {
 825                 0x00000000U, 0x00004000U, 0x40000000U, 0x40004000U,
 826                 0x00000010U, 0x00004010U, 0x40000010U, 0x40004010U,
 827                 0x00080000U, 0x00084000U, 0x40080000U, 0x40084000U,
 828                 0x00080010U, 0x00084010U, 0x40080010U, 0x40084010U,
 829                 0x00000002U, 0x00004002U, 0x40000002U, 0x40004002U,
 830                 0x00000012U, 0x00004012U, 0x40000012U, 0x40004012U,
 831                 0x00080002U, 0x00084002U, 0x40080002U, 0x40084002U,
 832                 0x00080012U, 0x00084012U, 0x40080012U, 0x40084012U,
 833                 0x00000200U, 0x00004200U, 0x40000200U, 0x40004200U,
 834                 0x00000210U, 0x00004210U, 0x40000210U, 0x40004210U,
 835                 0x00080200U, 0x00084200U, 0x40080200U, 0x40084200U,
 836                 0x00080210U, 0x00084210U, 0x40080210U, 0x40084210U,
 837                 0x00000202U, 0x00004202U, 0x40000202U, 0x40004202U,
 838                 0x00000212U, 0x00004212U, 0x40000212U, 0x40004212U,
 839                 0x00080202U, 0x00084202U, 0x40080202U, 0x40084202U,
 840                 0x00080212U, 0x00084212U, 0x40080212U, 0x40084212U,
 841                 0x00008000U, 0x0000c000U, 0x40008000U, 0x4000c000U,
 842                 0x00008010U, 0x0000c010U, 0x40008010U, 0x4000c010U,
 843                 0x00088000U, 0x0008c000U, 0x40088000U, 0x4008c000U,
 844                 0x00088010U, 0x0008c010U, 0x40088010U, 0x4008c010U,
 845                 0x00008002U, 0x0000c002U, 0x40008002U, 0x4000c002U,
 846                 0x00008012U, 0x0000c012U, 0x40008012U, 0x4000c012U,
 847                 0x00088002U, 0x0008c002U, 0x40088002U, 0x4008c002U,
 848                 0x00088012U, 0x0008c012U, 0x40088012U, 0x4008c012U,
 849                 0x00008200U, 0x0000c200U, 0x40008200U, 0x4000c200U,
 850                 0x00008210U, 0x0000c210U, 0x40008210U, 0x4000c210U,
 851                 0x00088200U, 0x0008c200U, 0x40088200U, 0x4008c200U,
 852                 0x00088210U, 0x0008c210U, 0x40088210U, 0x4008c210U,
 853                 0x00008202U, 0x0000c202U, 0x40008202U, 0x4000c202U,
 854                 0x00008212U, 0x0000c212U, 0x40008212U, 0x4000c212U,
 855                 0x00088202U, 0x0008c202U, 0x40088202U, 0x4008c202U,
 856                 0x00088212U, 0x0008c212U, 0x40088212U, 0x4008c212U,
 857                 0x00800000U, 0x00804000U, 0x40800000U, 0x40804000U,
 858                 0x00800010U, 0x00804010U, 0x40800010U, 0x40804010U,
 859                 0x00880000U, 0x00884000U, 0x40880000U, 0x40884000U,
 860                 0x00880010U, 0x00884010U, 0x40880010U, 0x40884010U,
 861                 0x00800002U, 0x00804002U, 0x40800002U, 0x40804002U,
 862                 0x00800012U, 0x00804012U, 0x40800012U, 0x40804012U,
 863                 0x00880002U, 0x00884002U, 0x40880002U, 0x40884002U,
 864                 0x00880012U, 0x00884012U, 0x40880012U, 0x40884012U,
 865                 0x00800200U, 0x00804200U, 0x40800200U, 0x40804200U,
 866                 0x00800210U, 0x00804210U, 0x40800210U, 0x40804210U,
 867                 0x00880200U, 0x00884200U, 0x40880200U, 0x40884200U,
 868                 0x00880210U, 0x00884210U, 0x40880210U, 0x40884210U,
 869                 0x00800202U, 0x00804202U, 0x40800202U, 0x40804202U,
 870                 0x00800212U, 0x00804212U, 0x40800212U, 0x40804212U,
 871                 0x00880202U, 0x00884202U, 0x40880202U, 0x40884202U,
 872                 0x00880212U, 0x00884212U, 0x40880212U, 0x40884212U,
 873                 0x00808000U, 0x0080c000U, 0x40808000U, 0x4080c000U,
 874                 0x00808010U, 0x0080c010U, 0x40808010U, 0x4080c010U,
 875                 0x00888000U, 0x0088c000U, 0x40888000U, 0x4088c000U,
 876                 0x00888010U, 0x0088c010U, 0x40888010U, 0x4088c010U,
 877                 0x00808002U, 0x0080c002U, 0x40808002U, 0x4080c002U,
 878                 0x00808012U, 0x0080c012U, 0x40808012U, 0x4080c012U,
 879                 0x00888002U, 0x0088c002U, 0x40888002U, 0x4088c002U,
 880                 0x00888012U, 0x0088c012U, 0x40888012U, 0x4088c012U,
 881                 0x00808200U, 0x0080c200U, 0x40808200U, 0x4080c200U,
 882                 0x00808210U, 0x0080c210U, 0x40808210U, 0x4080c210U,
 883                 0x00888200U, 0x0088c200U, 0x40888200U, 0x4088c200U,
 884                 0x00888210U, 0x0088c210U, 0x40888210U, 0x4088c210U,
 885                 0x00808202U, 0x0080c202U, 0x40808202U, 0x4080c202U,
 886                 0x00808212U, 0x0080c212U, 0x40808212U, 0x4080c212U,
 887                 0x00888202U, 0x0088c202U, 0x40888202U, 0x4088c202U,
 888                 0x00888212U, 0x0088c212U, 0x40888212U, 0x4088c212U
 889         },
 890         {
 891                 0x00000000U, 0x80000000U, 0x00400000U, 0x80400000U,
 892                 0x00001000U, 0x80001000U, 0x00401000U, 0x80401000U,
 893                 0x00000040U, 0x80000040U, 0x00400040U, 0x80400040U,
 894                 0x00001040U, 0x80001040U, 0x00401040U, 0x80401040U,
 895                 0x04000000U, 0x84000000U, 0x04400000U, 0x84400000U,
 896                 0x04001000U, 0x84001000U, 0x04401000U, 0x84401000U,
 897                 0x04000040U, 0x84000040U, 0x04400040U, 0x84400040U,
 898                 0x04001040U, 0x84001040U, 0x04401040U, 0x84401040U,
 899                 0x00000004U, 0x80000004U, 0x00400004U, 0x80400004U,
 900                 0x00001004U, 0x80001004U, 0x00401004U, 0x80401004U,
 901                 0x00000044U, 0x80000044U, 0x00400044U, 0x80400044U,
 902                 0x00001044U, 0x80001044U, 0x00401044U, 0x80401044U,
 903                 0x04000004U, 0x84000004U, 0x04400004U, 0x84400004U,
 904                 0x04001004U, 0x84001004U, 0x04401004U, 0x84401004U,
 905                 0x04000044U, 0x84000044U, 0x04400044U, 0x84400044U,
 906                 0x04001044U, 0x84001044U, 0x04401044U, 0x84401044U,
 907                 0x00010000U, 0x80010000U, 0x00410000U, 0x80410000U,
 908                 0x00011000U, 0x80011000U, 0x00411000U, 0x80411000U,
 909                 0x00010040U, 0x80010040U, 0x00410040U, 0x80410040U,
 910                 0x00011040U, 0x80011040U, 0x00411040U, 0x80411040U,
 911                 0x04010000U, 0x84010000U, 0x04410000U, 0x84410000U,
 912                 0x04011000U, 0x84011000U, 0x04411000U, 0x84411000U,
 913                 0x04010040U, 0x84010040U, 0x04410040U, 0x84410040U,
 914                 0x04011040U, 0x84011040U, 0x04411040U, 0x84411040U,
 915                 0x00010004U, 0x80010004U, 0x00410004U, 0x80410004U,
 916                 0x00011004U, 0x80011004U, 0x00411004U, 0x80411004U,
 917                 0x00010044U, 0x80010044U, 0x00410044U, 0x80410044U,
 918                 0x00011044U, 0x80011044U, 0x00411044U, 0x80411044U,
 919                 0x04010004U, 0x84010004U, 0x04410004U, 0x84410004U,
 920                 0x04011004U, 0x84011004U, 0x04411004U, 0x84411004U,
 921                 0x04010044U, 0x84010044U, 0x04410044U, 0x84410044U,
 922                 0x04011044U, 0x84011044U, 0x04411044U, 0x84411044U,
 923                 0x00000100U, 0x80000100U, 0x00400100U, 0x80400100U,
 924                 0x00001100U, 0x80001100U, 0x00401100U, 0x80401100U,
 925                 0x00000140U, 0x80000140U, 0x00400140U, 0x80400140U,
 926                 0x00001140U, 0x80001140U, 0x00401140U, 0x80401140U,
 927                 0x04000100U, 0x84000100U, 0x04400100U, 0x84400100U,
 928                 0x04001100U, 0x84001100U, 0x04401100U, 0x84401100U,
 929                 0x04000140U, 0x84000140U, 0x04400140U, 0x84400140U,
 930                 0x04001140U, 0x84001140U, 0x04401140U, 0x84401140U,
 931                 0x00000104U, 0x80000104U, 0x00400104U, 0x80400104U,
 932                 0x00001104U, 0x80001104U, 0x00401104U, 0x80401104U,
 933                 0x00000144U, 0x80000144U, 0x00400144U, 0x80400144U,
 934                 0x00001144U, 0x80001144U, 0x00401144U, 0x80401144U,
 935                 0x04000104U, 0x84000104U, 0x04400104U, 0x84400104U,
 936                 0x04001104U, 0x84001104U, 0x04401104U, 0x84401104U,
 937                 0x04000144U, 0x84000144U, 0x04400144U, 0x84400144U,
 938                 0x04001144U, 0x84001144U, 0x04401144U, 0x84401144U,
 939                 0x00010100U, 0x80010100U, 0x00410100U, 0x80410100U,
 940                 0x00011100U, 0x80011100U, 0x00411100U, 0x80411100U,
 941                 0x00010140U, 0x80010140U, 0x00410140U, 0x80410140U,
 942                 0x00011140U, 0x80011140U, 0x00411140U, 0x80411140U,
 943                 0x04010100U, 0x84010100U, 0x04410100U, 0x84410100U,
 944                 0x04011100U, 0x84011100U, 0x04411100U, 0x84411100U,
 945                 0x04010140U, 0x84010140U, 0x04410140U, 0x84410140U,
 946                 0x04011140U, 0x84011140U, 0x04411140U, 0x84411140U,
 947                 0x00010104U, 0x80010104U, 0x00410104U, 0x80410104U,
 948                 0x00011104U, 0x80011104U, 0x00411104U, 0x80411104U,
 949                 0x00010144U, 0x80010144U, 0x00410144U, 0x80410144U,
 950                 0x00011144U, 0x80011144U, 0x00411144U, 0x80411144U,
 951                 0x04010104U, 0x84010104U, 0x04410104U, 0x84410104U,
 952                 0x04011104U, 0x84011104U, 0x04411104U, 0x84411104U,
 953                 0x04010144U, 0x84010144U, 0x04410144U, 0x84410144U,
 954                 0x04011144U, 0x84011144U, 0x04411144U, 0x84411144U
 955         },
 956         {
 957                 0x00000000U, 0x00002000U, 0x00200000U, 0x00202000U,
 958                 0x00000008U, 0x00002008U, 0x00200008U, 0x00202008U,
 959                 0x10000000U, 0x10002000U, 0x10200000U, 0x10202000U,
 960                 0x10000008U, 0x10002008U, 0x10200008U, 0x10202008U,
 961                 0x20000000U, 0x20002000U, 0x20200000U, 0x20202000U,
 962                 0x20000008U, 0x20002008U, 0x20200008U, 0x20202008U,
 963                 0x30000000U, 0x30002000U, 0x30200000U, 0x30202000U,
 964                 0x30000008U, 0x30002008U, 0x30200008U, 0x30202008U,
 965                 0x00000080U, 0x00002080U, 0x00200080U, 0x00202080U,
 966                 0x00000088U, 0x00002088U, 0x00200088U, 0x00202088U,
 967                 0x10000080U, 0x10002080U, 0x10200080U, 0x10202080U,
 968                 0x10000088U, 0x10002088U, 0x10200088U, 0x10202088U,
 969                 0x20000080U, 0x20002080U, 0x20200080U, 0x20202080U,
 970                 0x20000088U, 0x20002088U, 0x20200088U, 0x20202088U,
 971                 0x30000080U, 0x30002080U, 0x30200080U, 0x30202080U,
 972                 0x30000088U, 0x30002088U, 0x30200088U, 0x30202088U,
 973                 0x00040000U, 0x00042000U, 0x00240000U, 0x00242000U,
 974                 0x00040008U, 0x00042008U, 0x00240008U, 0x00242008U,
 975                 0x10040000U, 0x10042000U, 0x10240000U, 0x10242000U,
 976                 0x10040008U, 0x10042008U, 0x10240008U, 0x10242008U,
 977                 0x20040000U, 0x20042000U, 0x20240000U, 0x20242000U,
 978                 0x20040008U, 0x20042008U, 0x20240008U, 0x20242008U,
 979                 0x30040000U, 0x30042000U, 0x30240000U, 0x30242000U,
 980                 0x30040008U, 0x30042008U, 0x30240008U, 0x30242008U,
 981                 0x00040080U, 0x00042080U, 0x00240080U, 0x00242080U,
 982                 0x00040088U, 0x00042088U, 0x00240088U, 0x00242088U,
 983                 0x10040080U, 0x10042080U, 0x10240080U, 0x10242080U,
 984                 0x10040088U, 0x10042088U, 0x10240088U, 0x10242088U,
 985                 0x20040080U, 0x20042080U, 0x20240080U, 0x20242080U,
 986                 0x20040088U, 0x20042088U, 0x20240088U, 0x20242088U,
 987                 0x30040080U, 0x30042080U, 0x30240080U, 0x30242080U,
 988                 0x30040088U, 0x30042088U, 0x30240088U, 0x30242088U,
 989                 0x01000000U, 0x01002000U, 0x01200000U, 0x01202000U,
 990                 0x01000008U, 0x01002008U, 0x01200008U, 0x01202008U,
 991                 0x11000000U, 0x11002000U, 0x11200000U, 0x11202000U,
 992                 0x11000008U, 0x11002008U, 0x11200008U, 0x11202008U,
 993                 0x21000000U, 0x21002000U, 0x21200000U, 0x21202000U,
 994                 0x21000008U, 0x21002008U, 0x21200008U, 0x21202008U,
 995                 0x31000000U, 0x31002000U, 0x31200000U, 0x31202000U,
 996                 0x31000008U, 0x31002008U, 0x31200008U, 0x31202008U,
 997                 0x01000080U, 0x01002080U, 0x01200080U, 0x01202080U,
 998                 0x01000088U, 0x01002088U, 0x01200088U, 0x01202088U,
 999                 0x11000080U, 0x11002080U, 0x11200080U, 0x11202080U,
1000                 0x11000088U, 0x11002088U, 0x11200088U, 0x11202088U,
1001                 0x21000080U, 0x21002080U, 0x21200080U, 0x21202080U,
1002                 0x21000088U, 0x21002088U, 0x21200088U, 0x21202088U,
1003                 0x31000080U, 0x31002080U, 0x31200080U, 0x31202080U,
1004                 0x31000088U, 0x31002088U, 0x31200088U, 0x31202088U,
1005                 0x01040000U, 0x01042000U, 0x01240000U, 0x01242000U,
1006                 0x01040008U, 0x01042008U, 0x01240008U, 0x01242008U,
1007                 0x11040000U, 0x11042000U, 0x11240000U, 0x11242000U,
1008                 0x11040008U, 0x11042008U, 0x11240008U, 0x11242008U,
1009                 0x21040000U, 0x21042000U, 0x21240000U, 0x21242000U,
1010                 0x21040008U, 0x21042008U, 0x21240008U, 0x21242008U,
1011                 0x31040000U, 0x31042000U, 0x31240000U, 0x31242000U,
1012                 0x31040008U, 0x31042008U, 0x31240008U, 0x31242008U,
1013                 0x01040080U, 0x01042080U, 0x01240080U, 0x01242080U,
1014                 0x01040088U, 0x01042088U, 0x01240088U, 0x01242088U,
1015                 0x11040080U, 0x11042080U, 0x11240080U, 0x11242080U,
1016                 0x11040088U, 0x11042088U, 0x11240088U, 0x11242088U,
1017                 0x21040080U, 0x21042080U, 0x21240080U, 0x21242080U,
1018                 0x21040088U, 0x21042088U, 0x21240088U, 0x21242088U,
1019                 0x31040080U, 0x31042080U, 0x31240080U, 0x31242080U,
1020                 0x31040088U, 0x31042088U, 0x31240088U, 0x31242088U
1021         },
1022         {
1023                 0x00000000U, 0x00000800U, 0x00020000U, 0x00020800U,
1024                 0x00000020U, 0x00000820U, 0x00020020U, 0x00020820U,
1025                 0x08000000U, 0x08000800U, 0x08020000U, 0x08020800U,
1026                 0x08000020U, 0x08000820U, 0x08020020U, 0x08020820U,
1027                 0x02000000U, 0x02000800U, 0x02020000U, 0x02020800U,
1028                 0x02000020U, 0x02000820U, 0x02020020U, 0x02020820U,
1029                 0x0a000000U, 0x0a000800U, 0x0a020000U, 0x0a020800U,
1030                 0x0a000020U, 0x0a000820U, 0x0a020020U, 0x0a020820U,
1031                 0x00000400U, 0x00000c00U, 0x00020400U, 0x00020c00U,
1032                 0x00000420U, 0x00000c20U, 0x00020420U, 0x00020c20U,
1033                 0x08000400U, 0x08000c00U, 0x08020400U, 0x08020c00U,
1034                 0x08000420U, 0x08000c20U, 0x08020420U, 0x08020c20U,
1035                 0x02000400U, 0x02000c00U, 0x02020400U, 0x02020c00U,
1036                 0x02000420U, 0x02000c20U, 0x02020420U, 0x02020c20U,
1037                 0x0a000400U, 0x0a000c00U, 0x0a020400U, 0x0a020c00U,
1038                 0x0a000420U, 0x0a000c20U, 0x0a020420U, 0x0a020c20U,
1039                 0x00100000U, 0x00100800U, 0x00120000U, 0x00120800U,
1040                 0x00100020U, 0x00100820U, 0x00120020U, 0x00120820U,
1041                 0x08100000U, 0x08100800U, 0x08120000U, 0x08120800U,
1042                 0x08100020U, 0x08100820U, 0x08120020U, 0x08120820U,
1043                 0x02100000U, 0x02100800U, 0x02120000U, 0x02120800U,
1044                 0x02100020U, 0x02100820U, 0x02120020U, 0x02120820U,
1045                 0x0a100000U, 0x0a100800U, 0x0a120000U, 0x0a120800U,
1046                 0x0a100020U, 0x0a100820U, 0x0a120020U, 0x0a120820U,
1047                 0x00100400U, 0x00100c00U, 0x00120400U, 0x00120c00U,
1048                 0x00100420U, 0x00100c20U, 0x00120420U, 0x00120c20U,
1049                 0x08100400U, 0x08100c00U, 0x08120400U, 0x08120c00U,
1050                 0x08100420U, 0x08100c20U, 0x08120420U, 0x08120c20U,
1051                 0x02100400U, 0x02100c00U, 0x02120400U, 0x02120c00U,
1052                 0x02100420U, 0x02100c20U, 0x02120420U, 0x02120c20U,
1053                 0x0a100400U, 0x0a100c00U, 0x0a120400U, 0x0a120c00U,
1054                 0x0a100420U, 0x0a100c20U, 0x0a120420U, 0x0a120c20U,
1055                 0x00000001U, 0x00000801U, 0x00020001U, 0x00020801U,
1056                 0x00000021U, 0x00000821U, 0x00020021U, 0x00020821U,
1057                 0x08000001U, 0x08000801U, 0x08020001U, 0x08020801U,
1058                 0x08000021U, 0x08000821U, 0x08020021U, 0x08020821U,
1059                 0x02000001U, 0x02000801U, 0x02020001U, 0x02020801U,
1060                 0x02000021U, 0x02000821U, 0x02020021U, 0x02020821U,
1061                 0x0a000001U, 0x0a000801U, 0x0a020001U, 0x0a020801U,
1062                 0x0a000021U, 0x0a000821U, 0x0a020021U, 0x0a020821U,
1063                 0x00000401U, 0x00000c01U, 0x00020401U, 0x00020c01U,
1064                 0x00000421U, 0x00000c21U, 0x00020421U, 0x00020c21U,
1065                 0x08000401U, 0x08000c01U, 0x08020401U, 0x08020c01U,
1066                 0x08000421U, 0x08000c21U, 0x08020421U, 0x08020c21U,
1067                 0x02000401U, 0x02000c01U, 0x02020401U, 0x02020c01U,
1068                 0x02000421U, 0x02000c21U, 0x02020421U, 0x02020c21U,
1069                 0x0a000401U, 0x0a000c01U, 0x0a020401U, 0x0a020c01U,
1070                 0x0a000421U, 0x0a000c21U, 0x0a020421U, 0x0a020c21U,
1071                 0x00100001U, 0x00100801U, 0x00120001U, 0x00120801U,
1072                 0x00100021U, 0x00100821U, 0x00120021U, 0x00120821U,
1073                 0x08100001U, 0x08100801U, 0x08120001U, 0x08120801U,
1074                 0x08100021U, 0x08100821U, 0x08120021U, 0x08120821U,
1075                 0x02100001U, 0x02100801U, 0x02120001U, 0x02120801U,
1076                 0x02100021U, 0x02100821U, 0x02120021U, 0x02120821U,
1077                 0x0a100001U, 0x0a100801U, 0x0a120001U, 0x0a120801U,
1078                 0x0a100021U, 0x0a100821U, 0x0a120021U, 0x0a120821U,
1079                 0x00100401U, 0x00100c01U, 0x00120401U, 0x00120c01U,
1080                 0x00100421U, 0x00100c21U, 0x00120421U, 0x00120c21U,
1081                 0x08100401U, 0x08100c01U, 0x08120401U, 0x08120c01U,
1082                 0x08100421U, 0x08100c21U, 0x08120421U, 0x08120c21U,
1083                 0x02100401U, 0x02100c01U, 0x02120401U, 0x02120c01U,
1084                 0x02100421U, 0x02100c21U, 0x02120421U, 0x02120c21U,
1085                 0x0a100401U, 0x0a100c01U, 0x0a120401U, 0x0a120c01U,
1086                 0x0a100421U, 0x0a100c21U, 0x0a120421U, 0x0a120c21U
1087         }
1088 };
1089 
1090 #ifdef  __cplusplus
1091 }
1092 #endif
1093 
1094 #endif /* _SYS_DESDATA_H */