des_tables.c   [plain text]


#ifndef HAVE_DES_TABLES

/* Initial key schedule permutation */
static const C_block	PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
		{{  0,  0,  1,  0,  0, 16,  0,  0,}},
		{{  0,  0,  1,  0,  0, 16,  0,  0,}},
		{{  0,  0,  0,  1,  0, 16,  0,  0,}},
		{{  0,  0,  0,  1,  0, 16,  0,  0,}},
		{{  0,  0,  1,  1,  0, 16,  0,  0,}},
		{{  0,  0,  1,  1,  0, 16,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,128,  0,  0,  0,}},
		{{  0,  0,  4,  0,  0,  0,  0,  0,}},
		{{  0,  0,  4,  0,128,  0,  0,  0,}},
		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
		{{  0, 16,  0,  0,128,  0,  0,  0,}},
		{{  0, 16,  4,  0,  0,  0,  0,  0,}},
		{{  0, 16,  4,  0,128,  0,  0,  0,}},
		{{  0,  0,  0,  8,  0,  0,  0,  0,}},
		{{  0,  0,  0,  8,128,  0,  0,  0,}},
		{{  0,  0,  4,  8,  0,  0,  0,  0,}},
		{{  0,  0,  4,  8,128,  0,  0,  0,}},
		{{  0, 16,  0,  8,  0,  0,  0,  0,}},
		{{  0, 16,  0,  8,128,  0,  0,  0,}},
		{{  0, 16,  4,  8,  0,  0,  0,  0,}},
		{{  0, 16,  4,  8,128,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
		{{  0,  0,  0,  0,  0,  0, 64,  8,}},
		{{  0,  0,  0,  0,  0,  0, 64,  8,}},
		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
		{{  0,  0,  0,  0,  0,  0, 64, 16,}},
		{{  0,  0,  0,  0,  0,  0, 64, 16,}},
		{{  0,  0,  0,  0,  0,  0,  0, 24,}},
		{{  0,  0,  0,  0,  0,  0,  0, 24,}},
		{{  0,  0,  0,  0,  0,  0, 64, 24,}},
		{{  0,  0,  0,  0,  0,  0, 64, 24,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  2,  0,  0,  0,  0,}},
		{{  0,  1,  0,  0,  0,  0,  0,  0,}},
		{{  0,  1,  0,  2,  0,  0,  0,  0,}},
		{{  4,  0,  0,  0,  0,  0,  0,  0,}},
		{{  4,  0,  0,  2,  0,  0,  0,  0,}},
		{{  4,  1,  0,  0,  0,  0,  0,  0,}},
		{{  4,  1,  0,  2,  0,  0,  0,  0,}},
		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
		{{  0, 32,  0,  2,  0,  0,  0,  0,}},
		{{  0, 33,  0,  0,  0,  0,  0,  0,}},
		{{  0, 33,  0,  2,  0,  0,  0,  0,}},
		{{  4, 32,  0,  0,  0,  0,  0,  0,}},
		{{  4, 32,  0,  2,  0,  0,  0,  0,}},
		{{  4, 33,  0,  0,  0,  0,  0,  0,}},
		{{  4, 33,  0,  2,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
		{{  0,  0,  0,  0,  4, 64,  0,  0,}},
		{{  0,  0,  0,  0,  4, 64,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
		{{  0,  0,  0,  0,  0, 64,  8,  0,}},
		{{  0,  0,  0,  0,  0, 64,  8,  0,}},
		{{  0,  0,  0,  0,  4,  0,  8,  0,}},
		{{  0,  0,  0,  0,  4,  0,  8,  0,}},
		{{  0,  0,  0,  0,  4, 64,  8,  0,}},
		{{  0,  0,  0,  0,  4, 64,  8,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,128,  0,}},
		{{  0, 64,  0,  0,  0,  0,  0,  0,}},
		{{  0, 64,  0,  0,  0,  0,128,  0,}},
		{{  0,  0,  0, 64,  0,  0,  0,  0,}},
		{{  0,  0,  0, 64,  0,  0,128,  0,}},
		{{  0, 64,  0, 64,  0,  0,  0,  0,}},
		{{  0, 64,  0, 64,  0,  0,128,  0,}},
		{{128,  0,  0,  0,  0,  0,  0,  0,}},
		{{128,  0,  0,  0,  0,  0,128,  0,}},
		{{128, 64,  0,  0,  0,  0,  0,  0,}},
		{{128, 64,  0,  0,  0,  0,128,  0,}},
		{{128,  0,  0, 64,  0,  0,  0,  0,}},
		{{128,  0,  0, 64,  0,  0,128,  0,}},
		{{128, 64,  0, 64,  0,  0,  0,  0,}},
		{{128, 64,  0, 64,  0,  0,128,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,128,}},
		{{  0,  0,  0,  0,  0,  0,  0,128,}},
		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
		{{  0,  0,  0,  0,  0,  8,  0,128,}},
		{{  0,  0,  0,  0,  0,  8,  0,128,}},
		{{  0,  0,  0,  0,  0,128,  0,  0,}},
		{{  0,  0,  0,  0,  0,128,  0,  0,}},
		{{  0,  0,  0,  0,  0,128,  0,128,}},
		{{  0,  0,  0,  0,  0,128,  0,128,}},
		{{  0,  0,  0,  0,  0,136,  0,  0,}},
		{{  0,  0,  0,  0,  0,136,  0,  0,}},
		{{  0,  0,  0,  0,  0,136,  0,128,}},
		{{  0,  0,  0,  0,  0,136,  0,128,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  8,  0,  0,  0,}},
		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
		{{  0,  0,  0, 32,  8,  0,  0,  0,}},
		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
		{{  0,  0, 16,  0,  8,  0,  0,  0,}},
		{{  0,  0, 16, 32,  0,  0,  0,  0,}},
		{{  0,  0, 16, 32,  8,  0,  0,  0,}},
		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
		{{  0,  0, 32,  0,  8,  0,  0,  0,}},
		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
		{{  0,  0, 32, 32,  8,  0,  0,  0,}},
		{{  0,  0, 48,  0,  0,  0,  0,  0,}},
		{{  0,  0, 48,  0,  8,  0,  0,  0,}},
		{{  0,  0, 48, 32,  0,  0,  0,  0,}},
		{{  0,  0, 48, 32,  8,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
		{{  0,  0,  0,  0, 80,  0,  0,  0,}},
		{{  0,  0,  0,  0, 80,  0,  0,  0,}},
		{{  0,  0,  0,  0, 64,  0, 16,  0,}},
		{{  0,  0,  0,  0, 64,  0, 16,  0,}},
		{{  0,  0,  0,  0, 80,  0, 16,  0,}},
		{{  0,  0,  0,  0, 80,  0, 16,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
		{{  0,  0,  8,  0,  0,  0,  0,  0,}},
		{{  0,  0,  8, 16,  0,  0,  0,  0,}},
		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
		{{ 16,  0,  8,  0,  0,  0,  0,  0,}},
		{{ 16,  0,  8, 16,  0,  0,  0,  0,}},
		{{  0,  4,  0,  0,  0,  0,  0,  0,}},
		{{  0,  4,  0, 16,  0,  0,  0,  0,}},
		{{  0,  4,  8,  0,  0,  0,  0,  0,}},
		{{  0,  4,  8, 16,  0,  0,  0,  0,}},
		{{ 16,  4,  0,  0,  0,  0,  0,  0,}},
		{{ 16,  4,  0, 16,  0,  0,  0,  0,}},
		{{ 16,  4,  8,  0,  0,  0,  0,  0,}},
		{{ 16,  4,  8, 16,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
		{{  0,  0,  2,  0,  0,  4,  0,  0,}},
		{{  0,  0,  2,  0,  0,  4,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
		{{  0,  0,  2,  0,  0,  0,  0,  4,}},
		{{  0,  0,  2,  0,  0,  0,  0,  4,}},
		{{  0,  0,  2,  0,  0,  4,  0,  4,}},
		{{  0,  0,  2,  0,  0,  4,  0,  4,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0, 64,  0,  0,  0,  0,  0,}},
		{{  2,  0,  0,  0,  0,  0,  0,  0,}},
		{{  2,  0, 64,  0,  0,  0,  0,  0,}},
		{{  0,128,  0,  0,  0,  0,  0,  0,}},
		{{  0,128, 64,  0,  0,  0,  0,  0,}},
		{{  2,128,  0,  0,  0,  0,  0,  0,}},
		{{  2,128, 64,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,128,  0,  0,  0,  0,}},
		{{  0,  0, 64,128,  0,  0,  0,  0,}},
		{{  2,  0,  0,128,  0,  0,  0,  0,}},
		{{  2,  0, 64,128,  0,  0,  0,  0,}},
		{{  0,128,  0,128,  0,  0,  0,  0,}},
		{{  0,128, 64,128,  0,  0,  0,  0,}},
		{{  2,128,  0,128,  0,  0,  0,  0,}},
		{{  2,128, 64,128,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
		{{  0,  0,  0,  0, 32,  0,  0, 64,}},
		{{  0,  0,  0,  0, 32,  0,  0, 64,}},
		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
		{{  0,  0,  0,  0,  0, 32,  0, 64,}},
		{{  0,  0,  0,  0,  0, 32,  0, 64,}},
		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
		{{  0,  0,  0,  0, 32, 32,  0, 64,}},
		{{  0,  0,  0,  0, 32, 32,  0, 64,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  2,  0,  0,  0,  0,  0,  0,}},
		{{  8,  0,  0,  0,  0,  0,  0,  0,}},
		{{  8,  2,  0,  0,  0,  0,  0,  0,}},
		{{  1,  0,  0,  0,  0,  0,  0,  0,}},
		{{  1,  2,  0,  0,  0,  0,  0,  0,}},
		{{  9,  0,  0,  0,  0,  0,  0,  0,}},
		{{  9,  2,  0,  0,  0,  0,  0,  0,}},
		{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 64,  2,  0,  0,  0,  0,  0,  0,}},
		{{ 72,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 72,  2,  0,  0,  0,  0,  0,  0,}},
		{{ 65,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 65,  2,  0,  0,  0,  0,  0,  0,}},
		{{ 73,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 73,  2,  0,  0,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
		{{  0,  0,  0,  0,  0,  0, 36,  0,}},
		{{  0,  0,  0,  0,  0,  0, 36,  0,}},
		{{  0,  0,  0,  0,  0,  0,  4, 32,}},
		{{  0,  0,  0,  0,  0,  0,  4, 32,}},
		{{  0,  0,  0,  0,  0,  0, 36, 32,}},
		{{  0,  0,  0,  0,  0,  0, 36, 32,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  4,  0,  0,  0,  0,}},
		{{ 32,  0,  0,  4,  0,  0,  0,  0,}},
		{{  0,  0,128,  0,  0,  0,  0,  0,}},
		{{ 32,  0,128,  0,  0,  0,  0,  0,}},
		{{  0,  0,128,  4,  0,  0,  0,  0,}},
		{{ 32,  0,128,  4,  0,  0,  0,  0,}},
		{{  0,  8,  0,  0,  0,  0,  0,  0,}},
		{{ 32,  8,  0,  0,  0,  0,  0,  0,}},
		{{  0,  8,  0,  4,  0,  0,  0,  0,}},
		{{ 32,  8,  0,  4,  0,  0,  0,  0,}},
		{{  0,  8,128,  0,  0,  0,  0,  0,}},
		{{ 32,  8,128,  0,  0,  0,  0,  0,}},
		{{  0,  8,128,  4,  0,  0,  0,  0,}},
		{{ 32,  8,128,  4,  0,  0,  0,  0,}},
	},
};

/* Subsequent key schedule rotation permutations */
static const C_block	PC2ROT[2][64/CHUNKBITS][1<<CHUNKBITS] = {
	{
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,128,  0,  0,  0,  0,  0,}},
			{{  8,  0,  0,  0,  0,  0,  0,  0,}},
			{{  8,  0,128,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0, 64,  0,  0,  0,  0,}},
			{{  0,  0,128, 64,  0,  0,  0,  0,}},
			{{  8,  0,  0, 64,  0,  0,  0,  0,}},
			{{  8,  0,128, 64,  0,  0,  0,  0,}},
			{{  0,  0,  0,  4,  0,  0,  0,  0,}},
			{{  0,  0,128,  4,  0,  0,  0,  0,}},
			{{  8,  0,  0,  4,  0,  0,  0,  0,}},
			{{  8,  0,128,  4,  0,  0,  0,  0,}},
			{{  0,  0,  0, 68,  0,  0,  0,  0,}},
			{{  0,  0,128, 68,  0,  0,  0,  0,}},
			{{  8,  0,  0, 68,  0,  0,  0,  0,}},
			{{  8,  0,128, 68,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,128,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  4,  0,  0,  0,  0,  0,}},
			{{  0,128,  4,  0,  0,  0,  0,  0,}},
			{{  0,  8,  0,  0,  0,  0,  0,  0,}},
			{{  0,136,  0,  0,  0,  0,  0,  0,}},
			{{  0,  8,  4,  0,  0,  0,  0,  0,}},
			{{  0,136,  4,  0,  0,  0,  0,  0,}},
			{{  0,  0, 32,  0,  0,  0,  0,  0,}},
			{{  0,128, 32,  0,  0,  0,  0,  0,}},
			{{  0,  0, 36,  0,  0,  0,  0,  0,}},
			{{  0,128, 36,  0,  0,  0,  0,  0,}},
			{{  0,  8, 32,  0,  0,  0,  0,  0,}},
			{{  0,136, 32,  0,  0,  0,  0,  0,}},
			{{  0,  8, 36,  0,  0,  0,  0,  0,}},
			{{  0,136, 36,  0,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0, 64,  0,  0,  0,  0,  0,  0,}},
			{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 32, 64,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,128,  0,  0,  0,  0,}},
			{{  0, 64,  0,128,  0,  0,  0,  0,}},
			{{ 32,  0,  0,128,  0,  0,  0,  0,}},
			{{ 32, 64,  0,128,  0,  0,  0,  0,}},
			{{  0,  0,  0, 16,  0,  0,  0,  0,}},
			{{  0, 64,  0, 16,  0,  0,  0,  0,}},
			{{ 32,  0,  0, 16,  0,  0,  0,  0,}},
			{{ 32, 64,  0, 16,  0,  0,  0,  0,}},
			{{  0,  0,  0,144,  0,  0,  0,  0,}},
			{{  0, 64,  0,144,  0,  0,  0,  0,}},
			{{ 32,  0,  0,144,  0,  0,  0,  0,}},
			{{ 32, 64,  0,144,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  4,  0,  0,  0,  0,  0,  0,  0,}},
			{{128,  0,  0,  0,  0,  0,  0,  0,}},
			{{132,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0, 32,  0,  0,  0,  0,}},
			{{  4,  0,  0, 32,  0,  0,  0,  0,}},
			{{128,  0,  0, 32,  0,  0,  0,  0,}},
			{{132,  0,  0, 32,  0,  0,  0,  0,}},
			{{  1,  0,  0,  0,  0,  0,  0,  0,}},
			{{  5,  0,  0,  0,  0,  0,  0,  0,}},
			{{129,  0,  0,  0,  0,  0,  0,  0,}},
			{{133,  0,  0,  0,  0,  0,  0,  0,}},
			{{  1,  0,  0, 32,  0,  0,  0,  0,}},
			{{  5,  0,  0, 32,  0,  0,  0,  0,}},
			{{129,  0,  0, 32,  0,  0,  0,  0,}},
			{{133,  0,  0, 32,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0, 64,  0,}},
			{{  0,  0,  0,  0, 32,  0,  0,  0,}},
			{{  0,  0,  0,  0, 32,  0, 64,  0,}},
			{{  0,  1,  0,  0,  0,  0,  0,  0,}},
			{{  0,  1,  0,  0,  0,  0, 64,  0,}},
			{{  0,  1,  0,  0, 32,  0,  0,  0,}},
			{{  0,  1,  0,  0, 32,  0, 64,  0,}},
			{{  2,  0,  0,  0,  0,  0,  0,  0,}},
			{{  2,  0,  0,  0,  0,  0, 64,  0,}},
			{{  2,  0,  0,  0, 32,  0,  0,  0,}},
			{{  2,  0,  0,  0, 32,  0, 64,  0,}},
			{{  2,  1,  0,  0,  0,  0,  0,  0,}},
			{{  2,  1,  0,  0,  0,  0, 64,  0,}},
			{{  2,  1,  0,  0, 32,  0,  0,  0,}},
			{{  2,  1,  0,  0, 32,  0, 64,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  4,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  4,  0,  0,  0,  0,  0,  0,}},
			{{  0,  2,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  2,  0,  0,  0,  0,  0,  0,}},
			{{  0,  6,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  6,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  8,  0,  0,  0,  0,}},
			{{ 16,  0,  0,  8,  0,  0,  0,  0,}},
			{{  0,  4,  0,  8,  0,  0,  0,  0,}},
			{{ 16,  4,  0,  8,  0,  0,  0,  0,}},
			{{  0,  2,  0,  8,  0,  0,  0,  0,}},
			{{ 16,  2,  0,  8,  0,  0,  0,  0,}},
			{{  0,  6,  0,  8,  0,  0,  0,  0,}},
			{{ 16,  6,  0,  8,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
			{{  0,  0,  0,  0,  0,  0,128,  0,}},
			{{  0,  0,  0,  0,  0,  0,128,  8,}},
			{{  0, 16,  0,  0,  0,  0,  0,  0,}},
			{{  0, 16,  0,  0,  0,  0,  0,  8,}},
			{{  0, 16,  0,  0,  0,  0,128,  0,}},
			{{  0, 16,  0,  0,  0,  0,128,  8,}},
			{{  0, 32,  0,  0,  0,  0,  0,  0,}},
			{{  0, 32,  0,  0,  0,  0,  0,  8,}},
			{{  0, 32,  0,  0,  0,  0,128,  0,}},
			{{  0, 32,  0,  0,  0,  0,128,  8,}},
			{{  0, 48,  0,  0,  0,  0,  0,  0,}},
			{{  0, 48,  0,  0,  0,  0,  0,  8,}},
			{{  0, 48,  0,  0,  0,  0,128,  0,}},
			{{  0, 48,  0,  0,  0,  0,128,  8,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0, 64,  0,  0,  0,  0,  0,}},
			{{  0,  0,  8,  0,  0,  0,  0,  0,}},
			{{  0,  0, 72,  0,  0,  0,  0,  0,}},
			{{  0,  0, 16,  0,  0,  0,  0,  0,}},
			{{  0,  0, 80,  0,  0,  0,  0,  0,}},
			{{  0,  0, 24,  0,  0,  0,  0,  0,}},
			{{  0,  0, 88,  0,  0,  0,  0,  0,}},
			{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
			{{ 64,  0,  8,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 72,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 16,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 80,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 24,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 88,  0,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
			{{  0,  0,  0,  0,  0, 24,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  4,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 32,}},
			{{  0,  0,  0,  0,  0,  4,  0, 32,}},
			{{  0,  0,  0,  0,  0,  0,  0,  4,}},
			{{  0,  0,  0,  0,  0,  4,  0,  4,}},
			{{  0,  0,  0,  0,  0,  0,  0, 36,}},
			{{  0,  0,  0,  0,  0,  4,  0, 36,}},
			{{  0,  0,  0,  2,  0,  0,  0,  0,}},
			{{  0,  0,  0,  2,  0,  4,  0,  0,}},
			{{  0,  0,  0,  2,  0,  0,  0, 32,}},
			{{  0,  0,  0,  2,  0,  4,  0, 32,}},
			{{  0,  0,  0,  2,  0,  0,  0,  4,}},
			{{  0,  0,  0,  2,  0,  4,  0,  4,}},
			{{  0,  0,  0,  2,  0,  0,  0, 36,}},
			{{  0,  0,  0,  2,  0,  4,  0, 36,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
			{{  0,  0,  0,  0,  0,  0, 16, 64,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
			{{  0,  0,  0,  0,  0,  0,  4, 16,}},
			{{  0,  0,  0,  0,  0,  0,  0,128,}},
			{{  0,  0,  0,  0,  0,  0,  0,144,}},
			{{  0,  0,  0,  0,  0,  0,  4,128,}},
			{{  0,  0,  0,  0,  0,  0,  4,144,}},
			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
			{{  0,  0,  0,  0, 64,  0,  0, 16,}},
			{{  0,  0,  0,  0, 64,  0,  4,  0,}},
			{{  0,  0,  0,  0, 64,  0,  4, 16,}},
			{{  0,  0,  0,  0, 64,  0,  0,128,}},
			{{  0,  0,  0,  0, 64,  0,  0,144,}},
			{{  0,  0,  0,  0, 64,  0,  4,128,}},
			{{  0,  0,  0,  0, 64,  0,  4,144,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,128,  0,  0,}},
			{{  0,  0,  0,  0,  0,128,  0,  0,}},
			{{  0,  0,  0,  0,  0,128,  0,  0,}},
			{{  0,  0,  0,  0,  0,128,  0,  0,}},
			{{  0,  0,  0,  1,  0,128,  0,  0,}},
			{{  0,  0,  0,  1,  0,128,  0,  0,}},
			{{  0,  0,  0,  1,  0,128,  0,  0,}},
			{{  0,  0,  0,  1,  0,128,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,128,  0,  0,  0,}},
			{{  0,  0,  2,  0,128,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0, 64,  0,  0,}},
			{{  0,  0,  2,  0,  0, 64,  0,  0,}},
			{{  0,  0,  0,  0,128, 64,  0,  0,}},
			{{  0,  0,  2,  0,128, 64,  0,  0,}},
			{{  0,  0,  0,  0,  8,  0,  0,  0,}},
			{{  0,  0,  2,  0,  8,  0,  0,  0,}},
			{{  0,  0,  0,  0,136,  0,  0,  0,}},
			{{  0,  0,  2,  0,136,  0,  0,  0,}},
			{{  0,  0,  0,  0,  8, 64,  0,  0,}},
			{{  0,  0,  2,  0,  8, 64,  0,  0,}},
			{{  0,  0,  0,  0,136, 64,  0,  0,}},
			{{  0,  0,  2,  0,136, 64,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
			{{  0,  0,  0,  0,  4, 32,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  8,  0,}},
			{{  0,  0,  1,  0,  0,  0,  0,  0,}},
			{{  0,  0,  1,  0,  0,  0,  8,  0,}},
			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
			{{  0,  0,  0,  0,  0,  0, 40,  0,}},
			{{  0,  0,  1,  0,  0,  0, 32,  0,}},
			{{  0,  0,  1,  0,  0,  0, 40,  0,}},
			{{  0,  0,  0,  0, 16,  0,  0,  0,}},
			{{  0,  0,  0,  0, 16,  0,  8,  0,}},
			{{  0,  0,  1,  0, 16,  0,  0,  0,}},
			{{  0,  0,  1,  0, 16,  0,  8,  0,}},
			{{  0,  0,  0,  0, 16,  0, 32,  0,}},
			{{  0,  0,  0,  0, 16,  0, 40,  0,}},
			{{  0,  0,  1,  0, 16,  0, 32,  0,}},
			{{  0,  0,  1,  0, 16,  0, 40,  0,}},
		},
	},
	{
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  8,  0,  0,  0,  0,}},
			{{  0,  0,  0,  4,  0,  0,  0,  0,}},
			{{  0,  0,  0, 12,  0,  0,  0,  0,}},
			{{  0,  0, 16,  0,  0,  0,  0,  0,}},
			{{  0,  0, 16,  8,  0,  0,  0,  0,}},
			{{  0,  0, 16,  4,  0,  0,  0,  0,}},
			{{  0,  0, 16, 12,  0,  0,  0,  0,}},
			{{  0, 16,  0,  0,  0,  0,  0,  0,}},
			{{  0, 16,  0,  8,  0,  0,  0,  0,}},
			{{  0, 16,  0,  4,  0,  0,  0,  0,}},
			{{  0, 16,  0, 12,  0,  0,  0,  0,}},
			{{  0, 16, 16,  0,  0,  0,  0,  0,}},
			{{  0, 16, 16,  8,  0,  0,  0,  0,}},
			{{  0, 16, 16,  4,  0,  0,  0,  0,}},
			{{  0, 16, 16, 12,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  1,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  1,  0,  0,  0,  0,  0,  0,}},
			{{  1,  1,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0, 16,  0,  0,  0,  0,}},
			{{  1,  0,  0, 16,  0,  0,  0,  0,}},
			{{  0,  1,  0, 16,  0,  0,  0,  0,}},
			{{  1,  1,  0, 16,  0,  0,  0,  0,}},
			{{  0,  4,  0,  0,  0,  0,  0,  0,}},
			{{  1,  4,  0,  0,  0,  0,  0,  0,}},
			{{  0,  5,  0,  0,  0,  0,  0,  0,}},
			{{  1,  5,  0,  0,  0,  0,  0,  0,}},
			{{  0,  4,  0, 16,  0,  0,  0,  0,}},
			{{  1,  4,  0, 16,  0,  0,  0,  0,}},
			{{  0,  5,  0, 16,  0,  0,  0,  0,}},
			{{  1,  5,  0, 16,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0, 32,  0,  0,  0,  0,}},
			{{  0,  0,  4,  0,  0,  0,  0,  0,}},
			{{  0,  0,  4, 32,  0,  0,  0,  0,}},
			{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 64,  0,  0, 32,  0,  0,  0,  0,}},
			{{ 64,  0,  4,  0,  0,  0,  0,  0,}},
			{{ 64,  0,  4, 32,  0,  0,  0,  0,}},
			{{  0,  0, 64,  0,  0,  0,  0,  0,}},
			{{  0,  0, 64, 32,  0,  0,  0,  0,}},
			{{  0,  0, 68,  0,  0,  0,  0,  0,}},
			{{  0,  0, 68, 32,  0,  0,  0,  0,}},
			{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 64, 32,  0,  0,  0,  0,}},
			{{ 64,  0, 68,  0,  0,  0,  0,  0,}},
			{{ 64,  0, 68, 32,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0, 64,  0,  0,  0,  0,}},
			{{  0,  0, 32,  0,  0,  0,  0,  0,}},
			{{  0,  0, 32, 64,  0,  0,  0,  0,}},
			{{  0,  0,  8,  0,  0,  0,  0,  0,}},
			{{  0,  0,  8, 64,  0,  0,  0,  0,}},
			{{  0,  0, 40,  0,  0,  0,  0,  0,}},
			{{  0,  0, 40, 64,  0,  0,  0,  0,}},
			{{  0,  0,128,  0,  0,  0,  0,  0,}},
			{{  0,  0,128, 64,  0,  0,  0,  0,}},
			{{  0,  0,160,  0,  0,  0,  0,  0,}},
			{{  0,  0,160, 64,  0,  0,  0,  0,}},
			{{  0,  0,136,  0,  0,  0,  0,  0,}},
			{{  0,  0,136, 64,  0,  0,  0,  0,}},
			{{  0,  0,168,  0,  0,  0,  0,  0,}},
			{{  0,  0,168, 64,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0, 64,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 32,}},
			{{  0,  0,  0,  0,  0, 64,  0, 32,}},
			{{  0, 64,  0,  0,  0,  0,  0,  0,}},
			{{  0, 64,  0,  0,  0, 64,  0,  0,}},
			{{  0, 64,  0,  0,  0,  0,  0, 32,}},
			{{  0, 64,  0,  0,  0, 64,  0, 32,}},
			{{  8,  0,  0,  0,  0,  0,  0,  0,}},
			{{  8,  0,  0,  0,  0, 64,  0,  0,}},
			{{  8,  0,  0,  0,  0,  0,  0, 32,}},
			{{  8,  0,  0,  0,  0, 64,  0, 32,}},
			{{  8, 64,  0,  0,  0,  0,  0,  0,}},
			{{  8, 64,  0,  0,  0, 64,  0,  0,}},
			{{  8, 64,  0,  0,  0,  0,  0, 32,}},
			{{  8, 64,  0,  0,  0, 64,  0, 32,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,128,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,128,  0,  0,  0,  0,}},
			{{  0,128,  0,128,  0,  0,  0,  0,}},
			{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 32,128,  0,  0,  0,  0,  0,  0,}},
			{{ 32,  0,  0,128,  0,  0,  0,  0,}},
			{{ 32,128,  0,128,  0,  0,  0,  0,}},
			{{  0, 32,  0,  0,  0,  0,  0,  0,}},
			{{  0,160,  0,  0,  0,  0,  0,  0,}},
			{{  0, 32,  0,128,  0,  0,  0,  0,}},
			{{  0,160,  0,128,  0,  0,  0,  0,}},
			{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
			{{ 32,160,  0,  0,  0,  0,  0,  0,}},
			{{ 32, 32,  0,128,  0,  0,  0,  0,}},
			{{ 32,160,  0,128,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  4,  0,  0,  0,}},
			{{  0,  0,  0,  0,  8,  0,  0,  0,}},
			{{  0,  0,  0,  0, 12,  0,  0,  0,}},
			{{  4,  0,  0,  0,  0,  0,  0,  0,}},
			{{  4,  0,  0,  0,  4,  0,  0,  0,}},
			{{  4,  0,  0,  0,  8,  0,  0,  0,}},
			{{  4,  0,  0,  0, 12,  0,  0,  0,}},
			{{128,  0,  0,  0,  0,  0,  0,  0,}},
			{{128,  0,  0,  0,  4,  0,  0,  0,}},
			{{128,  0,  0,  0,  8,  0,  0,  0,}},
			{{128,  0,  0,  0, 12,  0,  0,  0,}},
			{{132,  0,  0,  0,  0,  0,  0,  0,}},
			{{132,  0,  0,  0,  4,  0,  0,  0,}},
			{{132,  0,  0,  0,  8,  0,  0,  0,}},
			{{132,  0,  0,  0, 12,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  2,  0,  0,  0,  0,  0,  0,}},
			{{  2,  0,  0,  0,  0,  0,  0,  0,}},
			{{  2,  2,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  2,  0,  0,  0,  0,  0,  0,}},
			{{ 18,  0,  0,  0,  0,  0,  0,  0,}},
			{{ 18,  2,  0,  0,  0,  0,  0,  0,}},
			{{  0,  8,  0,  0,  0,  0,  0,  0,}},
			{{  0, 10,  0,  0,  0,  0,  0,  0,}},
			{{  2,  8,  0,  0,  0,  0,  0,  0,}},
			{{  2, 10,  0,  0,  0,  0,  0,  0,}},
			{{ 16,  8,  0,  0,  0,  0,  0,  0,}},
			{{ 16, 10,  0,  0,  0,  0,  0,  0,}},
			{{ 18,  8,  0,  0,  0,  0,  0,  0,}},
			{{ 18, 10,  0,  0,  0,  0,  0,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0, 16,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
			{{  0,  0,  0,  0,  0,  0,  0, 16,}},
			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
			{{  0,  0,  0,  0,  0,  0, 16, 16,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0, 64,}},
			{{  0,  0,  1,  0,  0,  0,  0,  0,}},
			{{  0,  0,  1,  0,  0,  0,  0, 64,}},
			{{  0,  0,  0,  0,  0, 32,  0,  0,}},
			{{  0,  0,  0,  0,  0, 32,  0, 64,}},
			{{  0,  0,  1,  0,  0, 32,  0,  0,}},
			{{  0,  0,  1,  0,  0, 32,  0, 64,}},
			{{  0,  0,  0,  0,  0,  0,128,  0,}},
			{{  0,  0,  0,  0,  0,  0,128, 64,}},
			{{  0,  0,  1,  0,  0,  0,128,  0,}},
			{{  0,  0,  1,  0,  0,  0,128, 64,}},
			{{  0,  0,  0,  0,  0, 32,128,  0,}},
			{{  0,  0,  0,  0,  0, 32,128, 64,}},
			{{  0,  0,  1,  0,  0, 32,128,  0,}},
			{{  0,  0,  1,  0,  0, 32,128, 64,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
			{{  0,  0,  0,  0,  0,  0, 32,  0,}},
			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
			{{  0,  0,  2,  0,  0,  0,  0,  0,}},
			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
			{{  0,  0,  2,  0,  0,  0, 32,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  8,  0,}},
			{{  0,  0,  0,  1,  0,  0,  0,  0,}},
			{{  0,  0,  0,  1,  0,  0,  8,  0,}},
			{{  0,  0,  0,  0, 16,  0,  0,  0,}},
			{{  0,  0,  0,  0, 16,  0,  8,  0,}},
			{{  0,  0,  0,  1, 16,  0,  0,  0,}},
			{{  0,  0,  0,  1, 16,  0,  8,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  4,}},
			{{  0,  0,  0,  0,  0,  0,  8,  4,}},
			{{  0,  0,  0,  1,  0,  0,  0,  4,}},
			{{  0,  0,  0,  1,  0,  0,  8,  4,}},
			{{  0,  0,  0,  0, 16,  0,  0,  4,}},
			{{  0,  0,  0,  0, 16,  0,  8,  4,}},
			{{  0,  0,  0,  1, 16,  0,  0,  4,}},
			{{  0,  0,  0,  1, 16,  0,  8,  4,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
			{{  0,  0,  0,  0,  0,  0,  0,  8,}},
			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
			{{  0,  0,  0,  0, 64,  0,  0,  0,}},
			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
			{{  0,  0,  0,  0, 64,  0,  0,  8,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0, 32,  0,  0,  0,}},
			{{  0,  0,  0,  2,  0,  0,  0,  0,}},
			{{  0,  0,  0,  2, 32,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,128,}},
			{{  0,  0,  0,  0, 32,  0,  0,128,}},
			{{  0,  0,  0,  2,  0,  0,  0,128,}},
			{{  0,  0,  0,  2, 32,  0,  0,128,}},
			{{  0,  0,  0,  0,  0, 16,  0,  0,}},
			{{  0,  0,  0,  0, 32, 16,  0,  0,}},
			{{  0,  0,  0,  2,  0, 16,  0,  0,}},
			{{  0,  0,  0,  2, 32, 16,  0,  0,}},
			{{  0,  0,  0,  0,  0, 16,  0,128,}},
			{{  0,  0,  0,  0, 32, 16,  0,128,}},
			{{  0,  0,  0,  2,  0, 16,  0,128,}},
			{{  0,  0,  0,  2, 32, 16,  0,128,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
			{{  0,  0,  0,  0,  0,  0,  4,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  0,  0,}},
			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
			{{  0,  0,  0,  0,  0,  8,  4,  0,}},
		},
		{
			{{  0,  0,  0,  0,  0,  0,  0,  0,}},
			{{  0,  0,  0,  0,  0,128,  0,  0,}},
			{{  0,  0,  0,  0,  0,  0, 64,  0,}},
			{{  0,  0,  0,  0,  0,128, 64,  0,}},
			{{  0,  0,  0,  0,128,  0,  0,  0,}},
			{{  0,  0,  0,  0,128,128,  0,  0,}},
			{{  0,  0,  0,  0,128,  0, 64,  0,}},
			{{  0,  0,  0,  0,128,128, 64,  0,}},
			{{  0,  0,  0,  0,  0,  4,  0,  0,}},
			{{  0,  0,  0,  0,  0,132,  0,  0,}},
			{{  0,  0,  0,  0,  0,  4, 64,  0,}},
			{{  0,  0,  0,  0,  0,132, 64,  0,}},
			{{  0,  0,  0,  0,128,  4,  0,  0,}},
			{{  0,  0,  0,  0,128,132,  0,  0,}},
			{{  0,  0,  0,  0,128,  4, 64,  0,}},
			{{  0,  0,  0,  0,128,132, 64,  0,}},
		},
	},
};

/* Initial permutation/expansion table */
static const C_block	IE3264[32/CHUNKBITS][1<<CHUNKBITS] = {
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 64,  4,}},
		{{  4,  0,  0,  0,  0,  0,  0, 64,}},
		{{  4,  0,  0,  0,  0,  0, 64, 68,}},
		{{  0,  0,  0,  0, 64,  4,  0,  0,}},
		{{  0,  0,  0,  0, 64,  4, 64,  4,}},
		{{  4,  0,  0,  0, 64,  4,  0, 64,}},
		{{  4,  0,  0,  0, 64,  4, 64, 68,}},
		{{  0,  0,  0,  0,  0, 64,  4,  0,}},
		{{  0,  0,  0,  0,  0, 64, 68,  4,}},
		{{  4,  0,  0,  0,  0, 64,  4, 64,}},
		{{  4,  0,  0,  0,  0, 64, 68, 68,}},
		{{  0,  0,  0,  0, 64, 68,  4,  0,}},
		{{  0,  0,  0,  0, 64, 68, 68,  4,}},
		{{  4,  0,  0,  0, 64, 68,  4, 64,}},
		{{  4,  0,  0,  0, 64, 68, 68, 68,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0, 64,  4,  0,  0,  0,  0,}},
		{{  0,  0,  0, 64,  4,  0,  0,  0,}},
		{{  0,  0, 64, 68,  4,  0,  0,  0,}},
		{{ 64,  4,  0,  0,  0,  0,  0,  0,}},
		{{ 64,  4, 64,  4,  0,  0,  0,  0,}},
		{{ 64,  4,  0, 64,  4,  0,  0,  0,}},
		{{ 64,  4, 64, 68,  4,  0,  0,  0,}},
		{{  0, 64,  4,  0,  0,  0,  0,  0,}},
		{{  0, 64, 68,  4,  0,  0,  0,  0,}},
		{{  0, 64,  4, 64,  4,  0,  0,  0,}},
		{{  0, 64, 68, 68,  4,  0,  0,  0,}},
		{{ 64, 68,  4,  0,  0,  0,  0,  0,}},
		{{ 64, 68, 68,  4,  0,  0,  0,  0,}},
		{{ 64, 68,  4, 64,  4,  0,  0,  0,}},
		{{ 64, 68, 68, 68,  4,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
		{{  0,  0,  0,  0, 32,  0, 32,  0,}},
		{{  0,  0,  0,  0, 32,  0,  0, 32,}},
		{{  0,  0,  0,  0, 32,  0, 32, 32,}},
		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
		{{  0,  0,  0,  0,  0, 32, 32,  0,}},
		{{  0,  0,  0,  0,  0, 32,  0, 32,}},
		{{  0,  0,  0,  0,  0, 32, 32, 32,}},
		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
		{{  0,  0,  0,  0, 32, 32, 32,  0,}},
		{{  0,  0,  0,  0, 32, 32,  0, 32,}},
		{{  0,  0,  0,  0, 32, 32, 32, 32,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 32,  0, 32,  0,  0,  0,  0,  0,}},
		{{ 32,  0,  0, 32,  0,  0,  0,  0,}},
		{{ 32,  0, 32, 32,  0,  0,  0,  0,}},
		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
		{{  0, 32, 32,  0,  0,  0,  0,  0,}},
		{{  0, 32,  0, 32,  0,  0,  0,  0,}},
		{{  0, 32, 32, 32,  0,  0,  0,  0,}},
		{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
		{{ 32, 32, 32,  0,  0,  0,  0,  0,}},
		{{ 32, 32,  0, 32,  0,  0,  0,  0,}},
		{{ 32, 32, 32, 32,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
		{{  0,  0,  0,  0,  0,  0, 16, 16,}},
		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
		{{  0,  0,  0,  0, 16,  0,  0, 16,}},
		{{  0,  0,  0,  0, 16,  0, 16, 16,}},
		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
		{{  0,  0,  0,  0,  0, 16, 16,  0,}},
		{{  0,  0,  0,  0,  0, 16,  0, 16,}},
		{{  0,  0,  0,  0,  0, 16, 16, 16,}},
		{{  0,  0,  0,  0, 16, 16,  0,  0,}},
		{{  0,  0,  0,  0, 16, 16, 16,  0,}},
		{{  0,  0,  0,  0, 16, 16,  0, 16,}},
		{{  0,  0,  0,  0, 16, 16, 16, 16,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
		{{  0,  0, 16, 16,  0,  0,  0,  0,}},
		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 16,  0, 16,  0,  0,  0,  0,  0,}},
		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
		{{ 16,  0, 16, 16,  0,  0,  0,  0,}},
		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
		{{  0, 16, 16,  0,  0,  0,  0,  0,}},
		{{  0, 16,  0, 16,  0,  0,  0,  0,}},
		{{  0, 16, 16, 16,  0,  0,  0,  0,}},
		{{ 16, 16,  0,  0,  0,  0,  0,  0,}},
		{{ 16, 16, 16,  0,  0,  0,  0,  0,}},
		{{ 16, 16,  0, 16,  0,  0,  0,  0,}},
		{{ 16, 16, 16, 16,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,128,  8,  0,}},
		{{  0,  0,  0,  0,  0,  0,128,  8,}},
		{{  0,  0,  0,  0,  0,128,136,  8,}},
		{{  0,  0,  0,128,  8,  0,  0,  0,}},
		{{  0,  0,  0,128,  8,128,  8,  0,}},
		{{  0,  0,  0,128,  8,  0,128,  8,}},
		{{  0,  0,  0,128,  8,128,136,  8,}},
		{{  0,  0,  0,  0,128,  8,  0,  0,}},
		{{  0,  0,  0,  0,128,136,  8,  0,}},
		{{  0,  0,  0,  0,128,  8,128,  8,}},
		{{  0,  0,  0,  0,128,136,136,  8,}},
		{{  0,  0,  0,128,136,  8,  0,  0,}},
		{{  0,  0,  0,128,136,136,  8,  0,}},
		{{  0,  0,  0,128,136,  8,128,  8,}},
		{{  0,  0,  0,128,136,136,136,  8,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,128,  8,  0,  0,  0,  0,  0,}},
		{{  0,  0,128,  8,  0,  0,  0,  0,}},
		{{  0,128,136,  8,  0,  0,  0,  0,}},
		{{  8,  0,  0,  0,  0,  0,  0,128,}},
		{{  8,128,  8,  0,  0,  0,  0,128,}},
		{{  8,  0,128,  8,  0,  0,  0,128,}},
		{{  8,128,136,  8,  0,  0,  0,128,}},
		{{128,  8,  0,  0,  0,  0,  0,  0,}},
		{{128,136,  8,  0,  0,  0,  0,  0,}},
		{{128,  8,128,  8,  0,  0,  0,  0,}},
		{{128,136,136,  8,  0,  0,  0,  0,}},
		{{136,  8,  0,  0,  0,  0,  0,128,}},
		{{136,136,  8,  0,  0,  0,  0,128,}},
		{{136,  8,128,  8,  0,  0,  0,128,}},
		{{136,136,136,  8,  0,  0,  0,128,}},
	},
};

/* Table that combines the S, P, and E operations.  */
static const unsigned long SPE[2][8][64] = {
	{
		{
			0x80088000,0x80000000,         0,0x80088000,
			         0,0x80088000,0x80000000,         0,
			0x80088000,0x80088000,0x80000000,   0x88000,
			   0x88000,         0,         0,0x80000000,
			0x80000000,         0,   0x88000,0x80088000,
			0x80088000,0x80000000,   0x88000,   0x88000,
			         0,   0x88000,0x80088000,0x80000000,
			   0x88000,   0x88000,0x80000000,         0,
			         0,0x80088000,   0x88000,0x80000000,
			0x80088000,0x80000000,   0x88000,   0x88000,
			0x80000000,   0x88000,0x80088000,         0,
			0x80088000,         0,         0,0x80000000,
			0x80088000,0x80088000,0x80000000,   0x88000,
			         0,   0x88000,0x80000000,         0,
			0x80000000,         0,   0x88000,0x80088000,
			         0,0x80000000,   0x88000,0x80088000,
		},
		{
			 0x8800010,         0, 0x8800000,         0,
			      0x10, 0x8800010, 0x8800000, 0x8800000,
			 0x8800000,      0x10,      0x10, 0x8800000,
			      0x10, 0x8800000,         0,      0x10,
			         0, 0x8800010,      0x10, 0x8800000,
			 0x8800010,         0,         0,      0x10,
			 0x8800010, 0x8800010, 0x8800000,      0x10,
			         0,         0, 0x8800010, 0x8800010,
			      0x10, 0x8800000, 0x8800000, 0x8800010,
			 0x8800010,      0x10,      0x10,         0,
			         0, 0x8800010,         0,      0x10,
			 0x8800000,         0, 0x8800010, 0x8800010,
			 0x8800000, 0x8800000,         0,      0x10,
			      0x10, 0x8800010, 0x8800000,         0,
			      0x10,         0, 0x8800010, 0x8800000,
			 0x8800010,      0x10,         0, 0x8800000,
		},
		{
			         0,0x40001000,    0x1000,    0x1000,
			0x40000000,         0,    0x1000,0x40001000,
			    0x1000,0x40000000,0x40000000,         0,
			0x40001000,    0x1000,         0,0x40000000,
			         0,0x40000000,0x40001000,    0x1000,
			    0x1000,0x40001000,0x40000000,         0,
			0x40000000,    0x1000,0x40001000,0x40000000,
			0x40001000,         0,         0,0x40001000,
			0x40001000,    0x1000,         0,0x40000000,
			    0x1000,0x40000000,0x40000000,    0x1000,
			         0,0x40001000,0x40001000,0x40000000,
			0x40000000,         0,0x40001000,         0,
			0x40001000,         0,         0,0x40001000,
			0x40000000,    0x1000,    0x1000,0x40001000,
			    0x1000,         0,0x40000000,    0x1000,
			         0,0x40001000,    0x1000,0x40000000,
		},
		{
			  0x100008,  0x100000,       0x8,  0x100008,
			         0,         0,  0x100008,       0x8,
			  0x100000,       0x8,         0,  0x100008,
			       0x8,  0x100008,         0,         0,
			       0x8,  0x100000,  0x100000,       0x8,
			  0x100000,  0x100008,         0,  0x100000,
			  0x100008,         0,       0x8,  0x100000,
			  0x100000,       0x8,  0x100008,         0,
			       0x8,  0x100008,         0,       0x8,
			  0x100000,  0x100000,       0x8,         0,
			  0x100008,         0,  0x100000,       0x8,
			         0,       0x8,  0x100000,  0x100000,
			         0,  0x100008,  0x100008,         0,
			  0x100008,       0x8,  0x100000,  0x100008,
			       0x8,  0x100000,         0,  0x100008,
			  0x100008,         0,       0x8,  0x100000,
		},
		{
			         0,0x10000000,   0x44000,0x10044020,
			0x10000020,   0x44000,0x10044020,0x10000000,
			0x10000000,      0x20,      0x20,0x10044000,
			   0x44020,0x10000020,0x10044000,         0,
			0x10044000,         0,0x10000020,   0x44020,
			   0x44000,0x10044020,         0,      0x20,
			      0x20,   0x44020,0x10044020,0x10000020,
			0x10000000,   0x44000,   0x44020,0x10044000,
			0x10044000,   0x44020,0x10000020,0x10000000,
			0x10000000,      0x20,      0x20,   0x44000,
			         0,0x10044000,0x10044020,         0,
			0x10044020,         0,   0x44000,0x10000020,
			   0x44020,   0x44000,         0,0x10044020,
			0x10000020,0x10044000,   0x44020,0x10000000,
			0x10044000,0x10000020,   0x44000,   0x44020,
			      0x20,0x10044020,0x10000000,      0x20,
		},
		{
			     0x440,     0x440,         0,  0x200000,
			     0x440,  0x200000,  0x200440,         0,
			  0x200440,  0x200440,  0x200000,         0,
			  0x200000,     0x440,         0,  0x200440,
			         0,  0x200440,     0x440,         0,
			  0x200000,     0x440,  0x200000,     0x440,
			  0x200440,         0,         0,  0x200440,
			     0x440,  0x200000,  0x200440,  0x200000,
			  0x200440,         0,  0x200000,  0x200440,
			  0x200000,     0x440,         0,  0x200000,
			         0,  0x200000,     0x440,         0,
			     0x440,  0x200440,  0x200000,     0x440,
			  0x200440,  0x200000,         0,  0x200440,
			     0x440,         0,  0x200440,         0,
			  0x200000,     0x440,  0x200440,  0x200000,
			         0,  0x200440,     0x440,     0x440,
		},
		{
			 0x4400000,    0x2000,    0x2000,       0x4,
			 0x4402004, 0x4400004, 0x4402000,         0,
			         0,    0x2004,    0x2004, 0x4400000,
			       0x4, 0x4402000, 0x4400000,    0x2004,
			    0x2004, 0x4400000, 0x4400004, 0x4402004,
			         0,    0x2000,       0x4, 0x4402000,
			 0x4400004, 0x4402004, 0x4402000,       0x4,
			 0x4402004, 0x4400004,    0x2000,         0,
			 0x4402004, 0x4400000, 0x4400004,    0x2004,
			 0x4400000,    0x2000,         0, 0x4400004,
			    0x2004, 0x4402004, 0x4402000,         0,
			    0x2000,       0x4,       0x4,    0x2000,
			         0,    0x2004,    0x2000, 0x4402000,
			    0x2004, 0x4400000, 0x4402004,         0,
			 0x4402000,       0x4, 0x4400004, 0x4402004,
			       0x4, 0x4402000, 0x4400000, 0x4400004,
		},
		{
			     0x880,0x20000000,0x20000880,         0,
			0x20000000,     0x880,         0,0x20000880,
			     0x880,         0,0x20000000,0x20000880,
			0x20000880,0x20000880,     0x880,         0,
			0x20000000,0x20000880,     0x880,0x20000000,
			0x20000880,     0x880,         0,0x20000000,
			         0,         0,0x20000880,     0x880,
			         0,0x20000000,0x20000000,     0x880,
			         0,0x20000000,     0x880,0x20000880,
			0x20000880,         0,         0,0x20000000,
			     0x880,0x20000880,0x20000000,     0x880,
			0x20000000,     0x880,     0x880,0x20000000,
			0x20000880,         0,         0,     0x880,
			0x20000000,0x20000880,0x20000880,         0,
			     0x880,0x20000000,0x20000880,         0,
			         0,     0x880,0x20000000,0x20000880,
		},
	},
	{
		{
			    0x2008,       0x8,0x20002000,0x20002008,
			    0x2000,0x20000008,0x20000008,0x20002000,
			0x20000008,    0x2008,    0x2008,0x20000000,
			0x20002000,    0x2000,         0,0x20000008,
			       0x8,0x20000000,    0x2000,       0x8,
			0x20002008,    0x2008,0x20000000,    0x2000,
			0x20000000,         0,       0x8,0x20002008,
			         0,0x20002000,0x20002008,         0,
			         0,0x20002008,    0x2000,0x20000008,
			    0x2008,       0x8,0x20000000,    0x2000,
			0x20002008,         0,       0x8,0x20002000,
			0x20000008,0x20000000,0x20002000,    0x2008,
			0x20002008,       0x8,    0x2008,0x20002000,
			    0x2000,0x20000000,0x20000008,         0,
			       0x8,    0x2000,0x20002000,    0x2008,
			0x20000000,0x20002008,         0,0x20000008,
		},
		{
			 0x4400010,         0,      0x10, 0x4400010,
			 0x4400000,         0, 0x4400000,      0x10,
			         0, 0x4400010,         0, 0x4400000,
			      0x10, 0x4400010, 0x4400010,         0,
			      0x10, 0x4400000, 0x4400010,         0,
			      0x10, 0x4400000,         0,      0x10,
			 0x4400000,      0x10, 0x4400010, 0x4400000,
			 0x4400000,      0x10,         0, 0x4400010,
			      0x10, 0x4400010, 0x4400000,      0x10,
			 0x4400010,      0x10, 0x4400000,         0,
			 0x4400000,         0,      0x10, 0x4400010,
			         0, 0x4400000,      0x10, 0x4400000,
			 0x4400010,         0,         0, 0x4400000,
			         0, 0x4400010,      0x10, 0x4400010,
			 0x4400010,      0x10,         0, 0x4400000,
			 0x4400000,         0, 0x4400010,      0x10,
		},
		{
			0x10044000,   0x44004,         0,0x10044000,
			0x10000004,   0x44000,0x10044000,       0x4,
			   0x44000,       0x4,   0x44004,0x10000000,
			0x10044004,0x10000000,0x10000000,0x10044004,
			         0,0x10000004,   0x44004,         0,
			0x10000000,0x10044004,       0x4,0x10044000,
			0x10044004,   0x44000,0x10000004,   0x44004,
			       0x4,         0,   0x44000,0x10000004,
			   0x44004,         0,0x10000000,       0x4,
			0x10000000,0x10000004,   0x44004,0x10044000,
			         0,   0x44004,       0x4,0x10044004,
			0x10000004,   0x44000,0x10044004,0x10000000,
			0x10000004,0x10044000,   0x44000,0x10044004,
			       0x4,   0x44000,0x10044000,       0x4,
			   0x44000,         0,0x10044004,0x10000000,
			0x10044000,0x10000004,         0,   0x44004,
		},
		{
			0x80000440,  0x100000,0x80000000,0x80100440,
			         0,  0x100440,0x80100000,0x80000440,
			  0x100440,0x80100000,  0x100000,0x80000000,
			0x80100000,0x80000440,     0x440,  0x100000,
			0x80100440,     0x440,         0,0x80000000,
			     0x440,0x80100000,  0x100440,         0,
			0x80000000,         0,0x80000440,  0x100440,
			  0x100000,0x80100440,0x80100440,     0x440,
			0x80100440,0x80000000,     0x440,0x80100000,
			     0x440,  0x100000,0x80000000,  0x100440,
			0x80100000,         0,         0,0x80000440,
			         0,0x80100440,  0x100440,         0,
			  0x100000,0x80100440,0x80000440,     0x440,
			0x80100440,0x80000000,  0x100000,0x80000440,
			0x80000440,     0x440,  0x100440,0x80100000,
			0x80000000,  0x100000,0x80100000,  0x100440,
		},
		{
			   0x88000,         0,         0,   0x88000,
			   0x88000,   0x88000,         0,   0x88000,
			         0,         0,   0x88000,         0,
			   0x88000,   0x88000,   0x88000,         0,
			         0,   0x88000,         0,         0,
			   0x88000,         0,         0,   0x88000,
			         0,   0x88000,   0x88000,         0,
			   0x88000,         0,         0,   0x88000,
			   0x88000,   0x88000,         0,   0x88000,
			         0,         0,   0x88000,   0x88000,
			   0x88000,         0,   0x88000,         0,
			         0,   0x88000,         0,         0,
			   0x88000,         0,         0,   0x88000,
			   0x88000,   0x88000,         0,         0,
			         0,   0x88000,   0x88000,         0,
			         0,         0,   0x88000,   0x88000,
		},
		{
			 0x8800000,      0x20,         0, 0x8800020,
			      0x20,         0, 0x8800000,      0x20,
			         0, 0x8800020,      0x20, 0x8800000,
			 0x8800000, 0x8800000, 0x8800020,      0x20,
			      0x20, 0x8800000, 0x8800020,         0,
			         0,         0, 0x8800020, 0x8800020,
			 0x8800020, 0x8800020, 0x8800000,         0,
			         0,      0x20,      0x20, 0x8800000,
			         0, 0x8800000, 0x8800000,      0x20,
			 0x8800020,      0x20,         0, 0x8800000,
			 0x8800000,         0, 0x8800020,      0x20,
			      0x20, 0x8800020,      0x20,         0,
			 0x8800020,      0x20,      0x20, 0x8800000,
			 0x8800000, 0x8800020,      0x20,         0,
			         0, 0x8800000, 0x8800000, 0x8800020,
			 0x8800020,         0,         0, 0x8800020,
		},
		{
			         0,         0,    0x1000,0x40001000,
			0x40001000,0x40000000,         0,         0,
			    0x1000,0x40001000,0x40000000,    0x1000,
			0x40000000,    0x1000,    0x1000,0x40000000,
			0x40001000,         0,0x40000000,0x40001000,
			         0,    0x1000,0x40001000,         0,
			0x40001000,0x40000000,    0x1000,0x40000000,
			0x40000000,0x40001000,         0,    0x1000,
			0x40000000,    0x1000,0x40001000,0x40000000,
			         0,         0,    0x1000,0x40001000,
			0x40001000,0x40000000,         0,         0,
			         0,0x40001000,0x40000000,    0x1000,
			         0,0x40001000,    0x1000,         0,
			0x40000000,         0,0x40001000,    0x1000,
			    0x1000,0x40000000,0x40000000,0x40001000,
			0x40001000,    0x1000,    0x1000,0x40000000,
		},
		{
			  0x200880,  0x200880,         0,         0,
			  0x200000,     0x880,  0x200880,  0x200880,
			         0,  0x200000,     0x880,         0,
			     0x880,  0x200000,  0x200000,  0x200880,
			         0,     0x880,     0x880,  0x200000,
			  0x200880,  0x200000,         0,     0x880,
			  0x200000,     0x880,  0x200000,  0x200880,
			     0x880,         0,  0x200880,         0,
			     0x880,         0,  0x200000,  0x200880,
			         0,  0x200000,         0,     0x880,
			  0x200880,  0x200000,  0x200000,     0x880,
			  0x200880,         0,     0x880,  0x200000,
			  0x200880,     0x880,  0x200880,  0x200000,
			     0x880,         0,  0x200000,  0x200880,
			         0,  0x200880,     0x880,         0,
			  0x200000,  0x200880,         0,     0x880,
		},
	},
};

/* compressed/interleaved => final permutation table */
static const C_block CF6464[64/CHUNKBITS][1<<CHUNKBITS] = {
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 64,}},
		{{  0,  0,  0,  0,  0,  0, 64,  0,}},
		{{  0,  0,  0,  0,  0,  0, 64, 64,}},
		{{  0,  0,  0,  0,  0, 64,  0,  0,}},
		{{  0,  0,  0,  0,  0, 64,  0, 64,}},
		{{  0,  0,  0,  0,  0, 64, 64,  0,}},
		{{  0,  0,  0,  0,  0, 64, 64, 64,}},
		{{  0,  0,  0,  0, 64,  0,  0,  0,}},
		{{  0,  0,  0,  0, 64,  0,  0, 64,}},
		{{  0,  0,  0,  0, 64,  0, 64,  0,}},
		{{  0,  0,  0,  0, 64,  0, 64, 64,}},
		{{  0,  0,  0,  0, 64, 64,  0,  0,}},
		{{  0,  0,  0,  0, 64, 64,  0, 64,}},
		{{  0,  0,  0,  0, 64, 64, 64,  0,}},
		{{  0,  0,  0,  0, 64, 64, 64, 64,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  4,}},
		{{  0,  0,  0,  0,  0,  0,  4,  0,}},
		{{  0,  0,  0,  0,  0,  0,  4,  4,}},
		{{  0,  0,  0,  0,  0,  4,  0,  0,}},
		{{  0,  0,  0,  0,  0,  4,  0,  4,}},
		{{  0,  0,  0,  0,  0,  4,  4,  0,}},
		{{  0,  0,  0,  0,  0,  4,  4,  4,}},
		{{  0,  0,  0,  0,  4,  0,  0,  0,}},
		{{  0,  0,  0,  0,  4,  0,  0,  4,}},
		{{  0,  0,  0,  0,  4,  0,  4,  0,}},
		{{  0,  0,  0,  0,  4,  0,  4,  4,}},
		{{  0,  0,  0,  0,  4,  4,  0,  0,}},
		{{  0,  0,  0,  0,  4,  4,  0,  4,}},
		{{  0,  0,  0,  0,  4,  4,  4,  0,}},
		{{  0,  0,  0,  0,  4,  4,  4,  4,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 64,  0,  0,  0,  0,}},
		{{  0,  0, 64,  0,  0,  0,  0,  0,}},
		{{  0,  0, 64, 64,  0,  0,  0,  0,}},
		{{  0, 64,  0,  0,  0,  0,  0,  0,}},
		{{  0, 64,  0, 64,  0,  0,  0,  0,}},
		{{  0, 64, 64,  0,  0,  0,  0,  0,}},
		{{  0, 64, 64, 64,  0,  0,  0,  0,}},
		{{ 64,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 64,  0,  0, 64,  0,  0,  0,  0,}},
		{{ 64,  0, 64,  0,  0,  0,  0,  0,}},
		{{ 64,  0, 64, 64,  0,  0,  0,  0,}},
		{{ 64, 64,  0,  0,  0,  0,  0,  0,}},
		{{ 64, 64,  0, 64,  0,  0,  0,  0,}},
		{{ 64, 64, 64,  0,  0,  0,  0,  0,}},
		{{ 64, 64, 64, 64,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  4,  0,  0,  0,  0,}},
		{{  0,  0,  4,  0,  0,  0,  0,  0,}},
		{{  0,  0,  4,  4,  0,  0,  0,  0,}},
		{{  0,  4,  0,  0,  0,  0,  0,  0,}},
		{{  0,  4,  0,  4,  0,  0,  0,  0,}},
		{{  0,  4,  4,  0,  0,  0,  0,  0,}},
		{{  0,  4,  4,  4,  0,  0,  0,  0,}},
		{{  4,  0,  0,  0,  0,  0,  0,  0,}},
		{{  4,  0,  0,  4,  0,  0,  0,  0,}},
		{{  4,  0,  4,  0,  0,  0,  0,  0,}},
		{{  4,  0,  4,  4,  0,  0,  0,  0,}},
		{{  4,  4,  0,  0,  0,  0,  0,  0,}},
		{{  4,  4,  0,  4,  0,  0,  0,  0,}},
		{{  4,  4,  4,  0,  0,  0,  0,  0,}},
		{{  4,  4,  4,  4,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 16,}},
		{{  0,  0,  0,  0,  0,  0, 16,  0,}},
		{{  0,  0,  0,  0,  0,  0, 16, 16,}},
		{{  0,  0,  0,  0,  0, 16,  0,  0,}},
		{{  0,  0,  0,  0,  0, 16,  0, 16,}},
		{{  0,  0,  0,  0,  0, 16, 16,  0,}},
		{{  0,  0,  0,  0,  0, 16, 16, 16,}},
		{{  0,  0,  0,  0, 16,  0,  0,  0,}},
		{{  0,  0,  0,  0, 16,  0,  0, 16,}},
		{{  0,  0,  0,  0, 16,  0, 16,  0,}},
		{{  0,  0,  0,  0, 16,  0, 16, 16,}},
		{{  0,  0,  0,  0, 16, 16,  0,  0,}},
		{{  0,  0,  0,  0, 16, 16,  0, 16,}},
		{{  0,  0,  0,  0, 16, 16, 16,  0,}},
		{{  0,  0,  0,  0, 16, 16, 16, 16,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  1,}},
		{{  0,  0,  0,  0,  0,  0,  1,  0,}},
		{{  0,  0,  0,  0,  0,  0,  1,  1,}},
		{{  0,  0,  0,  0,  0,  1,  0,  0,}},
		{{  0,  0,  0,  0,  0,  1,  0,  1,}},
		{{  0,  0,  0,  0,  0,  1,  1,  0,}},
		{{  0,  0,  0,  0,  0,  1,  1,  1,}},
		{{  0,  0,  0,  0,  1,  0,  0,  0,}},
		{{  0,  0,  0,  0,  1,  0,  0,  1,}},
		{{  0,  0,  0,  0,  1,  0,  1,  0,}},
		{{  0,  0,  0,  0,  1,  0,  1,  1,}},
		{{  0,  0,  0,  0,  1,  1,  0,  0,}},
		{{  0,  0,  0,  0,  1,  1,  0,  1,}},
		{{  0,  0,  0,  0,  1,  1,  1,  0,}},
		{{  0,  0,  0,  0,  1,  1,  1,  1,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 16,  0,  0,  0,  0,}},
		{{  0,  0, 16,  0,  0,  0,  0,  0,}},
		{{  0,  0, 16, 16,  0,  0,  0,  0,}},
		{{  0, 16,  0,  0,  0,  0,  0,  0,}},
		{{  0, 16,  0, 16,  0,  0,  0,  0,}},
		{{  0, 16, 16,  0,  0,  0,  0,  0,}},
		{{  0, 16, 16, 16,  0,  0,  0,  0,}},
		{{ 16,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 16,  0,  0, 16,  0,  0,  0,  0,}},
		{{ 16,  0, 16,  0,  0,  0,  0,  0,}},
		{{ 16,  0, 16, 16,  0,  0,  0,  0,}},
		{{ 16, 16,  0,  0,  0,  0,  0,  0,}},
		{{ 16, 16,  0, 16,  0,  0,  0,  0,}},
		{{ 16, 16, 16,  0,  0,  0,  0,  0,}},
		{{ 16, 16, 16, 16,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  1,  0,  0,  0,  0,}},
		{{  0,  0,  1,  0,  0,  0,  0,  0,}},
		{{  0,  0,  1,  1,  0,  0,  0,  0,}},
		{{  0,  1,  0,  0,  0,  0,  0,  0,}},
		{{  0,  1,  0,  1,  0,  0,  0,  0,}},
		{{  0,  1,  1,  0,  0,  0,  0,  0,}},
		{{  0,  1,  1,  1,  0,  0,  0,  0,}},
		{{  1,  0,  0,  0,  0,  0,  0,  0,}},
		{{  1,  0,  0,  1,  0,  0,  0,  0,}},
		{{  1,  0,  1,  0,  0,  0,  0,  0,}},
		{{  1,  0,  1,  1,  0,  0,  0,  0,}},
		{{  1,  1,  0,  0,  0,  0,  0,  0,}},
		{{  1,  1,  0,  1,  0,  0,  0,  0,}},
		{{  1,  1,  1,  0,  0,  0,  0,  0,}},
		{{  1,  1,  1,  1,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,128,}},
		{{  0,  0,  0,  0,  0,  0,128,  0,}},
		{{  0,  0,  0,  0,  0,  0,128,128,}},
		{{  0,  0,  0,  0,  0,128,  0,  0,}},
		{{  0,  0,  0,  0,  0,128,  0,128,}},
		{{  0,  0,  0,  0,  0,128,128,  0,}},
		{{  0,  0,  0,  0,  0,128,128,128,}},
		{{  0,  0,  0,  0,128,  0,  0,  0,}},
		{{  0,  0,  0,  0,128,  0,  0,128,}},
		{{  0,  0,  0,  0,128,  0,128,  0,}},
		{{  0,  0,  0,  0,128,  0,128,128,}},
		{{  0,  0,  0,  0,128,128,  0,  0,}},
		{{  0,  0,  0,  0,128,128,  0,128,}},
		{{  0,  0,  0,  0,128,128,128,  0,}},
		{{  0,  0,  0,  0,128,128,128,128,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  8,}},
		{{  0,  0,  0,  0,  0,  0,  8,  0,}},
		{{  0,  0,  0,  0,  0,  0,  8,  8,}},
		{{  0,  0,  0,  0,  0,  8,  0,  0,}},
		{{  0,  0,  0,  0,  0,  8,  0,  8,}},
		{{  0,  0,  0,  0,  0,  8,  8,  0,}},
		{{  0,  0,  0,  0,  0,  8,  8,  8,}},
		{{  0,  0,  0,  0,  8,  0,  0,  0,}},
		{{  0,  0,  0,  0,  8,  0,  0,  8,}},
		{{  0,  0,  0,  0,  8,  0,  8,  0,}},
		{{  0,  0,  0,  0,  8,  0,  8,  8,}},
		{{  0,  0,  0,  0,  8,  8,  0,  0,}},
		{{  0,  0,  0,  0,  8,  8,  0,  8,}},
		{{  0,  0,  0,  0,  8,  8,  8,  0,}},
		{{  0,  0,  0,  0,  8,  8,  8,  8,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,128,  0,  0,  0,  0,}},
		{{  0,  0,128,  0,  0,  0,  0,  0,}},
		{{  0,  0,128,128,  0,  0,  0,  0,}},
		{{  0,128,  0,  0,  0,  0,  0,  0,}},
		{{  0,128,  0,128,  0,  0,  0,  0,}},
		{{  0,128,128,  0,  0,  0,  0,  0,}},
		{{  0,128,128,128,  0,  0,  0,  0,}},
		{{128,  0,  0,  0,  0,  0,  0,  0,}},
		{{128,  0,  0,128,  0,  0,  0,  0,}},
		{{128,  0,128,  0,  0,  0,  0,  0,}},
		{{128,  0,128,128,  0,  0,  0,  0,}},
		{{128,128,  0,  0,  0,  0,  0,  0,}},
		{{128,128,  0,128,  0,  0,  0,  0,}},
		{{128,128,128,  0,  0,  0,  0,  0,}},
		{{128,128,128,128,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  8,  0,  0,  0,  0,}},
		{{  0,  0,  8,  0,  0,  0,  0,  0,}},
		{{  0,  0,  8,  8,  0,  0,  0,  0,}},
		{{  0,  8,  0,  0,  0,  0,  0,  0,}},
		{{  0,  8,  0,  8,  0,  0,  0,  0,}},
		{{  0,  8,  8,  0,  0,  0,  0,  0,}},
		{{  0,  8,  8,  8,  0,  0,  0,  0,}},
		{{  8,  0,  0,  0,  0,  0,  0,  0,}},
		{{  8,  0,  0,  8,  0,  0,  0,  0,}},
		{{  8,  0,  8,  0,  0,  0,  0,  0,}},
		{{  8,  0,  8,  8,  0,  0,  0,  0,}},
		{{  8,  8,  0,  0,  0,  0,  0,  0,}},
		{{  8,  8,  0,  8,  0,  0,  0,  0,}},
		{{  8,  8,  8,  0,  0,  0,  0,  0,}},
		{{  8,  8,  8,  8,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0, 32,}},
		{{  0,  0,  0,  0,  0,  0, 32,  0,}},
		{{  0,  0,  0,  0,  0,  0, 32, 32,}},
		{{  0,  0,  0,  0,  0, 32,  0,  0,}},
		{{  0,  0,  0,  0,  0, 32,  0, 32,}},
		{{  0,  0,  0,  0,  0, 32, 32,  0,}},
		{{  0,  0,  0,  0,  0, 32, 32, 32,}},
		{{  0,  0,  0,  0, 32,  0,  0,  0,}},
		{{  0,  0,  0,  0, 32,  0,  0, 32,}},
		{{  0,  0,  0,  0, 32,  0, 32,  0,}},
		{{  0,  0,  0,  0, 32,  0, 32, 32,}},
		{{  0,  0,  0,  0, 32, 32,  0,  0,}},
		{{  0,  0,  0,  0, 32, 32,  0, 32,}},
		{{  0,  0,  0,  0, 32, 32, 32,  0,}},
		{{  0,  0,  0,  0, 32, 32, 32, 32,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  0,  0,  0,  0,  2,}},
		{{  0,  0,  0,  0,  0,  0,  2,  0,}},
		{{  0,  0,  0,  0,  0,  0,  2,  2,}},
		{{  0,  0,  0,  0,  0,  2,  0,  0,}},
		{{  0,  0,  0,  0,  0,  2,  0,  2,}},
		{{  0,  0,  0,  0,  0,  2,  2,  0,}},
		{{  0,  0,  0,  0,  0,  2,  2,  2,}},
		{{  0,  0,  0,  0,  2,  0,  0,  0,}},
		{{  0,  0,  0,  0,  2,  0,  0,  2,}},
		{{  0,  0,  0,  0,  2,  0,  2,  0,}},
		{{  0,  0,  0,  0,  2,  0,  2,  2,}},
		{{  0,  0,  0,  0,  2,  2,  0,  0,}},
		{{  0,  0,  0,  0,  2,  2,  0,  2,}},
		{{  0,  0,  0,  0,  2,  2,  2,  0,}},
		{{  0,  0,  0,  0,  2,  2,  2,  2,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0, 32,  0,  0,  0,  0,}},
		{{  0,  0, 32,  0,  0,  0,  0,  0,}},
		{{  0,  0, 32, 32,  0,  0,  0,  0,}},
		{{  0, 32,  0,  0,  0,  0,  0,  0,}},
		{{  0, 32,  0, 32,  0,  0,  0,  0,}},
		{{  0, 32, 32,  0,  0,  0,  0,  0,}},
		{{  0, 32, 32, 32,  0,  0,  0,  0,}},
		{{ 32,  0,  0,  0,  0,  0,  0,  0,}},
		{{ 32,  0,  0, 32,  0,  0,  0,  0,}},
		{{ 32,  0, 32,  0,  0,  0,  0,  0,}},
		{{ 32,  0, 32, 32,  0,  0,  0,  0,}},
		{{ 32, 32,  0,  0,  0,  0,  0,  0,}},
		{{ 32, 32,  0, 32,  0,  0,  0,  0,}},
		{{ 32, 32, 32,  0,  0,  0,  0,  0,}},
		{{ 32, 32, 32, 32,  0,  0,  0,  0,}},
	},
	{
		{{  0,  0,  0,  0,  0,  0,  0,  0,}},
		{{  0,  0,  0,  2,  0,  0,  0,  0,}},
		{{  0,  0,  2,  0,  0,  0,  0,  0,}},
		{{  0,  0,  2,  2,  0,  0,  0,  0,}},
		{{  0,  2,  0,  0,  0,  0,  0,  0,}},
		{{  0,  2,  0,  2,  0,  0,  0,  0,}},
		{{  0,  2,  2,  0,  0,  0,  0,  0,}},
		{{  0,  2,  2,  2,  0,  0,  0,  0,}},
		{{  2,  0,  0,  0,  0,  0,  0,  0,}},
		{{  2,  0,  0,  2,  0,  0,  0,  0,}},
		{{  2,  0,  2,  0,  0,  0,  0,  0,}},
		{{  2,  0,  2,  2,  0,  0,  0,  0,}},
		{{  2,  2,  0,  0,  0,  0,  0,  0,}},
		{{  2,  2,  0,  2,  0,  0,  0,  0,}},
		{{  2,  2,  2,  0,  0,  0,  0,  0,}},
		{{  2,  2,  2,  2,  0,  0,  0,  0,}},
	},
};

#define HAVE_DES_TABLES 1
#endif