#include"os_predef.h"
#include"os_gl.h"

#include<stdio.h>

void PyMOLReadPixels(GLint x,
                     GLint y,
                     GLsizei width,
                     GLsizei height, GLenum format, GLenum type, GLvoid * pixels)
{

  /* special "safe" version of glReadPixels for buggy OpenGL implementations */

  GLint swapbytes, lsbfirst, rowlength;
  GLint skiprows, skippixels, alignment;

  /* Save current pixel store state. */
  glGetIntegerv(GL_PACK_SWAP_BYTES, &swapbytes);
  glGetIntegerv(GL_PACK_LSB_FIRST, &lsbfirst);
  glGetIntegerv(GL_PACK_ROW_LENGTH, &rowlength);
  glGetIntegerv(GL_PACK_SKIP_ROWS, &skiprows);
  glGetIntegerv(GL_PACK_SKIP_PIXELS, &skippixels);
  glGetIntegerv(GL_PACK_ALIGNMENT, &alignment);

  /* Set desired pixel store state. */
  glPixelStorei(GL_PACK_SWAP_BYTES, GL_FALSE);
  glPixelStorei(GL_PACK_LSB_FIRST, GL_FALSE);
  glPixelStorei(GL_PACK_ROW_LENGTH, 0);
  glPixelStorei(GL_PACK_SKIP_ROWS, 0);
  glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
  glPixelStorei(GL_PACK_ALIGNMENT, 1);

  /* call glFlush & glFinish first to avoid full system crash on buggy
   * ATI Radeon drivers, such as Radeon 7000 & 9000 series.  (calling
   * both is probably redundant and ultra-paranoid, but so what?) */
  glFlush();
  glFinish();

  /* now get the pixels */
  glReadPixels(x, y, width, height, format, type, pixels);

  /* now flush once again just to be extra sure that we don't encounter
   * the dreaded ATI driver bug system freeze-up */
  glFlush();
  glFinish();

  /* and then estore current pixel store state. */
  glPixelStorei(GL_PACK_SWAP_BYTES, swapbytes);
  glPixelStorei(GL_PACK_LSB_FIRST, lsbfirst);
  glPixelStorei(GL_PACK_ROW_LENGTH, rowlength);
  glPixelStorei(GL_PACK_SKIP_ROWS, skiprows);
  glPixelStorei(GL_PACK_SKIP_PIXELS, skippixels);
  glPixelStorei(GL_PACK_ALIGNMENT, alignment);

}

void PyMOLDrawPixels(GLsizei width,
                     GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
{

  /* special "safe" version of glDrawPixels for buggy OpenGL implementations */

  GLint swapbytes, lsbfirst, rowlength;
  GLint skiprows, skippixels, alignment;

  /* Save current pixel store state. */
  glGetIntegerv(GL_UNPACK_SWAP_BYTES, &swapbytes);
  glGetIntegerv(GL_UNPACK_LSB_FIRST, &lsbfirst);
  glGetIntegerv(GL_UNPACK_ROW_LENGTH, &rowlength);
  glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skiprows);
  glGetIntegerv(GL_UNPACK_SKIP_PIXELS, &skippixels);
  glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);

  /* Set desired pixel store state. */
  glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);
  glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE);
  glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
  glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
  glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

  glDrawPixels(width, height, format, type, pixels);

  /* Restore current pixel store state. */
  glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);
  glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);
  glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength);
  glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
  glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
  glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);

}

int PyMOLCheckOpenGLErr(const char *pos)
{
  int flag = 0;
  GLenum glerr = glGetError();
  while(glerr != GL_NO_ERROR) {
    printf("OpenGL-Error: Where? %s: glerr=%d\n", pos, glerr);
    glerr = glGetError();
    flag = 1;
  }
  return flag;
}

#ifdef _PYMOL_NO_GLUT
#ifndef _MACPYMOL_XCODE
int p_glutGet(GLenum type)
{
  return 0;
}
#endif
#endif

#ifndef _PYMOL_NO_GLUT

#ifdef _PYMOL_PRETEND_GLUT_FONT
void plutBitmapCharacter(int c);
#endif

#ifdef _PYMOL_MIN_GLUT


/* NULL GLUT: Bare Minimum GLUT implementation for getting PyMOL up in 
   preparation for porting PYMOL to a non-GLUT environment (such as ActiveX)... */

#include<GL/glut.h>

#ifndef NULL
#define NULL ((void*)0)
#endif

static void (*idleFunc) (void) = NULL;
static int WinX = 640, WinY = 480;

int p_glutCreateWindow(const char *title)
{

  char **myArgv, *myArgvv[2], myArgvvv[1024] = "pymol";
  int myArgc;

  myArgc = 1;
  myArgvv[0] = myArgvvv;
  myArgvv[1] = (void *) 0;
  myArgv = myArgvv;

  glutInit(&myArgc, myArgv);
  glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
  glutInitWindowPosition(0, 175);
  glutInitWindowSize(WinX, WinY);

  return glutCreateWindow(title);
}

void p_glutMainLoop(void)
{
  while(1) {
    if(idleFunc)
      idleFunc();
  }

}

void p_glutGameModeString(char *str)
{
}

void p_glutEnterGameMode(void)
{
}

void p_glutLeaveGameMode(void)
{
}

void p_glutBitmapCharacter(void *font, int character)
{
}

void p_glutSwapBuffers(void)
{
}

void p_glutPopWindow(void)
{
}

void p_glutShowWindow(void)
{
}

void p_glutHideWindow(void)
{
}

void p_glutDestroyWindow(int theWindow)
{
}

void p_glutReshapeWindow(int width, int height)
{
  WinX = width;
  WinY = height;
}

void p_glutFullScreen(void)
{
}

void p_glutPostRedisplay(void)
{
}

void p_glutInit(int *argcp, char **argv)
{
}

void p_glutInitDisplayMode(unsigned int mode)
{
}

void p_glutInitDisplayString(const char *string)
{
}

void p_glutInitWindowPosition(int x, int y)
{
}

void p_glutInitWindowSize(int width, int height)
{
  WinX = width;
  WinY = height;
}

int p_glutGet(GLenum type)
{
  return 0;
}

int p_glutGetModifiers(void)
{
  return 0;
}

void p_glutDisplayFunc(void (*func) (void))
{
}

void p_glutReshapeFunc(void (*func) (int width, int height))
{
}

void p_glutKeyboardFunc(void (*func) (unsigned char key, int x, int y))
{
}

void p_glutMouseFunc(void (*func) (int button, int state, int x, int y))
{
}

void p_glutMotionFunc(void (*func) (int x, int y))
{
}

void p_glutPassiveMotionFunc(void (*func) (int x, int y))
{
}

void p_glutSpecialFunc(void (*func) (int key, int x, int y))
{
}

void p_glutIdleFunc(void (*func) (void))
{
  idleFunc = func;
}

void p_glutPositionWindow(int x, int y)
{
};

#endif

#ifdef _PYMOL_WX_GLUT

#include"P.h"
#include"main.h"


/* wxWindow-based GLUT emulation layer */

#ifndef NULL
#define NULL ((void*)0)
#endif

#ifndef false
#define false 0
#endif

#ifndef true
#define true 1
#endif

static void (*idleFunc) (void) = NULL;
static void (*displayFunc) (void) = NULL;
static void (*reshapeFunc) (int width, int height) = NULL;
static void (*mouseFunc) (int button, int state, int x, int y) = NULL;
static void (*keyboardFunc) (unsigned char key, int x, int y) = NULL;
static void (*specialFunc) (int key, int x, int y) = NULL;
static void (*motionFunc) (int x, int y) = NULL;
static void (*passiveMotionFunc) (int x, int y) = NULL;
static int WinX = 640, WinY = 480;

static int redisplay = true;
static int modifiers = 0;

int p_glutGetRedisplay(void)
{
  int tmp = redisplay;
  redisplay = false;
  return (tmp);
}

void p_glutGameModeString(char *str)
{
}

void p_glutEnterGameMode(void)
{
}

void p_glutLeaveGameMode(void)
{
}

void p_glutHandleEvent(p_glut_event * ev)
{
  /* NOTE: this function should be called with an unblocked interpreter,
     just as if it were an asychronous thread */

  modifiers = ev->mod;
  switch (ev->event_code) {
  case P_GLUT_IDLE_EVENT:
    if(idleFunc)
      idleFunc();
    break;
  case P_GLUT_DISPLAY_EVENT:
    if(displayFunc)
      displayFunc();
    break;
  case P_GLUT_RESHAPE_EVENT:
    if(reshapeFunc)
      reshapeFunc(ev->x, ev->y);
    break;
  case P_GLUT_MOUSE_EVENT:
    if(mouseFunc)
      mouseFunc(ev->input, ev->state, ev->x, ev->y);
    break;
  case P_GLUT_MOTION_EVENT:
    if(motionFunc)
      motionFunc(ev->x, ev->y);
    break;
  case P_GLUT_PASSIVE_MOTION_EVENT:
    if(passiveMotionFunc)
      passiveMotionFunc(ev->x, ev->y);
    break;
  case P_GLUT_CHAR_EVENT:
    if(keyboardFunc)
      keyboardFunc((unsigned char) ev->input, ev->x, ev->y);
    break;
  case P_GLUT_SPECIAL_EVENT:
    if(specialFunc)
      specialFunc(ev->input, ev->x, ev->y);
    break;
  }
}

int p_glutCreateWindow(const char *title)
{
  return 0;
}

void p_glutMainLoop(void)
{
  /* TRICK: for "pretend GLUT", this routine must return, so that the
     host windowing system can keep control of the main thread... */
}

void p_glutBitmapCharacter(void *font, int character)
{
#ifdef _PYMOL_PRETEND_GLUT_FONT
  plutBitmapCharacter(character);
#endif
}

void p_glutSwapBuffers(void)
{
  PBlockLegacy();
  PyRun_SimpleString("if hasattr(pymol,'_swap_buffers'): pymol._swap_buffers()");
  PUnblockLegacy();
}

void p_glutPopWindow(void)
{
}

void p_glutShowWindow(void)
{
}

void p_glutHideWindow(void)
{
}

void p_glutDestroyWindow(int theWindow)
{
}

void p_glutReshapeWindow(int width, int height)
{
  WinX = width;
  WinY = height;
}

void p_glutFullScreen(void)
{
}

void p_glutPostRedisplay(void)
{
  redisplay = true;
}

void p_glutInit(int *argcp, char **argv)
{
}

void p_glutInitDisplayMode(unsigned int mode)
{
}

void p_glutInitDisplayString(const char *string)
{
}

void p_glutInitWindowPosition(int x, int y)
{
}

void p_glutInitWindowSize(int width, int height)
{
  WinX = width;
  WinY = height;
}

int p_glutGet(GLenum type)
{
  return 0;
}

int p_glutGetModifiers(void)
{
  return modifiers;
}

void p_glutDisplayFunc(void (*func) (void))
{
  displayFunc = func;
}

void p_glutReshapeFunc(void (*func) (int width, int height))
{
  reshapeFunc = func;
}

void p_glutKeyboardFunc(void (*func) (unsigned char key, int x, int y))
{
  keyboardFunc = func;
}

void p_glutMouseFunc(void (*func) (int button, int state, int x, int y))
{
  mouseFunc = func;
}

void p_glutMotionFunc(void (*func) (int x, int y))
{
  motionFunc = func;
}

void p_glutPassiveMotionFunc(void (*func) (int x, int y))
{
  passiveMotionFunc = func;
}

void p_glutSpecialFunc(void (*func) (int key, int x, int y))
{
  specialFunc = func;
}

void p_glutIdleFunc(void (*func) (void))
{
  idleFunc = func;
}

void p_glutPositionWindow(int x, int y)
{
};

#endif

#ifdef _PYMOL_PRETEND_GLUT_FONT


/* BEGIN GLUT EXCERPT.  THE FOLLOWING CODE IS:

 * Copyright (c) Mark J. Kilgard, 1994. 
 
 * This program is freely distributable without licensing fees 
 * and is provided without guarantee or warrantee expressed or 
 * implied. This program is -not- in the public domain. 

 * Modifications by Warren L. DeLano, 2002.  

*/

typedef struct {
  const GLsizei width;
  const GLsizei height;
  const GLfloat xorig;
  const GLfloat yorig;
  const GLfloat advance;
  const GLubyte *bitmap;
} BitmapCharRec, *BitmapCharPtr;

typedef struct {
  const char *name;
  const int num_chars;
  const int first;
  const BitmapCharRec *const *ch;
} BitmapFontRec, *BitmapFontPtr;

typedef void *PLUTbitmapFont;


/* GENERATED FILE -- DO NOT MODIFY */

#ifdef _WIN32


/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
   a height or width of zero does not advance the raster position
   as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch0data[] = { 0x0 };
static const BitmapCharRec ch0 = { 1, 1, 0, 0, 8, ch0data };
#else
static const BitmapCharRec ch0 = { 0, 0, 0, 0, 8, 0 };
#endif

#ifdef _WIN32


/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
   a height or width of zero does not advance the raster position
   as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch32data[] = { 0x0 };
static const BitmapCharRec ch32 = { 1, 1, 0, 0, 8, ch32data };
#else
static const BitmapCharRec ch32 = { 0, 0, 0, 0, 8, 0 };
#endif

#ifdef _WIN32


/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
   a height or width of zero does not advance the raster position
   as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch127data[] = { 0x0 };
static const BitmapCharRec ch127 = { 1, 1, 0, 0, 8, ch127data };
#else
static const BitmapCharRec ch127 = { 0, 0, 0, 0, 8, 0 };
#endif

#ifdef _WIN32


/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
   a height or width of zero does not advance the raster position
   as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch160data[] = { 0x0 };
static const BitmapCharRec ch160 = { 1, 1, 0, 0, 8, ch160data };
#else
static const BitmapCharRec ch160 = { 0, 0, 0, 0, 8, 0 };
#endif


/* char: 0xff */

static const GLubyte ch255data[] = {
  0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84, 0x0, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch255 = { 6, 12, -1, 2, 8, ch255data };


/* char: 0xfe */

static const GLubyte ch254data[] = {
  0x80, 0x80, 0xb8, 0xc4, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80,
};

static const BitmapCharRec ch254 = { 6, 10, -1, 2, 8, ch254data };


/* char: 0xfd */

static const GLubyte ch253data[] = {
  0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84, 0x0, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch253 = { 6, 12, -1, 2, 8, ch253data };


/* char: 0xfc */

static const GLubyte ch252data[] = {
  0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch252 = { 6, 10, -1, 0, 8, ch252data };


/* char: 0xfb */

static const GLubyte ch251data[] = {
  0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch251 = { 6, 10, -1, 0, 8, ch251data };


/* char: 0xfa */

static const GLubyte ch250data[] = {
  0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch250 = { 6, 10, -1, 0, 8, ch250data };


/* char: 0xf9 */

static const GLubyte ch249data[] = {
  0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch249 = { 6, 10, -1, 0, 8, ch249data };


/* char: 0xf8 */

static const GLubyte ch248data[] = {
  0x80, 0x78, 0xc4, 0xa4, 0x94, 0x8c, 0x78, 0x4,
};

static const BitmapCharRec ch248 = { 6, 8, -1, 1, 8, ch248data };


/* char: 0xf7 */

static const GLubyte ch247data[] = {
  0x20, 0x20, 0x0, 0xf8, 0x0, 0x20, 0x20,
};

static const BitmapCharRec ch247 = { 5, 7, -1, -1, 8, ch247data };


/* char: 0xf6 */

static const GLubyte ch246data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch246 = { 6, 10, -1, 0, 8, ch246data };


/* char: 0xf5 */

static const GLubyte ch245data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x50, 0x28,
};

static const BitmapCharRec ch245 = { 6, 10, -1, 0, 8, ch245data };


/* char: 0xf4 */

static const GLubyte ch244data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch244 = { 6, 10, -1, 0, 8, ch244data };


/* char: 0xf3 */

static const GLubyte ch243data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch243 = { 6, 10, -1, 0, 8, ch243data };


/* char: 0xf2 */

static const GLubyte ch242data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch242 = { 6, 10, -1, 0, 8, ch242data };


/* char: 0xf1 */

static const GLubyte ch241data[] = {
  0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8, 0x0, 0x0, 0x50, 0x28,
};

static const BitmapCharRec ch241 = { 6, 10, -1, 0, 8, ch241data };


/* char: 0xf0 */

static const GLubyte ch240data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x8, 0x50, 0x30, 0x48,
};

static const BitmapCharRec ch240 = { 6, 10, -1, 0, 8, ch240data };


/* char: 0xef */

static const GLubyte ch239data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x50, 0x50,
};

static const BitmapCharRec ch239 = { 5, 10, -1, 0, 8, ch239data };


/* char: 0xee */

static const GLubyte ch238data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x90, 0x60,
};

static const BitmapCharRec ch238 = { 5, 10, -1, 0, 8, ch238data };


/* char: 0xed */

static const GLubyte ch237data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x40, 0x20,
};

static const BitmapCharRec ch237 = { 5, 10, -1, 0, 8, ch237data };


/* char: 0xec */

static const GLubyte ch236data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x20, 0x40,
};

static const BitmapCharRec ch236 = { 5, 10, -1, 0, 8, ch236data };


/* char: 0xeb */

static const GLubyte ch235data[] = {
  0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch235 = { 6, 10, -1, 0, 8, ch235data };


/* char: 0xea */

static const GLubyte ch234data[] = {
  0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch234 = { 6, 10, -1, 0, 8, ch234data };


/* char: 0xe9 */

static const GLubyte ch233data[] = {
  0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch233 = { 6, 10, -1, 0, 8, ch233data };


/* char: 0xe8 */

static const GLubyte ch232data[] = {
  0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch232 = { 6, 10, -1, 0, 8, ch232data };


/* char: 0xe7 */

static const GLubyte ch231data[] = {
  0x20, 0x10, 0x78, 0x84, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch231 = { 6, 8, -1, 2, 8, ch231data };


/* char: 0xe6 */

static const GLubyte ch230data[] = {
  0x6c, 0x92, 0x90, 0x7c, 0x12, 0x6c,
};

static const BitmapCharRec ch230 = { 7, 6, 0, 0, 8, ch230data };


/* char: 0xe5 */

static const GLubyte ch229data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x30, 0x48, 0x30,
};

static const BitmapCharRec ch229 = { 6, 10, -1, 0, 8, ch229data };


/* char: 0xe4 */

static const GLubyte ch228data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch228 = { 6, 10, -1, 0, 8, ch228data };


/* char: 0xe3 */

static const GLubyte ch227data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x50, 0x28,
};

static const BitmapCharRec ch227 = { 6, 10, -1, 0, 8, ch227data };


/* char: 0xe2 */

static const GLubyte ch226data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch226 = { 6, 10, -1, 0, 8, ch226data };


/* char: 0xe1 */

static const GLubyte ch225data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch225 = { 6, 10, -1, 0, 8, ch225data };


/* char: 0xe0 */

static const GLubyte ch224data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch224 = { 6, 10, -1, 0, 8, ch224data };


/* char: 0xdf */

static const GLubyte ch223data[] = {
  0x80, 0xb8, 0xc4, 0x84, 0x84, 0xf8, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch223 = { 6, 9, -1, 1, 8, ch223data };


/* char: 0xde */

static const GLubyte ch222data[] = {
  0x80, 0x80, 0x80, 0xf8, 0x84, 0x84, 0x84, 0xf8, 0x80,
};

static const BitmapCharRec ch222 = { 6, 9, -1, 0, 8, ch222data };


/* char: 0xdd */

static const GLubyte ch221data[] = {
  0x20, 0x20, 0x20, 0x20, 0x50, 0x88, 0x88, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch221 = { 5, 10, -1, 0, 8, ch221data };


/* char: 0xdc */

static const GLubyte ch220data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch220 = { 6, 10, -1, 0, 8, ch220data };


/* char: 0xdb */

static const GLubyte ch219data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch219 = { 6, 10, -1, 0, 8, ch219data };


/* char: 0xda */

static const GLubyte ch218data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch218 = { 6, 10, -1, 0, 8, ch218data };


/* char: 0xd9 */

static const GLubyte ch217data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch217 = { 6, 10, -1, 0, 8, ch217data };


/* char: 0xd8 */

static const GLubyte ch216data[] = {
  0x80, 0x78, 0xc4, 0xa4, 0xa4, 0xa4, 0x94, 0x94, 0x8c, 0x78, 0x4,
};

static const BitmapCharRec ch216 = { 6, 11, -1, 1, 8, ch216data };


/* char: 0xd7 */

static const GLubyte ch215data[] = {
  0x84, 0x48, 0x30, 0x30, 0x48, 0x84,
};

static const BitmapCharRec ch215 = { 6, 6, -1, -1, 8, ch215data };


/* char: 0xd6 */

static const GLubyte ch214data[] = {
  0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x28, 0x28,
};

static const BitmapCharRec ch214 = { 7, 10, 0, 0, 8, ch214data };


/* char: 0xd5 */

static const GLubyte ch213data[] = {
  0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x28, 0x14,
};

static const BitmapCharRec ch213 = { 7, 10, 0, 0, 8, ch213data };


/* char: 0xd4 */

static const GLubyte ch212data[] = {
  0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x24, 0x18,
};

static const BitmapCharRec ch212 = { 7, 10, 0, 0, 8, ch212data };


/* char: 0xd3 */

static const GLubyte ch211data[] = {
  0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x10, 0x8,
};

static const BitmapCharRec ch211 = { 7, 10, 0, 0, 8, ch211data };


/* char: 0xd2 */

static const GLubyte ch210data[] = {
  0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x8, 0x10,
};

static const BitmapCharRec ch210 = { 7, 10, 0, 0, 8, ch210data };


/* char: 0xd1 */

static const GLubyte ch209data[] = {
  0x82, 0x86, 0x8a, 0x92, 0xa2, 0xc2, 0x82, 0x0, 0x28, 0x14,
};

static const BitmapCharRec ch209 = { 7, 10, 0, 0, 8, ch209data };


/* char: 0xd0 */

static const GLubyte ch208data[] = {
  0xfc, 0x42, 0x42, 0x42, 0xe2, 0x42, 0x42, 0x42, 0xfc,
};

static const BitmapCharRec ch208 = { 7, 9, 0, 0, 8, ch208data };


/* char: 0xcf */

static const GLubyte ch207data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x50, 0x50,
};

static const BitmapCharRec ch207 = { 5, 10, -1, 0, 8, ch207data };


/* char: 0xce */

static const GLubyte ch206data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch206 = { 5, 10, -1, 0, 8, ch206data };


/* char: 0xcd */

static const GLubyte ch205data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch205 = { 5, 10, -1, 0, 8, ch205data };


/* char: 0xcc */

static const GLubyte ch204data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch204 = { 5, 10, -1, 0, 8, ch204data };


/* char: 0xcb */

static const GLubyte ch203data[] = {
  0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch203 = { 6, 10, -1, 0, 8, ch203data };


/* char: 0xca */

static const GLubyte ch202data[] = {
  0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch202 = { 6, 10, -1, 0, 8, ch202data };


/* char: 0xc9 */

static const GLubyte ch201data[] = {
  0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch201 = { 6, 10, -1, 0, 8, ch201data };


/* char: 0xc8 */

static const GLubyte ch200data[] = {
  0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch200 = { 6, 10, -1, 0, 8, ch200data };


/* char: 0xc7 */

static const GLubyte ch199data[] = {
  0x20, 0x10, 0x78, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch199 = { 6, 11, -1, 2, 8, ch199data };


/* char: 0xc6 */

static const GLubyte ch198data[] = {
  0x9e, 0x90, 0x90, 0xf0, 0x9c, 0x90, 0x90, 0x90, 0x6e,
};

static const BitmapCharRec ch198 = { 7, 9, 0, 0, 8, ch198data };


/* char: 0xc5 */

static const GLubyte ch197data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x30, 0x48, 0x30,
};

static const BitmapCharRec ch197 = { 6, 10, -1, 0, 8, ch197data };


/* char: 0xc4 */

static const GLubyte ch196data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x48, 0x48,
};

static const BitmapCharRec ch196 = { 6, 10, -1, 0, 8, ch196data };


/* char: 0xc3 */

static const GLubyte ch195data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x50, 0x28,
};

static const BitmapCharRec ch195 = { 6, 10, -1, 0, 8, ch195data };


/* char: 0xc2 */

static const GLubyte ch194data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x48, 0x30,
};

static const BitmapCharRec ch194 = { 6, 10, -1, 0, 8, ch194data };


/* char: 0xc1 */

static const GLubyte ch193data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x20, 0x10,
};

static const BitmapCharRec ch193 = { 6, 10, -1, 0, 8, ch193data };


/* char: 0xc0 */

static const GLubyte ch192data[] = {
  0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x10, 0x20,
};

static const BitmapCharRec ch192 = { 6, 10, -1, 0, 8, ch192data };


/* char: 0xbf */

static const GLubyte ch191data[] = {
  0x78, 0x84, 0x84, 0x80, 0x40, 0x20, 0x20, 0x0, 0x20,
};

static const BitmapCharRec ch191 = { 6, 9, -1, 0, 8, ch191data };


/* char: 0xbe */

static const GLubyte ch190data[] = {
  0x6, 0x1a, 0x12, 0xa, 0x66, 0x92, 0x10, 0x20, 0x90, 0x60,
};

static const BitmapCharRec ch190 = { 7, 10, 0, 0, 8, ch190data };


/* char: 0xbd */

static const GLubyte ch189data[] = {
  0x1e, 0x10, 0xc, 0x2, 0xf2, 0x4c, 0x40, 0x40, 0xc0, 0x40,
};

static const BitmapCharRec ch189 = { 7, 10, 0, 0, 8, ch189data };


/* char: 0xbc */

static const GLubyte ch188data[] = {
  0x6, 0x1a, 0x12, 0xa, 0xe6, 0x42, 0x40, 0x40, 0xc0, 0x40,
};

static const BitmapCharRec ch188 = { 7, 10, 0, 0, 8, ch188data };


/* char: 0xbb */

static const GLubyte ch187data[] = {
  0x90, 0x48, 0x24, 0x12, 0x24, 0x48, 0x90,
};

static const BitmapCharRec ch187 = { 7, 7, 0, -1, 8, ch187data };


/* char: 0xba */

static const GLubyte ch186data[] = {
  0xf0, 0x0, 0x60, 0x90, 0x90, 0x60,
};

static const BitmapCharRec ch186 = { 4, 6, -1, -3, 8, ch186data };


/* char: 0xb9 */

static const GLubyte ch185data[] = {
  0xe0, 0x40, 0x40, 0x40, 0xc0, 0x40,
};

static const BitmapCharRec ch185 = { 3, 6, -1, -4, 8, ch185data };


/* char: 0xb8 */

static const GLubyte ch184data[] = {
  0xc0, 0x40,
};

static const BitmapCharRec ch184 = { 2, 2, -3, 2, 8, ch184data };


/* char: 0xb7 */

static const GLubyte ch183data[] = {
  0xc0,
};

static const BitmapCharRec ch183 = { 2, 1, -3, -4, 8, ch183data };


/* char: 0xb6 */

static const GLubyte ch182data[] = {
  0x28, 0x28, 0x28, 0x28, 0x68, 0xe8, 0xe8, 0xe8, 0x7c,
};

static const BitmapCharRec ch182 = { 6, 9, -1, 0, 8, ch182data };


/* char: 0xb5 */

static const GLubyte ch181data[] = {
  0x80, 0xb4, 0xcc, 0x84, 0x84, 0x84, 0x84,
};

static const BitmapCharRec ch181 = { 6, 7, -1, 1, 8, ch181data };


/* char: 0xb4 */

static const GLubyte ch180data[] = {
  0x80, 0x40,
};

static const BitmapCharRec ch180 = { 2, 2, -3, -8, 8, ch180data };


/* char: 0xb3 */

static const GLubyte ch179data[] = {
  0x60, 0x90, 0x10, 0x20, 0x90, 0x60,
};

static const BitmapCharRec ch179 = { 4, 6, -1, -4, 8, ch179data };


/* char: 0xb2 */

static const GLubyte ch178data[] = {
  0xf0, 0x80, 0x60, 0x10, 0x90, 0x60,
};

static const BitmapCharRec ch178 = { 4, 6, -1, -4, 8, ch178data };


/* char: 0xb1 */

static const GLubyte ch177data[] = {
  0xf8, 0x0, 0x20, 0x20, 0xf8, 0x20, 0x20,
};

static const BitmapCharRec ch177 = { 5, 7, -1, -1, 8, ch177data };


/* char: 0xb0 */

static const GLubyte ch176data[] = {
  0x60, 0x90, 0x90, 0x60,
};

static const BitmapCharRec ch176 = { 4, 4, -2, -5, 8, ch176data };


/* char: 0xaf */

static const GLubyte ch175data[] = {
  0xfc,
};

static const BitmapCharRec ch175 = { 6, 1, -1, -8, 8, ch175data };


/* char: 0xae */

static const GLubyte ch174data[] = {
  0x38, 0x44, 0xaa, 0xb2, 0xaa, 0xaa, 0x92, 0x44, 0x38,
};

static const BitmapCharRec ch174 = { 7, 9, 0, -1, 8, ch174data };


/* char: 0xad */

static const GLubyte ch173data[] = {
  0xfc,
};

static const BitmapCharRec ch173 = { 6, 1, -1, -4, 8, ch173data };


/* char: 0xac */

static const GLubyte ch172data[] = {
  0x4, 0x4, 0x4, 0xfc,
};

static const BitmapCharRec ch172 = { 6, 4, -1, -1, 8, ch172data };


/* char: 0xab */

static const GLubyte ch171data[] = {
  0x12, 0x24, 0x48, 0x90, 0x48, 0x24, 0x12,
};

static const BitmapCharRec ch171 = { 7, 7, 0, -1, 8, ch171data };


/* char: 0xaa */

static const GLubyte ch170data[] = {
  0xf8, 0x0, 0x78, 0x88, 0x78, 0x8, 0x70,
};

static const BitmapCharRec ch170 = { 5, 7, -1, -2, 8, ch170data };


/* char: 0xa9 */

static const GLubyte ch169data[] = {
  0x38, 0x44, 0x92, 0xaa, 0xa2, 0xaa, 0x92, 0x44, 0x38,
};

static const BitmapCharRec ch169 = { 7, 9, 0, -1, 8, ch169data };


/* char: 0xa8 */

static const GLubyte ch168data[] = {
  0xd8,
};

static const BitmapCharRec ch168 = { 5, 1, -1, -8, 8, ch168data };


/* char: 0xa7 */

static const GLubyte ch167data[] = {
  0x60, 0x90, 0x10, 0x60, 0x90, 0x90, 0x60, 0x80, 0x90, 0x60,
};

static const BitmapCharRec ch167 = { 4, 10, -2, 0, 8, ch167data };


/* char: 0xa6 */

static const GLubyte ch166data[] = {
  0x80, 0x80, 0x80, 0x80, 0x0, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch166 = { 1, 9, -3, 0, 8, ch166data };


/* char: 0xa5 */

static const GLubyte ch165data[] = {
  0x10, 0x10, 0x7c, 0x10, 0x7c, 0x28, 0x44, 0x82, 0x82,
};

static const BitmapCharRec ch165 = { 7, 9, 0, 0, 8, ch165data };


/* char: 0xa4 */

static const GLubyte ch164data[] = {
  0x84, 0x78, 0x48, 0x48, 0x78, 0x84,
};

static const BitmapCharRec ch164 = { 6, 6, -1, -1, 8, ch164data };


/* char: 0xa3 */

static const GLubyte ch163data[] = {
  0xdc, 0x62, 0x20, 0x20, 0x20, 0x70, 0x20, 0x22, 0x1c,
};

static const BitmapCharRec ch163 = { 7, 9, 0, 0, 8, ch163data };


/* char: 0xa2 */

static const GLubyte ch162data[] = {
  0x20, 0x70, 0xa8, 0xa0, 0xa0, 0xa8, 0x70, 0x20,
};

static const BitmapCharRec ch162 = { 5, 8, -1, -1, 8, ch162data };


/* char: 0xa1 */

static const GLubyte ch161data[] = {
  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x80,
};

static const BitmapCharRec ch161 = { 1, 9, -3, 0, 8, ch161data };


/* char: 0x7e '~' */

static const GLubyte ch126data[] = {
  0x90, 0xa8, 0x48,
};

static const BitmapCharRec ch126 = { 5, 3, -1, -6, 8, ch126data };


/* char: 0x7d '}' */

static const GLubyte ch125data[] = {
  0xe0, 0x10, 0x10, 0x20, 0x18, 0x20, 0x10, 0x10, 0xe0,
};

static const BitmapCharRec ch125 = { 5, 9, -1, 0, 8, ch125data };


/* char: 0x7c '|' */

static const GLubyte ch124data[] = {
  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch124 = { 1, 9, -3, 0, 8, ch124data };


/* char: 0x7b '{' */

static const GLubyte ch123data[] = {
  0x38, 0x40, 0x40, 0x20, 0xc0, 0x20, 0x40, 0x40, 0x38,
};

static const BitmapCharRec ch123 = { 5, 9, -2, 0, 8, ch123data };


/* char: 0x7a 'z' */

static const GLubyte ch122data[] = {
  0xfc, 0x40, 0x20, 0x10, 0x8, 0xfc,
};

static const BitmapCharRec ch122 = { 6, 6, -1, 0, 8, ch122data };


/* char: 0x79 'y' */

static const GLubyte ch121data[] = {
  0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84,
};

static const BitmapCharRec ch121 = { 6, 8, -1, 2, 8, ch121data };


/* char: 0x78 'x' */

static const GLubyte ch120data[] = {
  0x84, 0x48, 0x30, 0x30, 0x48, 0x84,
};

static const BitmapCharRec ch120 = { 6, 6, -1, 0, 8, ch120data };


/* char: 0x77 'w' */

static const GLubyte ch119data[] = {
  0x44, 0xaa, 0x92, 0x92, 0x82, 0x82,
};

static const BitmapCharRec ch119 = { 7, 6, 0, 0, 8, ch119data };


/* char: 0x76 'v' */

static const GLubyte ch118data[] = {
  0x20, 0x50, 0x50, 0x88, 0x88, 0x88,
};

static const BitmapCharRec ch118 = { 5, 6, -1, 0, 8, ch118data };


/* char: 0x75 'u' */

static const GLubyte ch117data[] = {
  0x74, 0x88, 0x88, 0x88, 0x88, 0x88,
};

static const BitmapCharRec ch117 = { 6, 6, -1, 0, 8, ch117data };


/* char: 0x74 't' */

static const GLubyte ch116data[] = {
  0x38, 0x44, 0x40, 0x40, 0x40, 0xf8, 0x40, 0x40,
};

static const BitmapCharRec ch116 = { 6, 8, -1, 0, 8, ch116data };


/* char: 0x73 's' */

static const GLubyte ch115data[] = {
  0x78, 0x84, 0x18, 0x60, 0x84, 0x78,
};

static const BitmapCharRec ch115 = { 6, 6, -1, 0, 8, ch115data };


/* char: 0x72 'r' */

static const GLubyte ch114data[] = {
  0x40, 0x40, 0x40, 0x40, 0x44, 0xb8,
};

static const BitmapCharRec ch114 = { 6, 6, -1, 0, 8, ch114data };


/* char: 0x71 'q' */

static const GLubyte ch113data[] = {
  0x4, 0x4, 0x4, 0x74, 0x8c, 0x84, 0x8c, 0x74,
};

static const BitmapCharRec ch113 = { 6, 8, -1, 2, 8, ch113data };


/* char: 0x70 'p' */

static const GLubyte ch112data[] = {
  0x80, 0x80, 0x80, 0xb8, 0xc4, 0x84, 0xc4, 0xb8,
};

static const BitmapCharRec ch112 = { 6, 8, -1, 2, 8, ch112data };


/* char: 0x6f 'o' */

static const GLubyte ch111data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch111 = { 6, 6, -1, 0, 8, ch111data };


/* char: 0x6e 'n' */

static const GLubyte ch110data[] = {
  0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8,
};

static const BitmapCharRec ch110 = { 6, 6, -1, 0, 8, ch110data };


/* char: 0x6d 'm' */

static const GLubyte ch109data[] = {
  0x82, 0x92, 0x92, 0x92, 0x92, 0xec,
};

static const BitmapCharRec ch109 = { 7, 6, 0, 0, 8, ch109data };


/* char: 0x6c 'l' */

static const GLubyte ch108data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60,
};

static const BitmapCharRec ch108 = { 5, 9, -1, 0, 8, ch108data };


/* char: 0x6b 'k' */

static const GLubyte ch107data[] = {
  0x84, 0x88, 0x90, 0xe0, 0x90, 0x88, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch107 = { 6, 9, -1, 0, 8, ch107data };


/* char: 0x6a 'j' */

static const GLubyte ch106data[] = {
  0x70, 0x88, 0x88, 0x8, 0x8, 0x8, 0x8, 0x18, 0x0, 0x8,
};

static const BitmapCharRec ch106 = { 5, 10, -1, 2, 8, ch106data };


/* char: 0x69 'i' */

static const GLubyte ch105data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x20,
};

static const BitmapCharRec ch105 = { 5, 8, -1, 0, 8, ch105data };


/* char: 0x68 'h' */

static const GLubyte ch104data[] = {
  0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch104 = { 6, 9, -1, 0, 8, ch104data };


/* char: 0x67 'g' */

static const GLubyte ch103data[] = {
  0x78, 0x84, 0x78, 0x80, 0x70, 0x88, 0x88, 0x74,
};

static const BitmapCharRec ch103 = { 6, 8, -1, 2, 8, ch103data };


/* char: 0x66 'f' */

static const GLubyte ch102data[] = {
  0x40, 0x40, 0x40, 0x40, 0xf8, 0x40, 0x40, 0x44, 0x38,
};

static const BitmapCharRec ch102 = { 6, 9, -1, 0, 8, ch102data };


/* char: 0x65 'e' */

static const GLubyte ch101data[] = {
  0x78, 0x84, 0x80, 0xfc, 0x84, 0x78,
};

static const BitmapCharRec ch101 = { 6, 6, -1, 0, 8, ch101data };


/* char: 0x64 'd' */

static const GLubyte ch100data[] = {
  0x74, 0x8c, 0x84, 0x84, 0x8c, 0x74, 0x4, 0x4, 0x4,
};

static const BitmapCharRec ch100 = { 6, 9, -1, 0, 8, ch100data };


/* char: 0x63 'c' */

static const GLubyte ch99data[] = {
  0x78, 0x84, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch99 = { 6, 6, -1, 0, 8, ch99data };


/* char: 0x62 'b' */

static const GLubyte ch98data[] = {
  0xb8, 0xc4, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch98 = { 6, 9, -1, 0, 8, ch98data };


/* char: 0x61 'a' */

static const GLubyte ch97data[] = {
  0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78,
};

static const BitmapCharRec ch97 = { 6, 6, -1, 0, 8, ch97data };


/* char: 0x60 '`' */

static const GLubyte ch96data[] = {
  0x10, 0x60, 0xe0,
};

static const BitmapCharRec ch96 = { 4, 3, -2, -6, 8, ch96data };


/* char: 0x5f '_' */

static const GLubyte ch95data[] = {
  0xfe,
};

static const BitmapCharRec ch95 = { 7, 1, 0, 1, 8, ch95data };


/* char: 0x5e '^' */

static const GLubyte ch94data[] = {
  0x88, 0x50, 0x20,
};

static const BitmapCharRec ch94 = { 5, 3, -1, -6, 8, ch94data };


/* char: 0x5d ']' */

static const GLubyte ch93data[] = {
  0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xf0,
};

static const BitmapCharRec ch93 = { 4, 9, -1, 0, 8, ch93data };


/* char: 0x5c '\' */

static const GLubyte ch92data[] = {
  0x2, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x80,
};

static const BitmapCharRec ch92 = { 7, 9, 0, 0, 8, ch92data };


/* char: 0x5b '[' */

static const GLubyte ch91data[] = {
  0xf0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0,
};

static const BitmapCharRec ch91 = { 4, 9, -2, 0, 8, ch91data };


/* char: 0x5a 'Z' */

static const GLubyte ch90data[] = {
  0xfc, 0x80, 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0xfc,
};

static const BitmapCharRec ch90 = { 6, 9, -1, 0, 8, ch90data };


/* char: 0x59 'Y' */

static const GLubyte ch89data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0x28, 0x44, 0x82, 0x82,
};

static const BitmapCharRec ch89 = { 7, 9, 0, 0, 8, ch89data };


/* char: 0x58 'X' */

static const GLubyte ch88data[] = {
  0x82, 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x82,
};

static const BitmapCharRec ch88 = { 7, 9, 0, 0, 8, ch88data };


/* char: 0x57 'W' */

static const GLubyte ch87data[] = {
  0x44, 0xaa, 0x92, 0x92, 0x92, 0x82, 0x82, 0x82, 0x82,
};

static const BitmapCharRec ch87 = { 7, 9, 0, 0, 8, ch87data };


/* char: 0x56 'V' */

static const GLubyte ch86data[] = {
  0x10, 0x28, 0x28, 0x28, 0x44, 0x44, 0x44, 0x82, 0x82,
};

static const BitmapCharRec ch86 = { 7, 9, 0, 0, 8, ch86data };


/* char: 0x55 'U' */

static const GLubyte ch85data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
};

static const BitmapCharRec ch85 = { 6, 9, -1, 0, 8, ch85data };


/* char: 0x54 'T' */

static const GLubyte ch84data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xfe,
};

static const BitmapCharRec ch84 = { 7, 9, 0, 0, 8, ch84data };


/* char: 0x53 'S' */

static const GLubyte ch83data[] = {
  0x78, 0x84, 0x4, 0x4, 0x78, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch83 = { 6, 9, -1, 0, 8, ch83data };


/* char: 0x52 'R' */

static const GLubyte ch82data[] = {
  0x84, 0x88, 0x90, 0xa0, 0xf8, 0x84, 0x84, 0x84, 0xf8,
};

static const BitmapCharRec ch82 = { 6, 9, -1, 0, 8, ch82data };


/* char: 0x51 'Q' */

static const GLubyte ch81data[] = {
  0x4, 0x78, 0x94, 0xa4, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch81 = { 6, 10, -1, 1, 8, ch81data };


/* char: 0x50 'P' */

static const GLubyte ch80data[] = {
  0x80, 0x80, 0x80, 0x80, 0xf8, 0x84, 0x84, 0x84, 0xf8,
};

static const BitmapCharRec ch80 = { 6, 9, -1, 0, 8, ch80data };


/* char: 0x4f 'O' */

static const GLubyte ch79data[] = {
  0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch79 = { 6, 9, -1, 0, 8, ch79data };


/* char: 0x4e 'N' */

static const GLubyte ch78data[] = {
  0x84, 0x84, 0x84, 0x8c, 0x94, 0xa4, 0xc4, 0x84, 0x84,
};

static const BitmapCharRec ch78 = { 6, 9, -1, 0, 8, ch78data };


/* char: 0x4d 'M' */

static const GLubyte ch77data[] = {
  0x82, 0x82, 0x82, 0x92, 0x92, 0xaa, 0xc6, 0x82, 0x82,
};

static const BitmapCharRec ch77 = { 7, 9, 0, 0, 8, ch77data };


/* char: 0x4c 'L' */

static const GLubyte ch76data[] = {
  0xfc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch76 = { 6, 9, -1, 0, 8, ch76data };


/* char: 0x4b 'K' */

static const GLubyte ch75data[] = {
  0x84, 0x88, 0x90, 0xa0, 0xc0, 0xa0, 0x90, 0x88, 0x84,
};

static const BitmapCharRec ch75 = { 6, 9, -1, 0, 8, ch75data };


/* char: 0x4a 'J' */

static const GLubyte ch74data[] = {
  0x70, 0x88, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x3c,
};

static const BitmapCharRec ch74 = { 6, 9, -1, 0, 8, ch74data };


/* char: 0x49 'I' */

static const GLubyte ch73data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8,
};

static const BitmapCharRec ch73 = { 5, 9, -1, 0, 8, ch73data };


/* char: 0x48 'H' */

static const GLubyte ch72data[] = {
  0x84, 0x84, 0x84, 0x84, 0xfc, 0x84, 0x84, 0x84, 0x84,
};

static const BitmapCharRec ch72 = { 6, 9, -1, 0, 8, ch72data };


/* char: 0x47 'G' */

static const GLubyte ch71data[] = {
  0x74, 0x8c, 0x84, 0x9c, 0x80, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch71 = { 6, 9, -1, 0, 8, ch71data };


/* char: 0x46 'F' */

static const GLubyte ch70data[] = {
  0x80, 0x80, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80, 0xfc,
};

static const BitmapCharRec ch70 = { 6, 9, -1, 0, 8, ch70data };


/* char: 0x45 'E' */

static const GLubyte ch69data[] = {
  0xfc, 0x80, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80, 0xfc,
};

static const BitmapCharRec ch69 = { 6, 9, -1, 0, 8, ch69data };


/* char: 0x44 'D' */

static const GLubyte ch68data[] = {
  0xfc, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xfc,
};

static const BitmapCharRec ch68 = { 7, 9, 0, 0, 8, ch68data };


/* char: 0x43 'C' */

static const GLubyte ch67data[] = {
  0x78, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x84, 0x78,
};

static const BitmapCharRec ch67 = { 6, 9, -1, 0, 8, ch67data };


/* char: 0x42 'B' */

static const GLubyte ch66data[] = {
  0xfc, 0x42, 0x42, 0x42, 0x7c, 0x42, 0x42, 0x42, 0xfc,
};

static const BitmapCharRec ch66 = { 7, 9, 0, 0, 8, ch66data };


/* char: 0x41 'A' */

static const GLubyte ch65data[] = {
  0x84, 0x84, 0x84, 0xfc, 0x84, 0x84, 0x84, 0x48, 0x30,
};

static const BitmapCharRec ch65 = { 6, 9, -1, 0, 8, ch65data };


/* char: 0x40 '@' */

static const GLubyte ch64data[] = {
  0x78, 0x80, 0x94, 0xac, 0xa4, 0x9c, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch64 = { 6, 9, -1, 0, 8, ch64data };


/* char: 0x3f '?' */

static const GLubyte ch63data[] = {
  0x10, 0x0, 0x10, 0x10, 0x8, 0x4, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch63 = { 6, 9, -1, 0, 8, ch63data };


/* char: 0x3e '>' */

static const GLubyte ch62data[] = {
  0x80, 0x40, 0x20, 0x10, 0x8, 0x10, 0x20, 0x40, 0x80,
};

static const BitmapCharRec ch62 = { 5, 9, -1, 0, 8, ch62data };


/* char: 0x3d '=' */

static const GLubyte ch61data[] = {
  0xfc, 0x0, 0x0, 0xfc,
};

static const BitmapCharRec ch61 = { 6, 4, -1, -2, 8, ch61data };


/* char: 0x3c '<' */

static const GLubyte ch60data[] = {
  0x8, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x8,
};

static const BitmapCharRec ch60 = { 5, 9, -2, 0, 8, ch60data };


/* char: 0x3b ';' */

static const GLubyte ch59data[] = {
  0x80, 0x60, 0x70, 0x0, 0x0, 0x20, 0x70, 0x20,
};

static const BitmapCharRec ch59 = { 4, 8, -1, 1, 8, ch59data };


/* char: 0x3a ':' */

static const GLubyte ch58data[] = {
  0x40, 0xe0, 0x40, 0x0, 0x0, 0x40, 0xe0, 0x40,
};

static const BitmapCharRec ch58 = { 3, 8, -2, 1, 8, ch58data };


/* char: 0x39 '9' */

static const GLubyte ch57data[] = {
  0x70, 0x8, 0x4, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch57 = { 6, 9, -1, 0, 8, ch57data };


/* char: 0x38 '8' */

static const GLubyte ch56data[] = {
  0x78, 0x84, 0x84, 0x84, 0x78, 0x84, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch56 = { 6, 9, -1, 0, 8, ch56data };


/* char: 0x37 '7' */

static const GLubyte ch55data[] = {
  0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x8, 0x4, 0xfc,
};

static const BitmapCharRec ch55 = { 6, 9, -1, 0, 8, ch55data };


/* char: 0x36 '6' */

static const GLubyte ch54data[] = {
  0x78, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x40, 0x38,
};

static const BitmapCharRec ch54 = { 6, 9, -1, 0, 8, ch54data };


/* char: 0x35 '5' */

static const GLubyte ch53data[] = {
  0x78, 0x84, 0x4, 0x4, 0xc4, 0xb8, 0x80, 0x80, 0xfc,
};

static const BitmapCharRec ch53 = { 6, 9, -1, 0, 8, ch53data };


/* char: 0x34 '4' */

static const GLubyte ch52data[] = {
  0x8, 0x8, 0xfc, 0x88, 0x88, 0x48, 0x28, 0x18, 0x8,
};

static const BitmapCharRec ch52 = { 6, 9, -1, 0, 8, ch52data };


/* char: 0x33 '3' */

static const GLubyte ch51data[] = {
  0x78, 0x84, 0x4, 0x4, 0x38, 0x10, 0x8, 0x4, 0xfc,
};

static const BitmapCharRec ch51 = { 6, 9, -1, 0, 8, ch51data };


/* char: 0x32 '2' */

static const GLubyte ch50data[] = {
  0xfc, 0x80, 0x40, 0x30, 0x8, 0x4, 0x84, 0x84, 0x78,
};

static const BitmapCharRec ch50 = { 6, 9, -1, 0, 8, ch50data };


/* char: 0x31 '1' */

static const GLubyte ch49data[] = {
  0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa0, 0x60, 0x20,
};

static const BitmapCharRec ch49 = { 5, 9, -1, 0, 8, ch49data };


/* char: 0x30 '0' */

static const GLubyte ch48data[] = {
  0x30, 0x48, 0x84, 0x84, 0x84, 0x84, 0x84, 0x48, 0x30,
};

static const BitmapCharRec ch48 = { 6, 9, -1, 0, 8, ch48data };


/* char: 0x2f '/' */

static const GLubyte ch47data[] = {
  0x80, 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x2,
};

static const BitmapCharRec ch47 = { 7, 9, 0, 0, 8, ch47data };


/* char: 0x2e '.' */

static const GLubyte ch46data[] = {
  0x40, 0xe0, 0x40,
};

static const BitmapCharRec ch46 = { 3, 3, -2, 1, 8, ch46data };


/* char: 0x2d '-' */

static const GLubyte ch45data[] = {
  0xfc,
};

static const BitmapCharRec ch45 = { 6, 1, -1, -4, 8, ch45data };


/* char: 0x2c ',' */

static const GLubyte ch44data[] = {
  0x80, 0x60, 0x70,
};

static const BitmapCharRec ch44 = { 4, 3, -1, 1, 8, ch44data };


/* char: 0x2b '+' */

static const GLubyte ch43data[] = {
  0x20, 0x20, 0xf8, 0x20, 0x20,
};

static const BitmapCharRec ch43 = { 5, 5, -1, -2, 8, ch43data };


/* char: 0x2a '*' */

static const GLubyte ch42data[] = {
  0x48, 0x30, 0xfc, 0x30, 0x48,
};

static const BitmapCharRec ch42 = { 6, 5, -1, -2, 8, ch42data };


/* char: 0x29 ')' */

static const GLubyte ch41data[] = {
  0x80, 0x40, 0x40, 0x20, 0x20, 0x20, 0x40, 0x40, 0x80,
};

static const BitmapCharRec ch41 = { 3, 9, -2, 0, 8, ch41data };


/* char: 0x28 '(' */

static const GLubyte ch40data[] = {
  0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20,
};

static const BitmapCharRec ch40 = { 3, 9, -3, 0, 8, ch40data };


/* char: 0x27 ''' */

static const GLubyte ch39data[] = {
  0x80, 0x60, 0x70,
};

static const BitmapCharRec ch39 = { 4, 3, -1, -6, 8, ch39data };


/* char: 0x26 '&' */

static const GLubyte ch38data[] = {
  0x74, 0x88, 0x94, 0x60, 0x90, 0x90, 0x60,
};

static const BitmapCharRec ch38 = { 6, 7, -1, 0, 8, ch38data };


/* char: 0x25 '%' */

static const GLubyte ch37data[] = {
  0x88, 0x54, 0x48, 0x20, 0x10, 0x10, 0x48, 0xa4, 0x44,
};

static const BitmapCharRec ch37 = { 6, 9, -1, 0, 8, ch37data };


/* char: 0x24 '$' */

static const GLubyte ch36data[] = {
  0x20, 0xf0, 0x28, 0x70, 0xa0, 0x78, 0x20,
};

static const BitmapCharRec ch36 = { 5, 7, -1, -1, 8, ch36data };


/* char: 0x23 '#' */

static const GLubyte ch35data[] = {
  0x48, 0x48, 0xfc, 0x48, 0xfc, 0x48, 0x48,
};

static const BitmapCharRec ch35 = { 6, 7, -1, -1, 8, ch35data };


/* char: 0x22 '"' */

static const GLubyte ch34data[] = {
  0x90, 0x90, 0x90,
};

static const BitmapCharRec ch34 = { 4, 3, -2, -6, 8, ch34data };


/* char: 0x21 '!' */

static const GLubyte ch33data[] = {
  0x80, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch33 = { 1, 9, -3, 0, 8, ch33data };


/* char: 0x1f */

static const GLubyte ch31data[] = {
  0x80,
};

static const BitmapCharRec ch31 = { 1, 1, -3, -3, 8, ch31data };


/* char: 0x1e */

static const GLubyte ch30data[] = {
  0xdc, 0x62, 0x20, 0x20, 0x20, 0x70, 0x20, 0x22, 0x1c,
};

static const BitmapCharRec ch30 = { 7, 9, 0, 0, 8, ch30data };


/* char: 0x1d */

static const GLubyte ch29data[] = {
  0x80, 0x40, 0xfe, 0x10, 0xfe, 0x4, 0x2,
};

static const BitmapCharRec ch29 = { 7, 7, 0, 0, 8, ch29data };


/* char: 0x1c */

static const GLubyte ch28data[] = {
  0x88, 0x48, 0x48, 0x48, 0x48, 0xfc,
};

static const BitmapCharRec ch28 = { 6, 6, -1, 0, 8, ch28data };


/* char: 0x1b */

static const GLubyte ch27data[] = {
  0xfe, 0x80, 0x20, 0x8, 0x2, 0x8, 0x20, 0x80,
};

static const BitmapCharRec ch27 = { 7, 8, 0, 0, 8, ch27data };


/* char: 0x1a */

static const GLubyte ch26data[] = {
  0xfe, 0x2, 0x8, 0x20, 0x80, 0x20, 0x8, 0x2,
};

static const BitmapCharRec ch26 = { 7, 8, 0, 0, 8, ch26data };


/* char: 0x19 */

static const GLubyte ch25data[] = {
  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch25 = { 1, 13, -3, 2, 8, ch25data };


/* char: 0x18 */

static const GLubyte ch24data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0xff,
};

static const BitmapCharRec ch24 = { 8, 6, 0, 2, 8, ch24data };


/* char: 0x17 */

static const GLubyte ch23data[] = {
  0xff, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};

static const BitmapCharRec ch23 = { 8, 8, 0, -3, 8, ch23data };


/* char: 0x16 */

static const GLubyte ch22data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};

static const BitmapCharRec ch22 = { 4, 13, 0, 2, 8, ch22data };


/* char: 0x15 */

static const GLubyte ch21data[] = {
  0x80, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch21 = { 5, 13, -3, 2, 8, ch21data };


/* char: 0x14 */

static const GLubyte ch20data[] = {
  0xff,
};

static const BitmapCharRec ch20 = { 8, 1, 0, 1, 8, ch20data };


/* char: 0x13 */

static const GLubyte ch19data[] = {
  0xff,
};

static const BitmapCharRec ch19 = { 8, 1, 0, -1, 8, ch19data };


/* char: 0x12 */

static const GLubyte ch18data[] = {
  0xff,
};

static const BitmapCharRec ch18 = { 8, 1, 0, -3, 8, ch18data };


/* char: 0x11 */

static const GLubyte ch17data[] = {
  0xff,
};

static const BitmapCharRec ch17 = { 8, 1, 0, -5, 8, ch17data };


/* char: 0x10 */

static const GLubyte ch16data[] = {
  0xff,
};

static const BitmapCharRec ch16 = { 8, 1, 0, -7, 8, ch16data };


/* char: 0xf */

static const GLubyte ch15data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0xff, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};

static const BitmapCharRec ch15 = { 8, 13, 0, 2, 8, ch15data };


/* char: 0xe */

static const GLubyte ch14data[] = {
  0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch14 = { 5, 8, -3, -3, 8, ch14data };


/* char: 0xd */

static const GLubyte ch13data[] = {
  0x80, 0x80, 0x80, 0x80, 0x80, 0xf8,
};

static const BitmapCharRec ch13 = { 5, 6, -3, 2, 8, ch13data };


/* char: 0xc */

static const GLubyte ch12data[] = {
  0x10, 0x10, 0x10, 0x10, 0x10, 0xf0,
};

static const BitmapCharRec ch12 = { 4, 6, 0, 2, 8, ch12data };


/* char: 0xb */

static const GLubyte ch11data[] = {
  0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};

static const BitmapCharRec ch11 = { 4, 8, 0, -3, 8, ch11data };


/* char: 0xa */

static const GLubyte ch10data[] = {
  0x8, 0x8, 0x8, 0x8, 0x3e, 0x20, 0x50, 0x88, 0x88,
};

static const BitmapCharRec ch10 = { 7, 9, 0, 2, 8, ch10data };


/* char: 0x9 */

static const GLubyte ch9data[] = {
  0x3e, 0x20, 0x20, 0x20, 0x88, 0x98, 0xa8, 0xc8, 0x88,
};

static const BitmapCharRec ch9 = { 7, 9, 0, 2, 8, ch9data };


/* char: 0x8 */

static const GLubyte ch8data[] = {
  0xfe, 0x10, 0x10, 0xfe, 0x10, 0x10,
};

static const BitmapCharRec ch8 = { 7, 6, 0, 0, 8, ch8data };


/* char: 0x7 */

static const GLubyte ch7data[] = {
  0x70, 0x88, 0x88, 0x70,
};

static const BitmapCharRec ch7 = { 5, 4, -1, -5, 8, ch7data };


/* char: 0x6 */

static const GLubyte ch6data[] = {
  0x20, 0x20, 0x3c, 0x20, 0x3e, 0xf8, 0x80, 0x80, 0x80,
};

static const BitmapCharRec ch6 = { 7, 9, 0, 2, 8, ch6data };


/* char: 0x5 */

static const GLubyte ch5data[] = {
  0x22, 0x22, 0x3c, 0x22, 0x3c, 0x78, 0x80, 0x80, 0x78,
};

static const BitmapCharRec ch5 = { 7, 9, 0, 2, 8, ch5data };


/* char: 0x4 */

static const GLubyte ch4data[] = {
  0x10, 0x10, 0x1c, 0x10, 0x9e, 0x80, 0xe0, 0x80, 0xf0,
};

static const BitmapCharRec ch4 = { 7, 9, 0, 2, 8, ch4data };


/* char: 0x3 */

static const GLubyte ch3data[] = {
  0x8, 0x8, 0x8, 0x3e, 0x88, 0x88, 0xf8, 0x88, 0x88,
};

static const BitmapCharRec ch3 = { 7, 9, 0, 2, 8, ch3data };


/* char: 0x2 */

static const GLubyte ch2data[] = {
  0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
};

static const BitmapCharRec ch2 = { 8, 12, 0, 2, 8, ch2data };


/* char: 0x1 */

static const GLubyte ch1data[] = {
  0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10,
};

static const BitmapCharRec ch1 = { 7, 7, 0, -1, 8, ch1data };

static const BitmapCharRec *const chars[] = {
  &ch0,
  &ch1,
  &ch2,
  &ch3,
  &ch4,
  &ch5,
  &ch6,
  &ch7,
  &ch8,
  &ch9,
  &ch10,
  &ch11,
  &ch12,
  &ch13,
  &ch14,
  &ch15,
  &ch16,
  &ch17,
  &ch18,
  &ch19,
  &ch20,
  &ch21,
  &ch22,
  &ch23,
  &ch24,
  &ch25,
  &ch26,
  &ch27,
  &ch28,
  &ch29,
  &ch30,
  &ch31,
  &ch32,
  &ch33,
  &ch34,
  &ch35,
  &ch36,
  &ch37,
  &ch38,
  &ch39,
  &ch40,
  &ch41,
  &ch42,
  &ch43,
  &ch44,
  &ch45,
  &ch46,
  &ch47,
  &ch48,
  &ch49,
  &ch50,
  &ch51,
  &ch52,
  &ch53,
  &ch54,
  &ch55,
  &ch56,
  &ch57,
  &ch58,
  &ch59,
  &ch60,
  &ch61,
  &ch62,
  &ch63,
  &ch64,
  &ch65,
  &ch66,
  &ch67,
  &ch68,
  &ch69,
  &ch70,
  &ch71,
  &ch72,
  &ch73,
  &ch74,
  &ch75,
  &ch76,
  &ch77,
  &ch78,
  &ch79,
  &ch80,
  &ch81,
  &ch82,
  &ch83,
  &ch84,
  &ch85,
  &ch86,
  &ch87,
  &ch88,
  &ch89,
  &ch90,
  &ch91,
  &ch92,
  &ch93,
  &ch94,
  &ch95,
  &ch96,
  &ch97,
  &ch98,
  &ch99,
  &ch100,
  &ch101,
  &ch102,
  &ch103,
  &ch104,
  &ch105,
  &ch106,
  &ch107,
  &ch108,
  &ch109,
  &ch110,
  &ch111,
  &ch112,
  &ch113,
  &ch114,
  &ch115,
  &ch116,
  &ch117,
  &ch118,
  &ch119,
  &ch120,
  &ch121,
  &ch122,
  &ch123,
  &ch124,
  &ch125,
  &ch126,
  &ch127,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  &ch160,
  &ch161,
  &ch162,
  &ch163,
  &ch164,
  &ch165,
  &ch166,
  &ch167,
  &ch168,
  &ch169,
  &ch170,
  &ch171,
  &ch172,
  &ch173,
  &ch174,
  &ch175,
  &ch176,
  &ch177,
  &ch178,
  &ch179,
  &ch180,
  &ch181,
  &ch182,
  &ch183,
  &ch184,
  &ch185,
  &ch186,
  &ch187,
  &ch188,
  &ch189,
  &ch190,
  &ch191,
  &ch192,
  &ch193,
  &ch194,
  &ch195,
  &ch196,
  &ch197,
  &ch198,
  &ch199,
  &ch200,
  &ch201,
  &ch202,
  &ch203,
  &ch204,
  &ch205,
  &ch206,
  &ch207,
  &ch208,
  &ch209,
  &ch210,
  &ch211,
  &ch212,
  &ch213,
  &ch214,
  &ch215,
  &ch216,
  &ch217,
  &ch218,
  &ch219,
  &ch220,
  &ch221,
  &ch222,
  &ch223,
  &ch224,
  &ch225,
  &ch226,
  &ch227,
  &ch228,
  &ch229,
  &ch230,
  &ch231,
  &ch232,
  &ch233,
  &ch234,
  &ch235,
  &ch236,
  &ch237,
  &ch238,
  &ch239,
  &ch240,
  &ch241,
  &ch242,
  &ch243,
  &ch244,
  &ch245,
  &ch246,
  &ch247,
  &ch248,
  &ch249,
  &ch250,
  &ch251,
  &ch252,
  &ch253,
  &ch254,
  &ch255,
};

const BitmapFontRec plutBitmap8By13 = {
  "-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1",
  256,
  0,
  chars
};

void plutBitmapCharacter(int c)
{
  const BitmapCharRec *ch;
  BitmapFontPtr fontinfo;
  GLint swapbytes, lsbfirst, rowlength;
  GLint skiprows, skippixels, alignment;

  fontinfo = (BitmapFontPtr) & plutBitmap8By13;

  if(c < fontinfo->first || c >= fontinfo->first + fontinfo->num_chars)
    return;
  ch = fontinfo->ch[c - fontinfo->first];
  if(ch) {
    /* Save current modes. */
    glGetIntegerv(GL_UNPACK_SWAP_BYTES, &swapbytes);
    glGetIntegerv(GL_UNPACK_LSB_FIRST, &lsbfirst);
    glGetIntegerv(GL_UNPACK_ROW_LENGTH, &rowlength);
    glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skiprows);
    glGetIntegerv(GL_UNPACK_SKIP_PIXELS, &skippixels);
    glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);
    /* Little endian machines (DEC Alpha for example) could
       benefit from setting GL_UNPACK_LSB_FIRST to GL_TRUE
       instead of GL_FALSE, but this would require changing the
       generated bitmaps too. */
    glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);
    glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE);
    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
    glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
    glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    glBitmap(ch->width, ch->height, ch->xorig, ch->yorig, ch->advance, 0, ch->bitmap);
    /* Restore saved modes. */
    glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);
    glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);
    glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength);
    glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
    glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
    glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
  }
}

#endif
#endif
