summaryrefslogtreecommitdiff
path: root/atari/plot
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-05-05 22:28:51 +0100
committerVincent Sanders <vince@kyllikki.org>2016-05-15 13:44:34 +0100
commitd21447d096a320a08b3efb2b8768fad0dcdcfd64 (patch)
tree1a83814b7c9e94b2f13c473261f23dd3a17dee64 /atari/plot
parent2cbb337756d9af5bda4d594964d446439f602551 (diff)
downloadnetsurf-d21447d096a320a08b3efb2b8768fad0dcdcfd64.tar.gz
netsurf-d21447d096a320a08b3efb2b8768fad0dcdcfd64.tar.bz2
move frontends into sub directory
Diffstat (limited to 'atari/plot')
-rw-r--r--atari/plot/eddi.h54
-rw-r--r--atari/plot/eddi.s42
-rw-r--r--atari/plot/font_freetype.c714
-rw-r--r--atari/plot/font_freetype.h52
-rw-r--r--atari/plot/font_internal.c2386
-rw-r--r--atari/plot/font_internal.h37
-rw-r--r--atari/plot/font_vdi.c310
-rw-r--r--atari/plot/font_vdi.h26
-rw-r--r--atari/plot/fontplot.c132
-rw-r--r--atari/plot/fontplot.h86
-rw-r--r--atari/plot/plot.c2247
-rw-r--r--atari/plot/plot.h158
12 files changed, 0 insertions, 6244 deletions
diff --git a/atari/plot/eddi.h b/atari/plot/eddi.h
deleted file mode 100644
index 7d6b90d4b..000000000
--- a/atari/plot/eddi.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2009 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-
-#ifndef _atari_eddi_h
-#define _atari_eddi_h
-
-/*--- Defines ---*/
-
-/* EdDI versions */
-
-#define EDDI_10 (0x0100)
-#define EDDI_11 (0x0110)
-
-/* Screen format */
-
-enum {
- VDI_FORMAT_UNKNOWN=-1,
- VDI_FORMAT_INTER=0, /* Interleaved bitplanes */
- VDI_FORMAT_VDI=1, /* VDI independent */
- VDI_FORMAT_PACK=2 /* Packed pixels */
-};
-
-/* CLUT types */
-enum {
- VDI_CLUT_NONE=0, /* Monochrome mode */
- VDI_CLUT_HARDWARE, /* <256 colours mode */
- VDI_CLUT_SOFTWARE /* True colour mode */
-};
-
-
-/*--- Functions ---*/
-
-unsigned long EdDI_version(void *function_pointer);
-
-#endif /* atari_eddi_s_h */
diff --git a/atari/plot/eddi.s b/atari/plot/eddi.s
deleted file mode 100644
index f0ea18a1e..000000000
--- a/atari/plot/eddi.s
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2009 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-
-/*
- *Read EdDI version
- *
- *Patrice Mandin
- */
-
-.text
-
-.globl _EdDI_version
-
-/*--- Vector installer ---*/
-
-_EdDI_version:
-movel sp@(4),a0 /* Value of EdDI cookie */
-
-/* Call EdDI function #0 */
-clrl d0
-jsr (a0)
-
-rts
diff --git a/atari/plot/font_freetype.c b/atari/plot/font_freetype.c
deleted file mode 100644
index a77aff855..000000000
--- a/atari/plot/font_freetype.c
+++ /dev/null
@@ -1,714 +0,0 @@
-/*
- * Copyright 2005 James Bursa <bursa@users.sourceforge.net>
- * 2008 Vincent Sanders <vince@simtec.co.uk>
- * 2011 Ole Loots <ole@monochrom.net>
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef WITH_FREETYPE_FONT_DRIVER
-#include <assert.h>
-#include <ft2build.h>
-#include FT_CACHE_H
-
-#include "utils/log.h"
-#include "utils/nsoption.h"
-#include "desktop/mouse.h"
-#include "desktop/plot_style.h"
-
-#include "atari/gui.h"
-#include "atari/bitmap.h"
-#include "atari/plot/plot.h"
-#include "atari/plot/fontplot.h"
-#include "atari/plot/font_freetype.h"
-#include "atari/findfile.h"
-#include "atari/gemtk/gemtk.h"
-
-/* -------------------------------------------------------------------------- */
-/* Font Loading & Mapping scheme */
-/* -------------------------------------------------------------------------- */
-/*
-
-Truetype fonts are loaded in the following priority order:
-
-1. Option values.
-2. default resouce names (8.3 compatible).
-3. default font package installation path.
-
-
-Resource font names & their meanings:
---------------------------------------------
-s.ttf => Serif
-sb.ttf => Serif Bold
-ss.ttf => Sans Serif *Default Font
-ssb.ttf => Sans Serif Bold
-ssi.ttf => Sans Serif Italic
-ssib.ttf => Sans Serif Italic Bold
-mono.ttf => Monospaced
-monob.ttf => Monospaced Bold
-cursive.ttf => Cursive
-fantasy.ttf => Fantasy
-*/
-
-#define FONT_RESOURCE_PATH "fonts/"
-#define DEJAVU_PATH "/usr/share/fonts/truetype/ttf-dejavu/"
-#define BITSTREAM_PATH "/usr/share/fonts/truetype/ttf-bitstream-vera/"
-
-#if !defined(USE_BITSTREAM_FONT_PACKAGE) && !defined(USE_DEJAVU_FONT_PACKAGE)
-# define USE_BITSTREAM_FONT_PACKAGE
-#endif
-
-#if defined(USE_DEJAVU_FONT_PACKAGE)
-# define FONT_PKG_PATH DEJAVU_PATH
-# define FONT_FILE_SANS "DejaVuSans.ttf"
-# define FONT_FILE_SANS_BOLD "DejaVuSans-Bold.ttf"
-# define FONT_FILE_SANS_OBLIQUE "DejaVuSans-Oblique.ttf"
-# define FONT_FILE_SANS_BOLD_OBLIQUE "DejaVuSans-BoldOblique.ttf"
-# define FONT_FILE_SERIF "DejaVuSerif.ttf"
-# define FONT_FILE_SERIF_BOLD "DejaVuSerif-Bold.ttf"
-# define FONT_FILE_MONO "DejaVuSansMono.ttf"
-# define FONT_FILE_MONO_BOLD "DejaVuSerif-Bold.ttf"
-# define FONT_FILE_OBLIQUE "DejaVuSansMono-Oblique.ttf"
-# define FONT_FILE_FANTASY "DejaVuSerifCondensed-Bold.ttf"
-#elif defined(USE_BITSTREAM_FONT_PACKAGE)
-# define FONT_PKG_PATH BITSTREAM_PATH
-# define FONT_FILE_SANS "Vera.ttf"
-# define FONT_FILE_SANS_BOLD "VeraBd.ttf"
-# define FONT_FILE_SANS_OBLIQUE "VeraIt.ttf"
-# define FONT_FILE_SANS_BOLD_OBLIQUE "VeraBI.ttf"
-# define FONT_FILE_SERIF "VeraSe.ttf"
-# define FONT_FILE_SERIF_BOLD "VeraSeBd.ttf"
-# define FONT_FILE_MONO "VeraMono.ttf"
-# define FONT_FILE_MONO_BOLD "VeraMoBd.ttf"
-# define FONT_FILE_OBLIQUE "VeraMoIt.ttf"
-# define FONT_FILE_FANTASY "VeraMoBI.ttf"
-
-#endif
-
-#define CACHE_SIZE 2048
-#define CACHE_MIN_SIZE (100 * 1024)
-#define BOLD_WEIGHT 700
-
-extern unsigned long atari_plot_flags;
-extern int atari_plot_vdi_handle;
-
-static FT_Library library;
-static FTC_Manager ft_cmanager;
-static FTC_CMapCache ft_cmap_cache ;
-static FTC_ImageCache ft_image_cache;
-
-int ft_load_type;
-
-/* cache manager faceID data to create freetype faceid on demand */
-typedef struct ftc_faceid_s {
- char *fontfile; /* path to font */
- int index; /* index of font */
- int cidx; /* character map index for unicode */
-} ftc_faceid_t;
-
-static int dtor( FONT_PLOTTER self );
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle,
- const char * str, size_t length, int * width );
-static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,int x,
- size_t *char_offset, int *actual_x );
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,int x,
- size_t *char_offset, int *actual_x );
-static int text( FONT_PLOTTER self, int x, int y, const char *text,
- size_t length, const plot_font_style_t *fstyle );
-
-static void draw_glyph8(FONT_PLOTTER self, GRECT *clip, GRECT * loc,
- uint8_t * pixdata, int pitch, uint32_t colour);
-static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc,
- uint8_t * pixdata, int pitch, uint32_t colour);
-
-static ftc_faceid_t *font_faces[FONT_FACE_COUNT];
-static MFDB tmp;
-static int tmp_mfdb_size;
-static bool init = false;
-static struct bitmap * fontbmp;
-static size_t fontbmp_stride;
-static int fontbmp_allocated_height;
-static int fontbmp_allocated_width;
-
-
-
-/* map cache manager handle to face id */
-static FT_Error ft_face_requester(FTC_FaceID face_id, FT_Library library, FT_Pointer request_data, FT_Face *face )
-{
- FT_Error error;
- ftc_faceid_t *ft_face = (ftc_faceid_t *)face_id;
- int cidx;
-
- error = FT_New_Face(library, ft_face->fontfile, ft_face->index, face);
- if (error) {
- LOG("Could not find font (code %d)\n", error);
- } else {
- error = FT_Select_Charmap(*face, FT_ENCODING_UNICODE);
- if (error) {
- LOG("Could not select charmap (code %d)\n", error);
- } else {
- for (cidx = 0; cidx < (*face)->num_charmaps; cidx++) {
- if ((*face)->charmap == (*face)->charmaps[cidx]) {
- ft_face->cidx = cidx;
- break;
- }
- }
- }
- }
- LOG("Loaded face from %s\n", ft_face->fontfile);
- return error;
-}
-
-/* create new framebuffer face and cause it to be loaded to check its ok */
-static ftc_faceid_t *
-ft_new_face(const char *option, const char *resname, const char *fontfile)
-{
- ftc_faceid_t *newf;
- FT_Error error;
- FT_Face aface;
- char buf[PATH_MAX];
-
- newf = calloc(1, sizeof(ftc_faceid_t));
- if (option != NULL) {
- newf->fontfile = strdup(option);
- } else {
- atari_find_resource(buf, resname, fontfile);
- newf->fontfile = strdup(buf);
- }
- error = FTC_Manager_LookupFace(ft_cmanager, (FTC_FaceID)newf, &aface);
- if (error) {
- LOG("Could not find font face %s (code %d)\n", fontfile, error);
- free(newf);
- newf = font_faces[FONT_FACE_DEFAULT]; /* use default */
- }
- return newf;
-}
-
-static void ft_fill_scalar(const plot_font_style_t *fstyle, FTC_Scaler srec)
-{
- int selected_face = FONT_FACE_DEFAULT;
-
- switch (fstyle->family) {
-
- case PLOT_FONT_FAMILY_SERIF:
- if (fstyle->weight >= BOLD_WEIGHT) {
- selected_face = FONT_FACE_SERIF_BOLD;
- } else {
- selected_face = FONT_FACE_SERIF;
- }
- break;
-
- case PLOT_FONT_FAMILY_MONOSPACE:
- if (fstyle->weight >= BOLD_WEIGHT) {
- selected_face = FONT_FACE_MONOSPACE_BOLD;
- } else {
- selected_face = FONT_FACE_MONOSPACE;
- }
- break;
-
- case PLOT_FONT_FAMILY_CURSIVE:
- selected_face = FONT_FACE_CURSIVE;
- break;
-
- case PLOT_FONT_FAMILY_FANTASY:
- selected_face = FONT_FACE_FANTASY;
- break;
-
- case PLOT_FONT_FAMILY_SANS_SERIF:
- default:
- if ((fstyle->flags & FONTF_ITALIC) ||
- (fstyle->flags & FONTF_OBLIQUE)) {
- if (fstyle->weight >= BOLD_WEIGHT) {
- selected_face = FONT_FACE_SANS_SERIF_ITALIC_BOLD;
- } else {
- selected_face = FONT_FACE_SANS_SERIF_ITALIC;
- }
- } else {
- if (fstyle->weight >= BOLD_WEIGHT) {
- selected_face = FONT_FACE_SANS_SERIF_BOLD;
- } else {
- selected_face = FONT_FACE_SANS_SERIF;
- }
- }
- }
-
- srec->face_id = (FTC_FaceID)font_faces[selected_face];
-
- srec->width = srec->height = (fstyle->size * 64) / FONT_SIZE_SCALE;
- srec->pixel = 0;
-
- /* calculate x/y resolution, when browser_get_dpi() isn't available */
- /* 72 is an good value. */
- /* TODO: because browser_get_dpi() is to large, calculate that value */
- /* by VDI values. */
- srec->x_res = srec->y_res = 72; // browser_get_dpi();
-}
-
-static FT_Glyph ft_getglyph(const plot_font_style_t *fstyle, uint32_t ucs4)
-{
- FT_UInt glyph_index;
- FTC_ScalerRec srec;
- FT_Glyph glyph;
- FT_Error error;
- ftc_faceid_t *ft_face;
-
- ft_fill_scalar(fstyle, &srec);
- ft_face = (ftc_faceid_t *)srec.face_id;
- glyph_index = FTC_CMapCache_Lookup(ft_cmap_cache, srec.face_id, ft_face->cidx, ucs4);
- error = FTC_ImageCache_LookupScaler(ft_image_cache,
- &srec,
- FT_LOAD_RENDER |
- FT_LOAD_FORCE_AUTOHINT |
- ft_load_type,
- glyph_index,
- &glyph,
- NULL);
- return glyph;
-}
-
-
-/* initialise font handling */
-static bool ft_font_init(void)
-{
- FT_Error error;
- FT_ULong max_cache_size;
- FT_UInt max_faces = 6;
- int i;
-
- /* freetype library initialise */
- error = FT_Init_FreeType( &library );
- if (error) {
- LOG("Freetype could not initialised (code %d)\n", error);
- return false;
- }
-
- /* set the Glyph cache size up */
- max_cache_size = CACHE_SIZE * 1024;
- if (max_cache_size < CACHE_MIN_SIZE) {
- max_cache_size = CACHE_MIN_SIZE;
- }
-
- /* cache manager initialise */
- error = FTC_Manager_New(library,
- max_faces,
- 0,
- max_cache_size,
- ft_face_requester,
- NULL,
- &ft_cmanager);
- if (error) {
- LOG("Freetype could not initialise cache manager (code %d)\n", error);
- FT_Done_FreeType(library);
- return false;
- }
-
- error = FTC_CMapCache_New(ft_cmanager, &ft_cmap_cache);
- error = FTC_ImageCache_New(ft_cmanager, &ft_image_cache);
-
- /* Optain font faces */
-
-
- /* Default font, Sans Serif */
- font_faces[FONT_FACE_SANS_SERIF] = NULL;
- font_faces[FONT_FACE_SANS_SERIF] = ft_new_face(
- nsoption_charp(font_face_sans_serif),
- FONT_RESOURCE_PATH "ss.ttf",
- FONT_PKG_PATH FONT_FILE_SANS
- );
- if (font_faces[FONT_FACE_SANS_SERIF] == NULL) {
- LOG("Could not find default font (code %d)\n", error);
- FTC_Manager_Done(ft_cmanager);
- FT_Done_FreeType(library);
- return false;
- }
-
- /* Sans Serif Bold*/
- font_faces[FONT_FACE_SANS_SERIF_BOLD] =
- ft_new_face(nsoption_charp(font_face_sans_serif_bold),
- FONT_RESOURCE_PATH "ssb.ttf",
- FONT_PKG_PATH FONT_FILE_SANS_BOLD);
-
- /* Sans Serif Italic */
- font_faces[FONT_FACE_SANS_SERIF_ITALIC] =
- ft_new_face(nsoption_charp(font_face_sans_serif_italic),
- FONT_RESOURCE_PATH "ssi.ttf",
- FONT_PKG_PATH FONT_FILE_SANS_OBLIQUE);
-
- /* Sans Serif Italic Bold */
- font_faces[FONT_FACE_SANS_SERIF_ITALIC_BOLD] =
- ft_new_face(nsoption_charp(font_face_sans_serif_italic_bold),
- FONT_RESOURCE_PATH "ssib.ttf",
- FONT_PKG_PATH FONT_FILE_SANS_BOLD_OBLIQUE);
-
- /* Monospaced */
- font_faces[FONT_FACE_MONOSPACE] =
- ft_new_face(nsoption_charp(font_face_monospace),
- FONT_RESOURCE_PATH "mono.ttf",
- FONT_PKG_PATH FONT_FILE_MONO);
-
- /* Mospaced Bold */
- font_faces[FONT_FACE_MONOSPACE_BOLD] =
- ft_new_face(nsoption_charp(font_face_monospace_bold),
- FONT_RESOURCE_PATH "monob.ttf",
- FONT_PKG_PATH FONT_FILE_MONO_BOLD);
-
- /* Serif */
- font_faces[FONT_FACE_SERIF] =
- ft_new_face(nsoption_charp(font_face_serif),
- FONT_RESOURCE_PATH "s.ttf",
- FONT_PKG_PATH FONT_FILE_SERIF);
-
- /* Serif Bold */
- font_faces[FONT_FACE_SERIF_BOLD] =
- ft_new_face(nsoption_charp(font_face_serif_bold),
- FONT_RESOURCE_PATH "sb.ttf",
- FONT_PKG_PATH FONT_FILE_SERIF_BOLD);
-
- /* Cursive */
- font_faces[FONT_FACE_CURSIVE] =
- ft_new_face(nsoption_charp(font_face_cursive),
- FONT_RESOURCE_PATH "cursive.ttf",
- FONT_PKG_PATH FONT_FILE_OBLIQUE);
-
- /* Fantasy */
- font_faces[FONT_FACE_FANTASY] =
- ft_new_face(nsoption_charp(font_face_fantasy),
- FONT_RESOURCE_PATH "fantasy.ttf",
- FONT_PKG_PATH FONT_FILE_FANTASY);
-
- for (i=1; i<FONT_FACE_COUNT; i++) {
- if (font_faces[i] == NULL){
- font_faces[i] = font_faces[FONT_FACE_SANS_SERIF];
- }
- }
-
- return true;
-}
-
-
-static bool ft_font_finalise(void)
-{
- FTC_Manager_Done(ft_cmanager );
- FT_Done_FreeType(library);
- return true;
-}
-
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle,
- const char *string, size_t length,
- int *width)
-{
- uint32_t ucs4;
- size_t nxtchr = 0;
- FT_Glyph glyph;
-
- *width = 0;
- while (nxtchr < length) {
- ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr);
- nxtchr = utf8_next(string, length, nxtchr);
-
- glyph = ft_getglyph(fstyle, ucs4);
- if (glyph == NULL)
- continue;
- *width += glyph->advance.x >> 16;
- }
- return(1);
-}
-
-
-static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,
- int x, size_t *char_offset, int *actual_x)
-{
- uint32_t ucs4;
- size_t nxtchr = 0;
- int last_space_x = 0;
- int last_space_idx = 0;
- FT_Glyph glyph;
-
- *actual_x = 0;
- while (nxtchr < length) {
- ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr);
- glyph = ft_getglyph(fstyle, ucs4);
- if (glyph == NULL)
- continue;
- if (ucs4 == 0x20) {
- last_space_x = *actual_x;
- last_space_idx = nxtchr;
- }
- *actual_x += glyph->advance.x >> 16;
- if (*actual_x > x && last_space_idx != 0) {
- /* string has exceeded available width and we've
- * found a space; return previous space */
- *actual_x = last_space_x;
- *char_offset = last_space_idx;
- return true;
- }
- nxtchr = utf8_next(string, length, nxtchr);
- }
- *char_offset = nxtchr;
- return (1);
-}
-
-
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,
- int x, size_t *char_offset, int *actual_x)
-{
- uint32_t ucs4;
- size_t nxtchr = 0;
- FT_Glyph glyph;
- int prev_x = 0;
-
- *actual_x = 0;
- while (nxtchr < length) {
- ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr);
- glyph = ft_getglyph(fstyle, ucs4);
- if (glyph == NULL)
- continue;
- *actual_x += glyph->advance.x >> 16;
- if (*actual_x > x)
- break;
-
- prev_x = *actual_x;
- nxtchr = utf8_next(string, length, nxtchr);
- }
-
- /* choose nearest of previous and last x */
- if (abs(*actual_x - x) > abs(prev_x - x))
- *actual_x = prev_x;
- *char_offset = nxtchr;
- return ( 1 );
-}
-
-
-static void draw_glyph8(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour)
-{
- uint32_t * linebuf;
- uint32_t fontpix;
- int xloop,yloop,xoff,yoff;
- int x,y,w,h;
-
- x = loc->g_x;
- y = loc->g_y;
- w = loc->g_w;
- h = loc->g_h;
-
- if( !rc_intersect( clip, loc ) ){
- return;
- }
-
- xoff = loc->g_x - x;
- yoff = loc->g_y - y;
-
- assert( loc->g_h <= h );
- assert( loc->g_w <= w );
-
- h = loc->g_h;
- w = loc->g_w;
-
- assert( h <= fontbmp_allocated_height );
- assert( w <= fontbmp_allocated_width );
-
- fontbmp->height = h;
- fontbmp->width = w;
- for( yloop = 0; yloop < MIN(fontbmp_allocated_height, h); yloop++) {
- linebuf = (uint32_t *)(fontbmp->pixdata + (fontbmp_stride * yloop));
- for(xloop = 0; xloop < MIN(fontbmp_allocated_width, w); xloop++){
- fontpix = (uint32_t)(pixdata[(( yoff + yloop ) * pitch) + xloop + xoff]);
- linebuf[xloop] = (uint32_t)(colour | fontpix);
- }
- }
- plot_blit_bitmap(fontbmp, loc->g_x, loc->g_y, 0, BITMAPF_MONOGLYPH);
-}
-
-static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour)
-{
- int xloop,yloop,xoff,yoff;
- int x,y,w,h;
- uint8_t bitm;
- const uint8_t *fntd;
-
- x = loc->g_x;
- y = loc->g_y;
- w = loc->g_w;
- h = loc->g_h;
-
- if( !rc_intersect( clip, loc ) ){
- return;
- }
-
- xoff = loc->g_x - x;
- yoff = loc->g_y - y;
-
- if (h > loc->g_h)
- h = loc->g_h;
-
- if (w > loc->g_w)
- w = loc->g_w;
-
- int stride = MFDB_STRIDE( w );
- if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, h) ){
- tmp_mfdb_size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp );
- } else {
- void * buf = tmp.fd_addr;
- int size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp );
- tmp.fd_addr = buf;
- memset( tmp.fd_addr, 0, size );
- }
- short * buf;
- for( yloop = 0; yloop < h; yloop++) {
- fntd = pixdata + (pitch * (yloop+yoff))+(xoff>>3);
- buf = tmp.fd_addr;
- buf += (tmp.fd_wdwidth*yloop);
- for ( xloop = 0, bitm = (1<<(7-(xoff%8))); xloop < w; xloop++, bitm=(bitm>>1) ) {
- if( (*fntd & bitm) != 0 ){
- short whichbit = (1<<(15-(xloop%16)));
- buf[xloop>>4] = ((buf[xloop>>4])|(whichbit));
- }
- if( bitm == 1 ) {
- fntd++;
- bitm = 128;
- }
- }
- }
-#ifdef WITH_8BPP_SUPPORT
- if( app.nplanes > 8 ){
-#endif
- plot_blit_mfdb(loc, &tmp, OFFSET_CUSTOM_COLOR, PLOT_FLAG_TRANS );
-#ifdef WITH_8BPP_SUPPORT
- } else {
- plot_blit_mfdb(loc, &tmp, colour, PLOT_FLAG_TRANS );
- }
-#endif
-
-}
-
-static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length,
- const plot_font_style_t *fstyle )
-{
- uint32_t ucs4;
- size_t nxtchr = 0;
- FT_Glyph glyph;
- FT_BitmapGlyph bglyph;
- GRECT loc, clip;
- uint32_t c = fstyle->foreground ;
- struct rect clipping;
- /* in -> BGR */
- /* out -> ARGB */
- if( !(self->flags & FONTPLOT_FLAG_MONOGLYPH) ){
- c = ABGR_TO_RGB(c);
- } else {
-#ifdef WITH_8BPP_SUPPORT
- if( app.nplanes > 8 ){
-#endif
- RGB1000 out; /* struct with RGB shorts */
- rgb_to_vdi1000( (unsigned char*)&c, &out);
- vs_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR,
- (short*)&out);
-#ifdef WITH_8BPP_SUPPORT
- } else {
- c = RGB_TO_VDI(c);
- }
-#endif
- }
-
- plot_get_clip(&clipping);
- clip.g_x = clipping.x0;
- clip.g_y = clipping.y0;
- clip.g_w = (clipping.x1 - clipping.x0)+1;
- clip.g_h = (clipping.y1 - clipping.y0)+1;
-
- fontbmp = atari_bitmap_realloc( clip.g_w, clip.g_h,
- 4, clip.g_w << 2,
- BITMAP_GROW, fontbmp );
- fontbmp_stride = atari_bitmap_get_rowstride(fontbmp);
- fontbmp_allocated_height = clip.g_h;
- fontbmp_allocated_width = clip.g_w;
-
- while (nxtchr < length) {
- ucs4 = utf8_to_ucs4(text + nxtchr, length - nxtchr);
- nxtchr = utf8_next(text, length, nxtchr);
-
- glyph = ft_getglyph(fstyle, ucs4);
- if (glyph == NULL){
- continue;
- }
-
- if (glyph->format == FT_GLYPH_FORMAT_BITMAP) {
- bglyph = (FT_BitmapGlyph)glyph;
- loc.g_x = x + bglyph->left;
- loc.g_y = y - bglyph->top;
- loc.g_w = bglyph->bitmap.width;
- loc.g_h = bglyph->bitmap.rows;
-
- if( loc.g_w > 0) {
- self->draw_glyph( self,
- &clip, &loc,
- bglyph->bitmap.buffer,
- bglyph->bitmap.pitch,
- c
- );
- }
- }
- x += glyph->advance.x >> 16;
- }
- return( 0 );
-}
-
-
-int ctor_font_plotter_freetype( FONT_PLOTTER self )
-{
- self->dtor = dtor;
- self->str_width = str_width;
- self->str_split = str_split;
- self->pixel_pos = pixel_pos;
- self->text = text;
-
- /* set the default render mode */
- if( (self->flags & FONTPLOT_FLAG_MONOGLYPH) != 0 ){
- ft_load_type = FT_LOAD_MONOCHROME;
- self->draw_glyph = draw_glyph1;
- }
- else{
- ft_load_type = 0;
- self->draw_glyph = draw_glyph8;
- }
-
- LOG("%s: %s\n", (char *)__FILE__, __FUNCTION__);
- if( !init ) {
- ft_font_init();
- fontbmp = atari_bitmap_create(48, 48, 0);
- fontbmp->opaque = false;
- init = true;
- }
-
- return( 1 );
-}
-
-static int dtor( FONT_PLOTTER self )
-{
- ft_font_finalise();
- if( fontbmp != NULL ) {
- atari_bitmap_destroy( fontbmp );
- fontbmp = NULL;
- }
- if( tmp.fd_addr != NULL ){
- free( tmp.fd_addr );
- }
- return( 1 );
-}
-
-#endif
diff --git a/atari/plot/font_freetype.h b/atari/plot/font_freetype.h
deleted file mode 100644
index 58a5372a4..000000000
--- a/atari/plot/font_freetype.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2011 Ole Loots <ole@monochrom.net>
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef FONT_PLOTTER_FREETYPE
-#define FONT_PLOTTER_FREETYPE
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_GLYPH_H
-#include "utils/utf8.h"
-
-/* defines for accesing the faces */
-#define FONT_FACE_DEFAULT 0
-
-#define FONT_FACE_SANS_SERIF 0
-#define FONT_FACE_SANS_SERIF_BOLD 1
-#define FONT_FACE_SANS_SERIF_ITALIC 2
-#define FONT_FACE_SANS_SERIF_ITALIC_BOLD 3
-#define FONT_FACE_MONOSPACE 4
-#define FONT_FACE_MONOSPACE_BOLD 5
-#define FONT_FACE_SERIF 6
-#define FONT_FACE_SERIF_BOLD 7
-#define FONT_FACE_CURSIVE 8
-#define FONT_FACE_FANTASY 9
-
-#define FONT_FACE_COUNT 10
-
-struct font_desc {
- const char *name;
- int width, height;
- const char *encoding;
-};
-
-/* extern int ft_load_type; */
-
-int ctor_font_plotter_freetype( FONT_PLOTTER self );
-
-#endif
diff --git a/atari/plot/font_internal.c b/atari/plot/font_internal.c
deleted file mode 100644
index 89a56d0e5..000000000
--- a/atari/plot/font_internal.c
+++ /dev/null
@@ -1,2386 +0,0 @@
-/*
- * Copyright 2008 Vincent Sanders <vince@simtec.co.uk>
- * Copyright 2011 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef WITH_INTERNAL_FONT_DRIVER
-
-#include <assert.h>
-#include <unistd.h>
-
-#include "utils/utf8.h"
-#include "utils/log.h"
-#include "desktop/mouse.h"
-#include "desktop/plot_style.h"
-
-#include "atari/gui.h"
-#include "atari/bitmap.h"
-#include "atari/plot/plot.h"
-#include "atari/plot/fontplot.h"
-#include "atari/plot/font_internal.h"
-
-
-extern unsigned long atari_plot_flags;
-extern int atari_plot_vdi_handle;
-
-static int dtor( FONT_PLOTTER self );
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, size_t length, int * width );
-static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x );
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x );
-static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, const plot_font_style_t *fstyle );
-
-static bool init = false;
-static int vdih;
-static struct bitmap * fontbmp;
-extern struct s_vdi_sysinfo vdi_sysinfo;
-
-const struct fb_font_desc font_regular;
-const struct fb_font_desc font_italic;
-const struct fb_font_desc font_bold;
-const struct fb_font_desc font_italic_bold;
-
-static MFDB tmp;
-static int tmp_mfdb_size;
-
-#define FONTDATAMAX 4096
-
-static const struct fb_font_desc*
-fb_get_font(const plot_font_style_t *fstyle)
-{
- if (fstyle->weight >= 700) {
- if ((fstyle->flags & FONTF_ITALIC) ||
- (fstyle->flags & FONTF_OBLIQUE)) {
- return &font_italic_bold;
- } else {
- return &font_bold;
- }
- } else {
- if ((fstyle->flags & FONTF_ITALIC) ||
- (fstyle->flags & FONTF_OBLIQUE)) {
- return &font_italic;
- } else {
- return &font_regular;
- }
- }
-}
-
-static nserror utf8_to_font_encoding(const struct fb_font_desc* font,
- const char *string,
- size_t len,
- char **result)
-{
- return utf8_to_enc(string, font->encoding, len, result);
-
-}
-
-int ctor_font_plotter_internal( FONT_PLOTTER self )
-{
- self->dtor = dtor;
- self->str_width = str_width;
- self->str_split = str_split;
- self->pixel_pos = pixel_pos;
- self->text = text;
- LOG("%s: %s\n", (char *)__FILE__, __FUNCTION__);
- if( !init ) {
- vdih = self->vdi_handle;
- fontbmp = atari_bitmap_create(48, 48, 0);
- fontbmp->opaque = false;
- }
- init = true;
- return( 1 );
-}
-
-static int dtor( FONT_PLOTTER self )
-{
- if( tmp.fd_addr != NULL ){
- free( tmp.fd_addr );
- }
- return( 1 );
-}
-
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str,
- size_t length, int * width )
-{
- const struct fb_font_desc* fb_font = fb_get_font(fstyle);
- *width = fb_font->width * utf8_bounded_length(str, length);
- return( 1 );
-}
-
-static int str_split( FONT_PLOTTER self, const plot_font_style_t * fstyle, const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x )
-{
- const struct fb_font_desc* fb_font = fb_get_font(fstyle);
- int c_off = *char_offset = x / fb_font->width;
- if (*char_offset > length) {
- *char_offset = length;
- } else {
- while (*char_offset > 0) {
- if (string[*char_offset] == ' ')
- break;
- (*char_offset)--;
- }
- if (*char_offset == 0) {
- *char_offset = c_off;
- while (*char_offset < length &&
- string[*char_offset] != ' ') {
- (*char_offset)++;
- }
- }
- }
- *actual_x = *char_offset * fb_font->width;
- return( 1 );
-}
-
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t * fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x )
-{
- const struct fb_font_desc* fb_font = fb_get_font(fstyle);
- *char_offset = x / fb_font->width;
- if (*char_offset > length)
- *char_offset = length;
- *actual_x = *char_offset * fb_font->width;
- return( 1 );
-}
-
-static void draw_glyph1(FONT_PLOTTER self, GRECT *inloc, uint8_t *chrp, int pitch, uint32_t colour )
-{
- size_t bmpstride;
- GRECT clip;
- uint32_t * fontdata;
- int xloop,yloop;
- int stride = pitch / 8;
- uint32_t * linebuf;
- GRECT loc = *inloc;
-
- fontbmp = atari_bitmap_realloc( loc.g_w, loc.g_h, fontbmp->bpp, loc.g_w * fontbmp->bpp, BITMAP_GROW, fontbmp );
- bmpstride = atari_bitmap_get_rowstride(fontbmp);
- for( yloop = 0; yloop < loc.g_h; yloop++) {
- uint32_t pixmask = 1 ;
- linebuf = (uint32_t *)(fontbmp->pixdata + (bmpstride * yloop));
- fontdata = (uint32_t*)(chrp + (stride*yloop));
- for(xloop = loc.g_w-1; xloop>=0; xloop--){
- linebuf[xloop] = ((pixmask & *fontdata) == 0) ? 0 : colour;
- pixmask = (pixmask << 1);
- }
- }
- plot_blit_bitmap(fontbmp, loc.g_x, loc.g_y, 0, BITMAPF_MONOGLYPH );
-}
-
-static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length,
- const plot_font_style_t *fstyle )
-{
- const struct fb_font_desc* fb_font = fb_get_font(fstyle);
- const uint32_t *chrp;
- char *buffer = NULL;
- int chr;
- int blen;
- GRECT loc;
- uint32_t c;
-
- utf8_to_font_encoding(fb_font, text, length, &buffer);
- if (buffer == NULL)
- return 1;
-
- /* y is given to the fonts baseline we need it to the fonts top */
- y-=((fb_font->height * 75)/100);
-
- /* needed? */
- y+=1; /* the coord is the bottom-left of the pixels offset by 1 to make
- * it work since fb coords are the top-left of pixels
- */
- blen = strlen(buffer);
- if ( blen < 1 ) {
- return( 1 );
- }
-
- if(atari_plot_flags & PLOT_FLAG_OFFSCREEN ){
- /* when the plotter is an offscreen plotter the call to
- bitmap() isn't that expensive. Draw an 8 bit bitmap into the
- offscreen buffer.
- */
- c = fstyle->foreground;
- /* in -> BGR */
- /* out -> ARGB */
- c = (ABGR_TO_RGB(c) | 0xFF);
- loc.g_y = y;
- loc.g_x = x;
- loc.g_w = fb_font->width;
- loc.g_h = fb_font->height;
- for (chr = 0; chr < blen; chr++) {
- loc.g_x = x;
- chrp = fb_font->data + ((unsigned char)buffer[chr] * fb_font->height);
- draw_glyph1(self, &loc, (uint8_t *)chrp, 32, c);
- x+=fb_font->width;
- }
- } else {
- /* render the whole string into an monochrom mfdb */
- /* and plot that to reduce overhead */
- loc.g_x = x;
- loc.g_y = y;
- loc.g_w = blen * fb_font->width;
- assert( loc.g_w > 0 );
- loc.g_h = fb_font->height;
- int stride = MFDB_STRIDE( loc.g_w );
- if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, loc.g_h) ){
- tmp_mfdb_size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp );
- } else {
- void * buf = tmp.fd_addr;
- int size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp );
- tmp.fd_addr = buf;
- memset( tmp.fd_addr, 0, size );
- }
- short ypos;
- int rowsize = tmp.fd_wdwidth << 1;
- char * d;
- uint32_t * pp;
- for (chr = 0; chr < blen; chr++) {
- pp = (uint32_t*)fb_font->data + ((unsigned char)buffer[chr] * fb_font->height);
- d = ((uint8_t*)tmp.fd_addr) + chr;
- for( ypos=0; ypos<loc.g_h; ypos++){
- *d = (unsigned char)*pp++;
- d += rowsize;
- }
- }
-#ifdef WITH_8BPP_SUPPORT
- if( app.nplanes > 8 ){
-#endif
- //unsigned short out[4];
- RGB1000 out;
- //rgb_to_vdi1000( (unsigned char*)&fstyle->foreground, (unsigned short*)&out );
- out.blue = 0;
- out.green = 1000;
- out.red = 0;
- vs_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR, (short *)&out);
- vq_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR, 1, (short *)&out);
- //printf("r:%d,g:%d,b:%d", out.red, out.green, out.blue);
- //vsl_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR);
- //vsf_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR);
- plot_blit_mfdb(&loc, &tmp, OFFSET_CUSTOM_COLOR, PLOT_FLAG_TRANS);
-#ifdef WITH_8BPP_SUPPORT
- } else {
- unsigned char c = RGB_TO_VDI(fstyle->foreground);
- plot_blit_mfdb(&loc, &tmp, c, PLOT_FLAG_TRANS );
- }
-#endif
- }
-
- free(buffer);
- return( 1 );
-}
-
-/* ------------------*/
-/* Fontdata */
-/* ------------------*/
-
-static const uint32_t fontdata_bold[FONTDATAMAX] = {
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
- 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x6C, 0x6C, 0xFE, 0xFE, 0xFE, 0x6C, 0x6C,
- 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x7C, 0xFE, 0xF6, 0xF0, 0xF8, 0x7C,
- 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE6, 0xEE, 0x1C,
- 0x38, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xF8, 0xF8, 0xF8, 0xF8, 0x76, 0xFE,
- 0xFE, 0xEC, 0xEE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x0C, 0x1C, 0x38, 0x38, 0x70, 0x70, 0x70,
- 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00,
- 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E,
- 0x0E, 0x0E, 0x1C, 0x1C, 0x38, 0x30, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x10, 0x54, 0xFE, 0x7C, 0x38,
- 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0xFE,
- 0xFE, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
- 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1E, 0x3C,
- 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x38, 0x78, 0x78, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x7E, 0xFC,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3C, 0x3C,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0x6C, 0xEC,
- 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xFC, 0xFE, 0x0E,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFC, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0x7E,
- 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00,
- 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00,
- 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70,
- 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00,
- 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E,
- 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3E, 0x7C,
- 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE,
- 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFC, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xE0,
- 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E,
- 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC, 0xF8, 0xF0,
- 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00,
- 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0xCE, 0xEE, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE,
- 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xFC, 0x7E,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x38,
- 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x38, 0x38,
- 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x3E, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x40, 0xE0, 0xF0, 0x78,
- 0x3C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
- 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
- 0x00, 0x00, 0x00, 0x30, 0x38, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE,
- 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x7E, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8,
- 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x7E, 0x7C,
- 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x38, 0x00, 0x78, 0x78, 0x38,
- 0x38, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x3C, 0x3C, 0x1C,
- 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x7C, 0x78,
- 0x00, 0xE0, 0xE0, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC,
- 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00,
- 0x00, 0x78, 0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xE0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0F, 0x0F,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xE0,
- 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x30, 0x70, 0x70, 0xFC, 0xFC, 0x70,
- 0x70, 0x70, 0x70, 0x7E, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE,
- 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE,
- 0x7C, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0E, 0xFE, 0xFC,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x1E,
- 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3E, 0x38, 0x38, 0x38, 0xF0, 0xF0,
- 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00,
- 0x00, 0xF0, 0xF8, 0x38, 0x38, 0x38, 0x1E, 0x1E,
- 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x66, 0xFE, 0xFE, 0xCC, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE,
- 0x00, 0x38, 0x7C, 0xEE, 0xE0, 0xFC, 0xE0, 0xF8,
- 0xE0, 0xE0, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x38, 0x18, 0x30, 0x00,
- 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8,
- 0x70, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x66, 0xCC, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38, 0xFE,
- 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00,
- 0x00, 0x7C, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C,
- 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00,
- 0xEE, 0x7C, 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xFC,
- 0x7E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C,
- 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00,
- 0x00, 0x7F, 0xFF, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF,
- 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0xEE, 0x7C, 0x00, 0xFE, 0xFE, 0x0E, 0x1E, 0x3C,
- 0x78, 0xF0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x36, 0x6C, 0x6C, 0x6C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x36, 0x36, 0x36, 0x6C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7B, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0x7C, 0x38, 0x00, 0x7E, 0xFE, 0xE0,
- 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x38,
- 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFA,
- 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0x7C, 0x38, 0x00, 0xFE, 0xFE, 0x1E,
- 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00,
- 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6,
- 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00,
- 0x00, 0x3C, 0x7E, 0x76, 0x70, 0xFC, 0xFC, 0xFC,
- 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x7C, 0xFE,
- 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0xFE,
- 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7C, 0x7C, 0x70, 0x3C, 0x7E, 0x66,
- 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1,
- 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00, 0xFC,
- 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,
- 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x06, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9,
- 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x38, 0xFE, 0xFE, 0xFE, 0x38,
- 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0,
- 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x70, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0,
- 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B,
- 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38,
- 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8,
- 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8,
- 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C,
- 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00,
- 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C,
- 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00,
- 0x00, 0x00, 0xE0, 0x30, 0x62, 0x36, 0xEE, 0x1C,
- 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00,
- 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x1C, 0x1C,
- 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00,
- 0x00, 0xE0, 0x70, 0x00, 0x10, 0x38, 0x7C, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x10, 0x38, 0x7C, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0xC6, 0x10, 0x38, 0x7C, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x7C, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0x10, 0x38, 0x7C, 0xEE, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x38, 0x38, 0x7C, 0xEE, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x3F, 0x7F, 0xFE, 0xEE, 0xFF, 0xFF,
- 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xE0, 0xE0,
- 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C,
- 0x00, 0x70, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0xEE, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xF8,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x38, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0xEE, 0xEE, 0xEE, 0xF6,
- 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C,
- 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x7A, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x70, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE,
- 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7C, 0x7E, 0x0E,
- 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x7E, 0x1A,
- 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE,
- 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0xEC, 0x7C, 0xF8, 0xFC, 0x7E, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xE0, 0x70, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0xFE,
- 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0xE0, 0x70, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x70, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC,
- 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC,
-};
-
-const struct fb_font_desc font_bold = {
- .name = "NetSurf Bold",
- .width = 8,
- .height = 16,
- .encoding = "CP1252",
- .data = fontdata_bold,
-};
-
-
-static const uint32_t fontdata_italic[FONTDATAMAX] = {
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x36, 0x36, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1B, 0x1B, 0x1B, 0x7F, 0x7F, 0x36, 0x36,
- 0xFF, 0xFF, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x3E, 0x7F, 0x6B, 0x68, 0x78, 0x3C,
- 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C,
- 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x36, 0x36, 0x3C, 0x39, 0x7F,
- 0x6E, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x0E, 0x1C, 0x38, 0x30, 0x60, 0x60, 0xC0,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x70, 0x30, 0x00,
- 0x18, 0x1C, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06,
- 0x0C, 0x0C, 0x18, 0x38, 0x70, 0xE0, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x1C, 0x7F,
- 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E,
- 0xFC, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x38, 0x70, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFC,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C,
- 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x67, 0x6E, 0x76,
- 0xE6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x0E, 0x1E, 0x3C, 0x0C, 0x0C, 0x18,
- 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x07, 0x1E, 0x7C,
- 0x60, 0xC0, 0xC0, 0xFC, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x06, 0x1E, 0x1E,
- 0x06, 0x06, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1E, 0x36, 0x7F,
- 0x7F, 0x0C, 0x0C, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x1F, 0x30, 0x30, 0x7C, 0x7E, 0x06,
- 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x60, 0x7C, 0x7E,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3F, 0x7F, 0x63, 0x03, 0x06, 0x06, 0x0C,
- 0x0C, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x33, 0x1E, 0x7C,
- 0x66, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x3E,
- 0x06, 0x0C, 0x1C, 0xF8, 0xF0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
- 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70,
- 0x70, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00,
- 0x7C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x0E,
- 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x03, 0x07, 0x0E,
- 0x1C, 0x18, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x6F, 0x6B, 0x6B,
- 0xCF, 0xCE, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x66, 0x7E, 0x7E,
- 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x7C,
- 0x66, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60,
- 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x63, 0x63,
- 0xC3, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C,
- 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C,
- 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x6E,
- 0x6E, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x33, 0x63, 0x66, 0x7E, 0x7E,
- 0xC6, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x3F, 0x3F, 0x0C, 0x0C, 0x18, 0x18, 0x18,
- 0x18, 0x30, 0x30, 0xFC, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06,
- 0x06, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x30, 0x30, 0x33, 0x36, 0x7C, 0x78, 0x70,
- 0x78, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60,
- 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x3F, 0x3F, 0x7F, 0x6B, 0x66,
- 0x66, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x3B, 0x3B, 0x7B, 0x7E, 0x6E,
- 0x6E, 0xCE, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66,
- 0xC6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x67, 0x7E, 0x7C,
- 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66,
- 0xC6, 0xF6, 0xDC, 0xF8, 0x7C, 0x0C, 0x00, 0x00,
- 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x63, 0x7E, 0x7C,
- 0x6E, 0xC6, 0xC6, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x60, 0x7C, 0x3E,
- 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x18, 0x18, 0x30, 0x30, 0x30,
- 0x30, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x66, 0x66,
- 0x66, 0xC6, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x66,
- 0x66, 0x6C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x6B,
- 0x6B, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x38,
- 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18,
- 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E, 0x0C, 0x18,
- 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0F, 0x0F, 0x0C, 0x0C, 0x18, 0x18, 0x18,
- 0x18, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70,
- 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x1F, 0x03, 0x03, 0x06, 0x06, 0x06,
- 0x06, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0E, 0x1F, 0x3B, 0x63, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x0C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x06,
- 0x7E, 0xFC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x18, 0x30, 0x30, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66,
- 0xC0, 0xC0, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x03, 0x03, 0x06, 0x3E, 0x7E, 0x66,
- 0xC6, 0xCC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66,
- 0xFE, 0xFC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30,
- 0x30, 0x30, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8,
- 0x00, 0x00, 0x30, 0x30, 0x30, 0x6E, 0x7F, 0x73,
- 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x06, 0x00, 0x1C, 0x3C, 0x0C,
- 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x03, 0x03, 0x00, 0x0E, 0x1E, 0x06,
- 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0xF8, 0xF0,
- 0x00, 0x30, 0x30, 0x30, 0x33, 0x67, 0x6E, 0x7C,
- 0x7C, 0xDC, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x0E, 0x06, 0x06, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7F, 0x7F,
- 0x6B, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x7E, 0x76,
- 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66,
- 0x66, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3F, 0x33,
- 0x63, 0x66, 0x66, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x0C, 0x0E, 0x0E,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x7F, 0x70,
- 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60,
- 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x3F, 0x3F, 0x18,
- 0x18, 0x30, 0x30, 0x3E, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x66,
- 0x66, 0x66, 0xCC, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66,
- 0xCC, 0xCC, 0xF8, 0x70, 0x20, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63,
- 0x6B, 0xDE, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x77,
- 0x3E, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x07,
- 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x0E, 0x0C, 0x0C, 0x18, 0x70, 0x70,
- 0x18, 0x18, 0x30, 0x38, 0x1C, 0x00, 0x00, 0x00,
- 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C,
- 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00,
- 0x00, 0x38, 0x1C, 0x0C, 0x18, 0x18, 0x0E, 0x0E,
- 0x18, 0x30, 0x30, 0x70, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE,
- 0x00, 0x06, 0x0F, 0x1B, 0x18, 0x7E, 0x30, 0x7C,
- 0x60, 0x60, 0x6C, 0x3C, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, 0x20, 0x00,
- 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30,
- 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x66, 0x66, 0x44, 0x88, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x3F,
- 0x3F, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00,
- 0x00, 0x3E, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x63, 0x06,
- 0x0C, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00,
- 0x63, 0x3E, 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x7C,
- 0x3E, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E,
- 0x1C, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x3F, 0x33, 0x33, 0x66, 0x67, 0x67,
- 0x66, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x63, 0x3E, 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E,
- 0x18, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x08, 0x10, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x04, 0x08, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x09, 0x12, 0x1B, 0x36, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x09, 0x12, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3F,
- 0x3F, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xFB, 0xFF, 0x55, 0xA2, 0xA2, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x63, 0x36, 0x1C, 0x00, 0x3F, 0x7F, 0x60,
- 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C,
- 0x0E, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0x6D,
- 0x6F, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x63, 0x36, 0x1C, 0x00, 0x7F, 0x7F, 0x07,
- 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x33, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x3C,
- 0x18, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x04, 0x3E, 0x7F, 0x6B,
- 0x68, 0xD0, 0xD6, 0xFE, 0x7C, 0x20, 0x20, 0x00,
- 0x00, 0x0F, 0x1F, 0x19, 0x18, 0x30, 0x7C, 0x7C,
- 0x30, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x19, 0x33, 0x1E, 0x3F,
- 0x33, 0x66, 0x7E, 0x3C, 0x66, 0xCC, 0x00, 0x00,
- 0x00, 0x00, 0x19, 0x19, 0x19, 0x1E, 0x0C, 0x3F,
- 0x0C, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00,
- 0x00, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x0E, 0x18, 0x18, 0x3C, 0x7E, 0x66,
- 0x7E, 0x3C, 0x18, 0x18, 0x70, 0xE0, 0x00, 0x00,
- 0x00, 0x00, 0x33, 0x66, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1F, 0x21, 0x21, 0x4D, 0x51, 0x51,
- 0x91, 0xA1, 0x9A, 0x82, 0x7C, 0x38, 0x00, 0x00,
- 0x00, 0x1C, 0x02, 0x1E, 0x22, 0x3C, 0x00, 0x7C,
- 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B,
- 0x36, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1E, 0x3E, 0x06, 0x0C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1F, 0x21, 0x49, 0x55, 0x55, 0x59,
- 0x99, 0xA5, 0xA5, 0x82, 0x7E, 0x78, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x3F, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x06, 0x3F, 0x3F, 0x0C,
- 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x3C, 0x78, 0x60,
- 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x18, 0x0C, 0x7C,
- 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33,
- 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0x80,
- 0x00, 0x00, 0x00, 0x3F, 0x6F, 0xDB, 0xDB, 0x7B,
- 0x1B, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x38, 0x18, 0x30, 0x30, 0x78,
- 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x1E, 0x22, 0x3C, 0x18, 0x00, 0x3C,
- 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C,
- 0x36, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C,
- 0x18, 0x64, 0xCC, 0x94, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C,
- 0x18, 0x60, 0xDC, 0x82, 0x1C, 0x20, 0x3C, 0x00,
- 0x00, 0x00, 0x38, 0x04, 0x18, 0x0B, 0x76, 0x0C,
- 0x18, 0x64, 0xCC, 0x96, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C,
- 0x3C, 0x70, 0xC0, 0xC6, 0xC6, 0xFC, 0x78, 0x00,
- 0x00, 0x18, 0x0C, 0x00, 0x04, 0x1C, 0x36, 0x63,
- 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x06, 0x00, 0x04, 0x1C, 0x36, 0x63,
- 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1B, 0x11, 0x04, 0x1C, 0x36, 0x63,
- 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x37, 0x00, 0x04, 0x1C, 0x36, 0x63,
- 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x1B, 0x1B, 0x04, 0x0E, 0x36, 0x63, 0x7F,
- 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x11, 0x0E, 0x0E, 0x36, 0x63, 0x7F,
- 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x0F, 0x1F, 0x3B, 0x66, 0x7F, 0x7F,
- 0x66, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60,
- 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x1C, 0xCC, 0x78,
- 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78,
- 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78,
- 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x60, 0x78,
- 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x1B, 0x1B, 0x00, 0x3F, 0x3F, 0x60, 0x60, 0x78,
- 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x09, 0x1F, 0x1F, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1B, 0x1B, 0x00, 0x1F, 0x1F, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1E, 0x1F, 0x1B, 0x33, 0x33, 0x7B,
- 0x33, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x37, 0x00, 0x31, 0x63, 0x73, 0x7B,
- 0x7F, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x37, 0x00, 0x3E, 0x7F, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x77, 0x3E,
- 0x1C, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x3E, 0x37, 0x6B, 0x6B, 0x6B, 0xD6,
- 0xD6, 0xD6, 0xEE, 0x7C, 0xB8, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66,
- 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66,
- 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x66,
- 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x1B, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x63, 0x63,
- 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x0C, 0x00, 0x33, 0x33, 0x66, 0x6E,
- 0x7C, 0x38, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x1F, 0x3F, 0x33, 0x33,
- 0x3F, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1F, 0x1B, 0x1B, 0x33, 0x3F, 0x3E,
- 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0x80, 0x00,
- 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1D, 0x37, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3F, 0x7F, 0x63,
- 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1B, 0x0E, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x0D,
- 0x1F, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F,
- 0x63, 0xC0, 0xC6, 0xFE, 0x7C, 0x30, 0xF8, 0xF0,
- 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63,
- 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63,
- 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63,
- 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63,
- 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x06, 0x00, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x03, 0x06, 0x00, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x0F, 0x19, 0x00, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x1B, 0x1F, 0x3E, 0x37, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x7E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x0C, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x3F,
- 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, 0x67,
- 0x6B, 0xD6, 0xE6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x0C, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0C, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x03, 0x06, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0,
- 0x00, 0x00, 0x18, 0x18, 0x18, 0x3E, 0x3F, 0x33,
- 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0xC0,
- 0x00, 0x00, 0x00, 0x1B, 0x00, 0x63, 0x63, 0x63,
- 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0,
-};
-
-const struct fb_font_desc font_italic = {
- .name = "NetSurf Italic",
- .width = 8,
- .height = 16,
- .encoding = "CP1252",
- .data = fontdata_italic,
-};
-
-
-static const uint32_t fontdata_italic_bold[FONTDATAMAX] = {
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C,
- 0x1C, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x77, 0x77, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x36, 0x36, 0x7F, 0x7F, 0x7F, 0x36, 0x6C,
- 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x3E, 0x7F, 0x7B, 0x78, 0x7C, 0x7C,
- 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x77, 0x0E,
- 0x3C, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x7E, 0x7C, 0x7C, 0x3B, 0xFE,
- 0xFE, 0xEC, 0xEE, 0xFE, 0x74, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x06, 0x0E, 0x1C, 0x1C, 0x38, 0x38, 0x70,
- 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00,
- 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E,
- 0x1C, 0x1C, 0x38, 0x38, 0x70, 0x60, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x2A, 0x7F, 0x3E, 0x18,
- 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x7E,
- 0x7E, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
- 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x3C,
- 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x77, 0x77, 0x77, 0x77, 0xEE,
- 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x1C, 0x3C, 0x3C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x3E, 0x7C,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x3C,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0x76, 0xEC,
- 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x7C, 0x7E, 0x0E,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x7C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x0E, 0x1C,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x7F, 0x3E, 0x7E,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0x3E,
- 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00,
- 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00,
- 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E, 0x1C, 0x70,
- 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00,
- 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x30, 0x38, 0x1C, 0x0E, 0x0E,
- 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x7C,
- 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0xFE,
- 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xE0,
- 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7E, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0E,
- 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0x70, 0x72, 0x77, 0x7F, 0x7E, 0xF8,
- 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x63, 0x77, 0x7F, 0x7F, 0x7F, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x67, 0x77, 0x77, 0x7F, 0x7F, 0x7E, 0xFE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xFE,
- 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00,
- 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x7C, 0x3E,
- 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0x38,
- 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x1C, 0x38,
- 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x78, 0x38,
- 0x1C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0x7E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C,
- 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x1C, 0x3E, 0x77, 0x63, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7E, 0x6E,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE,
- 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x07, 0x07, 0x07, 0x3F, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE,
- 0xFE, 0xFC, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C,
- 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x1C, 0xFC, 0xF8,
- 0x00, 0x00, 0x70, 0x70, 0x70, 0x7C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x1C,
- 0x1C, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x0E,
- 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0x38, 0xF8, 0xF0,
- 0x00, 0x38, 0x38, 0x38, 0x3A, 0x7F, 0x7E, 0x7C,
- 0x70, 0xF8, 0xFC, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x3C, 0x1C, 0x1C, 0x38, 0x38, 0x38,
- 0x38, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0xE0, 0xE0, 0xE0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x7C, 0x1C, 0x1E, 0x1E,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7E, 0x70,
- 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3E, 0x70,
- 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7C, 0x70,
- 0xE0, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE,
- 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0x7E,
- 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xFE, 0x7E, 0x1C, 0x1C, 0xFC, 0xF8,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7E, 0x1E,
- 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x78, 0xF0,
- 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00,
- 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00,
- 0x00, 0x78, 0x7C, 0x1C, 0x1C, 0x1C, 0x0F, 0x1E,
- 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x66, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77,
- 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE,
- 0x00, 0x06, 0x1F, 0x3B, 0x70, 0xFE, 0x70, 0xF8,
- 0xE0, 0xE0, 0xEE, 0xFC, 0x70, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x38, 0x38, 0x30, 0x60, 0x00,
- 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C,
- 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xCC, 0x98, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x1C, 0xFE,
- 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00,
- 0x00, 0x3E, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x1C,
- 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00,
- 0x77, 0x3E, 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x7C,
- 0x3E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x1C,
- 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00,
- 0x00, 0x3F, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xEF,
- 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x77, 0x3E, 0x00, 0x7F, 0x7F, 0x07, 0x0E, 0x1C,
- 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x36, 0x36, 0x36, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x36, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x79, 0x7F, 0x2F, 0x29, 0x29, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x1F, 0x3E, 0x70,
- 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x38,
- 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0xFA,
- 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x7F, 0x7E, 0x1E,
- 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x7F, 0xD6,
- 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00,
- 0x00, 0x1E, 0x3F, 0x3B, 0x38, 0x7E, 0x7E, 0xFC,
- 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x3E, 0xFE,
- 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0xFE,
- 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00,
- 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3E, 0x3E, 0x38, 0x1E, 0x3F, 0x66,
- 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x61, 0x4D, 0x5D, 0x51, 0xA1,
- 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0xFC,
- 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,
- 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x03, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3F, 0x61, 0x59, 0x5D, 0x55, 0xB9,
- 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0x66, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x1C, 0x7F, 0x7F, 0x7F, 0x38,
- 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x3C, 0x78, 0xC0,
- 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x18, 0x0C, 0xF8,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0,
- 0x00, 0x00, 0x00, 0x3F, 0x6D, 0x6D, 0x6D, 0x7A,
- 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38,
- 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x70, 0x30, 0x30, 0x30, 0xF0,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0x44, 0x7C, 0x38, 0x00, 0xF8,
- 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8,
- 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C,
- 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00,
- 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C,
- 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00,
- 0x00, 0x00, 0x70, 0x18, 0x31, 0x1B, 0x77, 0x1C,
- 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00,
- 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x0E, 0x1C,
- 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00,
- 0x00, 0x70, 0x38, 0x00, 0x08, 0x1C, 0x3E, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x0E, 0x00, 0x08, 0x1C, 0x3E, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x36, 0x63, 0x08, 0x1C, 0x3E, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x6E, 0x00, 0x08, 0x1C, 0x3E, 0xEE,
- 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x08, 0x1C, 0x3E, 0x76, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x3E, 0x76, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x77, 0x7F, 0xFF,
- 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x70, 0xE0,
- 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C,
- 0x00, 0x38, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0xE0,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x77, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0x70, 0xF8,
- 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x76, 0xFE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x6E, 0x00, 0x77, 0x77, 0x76, 0xF6,
- 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x6E, 0x00, 0x3E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x77, 0x77, 0x00, 0x3E, 0x7F, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x76, 0x7C,
- 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x3D, 0x7E, 0x77, 0x77, 0x77, 0x7E, 0xFE,
- 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x38, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x77, 0x00, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x77, 0x77, 0x00, 0x77, 0x77, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE,
- 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC,
- 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x76, 0xDC, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x38, 0x00, 0x3C, 0x3E, 0x0E,
- 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x3F, 0x1A,
- 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xFE,
- 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C,
- 0x00, 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3E, 0x7F, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x00, 0x3E, 0x7F, 0xEE,
- 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0x3E, 0x7C, 0x7E, 0x3F, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x7E, 0x7F, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x00, 0x3C, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0xFE,
- 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x7E, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0x38, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x38, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC,
- 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0,
- 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC,
-};
-
-const struct fb_font_desc font_italic_bold = {
- .name = "NetSurf Italic Bold",
- .width = 8,
- .height = 16,
- .encoding = "CP1252",
- .data = fontdata_italic_bold,
-};
-
-
-static const uint32_t fontdata_regular[FONTDATAMAX] = {
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0xFE, 0x6C, 0x6C,
- 0xFE, 0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x7C, 0xFE, 0xD6, 0xD0, 0xF0, 0x7C,
- 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C,
- 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xF8, 0xD8, 0xD8, 0xF8, 0x72, 0xFE,
- 0xDE, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x0E, 0x1C, 0x18, 0x38, 0x30, 0x30, 0x30,
- 0x30, 0x38, 0x18, 0x1C, 0x0E, 0x06, 0x00, 0x00,
- 0x60, 0x70, 0x38, 0x18, 0x1C, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x1C, 0x18, 0x38, 0x70, 0x60, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x38, 0xFE,
- 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E,
- 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C,
- 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xCE, 0xD6, 0xD6,
- 0xE6, 0xE6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x38, 0x78, 0x78, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3E, 0x7C,
- 0xE0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3C, 0x3C,
- 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0xEC, 0xFE,
- 0xFE, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE,
- 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7C, 0xE0, 0xC0, 0xC0, 0xFC, 0xFE,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xC6, 0x0E, 0x0C, 0x1C, 0x18,
- 0x38, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0x7C, 0x7C,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0x7E,
- 0x06, 0x06, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
- 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
- 0x00, 0x18, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70,
- 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00,
- 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E, 0x0E,
- 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0x06, 0x1E, 0x3C,
- 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xDE, 0xD6, 0xD6,
- 0xDE, 0xCC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC,
- 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0,
- 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xF8, 0xFC, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8,
- 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xDE, 0xDE,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0xC0, 0xC6, 0xCE, 0xDC, 0xF8, 0xF0, 0xE0,
- 0xF0, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
- 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xD6,
- 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xE6, 0xE6, 0xF6, 0xF6, 0xDE,
- 0xDE, 0xCE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFC,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xD6, 0xDE, 0xFE, 0x7C, 0x06, 0x00, 0x00,
- 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xFC, 0x7E,
- 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE,
- 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6,
- 0xD6, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, 0x38,
- 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0xFE, 0x0E, 0x0C, 0x1C, 0x18, 0x38,
- 0x30, 0x70, 0x60, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x3E, 0x3E, 0x30, 0x30, 0x30, 0x30, 0x30,
- 0x30, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70,
- 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
- 0x0C, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
- 0x00, 0x00, 0x30, 0x30, 0x18, 0x08, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x06,
- 0x7E, 0xFE, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x06, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6,
- 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78,
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x7E, 0x7C,
- 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xDC, 0xFE, 0xE6,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x38, 0x18,
- 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x1C, 0x0C,
- 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x78,
- 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC6, 0xCE, 0xDC,
- 0xF8, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE,
- 0xD6, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xFE, 0xE6,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x07, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC0,
- 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x30, 0x30, 0x30, 0x7C, 0xFC, 0x30,
- 0x30, 0x30, 0x30, 0x3E, 0x1E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
- 0xD6, 0xD6, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xEE,
- 0x7C, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x0E,
- 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0E, 0x1E, 0x18, 0x18, 0x18, 0x70, 0x70,
- 0x18, 0x18, 0x18, 0x1E, 0x0E, 0x00, 0x00, 0x00,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x00, 0x70, 0x78, 0x18, 0x18, 0x18, 0x0E, 0x0E,
- 0x18, 0x18, 0x18, 0x78, 0x70, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE,
- 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE,
- 0x00, 0x18, 0x3C, 0x66, 0x60, 0xFC, 0x60, 0xF8,
- 0x60, 0x60, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00,
- 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78,
- 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x66, 0x66, 0x22, 0x44, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
- 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x7E,
- 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
- 0x00, 0x7C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C,
- 0x18, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00,
- 0xC6, 0x7C, 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xFC,
- 0x7E, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C,
- 0x38, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0xFF, 0xCC, 0xCC, 0xCC, 0xCF, 0xCF,
- 0xCC, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0xC6, 0x7C, 0x00, 0xFE, 0xFE, 0x06, 0x0C, 0x18,
- 0x30, 0x60, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x10, 0x20, 0x30, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x24, 0x48, 0x6C, 0x6C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x36, 0x36, 0x12, 0x24, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC0,
- 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38,
- 0x1C, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xDA,
- 0xDE, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE,
- 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0x6C, 0x38, 0x00, 0xFE, 0xFE, 0x0E,
- 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C,
- 0x38, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6,
- 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00,
- 0x00, 0x3C, 0x7E, 0x66, 0x60, 0x60, 0xF8, 0xF8,
- 0x60, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x7E,
- 0x66, 0x66, 0x7E, 0x3C, 0x66, 0x66, 0x00, 0x00,
- 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E,
- 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7C, 0x60, 0x60, 0x3C, 0x7E, 0x66,
- 0x7E, 0x3C, 0x06, 0x06, 0x3E, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1,
- 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0xF8,
- 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
- 0x6C, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9,
- 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18,
- 0x18, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0,
- 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66,
- 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0xC0,
- 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B,
- 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
- 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0,
- 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8,
- 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8,
- 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18,
- 0x30, 0x64, 0xCC, 0x94, 0x3E, 0x04, 0x04, 0x00,
- 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18,
- 0x30, 0x60, 0xDC, 0x82, 0x0C, 0x10, 0x1E, 0x00,
- 0x00, 0x00, 0xE0, 0x10, 0x62, 0x16, 0xEC, 0x18,
- 0x30, 0x64, 0xCC, 0x96, 0x3E, 0x04, 0x04, 0x00,
- 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18,
- 0x78, 0xF0, 0xC0, 0xC6, 0xC6, 0xFE, 0x7C, 0x00,
- 0x00, 0x60, 0x30, 0x00, 0x10, 0x38, 0x6C, 0xC6,
- 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0x10, 0x38, 0x6C, 0xC6,
- 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x44, 0x10, 0x38, 0x6C, 0xC6,
- 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x6C, 0xC6,
- 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x6C, 0x6C, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xFE,
- 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x44, 0x38, 0x38, 0x6C, 0xC6, 0xFE,
- 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x1F, 0x3F, 0x7C, 0xEC, 0xCC, 0xFE, 0xFE,
- 0xCC, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00,
- 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0,
- 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x0E, 0x66, 0x3C,
- 0x00, 0x30, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0,
- 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0,
- 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xF0,
- 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x6C, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xF0,
- 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x66, 0x66, 0xF6,
- 0x66, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0xC6, 0xC6, 0xE6, 0xF6,
- 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C,
- 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x7E, 0xFE, 0xC6, 0xC6, 0xCE, 0xCE, 0xD6,
- 0xD6, 0xE6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x30, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x7E,
- 0x3C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x7C, 0x7E, 0x66, 0x66,
- 0x7E, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x7C,
- 0x66, 0x66, 0x66, 0x7E, 0x7C, 0xE0, 0xC0, 0x00,
- 0x00, 0x00, 0x30, 0x18, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x30, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x1A,
- 0x3E, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE,
- 0xC6, 0xC0, 0xC6, 0xFE, 0x7C, 0x18, 0x7C, 0x78,
- 0x00, 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6,
- 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6,
- 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6,
- 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6,
- 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x3C, 0x66, 0x00, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x6C, 0x7C, 0xF8, 0xDC, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0x30, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E,
- 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xCE,
- 0xD6, 0xD6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x60, 0x30, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x18, 0x30, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFC, 0xF8,
- 0x00, 0x00, 0x60, 0x60, 0x60, 0x7C, 0x7E, 0x66,
- 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0x60,
- 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC,
-};
-
-const struct fb_font_desc font_regular = {
- .name = "NetSurf Regular",
- .width = 8,
- .height = 16,
- .encoding = "CP1252",
- .data = fontdata_regular,
-};
-
-#endif
diff --git a/atari/plot/font_internal.h b/atari/plot/font_internal.h
deleted file mode 100644
index 9bfbbedef..000000000
--- a/atari/plot/font_internal.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2008 Vincent Sanders <vince@simtec.co.uk>
- * Copyright 2011 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef WITH_INTERNAL_FONT_DRIVER
-#ifndef FONT_PLOTTER_INTERNAL
-#define FONT_PLOTTER_INTERNAL
-
-#include "atari/plot/plot.h"
-
-int ctor_font_plotter_internal( FONT_PLOTTER self );
-
-struct fb_font_desc {
- const char *name;
- int width, height;
- const char *encoding;
- const uint32_t *data;
-};
-
-
-#endif
-#endif
diff --git a/atari/plot/font_vdi.c b/atari/plot/font_vdi.c
deleted file mode 100644
index ef5499207..000000000
--- a/atari/plot/font_vdi.c
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef WITH_VDI_FONT_DRIVER
-
-#include <mt_gemx.h>
-
-#include "atari/plot/plot.h"
-#include "atari/plot/font_vdi.h"
-
-#include "utils/utf8.h"
-#include "utils/log.h"
-
-#include "atari/encoding.h"
-
-
-//static char * lstr = NULL;
-
-static int dtor( FONT_PLOTTER self );
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, size_t length, int * width );
-static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x );
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x );
-static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, const plot_font_style_t *fstyle );
-
-static bool init = false;
-static int vdih;
-
-extern struct s_vdi_sysinfo vdi_sysinfo;
-
-static inline void atari_to_vdi_str(char *lstr, int length)
-{
- int i, z;
-
- for (i=z=0; i<length; ) {
- if (((char)lstr[i]==(char)0xC2) && ((char)lstr[i+1] == (char)0xA0)) {
- lstr[z] = ' ';
- lstr[z+1] = ' ';
- i=i+2;
- z=z+2;
- }
- else {
- lstr[z] = lstr[i];
- i++;
- z++;
- }
- }
-}
-
-int ctor_font_plotter_vdi( FONT_PLOTTER self )
-{
- self->dtor = dtor;
- self->str_width = str_width;
- self->str_split = str_split;
- self->pixel_pos = pixel_pos;
- self->text = text;
- LOG("%s: %s\n", (char *)__FILE__, __FUNCTION__);
- if( !init ) {
- vdih = self->vdi_handle;
- }
- init = true;
- return( 1 );
-}
-
-static int dtor( FONT_PLOTTER self )
-{
- return( 1 );
-}
-
-static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str,
- size_t length, int * width )
-{
- short cw, ch, cellw, cellh;
- short pxsize;
- short fx=0;
- char * lstr = NULL;
-
- utf8_to_local_encoding(str, length, &lstr);
- assert( lstr != NULL );
- int slen = strlen(lstr);
-
-
- atari_to_vdi_str(lstr, slen);
-
- if( fstyle->flags & FONTF_ITALIC )
- fx |= 4;
- if( fstyle->flags & FONTF_OBLIQUE )
- fx |= 16;
- if( fstyle->weight > 450 )
- fx |= 1;
- vst_effects( self->vdi_handle, fx );
- /* TODO: replace 90 with global dpi setting */
- //pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 / 72 );
- //vst_height( self->vdi_handle, pxsize ,&cw, &ch, &cellw, &cellh);
- pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 );
- vst_point( self->vdi_handle, pxsize, &cw, &ch, &cellw, &cellh);
-/*
- if(slen != utf8_bounded_length(str, length)){
- printf("sl: %d, utl: %d\n ", slen, utf8_bounded_length(str, length));
- printf("s: %s // %s\n", str, lstr );
- }*/
-
-
- *width = slen * cellw;
- free((void*)lstr);
- return( 0 );
-}
-
-static int str_split( FONT_PLOTTER self, const plot_font_style_t * fstyle, const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x )
-{
- short cw, ch, cellw, cellh;
- short pxsize;
- short fx=0;
- char *lstr = NULL;
- size_t slen = 0;
- int last_space_x = 0;
- int last_space_idx = 0;
- size_t nxtchr = 0;
-
- utf8_to_local_encoding(string, length, &lstr );
- assert( lstr != NULL );
- slen = strlen(lstr);
-
-
- atari_to_vdi_str(lstr, slen);
-
- if( fstyle->flags & FONTF_ITALIC )
- fx |= 4;
- if( fstyle->flags & FONTF_OBLIQUE )
- fx |= 16;
- if( fstyle->weight > 450 )
- fx |= 1;
- vst_effects( self->vdi_handle, fx );
- //pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 / 72 );
- //vst_height( self->vdi_handle, pxsize ,&cw, &ch, &cellw, &cellh);
-
- pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 );
- vst_point( self->vdi_handle, pxsize, &cw, &ch, &cellw, &cellh);
- *actual_x = 0;
- //*char_offset = 0;
- while (nxtchr < slen) {
- if( lstr[nxtchr] == ' ' ) {
- last_space_x = *actual_x;
- last_space_idx = nxtchr;
- }
- *actual_x += cellw;
- if (*actual_x > x && last_space_idx != 0) {
- *actual_x = last_space_x;
- *char_offset = last_space_idx;
- //printf("at: %s\n", lstr);
- return(0);
- }
-
- nxtchr++;
- }
- if(nxtchr >= length){
- nxtchr = length-1;
- }
-
- *char_offset = nxtchr;
-
-// for( i=0; i<slen; i++) {
-// if( lstr[i] == ' ' ) {
-// last_space_x = *actual_x;
-// last_space_idx = cpos;
-// }
-// if( *actual_x > x ) {
-// *actual_x = last_space_x;
-// *char_offset = last_space_idx;
-// return true;
-// }
-// *actual_x += cellw;
-// cpos++;
-// }
-// *char_offset = cpos;
- free( (void*)lstr );
- return( 0 );
-}
-
-static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t * fstyle,const char *string,
- size_t length,int x, size_t *char_offset, int *actual_x )
-{
- short cw, ch, cellw, cellh;
- short pxsize=0;
- short fx=0;
-
- char *lstr = NULL;
- int i=0;
- utf8_to_local_encoding(string, length, &lstr );
- assert( lstr != NULL );
- int slen = strlen(lstr);
-
- atari_to_vdi_str(lstr, slen);
-
- if( fstyle->flags & FONTF_ITALIC )
- fx |= 4;
- if( fstyle->flags & FONTF_OBLIQUE )
- fx |= 16;
- if( fstyle->weight > 450 )
- fx |= 1;
- vst_effects(self->vdi_handle, fx);
- pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 / 72 );
- vst_height( self->vdi_handle, pxsize ,&cw, &ch, &cellw, &cellh);
- *actual_x = 0;
- *char_offset = 0;
- for( i=0; i<slen; i++) {
- *actual_x += cellw;
- if( *actual_x > x) {
- *actual_x -= cellw;
- *char_offset = i;
- break;
- }
- }
- free((void*)lstr);
- lstr = NULL;
- return( 0 );
-}
-
-static inline void vst_rgbcolor( short vdih, uint32_t cin )
-{
-#ifdef WITH_8BPP_SUPPORT
- if( vdi_sysinfo.scr_bpp > 8 ) {
-#endif
- //unsigned short c[4];
- RGB1000 c;
-
- rgb_to_vdi1000( (unsigned char*)&cin, &c );
- vs_color( vdih, OFFSET_CUSTOM_COLOR, (unsigned short*)&c);
- vst_color( vdih, OFFSET_CUSTOM_COLOR );
-#ifdef WITH_8BPP_SUPPORT
- } else {
- if( vdi_sysinfo.scr_bpp >= 4 )
- vst_color( vdih, RGB_TO_VDI(cin) );
- else
- vst_color( vdih, BLACK );
- }
-#endif
-}
-
-static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length,
- const plot_font_style_t *fstyle )
-{
- /* todo: either limit the string to max 80 chars, or use v_ftext instead of v_gtext */
- short cw, ch, cellw, cellh;
- short pxsize=8;
- short fx=0;
- GRECT canvas;
- char *lstr = NULL;
- assert( utf8_to_local_encoding(text, length, &lstr) == NSERROR_OK);
- assert( lstr != NULL );
-
- int slen = strlen(lstr);
- if(slen > 800){
- lstr[800]=0;
- }
-
-
- atari_to_vdi_str(lstr, slen);
-
- if( fstyle->flags & FONTF_ITALIC )
- fx |= 4;
- if( fstyle->flags & FONTF_OBLIQUE )
- fx |= 4;
- if( fstyle->weight > 450 )
- fx |= 1;
-
- /* TODO: netsurf uses 90 as default dpi ( somewhere defined in libcss),
- use that value or pass it as arg, to reduce netsurf dependency */
- //pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 / 72 );
- pxsize = ceil( (fstyle->size/FONT_SIZE_SCALE) * 90 / 72 );
-
- plot_get_dimensions(&canvas);
- x += canvas.g_x;
- y += canvas.g_y;
- vst_effects( self->vdi_handle, fx );
- vst_alignment(vdih, 0, 0, &cw, &ch );
- vst_point( self->vdi_handle, pxsize, &cw, &ch, &cellw, &cellh);
- //vst_height( self->vdi_handle, pxsize, &cw, &ch, &cellw, &cellh);
- vswr_mode( self->vdi_handle, MD_TRANS );
- vst_rgbcolor(self->vdi_handle, fstyle->foreground);
-
- if( atari_sysinfo.gdos_FSMC ){
- //printf("\nftext\n");
- v_ftext( self->vdi_handle, x, y, (char*)lstr );
- } else {
- //printf("\ngtext\n");
- v_gtext( self->vdi_handle, x, y, (char*)lstr );
- }
- free( lstr );
- return( 0 );
-}
-
-#endif
diff --git a/atari/plot/font_vdi.h b/atari/plot/font_vdi.h
deleted file mode 100644
index 3a1fdb54b..000000000
--- a/atari/plot/font_vdi.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef WITH_VDI_FONT_DRIVER
-#ifndef FONT_PLOTTER_VDI
-#define FONT_PLOTTER_VDI
-
-int ctor_font_plotter_vdi( FONT_PLOTTER self );
-
-#endif
-#endif
diff --git a/atari/plot/fontplot.c b/atari/plot/fontplot.c
deleted file mode 100644
index 9f0edd9a4..000000000
--- a/atari/plot/fontplot.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdbool.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <mt_gem.h>
-
-#include "desktop/mouse.h"
-#include "desktop/plot_style.h"
-
-#include "atari/bitmap.h"
-#include "atari/plot/fontplot.h"
-
-const struct s_font_driver_table_entry font_driver_table[] =
-{
-#ifdef WITH_VDI_FONT_DRIVER
- {"vdi", ctor_font_plotter_vdi, 0},
-#endif
-#ifdef WITH_FREETYPE_FONT_DRIVER
- {"freetype", ctor_font_plotter_freetype, 0},
-#endif
-#ifdef WITH_INTERNAL_FONT_DRIVER
- {"internal", ctor_font_plotter_internal, 0},
-#endif
- {(char*)NULL, NULL, 0}
-};
-
-void dump_font_drivers(void)
-{
- int i = 0;
- while( font_driver_table[i].name != NULL ) {
- printf("%s -> flags: %d\n", font_driver_table[i].name,
- font_driver_table[i].flags);
- i++;
- }
-}
-
-
-/**
- * Create an new text plotter object.
- *
- * Available: "vdi", "freetype", "internal"
- *
- * \param vdihandle the vdi handle to act upon,
- * \param name selector ID (string) of the font plotter.
- * \param flags configration flags of the plotter, available flags:
- * FONTPLOT_FLAG_MONOGLYPH - Enable 1 bit font plotting
- * \param error set to != 0 when errors occur
- * \return the new font plotter instance on success, or NULL on failure.
- */
-FONT_PLOTTER new_font_plotter(int vdihandle, char * name, unsigned long flags,
- int * error)
-{
- int i=0;
- int res = 0-ERR_PLOTTER_NOT_AVAILABLE;
- FONT_PLOTTER fplotter = NULL;
-
- /* set the default error code: */
- *error = 0-ERR_PLOTTER_NOT_AVAILABLE;
-
-
- /* Find the selector string in the font plotter table, */
- /* and bail out when the font plotter is not available: */
- for (i = 0; font_driver_table[i].name != NULL; i++) {
-
- /* found selector in driver table? */
- if (strcmp(name, font_driver_table[i].name) == 0) {
-
- /* allocate the font plotter instance: */
- fplotter = (FONT_PLOTTER)malloc(sizeof(struct s_font_plotter));
- if (fplotter == NULL) {
- *error = 0-ERR_NO_MEM;
- return(NULL);
- }
-
- /* Initialize the font plotter with the requested settings: */
- memset( fplotter, 0, sizeof(FONT_PLOTTER));
- fplotter->vdi_handle = vdihandle;
- fplotter->name = name;
- fplotter->flags = 0;
- fplotter->flags |= flags;
-
- /* Execute the constructor: */
- assert(font_driver_table[i].ctor);
- res = font_driver_table[i].ctor(fplotter);
-
- /* success? */
- if (res < 0) {
- /* NO success! */
- free(fplotter);
- *error = res;
- return(NULL);
- }
- *error = 0;
- break;
- }
- }
-
- return(fplotter);
-}
-
-/*
- Free an font plotter
-*/
-int delete_font_plotter(FONT_PLOTTER p)
-{
- if (p) {
- p->dtor(p);
- free(p);
- p = NULL;
- }
- else
- return(-1);
- return(0);
-}
-
diff --git a/atari/plot/fontplot.h b/atari/plot/fontplot.h
deleted file mode 100644
index 6690bff2c..000000000
--- a/atari/plot/fontplot.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef FONT_PLOT_H
-#define FONT_PLOT_H
-
-typedef struct s_font_plotter * FONT_PLOTTER;
-
-struct s_font_driver_table_entry
-{
- const char * name;
- int (*ctor)( FONT_PLOTTER self );
- int flags;
-};
-
-/* declaration of font plotter member functions: (_fpmf_ prefix) */
-typedef int (*_fpmf_str_width)( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char * str, size_t length, int * width);
-typedef int (*_fpmf_str_split)( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,
- int x, size_t *char_offset, int *actual_x);
-typedef int (*_fpmf_pixel_pos)( FONT_PLOTTER self, const plot_font_style_t *fstyle,
- const char *string, size_t length,
- int x, size_t *char_offset, int *actual_x);
-typedef int (*_fpmf_text)( FONT_PLOTTER self, int x, int y, const char *text,
- size_t length, const plot_font_style_t *fstyle);
-
-typedef void (*_fpmf_draw_glyph)(FONT_PLOTTER self, GRECT * clip, GRECT * loc,
- uint8_t * pixdata, int pitch, uint32_t colour);
-typedef int (*_fpmf_dtor)( FONT_PLOTTER self );
-
-
-/* prototype of the font plotter "object" */
-struct s_font_plotter
-{
- char * name;
- int flags;
- int vdi_handle;
- void * priv_data;
-
- _fpmf_str_width str_width;
- _fpmf_str_split str_split;
- _fpmf_pixel_pos pixel_pos;
- _fpmf_text text;
- _fpmf_draw_glyph draw_glyph;
- _fpmf_dtor dtor;
-};
-
-
-FONT_PLOTTER plot_get_text_plotter(void);
-/* Set the font plotting engine.
-*/
-void plot_set_text_plotter(FONT_PLOTTER font_plotter);
-void dump_font_drivers(void);
-FONT_PLOTTER new_font_plotter( int vdihandle, char * name, unsigned long flags,
- int * error);
-int delete_font_plotter( FONT_PLOTTER p );
-
-#ifdef WITH_VDI_FONT_DRIVER
- #include "atari/plot/font_vdi.h"
-#endif
-#ifdef WITH_INTERNAL_FONT_DRIVER
- #include "atari/plot/font_internal.h"
-#endif
-#ifdef WITH_FREETYPE_FONT_DRIVER
- #include "atari/plot/font_freetype.h"
-#endif
-
-
-
-#endif
diff --git a/atari/plot/plot.c b/atari/plot/plot.c
deleted file mode 100644
index 45e4cead2..000000000
--- a/atari/plot/plot.c
+++ /dev/null
@@ -1,2247 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <assert.h>
-#include <sys/types.h>
-#include <stdint.h>
-#include <string.h>
-#include <limits.h>
-#include <math.h>
-#include <stdbool.h>
-#include <mt_gem.h>
-#include <mint/osbind.h>
-
-#include "utils/log.h"
-#include "utils/utf8.h"
-#include "utils/utils.h"
-#include "image/bitmap.h"
-#include "desktop/plotters.h"
-#include "desktop/mouse.h"
-
-#include "atari/gui.h"
-#include "atari/osspec.h"
-#include "atari/misc.h"
-#include "atari/bitmap.h"
-#include "utils/nsoption.h"
-#include "atari/plot/eddi.h"
-#include "atari/plot/fontplot.h"
-#include "atari/plot/plot.h"
-
-void vq_scrninfo(VdiHdl handle, short *work_out);
-
-struct s_view {
- short x; /* drawing (screen) offset x */
- short y; /* drawing (screen) offset y */
- short w; /* width of buffer, not in sync with vis_w */
- short h; /* height of buffer, not in sync with vis_w */
- short vis_x; /* visible rectangle of the screen buffer */
- short vis_y; /* coords are relative to plot location */
- short vis_w; /* clipped to screen dimensions */
- short vis_h; /* visible width */
- struct rect abs_clipping; /* The toplevel clipping rectangle */
- struct rect clipping; /* actual clipping rectangle */
- float scale;
-};
-
-/*
-* Capture the screen at x,y location
-* param self instance
-* param x absolute screen coords
-* param y absolute screen coords
-* param w width
-* param h height
-*
-* This creates an snapshot in RGBA format (NetSurf's native format)
-*
-*/
-static struct bitmap * snapshot_create(int x, int y, int w, int h);
-
-/* Garbage collection of the snapshot routine */
-/* this should be called after you are done with the data returned by snapshot_create */
-/* don't access the screenshot after you called this function */
-static void snapshot_suspend(void);
-
-/* destroy memory used by screenshot */
-static void snapshot_destroy(void);
-
-#ifdef WITH_8BPP_SUPPORT
-static unsigned short sys_pal[256][3]; /*RGB*/
-static unsigned short pal[256][3]; /*RGB*/
-static char rgb_lookup[256][4];
-short web_std_colors[6] = {0, 51, 102, 153, 204, 255};
-
-unsigned short vdi_web_pal[216][3] = {
- {0x000,0x000,0x000}, {0x0c8,0x000,0x000}, {0x190,0x000,0x000}, {0x258,0x000,0x000}, {0x320,0x000,0x000}, {0x3e8,0x000,0x000},
- {0x000,0x0c8,0x000}, {0x0c8,0x0c8,0x000}, {0x190,0x0c8,0x000}, {0x258,0x0c8,0x000}, {0x320,0x0c8,0x000}, {0x3e8,0x0c8,0x000},
- {0x000,0x190,0x000}, {0x0c8,0x190,0x000}, {0x190,0x190,0x000}, {0x258,0x190,0x000}, {0x320,0x190,0x000}, {0x3e8,0x190,0x000},
- {0x000,0x258,0x000}, {0x0c8,0x258,0x000}, {0x190,0x258,0x000}, {0x258,0x258,0x000}, {0x320,0x258,0x000}, {0x3e8,0x258,0x000},
- {0x000,0x320,0x000}, {0x0c8,0x320,0x000}, {0x190,0x320,0x000}, {0x258,0x320,0x000}, {0x320,0x320,0x000}, {0x3e8,0x320,0x000},
- {0x000,0x3e8,0x000}, {0x0c8,0x3e8,0x000}, {0x190,0x3e8,0x000}, {0x258,0x3e8,0x000}, {0x320,0x3e8,0x000}, {0x3e8,0x3e8,0x000},
- {0x000,0x000,0x0c8}, {0x0c8,0x000,0x0c8}, {0x190,0x000,0x0c8}, {0x258,0x000,0x0c8}, {0x320,0x000,0x0c8}, {0x3e8,0x000,0x0c8},
- {0x000,0x0c8,0x0c8}, {0x0c8,0x0c8,0x0c8}, {0x190,0x0c8,0x0c8}, {0x258,0x0c8,0x0c8}, {0x320,0x0c8,0x0c8}, {0x3e8,0x0c8,0x0c8},
- {0x000,0x190,0x0c8}, {0x0c8,0x190,0x0c8}, {0x190,0x190,0x0c8}, {0x258,0x190,0x0c8}, {0x320,0x190,0x0c8}, {0x3e8,0x190,0x0c8},
- {0x000,0x258,0x0c8}, {0x0c8,0x258,0x0c8}, {0x190,0x258,0x0c8}, {0x258,0x258,0x0c8}, {0x320,0x258,0x0c8}, {0x3e8,0x258,0x0c8},
- {0x000,0x320,0x0c8}, {0x0c8,0x320,0x0c8}, {0x190,0x320,0x0c8}, {0x258,0x320,0x0c8}, {0x320,0x320,0x0c8}, {0x3e8,0x320,0x0c8},
- {0x000,0x3e8,0x0c8}, {0x0c8,0x3e8,0x0c8}, {0x190,0x3e8,0x0c8}, {0x258,0x3e8,0x0c8}, {0x320,0x3e8,0x0c8}, {0x3e8,0x3e8,0x0c8},
- {0x000,0x000,0x190}, {0x0c8,0x000,0x190}, {0x190,0x000,0x190}, {0x258,0x000,0x190}, {0x320,0x000,0x190}, {0x3e8,0x000,0x190},
- {0x000,0x0c8,0x190}, {0x0c8,0x0c8,0x190}, {0x190,0x0c8,0x190}, {0x258,0x0c8,0x190}, {0x320,0x0c8,0x190}, {0x3e8,0x0c8,0x190},
- {0x000,0x190,0x190}, {0x0c8,0x190,0x190}, {0x190,0x190,0x190}, {0x258,0x190,0x190}, {0x320,0x190,0x190}, {0x3e8,0x190,0x190},
- {0x000,0x258,0x190}, {0x0c8,0x258,0x190}, {0x190,0x258,0x190}, {0x258,0x258,0x190}, {0x320,0x258,0x190}, {0x3e8,0x258,0x190},
- {0x000,0x320,0x190}, {0x0c8,0x320,0x190}, {0x190,0x320,0x190}, {0x258,0x320,0x190}, {0x320,0x320,0x190}, {0x3e8,0x320,0x190},
- {0x000,0x3e8,0x190}, {0x0c8,0x3e8,0x190}, {0x190,0x3e8,0x190}, {0x258,0x3e8,0x190}, {0x320,0x3e8,0x190}, {0x3e8,0x3e8,0x190},
- {0x000,0x000,0x258}, {0x0c8,0x000,0x258}, {0x190,0x000,0x258}, {0x258,0x000,0x258}, {0x320,0x000,0x258}, {0x3e8,0x000,0x258},
- {0x000,0x0c8,0x258}, {0x0c8,0x0c8,0x258}, {0x190,0x0c8,0x258}, {0x258,0x0c8,0x258}, {0x320,0x0c8,0x258}, {0x3e8,0x0c8,0x258},
- {0x000,0x190,0x258}, {0x0c8,0x190,0x258}, {0x190,0x190,0x258}, {0x258,0x190,0x258}, {0x320,0x190,0x258}, {0x3e8,0x190,0x258},
- {0x000,0x258,0x258}, {0x0c8,0x258,0x258}, {0x190,0x258,0x258}, {0x258,0x258,0x258}, {0x320,0x258,0x258}, {0x3e8,0x258,0x258},
- {0x000,0x320,0x258}, {0x0c8,0x320,0x258}, {0x190,0x320,0x258}, {0x258,0x320,0x258}, {0x320,0x320,0x258}, {0x3e8,0x320,0x258},
- {0x000,0x3e8,0x258}, {0x0c8,0x3e8,0x258}, {0x190,0x3e8,0x258}, {0x258,0x3e8,0x258}, {0x320,0x3e8,0x258}, {0x3e8,0x3e8,0x258},
- {0x000,0x000,0x320}, {0x0c8,0x000,0x320}, {0x190,0x000,0x320}, {0x258,0x000,0x320}, {0x320,0x000,0x320}, {0x3e8,0x000,0x320},
- {0x000,0x0c8,0x320}, {0x0c8,0x0c8,0x320}, {0x190,0x0c8,0x320}, {0x258,0x0c8,0x320}, {0x320,0x0c8,0x320}, {0x3e8,0x0c8,0x320},
- {0x000,0x190,0x320}, {0x0c8,0x190,0x320}, {0x190,0x190,0x320}, {0x258,0x190,0x320}, {0x320,0x190,0x320}, {0x3e8,0x190,0x320},
- {0x000,0x258,0x320}, {0x0c8,0x258,0x320}, {0x190,0x258,0x320}, {0x258,0x258,0x320}, {0x320,0x258,0x320}, {0x3e8,0x258,0x320},
- {0x000,0x320,0x320}, {0x0c8,0x320,0x320}, {0x190,0x320,0x320}, {0x258,0x320,0x320}, {0x320,0x320,0x320}, {0x3e8,0x320,0x320},
- {0x000,0x3e8,0x320}, {0x0c8,0x3e8,0x320}, {0x190,0x3e8,0x320}, {0x258,0x3e8,0x320}, {0x320,0x3e8,0x320}, {0x3e8,0x3e8,0x320},
- {0x000,0x000,0x3e8}, {0x0c8,0x000,0x3e8}, {0x190,0x000,0x3e8}, {0x258,0x000,0x3e8}, {0x320,0x000,0x3e8}, {0x3e8,0x000,0x3e8},
- {0x000,0x0c8,0x3e8}, {0x0c8,0x0c8,0x3e8}, {0x190,0x0c8,0x3e8}, {0x258,0x0c8,0x3e8}, {0x320,0x0c8,0x3e8}, {0x3e8,0x0c8,0x3e8},
- {0x000,0x190,0x3e8}, {0x0c8,0x190,0x3e8}, {0x190,0x190,0x3e8}, {0x258,0x190,0x3e8}, {0x320,0x190,0x3e8}, {0x3e8,0x190,0x3e8},
- {0x000,0x258,0x3e8}, {0x0c8,0x258,0x3e8}, {0x190,0x258,0x3e8}, {0x258,0x258,0x3e8}, {0x320,0x258,0x3e8}, {0x3e8,0x258,0x3e8},
- {0x000,0x320,0x3e8}, {0x0c8,0x320,0x3e8}, {0x190,0x320,0x3e8}, {0x258,0x320,0x3e8}, {0x320,0x320,0x3e8}, {0x3e8,0x320,0x3e8},
- {0x000,0x3e8,0x3e8}, {0x0c8,0x3e8,0x3e8}, {0x190,0x3e8,0x3e8}, {0x258,0x3e8,0x3e8}, {0x320,0x3e8,0x3e8}, {0x3e8,0x3e8,0x3e8}
-};
-#endif
-
-/* Error code translations: */
-static const char * plot_error_codes[] = {
- "None",
- "ERR_BUFFERSIZE_EXCEEDS_SCREEN",
- "ERR_NO_MEM",
- "ERR_PLOTTER_NOT_AVAILABLE"
-};
-
-FONT_PLOTTER fplotter = NULL;
-
-extern short vdih;
-
-/* temp buffer for bitmap conversion: */
-static void * buf_packed;
-static int size_buf_packed;
-
-/* temp buffer for bitmap conversion: */
-void * buf_planar;
-int size_buf_planar;
-
-/* buffer for plot operations that require device format, */
-/* currently used for transparent mfdb blits and snapshots: */
-static MFDB buf_scr;
-static int size_buf_scr;
-
-/* buffer for std form, used during 8bpp snapshot */
-MFDB buf_std;
-int size_buf_std;
-
-struct bitmap * buf_scr_compat;
-
-/* intermediate bitmap format */
-static HermesFormat vfmt;
-
-/* no screen format here, hermes may not suitable for it */
-
-/* netsurf source bitmap format */
-static HermesFormat nsfmt;
-
-struct s_vdi_sysinfo vdi_sysinfo;
-/* bit depth of framebuffers: */
-static int atari_plot_bpp_virt;
-static struct s_view view;
-
-//static HermesHandle hermes_pal_h; /* hermes palette handle */
-static HermesHandle hermes_cnv_h; /* hermes converter instance handle */
-static HermesHandle hermes_res_h;
-
-//static short prev_vdi_clip[4];
-static struct bitmap snapshot;
-
-VdiHdl atari_plot_vdi_handle = -1;
-unsigned long atari_plot_flags;
-unsigned long atari_font_flags;
-
-typedef bool (*bitmap_convert_fnc)( struct bitmap * img, int x, int y,
- GRECT * clip, uint32_t bg, uint32_t flags, MFDB *out );
-static bitmap_convert_fnc bitmap_convert;
-
-const char* plot_err_str(int i)
-{
- return(plot_error_codes[abs(i)]);
-}
-
-/**
- * Set line drawing color by passing netsurf XBGR "colour" type.
- *
- * \param vdih The vdi handle
- * \param cin The netsurf colour value
- */
-inline static void vsl_rgbcolor(short vdih, colour cin)
-{
- #ifdef WITH_8BPP_SUPPORT
- if( vdi_sysinfo.scr_bpp > 8 ) {
- #endif
- RGB1000 c; /* a struct with three (RGB) shorts */
- rgb_to_vdi1000( (unsigned char*)&cin, &c);
- vs_color(vdih, OFFSET_CUSTOM_COLOR, (short *)&c);
- vsl_color(vdih, OFFSET_CUSTOM_COLOR);
- #ifdef WITH_8BPP_SUPPORT
- } else {
- if( vdi_sysinfo.scr_bpp >= 4 ){
- vsl_color(vdih, RGB_TO_VDI(cin));
- }
- else
- vsl_color(vdih, BLACK);
- }
- #endif
-}
-
-/**
- * Set fill color by passing netsurf XBGR "colour" type.
- *
- * \param vdih The vdi handle
- * \param cin The netsurf colour value
- */
-inline static void vsf_rgbcolor(short vdih, colour cin)
-{
- #ifdef WITH_8BPP_SUPPORT
- if( vdi_sysinfo.scr_bpp > 8 ) {
- #endif
- RGB1000 c; /* a struct with three (RGB) shorts */
- rgb_to_vdi1000( (unsigned char*)&cin, &c);
- vs_color( vdih, OFFSET_CUSTOM_COLOR, (short *)&c);
- vsf_color( vdih, OFFSET_CUSTOM_COLOR );
- #ifdef WITH_8BPP_SUPPORT
- } else {
- if( vdi_sysinfo.scr_bpp >= 4 ){
- vsf_color( vdih, RGB_TO_VDI(cin) );
- }
- else
- vsf_color( vdih, WHITE );
- }
- #endif
-}
-
-
-
-/**
- * Get current visible coords
- */
-inline static void plot_get_visible_grect(GRECT * out)
-{
- out->g_x = view.vis_x;
- out->g_y = view.vis_y;
- out->g_w = view.vis_w;
- out->g_h = view.vis_h;
-}
-
-
-
-/* calculate visible area of framebuffer in coords relative to framebuffer */
-/* position */
-/* result: */
-/* this function should calculates an rectangle relative to the plot origin*/
-/* and size. */
-/* If the ploter coords do not fall within the screen region, */
-/* all values of the region are set to zero. */
-inline static void update_visible_rect(void)
-{
- GRECT screen; // dimensions of the screen
- GRECT frame; // dimensions of the drawing area
- GRECT common; // dimensions of intersection of both
-
- screen.g_x = 0;
- screen.g_y = 0;
- screen.g_w = vdi_sysinfo.scr_w;
- screen.g_h = vdi_sysinfo.scr_h;
-
- common.g_x = frame.g_x = view.x;
- common.g_y = frame.g_y = view.y;
- common.g_w = frame.g_w = view.w;
- common.g_h = frame.g_h = view.h;
-
- if (rc_intersect(&screen, &common)) {
- view.vis_w = common.g_w;
- view.vis_h = common.g_h;
- if (view.x < screen.g_x)
- view.vis_x = frame.g_w - common.g_w;
- else
- view.vis_x = 0;
- if (view.y <screen.g_y)
- view.vis_y = frame.g_h - common.g_h;
- else
- view.vis_y = 0;
- } else {
- view.vis_w = view.vis_h = 0;
- view.vis_x = view.vis_y = 0;
- }
-}
-
-/* Returns the visible parts of the box (relative coords within framebuffer),*/
-/* relative to screen coords (normally starting at 0,0 ) */
-inline static bool fbrect_to_screen(GRECT box, GRECT * ret)
-{
- GRECT out, vis, screen;
-
- screen.g_x = 0;
- screen.g_y = 0;
- screen.g_w = vdi_sysinfo.scr_w;
- screen.g_h = vdi_sysinfo.scr_h;
-
- /* get visible region: */
- vis.g_x = view.x;
- vis.g_y = view.y;
- vis.g_w = view.w;
- vis.g_h = view.h;
-
- if ( !rc_intersect( &screen, &vis ) ) {
- return( false );
- }
- vis.g_x = view.w - vis.g_w;
- vis.g_y = view.h - vis.g_h;
-
- /* clip box to visible region: */
- if( !rc_intersect(&vis, &box) ) {
- return( false );
- }
- out.g_x = box.g_x + view.x;
- out.g_y = box.g_y + view.y;
- out.g_w = box.g_w;
- out.g_h = box.g_h;
- *ret = out;
- return ( true );
-}
-
-/* copy an rectangle from the plot buffer to screen */
-/* because this is an on-screen plotter, this is an screen to screen copy. */
-bool plot_copy_rect(GRECT src, GRECT dst)
-{
- MFDB devmf;
- MFDB scrmf;
- short pxy[8];
- GRECT vis;
-
- /* clip to visible rect, only needed for onscreen renderer: */
- plot_get_visible_grect(&vis );
-
- if( !rc_intersect(&vis, &src) )
- return(true);
- if( !rc_intersect(&vis, &dst) )
- return(true);
-
- src.g_x = view.x + src.g_x;
- src.g_y = view.y + src.g_y;
- dst.g_x = view.x + dst.g_x;
- dst.g_y = view.y + dst.g_y;
-
- devmf.fd_addr = NULL;
- devmf.fd_w = src.g_w;
- devmf.fd_h = src.g_h;
- devmf.fd_wdwidth = 0;
- devmf.fd_stand = 0;
- devmf.fd_nplanes = 0;
- devmf.fd_r1 = devmf.fd_r2 = devmf.fd_r3 = 0;
-
- scrmf.fd_addr = NULL;
- scrmf.fd_w = dst.g_w;
- scrmf.fd_h = dst.g_h;
- scrmf.fd_wdwidth = 0 ;
- scrmf.fd_stand = 0;
- scrmf.fd_nplanes = 0;
- scrmf.fd_r1 = scrmf.fd_r2 = scrmf.fd_r3 = 0;
-
- pxy[0] = src.g_x;
- pxy[1] = src.g_y;
- pxy[2] = pxy[0] + src.g_w-1;
- pxy[3] = pxy[1] + src.g_h-1;
- pxy[4] = dst.g_x;
- pxy[5] = dst.g_y;
- pxy[6] = pxy[4] + dst.g_w-1;
- pxy[7] = pxy[5] + dst.g_h-1;
- plot_lock();
- vro_cpyfm( atari_plot_vdi_handle, S_ONLY, (short*)&pxy, &devmf, &scrmf);
- plot_unlock();
-
- return(true);
-}
-
-/**
- * Fill the screen info structure.
- *
- * \param vdhi The handle
- * \param[out] info The infor structure to fill.
- */
-static void read_vdi_sysinfo(short vdih, struct s_vdi_sysinfo * info) {
-
- unsigned long cookie_EdDI=0; /** \todo this long is being cast to a pointer */
- short out[300];
- memset( info, 0, sizeof(struct s_vdi_sysinfo) );
-
- info->vdi_handle = vdih;
- if ( tos_getcookie(C_EdDI, (long *)&cookie_EdDI) == C_NOTFOUND ) {
- info->EdDiVersion = 0;
- } else {
- info->EdDiVersion = EdDI_version( (void *)cookie_EdDI );
- }
-
- memset( &out, 0, sizeof(short)*300 );
- vq_extnd( vdih, 0, (short*)&out );
- info->scr_w = out[0]+1;
- info->scr_h = out[1]+1;
- if( out[39] == 2 ) {
- info->scr_bpp = 1;
- info->colors = out[39];
- } else {
- info->colors = out[39];
- }
-
- memset( &out, 0, sizeof(short)*300 );
- vq_extnd( vdih, 1, (short*)&out );
- info->scr_bpp = out[4];
- info->maxpolycoords = out[14];
- info->maxintin = out[15];
- if( out[30] & 1 ) {
- info->rasterscale = true;
- } else {
- info->rasterscale = false;
- }
-
- switch( info->scr_bpp ) {
- case 8:
- info->pixelsize=1;
- break;
- case 15:
- case 16:
- info->pixelsize=2;
- break;
- case 24:
- info->pixelsize=3;
- break;
- case 32:
- info->pixelsize=4;
- break;
- case 64:
- info->pixelsize=8;
- break;
- default:
- info->pixelsize=1;
- break;
-
- }
- info->pitch = info->scr_w * info->pixelsize;
- info->vdiformat = ( (info->scr_bpp <= 8) ? VDI_FORMAT_INTER : VDI_FORMAT_PACK);
- info->screensize = ( info->scr_w * info->pixelsize ) * info->scr_h;
-
- if( info->EdDiVersion >= EDDI_10 ) {
- memset( &out, 0, sizeof(short)*300 );
- vq_scrninfo(vdih, (short*)&out);
- info->vdiformat = out[0];
- info->clut = out[1];
- info->scr_bpp = out[2];
- info->hicolors = *((unsigned long*) &out[3]);
- if( info->EdDiVersion >= EDDI_11 ) {
- info->pitch = out[5];
- info->screen = (void *) *((unsigned long *) &out[6]);
- }
-
- switch( info->clut ) {
-
- case VDI_CLUT_HARDWARE: {
-
- }
- break;
-
- case VDI_CLUT_SOFTWARE: {
- int component; /* red, green, blue, alpha, overlay */
- int num_bit;
- unsigned short *tmp_p;
-
- /* We can build masks with info here */
- tmp_p = (unsigned short *) &out[16];
- for (component=0; component<5; component++) {
- for (num_bit=0; num_bit<16; num_bit++) {
- unsigned short val;
-
- val = *tmp_p++;
-
- if (val == 0xffff) {
- continue;
- }
-
- switch(component) {
- case 0:
- info->mask_r |= 1<< val;
- break;
- case 1:
- info->mask_g |= 1<< val;
- break;
- case 2:
- info->mask_b |= 1<< val;
- break;
- case 3:
- info->mask_a |= 1<< val;
- break;
- }
- }
- }
- }
-
- /* Remove lower green bits for Intel endian screen */
- if ((info->mask_g == ((7<<13)|3)) || (info->mask_g == ((7<<13)|7))) {
- info->mask_g &= ~(7<<13);
- }
- break;
-
- case VDI_CLUT_NONE:
- break;
- }
- }
-}
-
-
-/*
- Convert an RGB color to an VDI Color
-*/
-inline void rgb_to_vdi1000(unsigned char * in, RGB1000 *out)
-{
- double r = ((double)in[3]/255); /* prozentsatz red */
- double g = ((double)in[2]/255); /* prozentsatz green */
- double b = ((double)in[1]/255); /* prozentsatz blue */
- out->red = 1000 * r + 0.5;
- out->green = 1000 * g + 0.5;
- out->blue = 1000 * b + 0.5;
- return;
-}
-
-inline void vdi1000_to_rgb(unsigned short * in, unsigned char * out)
-{
- double r = ((double)in[0]/1000); /* prozentsatz red */
- double g = ((double)in[1]/1000); /* prozentsatz green */
- double b = ((double)in[2]/1000); /* prozentsatz blue */
- out[2] = 255 * r + 0.5;
- out[1] = 255 * g + 0.5;
- out[0] = 255 * b + 0.5;
- return;
-}
-
-
-#ifdef WITH_8BPP_SUPPORT
-/**
- * Set pixel within an 8 bit VDI standard bitmap.
- */
-inline static void set_stdpx( MFDB * dst, int wdplanesz, int x, int y, unsigned char val )
-{
- short * buf;
- short whichbit = (1<<(15-(x%16)));
-
- buf = dst->fd_addr;
- buf += ((dst->fd_wdwidth*(y))+(x>>4));
-
- *buf = (val&1) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<1)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<2)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<3)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<4)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<5)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<6)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-
- buf += wdplanesz;
- *buf = (val&(1<<7)) ? ((*buf)|(whichbit)) : ((*buf)&~(whichbit));
-}
-
-/**
- * Read pixel from an 8 bit VDI standard bitmap.
- */
-inline static unsigned char get_stdpx(MFDB * dst, int wdplanesz, int x, int y)
-{
- unsigned char ret=0;
- short * buf;
- short whichbit = (1<<(15-(x%16)));
-
- buf = dst->fd_addr;
- buf += ((dst->fd_wdwidth*(y))+(x>>4));
-
- if( *buf & whichbit )
- ret |= 1;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 2;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 4;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 8;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 16;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 32;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 64;
-
- buf += wdplanesz;
- if( *buf & whichbit )
- ret |= 128;
-
- return( ret );
-}
-
-/*
- Convert an RGB color into an index into the 216 colors web pallette
-*/
-inline short rgb_to_666_index(unsigned char r, unsigned char g, unsigned char b)
-{
- short i;
- unsigned char rgb[3] = {r,g,b};
- unsigned char tval[3];
-
- int diff_a, diff_b, diff_c;
- diff_a = abs(r-g);
- diff_b = abs(r-b);
- diff_c = abs(r-b);
- if( diff_a < 2 && diff_b < 2 && diff_c < 2 ) {
- if( (r!=0XFF) && (g!=0XFF) && (b!=0XFF) ) {
- if( ((r&0xF0)>>4) != 0 )
- //printf("conv gray: %x -> %d\n", ((r&0xF0)>>4) , (OFFSET_CUST_PAL) + ((r&0xF0)>>4) );
- return( (OFFSET_CUST_PAL - OFFSET_WEB_PAL) + ((r&0xF0)>>4) );
- }
- }
-
- /* convert each 8bit color to 6bit web color: */
- for( i=0; i<3; i++) {
- if(0 == rgb[i] % web_std_colors[1] ) {
- tval[i] = rgb[i] / web_std_colors[1];
- } else {
- int pos = ((short)rgb[i] / web_std_colors[1]);
- if( abs(rgb[i] - web_std_colors[pos]) > abs(rgb[i] - web_std_colors[pos+1]) )
- tval[i] = pos+1;
- else
- tval[i] = pos;
- }
- }
- return(tval[2]*36+tval[1]*6+tval[0]);
-}
-#endif
-
-
-static void dump_vdi_info(short vdih)
-{
- struct s_vdi_sysinfo temp;
- read_vdi_sysinfo( vdih, &temp );
- printf("struct s_vdi_sysinfo {\n");
- printf(" short vdi_handle: %d\n", temp.vdi_handle);
- printf(" short scr_w: %d \n", temp.scr_w);
- printf(" short scr_h: %d\n", temp.scr_h);
- printf(" short scr_bpp: %d\n", temp.scr_bpp);
- printf(" int colors: %d\n", temp.colors);
- printf(" ulong hicolors: %lu\n", temp.hicolors);
- printf(" short pixelsize: %d\n", temp.pixelsize);
- printf(" unsigned short pitch: %d\n", temp.pitch);
- printf(" unsigned short vdiformat: %d\n", temp.vdiformat);
- printf(" unsigned short clut: %d\n", temp.clut);
- printf(" void * screen: 0x0%p\n", temp.screen);
- printf(" unsigned long screensize: %lu\n", temp.screensize);
- printf(" unsigned long mask_r: 0x0%08lx\n", temp.mask_r);
- printf(" unsigned long mask_g: 0x0%08lx\n", temp.mask_g);
- printf(" unsigned long mask_b: 0x0%08lx\n", temp.mask_b);
- printf(" unsigned long mask_a: 0x0%08lx\n", temp.mask_a);
- printf(" short maxintin: %d\n", temp.maxintin);
- printf(" short maxpolycoords: %d\n", temp.maxpolycoords);
- printf(" unsigned long EdDiVersion: 0x0%03lx\n", temp.EdDiVersion);
- printf(" unsigned short rasterscale: 0x%2x\n", temp.rasterscale);
- printf("};\n");
-}
-
-/**
- * Create an snapshot of the screen image in device format.
- */
-static MFDB * snapshot_create_native_mfdb(int x, int y, int w, int h)
-{
- MFDB scr;
- short pxy[8];
-
- /* allocate memory for the snapshot */
- {
- int scr_stride = MFDB_STRIDE( w );
- int scr_size = ( ((scr_stride >> 3) * h) * vdi_sysinfo.scr_bpp );
- if(size_buf_scr == 0 ){
- /* init screen mfdb */
- buf_scr.fd_addr = malloc( scr_size );
- size_buf_scr = scr_size;
- } else {
- if( scr_size >size_buf_scr ) {
- buf_scr.fd_addr = realloc(
- buf_scr.fd_addr, scr_size
- );
- size_buf_scr = scr_size;
- }
- }
- if(buf_scr.fd_addr == NULL ) {
- size_buf_scr = 0;
- return( NULL );
- }
- buf_scr.fd_nplanes = vdi_sysinfo.scr_bpp;
- buf_scr.fd_w = scr_stride;
- buf_scr.fd_h = h;
- buf_scr.fd_wdwidth = scr_stride >> 4;
- assert(buf_scr.fd_addr != NULL );
- }
- init_mfdb( 0, w, h, 0, &scr );
- pxy[0] = x;
- pxy[1] = y;
- pxy[2] = pxy[0] + w-1;
- pxy[3] = pxy[1] + h-1;
- pxy[4] = 0;
- pxy[5] = 0;
- pxy[6] = w-1;
- pxy[7] = h-1;
- vro_cpyfm(
- atari_plot_vdi_handle, S_ONLY, (short*)&pxy,
- &scr, &buf_scr
- );
-
- return( &buf_scr );
-}
-
-/**
- * Create an snapshot of the screen image in VDI standard format (8 bit).
- */
-static MFDB * snapshot_create_std_mfdb(int x, int y, int w, int h)
-{
- /* allocate memory for the snapshot */
- {
- int scr_stride = MFDB_STRIDE( w );
- int scr_size = ( ((scr_stride >> 3) * h) * vdi_sysinfo.scr_bpp );
- if(size_buf_std == 0 ){
- /* init screen mfdb */
- buf_std.fd_addr = malloc( scr_size );
- size_buf_std = scr_size;
- } else {
- if( scr_size >size_buf_std ) {
- buf_std.fd_addr = realloc(
- buf_std.fd_addr, scr_size
- );
- size_buf_std = scr_size;
- }
- }
- if(buf_std.fd_addr == NULL ) {
- size_buf_std = 0;
- return( NULL );
- }
- buf_std.fd_nplanes = 8;
- buf_std.fd_w = scr_stride;
- buf_std.fd_h = h;
- buf_std.fd_stand = 1;
- buf_std.fd_wdwidth = scr_stride >> 4;
- assert(buf_std.fd_addr != NULL );
- }
- MFDB * native = snapshot_create_native_mfdb(x,y,w,h );
- assert( native );
-
- vr_trnfm(atari_plot_vdi_handle, native, &buf_std);
- return( &buf_std );
-}
-
-/*
- * Create an snapshot of the screen in netsurf ABGR format
- */
-static struct bitmap * snapshot_create(int x, int y, int w, int h)
-{
- int err;
- MFDB * native;
- // uint32_t start = clock();
-
- // FIXME: This can be optimized a lot.
- // 1. do not copy the snapshot to the bitmap buffer
- // when the format of screen and bitmap equals.
- // just point the bitmap to the native mfdb.
- // 2. if we have eddi 1.1, we could optimize that further
- // make snapshot_create_native_mfdb just returning a pointer
- // to the screen.
-
- native = snapshot_create_native_mfdb(x, y, w, h );
-
- if(vfmt.bits == 32 )
- goto no_copy;
-
- /* allocate buffer for result bitmap: */
- if(buf_scr_compat == NULL ) {
- buf_scr_compat = atari_bitmap_create(w, h, 0);
- } else {
- buf_scr_compat = atari_bitmap_realloc( w, h,
- buf_scr_compat->bpp,
- w *buf_scr_compat->bpp,
- BITMAP_GROW,
- buf_scr_compat );
- }
-
- /* convert screen buffer to ns format: */
- err = Hermes_ConverterRequest( hermes_cnv_h,
- &vfmt,
- &nsfmt
- );
- assert( err != 0 );
- err = Hermes_ConverterCopy( hermes_cnv_h,
- native->fd_addr,
- 0, /* x src coord of top left in pixel coords */
- 0, /* y src coord of top left in pixel coords */
- w, h,
- native->fd_w * vdi_sysinfo.pixelsize, /* stride as bytes */
- buf_scr_compat->pixdata,
- 0, /* x dst coord of top left in pixel coords */
- 0, /* y dst coord of top left in pixel coords */
- w, h,
- atari_bitmap_get_rowstride(buf_scr_compat) /* stride as bytes */
- );
- assert( err != 0 );
- return( (struct bitmap * )buf_scr_compat );
-
-no_copy:
-
- snapshot.width = w;
- snapshot.height = h;
- snapshot.pixdata = native->fd_addr;
- snapshot.native = *native;
- snapshot.rowstride = MFDB_STRIDE( w )*4;
-
- uint32_t row, col;
- for (row = 0; row<(uint32_t)h; row++) {
- // fd_w matches stride!
- uint32_t *rowptr = ((uint32_t*)native->fd_addr + ((row*native->fd_w)));
- for (col=0; col<(uint32_t)w; col++) {
- *(rowptr+col) = (*(rowptr+col)<<8);
- }
- }
- return( &snapshot );
-}
-
-/**
- * Notify the snapshot interface that the last snapshot is no longer in use.
- */
-static void snapshot_suspend(void)
-{
- if(size_buf_scr > CONV_KEEP_LIMIT ) {
- buf_scr.fd_addr = realloc(
- buf_scr.fd_addr, CONV_KEEP_LIMIT
- );
- if(buf_scr.fd_addr != NULL ) {
- size_buf_scr = CONV_KEEP_LIMIT;
- } else {
- size_buf_scr = 0;
- }
- }
-
-#ifdef WITH_8BPP_SUPPORT
- if(size_buf_std > CONV_KEEP_LIMIT ) {
- buf_std.fd_addr = realloc(
- buf_std.fd_addr, CONV_KEEP_LIMIT
- );
- if(buf_std.fd_addr != NULL ) {
- size_buf_std = CONV_KEEP_LIMIT;
- } else {
- size_buf_std = 0;
- }
- }
-#endif
-
- if(buf_scr_compat != NULL ) {
- size_t bs = atari_bitmap_buffer_size(buf_scr_compat );
- if( bs > CONV_KEEP_LIMIT ) {
- int w = 0;
- int h = 1;
- w = (CONV_KEEP_LIMIT /buf_scr_compat->bpp);
- assert( CONV_KEEP_LIMIT == w*buf_scr_compat->bpp );
- buf_scr_compat = atari_bitmap_realloc( w, h,
- buf_scr_compat->bpp,
- CONV_KEEP_LIMIT, BITMAP_SHRINK,buf_scr_compat
- );
- }
- }
-}
-
-/**
- * Shut down the snapshot interface.
- */
-static void snapshot_destroy(void)
-{
-
- free(buf_scr.fd_addr);
- if( buf_scr_compat != NULL) {
- atari_bitmap_destroy(buf_scr_compat);
- }
-
- buf_scr.fd_addr = NULL;
- buf_scr_compat = NULL;
-
-#ifdef WITH_8BPP_SUPPORT
- free(buf_std.fd_addr);
- buf_std.fd_addr = NULL;
-#endif
-}
-
-
-inline static uint32_t ablend(uint32_t pixel, uint32_t scrpixel)
-{
- int opacity = pixel & 0xFF;
- int transp = 0x100 - opacity;
- uint32_t rb, g;
- pixel >>= 8;
- scrpixel >>= 8;
- rb = ((pixel & 0xFF00FF) * opacity +
- (scrpixel & 0xFF00FF) * transp) >> 8;
- g = ((pixel & 0x00FF00) * opacity +
- (scrpixel & 0x00FF00) * transp) >> 8;
-
- return ((rb & 0xFF00FF) | (g & 0xFF00)) << 8;
-}
-
-/*
- Alpha blends an image, using one pixel as the background.
- The bitmap receives the result.
-*/
-inline static bool ablend_pixel(struct bitmap * img, uint32_t bg, GRECT * clip)
-{
- uint32_t * imgrow;
- int img_x, img_y, img_stride;
-
- img_stride= atari_bitmap_get_rowstride(img);
-
- for( img_y = 0; img_y < clip->g_h; img_y++) {
- imgrow = (uint32_t *)(img->pixdata + (img_stride * img_y));
- for( img_x = 0; img_x < clip->g_w; img_x++ ) {
- imgrow[img_x] = ablend( imgrow[img_x], bg );
- }
- }
- return(true);
-}
-
-
-/*
- Aplha blends the foreground image (img) onto the
- background images (bg). The background receives the blended
- image pixels.
-*/
-inline static bool ablend_bitmap( struct bitmap * img, struct bitmap * bg,
- GRECT * img_clip, GRECT * bg_clip )
-{
- uint32_t * imgrow;
- uint32_t * screenrow;
- int img_x, img_y, bg_x, bg_y, img_stride, bg_stride;
-
- bg_clip = bg_clip;
- img_stride = atari_bitmap_get_rowstride(img);
- bg_stride = atari_bitmap_get_rowstride(bg);
-
- for( img_y = img_clip->g_y, bg_y = 0; bg_y < img_clip->g_h; bg_y++, img_y++) {
- imgrow = (uint32_t *)(img->pixdata + (img_stride * img_y));
- screenrow = (uint32_t *)(bg->pixdata + (bg_stride * bg_y));
- for( img_x = img_clip->g_x, bg_x = 0; bg_x < img_clip->g_w; bg_x++, img_x++ ) {
-
- // when the pixel isn't fully transparent,...:
- if( (imgrow[img_x] & 0x0FF) != 0 ){
- screenrow[bg_x] = ablend( imgrow[img_x], screenrow[bg_x]);
- }
-
- // FIXME, maybe this loop would be faster??:
- // ---
- //if( (imgrow[img_x] & 0x0FF) != 0xFF ){
- // imgrow[bg_x] = ablend( imgrow[img_x], screenrow[bg_x]);
- //}
-
- // or maybe even this???
- // ---
- //if( (imgrow[img_x] & 0x0FF) == 0xFF ){
- // screenrow[bg_x] = imgrow[img_x];
- //} else if( (imgrow[img_x] & 0x0FF) != 0x00 ) {
- // screenrow[bg_x] = ablend( imgrow[img_x], screenrow[bg_x]);
- //}
- }
- }
- return(false);
-}
-
-
-#ifdef WITH_8BPP_SUPPORT
-/**
- * Convert an bitmap to an 8 bit device dependant MFDB
- * \param img the bitmap (only tested with 32bit bitmaps)
- * \param x screen coord of the background
- * \param y screen coord of the background
- * \param clip the region of the image that get's converted
- * \param bg the background used for cheap transparency
- * \param flags
- * \param out receives the converted bitmap (still owned by the plot API)
- *
- */
-static bool bitmap_convert_8(struct bitmap * img, int x,
- int y, GRECT * clip, uint32_t bg, uint32_t flags,
- MFDB *out )
-{
- MFDB native;
- MFDB stdform;
- int dststride; /* stride of dest. image */
- int dstsize; /* size of dest. in byte */
- int bw, bh;
- struct bitmap * scrbuf = NULL;
- bool cache = ( flags & BITMAPF_BUFFER_NATIVE );
- bool opaque = atari_bitmap_get_opaque( img );
-
- if( opaque == false ){
- if( ( (atari_plot_flags & PLOT_FLAG_TRANS) == 0)
- &&
- ((flags & (BITMAPF_MONOGLYPH|BITMAPF_BUFFER_NATIVE))==0) ){
- opaque = true;
- }
- }
-
- assert( clip->g_h > 0 );
- assert( clip->g_w > 0 );
-
- bw = atari_bitmap_get_width( img );
- bh = atari_bitmap_get_height( img );
-
- // The converted bitmap can be saved for subsequent blits, when
- // the bitmap is fully opaque
-
- if( (opaque == true) || (flags & BITMAPF_BUFFER_NATIVE ) ){
- if( img->converted == true ){
- *out = img->native;
- return( 0 );
- }
- if( ( flags & BITMAPF_MONOGLYPH ) == 0 ){
- cache = true;
- }
- }
- if( ( flags & BITMAPF_MONOGLYPH ) != 0 ){
- assert(cache == false);
- }
-
- /* (re)allocate buffer for out image: */
- /* altough the buffer is named "buf_packed" on 8bit systems */
- /* it's not... */
- if( cache == false ){
- // the size of the output will match the size of the clipping:
- dststride = MFDB_STRIDE( clip->g_w );
- dstsize = ( ((dststride >> 3) * clip->g_h) * atari_plot_bpp_virt);
- if( dstsize > size_buf_packed) {
- int blocks = (dstsize / (CONV_BLOCK_SIZE-1))+1;
- if( buf_packed == NULL )
- buf_packed =(void*)malloc( blocks * CONV_BLOCK_SIZE);
- else
- buf_packed =(void*)realloc(buf_packed,blocks * CONV_BLOCK_SIZE);
- assert( buf_packed );
- if( buf_packed == NULL ) {
- return( 0-ERR_NO_MEM );
- }
- size_buf_packed = blocks * CONV_BLOCK_SIZE;
- }
- native.fd_addr = buf_packed;
- }
- else {
- // the output image will be completly saved, so size of the output
- // image will match the input image size.
- dststride = MFDB_STRIDE( bw );
- dstsize = ( ((dststride >> 3) * bh) * atari_plot_bpp_virt);
- assert( out->fd_addr == NULL );
- native.fd_addr = (void*)malloc( dstsize );
- if (native.fd_addr == NULL){
- if (scrbuf != NULL)
- atari_bitmap_destroy(scrbuf);
- return( 0-ERR_NO_MEM );
- }
- }
-
-
- /*
- on 8 bit systems we must convert the TC (ABGR) image
- to vdi standard format. ( only tested for 256 colors )
- and then convert it to native format with v_trnfm()
- */
- // realloc mem for stdform
- if( opaque == false ){
- // point image to snapshot buffer, otherwise allocate mem
- MFDB * bg = snapshot_create_std_mfdb(x, y, clip->g_w, clip->g_h);
- stdform.fd_addr = bg->fd_addr;
- bh = clip->g_h;
- } else {
- if( dstsize > size_buf_planar) {
- int blocks = (dstsize / (CONV_BLOCK_SIZE-1))+1;
- if( buf_planar == NULL )
- buf_planar =(void*)malloc( blocks * CONV_BLOCK_SIZE );
- else
- buf_planar =(void*)realloc(buf_planar, blocks * CONV_BLOCK_SIZE);
- assert(buf_planar);
- if( buf_planar == NULL ) {
- return( 0-ERR_NO_MEM );
- }
- size_buf_planar = blocks * CONV_BLOCK_SIZE;
- }
- stdform.fd_addr = buf_planar;
- }
- stdform.fd_w = dststride;
- stdform.fd_h = bh;
- stdform.fd_wdwidth = dststride >> 4;
- stdform.fd_stand = 1;
- stdform.fd_nplanes = (short)atari_plot_bpp_virt;
- stdform.fd_r1 = stdform.fd_r2 = stdform.fd_r3 = 0;
-
- int img_stride = atari_bitmap_get_rowstride(img);
- uint32_t prev_pixel = 0x12345678; //TODO: check for collision in first pixel
- unsigned long col = 0;
- unsigned char val = 0;
- uint32_t * row;
- uint32_t pixel;
- int wdplanesize = stdform.fd_wdwidth*stdform.fd_h;
-
- if( opaque == false ){
- // apply transparency and convert to vdi std format
- unsigned long bgcol = 0;
- unsigned char prev_col = 0;
- for( y=0; y<clip->g_h; y++ ){
- row = (uint32_t *)(img->pixdata + (img_stride * (y+clip->g_y)));
- for( x=0; x<clip->g_w; x++ ){
- pixel = row[x+clip->g_x];
- if( (pixel&0xFF) == 0 ){
- continue;
- }
- if( (pixel&0xFF) < 0xF0 ){
- col = get_stdpx( &stdform, wdplanesize,x,y );
- if( (col != prev_col) || (y == 0) )
- bgcol = (((rgb_lookup[col][2] << 16) | (rgb_lookup[col][1] << 8) | (rgb_lookup[col][0]))<<8);
- if( prev_col != col || prev_pixel != pixel ){
- prev_col = col;
- pixel = ablend( pixel, bgcol );
- prev_pixel = pixel;
- pixel = pixel >> 8;
- /* convert pixel value to vdi color index: */
- col = ( ((pixel&0xFF)<<16)
- | (pixel&0xFF00)
- | ((pixel&0xFF0000)>>16) );
- val = RGB_TO_VDI( col );
- }
- set_stdpx( &stdform, wdplanesize, x, y, val );
- } else {
- if( pixel != prev_pixel ){
- /* convert pixel value to vdi color index: */
- pixel = pixel >> 8;
- col = ( ((pixel&0xFF)<<16)
- | (pixel&0xFF00)
- | ((pixel&0xFF0000)>>16) );
- val = RGB_TO_VDI( col );
- prev_pixel = pixel;
- }
- set_stdpx( &stdform, wdplanesize, x, y, val );
- }
- }
- }
- // adjust output position:
- clip->g_x = 0;
- clip->g_y = 0;
- } else {
- // convert the whole image data to vdi std format.
- for( y=0; y < bh; y++ ){
- row = (uint32_t *)(img->pixdata + (img_stride * y));
- for( x=0; x < bw; x++ ){
- pixel = row[x];
- if( pixel != prev_pixel ){
- /* convert pixel value to vdi color index: */
- pixel = pixel >> 8;
- col = ( ((pixel&0xFF)<<16)
- | (pixel&0xFF00)
- | ((pixel&0xFF0000)>>16) );
- val = RGB_TO_VDI( col );
- prev_pixel = pixel;
- }
- set_stdpx( &stdform, wdplanesize, x, y, val );
- }
- }
- }
-
- // convert into native format:
- native.fd_w = stdform.fd_w;
- native.fd_h = stdform.fd_h;
- native.fd_wdwidth = stdform.fd_wdwidth;
- native.fd_stand = 0;
- native.fd_nplanes = (short)atari_plot_bpp_virt;
- native.fd_r1 = native.fd_r2 = native.fd_r3 = 0;
- vr_trnfm(atari_plot_vdi_handle, &stdform, &native );
- *out = native;
- if( cache == true ){
- img->native = native;
- img->converted = true;
- }
-
- return(0);
-}
-#endif
-
-
-/*
-*
-* Convert bitmap to the native screen format
-* img: the bitmap
-* x: coordinate where the bitmap REGION (described in clip)
-* shall be drawn (screen coords)
-* y: coordinate where the bitmap REGION (described in clip)
-* shall be drawn (screen coords)
-* clip: which area of the bitmap shall be drawn
-* bg: background color
-* flags: blit flags
-* out: the result MFDB
-*/
-static bool bitmap_convert_tc(struct bitmap * img, int x, int y,
- GRECT * clip, uint32_t bg, uint32_t flags, MFDB *out )
-{
- int dststride; /* stride of dest. image */
- int dstsize; /* size of dest. in byte */
- int err;
- int bw, bh;
- struct bitmap * scrbuf = NULL;
- struct bitmap * source = NULL;
- bool cache = ( flags & BITMAPF_BUFFER_NATIVE );
- bool opaque = atari_bitmap_get_opaque( img );
-
- if( opaque == false ){
- if( ( (atari_plot_flags & PLOT_FLAG_TRANS) == 0)
- &&
- ((flags & (BITMAPF_MONOGLYPH|BITMAPF_BUFFER_NATIVE))==0) ){
- opaque = true;
- }
- }
-
-
- assert( clip->g_h > 0 );
- assert( clip->g_w > 0 );
-
- bw = atari_bitmap_get_width( img );
- bh = atari_bitmap_get_height( img );
-
- // The converted bitmap can be saved for subsequent blits, WHEN:
- // A.) the bitmap is fully opaque OR
- // B.) the bitmap is completly inside the window
- // the latter one is important for alpha blits,
- // because we must get the window background to apply transparency
- // If the image is not completly within the window,
- // we can't get the whole background for the image.
- // this only works if the image isn't used at several different places.
- // In fact in case of alpha bitmap caching it is only used for the
- // toolbar buttons right now.
-
- if( (opaque == true) || (flags & BITMAPF_BUFFER_NATIVE ) ){
- if( img->converted == true ){
- *out = img->native;
- return( 0 );
- }
- if( ( flags & BITMAPF_MONOGLYPH ) == 0 ){
- cache = true;
- }
- }
-
- /* rem. if eddi xy is installed, we could directly access the screen! */
- /* apply transparency to the image: */
- if (( opaque == false )) {
- /* copy the screen to an temp buffer: */
- if ((flags & BITMAPF_BUFFER_NATIVE) == 0) {
- scrbuf = snapshot_create(x, y, clip->g_w, clip->g_h);
- if( scrbuf != NULL ) {
-
- assert( clip->g_w <= bw );
- assert( clip->g_h <= bh );
-
- // copy blended pixels to the screen buffer:
- ablend_bitmap( img, scrbuf, clip, NULL );
- /* adjust size which gets converted: */
- bw = clip->g_w;
- bh = clip->g_h;
- /* adjust output position: */
- clip->g_x = 0;
- clip->g_y = 0;
- /* set the source of conversion: */
- source = scrbuf;
- }
- } else {
- /*
- The whole bitmap can be transformed to an mfdb
- (and get's cached)
- */
- GRECT region = { 0, 0, bw, bh };
- ablend_pixel( img, bg, &region );
- source = img;
- }
- } else {
- source = img;
- }
- /* (re)allocate buffer for converted image: */
- dststride = MFDB_STRIDE(bw);
- dstsize = ( ((dststride >> 3) * bh) * atari_plot_bpp_virt );
- if (cache == false) {
- if (dstsize > size_buf_packed) {
- int blocks = (dstsize / (CONV_BLOCK_SIZE-1))+1;
- if( buf_packed == NULL )
- buf_packed =(void*)malloc( blocks * CONV_BLOCK_SIZE );
- else
- buf_packed =(void*)realloc(buf_packed,
- blocks * CONV_BLOCK_SIZE);
- assert( buf_packed );
- if( buf_packed == NULL ) {
- if( scrbuf != NULL )
- atari_bitmap_destroy( scrbuf );
- return( 0-ERR_NO_MEM );
- }
- size_buf_packed = blocks * CONV_BLOCK_SIZE;
- }
- out->fd_addr = buf_packed;
- } else {
- assert( out->fd_addr == NULL );
- out->fd_addr = (void*)malloc( dstsize );
- if( out->fd_addr == NULL ){
- if( scrbuf != NULL )
- atari_bitmap_destroy( scrbuf );
- return( 0-ERR_NO_MEM );
- }
- }
-
- out->fd_w = dststride;
- out->fd_h = bh;
- out->fd_wdwidth = dststride >> 4;
- out->fd_stand = 0;
- out->fd_nplanes = (short)atari_plot_bpp_virt;
- out->fd_r1 = out->fd_r2 = out->fd_r3 = 0;
-
- err = Hermes_ConverterRequest(
- hermes_cnv_h,
- &nsfmt,
- &vfmt
- );
- assert( err != 0 );
-
- // FIXME: here we can use the same optimization which is used for
- // the snapshot creation.
-
- /* convert image to virtual format: */
- err = Hermes_ConverterCopy( hermes_cnv_h,
- source->pixdata,
- 0, /* x src coord of top left in pixel coords */
- 0, /* y src coord of top left in pixel coords */
- bw, bh,
- source->rowstride, /* stride as bytes */
- out->fd_addr,
- 0, /* x dst coord of top left in pixel coords */
- 0, /* y dst coord of top left in pixel coords */
- bw, bh,
- (dststride >> 3) * atari_plot_bpp_virt /* stride as bytes */
- );
- assert( err != 0 );
-
- if( cache == true ){
- img->native = *out;
- img->converted = true;
- }
- return( 0 );
-
-}
-
- inline static void convert_bitmap_done(void)
-{
- if (size_buf_packed > CONV_KEEP_LIMIT) {
- /* free the mem if it was an large allocation ... */
- buf_packed = realloc(buf_packed, CONV_KEEP_LIMIT);
- size_buf_packed = CONV_KEEP_LIMIT;
- }
-}
-
-
-bool plot_blit_bitmap(struct bitmap * bmp, int x, int y,
- unsigned long bg, unsigned long flags )
-{
- MFDB src_mf;
- MFDB scrmf;
- short pxy[8];
- GRECT off, clip, vis;
- int screen_x, screen_y;
-
- src_mf.fd_addr = NULL;
- scrmf.fd_addr = NULL;
-
- off.g_x = x;
- off.g_y = y;
- off.g_h = bmp->height;
- off.g_w = bmp->width;
-
- // clip plotter clip rectangle:
- clip.g_x = view.clipping.x0;
- clip.g_y = view.clipping.y0;
- clip.g_w = view.clipping.x1 - view.clipping.x0;
- clip.g_h = view.clipping.y1 - view.clipping.y0;
-
- if( !rc_intersect( &clip, &off) ) {
- return(true);
- }
-
- // clip the visible rectangle of the plot area
- // this is the area of the plotter which falls into
- // screen region:
- plot_get_visible_grect(&vis);
- if( !rc_intersect( &vis, &off) ) {
- return(true);
- }
-
- screen_x = view.x + off.g_x;
- screen_y = view.y + off.g_y;
-
- // convert the clipping relative to bitmap:
- off.g_x = off.g_x - x;
- off.g_y = off.g_y - y;
- assert( (off.g_x >= 0) && (off.g_y >= 0) );
-
- /* Convert the Bitmap to native screen format - ready for output. */
- /* This includes blending transparent pixels: */
- if (bitmap_convert(bmp, screen_x, screen_y, &off, bg, flags, &src_mf)
- != 0 ) {
- return(true);
- }
-
- // setup the src region:
- pxy[0] = off.g_x;
- pxy[1] = off.g_y;
- pxy[2] = off.g_x + off.g_w-1;
- pxy[3] = off.g_y + off.g_h-1;
-
- // setup the target region:
- pxy[4] = screen_x;
- pxy[5] = screen_y;
- pxy[6] = screen_x + off.g_w-1;
- pxy[7] = screen_y + off.g_h-1;
-
- vro_cpyfm(atari_plot_vdi_handle, S_ONLY, (short*)&pxy, &src_mf, &scrmf);
- convert_bitmap_done();
- snapshot_suspend();
- return(true);
-}
-
-bool plot_blit_mfdb(GRECT * loc, MFDB * insrc, short fgcolor,
- uint32_t flags)
-{
- MFDB screen;
-// MFDB tran;
- MFDB * src;
- short pxy[8];
- short c[2] = {fgcolor, 0};
- GRECT off;
-
- plot_get_clip_grect(&off);
- if( rc_intersect(loc, &off) == 0 ){
- return( 1 );
- }
-
- init_mfdb( 0, loc->g_w, loc->g_h, 0, &screen );
-//
-// if( insrc->fd_stand){
-// printf("st\n");
-// int size = init_mfdb( insrc->fd_nplanes, loc->g_w, loc->g_h,
-// MFDB_FLAG_NOALLOC,
-// &tran
-// );
-// if( size_buf_scr == 0 ){
-// buf_scr.fd_addr = malloc( size );
-// size_buf_scr = size;
-// } else {
-// if( size > size_buf_scr ) {
-// buf_scr.fd_addr = realloc(
-// buf_scr.fd_addr, size
-// );
-// size_buf_scr = size;
-// }
-// }
-// tran.fd_addr = buf_scr.fd_addr;
-// vr_trnfm(atari_plot_vdi_handle, insrc, &tran );
-// src = &tran;
-// } else {
- src = insrc;
-// }
-
- pxy[0] = off.g_x - loc->g_x;
- pxy[1] = off.g_y - loc->g_y;
- pxy[2] = pxy[0] + off.g_w - 1;
- pxy[3] = pxy[1] + off.g_h - 1;
- pxy[4] = view.x + off.g_x;
- pxy[5] = view.y + off.g_y;
- pxy[6] = pxy[4] + off.g_w-1;
- pxy[7] = pxy[5] + off.g_h-1;
-
-
- if( flags & PLOT_FLAG_TRANS && src->fd_nplanes == 1){
- vrt_cpyfm(atari_plot_vdi_handle, MD_REPLACE/*MD_TRANS*/, (short*)pxy, src, &screen, (short*)&c);
- } else {
- /* this method only plots transparent bitmaps, right now... */
- }
- return( 1 );
-}
-
-/*
-Init screen and font driver objects.
-Returns non-zero value > -1 when the objects could be succesfully created.
-Returns value < 0 to indicate an error
-*/
-
-int plot_init(char * fdrvrname)
-{
-
- GRECT loc_pos= {0,0,360,400};
- int err=0;
-
- if( nsoption_int(atari_dither) == 1)
- atari_plot_flags |= PLOT_FLAG_DITHER;
- if( nsoption_int(atari_transparency) == 1 )
- atari_plot_flags |= PLOT_FLAG_TRANS;
- if( nsoption_int(atari_font_monochrom) == 1 )
- atari_font_flags |= FONTPLOT_FLAG_MONOGLYPH;
-
- if(atari_plot_vdi_handle == -1) {
-
- short dummy;
- short work_in[12] = {Getrez()+2,1,1,1,1,1,1,1,1,1,2,1};
- short work_out[57];
- atari_plot_vdi_handle=graf_handle(&dummy, &dummy, &dummy, &dummy);
- v_opnvwk(work_in, &atari_plot_vdi_handle, work_out);
- LOG("Plot VDI handle: %d", atari_plot_vdi_handle);
- }
- read_vdi_sysinfo(atari_plot_vdi_handle, &vdi_sysinfo);
- if(verbose_log) {
- dump_vdi_info(atari_plot_vdi_handle) ;
- dump_font_drivers();
- }
-
- fplotter = new_font_plotter(atari_plot_vdi_handle, fdrvrname,
- atari_font_flags, &err);
- if(err) {
- const char * desc = plot_err_str(err);
- die(("Unable to load font plotter %s -> %s", fdrvrname, desc ));
- }
-
- memset(&view, 0, sizeof(struct s_view));
- atari_plot_bpp_virt = vdi_sysinfo.scr_bpp;
- view.x = loc_pos.g_x;
- view.y = loc_pos.g_y;
- view.w = loc_pos.g_w;
- view.h = loc_pos.g_h;
- size_buf_packed = 0;
- size_buf_planar = 0;
- buf_packed = NULL;
- buf_planar = NULL;
- if( vdi_sysinfo.vdiformat == VDI_FORMAT_PACK ) {
- atari_plot_bpp_virt = vdi_sysinfo.scr_bpp;
- } else {
- atari_plot_bpp_virt = 8;
- }
-
- plot_set_scale(1.0);
- update_visible_rect();
-
- struct rect clip;
- clip.x0 = 0;
- clip.y0 = 0;
- clip.x1 = view.w;
- clip.y1 = view.h;
- plot_clip(&clip);
-
- assert(Hermes_Init());
-
-#ifdef WITH_8BPP_SUPPORT
- bitmap_convert = (vdi_sysinfo.scr_bpp > 8) ? bitmap_convert_tc : bitmap_convert_8;
-
- /* Setup color lookup tables and palette */
- unsigned char rgbcol[4];
- if( vdi_sysinfo.scr_bpp <= 8 ){
- unsigned char graytone=0;
- int i;
- for( i=0; i<=255; i++ ) {
-
- // get the current color and save it for restore:
- vq_color(atari_plot_vdi_handle, i, 1, (unsigned short*)&sys_pal[i][0] );
- if( i<OFFSET_WEB_PAL ) {
- pal[i][0] = sys_pal[i][0];
- pal[i][1] = sys_pal[i][1];
- pal[i][2] = sys_pal[i][2];
- } else if( vdi_sysinfo.scr_bpp >= 8 ) {
- if ( i < OFFSET_CUST_PAL ){
- pal[i][0] = vdi_web_pal[i-OFFSET_WEB_PAL][0];
- pal[i][1] = vdi_web_pal[i-OFFSET_WEB_PAL][1];
- pal[i][2] = vdi_web_pal[i-OFFSET_WEB_PAL][2];
- //set the new palette color to websafe value:
- vs_color(atari_plot_vdi_handle, i, &pal[i][0]);
- }
- if( i >= OFFSET_CUST_PAL && i<OFFSET_CUST_PAL+16 ) {
- /* here we define 20 additional gray colors... */
- rgbcol[1] = rgbcol[2] = rgbcol[3] = ((graytone&0x0F) << 4);
- rgb_to_vdi1000( &rgbcol[0], &pal[i][0] );
- vs_color(atari_plot_vdi_handle, i, &pal[i][0]);
- graytone++;
- }
-
- }
- vdi1000_to_rgb( &pal[i][0], &rgb_lookup[i][0] );
- }
-
- } else {
- /* no need to change the palette - its application specific */
- }
-#else
- bitmap_convert = bitmap_convert_tc;
-#endif
-
- /* Setup Hermes conversion handles */
- unsigned long hermesflags = (atari_plot_flags & PLOT_FLAG_DITHER) ? HERMES_CONVERT_DITHER : 0;
- hermes_cnv_h = Hermes_ConverterInstance(hermesflags);
- assert( hermes_cnv_h );
- hermes_res_h = Hermes_ConverterInstance(hermesflags);
- assert( hermes_res_h );
-
- /* set up the src & dst format: */
- /* netsurf uses RGBA ... */
- nsfmt.a = 0xFFUL;
- nsfmt.b = 0x0FF00UL;
- nsfmt.g = 0x0FF0000UL;
- nsfmt.r = 0x0FF000000UL;
- nsfmt.bits = 32;
- nsfmt.indexed = false;
- nsfmt.has_colorkey = false;
-
- vfmt.r = vdi_sysinfo.mask_r;
- vfmt.g = vdi_sysinfo.mask_g;
- vfmt.b = vdi_sysinfo.mask_b;
- vfmt.a = vdi_sysinfo.mask_a;
- vfmt.bits = atari_plot_bpp_virt;
- vfmt.indexed = (atari_plot_bpp_virt <= 8) ? 1 : 0;
- vfmt.has_colorkey = 0;
-
- return( err );
-}
-
-int plot_finalise( void )
-{
-
- delete_font_plotter(fplotter);
-
-#ifdef WITH_8BPP_SUPPORT
- if (vfmt.indexed) {
- int i;
- for (i=OFFSET_WEB_PAL; i<OFFSET_CUST_PAL+16; i++) {
- vs_color(atari_plot_vdi_handle, i, &sys_pal[i][0]);
- }
- }
-#endif
-
- /* close Hermes stuff: */
- Hermes_ConverterReturn(hermes_cnv_h);
- Hermes_Done();
-
- /* free up temporary buffers */
- free(buf_packed );
- free(buf_planar);
- snapshot_destroy();
-
- return 0;
-}
-
-bool plot_lock(void)
-{
- if ((atari_plot_flags & PLOT_FLAG_LOCKED) != 0)
- return(true);
- if( !wind_update(BEG_UPDATE|0x100) )
- return(false);
- if( !wind_update(BEG_MCTRL|0x100) ){
- wind_update(END_UPDATE);
- return(false);
- }
- atari_plot_flags |= PLOT_FLAG_LOCKED;
- graf_mouse(M_OFF, NULL);
- return(true);
-}
-
-bool plot_unlock(void)
-{
- if( (atari_plot_flags & PLOT_FLAG_LOCKED) == 0 )
- return(true);
- wind_update(END_MCTRL);
- wind_update(END_UPDATE);
- graf_mouse(M_ON, NULL);
- vs_clip_off(atari_plot_vdi_handle);
- atari_plot_flags &= ~PLOT_FLAG_LOCKED;
- return(false);
-}
-
-bool plot_rectangle(int x0, int y0, int x1, int y1,
- const plot_style_t *pstyle )
-{
- short pxy[4];
- GRECT r, rclip, sclip;
- int sw = pstyle->stroke_width;
- uint32_t lt;
-
- /* current canvas clip: */
- rclip.g_x = view.clipping.x0;
- rclip.g_y = view.clipping.y0;
- rclip.g_w = view.clipping.x1 - view.clipping.x0;
- rclip.g_h = view.clipping.y1 - view.clipping.y0;
-
- /* physical clipping: */
- sclip.g_x = rclip.g_x;
- sclip.g_y = rclip.g_y;
- sclip.g_w = view.vis_w;
- sclip.g_h = view.vis_h;
-
- rc_intersect(&sclip, &rclip);
- r.g_x = x0;
- r.g_y = y0;
- r.g_w = x1 - x0;
- r.g_h = y1 - y0;
-
- if (!rc_intersect( &rclip, &r )) {
- return(true);
- }
- if (pstyle->stroke_type != PLOT_OP_TYPE_NONE) {
- /*
- manually draw the line, because we do not need vdi clipping
- for vertical / horizontal line draws.
- */
- if( sw == 0)
- sw = 1;
-
- NSLT2VDI(lt, pstyle);
- vsl_type(atari_plot_vdi_handle, (lt&0x0F));
- /*
- if the line style is not available within VDI system,
- define own style:
- */
- if( (lt&0x0F) == 7 ){
- vsl_udsty(atari_plot_vdi_handle, ((lt&0xFFFF00) >> 8));
- }
- vsl_width(atari_plot_vdi_handle, (short)sw );
- vsl_rgbcolor(atari_plot_vdi_handle, pstyle->stroke_colour);
- /* top border: */
- if( r.g_y == y0){
- pxy[0] = view.x + r.g_x;
- pxy[1] = view.y + r.g_y ;
- pxy[2] = view.x + r.g_x + r.g_w;
- pxy[3] = view.y + r.g_y;
- v_pline(atari_plot_vdi_handle, 2, (short *)&pxy);
- }
-
- /* right border: */
- if( r.g_x + r.g_w == x1 ){
- pxy[0] = view.x + r.g_x + r.g_w;
- pxy[1] = view.y + r.g_y;
- pxy[2] = view.x + r.g_x + r.g_w;
- pxy[3] = view.y + r.g_y + r.g_h;
- v_pline(atari_plot_vdi_handle, 2, (short *)&pxy);
- }
-
- /* bottom border: */
- if( r.g_y+r.g_h == y1 ){
- pxy[0] = view.x + r.g_x;
- pxy[1] = view.y + r.g_y+r.g_h;
- pxy[2] = view.x + r.g_x+r.g_w;
- pxy[3] = view.y + r.g_y+r.g_h;
- v_pline(atari_plot_vdi_handle, 2, (short *)&pxy);
- }
-
- /* left border: */
- if( r.g_x == x0 ){
- pxy[0] = view.x + r.g_x;
- pxy[1] = view.y + r.g_y;
- pxy[2] = view.x + r.g_x;
- pxy[3] = view.y + r.g_y + r.g_h;
- v_pline(atari_plot_vdi_handle, 2, (short *)&pxy);
- }
- }
-
- if( pstyle->fill_type != PLOT_OP_TYPE_NONE ){
- short stroke_width = (short)(pstyle->stroke_type != PLOT_OP_TYPE_NONE) ?
- pstyle->stroke_width : 0;
-
- vsf_rgbcolor(atari_plot_vdi_handle, pstyle->fill_colour);
- vsf_perimeter(atari_plot_vdi_handle, 0);
- vsf_interior(atari_plot_vdi_handle, FIS_SOLID);
-
-
- pxy[0] = view.x + r.g_x + stroke_width;
- pxy[1] = view.y + r.g_y + stroke_width;
- pxy[2] = view.x + r.g_x + r.g_w -1 - stroke_width;
- pxy[3] = view.y + r.g_y + r.g_h -1 - stroke_width;
-
- vsf_style(atari_plot_vdi_handle, 1);
- v_bar(atari_plot_vdi_handle, (short*)&pxy);
- }
- return (true);
-}
-
-bool plot_line(int x0, int y0, int x1, int y1,
- const plot_style_t *pstyle )
-{
- short pxy[4];
- uint32_t lt;
- int sw = pstyle->stroke_width;
-
- if((x0 < 0 && x1 < 0) || (y0 < 0 && y1 < 0)){
- return(true);
- }
-
- pxy[0] = view.x + MAX(0,x0);
- pxy[1] = view.y + MAX(0,y0);
- pxy[2] = view.x + MAX(0,x1);
- pxy[3] = view.y + MAX(0,y1);
-
- if((y0 > view.h-1) && (y1 > view.h-1))
- return(true);
-
- //printf("view: %d,%d,%d,%d\n", view.x, view.y, view.w, view.h);
- //printf("line: %d,%d,%d,%d\n", x0, y0, x1, y1);
-
-
- //plot_vdi_clip(true);
- if( sw == 0)
- sw = 1;
- NSLT2VDI(lt, pstyle)
- vsl_type(atari_plot_vdi_handle, (lt&0x0F));
- /* if the line style is not available within VDI system,define own style: */
- if( (lt&0x0F) == 7 ){
- vsl_udsty(atari_plot_vdi_handle, ((lt&0xFFFF00) >> 8));
- }
- vsl_width(atari_plot_vdi_handle, (short)sw);
- vsl_rgbcolor(atari_plot_vdi_handle, pstyle->stroke_colour);
- v_pline(atari_plot_vdi_handle, 2, (short *)&pxy );
- //plot_vdi_clip(false);
- return (true);
-}
-
-static bool plot_polygon(const int *p, unsigned int n,
- const plot_style_t *pstyle)
-{
- short pxy[n*2];
- unsigned int i=0;
- if (vdi_sysinfo.maxpolycoords > 0)
- assert( (signed int)n < vdi_sysinfo.maxpolycoords);
-
- vsf_interior(atari_plot_vdi_handle, FIS_SOLID);
- vsf_style(atari_plot_vdi_handle, 1);
- for (i = 0; i<n*2; i=i+2) {
- pxy[i] = (short)view.x+p[i];
- pxy[i+1] = (short)view.y+p[i+1];
- }
- if (pstyle->fill_type == PLOT_OP_TYPE_SOLID) {
- vsf_rgbcolor(atari_plot_vdi_handle, pstyle->fill_colour);
- v_fillarea(atari_plot_vdi_handle, n, (short*)&pxy);
- } else {
- pxy[n*2]=pxy[0];
- pxy[n*2+1]=pxy[1];
- vsl_rgbcolor(atari_plot_vdi_handle, pstyle->stroke_colour);
- v_pline(atari_plot_vdi_handle, n+1, (short *)&pxy);
- }
-
- return ( true );
-}
-
-/***
- * Set plot origin and canvas size
- * \param x the x origin
- * \param y the y origin
- * \param w the width of the plot area
- * \param h the height of the plot area
- */
-bool plot_set_dimensions(int x, int y, int w, int h)
-{
- bool doupdate = false;
- struct rect newclip = {0, 0, w, h};
- GRECT absclip = {x, y, w, h};
-
- if (!(w == view.w && h == view.h)) {
- view.w = (short)w;
- view.h = (short)h;
- doupdate = true;
- }
- if (!(x == view.x && y == view.y)) {
- view.x = (short)x;
- view.y = (short)y;
- doupdate = true;
- }
- if (doupdate==true)
- update_visible_rect();
-
- //dbg_rect("plot_set_dimensions", &newclip);
-
- plot_set_abs_clipping(&absclip);
- plot_clip(&newclip);
- return(true);
-}
-
-/***
- * Get current canvas size
- * \param dst the GRECT * which receives the canvas size
- *
- */
-bool plot_get_dimensions(GRECT *dst)
-{
- dst->g_x = view.x;
- dst->g_y = view.y;
- dst->g_w = view.w;
- dst->g_h = view.h;
- return(true);
-}
-
-/**
- * set scale of plotter.
- * \param scale the new scale value
- * \return the old scale value
- */
-
-float plot_set_scale(float scale)
-{
- float ret = view.scale;
-
- view.scale = scale;
-
- return(ret);
-}
-
-float plot_get_scale(void)
-{
- return(view.scale);
-}
-
-
-/**
- *
- * Subsequent calls to plot_clip will be clipped by the absolute clip.
- * \param area the maximum clipping rectangle (absolute screen coords)
- *
-*/
-void plot_set_abs_clipping(const GRECT *area)
-{
- GRECT canvas;
-
- plot_get_dimensions(&canvas);
-
- if(!rc_intersect(area, &canvas)){
- view.abs_clipping.x0 = 0;
- view.abs_clipping.x1 = 0;
- view.abs_clipping.y0 = 0;
- view.abs_clipping.y1 = 0;
- }
- else {
- view.abs_clipping.x0 = area->g_x;
- view.abs_clipping.x1 = area->g_x + area->g_w;
- view.abs_clipping.y0 = area->g_y;
- view.abs_clipping.y1 = area->g_y + area->g_h;
- }
-}
-
-
-/***
- * Get the maximum clip extent, in absolute screen coords
- * \param dst the structure that receives the absolute clipping
- */
-void plot_get_abs_clipping(struct rect *dst)
-{
- *dst = view.abs_clipping;
-}
-
-
-/***
- * Get the maximum clip extent, in absolute screen coords
- * \param dst the structure that receives the absolute clipping
- */
-void plot_get_abs_clipping_grect(GRECT *dst)
-{
- dst->g_x = view.abs_clipping.x0;
- dst->g_w = view.abs_clipping.x1 - view.abs_clipping.x0;
- dst->g_y = view.abs_clipping.y0;
- dst->g_h = view.abs_clipping.y1 - view.abs_clipping.y0;
-}
-
-bool plot_clip(const struct rect *clip)
-{
- GRECT canvas, screen, gclip, maxclip;
- short pxy[4];
-
- screen.g_x = 0;
- screen.g_y = 0;
- screen.g_w = vdi_sysinfo.scr_w;
- screen.g_h = vdi_sysinfo.scr_h;
-
- plot_get_dimensions(&canvas);
-
- view.clipping.y0 = clip->y0;
- view.clipping.y1 = clip->y1;
- view.clipping.x0 = clip->x0;
- view.clipping.x1 = clip->x1;
-
- plot_get_clip_grect(&gclip);
-
- gclip.g_x += canvas.g_x;
- gclip.g_y += canvas.g_y;
-
- rc_intersect(&canvas, &gclip);
-
- if(gclip.g_h < 0){
- gclip.g_h = 0;
- }
-
- if (!rc_intersect(&screen, &gclip)) {
- //dbg_rect("cliprect: ", &view.clipping);
- //dbg_grect("screen: ", &canvas);
- //dbg_grect("canvas clipped: ", &gclip);
- //assert(1 == 0);
- }
-
- // When setting VDI clipping, obey to maximum cliping rectangle:
- plot_get_abs_clipping_grect(&maxclip);
- rc_intersect(&maxclip, &gclip);
-
- //dbg_grect("canvas clipped to screen", &gclip);
-
- pxy[0] = gclip.g_x;
- pxy[1] = gclip.g_y;
- pxy[2] = pxy[0] + gclip.g_w;
- pxy[3] = pxy[1] + gclip.g_h;
-
- vs_clip(atari_plot_vdi_handle, 1, (short*)&pxy);
-
- return ( true );
-}
-
-VdiHdl plot_get_vdi_handle(void)
-{
- return(atari_plot_vdi_handle);
-}
-
-long plot_get_flags(void)
-{
- return(atari_plot_flags);
-}
-
-
-bool plot_get_clip(struct rect * out)
-{
- out->x0 = view.clipping.x0;
- out->y0 = view.clipping.y0;
- out->x1 = view.clipping.x1;
- out->y1 = view.clipping.y1;
- return( true );
-}
-
-void plot_get_clip_grect(GRECT * out)
-{
- struct rect clip={0,0,0,0};
-
- plot_get_clip(&clip);
-
- out->g_x = clip.x0;
- out->g_y = clip.y0;
- out->g_w = clip.x1 - clip.x0;
- out->g_h = clip.y1 - clip.y0;
-}
-
-FONT_PLOTTER plot_get_text_plotter()
-{
- return(fplotter);
-}
-
-void plot_set_text_plotter(FONT_PLOTTER font_plotter)
-{
- fplotter = font_plotter;
-}
-
-static bool plot_text(int x, int y, const char *text, size_t length, const plot_font_style_t *fstyle )
-{
- if (view.scale != 1.0) {
- plot_font_style_t newstyle = *fstyle;
- newstyle.size = (int)((float)fstyle->size*view.scale);
- fplotter->text(fplotter, x, y, text, length, &newstyle);
- } else {
- fplotter->text(fplotter, x, y, text, length, fstyle);
- }
-
- return ( true );
-}
-
-static bool plot_disc(int x, int y, int radius, const plot_style_t *pstyle)
-{
- if (pstyle->fill_type != PLOT_OP_TYPE_SOLID) {
- vsf_rgbcolor(atari_plot_vdi_handle, pstyle->stroke_colour);
- vsf_perimeter(atari_plot_vdi_handle, 1);
- vsf_interior(atari_plot_vdi_handle, 0);
- v_circle(atari_plot_vdi_handle, view.x + x, view.y + y, radius);
- } else {
- vsf_rgbcolor(atari_plot_vdi_handle, pstyle->fill_colour);
- vsf_perimeter(atari_plot_vdi_handle, 0);
- vsf_interior(atari_plot_vdi_handle, FIS_SOLID);
- v_circle(atari_plot_vdi_handle, view.x + x, view.y + y, radius);
- }
-
- return(true);
-}
-
-static bool plot_arc(int x, int y, int radius, int angle1, int angle2,
- const plot_style_t *pstyle)
-{
-
- vswr_mode(atari_plot_vdi_handle, MD_REPLACE );
- if (pstyle->fill_type == PLOT_OP_TYPE_NONE)
- return(true);
- if ( pstyle->fill_type != PLOT_OP_TYPE_SOLID) {
- vsl_rgbcolor(atari_plot_vdi_handle, pstyle->stroke_colour);
- vsf_perimeter(atari_plot_vdi_handle, 1);
- vsf_interior(atari_plot_vdi_handle, 1 );
- v_arc(atari_plot_vdi_handle, view.x + x, view.y + y, radius, angle1*10, angle2*10);
- } else {
- vsf_rgbcolor(atari_plot_vdi_handle, pstyle->fill_colour);
- vsl_width(atari_plot_vdi_handle, 1 );
- vsf_perimeter(atari_plot_vdi_handle, 1);
- v_arc(atari_plot_vdi_handle, view.x + x, view.y + y, radius, angle1*10, angle2*10);
- }
-
- return (true);
-}
-
-static bool plot_bitmap(int x, int y, int width, int height,
- struct bitmap *bitmap, colour bg,
- bitmap_flags_t flags)
-{
- struct bitmap * bm = NULL;
- bool repeat_x = (flags & BITMAPF_REPEAT_X);
- bool repeat_y = (flags & BITMAPF_REPEAT_Y);
- int bmpw,bmph;
- struct rect clip = {0,0,0,0};
-
- bmpw = atari_bitmap_get_width(bitmap);
- bmph = atari_bitmap_get_height(bitmap);
-
- if(view.scale != 1.0){
- width = (int)(((float)width)*view.scale);
- height = (int)(((float)height)*view.scale);
- }
-
- if ( repeat_x || repeat_y ) {
- plot_get_clip(&clip);
- if( repeat_x && width == 1 && repeat_y && height == 1 ) {
- width = MAX( width, clip.x1 - x );
- height = MAX( height, clip.y1 - y );
- } else if( repeat_x && width == 1 ) {
- width = MAX( width, clip.x1 - x);
- } else if( repeat_y && height == 1) {
- height = MAX( height, clip.y1 - y );
- }
- }
-
- if( width != bmpw || height != bmph ) {
- atari_bitmap_resize(bitmap, hermes_res_h, &nsfmt, width, height );
- if( bitmap->resized )
- bm = bitmap->resized;
- else
- bm = bitmap;
- } else {
- bm = bitmap;
- }
-
- /* out of memory? */
- if( bm == NULL ) {
- printf("plot: out of memory! bmp: %p, bmpres: %p\n", bitmap, bitmap->resized );
- return( true );
- }
-
- if (!(repeat_x || repeat_y) ) {
- plot_blit_bitmap(bm, x, y, bg, flags );
- } else {
- int xf,yf;
- int xoff = x;
- int yoff = y;
-
- if (yoff > clip.y0 )
- yoff = (clip.y0 - height) + ((yoff - clip.y0) % height);
- if (xoff > clip.x0 )
- xoff = (clip.x0 - width) + ((xoff - clip.x0) % width);
- /* for now, repeating just works in the rigth / down direction */
- /*
- if( repeat_x == true )
- xoff = clip.x0;
- if(repeat_y == true )
- yoff = clip.y0;
- */
-
- for( xf = xoff; xf < clip.x1; xf += width ) {
- for( yf = yoff; yf < clip.y1; yf += height ) {
- plot_blit_bitmap(bm, xf, yf, bg, flags );
- if (!repeat_y)
- break;
- }
- if (!repeat_x)
- break;
- }
- }
- return ( true );
-}
-
-static bool plot_path(const float *p, unsigned int n, colour fill, float width,
- colour c, const float transform[6])
-{
- return ( true );
-}
-
-
-
-const struct plotter_table atari_plotters = {
- .rectangle = plot_rectangle,
- .line = plot_line,
- .polygon = plot_polygon,
- .clip = plot_clip,
- .text = plot_text,
- .disc = plot_disc,
- .arc = plot_arc,
- .bitmap = plot_bitmap,
- .path = plot_path,
- .flush = NULL,
- .group_start = NULL,
- .group_end = NULL,
- .option_knockout = true
-};
diff --git a/atari/plot/plot.h b/atari/plot/plot.h
deleted file mode 100644
index 22f8781c2..000000000
--- a/atari/plot/plot.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NS_ATARI_PLOT_H
-#define NS_ATARI_PLOT_H
-
-/** how much memory should be kept allocated for temp. conversion bitmaps: */
-#define CONV_KEEP_LIMIT 512000
-
-/** how much memory to allocate if some is needed: */
-#define CONV_BLOCK_SIZE 32000
-
-/* Plotter Option Flags: */
-#define PLOT_FLAG_DITHER 0x04 /**< set if the plotter shall dither images */
-#define PLOT_FLAG_TRANS 0x08 /**< set if the plotter supports transparent operations */
-
-/* Plotter "feature" flags */
-#define PLOT_FLAG_HAS_DITHER 0x0400
-#define PLOT_FLAG_HAS_ALPHA 0x0800
-#define PLOT_FLAG_OFFSCREEN 0x1000 /**< offscreen plotter should set this flag */
-
-/* Plotter "internal" flags */
-#define PLOT_FLAG_LOCKED 0x08000 /**< plotter should set this flag during screen updates */
-
-/* Font Plotter flags: */
-#define FONTPLOT_FLAG_MONOGLYPH 0x01
-
-/* Flags for init_mfdb function: */
-#define MFDB_FLAG_STAND 0x01
-#define MFDB_FLAG_ZEROMEM 0x02
-#define MFDB_FLAG_NOALLOC 0x04
-
-/* Flags for blit functions: */
-#define BITMAPF_MONOGLYPH 4096 /**< The bitmap is an character bitmap */
-#define BITMAPF_BUFFER_NATIVE 8192 /**< Bitmap shall be kept converted */
-
-/* Error codes: */
-#define ERR_BUFFERSIZE_EXCEEDS_SCREEN 1 /* The buffer allocated is larger than the screen */
-#define ERR_NO_MEM 2 /* Not enough memory for requested operation */
-#define ERR_PLOTTER_NOT_AVAILABLE 3 /* invalid plotter driver name passed */
-
-struct s_vdi_sysinfo {
- short vdi_handle; /**< vdi handle */
- short scr_w; /**< resolution horz. */
- short scr_h; /**< resolution vert. */
- short scr_bpp; /**< bits per pixel */
- int colors; /**< 0=hiclor, 2=mono */
- unsigned long hicolors; /**< if colors = 0 */
- short pixelsize; /**< bytes per pixel */
- unsigned short pitch; /**< row pitch */
- unsigned short vdiformat; /**< pixel format */
- unsigned short clut; /**< type of clut support */
- void *screen; /**< pointer to screen, or NULL */
- unsigned long screensize; /**< size of screen (in bytes) */
- unsigned long mask_r; /**< red color mask */
- unsigned long mask_g; /**< green color mask */
- unsigned long mask_b; /**< blue color mask */
- unsigned long mask_a; /**< alpha color mask */
- short maxintin; /* maximum pxy items */
- short maxpolycoords; /* max coords for p_line etc. */
- unsigned long EdDiVersion; /* EdDi Version or 0 */
- bool rasterscale; /* raster scaling support */
-};
-
-struct rect;
-
-extern const struct plotter_table atari_plotters;
-
-int plot_init(char *);
-int plot_finalise(void);
-
-/**
- * translate an error number
- */
-const char* plot_err_str(int i) ;
-
-bool plot_lock(void);
-bool plot_unlock(void);
-bool plot_set_dimensions( int x, int y, int w, int h );
-bool plot_get_dimensions(GRECT *dst);
-float plot_get_scale(void);
-float plot_set_scale(float);
-void plot_set_abs_clipping(const GRECT *area);
-void plot_get_abs_clipping(struct rect *dst);
-void plot_get_abs_clipping_grect(GRECT *dst);
-bool plot_get_clip(struct rect * out);
-/* Get clipping for current framebuffer as GRECT */
-void plot_get_clip_grect(GRECT * out);
-bool plot_clip(const struct rect *clip);
-VdiHdl plot_get_vdi_handle(void);
-long plot_get_flags(void);
-bool plot_rectangle( int x0, int y0, int x1, int y1,const plot_style_t *style );
-bool plot_line( int x0, int y0, int x1, int y1, const plot_style_t *style );
-bool plot_blit_bitmap(struct bitmap * bmp, int x, int y,
- unsigned long bg, unsigned long flags);
-bool plot_blit_mfdb(GRECT * loc, MFDB * insrc, short fgcolor, uint32_t flags);
-bool plot_copy_rect(GRECT src, GRECT dst);
-
-/* convert an vdi color to bgra */
-void vdi1000_to_rgb( unsigned short * in, unsigned char * out );
-
-/* convert an bgra color to vdi1000 color */
-void rgb_to_vdi1000( unsigned char * in, RGB1000 *out);
-
-/* convert an rgb color to an index into the web palette */
-short rgb_to_666_index(unsigned char r, unsigned char g, unsigned char b);
-
-/* assign vdi line style to dst ( netsurf type ) */
-#define NSLT2VDI(dst, src) \
- dst = 0; \
- switch( src->stroke_type ) { \
- case PLOT_OP_TYPE_DOT: \
- dst = (0xAAAA00 | 7); \
- break; \
- case PLOT_OP_TYPE_DASH: \
- dst = 3; \
- break; \
- case PLOT_OP_TYPE_SOLID: \
- case PLOT_OP_TYPE_NONE: \
- default: \
- dst = 1; \
- break; \
- }
-
-
-#ifdef WITH_8BPP_SUPPORT
-/* some Well known indexes into the VDI palette */
-/* common indexes into the VDI palette */
-/* (only used when running with 256 colors or less ) */
-#define OFFSET_WEB_PAL 16
-#define OFFSET_CUST_PAL 232
-#define RGB_TO_VDI(c) rgb_to_666_index( (c&0xFF),(c&0xFF00)>>8,(c&0xFF0000)>>16)+OFFSET_WEB_PAL
-#endif /* WITH_8BPP_SUPPORT*/
-
-/* the name of this macro is crap - it should be named bgr_to_rgba ... or so */
-#define ABGR_TO_RGB(c) ( ((c&0xFF)<<16) | (c&0xFF00) | ((c&0xFF0000)>>16) ) << 8
-
-/* this index into the palette is used by the TC renderer to set
- * current draw color.
- */
-#define OFFSET_CUSTOM_COLOR 255
-
-#endif