Re: Documentation/linux-logo-HOWTO.txt

cosmos
2003-05-13T11:15:48Z

[-- Attachment #1: Type: text/plain, Size: 1195 bytes --]

> On Tue, 13 May 2003, cosmos wrote:
> > i have written a doc for the hack of the bootup linux logo.The document
> > contains the main program that produces the linux-logo.h header file and
the
> > aquired measurements for the WIDTH & HEIGHT for the fbcon.c file.
> > Can this doc be included in the Documentation of the kernel.
>
> I guess this is for 2.4.x?
>
> Where are the patches?
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 --
geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker.
But
> when I'm talking to journalists I just say "programmer" or something like
that.
> -- Linus Torvalds

I have included the doc in txt format as should be included in the
kernel.Yes the patch is for the 2.4.x kernel series. The C program supports
only PCX files but easily can adopt other formats.The patch can be included
also in the Kernel Hacking Section,in CONFIG_LINUX_LOGO_HACK,or sth like
that and retrieve the PCX information from the same directory which the
patch is included.
If the doc is going to be included in the kernel doc in any way please let
me know.
Thanks.

Best regards,
Chris.

[-- Attachment #2: linux-logo-HOWTO.txt --]
[-- Type: text/plain, Size: 32995 bytes --]

Linux-logo hack-HOWTO
======================
Nanakos Chrysostomos <cosmos@wired-net.gr>

This HOW-TO is written for those that want to hack the linux bootup logo.
The main files in the kernel for the vesa frame buffer bootup logo are:
[Kernel_TopDir]/drivers/video/fbcon.c & [Kernel_TopDir]/include/linux/linux_logo.h
Those two files are responsible for the bootup logo when the kernel starts in debug or quiet mode.
If we want to change this logo we have to modify the files,by using the program that is appended at the end
of this text.The image file that we have to use is a PCX image file with no more than 256 colors and not bigger
than 786432 pixels(1024x768).

For more information you can also read the [Kernel_TopDir]/Documentation/fb/vesafb.txt

--------logo.c-------------------------
/*Written by Kevin R. Sandy
* Changes to image manipulation by Nanakos Chrysostomos*/

#include <stdio.h>
#include <stdlib.h>
#include "fbcon.h"

#define COLORS 256
#define IMAGE_SIZE 786432 /*"1024x768"*/

typedef struct struct_palette
{
unsigned char red[256];
unsigned char green[256];
unsigned char blue[256];
} struct_palette;

typedef struct struct_picture
{
struct_palette palette;
unsigned int height;
unsigned int width;
unsigned long int bytes_in_image;
unsigned long int pixels_in_image;
unsigned char image_data[IMAGE_SIZE];
} struct_logo;

struct_logo logo;

void print_usage(FILE *stream,int exit_code);
int load_image_file(const char *);
int write_logo_header(const char *);
int write_image_data(FILE *, unsigned char *);
int write_palette_info(FILE *, char *, unsigned char *);
int read_pcx_file(FILE *);

const char* program_name;
int errno;

int main(int argc,char **argv)
{
char *image_file_name;
char *header_file_name;
program_name=argv[0];

if( argc !=3 )
{
print_usage(stdout,0);
}
image_file_name=argv[1];
header_file_name=argv[2];

if ( !(load_image_file(image_file_name)) )
{
fprintf(stderr, "Exiting due to errors.\n\n");

return 1;
}
else if ( !(write_logo_header(header_file_name)) )
{
fprintf(stderr, "Exiting due to errors.\n\n");

return 1;
}
else
{
fprintf(stdout, "\n");
fprintf(stdout, "#define LOGO_H %u\n", logo.height);
fprintf(stdout, "#define LOGO_W %u\n", logo.width);
fprintf(stdout, "\n");
fprintf(stdout, "\n");

return 0;
}
}
void print_usage(FILE *stream,int exit_code)
{

fprintf(stream, "Usage: %s <image>.pcx <linux-logo.h>\n",program_name);
fprintf(stream,
"\n"
"The image file should be in PCX format. \n"
"It should use only 256 colors. \n"
"\n");

exit(exit_code);
}

int load_image_file(const char *image_file_name)
{
FILE *image_file;

image_file = fopen(image_file_name, "rb");

if ( !image_file )
{
fprintf(stderr, "\n");
fprintf(stderr, "Cannot open %s for reading:\n", image_file_name);
fprintf(stderr, "\t%s\n", strerror(errno));
fprintf(stderr, "\n");
return 0;
}

read_pcx_file(image_file);

fclose(image_file);

return 1;
}

int write_logo_header(const char *header_file_name)
{
FILE *header_file;

header_file = fopen(header_file_name, "wb");

if ( !header_file )
{
fprintf(stderr, "\n");
fprintf(stderr, "Cannot open %s for writing:\n", header_file_name);
fprintf(stderr, "\t%s\n", strerror(errno));
fprintf(stderr, "\n");
return 0;
}

fprintf(header_file, "#ifndef __HAVE_ARCH_LINUX_LOGO\n");
fprintf(header_file, "#define LINUX_LOGO_COLORS 214\n");
fprintf(header_file, "#endif\n\n");
fprintf(header_file, "#ifdef INCLUDE_LINUX_LOGO_DATA\n\n");
fprintf(header_file, "#ifndef __HAVE_ARCH_LINUX_LOGO\n\n");

write_palette_info(header_file, "red", (char *)logo.palette.red);
write_palette_info(header_file, "green", (char *)logo.palette.green);
write_palette_info(header_file, "blue", (char *)logo.palette.blue);
write_image_data(header_file, (char *)logo.image_data);

fprintf(header_file, "#endif\n\n");
fprintf(header_file, "%s",color_logo);

fclose(header_file);

return 1;
}

int write_image_data(FILE *header_file, unsigned char *image_data)
{
unsigned int ctr = 0;

fprintf(header_file, "unsigned char linux_logo[] __initdata = {\n");

while ( ctr < logo.pixels_in_image )
{
fprintf(header_file, "0x%2.2hx", image_data[ctr++] + 0x20);
if ( ctr == logo.pixels_in_image )
{
fprintf(header_file, "\n};\n\n");
}
else if ( ctr % 8 == 0 )
{
fprintf(header_file, ",\n");
}
else
{
fprintf(header_file, ", ");
}
}

return 1;
}

int write_palette_info(FILE *header_file, char *color, unsigned char *palette)
{
unsigned int ctr;

fprintf(header_file, "unsigned char linux_logo_%s[] __initdata = {\n", color);
ctr = 0;
while ( ctr < 256 )
{
fprintf(header_file, "0x%2.2hx", palette[ctr++]);
if ( ctr == 256 )
{
fprintf(header_file, "\n};\n\n");
}
else if ( ctr % 8 == 0 )
{
fprintf(header_file, ",\n");
}
else
{
fprintf(header_file, ", ");
}
}

return 1;
}

int read_pcx_file(FILE *pcx_file)
{
unsigned char temp_buffer;
unsigned int ctr, image_ctr;
unsigned int rle_run_length;

fseek(pcx_file, -768L, SEEK_END);
logo.bytes_in_image = ftell(pcx_file) - 128;

fseek(pcx_file, 8L, SEEK_SET);
fscanf(pcx_file, "%2c", &logo.width);
logo.width++;
fscanf(pcx_file, "%2c", &logo.height);
logo.height++;

fseek(pcx_file, 128L, SEEK_SET);

for ( ctr = 0, image_ctr = 0; ctr < logo.bytes_in_image; ctr++)
{
temp_buffer = fgetc(pcx_file);

if ( temp_buffer >= 192 )
{
rle_run_length = temp_buffer - 192;
temp_buffer = fgetc(pcx_file);
ctr++;

while ( rle_run_length-- > 0 )
{
logo.image_data[image_ctr++] = temp_buffer;
}
}
else
{
logo.image_data[image_ctr++] = temp_buffer;
}
}

logo.pixels_in_image = --image_ctr;

for ( ctr = 0; ctr < 256; ctr++)
{
logo.palette.red[ctr] = fgetc(pcx_file);
logo.palette.green[ctr] = fgetc(pcx_file);
logo.palette.blue[ctr] = fgetc(pcx_file);
}

return 1;
}

-------fbcon.h----------------------------------------
char* color_logo = "#ifndef __HAVE_ARCH_LINUX_LOGOBW

unsigned char linux_logo_bw[] __initdata = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xC3,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF,
0xFB, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF,
0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF9, 0xCF, 0xC3, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x87, 0x81, 0xF9,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xA7,
0x99, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF9, 0xF3, 0xBC, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF9, 0xE3, 0xBC, 0xF9, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0, 0x3C, 0xF9,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0,
0x19, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF9, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x80,
0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF9, 0xC0, 0x21, 0xD8, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF9, 0xB1, 0x80, 0xEC, 0xC0, 0x1F,
0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x90, 0x00, 0xE4,
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x8C,
0xC0, 0x7C, 0x04, 0x81, 0xFF, 0xFF, 0xFF, 0xFF,
0xE3, 0x80, 0x00, 0x7C, 0x40, 0x11, 0xFF, 0xFF,
0xFF, 0xFF, 0xE3, 0x80, 0x00, 0x7F, 0xD2, 0x29,
0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x3F,
0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0x00,
0x00, 0x3F, 0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFF,
0x1E, 0x00, 0x00, 0x1F, 0x80, 0x19, 0xFF, 0xFF,
0xFF, 0xFE, 0x1C, 0x00, 0x00, 0x1E, 0x80, 0x19,
0xFF, 0xFF, 0xFF, 0xFE, 0x3C, 0x00, 0x00, 0x1E,
0x80, 0x11, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x00,
0x00, 0x0F, 0x80, 0x11, 0xFF, 0xFF, 0xFF, 0xFC,
0xF8, 0x00, 0x00, 0x0E, 0x80, 0x11, 0xFF, 0xFF,
0xFF, 0xFC, 0xF8, 0x00, 0x00, 0x06, 0x00, 0x11,
0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0x00, 0x00, 0x06,
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF9, 0xF0, 0x00,
0x00, 0x02, 0x00, 0x09, 0xFF, 0xFF, 0xFF, 0xF1,
0xF0, 0x00, 0x00, 0x02, 0x80, 0x10, 0xFF, 0xFF,
0xFF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x97, 0x10,
0xFF, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x00, 0x00,
0xDF, 0xF0, 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0x00,
0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xC7,
0xC0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF,
0xFF, 0xC7, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8,
0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0x01,
0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00,
0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x9F,
0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF,
0xFF, 0x9F, 0x80, 0x00, 0x00, 0x01, 0x80, 0x18,
0xFF, 0xFF, 0xFF, 0x9E, 0x80, 0x00, 0x00, 0x03,
0xA8, 0x11, 0xFF, 0xFF, 0xFF, 0x9F, 0x80, 0x00,
0x00, 0x02, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x99,
0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0xFF, 0xFF,
0xFF, 0x00, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x01,
0xFF, 0xFF, 0xFE, 0x20, 0x60, 0x00, 0x00, 0x00,
0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x00, 0x30, 0x00,
0x00, 0x00, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0, 0x40,
0x38, 0x00, 0x00, 0x00, 0xFE, 0x47, 0xFF, 0xFF,
0x81, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFC, 0x23,
0xFF, 0xFF, 0x90, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x78, 0x11, 0xFF, 0xFF, 0x80, 0x00, 0x0F, 0x80,
0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00,
0x07, 0xC0, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF,
0xC0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x04,
0x7F, 0xFF, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x10,
0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x01, 0x80,
0x00, 0x30, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x00,
0x00, 0x00, 0x00, 0x70, 0x00, 0x01, 0x4F, 0xFF,
0x80, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00,
0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x80, 0x03, 0xF0,
0x00, 0x00, 0x8F, 0xFF, 0x80, 0x00, 0x00, 0x40,
0x0F, 0xF0, 0x00, 0x04, 0x1F, 0xFF, 0x80, 0x00,
0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x10, 0x1F, 0xFF,
0xC0, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x40,
0xFF, 0xFF, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xF0,
0x00, 0x83, 0xFF, 0xFF, 0x81, 0xE0, 0x01, 0xFF,
0xFF, 0xF8, 0x02, 0x07, 0xFF, 0xFF, 0x80, 0x3F,
0x07, 0xE0, 0x00, 0x1C, 0x0C, 0x1F, 0xFF, 0xFF,
0xF8, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0x78, 0x1F,
0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0x00, 0x07, 0x0F,
0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0C, 0x07,
0xFF, 0x83, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x07, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};

#endif

#ifndef __HAVE_ARCH_LINUX_LOGO16_RED

unsigned char linux_logo16_red[] __initdata = {
0x00, 0x90, 0xb0, 0x9c, 0xf7, 0x35, 0x83, 0xa5,
0x65, 0x8f, 0x98, 0xc9, 0xdb, 0xe1, 0xe7, 0xf8
};

#endif
#ifndef __HAVE_ARCH_LINUX_LOGO16_GREEN

unsigned char linux_logo16_green[] __initdata = {
0x00, 0x90, 0xb0, 0x9c, 0xf7, 0x2e, 0x83, 0xa5,
0x65, 0x6e, 0x98, 0x89, 0xbf, 0xac, 0xda, 0xf8
};

#endif
#ifndef __HAVE_ARCH_LINUX_LOGO16_BLUE

unsigned char linux_logo16_blue[] __initdata = {
0x00, 0x90, 0xaf, 0x9c, 0xf7, 0x2b, 0x82, 0xa5,
0x65, 0x41, 0x97, 0x1e, 0x60, 0x29, 0xa5, 0xf8
};

#endif
#ifndef __HAVE_ARCH_LINUX_LOGO16

unsigned char linux_logo16[] __initdata = {
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa1, 0x11, 0x11,
0x61, 0x16, 0x66, 0x66, 0x11, 0x11, 0x11, 0x11,
0x11, 0x11, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0xa8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x87, 0x77, 0x77, 0x77, 0x77,
0x77, 0x77, 0x73, 0x33, 0x33, 0x3a, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x77, 0x77,
0x77, 0x27, 0x77, 0x77, 0x77, 0x33, 0x3a, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xa3, 0x33, 0x33, 0x30, 0x00, 0x00, 0x00,
0x00, 0x00, 0x55, 0x50, 0x08, 0x33, 0x77, 0x77,
0x77, 0x72, 0x72, 0x27, 0x77, 0x77, 0x33, 0x33,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xa3, 0x33, 0x33, 0x77, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x58, 0x85, 0x00, 0x11, 0x11, 0xaa,
0xa3, 0x37, 0x77, 0x72, 0x22, 0x22, 0x77, 0x73,
0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3,
0x33, 0x37, 0x77, 0x33, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x56, 0x85, 0x00, 0x06, 0x66, 0x11,
0x11, 0x1a, 0xa3, 0x37, 0x77, 0x72, 0x22, 0x77,
0x73, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33,
0x33, 0x33, 0x33, 0x30, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x55, 0x00, 0x00, 0x06, 0x66, 0x66,
0x66, 0x66, 0x11, 0x1a, 0xa3, 0x77, 0x72, 0x22,
0x77, 0x73, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33,
0x33, 0x33, 0x33, 0xa0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11,
0x66, 0x66, 0x66, 0x66, 0x11, 0xa3, 0x77, 0x22,
0x22, 0x77, 0x33, 0x33, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33,
0x33, 0x3a, 0xa1, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x33,
0xaa, 0x11, 0x16, 0x66, 0x66, 0x61, 0x1a, 0x37,
0x22, 0x22, 0x77, 0x33, 0x3a, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x33,
0x3a, 0xa1, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x22,
0x22, 0x77, 0x3a, 0x11, 0x66, 0x66, 0x66, 0x1a,
0x37, 0x22, 0x22, 0x77, 0x33, 0x3a, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33, 0x3a,
0xa1, 0x11, 0x11, 0x10, 0x00, 0x00, 0x50, 0x00,
0x00, 0x05, 0x80, 0x50, 0x00, 0x00, 0x07, 0x72,
0x22, 0x22, 0x22, 0x73, 0xa1, 0x66, 0x66, 0x61,
0x1a, 0x77, 0x22, 0x27, 0x73, 0x33, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x3a, 0xaa,
0x11, 0x11, 0x1a, 0xa0, 0x08, 0x71, 0x05, 0x00,
0x00, 0x12, 0x22, 0x50, 0x00, 0x00, 0x07, 0x77,
0x77, 0x72, 0x22, 0x22, 0x27, 0x31, 0x16, 0x66,
0x61, 0x13, 0x77, 0x22, 0x77, 0x33, 0x3a, 0xaa,
0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0xaa, 0xa1,
0x11, 0x1a, 0x33, 0x70, 0x07, 0x2e, 0x70, 0x00,
0x01, 0x44, 0x42, 0x60, 0x00, 0x00, 0x02, 0x22,
0x22, 0x22, 0x22, 0x22, 0x22, 0x27, 0x31, 0x66,
0x66, 0x61, 0xa3, 0x72, 0x22, 0x77, 0x33, 0xaa,
0xaa, 0xaa, 0xa3, 0x33, 0x33, 0xaa, 0xaa, 0x11,
0x1a, 0x33, 0x77, 0x30, 0x04, 0x82, 0x40, 0x00,
0x54, 0x48, 0x54, 0x40, 0x00, 0x00, 0x01, 0xaa,
0x32, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x31,
0x66, 0x66, 0x11, 0x37, 0x22, 0x27, 0x73, 0x3a,
0xaa, 0xaa, 0xa3, 0x33, 0x3a, 0xaa, 0xaa, 0xaa,
0xa3, 0x77, 0xaa, 0x10, 0x50, 0x08, 0x46, 0x05,
0x54, 0x80, 0x50, 0x42, 0x00, 0x00, 0x08, 0x66,
0x66, 0x1a, 0x32, 0x22, 0x22, 0x22, 0x22, 0x27,
0x31, 0x66, 0x66, 0x13, 0x72, 0x22, 0x77, 0x33,
0xaa, 0xaa, 0xaa, 0x33, 0xaa, 0xa1, 0xaa, 0xa3,
0x37, 0xa1, 0x1a, 0x30, 0x50, 0x06, 0x26, 0x00,
0x54, 0x00, 0x00, 0x44, 0x00, 0x00, 0x08, 0xe2,
0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22, 0x22,
0x27, 0xa6, 0x66, 0x61, 0xa7, 0x72, 0x27, 0x73,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33,
0x31, 0x11, 0x37, 0x70, 0x02, 0x00, 0xab, 0xbb,
0xb6, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xee, 0xee,
0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22,
0x22, 0x23, 0x16, 0x66, 0x1a, 0x37, 0x22, 0x77,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x3a,
0x11, 0xa7, 0x33, 0x10, 0x04, 0x09, 0xbd, 0xdd,
0xbd, 0xd0, 0x04, 0x45, 0x00, 0x0e, 0xee, 0xee,
0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22,
0x22, 0x22, 0x71, 0x66, 0x66, 0x13, 0x72, 0x27,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x11,
0xa3, 0x73, 0xa1, 0x60, 0x08, 0xbd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdb, 0x90, 0x00, 0x02, 0xec, 0xee,
0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xce, 0x22,
0x22, 0x22, 0x27, 0xa6, 0x66, 0x61, 0x37, 0x27,
0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0xa1, 0x1a,
0x33, 0xa1, 0x16, 0x60, 0x0b, 0xbd, 0xdd, 0xdd,
0xcd, 0xdd, 0xdd, 0xd9, 0x00, 0x00, 0xec, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0xa2,
0x22, 0x22, 0x22, 0x7a, 0x66, 0x66, 0x13, 0x77,
0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x3a, 0x11, 0x33,
0xaa, 0x11, 0x66, 0x60, 0x9b, 0xdd, 0xdd, 0xdd,
0xcd, 0xdd, 0xdb, 0xb9, 0x00, 0x00, 0xec, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0x61,
0x72, 0x22, 0x22, 0x22, 0xa1, 0x66, 0x61, 0x37,
0x1a, 0xaa, 0xaa, 0xaa, 0xa3, 0xa1, 0x13, 0x3a,
0x11, 0x11, 0x11, 0x10, 0x5b, 0xdd, 0xdd, 0xdc,
0xdd, 0xdd, 0xbd, 0xd9, 0x00, 0x00, 0xec, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0x86,
0x17, 0x22, 0x22, 0x22, 0x23, 0x16, 0x66, 0xaa,
0xaa, 0xa3, 0x3a, 0xaa, 0xaa, 0x1a, 0x3a, 0xa1,
0x11, 0x11, 0x1a, 0x70, 0x05, 0xbd, 0xdd, 0xdd,
0xdb, 0x5b, 0xdd, 0xb0, 0x00, 0x60, 0x2e, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe6, 0x88,
0x66, 0x32, 0x22, 0x22, 0x22, 0x36, 0x66, 0x11,
0x33, 0x33, 0x3a, 0xaa, 0x11, 0xaa, 0xaa, 0xa1,
0x11, 0x1a, 0x3a, 0x60, 0x02, 0x99, 0xbb, 0xb9,
0x9b, 0xbb, 0xbc, 0x22, 0x00, 0x86, 0x5e, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe1, 0x68,
0x86, 0x63, 0x22, 0x22, 0x22, 0x2a, 0x66, 0x66,
0x33, 0x33, 0xaa, 0xaa, 0x1a, 0xaa, 0xaa, 0x11,
0x1a, 0xa7, 0x68, 0x80, 0x02, 0x2b, 0xbd, 0xbb,
0xbb, 0xb9, 0x22, 0x22, 0x00, 0x06, 0x6e, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc7, 0xa6,
0x88, 0x86, 0x32, 0x22, 0x22, 0x27, 0xa6, 0x66,
0x33, 0x3a, 0xaa, 0xa1, 0xaa, 0xaa, 0xa1, 0x11,
0xa3, 0xa6, 0x88, 0x80, 0x02, 0x22, 0x9b, 0xbb,
0xbb, 0x22, 0x24, 0xf4, 0x60, 0x00, 0x0c, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc2, 0x21,
0x68, 0x88, 0x63, 0x22, 0x22, 0x22, 0x71, 0x66,
0x33, 0x3a, 0x11, 0x11, 0xaa, 0xaa, 0x11, 0xaa,
0x71, 0x88, 0x88, 0x00, 0x02, 0xe2, 0x26, 0x99,
0x22, 0x22, 0x4f, 0xf4, 0x40, 0x00, 0x0c, 0xcc,
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x22, 0x22,
0x16, 0x88, 0x86, 0xa2, 0x22, 0x22, 0x27, 0x11,
0x33, 0xa1, 0x11, 0x11, 0xaa, 0x31, 0x1a, 0xa3,
0x68, 0x88, 0x81, 0x00, 0x54, 0x42, 0x22, 0x22,
0x22, 0x44, 0xff, 0xff, 0x48, 0x00, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x22, 0x22,
0x21, 0x88, 0x88, 0x6a, 0x22, 0x22, 0x22, 0x31,
0x3a, 0xa1, 0x11, 0x1a, 0xa3, 0x11, 0x33, 0x36,
0x88, 0x86, 0x30, 0x00, 0x4f, 0x44, 0x22, 0x22,
0x24, 0xff, 0xff, 0xff, 0x44, 0x00, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x95, 0x22, 0x72,
0x22, 0x18, 0x88, 0x86, 0x32, 0x22, 0x22, 0x27,
0xaa, 0x11, 0x11, 0x1a, 0x31, 0x13, 0x33, 0x68,
0x88, 0x6a, 0x00, 0x02, 0x4f, 0x4f, 0x42, 0x24,
0x4f, 0xff, 0xff, 0xff, 0xf4, 0x50, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x22, 0x73,
0x72, 0x26, 0x88, 0x88, 0x63, 0x22, 0x22, 0x22,
0x11, 0x11, 0x11, 0xa3, 0xa1, 0x73, 0xa6, 0x88,
0x81, 0xa5, 0x00, 0x04, 0x4f, 0x4f, 0x44, 0x4f,
0xff, 0xff, 0xff, 0xff, 0xf4, 0x40, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x12, 0x27,
0xaa, 0x22, 0x68, 0x55, 0x86, 0x72, 0x22, 0x22,
0x11, 0x11, 0x1a, 0x33, 0x13, 0x3a, 0x18, 0x88,
0x1a, 0x10, 0x00, 0x44, 0x4f, 0x4f, 0xff, 0x4f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x61, 0x22,
0x3a, 0xa2, 0x26, 0x85, 0x58, 0x67, 0x22, 0x22,
0x61, 0x61, 0x1a, 0x7a, 0x37, 0x31, 0x88, 0x81,
0x11, 0x00, 0x05, 0xe4, 0x44, 0xff, 0xff, 0xff,
0x4f, 0xf4, 0x44, 0xff, 0xff, 0xf5, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x88, 0x12,
0x2a, 0xaa, 0x72, 0x68, 0x55, 0x81, 0x22, 0x22,
0x66, 0x61, 0xa3, 0x33, 0x73, 0x16, 0x88, 0x11,
0x10, 0x00, 0x08, 0x74, 0x44, 0x4f, 0x44, 0x44,
0xf4, 0xf4, 0x44, 0x44, 0xe2, 0x44, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x88, 0x81,
0x22, 0xaa, 0xa7, 0x26, 0x85, 0x88, 0x12, 0x22,
0x66, 0x61, 0x37, 0xa7, 0x3a, 0x66, 0x66, 0x11,
0x80, 0x00, 0x0a, 0x72, 0x44, 0x4f, 0x44, 0x4f,
0xff, 0x44, 0x44, 0x22, 0x22, 0x24, 0x00, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x85, 0x88,
0x12, 0x2a, 0xaa, 0x22, 0x68, 0x58, 0x63, 0x22,
0x66, 0x1a, 0x73, 0x77, 0x31, 0x66, 0x61, 0x11,
0x00, 0x00, 0x07, 0x44, 0xff, 0x4f, 0xf4, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0x42, 0x22, 0x40, 0x9b,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x85, 0x55,
0x81, 0x27, 0xaa, 0xa2, 0x78, 0x88, 0x86, 0x72,
0x66, 0x13, 0x77, 0x73, 0x11, 0x66, 0x61, 0x76,
0x00, 0x50, 0x84, 0xf4, 0xff, 0x4f, 0xf4, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x42, 0x40, 0x9b,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x68, 0x55,
0x58, 0x12, 0x3a, 0xaa, 0x23, 0x88, 0x88, 0xa7,
0x66, 0xa7, 0x77, 0x7a, 0x16, 0x66, 0x1a, 0x15,
0x05, 0x00, 0x4f, 0xf4, 0xff, 0x4f, 0xf4, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0x24, 0x9b,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x26, 0x55,
0x55, 0x81, 0x23, 0xaa, 0x32, 0x18, 0x88, 0x6a,
0x61, 0x37, 0x77, 0x31, 0x66, 0x66, 0x17, 0x60,
0x05, 0x08, 0x4f, 0xf4, 0xff, 0x4f, 0xf4, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x4e, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0xa2, 0x65,
0x55, 0x58, 0xa2, 0x7a, 0xa2, 0x26, 0x88, 0x61,
0x61, 0x32, 0x27, 0xa1, 0x66, 0x61, 0x31, 0x60,
0x00, 0x04, 0x4f, 0xf4, 0xff, 0x44, 0x44, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0xf4, 0x99,
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x9b, 0xaa, 0x26,
0x55, 0x55, 0x87, 0x27, 0x33, 0x27, 0x68, 0x61,
0x1a, 0x72, 0x27, 0xa6, 0x66, 0x6a, 0x71, 0x00,
0x80, 0x84, 0xff, 0xf4, 0xff, 0x44, 0x44, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0xf4, 0x99,
0x9b, 0x9b, 0x99, 0xb9, 0xb9, 0x99, 0xaa, 0xa2,
0x85, 0x55, 0x56, 0x22, 0x27, 0x22, 0x36, 0x66,
0x13, 0x22, 0x23, 0x16, 0x86, 0x63, 0x73, 0x00,
0x00, 0x44, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0xff,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x4f, 0x99,
0x9b, 0x99, 0x99, 0x99, 0xb9, 0x99, 0xaa, 0xaa,
0x28, 0x55, 0x58, 0x12, 0x22, 0x22, 0x21, 0x11,
0xa3, 0x27, 0x7a, 0x66, 0x86, 0x17, 0x75, 0x05,
0x05, 0xff, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0xff,
0xff, 0x4f, 0x44, 0x4f, 0x4f, 0x44, 0x4f, 0x99,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x3a, 0xaa,
0xa2, 0x85, 0x58, 0x67, 0x72, 0x22, 0x27, 0xa1,
0x37, 0x27, 0x7a, 0x68, 0x86, 0xa2, 0x70, 0x00,
0x02, 0xff, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0xf4, 0x99,
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x23, 0xaa,
0xa7, 0x78, 0x88, 0x81, 0x77, 0x22, 0x27, 0x3a,
0x72, 0x73, 0x71, 0x68, 0x66, 0x32, 0x50, 0x00,
0x04, 0x4f, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0x44, 0x95,
0x99, 0x99, 0x99, 0x99, 0x99, 0x55, 0x12, 0x3a,
0xaa, 0x21, 0x88, 0x81, 0x77, 0x27, 0x73, 0x73,
0x72, 0x33, 0x36, 0x86, 0x61, 0x72, 0x00, 0x00,
0x04, 0x44, 0xf4, 0xf4, 0xf4, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x44, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x8a, 0x27,
0xaa, 0x77, 0x68, 0x61, 0x23, 0x71, 0x11, 0x3a,
0x27, 0xa3, 0x36, 0x86, 0x61, 0x20, 0x00, 0x00,
0x04, 0xf4, 0xf4, 0xf4, 0xf4, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x41, 0x59,
0x99, 0x99, 0x99, 0x99, 0x99, 0x95, 0x58, 0x77,
0x27, 0x32, 0x36, 0x63, 0x23, 0x71, 0x66, 0x11,
0x27, 0x13, 0xa6, 0x86, 0x6a, 0x20, 0x00, 0x50,
0x04, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x41, 0x99,
0x9b, 0xbb, 0xbb, 0xbb, 0xb9, 0x99, 0x68, 0x13,
0x32, 0x22, 0x73, 0xa7, 0x2a, 0x31, 0x88, 0x66,
0x7a, 0x13, 0x18, 0x66, 0x63, 0x20, 0x00, 0x06,
0x0f, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x49, 0x95,
0xa9, 0xa9, 0x99, 0x97, 0x92, 0x99, 0x65, 0x6a,
0x17, 0x22, 0x23, 0x72, 0x27, 0xaa, 0x88, 0x88,
0xa1, 0x17, 0x68, 0x66, 0x67, 0x70, 0x00, 0x05,
0x0f, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0xf4, 0xf4, 0x49, 0x9c,
0x2e, 0xee, 0xee, 0xee, 0xee, 0xa9, 0x65, 0x8a,
0x1a, 0xaa, 0x37, 0x72, 0x27, 0x37, 0x88, 0x88,
0x11, 0x17, 0x68, 0x66, 0x67, 0x10, 0x9d, 0xd0,
0x84, 0x44, 0xff, 0x4f, 0x4f, 0x44, 0xf4, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0xf4, 0xf4, 0x4f, 0x69,
0xcc, 0xee, 0xee, 0xee, 0xec, 0x99, 0x88, 0x63,
0x61, 0x68, 0x61, 0x72, 0x22, 0x7a, 0x68, 0x88,
0x11, 0x17, 0x88, 0x66, 0x12, 0x1b, 0xdd, 0xdd,
0x02, 0x44, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xff, 0xff, 0x4f, 0x4c, 0xc5,
0x0c, 0xc1, 0x11, 0x1c, 0xc0, 0x26, 0x66, 0x17,
0x66, 0x88, 0x88, 0x12, 0x22, 0x23, 0xa8, 0x88,
0x11, 0x13, 0x88, 0x66, 0x17, 0xbb, 0xdd, 0xdd,
0xd0, 0x8f, 0xff, 0xf4, 0xf4, 0x44, 0xf4, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0x4f, 0x44, 0xdd, 0xdd,
0x00, 0x00, 0x00, 0x05, 0x9d, 0x21, 0x66, 0x27,
0xa6, 0x65, 0x58, 0x67, 0x22, 0x27, 0x28, 0x88,
0x11, 0xaa, 0x86, 0x68, 0x1a, 0xbb, 0xdd, 0xdd,
0xdb, 0x05, 0xf4, 0xf4, 0xf4, 0xf4, 0x44, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0xdd, 0xdb,
0x00, 0x00, 0x00, 0x00, 0xdd, 0xda, 0x66, 0x22,
0x71, 0x15, 0x55, 0x81, 0x22, 0x22, 0x76, 0x88,
0x11, 0x31, 0x88, 0x88, 0xab, 0xbd, 0xdd, 0xdd,
0xdd, 0x00, 0x04, 0x44, 0xff, 0xff, 0x4f, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0xf4, 0x44, 0xdd, 0xdb,
0x00, 0x00, 0x00, 0x0b, 0xdd, 0xda, 0x11, 0x22,
0x23, 0x68, 0x55, 0x86, 0x22, 0x22, 0x7a, 0x88,
0x1a, 0x71, 0x88, 0x89, 0xbb, 0xdd, 0xdd, 0xdd,
0xdd, 0xd0, 0x00, 0x4f, 0x44, 0xff, 0x4f, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0xff, 0xe2, 0xdd, 0xdb,
0x90, 0x00, 0x05, 0xbd, 0xdd, 0xb8, 0x63, 0x22,
0x27, 0xa6, 0x55, 0x88, 0x77, 0x22, 0x22, 0x88,
0x1a, 0x28, 0xbd, 0xdb, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdb, 0x00, 0x07, 0x44, 0x4f, 0x4f, 0x4f,
0xff, 0x4f, 0x44, 0x4f, 0x4f, 0x22, 0xdd, 0xdb,
0xbb, 0x9b, 0xbb, 0xbd, 0xdd, 0xd5, 0x86, 0x22,
0x22, 0x77, 0x85, 0x88, 0x17, 0x22, 0x22, 0x88,
0xaa, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0x00, 0x00, 0x54, 0x4f, 0x4f, 0x4f,
0xff, 0x4f, 0x44, 0xf4, 0x44, 0x22, 0xbd, 0xdd,
0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0x88, 0x72,
0x27, 0x22, 0x88, 0x88, 0x67, 0x72, 0x22, 0x18,
0x33, 0x2d, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xd0, 0x00, 0x05, 0x4f, 0x4f, 0x4f,
0xff, 0x4f, 0x44, 0x44, 0x4f, 0x22, 0xbd, 0xdd,
0xdb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0x88, 0x17,
0x27, 0x72, 0x68, 0x88, 0x87, 0x32, 0x22, 0x36,
0x37, 0x2d, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xd5, 0x00, 0x00, 0x4f, 0x4f, 0x4f,
0xff, 0xf4, 0xf4, 0xf4, 0xf4, 0x22, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd8, 0x67,
0x72, 0x77, 0x38, 0x88, 0x83, 0x37, 0x22, 0x26,
0x72, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0x00, 0x00, 0x4f, 0x4f, 0x4f,
0xff, 0xf4, 0xf4, 0xf4, 0x44, 0x25, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd3,
0x32, 0x73, 0x76, 0x88, 0x81, 0x33, 0x22, 0x2a,
0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xb0, 0x54, 0x4f, 0x4f, 0x4f,
0xff, 0xf4, 0xf4, 0xff, 0x44, 0x00, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xa7, 0x73, 0x26, 0x88, 0x86, 0x7a, 0x72, 0x27,
0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdb, 0x44, 0xff, 0x4f, 0x4f,
0xff, 0xf4, 0xf4, 0x44, 0x40, 0x05, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0x13, 0x23, 0x21, 0x68, 0x86, 0x17, 0x72, 0x22,
0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0x94, 0x44, 0x44, 0x44,
0x44, 0x44, 0x44, 0x00, 0x00, 0x05, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb8,
0x86, 0x22, 0x22, 0x7a, 0x68, 0x81, 0x22, 0x22,
0x37, 0x7b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdb, 0xb5, 0x44, 0x44, 0x44,
0x44, 0x47, 0x00, 0x00, 0x00, 0x05, 0xbd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd8, 0x68,
0x58, 0x72, 0x22, 0x27, 0x18, 0x86, 0x72, 0x22,
0x1a, 0xbb, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdb, 0xb5, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb9, 0x18, 0x85,
0x58, 0x12, 0x22, 0x36, 0x18, 0x88, 0x32, 0x22,
0x61, 0x3b, 0xbb, 0xbb, 0xbd, 0xdd, 0xdd, 0xdd,
0xdd, 0xdd, 0xdd, 0xdb, 0xb9, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xbb, 0xdd,
0xdd, 0xdd, 0xdd, 0xdd, 0xb9, 0x7a, 0x68, 0x85,
0x88, 0x62, 0x27, 0x16, 0x18, 0x88, 0x12, 0x27,
0x86, 0x18, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbd,
0xdd, 0xdd, 0xdd, 0xbb, 0xb5, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xbb, 0xbd,
0xdd, 0xdd, 0xdb, 0xbb, 0x87, 0x31, 0x68, 0x65,
0x88, 0x82, 0x23, 0x16, 0x18, 0x88, 0x12, 0x23,
0x88, 0x67, 0x27, 0xa8, 0x9b, 0xbb, 0xbb, 0xbb,
0xbd, 0xdd, 0xbb, 0xbb, 0x95, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x9b, 0xbb,
0xbb, 0xbb, 0xbb, 0x96, 0x87, 0x16, 0x68, 0x18,
0x88, 0x62, 0x31, 0x66, 0x18, 0x88, 0x62, 0x73,
0x88, 0x63, 0x27, 0x33, 0x65, 0x55, 0x99, 0x9b,
0xbb, 0xbb, 0xbb, 0x99, 0x55, 0x0a, 0xa1, 0x86,
0x81, 0x68, 0x88, 0x55, 0x58, 0x85, 0x9b, 0xbb,
0xbb, 0xbb, 0x95, 0x88, 0x83, 0x66, 0x66, 0x18,
0x66, 0x82, 0xa1, 0x66, 0x18, 0x88, 0x62, 0x33,
0x88, 0x81, 0x27, 0x7a, 0x18, 0x58, 0x86, 0x85,
0x99, 0x99, 0x99, 0x95, 0x53, 0x2a, 0xaa, 0x88,
0x67, 0x31, 0x68, 0x55, 0x58, 0x85, 0x59, 0xbb,
0xbb, 0xb9, 0x58, 0x68, 0x83, 0x66, 0x61, 0x16,
0x66, 0x62, 0x16, 0x66, 0x68, 0x88, 0x62, 0xaa,
0x88, 0x86, 0x27, 0x77, 0x78, 0x55, 0x88, 0x22,
0x25, 0x55, 0x95, 0x55, 0x6a, 0xa2, 0x2a, 0x88,
0x62, 0x27, 0x37, 0x38, 0x88, 0x87, 0x55, 0x59,
0x95, 0x58, 0x16, 0x88, 0x8a, 0x66, 0x63, 0x68,
0x86, 0x67, 0x66, 0x66, 0x68, 0x88, 0x12, 0x11,
0x88, 0x88, 0x72, 0x77, 0x78, 0x85, 0x58, 0x17,
0x23, 0x32, 0x55, 0x55, 0x81, 0x13, 0x73, 0x66,
0x62, 0x7a, 0xaa, 0x38, 0x88, 0x58, 0x27, 0x55,
0x58, 0x32, 0x38, 0x88, 0x81, 0x66, 0xa2, 0x88,
0x86, 0x61, 0x66, 0x61, 0x66, 0x68, 0x13, 0x11,
0x88, 0x88, 0x12, 0x22, 0x71, 0x85, 0x58, 0x62,
0x23, 0xa2, 0x68, 0x88, 0x81, 0x66, 0x88, 0x88,
0x63, 0x2a, 0xaa, 0x28, 0x88, 0x55, 0x86, 0x61,
0x66, 0x66, 0x68, 0x88, 0x66, 0x66, 0x77, 0x88,
0x68, 0x16, 0x66, 0x62, 0x66, 0x68, 0xa1, 0x61,
0x88, 0x88, 0x62, 0x22, 0x22, 0x85, 0x55, 0x83,
0x72, 0x37, 0xa8, 0x88, 0x61, 0x66, 0x85, 0x55,
0x86, 0x23, 0xaa, 0x71, 0x88, 0x85, 0x88, 0x66,
0x88, 0x86, 0x88, 0x88, 0x16, 0x61, 0x21, 0x88,
0x66, 0xa6, 0x86, 0x17, 0x66, 0x66, 0x31, 0x61,
0x88, 0x88, 0x87, 0x72, 0x22, 0x68, 0x55, 0x86,
0x77, 0x77, 0x36, 0x88, 0x13, 0x68, 0x85, 0x55,
0x58, 0x12, 0x73, 0x72, 0x76, 0x88, 0x88, 0x68,
0x88, 0x88, 0x88, 0x66, 0x36, 0x63, 0x26, 0x86,
0x86, 0x36, 0x86, 0x11, 0x66, 0x66, 0x76, 0x61,
0x88, 0x88, 0x81, 0x22, 0x22, 0x38, 0x85, 0x58,
0x37, 0x22, 0x21, 0x68, 0xa2, 0x31, 0x68, 0x55,
0x55, 0x81, 0x22, 0x22, 0xa8, 0x88, 0x88, 0x68,
0x86, 0x88, 0x68, 0x81, 0x36, 0x17, 0x21, 0x68,
0x86, 0x16, 0x66, 0x26, 0x66, 0x61, 0x36, 0x66,
0x68, 0x88, 0x86, 0x27, 0x22, 0x28, 0x88, 0x88,
0x17, 0x72, 0x2a, 0x66, 0xa2, 0x22, 0x36, 0x55,
0x55, 0x58, 0x37, 0x3a, 0x16, 0x66, 0x66, 0x66,
0x66, 0x18, 0x88, 0x67, 0x16, 0x12, 0x71, 0x68,
0x81, 0x68, 0x61, 0x76, 0x66, 0x6a, 0x16, 0x66,
0x88, 0x88, 0x86, 0x77, 0x22, 0x26, 0x88, 0x88,
0x13, 0x37, 0x71, 0x66, 0xa2, 0x33, 0x2a, 0x85,
0x55, 0x55, 0x17, 0x73, 0x16, 0x66, 0x66, 0x68,
0x63, 0x88, 0x88, 0xa2, 0x66, 0xa2, 0xa6, 0x88,
0x61, 0x68, 0x6a, 0x76, 0x66, 0x6a, 0x66, 0x6a
};

#endif

#else

extern unsigned char linux_logo_red[];
extern unsigned char linux_logo_green[];
extern unsigned char linux_logo_blue[];
extern unsigned char linux_logo[];
extern unsigned char linux_logo_bw[];
extern unsigned char linux_logo16[];

#endif
";
-------------------------------------------------------------