15     for(
unsigned char mask = 0; mask <= 255; mask++) {
 
   16       for(
unsigned char index = 0; index < 8; index++) {
 
   18         char *mimap = 
imap[index];  
 
   19         for(
unsigned char i = 0; i < 8; i++) {
 
   20           if(( 1 << i ) & mask) {   
 
   27       if (mask == UCHAR_MAX) 
break;
 
   39   {0, 1, 2, 4, 3, 5, 6, 7 },
 
   40   {1, 0, 3, 5, 2, 4, 6, 7 },
 
   41   {2, 0, 3, 6, 1, 4, 5, 7 },
 
   42   {3, 1, 2, 7, 0, 5, 4, 6 },
 
   43   {4, 5, 6, 0, 7, 1, 2, 3 },
 
   44   {5, 4, 7, 1, 6, 0, 3, 2 },
 
   45   {6, 4, 7, 2, 5, 0, 3, 1 },
 
   46   {7, 5, 6, 3, 4, 1, 2, 0 } };
 
   49   {0, 1, 2, 4, 3, 5, 6, 7 },
 
   50   {1, 0, 4, 2, 5, 3, 6, 7 },
 
   51   {1, 4, 0, 2, 5, 6, 3, 7 },
 
   52   {4, 1, 2, 0, 6, 5, 7, 3 },
 
   53   {3, 5, 6, 7, 0, 1, 2, 4 },
 
   54   {5, 3, 7, 6, 1, 0, 4, 2 },
 
   55   {5, 7, 3, 6, 1, 4, 0, 2 },
 
   56   {7, 5, 6, 3, 4, 1, 2, 0 } };