diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2010-02-25 16:19:20 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2010-02-25 17:40:11 -0500 |
commit | b15fe60ba568ff28de38dd0dc834fb9198650002 (patch) | |
tree | d854118a7c83865a1a8020bad8826c0a76c6abfd /src/glut | |
parent | 74377c8d1b750f04dcad12e5885af2d3178b3bad (diff) |
Drop unused glut subdirectories
Diffstat (limited to 'src/glut')
91 files changed, 0 insertions, 54558 deletions
diff --git a/src/glut/dos/PC_HW/pc_hw.c b/src/glut/dos/PC_HW/pc_hw.c deleted file mode 100644 index 100b372165..0000000000 --- a/src/glut/dos/PC_HW/pc_hw.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * PC/HW routine collection v1.3 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - -#include <dpmi.h> -#include <fcntl.h> -#include <sys/stat.h> /* for mode definitions */ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -#include "pc_hw.h" - - -/* - * atexit - */ -#define MAX_ATEXIT 32 - -static volatile int atexitcnt; -static VFUNC atexittbl[MAX_ATEXIT]; - - -static void __attribute__((destructor)) -doexit (void) -{ - while (atexitcnt) atexittbl[--atexitcnt](); -} - - -int -pc_clexit (VFUNC f) -{ - int i; - - for (i = 0; i < atexitcnt; i++) { - if (atexittbl[i] == f) { - for (atexitcnt--; i < atexitcnt; i++) atexittbl[i] = atexittbl[i+1]; - atexittbl[i] = 0; - return 0; - } - } - return -1; -} - - -int -pc_atexit (VFUNC f) -{ - pc_clexit(f); - if (atexitcnt < MAX_ATEXIT) { - atexittbl[atexitcnt++] = f; - return 0; - } - return -1; -} - - -/* - * locked memory allocation - */ -void * -pc_malloc (size_t size) -{ - void *p = malloc(size); - - if (p) { - if (_go32_dpmi_lock_data(p, size)) { - free(p); - return NULL; - } - } - - return p; -} - - -/* - * standard redirection - */ -static char outname[L_tmpnam]; -static int h_out, h_outbak; -static char errname[L_tmpnam]; -static int h_err, h_errbak; - - -int -pc_open_stdout (void) -{ - tmpnam(outname); - - if ((h_out=open(outname, O_WRONLY | O_CREAT | O_TEXT | O_TRUNC, S_IREAD | S_IWRITE)) > 0) { - h_outbak = dup(STDOUT_FILENO); - fflush(stdout); - dup2(h_out, STDOUT_FILENO); - } - - return h_out; -} - - -void -pc_close_stdout (void) -{ - FILE *f; - char *line = alloca(512); - - if (h_out > 0) { - dup2(h_outbak, STDOUT_FILENO); - close(h_out); - close(h_outbak); - - f = fopen(outname, "rt"); - while (fgets(line, 512, f)) { - fputs(line, stdout); - } - fclose(f); - - remove(outname); - } -} - - -int -pc_open_stderr (void) -{ - tmpnam(errname); - - if ((h_err=open(errname, O_WRONLY | O_CREAT | O_TEXT | O_TRUNC, S_IREAD | S_IWRITE)) > 0) { - h_errbak = dup(STDERR_FILENO); - fflush(stderr); - dup2(h_err, STDERR_FILENO); - } - - return h_err; -} - - -void -pc_close_stderr (void) -{ - FILE *f; - char *line = alloca(512); - - if (h_err > 0) { - dup2(h_errbak, STDERR_FILENO); - close(h_err); - close(h_errbak); - - f = fopen(errname, "rt"); - while (fgets(line, 512, f)) { - fputs(line, stderr); - } - fclose(f); - - remove(errname); - } -} diff --git a/src/glut/dos/PC_HW/pc_hw.h b/src/glut/dos/PC_HW/pc_hw.h deleted file mode 100644 index 41948ec991..0000000000 --- a/src/glut/dos/PC_HW/pc_hw.h +++ /dev/null @@ -1,229 +0,0 @@ -/* - * PC/HW routine collection v1.4 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - -#ifndef PC_HW_H_included -#define PC_HW_H_included - -#include <dpmi.h> -#include <stdlib.h> - -/* - * misc C definitions - */ -#define FALSE 0 -#define TRUE !FALSE - -#define SQR(x) ((x) * (x)) - -#define MIN(x,y) (((x) < (y)) ? (x) : (y)) -#define MAX(x,y) (((x) > (y)) ? (x) : (y)) -#define MID(x,y,z) MAX((x), MIN((y), (z))) - -typedef void (*VFUNC) (void); -typedef void (*PFUNC) (void *); -typedef void (*MFUNC) (int x, int y, int z, int b); - -/* - * atexit - */ -int pc_atexit (VFUNC f); -int pc_clexit (VFUNC f); - -/* - * locked memory - */ -#define ENDOFUNC(x) static void x##_end() { } -#define LOCKFUNC(x) _go32_dpmi_lock_code((void *)x, (long)x##_end - (long)x) -#define LOCKDATA(x) _go32_dpmi_lock_data((void *)&x, sizeof(x)) -#define LOCKBUFF(x, l) _go32_dpmi_lock_data((void *)x, l) - -void *pc_malloc (size_t size); - -/* - * IRQ - */ -#define ENABLE() __asm __volatile ("sti") -#define DISABLE() __asm __volatile ("cli") - -extern int pc_install_irq (int i, int (*handler) ()); -extern int pc_remove_irq (int i); - -/* - * keyboard - */ -#define KB_SHIFT_FLAG 0x0001 -#define KB_CTRL_FLAG 0x0002 -#define KB_ALT_FLAG 0x0004 -#define KB_LWIN_FLAG 0x0008 -#define KB_RWIN_FLAG 0x0010 -#define KB_MENU_FLAG 0x0020 -#define KB_SCROLOCK_FLAG 0x0100 -#define KB_NUMLOCK_FLAG 0x0200 -#define KB_CAPSLOCK_FLAG 0x0400 -#define KB_INALTSEQ_FLAG 0x0800 -#define KB_ACCENT1_FLAG 0x1000 -#define KB_ACCENT2_FLAG 0x2000 -#define KB_ACCENT3_FLAG 0x4000 -#define KB_ACCENT4_FLAG 0x8000 - -#define KEY_A 1 -#define KEY_B 2 -#define KEY_C 3 -#define KEY_D 4 -#define KEY_E 5 -#define KEY_F 6 -#define KEY_G 7 -#define KEY_H 8 -#define KEY_I 9 -#define KEY_J 10 -#define KEY_K 11 -#define KEY_L 12 -#define KEY_M 13 -#define KEY_N 14 -#define KEY_O 15 -#define KEY_P 16 -#define KEY_Q 17 -#define KEY_R 18 -#define KEY_S 19 -#define KEY_T 20 -#define KEY_U 21 -#define KEY_V 22 -#define KEY_W 23 -#define KEY_X 24 -#define KEY_Y 25 -#define KEY_Z 26 -#define KEY_0 27 -#define KEY_1 28 -#define KEY_2 29 -#define KEY_3 30 -#define KEY_4 31 -#define KEY_5 32 -#define KEY_6 33 -#define KEY_7 34 -#define KEY_8 35 -#define KEY_9 36 -#define KEY_0_PAD 37 -#define KEY_1_PAD 38 -#define KEY_2_PAD 39 -#define KEY_3_PAD 40 -#define KEY_4_PAD 41 -#define KEY_5_PAD 42 -#define KEY_6_PAD 43 -#define KEY_7_PAD 44 -#define KEY_8_PAD 45 -#define KEY_9_PAD 46 -#define KEY_F1 47 -#define KEY_F2 48 -#define KEY_F3 49 -#define KEY_F4 50 -#define KEY_F5 51 -#define KEY_F6 52 -#define KEY_F7 53 -#define KEY_F8 54 -#define KEY_F9 55 -#define KEY_F10 56 -#define KEY_F11 57 -#define KEY_F12 58 -#define KEY_ESC 59 -#define KEY_TILDE 60 -#define KEY_MINUS 61 -#define KEY_EQUALS 62 -#define KEY_BACKSPACE 63 -#define KEY_TAB 64 -#define KEY_OPENBRACE 65 -#define KEY_CLOSEBRACE 66 -#define KEY_ENTER 67 -#define KEY_COLON 68 -#define KEY_QUOTE 69 -#define KEY_BACKSLASH 70 -#define KEY_BACKSLASH2 71 -#define KEY_COMMA 72 -#define KEY_STOP 73 -#define KEY_SLASH 74 -#define KEY_SPACE 75 -#define KEY_INSERT 76 -#define KEY_DEL 77 -#define KEY_HOME 78 -#define KEY_END 79 -#define KEY_PGUP 80 -#define KEY_PGDN 81 -#define KEY_LEFT 82 -#define KEY_RIGHT 83 -#define KEY_UP 84 -#define KEY_DOWN 85 -#define KEY_SLASH_PAD 86 -#define KEY_ASTERISK 87 -#define KEY_MINUS_PAD 88 -#define KEY_PLUS_PAD 89 -#define KEY_DEL_PAD 90 -#define KEY_ENTER_PAD 91 -#define KEY_PRTSCR 92 -#define KEY_PAUSE 93 -#define KEY_ABNT_C1 94 -#define KEY_YEN 95 -#define KEY_KANA 96 -#define KEY_CONVERT 97 -#define KEY_NOCONVERT 98 -#define KEY_AT 99 -#define KEY_CIRCUMFLEX 100 -#define KEY_COLON2 101 -#define KEY_KANJI 102 - -#define KEY_MODIFIERS 103 - -#define KEY_LSHIFT 103 -#define KEY_RSHIFT 104 -#define KEY_LCONTROL 105 -#define KEY_RCONTROL 106 -#define KEY_ALT 107 -#define KEY_ALTGR 108 -#define KEY_LWIN 109 -#define KEY_RWIN 110 -#define KEY_MENU 111 -#define KEY_SCRLOCK 112 -#define KEY_NUMLOCK 113 -#define KEY_CAPSLOCK 114 - -#define KEY_MAX 115 - -int pc_install_keyb (void); -void pc_remove_keyb (void); -int pc_keypressed (void); -int pc_readkey (void); -int pc_keydown (int code); -int pc_keyshifts (void); - -/* - * timer - */ -int pc_install_int (PFUNC func, void *parm, unsigned int freq); -int pc_remove_int (int fid); -int pc_adjust_int (int fid, unsigned int freq); -void pc_remove_timer (void); - -/* - * mouse - */ -int pc_install_mouse (void); -void pc_remove_mouse (void); -MFUNC pc_install_mouse_handler (MFUNC handler); -void pc_mouse_area (int x1, int y1, int x2, int y2); -void pc_mouse_speed (int xspeed, int yspeed); -int pc_query_mouse (int *x, int *y, int *z); -void pc_warp_mouse (int x, int y); - -/* - * standard redirection - */ -int pc_open_stdout (void); -int pc_open_stderr (void); -void pc_close_stdout (void); -void pc_close_stderr (void); - -#endif diff --git a/src/glut/dos/PC_HW/pc_irq.S b/src/glut/dos/PC_HW/pc_irq.S deleted file mode 100644 index 7d62ac74ce..0000000000 --- a/src/glut/dos/PC_HW/pc_irq.S +++ /dev/null @@ -1,182 +0,0 @@ -/* - * PC/HW routine collection v1.3 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - - .file "pc_irq.S" - - .text - -#define IRQ_STACK_SIZE 16384 - -#define IRQ_WRAPPER_LEN (__irq_wrapper_1-__irq_wrapper_0) -#define IRQ_OLD (__irq_old_0-__irq_wrapper_0) -#define IRQ_HOOK (__irq_hook_0-__irq_wrapper_0) -#define IRQ_STACK (__irq_stack_0-__irq_wrapper_0) - - .balign 4 -common: - movw $0x0400, %ax - int $0x31 - - movl %ss:8(%ebp), %ebx - cmpl $15, %ebx - jbe 0f - fail: - orl $-1, %eax - popl %edi - popl %ebx - leave - ret - - 0: - movl %ebx, %edi - imull $IRQ_WRAPPER_LEN, %edi - addl $__irq_wrapper_0, %edi - - cmpb $7, %bl - jbe 1f - movb %dl, %dh - subb $8, %dh - 1: - addb %dh, %bl - ret - - .balign 4 - .global _pc_install_irq -_pc_install_irq: - pushl %ebp - movl %esp, %ebp - pushl %ebx - pushl %edi - - call common - - cmpl $0, IRQ_HOOK(%edi) - jne fail - - pushl $IRQ_WRAPPER_LEN - pushl %edi - call __go32_dpmi_lock_code - addl $8, %esp - testl %eax, %eax - jnz fail - - pushl $IRQ_STACK_SIZE - call _pc_malloc - popl %edx - testl %eax, %eax - jz fail - addl %edx, %eax - movl %eax, IRQ_STACK(%edi) - - movl ___djgpp_ds_alias, %eax - movl %eax, IRQ_STACK+4(%edi) - - movl %ss:12(%ebp), %eax - movl %eax, IRQ_HOOK(%edi) - - movw $0x0204, %ax - int $0x31 - movl %edx, IRQ_OLD(%edi) - movw %cx, IRQ_OLD+4(%edi) - movw $0x0205, %ax - movl %edi, %edx - movl %cs, %ecx - int $0x31 - - done: - xorl %eax, %eax - popl %edi - popl %ebx - leave - ret - - .balign 4 - .global _pc_remove_irq -_pc_remove_irq: - pushl %ebp - movl %esp, %ebp - pushl %ebx - pushl %edi - - call common - - cmpl $0, IRQ_HOOK(%edi) - je fail - - movl $0, IRQ_HOOK(%edi) - - movw $0x0205, %ax - movl IRQ_OLD(%edi), %edx - movl IRQ_OLD+4(%edi), %ecx - int $0x31 - - movl IRQ_STACK(%edi), %eax - subl $IRQ_STACK_SIZE, %eax - pushl %eax - call _free - popl %eax - - jmp done - -#define WRAPPER(x) ; \ - .balign 4 ; \ -__irq_wrapper_##x: ; \ - pushal ; \ - pushl %ds ; \ - pushl %es ; \ - pushl %fs ; \ - pushl %gs ; \ - movl %ss, %ebx ; \ - movl %esp, %esi ; \ - lss %cs:__irq_stack_##x, %esp ; \ - pushl %ss ; \ - pushl %ss ; \ - popl %es ; \ - popl %ds ; \ - movl ___djgpp_dos_sel, %fs ; \ - pushl %fs ; \ - popl %gs ; \ - call *__irq_hook_##x ; \ - movl %ebx, %ss ; \ - movl %esi, %esp ; \ - testl %eax, %eax ; \ - popl %gs ; \ - popl %fs ; \ - popl %es ; \ - popl %ds ; \ - popal ; \ - jz __irq_ignore_##x ; \ -__irq_bypass_##x: ; \ - ljmp *%cs:__irq_old_##x ; \ -__irq_ignore_##x: ; \ - iret ; \ - .balign 4 ; \ -__irq_old_##x: ; \ - .long 0, 0 ; \ -__irq_hook_##x: ; \ - .long 0 ; \ -__irq_stack_##x: ; \ - .long 0, 0 - - WRAPPER(0); - WRAPPER(1); - WRAPPER(2); - WRAPPER(3); - WRAPPER(4); - WRAPPER(5); - WRAPPER(6); - WRAPPER(7); - WRAPPER(8); - WRAPPER(9); - WRAPPER(10); - WRAPPER(11); - WRAPPER(12); - WRAPPER(13); - WRAPPER(14); - WRAPPER(15); diff --git a/src/glut/dos/PC_HW/pc_keyb.c b/src/glut/dos/PC_HW/pc_keyb.c deleted file mode 100644 index d7e3257b9d..0000000000 --- a/src/glut/dos/PC_HW/pc_keyb.c +++ /dev/null @@ -1,540 +0,0 @@ -/* - * PC/HW routine collection v1.3 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - -#include <pc.h> -#include <sys/exceptn.h> -#include <sys/farptr.h> - -#include "pc_hw.h" - - -#define KEYB_IRQ 1 - -#define KEY_BUFFER_SIZE 64 - -#define KB_MODIFIERS (KB_SHIFT_FLAG | KB_CTRL_FLAG | KB_ALT_FLAG | KB_LWIN_FLAG | KB_RWIN_FLAG | KB_MENU_FLAG) -#define KB_LED_FLAGS (KB_SCROLOCK_FLAG | KB_NUMLOCK_FLAG | KB_CAPSLOCK_FLAG) - -static int keyboard_installed; - -static volatile struct { - volatile int start, end; - volatile int key[KEY_BUFFER_SIZE]; -} key_buffer; - -static volatile int key_enhanced, key_pause_loop, key_shifts; -static int leds_ok = TRUE; -static int in_a_terrupt = FALSE; -static volatile char pc_key[KEY_MAX]; - - -/* convert Allegro format scancodes into key_shifts flag bits */ -static unsigned short modifier_table[KEY_MAX - KEY_MODIFIERS] = { - KB_SHIFT_FLAG, KB_SHIFT_FLAG, KB_CTRL_FLAG, - KB_CTRL_FLAG, KB_ALT_FLAG, KB_ALT_FLAG, - KB_LWIN_FLAG, KB_RWIN_FLAG, KB_MENU_FLAG, - KB_SCROLOCK_FLAG, KB_NUMLOCK_FLAG, KB_CAPSLOCK_FLAG -}; - - -/* lookup table for converting hardware scancodes into Allegro format */ -static unsigned char hw_to_mycode[128] = { - /* 0x00 */ 0, KEY_ESC, KEY_1, KEY_2, - /* 0x04 */ KEY_3, KEY_4, KEY_5, KEY_6, - /* 0x08 */ KEY_7, KEY_8, KEY_9, KEY_0, - /* 0x0C */ KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_TAB, - /* 0x10 */ KEY_Q, KEY_W, KEY_E, KEY_R, - /* 0x14 */ KEY_T, KEY_Y, KEY_U, KEY_I, - /* 0x18 */ KEY_O, KEY_P, KEY_OPENBRACE, KEY_CLOSEBRACE, - /* 0x1C */ KEY_ENTER, KEY_LCONTROL, KEY_A, KEY_S, - /* 0x20 */ KEY_D, KEY_F, KEY_G, KEY_H, - /* 0x24 */ KEY_J, KEY_K, KEY_L, KEY_COLON, - /* 0x28 */ KEY_QUOTE, KEY_TILDE, KEY_LSHIFT, KEY_BACKSLASH, - /* 0x2C */ KEY_Z, KEY_X, KEY_C, KEY_V, - /* 0x30 */ KEY_B, KEY_N, KEY_M, KEY_COMMA, - /* 0x34 */ KEY_STOP, KEY_SLASH, KEY_RSHIFT, KEY_ASTERISK, - /* 0x38 */ KEY_ALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, - /* 0x3C */ KEY_F2, KEY_F3, KEY_F4, KEY_F5, - /* 0x40 */ KEY_F6, KEY_F7, KEY_F8, KEY_F9, - /* 0x44 */ KEY_F10, KEY_NUMLOCK, KEY_SCRLOCK, KEY_7_PAD, - /* 0x48 */ KEY_8_PAD, KEY_9_PAD, KEY_MINUS_PAD, KEY_4_PAD, - /* 0x4C */ KEY_5_PAD, KEY_6_PAD, KEY_PLUS_PAD, KEY_1_PAD, - /* 0x50 */ KEY_2_PAD, KEY_3_PAD, KEY_0_PAD, KEY_DEL_PAD, - /* 0x54 */ KEY_PRTSCR, 0, KEY_BACKSLASH2, KEY_F11, - /* 0x58 */ KEY_F12, 0, 0, KEY_LWIN, - /* 0x5C */ KEY_RWIN, KEY_MENU, 0, 0, - /* 0x60 */ 0, 0, 0, 0, - /* 0x64 */ 0, 0, 0, 0, - /* 0x68 */ 0, 0, 0, 0, - /* 0x6C */ 0, 0, 0, 0, - /* 0x70 */ KEY_KANA, 0, 0, KEY_ABNT_C1, - /* 0x74 */ 0, 0, 0, 0, - /* 0x78 */ 0, KEY_CONVERT, 0, KEY_NOCONVERT, - /* 0x7C */ 0, KEY_YEN, 0, 0 -}; - - -/* lookup table for converting extended hardware codes into Allegro format */ -static unsigned char hw_to_mycode_ex[128] = { - /* 0x00 */ 0, KEY_ESC, KEY_1, KEY_2, - /* 0x04 */ KEY_3, KEY_4, KEY_5, KEY_6, - /* 0x08 */ KEY_7, KEY_8, KEY_9, KEY_0, - /* 0x0C */ KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_TAB, - /* 0x10 */ KEY_CIRCUMFLEX, KEY_AT, KEY_COLON2, KEY_R, - /* 0x14 */ KEY_KANJI, KEY_Y, KEY_U, KEY_I, - /* 0x18 */ KEY_O, KEY_P, KEY_OPENBRACE, KEY_CLOSEBRACE, - /* 0x1C */ KEY_ENTER_PAD, KEY_RCONTROL, KEY_A, KEY_S, - /* 0x20 */ KEY_D, KEY_F, KEY_G, KEY_H, - /* 0x24 */ KEY_J, KEY_K, KEY_L, KEY_COLON, - /* 0x28 */ KEY_QUOTE, KEY_TILDE, 0, KEY_BACKSLASH, - /* 0x2C */ KEY_Z, KEY_X, KEY_C, KEY_V, - /* 0x30 */ KEY_B, KEY_N, KEY_M, KEY_COMMA, - /* 0x34 */ KEY_STOP, KEY_SLASH_PAD, 0, KEY_PRTSCR, - /* 0x38 */ KEY_ALTGR, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, - /* 0x3C */ KEY_F2, KEY_F3, KEY_F4, KEY_F5, - /* 0x40 */ KEY_F6, KEY_F7, KEY_F8, KEY_F9, - /* 0x44 */ KEY_F10, KEY_NUMLOCK, KEY_PAUSE, KEY_HOME, - /* 0x48 */ KEY_UP, KEY_PGUP, KEY_MINUS_PAD, KEY_LEFT, - /* 0x4C */ KEY_5_PAD, KEY_RIGHT, KEY_PLUS_PAD, KEY_END, - /* 0x50 */ KEY_DOWN, KEY_PGDN, KEY_INSERT, KEY_DEL, - /* 0x54 */ KEY_PRTSCR, 0, KEY_BACKSLASH2, KEY_F11, - /* 0x58 */ KEY_F12, 0, 0, KEY_LWIN, - /* 0x5C */ KEY_RWIN, KEY_MENU, 0, 0, - /* 0x60 */ 0, 0, 0, 0, - /* 0x64 */ 0, 0, 0, 0, - /* 0x68 */ 0, 0, 0, 0, - /* 0x6C */ 0, 0, 0, 0, - /* 0x70 */ 0, 0, 0, 0, - /* 0x74 */ 0, 0, 0, 0, - /* 0x78 */ 0, 0, 0, 0, - /* 0x7C */ 0, 0, 0, 0 -}; - - -/* default mapping table for the US keyboard layout */ -static unsigned short standard_key_ascii_table[KEY_MAX] = { - /* start */ 0, - /* alphabet */ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - /* numbers */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* misc chars */ 27, '`', '-', '=', 8, 9, '[', ']', 13, ';', '\'', '\\', '\\', ',', '.', '/', ' ', - /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* numpad */ '/', '*', '-', '+', '.', 13, - /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -/* capslock mapping table for the US keyboard layout */ -static unsigned short standard_key_capslock_table[KEY_MAX] = { - /* start */ 0, - /* alphabet */ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - /* numbers */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* misc chars */ 27, '`', '-', '=', 8, 9, '[', ']', 13, ';', '\'', '\\', '\\', ',', '.', '/', ' ', - /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* numpad */ '/', '*', '-', '+', '.', 13, - /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -/* shifted mapping table for the US keyboard layout */ -static unsigned short standard_key_shift_table[KEY_MAX] = { - /* start */ 0, - /* alphabet */ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - /* numbers */ ')', '!', '@', '#', '$', '%', '^', '&', '*', '(', - /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* misc chars */ 27, '~', '_', '+', 8, 9, '{', '}', 13, ':', '"', '|', '|', '<', '>', '?', ' ', - /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* numpad */ '/', '*', '-', '+', '.', 13, - /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -/* ctrl+key mapping table for the US keyboard layout */ -static unsigned short standard_key_control_table[KEY_MAX] = { - /* start */ 0, - /* alphabet */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* numbers */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* misc chars */ 27, 2, 2, 2, 127, 127, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, - /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* numpad */ 2, 2, 2, 2, 2, 10, - /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -/* convert numeric pad scancodes into arrow codes */ -static unsigned char numlock_table[10] = { - KEY_INSERT, KEY_END, KEY_DOWN, KEY_PGDN, KEY_LEFT, - KEY_5_PAD, KEY_RIGHT, KEY_HOME, KEY_UP, KEY_PGUP -}; - - -/* kb_wait_for_write_ready: - * Wait for the keyboard controller to set the ready-for-write bit. - */ -static __inline int -kb_wait_for_write_ready (void) -{ - int timeout = 4096; - - while ((timeout > 0) && (inportb(0x64) & 2)) timeout--; - - return (timeout > 0); -} - - -/* kb_wait_for_read_ready: - * Wait for the keyboard controller to set the ready-for-read bit. - */ -static __inline int -kb_wait_for_read_ready (void) -{ - int timeout = 16384; - - while ((timeout > 0) && (!(inportb(0x64) & 1))) timeout--; - - return (timeout > 0); -} - - -/* kb_send_data: - * Sends a byte to the keyboard controller. Returns 1 if all OK. - */ -static __inline int -kb_send_data (unsigned char data) -{ - int resends = 4; - int timeout, temp; - - do { - if (!kb_wait_for_write_ready()) - return 0; - - outportb(0x60, data); - timeout = 4096; - - while (--timeout > 0) { - if (!kb_wait_for_read_ready()) - return 0; - - temp = inportb(0x60); - - if (temp == 0xFA) - return 1; - - if (temp == 0xFE) - break; - } - } while ((resends-- > 0) && (timeout > 0)); - - return 0; -} - - -static void -update_leds (int leds) -{ - if (leds_ok) { - if (!in_a_terrupt) - DISABLE(); - - if (!kb_send_data(0xED)) { - kb_send_data(0xF4); - leds_ok = FALSE; - } else if (!kb_send_data((leds >> 8) & 7)) { - kb_send_data(0xF4); - leds_ok = FALSE; - } - - if (!in_a_terrupt) - ENABLE(); - } -} ENDOFUNC(update_leds) - - -static void -inject_key (int scancode) -{ - unsigned short *table; - - if ((scancode >= KEY_0_PAD) && (scancode <= KEY_9_PAD)) { - if (((key_shifts & KB_NUMLOCK_FLAG) != 0) == ((key_shifts & KB_SHIFT_FLAG) != 0)) { - scancode = numlock_table[scancode - KEY_0_PAD]; - } - table = standard_key_ascii_table; - } else if (key_shifts & KB_CTRL_FLAG) { - table = standard_key_control_table; - } else if (key_shifts & KB_SHIFT_FLAG) { - if (key_shifts & KB_CAPSLOCK_FLAG) { - if (standard_key_ascii_table[scancode] == standard_key_capslock_table[scancode]) { - table = standard_key_shift_table; - } else { - table = standard_key_ascii_table; - } - } else { - table = standard_key_shift_table; - } - } else if (key_shifts & KB_CAPSLOCK_FLAG) { - table = standard_key_capslock_table; - } else { - table = standard_key_ascii_table; - } - - key_buffer.key[key_buffer.end++] = (scancode << 16) | table[scancode]; - - if (key_buffer.end >= KEY_BUFFER_SIZE) - key_buffer.end = 0; - if (key_buffer.end == key_buffer.start) { - key_buffer.start++; - if (key_buffer.start >= KEY_BUFFER_SIZE) - key_buffer.start = 0; - } -} ENDOFUNC(inject_key) - - -static void -handle_code (int scancode, int keycode) -{ - in_a_terrupt++; - - if (keycode == 0) { /* pause */ - inject_key(scancode); - pc_key[KEY_PAUSE] ^= TRUE; - } else if (scancode) { - int flag; - - if (scancode >= KEY_MODIFIERS) { - flag = modifier_table[scancode - KEY_MODIFIERS]; - } else { - flag = 0; - } - if ((char)keycode < 0) { /* release */ - pc_key[scancode] = FALSE; - if (flag & KB_MODIFIERS) { - key_shifts &= ~flag; - } - } else { /* keypress */ - pc_key[scancode] = TRUE; - if (flag & KB_MODIFIERS) { - key_shifts |= flag; - } - if (flag & KB_LED_FLAGS) { - key_shifts ^= flag; - update_leds(key_shifts); - } - if (scancode < KEY_MODIFIERS) { - inject_key(scancode); - } - } - } - - in_a_terrupt--; -} ENDOFUNC(handle_code) - - -static int -keyboard () -{ - unsigned char temp, scancode; - - temp = inportb(0x60); - - if (temp <= 0xe1) { - if (key_pause_loop) { - if (!--key_pause_loop) handle_code(KEY_PAUSE, 0); - } else - switch (temp) { - case 0xe0: - key_enhanced = TRUE; - break; - case 0xe1: - key_pause_loop = 5; - break; - default: - if (key_enhanced) { - key_enhanced = FALSE; - scancode = hw_to_mycode_ex[temp & 0x7f]; - } else { - scancode = hw_to_mycode[temp & 0x7f]; - } - handle_code(scancode, temp); - } - } - - if (((temp==0x4F)||(temp==0x53))&&(key_shifts&KB_CTRL_FLAG)&&(key_shifts&KB_ALT_FLAG)) { - /* Hack alert: - * only SIGINT (but not Ctrl-Break) - * calls the destructors and will safely clean up - */ - __asm("\n\ - movb $0x79, %%al \n\ - call ___djgpp_hw_exception \n\ - ":::"%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); - } - - __asm("\n\ - inb $0x61, %%al \n\ - movb %%al, %%ah \n\ - orb $0x80, %%al \n\ - outb %%al, $0x61 \n\ - xchgb %%al, %%ah \n\ - outb %%al, $0x61 \n\ - movb $0x20, %%al \n\ - outb %%al, $0x20 \n\ - ":::"%eax"); - return 0; -} ENDOFUNC(keyboard) - - -int -pc_keypressed (void) -{ - return (key_buffer.start!=key_buffer.end); -} - - -int -pc_readkey (void) -{ - if (keyboard_installed) { - int key; - - while (key_buffer.start == key_buffer.end) { - __dpmi_yield(); - } - - DISABLE(); - key = key_buffer.key[key_buffer.start++]; - if (key_buffer.start >= KEY_BUFFER_SIZE) - key_buffer.start = 0; - ENABLE(); - - return key; - } else { - return 0; - } -} - - -int -pc_keydown (int code) -{ - return pc_key[code]; -} - - -int -pc_keyshifts (void) -{ - return key_shifts; -} - - -void -pc_remove_keyb (void) -{ - if (keyboard_installed) { - int s1, s2, s3; - - keyboard_installed = FALSE; - pc_clexit(pc_remove_keyb); - - DISABLE(); - _farsetsel(__djgpp_dos_sel); - _farnspokew(0x41c, _farnspeekw(0x41a)); - - s1 = _farnspeekb(0x417) & 0x80; - s2 = _farnspeekb(0x418) & 0xFC; - s3 = _farnspeekb(0x496) & 0xF3; - - if (pc_key[KEY_RSHIFT]) { s1 |= 1; } - if (pc_key[KEY_LSHIFT]) { s1 |= 2; } - if (pc_key[KEY_LCONTROL]) { s2 |= 1; s1 |= 4; } - if (pc_key[KEY_ALT]) { s1 |= 8; s2 |= 2; } - if (pc_key[KEY_RCONTROL]) { s1 |= 4; s3 |= 4; } - if (pc_key[KEY_ALTGR]) { s1 |= 8; s3 |= 8; } - - if (key_shifts & KB_SCROLOCK_FLAG) s1 |= 16; - if (key_shifts & KB_NUMLOCK_FLAG) s1 |= 32; - if (key_shifts & KB_CAPSLOCK_FLAG) s1 |= 64; - - _farnspokeb(0x417, s1); - _farnspokeb(0x418, s2); - _farnspokeb(0x496, s3); - update_leds(key_shifts); - - ENABLE(); - pc_remove_irq(KEYB_IRQ); - } -} - - -int -pc_install_keyb (void) -{ - if (keyboard_installed || pc_install_irq(KEYB_IRQ, keyboard)) { - return -1; - } else { - int s1, s2, s3; - - LOCKDATA(key_buffer); - LOCKDATA(key_enhanced); - LOCKDATA(key_pause_loop); - LOCKDATA(key_shifts); - LOCKDATA(leds_ok); - LOCKDATA(in_a_terrupt); - LOCKDATA(pc_key); - LOCKDATA(modifier_table); - LOCKDATA(hw_to_mycode); - LOCKDATA(hw_to_mycode_ex); - LOCKDATA(standard_key_ascii_table); - LOCKDATA(standard_key_capslock_table); - LOCKDATA(standard_key_shift_table); - LOCKDATA(standard_key_control_table); - LOCKDATA(numlock_table); - LOCKFUNC(update_leds); - LOCKFUNC(inject_key); - LOCKFUNC(handle_code); - LOCKFUNC(keyboard); - - DISABLE(); - _farsetsel(__djgpp_dos_sel); - _farnspokew(0x41c, _farnspeekw(0x41a)); - - key_shifts = 0; - s1 = _farnspeekb(0x417); - s2 = _farnspeekb(0x418); - s3 = _farnspeekb(0x496); - - if (s1 & 1) { key_shifts |= KB_SHIFT_FLAG; pc_key[KEY_RSHIFT] = TRUE; } - if (s1 & 2) { key_shifts |= KB_SHIFT_FLAG; pc_key[KEY_LSHIFT] = TRUE; } - if (s2 & 1) { key_shifts |= KB_CTRL_FLAG; pc_key[KEY_LCONTROL] = TRUE; } - if (s2 & 2) { key_shifts |= KB_ALT_FLAG; pc_key[KEY_ALT] = TRUE; } - if (s3 & 4) { key_shifts |= KB_CTRL_FLAG; pc_key[KEY_RCONTROL] = TRUE; } - if (s3 & 8) { key_shifts |= KB_ALT_FLAG; pc_key[KEY_ALTGR] = TRUE; } - - if (s1 & 16) key_shifts |= KB_SCROLOCK_FLAG; - if (s1 & 32) key_shifts |= KB_NUMLOCK_FLAG; - if (s1 & 64) key_shifts |= KB_CAPSLOCK_FLAG; - update_leds(key_shifts); - - key_enhanced = key_pause_loop = 0; - key_buffer.start = key_buffer.end = 0; - ENABLE(); - - pc_atexit(pc_remove_keyb); - keyboard_installed = TRUE; - return 0; - } -} diff --git a/src/glut/dos/PC_HW/pc_mouse.c b/src/glut/dos/PC_HW/pc_mouse.c deleted file mode 100644 index 5bf99d367f..0000000000 --- a/src/glut/dos/PC_HW/pc_mouse.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - * PC/HW routine collection v1.3 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - -#include <dpmi.h> -#include <sys/exceptn.h> -#include <sys/segments.h> - -#include "pc_hw.h" - - -#define PC_CUTE_WHEEL 1 /* CuteMouse WheelAPI */ - -#define MOUSE_STACK_SIZE 16384 - -#define CLEAR_MICKEYS() \ - do { \ - __asm __volatile ("movw $0xb, %%ax; int $0x33":::"%eax", "%ecx", "%edx"); \ - ox = oy = 0; \ - } while (0) - -extern void mouse_wrap (void); -extern int mouse_wrap_end[]; - -static MFUNC mouse_func; -static long mouse_callback; -static __dpmi_regs mouse_regs; - -static volatile struct { - volatile int x, y, z, b; -} pc_mouse; - -static int minx = 0; -static int maxx = 319; -static int miny = 0; -static int maxy = 199; -static int minz = 0; -static int maxz = 255; - -static int sx = 2; -static int sy = 2; - -static int emulat3 = FALSE; - -static int ox, oy; - - -static void -mouse (__dpmi_regs *r) -{ - int nx = (signed short)r->x.si / sx; - int ny = (signed short)r->x.di / sy; - int dx = nx - ox; - int dy = ny - oy; -#if PC_CUTE_WHEEL - int dz = (signed char)r->h.bh; -#endif - ox = nx; - oy = ny; - - pc_mouse.b = r->h.bl; - pc_mouse.x = MID(minx, pc_mouse.x + dx, maxx); - pc_mouse.y = MID(miny, pc_mouse.y + dy, maxy); -#if PC_CUTE_WHEEL - pc_mouse.z = MID(minz, pc_mouse.z + dz, maxz); -#endif - - if (emulat3) { - if ((pc_mouse.b & 3) == 3) { - pc_mouse.b = 4; - } - } - - if (mouse_func) { - mouse_func(pc_mouse.x, pc_mouse.y, pc_mouse.z, pc_mouse.b); - } -} ENDOFUNC(mouse) - - -void -pc_remove_mouse (void) -{ - if (mouse_callback) { - pc_clexit(pc_remove_mouse); - __asm("\n\ - movl %%edx, %%ecx \n\ - shrl $16, %%ecx \n\ - movw $0x0304, %%ax \n\ - int $0x31 \n\ - movw $0x000c, %%ax \n\ - xorl %%ecx, %%ecx \n\ - int $0x33 \n\ - "::"d"(mouse_callback):"%eax", "%ecx"); - - mouse_callback = 0; - - free((void *)(mouse_wrap_end[0] - MOUSE_STACK_SIZE)); - } -} - - -int -pc_install_mouse (void) -{ - int buttons; - - /* fail if already call-backed */ - if (mouse_callback) { - return 0; - } - - /* reset mouse and get status */ - __asm("\n\ - xorl %%eax, %%eax \n\ - int $0x33 \n\ - andl %%ebx, %%eax \n\ - movl %%eax, %0 \n\ - ":"=g" (buttons)::"%eax", "%ebx"); - if (!buttons) { - return 0; - } - - /* lock wrapper */ - LOCKDATA(mouse_func); - LOCKDATA(mouse_callback); - LOCKDATA(mouse_regs); - LOCKDATA(pc_mouse); - LOCKDATA(minx); - LOCKDATA(maxx); - LOCKDATA(miny); - LOCKDATA(maxy); - LOCKDATA(minz); - LOCKDATA(maxz); - LOCKDATA(sx); - LOCKDATA(sy); - LOCKDATA(emulat3); - LOCKDATA(ox); - LOCKDATA(oy); - LOCKFUNC(mouse); - LOCKFUNC(mouse_wrap); - - mouse_wrap_end[1] = __djgpp_ds_alias; - /* grab a locked stack */ - if ((mouse_wrap_end[0] = (int)pc_malloc(MOUSE_STACK_SIZE)) == NULL) { - return 0; - } - - /* try to hook a call-back */ - __asm("\n\ - pushl %%ds \n\ - pushl %%es \n\ - movw $0x0303, %%ax \n\ - pushl %%ds \n\ - pushl %%cs \n\ - popl %%ds \n\ - popl %%es \n\ - int $0x31 \n\ - popl %%es \n\ - popl %%ds \n\ - jc 0f \n\ - shll $16, %%ecx \n\ - movw %%dx, %%cx \n\ - movl %%ecx, %0 \n\ - 0: \n\ - ":"=g"(mouse_callback) - :"S" (mouse_wrap), "D"(&mouse_regs) - :"%eax", "%ecx", "%edx"); - if (!mouse_callback) { - free((void *)mouse_wrap_end[0]); - return 0; - } - - /* adjust stack */ - mouse_wrap_end[0] += MOUSE_STACK_SIZE; - - /* install the handler */ - mouse_regs.x.ax = 0x000c; -#if PC_CUTE_WHEEL - mouse_regs.x.cx = 0x7f | 0x80; -#else - mouse_regs.x.cx = 0x7f; -#endif - mouse_regs.x.dx = mouse_callback & 0xffff; - mouse_regs.x.es = mouse_callback >> 16; - __dpmi_int(0x33, &mouse_regs); - - CLEAR_MICKEYS(); - - emulat3 = (buttons < 3); - pc_atexit(pc_remove_mouse); - return buttons; -} - - -MFUNC -pc_install_mouse_handler (MFUNC handler) -{ - MFUNC old; - - if (!mouse_callback && !pc_install_mouse()) { - return NULL; - } - - old = mouse_func; - mouse_func = handler; - return old; -} - - -void -pc_mouse_area (int x1, int y1, int x2, int y2) -{ - minx = x1; - maxx = x2; - miny = y1; - maxy = y2; -} - - -void -pc_mouse_speed (int xspeed, int yspeed) -{ - DISABLE(); - - sx = MAX(1, xspeed); - sy = MAX(1, yspeed); - - ENABLE(); -} - - -int -pc_query_mouse (int *x, int *y, int *z) -{ - *x = pc_mouse.x; - *y = pc_mouse.y; - *z = pc_mouse.z; - return pc_mouse.b; -} - - -void -pc_warp_mouse (int x, int y) -{ - CLEAR_MICKEYS(); - - pc_mouse.x = MID(minx, x, maxx); - pc_mouse.y = MID(miny, y, maxy); - - if (mouse_func) { - mouse_func(pc_mouse.x, pc_mouse.y, pc_mouse.z, pc_mouse.b); - } -} - - -/* Hack alert: - * `mouse_wrap_end' actually holds the - * address of stack in a safe data selector. - */ -__asm("\n\ - .text \n\ - .p2align 5,,31 \n\ - .global _mouse_wrap \n\ -_mouse_wrap: \n\ - cld \n\ - lodsl \n\ - movl %eax, %es:42(%edi) \n\ - addw $4, %es:46(%edi) \n\ - pushl %es \n\ - movl %ss, %ebx \n\ - movl %esp, %esi \n\ - lss %cs:_mouse_wrap_end, %esp\n\ - pushl %ss \n\ - pushl %ss \n\ - popl %es \n\ - popl %ds \n\ - movl ___djgpp_dos_sel, %fs \n\ - pushl %fs \n\ - popl %gs \n\ - pushl %edi \n\ - call _mouse \n\ - popl %edi \n\ - movl %ebx, %ss \n\ - movl %esi, %esp \n\ - popl %es \n\ - iret \n\ - .global _mouse_wrap_end \n\ -_mouse_wrap_end:.long 0, 0"); diff --git a/src/glut/dos/PC_HW/pc_timer.c b/src/glut/dos/PC_HW/pc_timer.c deleted file mode 100644 index e7cbe70a1f..0000000000 --- a/src/glut/dos/PC_HW/pc_timer.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * PC/HW routine collection v1.5 for DOS/DJGPP - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@yahoo.com - * Web : http://www.geocities.com/dborca - */ - - -#include <pc.h> -#include <string.h> - -#include "pc_hw.h" - -#define TIMER_IRQ 0 - -#define MAX_TIMERS 8 - -#define PIT_FREQ 0x1234DD - -#define ADJUST(timer, basefreq) timer.counter = PIT_FREQ * timer.freq / SQR(basefreq) - -#define unvolatile(__v, __t) __extension__ ({union { volatile __t __cp; __t __p; } __q; __q.__cp = __v; __q.__p;}) - -static int timer_installed; - -typedef struct { - volatile unsigned int counter, clock_ticks, freq; - volatile PFUNC func; - volatile void *parm; -} TIMER; - -static TIMER timer_main, timer_func[MAX_TIMERS]; - - -/* Desc: main timer callback - * - * In : - - * Out : 0 to bypass BIOS, 1 to chain to BIOS - * - * Note: - - */ -static int -timer () -{ - int i; - - for (i = 0; i < MAX_TIMERS; i++) { - TIMER *t = &timer_func[i]; - if (t->func) { - t->clock_ticks += t->counter; - if (t->clock_ticks >= timer_main.counter) { - t->clock_ticks -= timer_main.counter; - t->func(unvolatile(t->parm, void *)); - } - } - } - - timer_main.clock_ticks += timer_main.counter; - if (timer_main.clock_ticks >= 0x10000) { - timer_main.clock_ticks -= 0x10000; - return 1; - } else { - outportb(0x20, 0x20); - return 0; - } -} ENDOFUNC(timer) - - -/* Desc: uninstall timer engine - * - * In : - - * Out : - - * - * Note: - - */ -void -pc_remove_timer (void) -{ - if (timer_installed) { - timer_installed = FALSE; - pc_clexit(pc_remove_timer); - - DISABLE(); - outportb(0x43, 0x34); - outportb(0x40, 0); - outportb(0x40, 0); - ENABLE(); - - pc_remove_irq(TIMER_IRQ); - } -} - - -/* Desc: remove timerfunc - * - * In : timerfunc id - * Out : 0 if success - * - * Note: tries to relax the main timer whenever possible - */ -int -pc_remove_int (int fid) -{ - int i; - unsigned int freq = 0; - - /* are we installed? */ - if (!timer_installed) { - return -1; - } - - /* sanity check */ - if ((fid < 0) || (fid >= MAX_TIMERS) || (timer_func[fid].func == NULL)) { - return -1; - } - timer_func[fid].func = NULL; - - /* scan for maximum frequency */ - for (i = 0; i < MAX_TIMERS; i++) { - TIMER *t = &timer_func[i]; - if (t->func) { - if (freq < t->freq) { - freq = t->freq; - } - } - } - - /* if there are no callbacks left, cleanup */ - if (!freq) { - pc_remove_timer(); - return 0; - } - - /* if we just lowered the maximum frequency, try to relax the timer engine */ - if (freq < timer_main.freq) { - unsigned int new_counter = PIT_FREQ / freq; - - DISABLE(); - - for (i = 0; i < MAX_TIMERS; i++) { - if (timer_func[i].func) { - ADJUST(timer_func[i], freq); - } - } - - outportb(0x43, 0x34); - outportb(0x40, (unsigned char)new_counter); - outportb(0x40, (unsigned char)(new_counter>>8)); - timer_main.clock_ticks = 0; - timer_main.counter = new_counter; - timer_main.freq = freq; - - ENABLE(); - } - - return 0; -} ENDOFUNC(pc_remove_int) - - -/* Desc: adjust timerfunc - * - * In : timerfunc id, new frequency (Hz) - * Out : 0 if success - * - * Note: might change the main timer frequency - */ -int -pc_adjust_int (int fid, unsigned int freq) -{ - int i; - - /* are we installed? */ - if (!timer_installed) { - return -1; - } - - /* sanity check */ - if ((fid < 0) || (fid >= MAX_TIMERS) || (timer_func[fid].func == NULL)) { - return -1; - } - timer_func[fid].freq = freq; - - /* scan for maximum frequency */ - freq = 0; - for (i = 0; i < MAX_TIMERS; i++) { - TIMER *t = &timer_func[i]; - if (t->func) { - if (freq < t->freq) { - freq = t->freq; - } - } - } - - /* update main timer / sons to match highest frequency */ - DISABLE(); - - /* using '>' is correct still (and avoids updating - * the HW timer too often), but doesn't relax the timer! - */ - if (freq != timer_main.freq) { - unsigned int new_counter = PIT_FREQ / freq; - - for (i = 0; i < MAX_TIMERS; i++) { - if (timer_func[i].func) { - ADJUST(timer_func[i], freq); - } - } - - outportb(0x43, 0x34); - outportb(0x40, (unsigned char)new_counter); - outportb(0x40, (unsigned char)(new_counter>>8)); - timer_main.clock_ticks = 0; - timer_main.counter = new_counter; - timer_main.freq = freq; - } else { - ADJUST(timer_func[fid], timer_main.freq); - } - - ENABLE(); - - return 0; -} ENDOFUNC(pc_adjust_int) - - -/* Desc: install timer engine - * - * In : - - * Out : 0 for success - * - * Note: initial frequency is 18.2 Hz - */ -static int -install_timer (void) -{ - if (timer_installed || pc_install_irq(TIMER_IRQ, timer)) { - return -1; - } else { - memset(timer_func, 0, sizeof(timer_func)); - - LOCKDATA(timer_func); - LOCKDATA(timer_main); - LOCKFUNC(timer); - LOCKFUNC(pc_adjust_int); - LOCKFUNC(pc_remove_int); - - timer_main.counter = 0x10000; - - DISABLE(); - outportb(0x43, 0x34); - outportb(0x40, 0); - outportb(0x40, 0); - timer_main.clock_ticks = 0; - ENABLE(); - - pc_atexit(pc_remove_timer); - timer_installed = TRUE; - return 0; - } -} - - -/* Desc: install timerfunc - * - * In : callback function, opaque pointer to be passed to callee, freq (Hz) - * Out : timerfunc id (0 .. MAX_TIMERS-1) - * - * Note: returns -1 if error - */ -int -pc_install_int (PFUNC func, void *parm, unsigned int freq) -{ - int i; - TIMER *t = NULL; - - /* ensure the timer engine is set up */ - if (!timer_installed) { - if (install_timer()) { - return -1; - } - } - - /* find an empty slot */ - for (i = 0; i < MAX_TIMERS; i++) { - if (!timer_func[i].func) { - t = &timer_func[i]; - break; - } - } - if (t == NULL) { - return -1; - } - - DISABLE(); - - t->func = func; - t->parm = parm; - t->freq = freq; - t->clock_ticks = 0; - - /* update main timer / sons to match highest frequency */ - if (freq > timer_main.freq) { - unsigned int new_counter = PIT_FREQ / freq; - - for (i = 0; i < MAX_TIMERS; i++) { - if (timer_func[i].func) { - ADJUST(timer_func[i], freq); - } - } - - outportb(0x43, 0x34); - outportb(0x40, (unsigned char)new_counter); - outportb(0x40, (unsigned char)(new_counter>>8)); - timer_main.clock_ticks = 0; - timer_main.counter = new_counter; - timer_main.freq = freq; - } else { - /* t == &timer_func[i] */ - ADJUST(timer_func[i], timer_main.freq); - } - - i = t - timer_func; - - ENABLE(); - - return i; -} diff --git a/src/glut/dos/bitmap.c b/src/glut/dos/bitmap.c deleted file mode 100644 index 6d6b91e1c7..0000000000 --- a/src/glut/dos/bitmap.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -void APIENTRY -glutBitmapCharacter (void *font, int c) -{ - const GLUTBitmapFont *bfp = _glut_font(font); - const GLUTBitmapChar *bcp; - - if (c >= bfp->num || !(bcp = bfp->table[c])) - return; - - glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); - - 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(bcp->width, bcp->height, bcp->xorig, bcp->yorig, - bcp->xmove, 0, bcp->bitmap); - - glPopClientAttrib(); -} - - -void APIENTRY -glutBitmapString (void *font, const unsigned char *string) -{ - const GLUTBitmapFont *bfp = _glut_font(font); - const GLUTBitmapChar *bcp; - unsigned char c; - - glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); - - 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); - - while ((c = *(string++))) { - if (c < bfp->num && (bcp = bfp->table[c])) - glBitmap(bcp->width, bcp->height, bcp->xorig, - bcp->yorig, bcp->xmove, 0, bcp->bitmap); - } - - glPopClientAttrib(); -} - - -int APIENTRY -glutBitmapWidth (void *font, int c) -{ - const GLUTBitmapFont *bfp = _glut_font(font); - const GLUTBitmapChar *bcp; - - if (c >= bfp->num || !(bcp = bfp->table[c])) - return 0; - - return bcp->xmove; -} - - -int APIENTRY -glutBitmapLength (void *font, const unsigned char *string) -{ - const GLUTBitmapFont *bfp = _glut_font(font); - const GLUTBitmapChar *bcp; - unsigned char c; - int length = 0; - - while ((c = *(string++))) { - if (c < bfp->num && (bcp = bfp->table[c])) - length += bcp->xmove; - } - - return length; -} - - -int APIENTRY -glutBitmapHeight (void *font) -{ - const GLUTBitmapFont *bfp = _glut_font(font); - - return bfp->height; -} diff --git a/src/glut/dos/callback.c b/src/glut/dos/callback.c deleted file mode 100644 index b6cc58feae..0000000000 --- a/src/glut/dos/callback.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -GLUTSShotCB _glut_timer_cb[MAX_TIMER_CB]; - -GLUTidleCB _glut_idle_func = NULL; - - -void APIENTRY -glutDisplayFunc (GLUTdisplayCB func) -{ - _glut_current->display = func; -} - - -void APIENTRY -glutReshapeFunc (GLUTreshapeCB func) -{ - _glut_current->reshape = func; -} - - -void APIENTRY -glutKeyboardFunc (GLUTkeyboardCB func) -{ - _glut_current->keyboard = func; -} - - -void APIENTRY -glutMouseFunc (GLUTmouseCB func) -{ - _glut_current->mouse = func; -} - - -void APIENTRY -glutMotionFunc (GLUTmotionCB func) -{ - _glut_current->motion = func; -} - - -void APIENTRY -glutPassiveMotionFunc (GLUTpassiveCB func) -{ - _glut_current->passive = func; -} - - -void APIENTRY -glutEntryFunc (GLUTentryCB func) -{ - _glut_current->entry = func; -} - - -void APIENTRY -glutVisibilityFunc (GLUTvisibilityCB func) -{ - _glut_current->visibility = func; -} - - -void APIENTRY -glutWindowStatusFunc (GLUTwindowStatusCB func) -{ - _glut_current->windowStatus = func; -} - - -void APIENTRY -glutIdleFunc (GLUTidleCB func) -{ - _glut_idle_func = func; -} - - -void APIENTRY -glutTimerFunc (unsigned int millis, GLUTtimerCB func, int value) -{ - int i; - - if (millis > 0) { - for (i = 0; i < MAX_TIMER_CB; i++) { - GLUTSShotCB *cb = &_glut_timer_cb[i]; - if (cb->func == NULL) { - cb->value = value; - cb->func = func; - cb->time = glutGet(GLUT_ELAPSED_TIME) + millis; - break; - } - } - } -} - - -void APIENTRY -glutSpecialFunc (GLUTspecialCB func) -{ - _glut_current->special = func; -} - - -void APIENTRY -glutSpaceballMotionFunc (GLUTspaceMotionCB func) -{ - _glut_current->spaceMotion = func; -} - - -void APIENTRY -glutSpaceballRotateFunc (GLUTspaceRotateCB func) -{ - _glut_current->spaceRotate = func; -} - - -void APIENTRY -glutSpaceballButtonFunc (GLUTspaceButtonCB func) -{ - _glut_current->spaceButton = func; -} - - -void APIENTRY -glutDialsFunc (GLUTdialsCB func) -{ - _glut_current->dials = func; -} - - -void APIENTRY -glutButtonBoxFunc (GLUTbuttonBoxCB func) -{ - _glut_current->buttonBox = func; -} - - -void APIENTRY -glutTabletMotionFunc (GLUTtabletMotionCB func) -{ - _glut_current->tabletMotion = func; -} - - -void APIENTRY -glutTabletButtonFunc (GLUTtabletButtonCB func) -{ - _glut_current->tabletButton = func; -} - - -void APIENTRY -glutJoystickFunc (GLUTjoystickCB func, int interval) -{ - _glut_current->joystick = func; -} - - -void APIENTRY -glutKeyboardUpFunc (GLUTkeyboardCB func) -{ - _glut_current->keyboardUp = func; -} - - -void APIENTRY -glutSpecialUpFunc (GLUTspecialCB func) -{ - _glut_current->specialUp = func; -} - - -void APIENTRY -glutMouseWheelFunc (GLUTmouseWheelCB func) -{ - _glut_current->mouseWheel = func; -} diff --git a/src/glut/dos/color.c b/src/glut/dos/color.c deleted file mode 100644 index 5ffc1209a2..0000000000 --- a/src/glut/dos/color.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -#define CLAMP(i) ((i) > 1.0F ? 1.0F : ((i) < 0.0F ? 0.0F : (i))) - - -void APIENTRY -glutSetColor (int ndx, GLfloat red, GLfloat green, GLfloat blue) -{ - if (_glut_default.mode & GLUT_INDEX) { - if ((ndx >= 0) && (ndx < (256 - RESERVED_COLORS))) { - DMesaSetCI(ndx, CLAMP(red), CLAMP(green), CLAMP(blue)); - } - } -} - - -GLfloat APIENTRY -glutGetColor (int ndx, int component) -{ - return 0.0; -} - - -void APIENTRY -glutCopyColormap (int win) -{ -} diff --git a/src/glut/dos/extens.c b/src/glut/dos/extens.c deleted file mode 100644 index 8bb867264e..0000000000 --- a/src/glut/dos/extens.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include <string.h> - -#include "internal.h" - - -int APIENTRY -glutExtensionSupported (const char *extension) -{ - static const GLubyte *extensions = NULL; - const GLubyte *last, *where; - - /* Extension names should not have spaces. */ - if (strchr(extension, ' ') || *extension == '\0') { - return GL_FALSE; - } - - /* Not my problem if you don't have a valid OpenGL context */ - if (!extensions) { - extensions = glGetString(GL_EXTENSIONS); - } - if (!extensions) { - return GL_FALSE; - } - - /* Take care of sub-strings etc. */ - for (last = extensions;;) { - if ((where = (GLubyte *)strstr((const char *)last, extension)) == NULL) { - return GL_FALSE; - } - last = where + strlen(extension); - if (where == extensions || *(where - 1) == ' ') { - if (*last == ' ' || *last == '\0') { - return GL_TRUE; - } - } - } -} - - -GLUTproc APIENTRY -glutGetProcAddress (const char *procName) -{ - /* TODO - handle glut namespace */ - return (GLUTproc)DMesaGetProcAddress(procName); -} diff --git a/src/glut/dos/f8x13.c b/src/glut/dos/f8x13.c deleted file mode 100644 index bbf58b52b1..0000000000 --- a/src/glut/dos/f8x13.c +++ /dev/null @@ -1,1183 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Public domain font. Share and enjoy." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch0data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch0 = { 8, 13, 0, 2, 8, ch0data }; - -static const unsigned char ch1data[] = { - 0x0,0x0,0x0,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch1 = { 8, 13, 0, 2, 8, ch1data }; - -static const unsigned char ch2data[] = { - 0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x0 -}; -static const GLUTBitmapChar ch2 = { 8, 13, 0, 2, 8, ch2data }; - -static const unsigned char ch3data[] = { - 0x8,0x8,0x8,0x3e,0x88,0x88,0xf8,0x88,0x88,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch3 = { 8, 13, 0, 2, 8, ch3data }; - -static const unsigned char ch4data[] = { - 0x10,0x10,0x1c,0x10,0x9e,0x80,0xe0,0x80,0xf0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch4 = { 8, 13, 0, 2, 8, ch4data }; - -static const unsigned char ch5data[] = { - 0x22,0x22,0x3c,0x22,0x3c,0x78,0x80,0x80,0x78,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch5 = { 8, 13, 0, 2, 8, ch5data }; - -static const unsigned char ch6data[] = { - 0x20,0x20,0x3c,0x20,0x3e,0xf8,0x80,0x80,0x80,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch6 = { 8, 13, 0, 2, 8, ch6data }; - -static const unsigned char ch7data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x44,0x44,0x38,0x0,0x0 -}; -static const GLUTBitmapChar ch7 = { 8, 13, 0, 2, 8, ch7data }; - -static const unsigned char ch8data[] = { - 0x0,0x0,0xfe,0x10,0x10,0xfe,0x10,0x10,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch8 = { 8, 13, 0, 2, 8, ch8data }; - -static const unsigned char ch9data[] = { - 0x3e,0x20,0x20,0x20,0x88,0x98,0xa8,0xc8,0x88,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch9 = { 8, 13, 0, 2, 8, ch9data }; - -static const unsigned char ch10data[] = { - 0x8,0x8,0x8,0x8,0x3e,0x20,0x50,0x88,0x88,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch10 = { 8, 13, 0, 2, 8, ch10data }; - -static const unsigned char ch11data[] = { - 0x0,0x0,0x0,0x0,0x0,0xf0,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch11 = { 8, 13, 0, 2, 8, ch11data }; - -static const unsigned char ch12data[] = { - 0x10,0x10,0x10,0x10,0x10,0xf0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch12 = { 8, 13, 0, 2, 8, ch12data }; - -static const unsigned char ch13data[] = { - 0x10,0x10,0x10,0x10,0x10,0x1f,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch13 = { 8, 13, 0, 2, 8, ch13data }; - -static const unsigned char ch14data[] = { - 0x0,0x0,0x0,0x0,0x0,0x1f,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch14 = { 8, 13, 0, 2, 8, ch14data }; - -static const unsigned char ch15data[] = { - 0x10,0x10,0x10,0x10,0x10,0xff,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch15 = { 8, 13, 0, 2, 8, ch15data }; - -static const unsigned char ch16data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch16 = { 8, 13, 0, 2, 8, ch16data }; - -static const unsigned char ch17data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch17 = { 8, 13, 0, 2, 8, ch17data }; - -static const unsigned char ch18data[] = { - 0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch18 = { 8, 13, 0, 2, 8, ch18data }; - -static const unsigned char ch19data[] = { - 0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch19 = { 8, 13, 0, 2, 8, ch19data }; - -static const unsigned char ch20data[] = { - 0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch20 = { 8, 13, 0, 2, 8, ch20data }; - -static const unsigned char ch21data[] = { - 0x10,0x10,0x10,0x10,0x10,0x1f,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch21 = { 8, 13, 0, 2, 8, ch21data }; - -static const unsigned char ch22data[] = { - 0x10,0x10,0x10,0x10,0x10,0xf0,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch22 = { 8, 13, 0, 2, 8, ch22data }; - -static const unsigned char ch23data[] = { - 0x0,0x0,0x0,0x0,0x0,0xff,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch23 = { 8, 13, 0, 2, 8, ch23data }; - -static const unsigned char ch24data[] = { - 0x10,0x10,0x10,0x10,0x10,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch24 = { 8, 13, 0, 2, 8, ch24data }; - -static const unsigned char ch25data[] = { - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch25 = { 8, 13, 0, 2, 8, ch25data }; - -static const unsigned char ch26data[] = { - 0x0,0x0,0xfe,0x2,0x8,0x20,0x80,0x20,0x8,0x2,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch26 = { 8, 13, 0, 2, 8, ch26data }; - -static const unsigned char ch27data[] = { - 0x0,0x0,0xfe,0x80,0x20,0x8,0x2,0x8,0x20,0x80,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch27 = { 8, 13, 0, 2, 8, ch27data }; - -static const unsigned char ch28data[] = { - 0x0,0x0,0x44,0x24,0x24,0x24,0x24,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch28 = { 8, 13, 0, 2, 8, ch28data }; - -static const unsigned char ch29data[] = { - 0x0,0x0,0x80,0x40,0xfe,0x10,0xfe,0x4,0x2,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch29 = { 8, 13, 0, 2, 8, ch29data }; - -static const unsigned char ch30data[] = { - 0x0,0x0,0xdc,0x62,0x20,0x20,0x20,0x70,0x20,0x22,0x1c,0x0,0x0 -}; -static const GLUTBitmapChar ch30 = { 8, 13, 0, 2, 8, ch30data }; - -static const unsigned char ch31data[] = { - 0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch31 = { 8, 13, 0, 2, 8, ch31data }; - -static const unsigned char ch32data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch32 = { 8, 13, 0, 2, 8, ch32data }; - -static const unsigned char ch33data[] = { - 0x0,0x0,0x10,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch33 = { 8, 13, 0, 2, 8, ch33data }; - -static const unsigned char ch34data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x24,0x24,0x24,0x0,0x0 -}; -static const GLUTBitmapChar ch34 = { 8, 13, 0, 2, 8, ch34data }; - -static const unsigned char ch35data[] = { - 0x0,0x0,0x0,0x24,0x24,0x7e,0x24,0x7e,0x24,0x24,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch35 = { 8, 13, 0, 2, 8, ch35data }; - -static const unsigned char ch36data[] = { - 0x0,0x0,0x0,0x10,0x78,0x14,0x38,0x50,0x3c,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch36 = { 8, 13, 0, 2, 8, ch36data }; - -static const unsigned char ch37data[] = { - 0x0,0x0,0x44,0x2a,0x24,0x10,0x8,0x8,0x24,0x52,0x22,0x0,0x0 -}; -static const GLUTBitmapChar ch37 = { 8, 13, 0, 2, 8, ch37data }; - -static const unsigned char ch38data[] = { - 0x0,0x0,0x3a,0x44,0x4a,0x30,0x48,0x48,0x30,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch38 = { 8, 13, 0, 2, 8, ch38data }; - -static const unsigned char ch39data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x30,0x38,0x0,0x0 -}; -static const GLUTBitmapChar ch39 = { 8, 13, 0, 2, 8, ch39data }; - -static const unsigned char ch40data[] = { - 0x0,0x0,0x4,0x8,0x8,0x10,0x10,0x10,0x8,0x8,0x4,0x0,0x0 -}; -static const GLUTBitmapChar ch40 = { 8, 13, 0, 2, 8, ch40data }; - -static const unsigned char ch41data[] = { - 0x0,0x0,0x20,0x10,0x10,0x8,0x8,0x8,0x10,0x10,0x20,0x0,0x0 -}; -static const GLUTBitmapChar ch41 = { 8, 13, 0, 2, 8, ch41data }; - -static const unsigned char ch42data[] = { - 0x0,0x0,0x0,0x0,0x24,0x18,0x7e,0x18,0x24,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch42 = { 8, 13, 0, 2, 8, ch42data }; - -static const unsigned char ch43data[] = { - 0x0,0x0,0x0,0x0,0x10,0x10,0x7c,0x10,0x10,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch43 = { 8, 13, 0, 2, 8, ch43data }; - -static const unsigned char ch44data[] = { - 0x0,0x40,0x30,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch44 = { 8, 13, 0, 2, 8, ch44data }; - -static const unsigned char ch45data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch45 = { 8, 13, 0, 2, 8, ch45data }; - -static const unsigned char ch46data[] = { - 0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch46 = { 8, 13, 0, 2, 8, ch46data }; - -static const unsigned char ch47data[] = { - 0x0,0x0,0x80,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x2,0x0,0x0 -}; -static const GLUTBitmapChar ch47 = { 8, 13, 0, 2, 8, ch47data }; - -static const unsigned char ch48data[] = { - 0x0,0x0,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x0,0x0 -}; -static const GLUTBitmapChar ch48 = { 8, 13, 0, 2, 8, ch48data }; - -static const unsigned char ch49data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x50,0x30,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch49 = { 8, 13, 0, 2, 8, ch49data }; - -static const unsigned char ch50data[] = { - 0x0,0x0,0x7e,0x40,0x20,0x18,0x4,0x2,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch50 = { 8, 13, 0, 2, 8, ch50data }; - -static const unsigned char ch51data[] = { - 0x0,0x0,0x3c,0x42,0x2,0x2,0x1c,0x8,0x4,0x2,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch51 = { 8, 13, 0, 2, 8, ch51data }; - -static const unsigned char ch52data[] = { - 0x0,0x0,0x4,0x4,0x7e,0x44,0x44,0x24,0x14,0xc,0x4,0x0,0x0 -}; -static const GLUTBitmapChar ch52 = { 8, 13, 0, 2, 8, ch52data }; - -static const unsigned char ch53data[] = { - 0x0,0x0,0x3c,0x42,0x2,0x2,0x62,0x5c,0x40,0x40,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch53 = { 8, 13, 0, 2, 8, ch53data }; - -static const unsigned char ch54data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x62,0x5c,0x40,0x40,0x20,0x1c,0x0,0x0 -}; -static const GLUTBitmapChar ch54 = { 8, 13, 0, 2, 8, ch54data }; - -static const unsigned char ch55data[] = { - 0x0,0x0,0x20,0x20,0x10,0x10,0x8,0x8,0x4,0x2,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch55 = { 8, 13, 0, 2, 8, ch55data }; - -static const unsigned char ch56data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch56 = { 8, 13, 0, 2, 8, ch56data }; - -static const unsigned char ch57data[] = { - 0x0,0x0,0x38,0x4,0x2,0x2,0x3a,0x46,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch57 = { 8, 13, 0, 2, 8, ch57data }; - -static const unsigned char ch58data[] = { - 0x0,0x10,0x38,0x10,0x0,0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch58 = { 8, 13, 0, 2, 8, ch58data }; - -static const unsigned char ch59data[] = { - 0x0,0x40,0x30,0x38,0x0,0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch59 = { 8, 13, 0, 2, 8, ch59data }; - -static const unsigned char ch60data[] = { - 0x0,0x0,0x2,0x4,0x8,0x10,0x20,0x10,0x8,0x4,0x2,0x0,0x0 -}; -static const GLUTBitmapChar ch60 = { 8, 13, 0, 2, 8, ch60data }; - -static const unsigned char ch61data[] = { - 0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch61 = { 8, 13, 0, 2, 8, ch61data }; - -static const unsigned char ch62data[] = { - 0x0,0x0,0x40,0x20,0x10,0x8,0x4,0x8,0x10,0x20,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch62 = { 8, 13, 0, 2, 8, ch62data }; - -static const unsigned char ch63data[] = { - 0x0,0x0,0x8,0x0,0x8,0x8,0x4,0x2,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch63 = { 8, 13, 0, 2, 8, ch63data }; - -static const unsigned char ch64data[] = { - 0x0,0x0,0x3c,0x40,0x4a,0x56,0x52,0x4e,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch64 = { 8, 13, 0, 2, 8, ch64data }; - -static const unsigned char ch65data[] = { - 0x0,0x0,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x24,0x18,0x0,0x0 -}; -static const GLUTBitmapChar ch65 = { 8, 13, 0, 2, 8, ch65data }; - -static const unsigned char ch66data[] = { - 0x0,0x0,0xfc,0x42,0x42,0x42,0x7c,0x42,0x42,0x42,0xfc,0x0,0x0 -}; -static const GLUTBitmapChar ch66 = { 8, 13, 0, 2, 8, ch66data }; - -static const unsigned char ch67data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x40,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch67 = { 8, 13, 0, 2, 8, ch67data }; - -static const unsigned char ch68data[] = { - 0x0,0x0,0xfc,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xfc,0x0,0x0 -}; -static const GLUTBitmapChar ch68 = { 8, 13, 0, 2, 8, ch68data }; - -static const unsigned char ch69data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch69 = { 8, 13, 0, 2, 8, ch69data }; - -static const unsigned char ch70data[] = { - 0x0,0x0,0x40,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch70 = { 8, 13, 0, 2, 8, ch70data }; - -static const unsigned char ch71data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x4e,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch71 = { 8, 13, 0, 2, 8, ch71data }; - -static const unsigned char ch72data[] = { - 0x0,0x0,0x42,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x42,0x0,0x0 -}; -static const GLUTBitmapChar ch72 = { 8, 13, 0, 2, 8, ch72data }; - -static const unsigned char ch73data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x0 -}; -static const GLUTBitmapChar ch73 = { 8, 13, 0, 2, 8, ch73data }; - -static const unsigned char ch74data[] = { - 0x0,0x0,0x38,0x44,0x4,0x4,0x4,0x4,0x4,0x4,0x1e,0x0,0x0 -}; -static const GLUTBitmapChar ch74 = { 8, 13, 0, 2, 8, ch74data }; - -static const unsigned char ch75data[] = { - 0x0,0x0,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x0,0x0 -}; -static const GLUTBitmapChar ch75 = { 8, 13, 0, 2, 8, ch75data }; - -static const unsigned char ch76data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch76 = { 8, 13, 0, 2, 8, ch76data }; - -static const unsigned char ch77data[] = { - 0x0,0x0,0x82,0x82,0x82,0x92,0x92,0xaa,0xc6,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch77 = { 8, 13, 0, 2, 8, ch77data }; - -static const unsigned char ch78data[] = { - 0x0,0x0,0x42,0x42,0x42,0x46,0x4a,0x52,0x62,0x42,0x42,0x0,0x0 -}; -static const GLUTBitmapChar ch78 = { 8, 13, 0, 2, 8, ch78data }; - -static const unsigned char ch79data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch79 = { 8, 13, 0, 2, 8, ch79data }; - -static const unsigned char ch80data[] = { - 0x0,0x0,0x40,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x7c,0x0,0x0 -}; -static const GLUTBitmapChar ch80 = { 8, 13, 0, 2, 8, ch80data }; - -static const unsigned char ch81data[] = { - 0x0,0x2,0x3c,0x4a,0x52,0x42,0x42,0x42,0x42,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch81 = { 8, 13, 0, 2, 8, ch81data }; - -static const unsigned char ch82data[] = { - 0x0,0x0,0x42,0x44,0x48,0x50,0x7c,0x42,0x42,0x42,0x7c,0x0,0x0 -}; -static const GLUTBitmapChar ch82 = { 8, 13, 0, 2, 8, ch82data }; - -static const unsigned char ch83data[] = { - 0x0,0x0,0x3c,0x42,0x2,0x2,0x3c,0x40,0x40,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch83 = { 8, 13, 0, 2, 8, ch83data }; - -static const unsigned char ch84data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xfe,0x0,0x0 -}; -static const GLUTBitmapChar ch84 = { 8, 13, 0, 2, 8, ch84data }; - -static const unsigned char ch85data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x0 -}; -static const GLUTBitmapChar ch85 = { 8, 13, 0, 2, 8, ch85data }; - -static const unsigned char ch86data[] = { - 0x0,0x0,0x10,0x28,0x28,0x28,0x44,0x44,0x44,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch86 = { 8, 13, 0, 2, 8, ch86data }; - -static const unsigned char ch87data[] = { - 0x0,0x0,0x44,0xaa,0x92,0x92,0x92,0x82,0x82,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch87 = { 8, 13, 0, 2, 8, ch87data }; - -static const unsigned char ch88data[] = { - 0x0,0x0,0x82,0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch88 = { 8, 13, 0, 2, 8, ch88data }; - -static const unsigned char ch89data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x28,0x44,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch89 = { 8, 13, 0, 2, 8, ch89data }; - -static const unsigned char ch90data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x20,0x10,0x8,0x4,0x2,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch90 = { 8, 13, 0, 2, 8, ch90data }; - -static const unsigned char ch91data[] = { - 0x0,0x0,0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch91 = { 8, 13, 0, 2, 8, ch91data }; - -static const unsigned char ch92data[] = { - 0x0,0x0,0x2,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x80,0x0,0x0 -}; -static const GLUTBitmapChar ch92 = { 8, 13, 0, 2, 8, ch92data }; - -static const unsigned char ch93data[] = { - 0x0,0x0,0x78,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x78,0x0,0x0 -}; -static const GLUTBitmapChar ch93 = { 8, 13, 0, 2, 8, ch93data }; - -static const unsigned char ch94data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44,0x28,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch94 = { 8, 13, 0, 2, 8, ch94data }; - -static const unsigned char ch95data[] = { - 0x0,0xfe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch95 = { 8, 13, 0, 2, 8, ch95data }; - -static const unsigned char ch96data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x18,0x38,0x0,0x0 -}; -static const GLUTBitmapChar ch96 = { 8, 13, 0, 2, 8, ch96data }; - -static const unsigned char ch97data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch97 = { 8, 13, 0, 2, 8, ch97data }; - -static const unsigned char ch98data[] = { - 0x0,0x0,0x5c,0x62,0x42,0x42,0x62,0x5c,0x40,0x40,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch98 = { 8, 13, 0, 2, 8, ch98data }; - -static const unsigned char ch99data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x40,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch99 = { 8, 13, 0, 2, 8, ch99data }; - -static const unsigned char ch100data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x42,0x46,0x3a,0x2,0x2,0x2,0x0,0x0 -}; -static const GLUTBitmapChar ch100 = { 8, 13, 0, 2, 8, ch100data }; - -static const unsigned char ch101data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch101 = { 8, 13, 0, 2, 8, ch101data }; - -static const unsigned char ch102data[] = { - 0x0,0x0,0x20,0x20,0x20,0x20,0x7c,0x20,0x20,0x22,0x1c,0x0,0x0 -}; -static const GLUTBitmapChar ch102 = { 8, 13, 0, 2, 8, ch102data }; - -static const unsigned char ch103data[] = { - 0x3c,0x42,0x3c,0x40,0x38,0x44,0x44,0x3a,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch103 = { 8, 13, 0, 2, 8, ch103data }; - -static const unsigned char ch104data[] = { - 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x40,0x40,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch104 = { 8, 13, 0, 2, 8, ch104data }; - -static const unsigned char ch105data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch105 = { 8, 13, 0, 2, 8, ch105data }; - -static const unsigned char ch106data[] = { - 0x38,0x44,0x44,0x4,0x4,0x4,0x4,0xc,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch106 = { 8, 13, 0, 2, 8, ch106data }; - -static const unsigned char ch107data[] = { - 0x0,0x0,0x42,0x44,0x48,0x70,0x48,0x44,0x40,0x40,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch107 = { 8, 13, 0, 2, 8, ch107data }; - -static const unsigned char ch108data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x30,0x0,0x0 -}; -static const GLUTBitmapChar ch108 = { 8, 13, 0, 2, 8, ch108data }; - -static const unsigned char ch109data[] = { - 0x0,0x0,0x82,0x92,0x92,0x92,0x92,0xec,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch109 = { 8, 13, 0, 2, 8, ch109data }; - -static const unsigned char ch110data[] = { - 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch110 = { 8, 13, 0, 2, 8, ch110data }; - -static const unsigned char ch111data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch111 = { 8, 13, 0, 2, 8, ch111data }; - -static const unsigned char ch112data[] = { - 0x40,0x40,0x40,0x5c,0x62,0x42,0x62,0x5c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch112 = { 8, 13, 0, 2, 8, ch112data }; - -static const unsigned char ch113data[] = { - 0x2,0x2,0x2,0x3a,0x46,0x42,0x46,0x3a,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch113 = { 8, 13, 0, 2, 8, ch113data }; - -static const unsigned char ch114data[] = { - 0x0,0x0,0x20,0x20,0x20,0x20,0x22,0x5c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch114 = { 8, 13, 0, 2, 8, ch114data }; - -static const unsigned char ch115data[] = { - 0x0,0x0,0x3c,0x42,0xc,0x30,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch115 = { 8, 13, 0, 2, 8, ch115data }; - -static const unsigned char ch116data[] = { - 0x0,0x0,0x1c,0x22,0x20,0x20,0x20,0x7c,0x20,0x20,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch116 = { 8, 13, 0, 2, 8, ch116data }; - -static const unsigned char ch117data[] = { - 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch117 = { 8, 13, 0, 2, 8, ch117data }; - -static const unsigned char ch118data[] = { - 0x0,0x0,0x10,0x28,0x28,0x44,0x44,0x44,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch118 = { 8, 13, 0, 2, 8, ch118data }; - -static const unsigned char ch119data[] = { - 0x0,0x0,0x44,0xaa,0x92,0x92,0x82,0x82,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch119 = { 8, 13, 0, 2, 8, ch119data }; - -static const unsigned char ch120data[] = { - 0x0,0x0,0x42,0x24,0x18,0x18,0x24,0x42,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch120 = { 8, 13, 0, 2, 8, ch120data }; - -static const unsigned char ch121data[] = { - 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch121 = { 8, 13, 0, 2, 8, ch121data }; - -static const unsigned char ch122data[] = { - 0x0,0x0,0x7e,0x20,0x10,0x8,0x4,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch122 = { 8, 13, 0, 2, 8, ch122data }; - -static const unsigned char ch123data[] = { - 0x0,0x0,0xe,0x10,0x10,0x8,0x30,0x8,0x10,0x10,0xe,0x0,0x0 -}; -static const GLUTBitmapChar ch123 = { 8, 13, 0, 2, 8, ch123data }; - -static const unsigned char ch124data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch124 = { 8, 13, 0, 2, 8, ch124data }; - -static const unsigned char ch125data[] = { - 0x0,0x0,0x70,0x8,0x8,0x10,0xc,0x10,0x8,0x8,0x70,0x0,0x0 -}; -static const GLUTBitmapChar ch125 = { 8, 13, 0, 2, 8, ch125data }; - -static const unsigned char ch126data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x54,0x24,0x0,0x0 -}; -static const GLUTBitmapChar ch126 = { 8, 13, 0, 2, 8, ch126data }; - -static const unsigned char ch127data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch127 = { 8, 13, 0, 2, 8, ch127data }; - -static const unsigned char ch160data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch160 = { 8, 13, 0, 2, 8, ch160data }; - -static const unsigned char ch161data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch161 = { 8, 13, 0, 2, 8, ch161data }; - -static const unsigned char ch162data[] = { - 0x0,0x0,0x0,0x10,0x38,0x54,0x50,0x50,0x54,0x38,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch162 = { 8, 13, 0, 2, 8, ch162data }; - -static const unsigned char ch163data[] = { - 0x0,0x0,0xdc,0x62,0x20,0x20,0x20,0x70,0x20,0x22,0x1c,0x0,0x0 -}; -static const GLUTBitmapChar ch163 = { 8, 13, 0, 2, 8, ch163data }; - -static const unsigned char ch164data[] = { - 0x0,0x0,0x0,0x42,0x3c,0x24,0x24,0x3c,0x42,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch164 = { 8, 13, 0, 2, 8, ch164data }; - -static const unsigned char ch165data[] = { - 0x0,0x0,0x10,0x10,0x7c,0x10,0x7c,0x28,0x44,0x82,0x82,0x0,0x0 -}; -static const GLUTBitmapChar ch165 = { 8, 13, 0, 2, 8, ch165data }; - -static const unsigned char ch166data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x0,0x10,0x10,0x10,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch166 = { 8, 13, 0, 2, 8, ch166data }; - -static const unsigned char ch167data[] = { - 0x0,0x0,0x18,0x24,0x4,0x18,0x24,0x24,0x18,0x20,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch167 = { 8, 13, 0, 2, 8, ch167data }; - -static const unsigned char ch168data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6c,0x0,0x0 -}; -static const GLUTBitmapChar ch168 = { 8, 13, 0, 2, 8, ch168data }; - -static const unsigned char ch169data[] = { - 0x0,0x0,0x0,0x38,0x44,0x92,0xaa,0xa2,0xaa,0x92,0x44,0x38,0x0 -}; -static const GLUTBitmapChar ch169 = { 8, 13, 0, 2, 8, ch169data }; - -static const unsigned char ch170data[] = { - 0x0,0x0,0x0,0x0,0x7c,0x0,0x3c,0x44,0x3c,0x4,0x38,0x0,0x0 -}; -static const GLUTBitmapChar ch170 = { 8, 13, 0, 2, 8, ch170data }; - -static const unsigned char ch171data[] = { - 0x0,0x0,0x0,0x12,0x24,0x48,0x90,0x48,0x24,0x12,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch171 = { 8, 13, 0, 2, 8, ch171data }; - -static const unsigned char ch172data[] = { - 0x0,0x0,0x0,0x2,0x2,0x2,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch172 = { 8, 13, 0, 2, 8, ch172data }; - -static const unsigned char ch173data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch173 = { 8, 13, 0, 2, 8, ch173data }; - -static const unsigned char ch174data[] = { - 0x0,0x0,0x0,0x38,0x44,0xaa,0xb2,0xaa,0xaa,0x92,0x44,0x38,0x0 -}; -static const GLUTBitmapChar ch174 = { 8, 13, 0, 2, 8, ch174data }; - -static const unsigned char ch175data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0 -}; -static const GLUTBitmapChar ch175 = { 8, 13, 0, 2, 8, ch175data }; - -static const unsigned char ch176data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x24,0x24,0x18,0x0,0x0 -}; -static const GLUTBitmapChar ch176 = { 8, 13, 0, 2, 8, ch176data }; - -static const unsigned char ch177data[] = { - 0x0,0x0,0x0,0x7c,0x0,0x10,0x10,0x7c,0x10,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch177 = { 8, 13, 0, 2, 8, ch177data }; - -static const unsigned char ch178data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x78,0x40,0x30,0x8,0x48,0x30,0x0 -}; -static const GLUTBitmapChar ch178 = { 8, 13, 0, 2, 8, ch178data }; - -static const unsigned char ch179data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x48,0x8,0x10,0x48,0x30,0x0 -}; -static const GLUTBitmapChar ch179 = { 8, 13, 0, 2, 8, ch179data }; - -static const unsigned char ch180data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch180 = { 8, 13, 0, 2, 8, ch180data }; - -static const unsigned char ch181data[] = { - 0x0,0x40,0x5a,0x66,0x42,0x42,0x42,0x42,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch181 = { 8, 13, 0, 2, 8, ch181data }; - -static const unsigned char ch182data[] = { - 0x0,0x0,0x14,0x14,0x14,0x14,0x34,0x74,0x74,0x74,0x3e,0x0,0x0 -}; -static const GLUTBitmapChar ch182 = { 8, 13, 0, 2, 8, ch182data }; - -static const unsigned char ch183data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch183 = { 8, 13, 0, 2, 8, ch183data }; - -static const unsigned char ch184data[] = { - 0x18,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch184 = { 8, 13, 0, 2, 8, ch184data }; - -static const unsigned char ch185data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x20,0x20,0x20,0x60,0x20,0x0 -}; -static const GLUTBitmapChar ch185 = { 8, 13, 0, 2, 8, ch185data }; - -static const unsigned char ch186data[] = { - 0x0,0x0,0x0,0x0,0x0,0x78,0x0,0x30,0x48,0x48,0x30,0x0,0x0 -}; -static const GLUTBitmapChar ch186 = { 8, 13, 0, 2, 8, ch186data }; - -static const unsigned char ch187data[] = { - 0x0,0x0,0x0,0x90,0x48,0x24,0x12,0x24,0x48,0x90,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch187 = { 8, 13, 0, 2, 8, ch187data }; - -static const unsigned char ch188data[] = { - 0x0,0x0,0x6,0x1a,0x12,0xa,0xe6,0x42,0x40,0x40,0xc0,0x40,0x0 -}; -static const GLUTBitmapChar ch188 = { 8, 13, 0, 2, 8, ch188data }; - -static const unsigned char ch189data[] = { - 0x0,0x0,0x1e,0x10,0xc,0x2,0xf2,0x4c,0x40,0x40,0xc0,0x40,0x0 -}; -static const GLUTBitmapChar ch189 = { 8, 13, 0, 2, 8, ch189data }; - -static const unsigned char ch190data[] = { - 0x0,0x0,0x6,0x1a,0x12,0xa,0x66,0x92,0x10,0x20,0x90,0x60,0x0 -}; -static const GLUTBitmapChar ch190 = { 8, 13, 0, 2, 8, ch190data }; - -static const unsigned char ch191data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x40,0x20,0x10,0x10,0x0,0x10,0x0,0x0 -}; -static const GLUTBitmapChar ch191 = { 8, 13, 0, 2, 8, ch191data }; - -static const unsigned char ch192data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch192 = { 8, 13, 0, 2, 8, ch192data }; - -static const unsigned char ch193data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch193 = { 8, 13, 0, 2, 8, ch193data }; - -static const unsigned char ch194data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch194 = { 8, 13, 0, 2, 8, ch194data }; - -static const unsigned char ch195data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch195 = { 8, 13, 0, 2, 8, ch195data }; - -static const unsigned char ch196data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch196 = { 8, 13, 0, 2, 8, ch196data }; - -static const unsigned char ch197data[] = { - 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x18,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch197 = { 8, 13, 0, 2, 8, ch197data }; - -static const unsigned char ch198data[] = { - 0x0,0x0,0x9e,0x90,0x90,0xf0,0x9c,0x90,0x90,0x90,0x6e,0x0,0x0 -}; -static const GLUTBitmapChar ch198 = { 8, 13, 0, 2, 8, ch198data }; - -static const unsigned char ch199data[] = { - 0x10,0x8,0x3c,0x42,0x40,0x40,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 -}; -static const GLUTBitmapChar ch199 = { 8, 13, 0, 2, 8, ch199data }; - -static const unsigned char ch200data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch200 = { 8, 13, 0, 2, 8, ch200data }; - -static const unsigned char ch201data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch201 = { 8, 13, 0, 2, 8, ch201data }; - -static const unsigned char ch202data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch202 = { 8, 13, 0, 2, 8, ch202data }; - -static const unsigned char ch203data[] = { - 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch203 = { 8, 13, 0, 2, 8, ch203data }; - -static const unsigned char ch204data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch204 = { 8, 13, 0, 2, 8, ch204data }; - -static const unsigned char ch205data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch205 = { 8, 13, 0, 2, 8, ch205data }; - -static const unsigned char ch206data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch206 = { 8, 13, 0, 2, 8, ch206data }; - -static const unsigned char ch207data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x28,0x28,0x0 -}; -static const GLUTBitmapChar ch207 = { 8, 13, 0, 2, 8, ch207data }; - -static const unsigned char ch208data[] = { - 0x0,0x0,0xfc,0x42,0x42,0x42,0xe2,0x42,0x42,0x42,0xfc,0x0,0x0 -}; -static const GLUTBitmapChar ch208 = { 8, 13, 0, 2, 8, ch208data }; - -static const unsigned char ch209data[] = { - 0x0,0x0,0x82,0x86,0x8a,0x92,0xa2,0xc2,0x82,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch209 = { 8, 13, 0, 2, 8, ch209data }; - -static const unsigned char ch210data[] = { - 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch210 = { 8, 13, 0, 2, 8, ch210data }; - -static const unsigned char ch211data[] = { - 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch211 = { 8, 13, 0, 2, 8, ch211data }; - -static const unsigned char ch212data[] = { - 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch212 = { 8, 13, 0, 2, 8, ch212data }; - -static const unsigned char ch213data[] = { - 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch213 = { 8, 13, 0, 2, 8, ch213data }; - -static const unsigned char ch214data[] = { - 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x28,0x28,0x0 -}; -static const GLUTBitmapChar ch214 = { 8, 13, 0, 2, 8, ch214data }; - -static const unsigned char ch215data[] = { - 0x0,0x0,0x0,0x42,0x24,0x18,0x18,0x24,0x42,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch215 = { 8, 13, 0, 2, 8, ch215data }; - -static const unsigned char ch216data[] = { - 0x0,0x40,0x3c,0x62,0x52,0x52,0x52,0x4a,0x4a,0x46,0x3c,0x2,0x0 -}; -static const GLUTBitmapChar ch216 = { 8, 13, 0, 2, 8, ch216data }; - -static const unsigned char ch217data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch217 = { 8, 13, 0, 2, 8, ch217data }; - -static const unsigned char ch218data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch218 = { 8, 13, 0, 2, 8, ch218data }; - -static const unsigned char ch219data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch219 = { 8, 13, 0, 2, 8, ch219data }; - -static const unsigned char ch220data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch220 = { 8, 13, 0, 2, 8, ch220data }; - -static const unsigned char ch221data[] = { - 0x0,0x0,0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch221 = { 8, 13, 0, 2, 8, ch221data }; - -static const unsigned char ch222data[] = { - 0x0,0x0,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x7c,0x40,0x0,0x0 -}; -static const GLUTBitmapChar ch222 = { 8, 13, 0, 2, 8, ch222data }; - -static const unsigned char ch223data[] = { - 0x0,0x40,0x5c,0x62,0x42,0x42,0x7c,0x42,0x42,0x3c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch223 = { 8, 13, 0, 2, 8, ch223data }; - -static const unsigned char ch224data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch224 = { 8, 13, 0, 2, 8, ch224data }; - -static const unsigned char ch225data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch225 = { 8, 13, 0, 2, 8, ch225data }; - -static const unsigned char ch226data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch226 = { 8, 13, 0, 2, 8, ch226data }; - -static const unsigned char ch227data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch227 = { 8, 13, 0, 2, 8, ch227data }; - -static const unsigned char ch228data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch228 = { 8, 13, 0, 2, 8, ch228data }; - -static const unsigned char ch229data[] = { - 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x18,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch229 = { 8, 13, 0, 2, 8, ch229data }; - -static const unsigned char ch230data[] = { - 0x0,0x0,0x6c,0x92,0x90,0x7c,0x12,0x6c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch230 = { 8, 13, 0, 2, 8, ch230data }; - -static const unsigned char ch231data[] = { - 0x10,0x8,0x3c,0x42,0x40,0x40,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch231 = { 8, 13, 0, 2, 8, ch231data }; - -static const unsigned char ch232data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch232 = { 8, 13, 0, 2, 8, ch232data }; - -static const unsigned char ch233data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch233 = { 8, 13, 0, 2, 8, ch233data }; - -static const unsigned char ch234data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch234 = { 8, 13, 0, 2, 8, ch234data }; - -static const unsigned char ch235data[] = { - 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch235 = { 8, 13, 0, 2, 8, ch235data }; - -static const unsigned char ch236data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x10,0x20,0x0 -}; -static const GLUTBitmapChar ch236 = { 8, 13, 0, 2, 8, ch236data }; - -static const unsigned char ch237data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x20,0x10,0x0 -}; -static const GLUTBitmapChar ch237 = { 8, 13, 0, 2, 8, ch237data }; - -static const unsigned char ch238data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x48,0x30,0x0 -}; -static const GLUTBitmapChar ch238 = { 8, 13, 0, 2, 8, ch238data }; - -static const unsigned char ch239data[] = { - 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x28,0x28,0x0 -}; -static const GLUTBitmapChar ch239 = { 8, 13, 0, 2, 8, ch239data }; - -static const unsigned char ch240data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x4,0x28,0x18,0x24,0x0 -}; -static const GLUTBitmapChar ch240 = { 8, 13, 0, 2, 8, ch240data }; - -static const unsigned char ch241data[] = { - 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x0,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch241 = { 8, 13, 0, 2, 8, ch241data }; - -static const unsigned char ch242data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch242 = { 8, 13, 0, 2, 8, ch242data }; - -static const unsigned char ch243data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch243 = { 8, 13, 0, 2, 8, ch243data }; - -static const unsigned char ch244data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch244 = { 8, 13, 0, 2, 8, ch244data }; - -static const unsigned char ch245data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x28,0x14,0x0 -}; -static const GLUTBitmapChar ch245 = { 8, 13, 0, 2, 8, ch245data }; - -static const unsigned char ch246data[] = { - 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch246 = { 8, 13, 0, 2, 8, ch246data }; - -static const unsigned char ch247data[] = { - 0x0,0x0,0x0,0x10,0x10,0x0,0x7c,0x0,0x10,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch247 = { 8, 13, 0, 2, 8, ch247data }; - -static const unsigned char ch248data[] = { - 0x0,0x40,0x3c,0x62,0x52,0x4a,0x46,0x3c,0x2,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch248 = { 8, 13, 0, 2, 8, ch248data }; - -static const unsigned char ch249data[] = { - 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x8,0x10,0x0 -}; -static const GLUTBitmapChar ch249 = { 8, 13, 0, 2, 8, ch249data }; - -static const unsigned char ch250data[] = { - 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch250 = { 8, 13, 0, 2, 8, ch250data }; - -static const unsigned char ch251data[] = { - 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x24,0x18,0x0 -}; -static const GLUTBitmapChar ch251 = { 8, 13, 0, 2, 8, ch251data }; - -static const unsigned char ch252data[] = { - 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch252 = { 8, 13, 0, 2, 8, ch252data }; - -static const unsigned char ch253data[] = { - 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x10,0x8,0x0 -}; -static const GLUTBitmapChar ch253 = { 8, 13, 0, 2, 8, ch253data }; - -static const unsigned char ch254data[] = { - 0x40,0x40,0x5c,0x62,0x42,0x42,0x62,0x5c,0x40,0x40,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch254 = { 8, 13, 0, 2, 8, ch254data }; - -static const unsigned char ch255data[] = { - 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x24,0x24,0x0 -}; -static const GLUTBitmapChar ch255 = { 8, 13, 0, 2, 8, ch255data }; - - -static const GLUTBitmapChar *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 GLUTBitmapFont glutBitmap8By13 = { - "-Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO8859-1", - 13, 256, chars -}; diff --git a/src/glut/dos/f9x15.c b/src/glut/dos/f9x15.c deleted file mode 100644 index 0e7cd6da51..0000000000 --- a/src/glut/dos/f9x15.c +++ /dev/null @@ -1,1407 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Public domain terminal emulator font. Share and enjoy." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch0data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch0 = { 9, 15, 0, 3, 9, ch0data }; - -static const unsigned char ch1data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x1c,0x0,0x3e,0x0,0x7f,0x0,0x3e,0x0, - 0x1c,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch1 = { 9, 15, 0, 3, 9, ch1data }; - -static const unsigned char ch2data[] = { - 0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0, - 0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch2 = { 9, 15, 0, 3, 9, ch2data }; - -static const unsigned char ch3data[] = { - 0x0,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x44,0x0,0x44,0x0, - 0x7c,0x0,0x44,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch3 = { 9, 15, 0, 3, 9, ch3data }; - -static const unsigned char ch4data[] = { - 0x0,0x0,0x8,0x0,0x8,0x0,0xe,0x0,0x8,0x0,0xf,0x0,0x40,0x0,0x40,0x0, - 0x70,0x0,0x40,0x0,0x78,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch4 = { 9, 15, 0, 3, 9, ch4data }; - -static const unsigned char ch5data[] = { - 0x0,0x0,0x11,0x0,0x11,0x0,0x1e,0x0,0x11,0x0,0x1e,0x0,0x0,0x0,0x3c,0x0, - 0x40,0x0,0x40,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch5 = { 9, 15, 0, 3, 9, ch5data }; - -static const unsigned char ch6data[] = { - 0x0,0x0,0x10,0x0,0x10,0x0,0x1e,0x0,0x10,0x0,0x1f,0x0,0x0,0x0,0x7c,0x0, - 0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch6 = { 9, 15, 0, 3, 9, ch6data }; - -static const unsigned char ch7data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x1c,0x0,0x22,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch7 = { 9, 15, 0, 3, 9, ch7data }; - -static const unsigned char ch8data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x7f,0x0,0x8,0x0, - 0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch8 = { 9, 15, 0, 3, 9, ch8data }; - -static const unsigned char ch9data[] = { - 0x0,0x0,0x1f,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x44,0x0,0x4c,0x0, - 0x54,0x0,0x64,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch9 = { 9, 15, 0, 3, 9, ch9data }; - -static const unsigned char ch10data[] = { - 0x0,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x10,0x0, - 0x28,0x0,0x44,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch10 = { 9, 15, 0, 3, 9, ch10data }; - -static const unsigned char ch11data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch11 = { 9, 15, 0, 3, 9, ch11data }; - -static const unsigned char ch12data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf8,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch12 = { 9, 15, 0, 3, 9, ch12data }; - -static const unsigned char ch13data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf,0x80,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch13 = { 9, 15, 0, 3, 9, ch13data }; - -static const unsigned char ch14data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x80,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch14 = { 9, 15, 0, 3, 9, ch14data }; - -static const unsigned char ch15data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch15 = { 9, 15, 0, 3, 9, ch15data }; - -static const unsigned char ch16data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch16 = { 9, 15, 0, 3, 9, ch16data }; - -static const unsigned char ch17data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch17 = { 9, 15, 0, 3, 9, ch17data }; - -static const unsigned char ch18data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch18 = { 9, 15, 0, 3, 9, ch18data }; - -static const unsigned char ch19data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch19 = { 9, 15, 0, 3, 9, ch19data }; - -static const unsigned char ch20data[] = { - 0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch20 = { 9, 15, 0, 3, 9, ch20data }; - -static const unsigned char ch21data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf,0x80,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch21 = { 9, 15, 0, 3, 9, ch21data }; - -static const unsigned char ch22data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch22 = { 9, 15, 0, 3, 9, ch22data }; - -static const unsigned char ch23data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch23 = { 9, 15, 0, 3, 9, ch23data }; - -static const unsigned char ch24data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch24 = { 9, 15, 0, 3, 9, ch24data }; - -static const unsigned char ch25data[] = { - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch25 = { 9, 15, 0, 3, 9, ch25data }; - -static const unsigned char ch26data[] = { - 0x0,0x0,0x3f,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0, - 0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch26 = { 9, 15, 0, 3, 9, ch26data }; - -static const unsigned char ch27data[] = { - 0x0,0x0,0x7f,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0, - 0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch27 = { 9, 15, 0, 3, 9, ch27data }; - -static const unsigned char ch28data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x12,0x0,0x12,0x0,0x12,0x0,0x12,0x0, - 0x12,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch28 = { 9, 15, 0, 3, 9, ch28data }; - -static const unsigned char ch29data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x7f,0x0,0x8,0x0,0x7f,0x0, - 0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch29 = { 9, 15, 0, 3, 9, ch29data }; - -static const unsigned char ch30data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x2e,0x0,0x51,0x0,0x30,0x0,0x10,0x0,0x10,0x0, - 0x7c,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch30 = { 9, 15, 0, 3, 9, ch30data }; - -static const unsigned char ch31data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch31 = { 9, 15, 0, 3, 9, ch31data }; - -static const unsigned char ch32data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch32 = { 9, 15, 0, 3, 9, ch32data }; - -static const unsigned char ch33data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch33 = { 9, 15, 0, 3, 9, ch33data }; - -static const unsigned char ch34data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x12,0x0,0x12,0x0,0x12,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch34 = { 9, 15, 0, 3, 9, ch34data }; - -static const unsigned char ch35data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x24,0x0,0x24,0x0,0x7e,0x0,0x24,0x0, - 0x24,0x0,0x7e,0x0,0x24,0x0,0x24,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch35 = { 9, 15, 0, 3, 9, ch35data }; - -static const unsigned char ch36data[] = { - 0x0,0x0,0x0,0x0,0x8,0x0,0x3e,0x0,0x49,0x0,0x9,0x0,0x9,0x0,0xa,0x0, - 0x1c,0x0,0x28,0x0,0x48,0x0,0x49,0x0,0x3e,0x0,0x8,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch36 = { 9, 15, 0, 3, 9, ch36data }; - -static const unsigned char ch37data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x42,0x0,0x25,0x0,0x25,0x0,0x12,0x0,0x8,0x0, - 0x8,0x0,0x24,0x0,0x52,0x0,0x52,0x0,0x21,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch37 = { 9, 15, 0, 3, 9, ch37data }; - -static const unsigned char ch38data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x31,0x0,0x4a,0x0,0x44,0x0,0x4a,0x0,0x31,0x0, - 0x30,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch38 = { 9, 15, 0, 3, 9, ch38data }; - -static const unsigned char ch39data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch39 = { 9, 15, 0, 3, 9, ch39data }; - -static const unsigned char ch40data[] = { - 0x0,0x0,0x0,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0x10,0x0,0x10,0x0, - 0x10,0x0,0x10,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch40 = { 9, 15, 0, 3, 9, ch40data }; - -static const unsigned char ch41data[] = { - 0x0,0x0,0x0,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x4,0x0,0x4,0x0, - 0x4,0x0,0x4,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch41 = { 9, 15, 0, 3, 9, ch41data }; - -static const unsigned char ch42data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x49,0x0,0x2a,0x0,0x1c,0x0, - 0x2a,0x0,0x49,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch42 = { 9, 15, 0, 3, 9, ch42data }; - -static const unsigned char ch43data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7f,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch43 = { 9, 15, 0, 3, 9, ch43data }; - -static const unsigned char ch44data[] = { - 0x8,0x0,0x4,0x0,0x4,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch44 = { 9, 15, 0, 3, 9, ch44data }; - -static const unsigned char ch45data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch45 = { 9, 15, 0, 3, 9, ch45data }; - -static const unsigned char ch46data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch46 = { 9, 15, 0, 3, 9, ch46data }; - -static const unsigned char ch47data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x20,0x0,0x10,0x0,0x8,0x0, - 0x8,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch47 = { 9, 15, 0, 3, 9, ch47data }; - -static const unsigned char ch48data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch48 = { 9, 15, 0, 3, 9, ch48data }; - -static const unsigned char ch49data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x48,0x0,0x28,0x0,0x18,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch49 = { 9, 15, 0, 3, 9, ch49data }; - -static const unsigned char ch50data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x20,0x0,0x18,0x0,0x4,0x0, - 0x2,0x0,0x1,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch50 = { 9, 15, 0, 3, 9, ch50data }; - -static const unsigned char ch51data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x1,0x0,0x1,0x0, - 0xe,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch51 = { 9, 15, 0, 3, 9, ch51data }; - -static const unsigned char ch52data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x7f,0x0,0x42,0x0, - 0x22,0x0,0x12,0x0,0xa,0x0,0x6,0x0,0x2,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch52 = { 9, 15, 0, 3, 9, ch52data }; - -static const unsigned char ch53data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x1,0x0,0x1,0x0, - 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch53 = { 9, 15, 0, 3, 9, ch53data }; - -static const unsigned char ch54data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x61,0x0, - 0x5e,0x0,0x40,0x0,0x40,0x0,0x20,0x0,0x1e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch54 = { 9, 15, 0, 3, 9, ch54data }; - -static const unsigned char ch55data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x10,0x0,0x10,0x0,0x8,0x0, - 0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch55 = { 9, 15, 0, 3, 9, ch55data }; - -static const unsigned char ch56data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x22,0x0, - 0x1c,0x0,0x22,0x0,0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch56 = { 9, 15, 0, 3, 9, ch56data }; - -static const unsigned char ch57data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3d,0x0, - 0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch57 = { 9, 15, 0, 3, 9, ch57data }; - -static const unsigned char ch58data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch58 = { 9, 15, 0, 3, 9, ch58data }; - -static const unsigned char ch59data[] = { - 0x8,0x0,0x4,0x0,0x4,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch59 = { 9, 15, 0, 3, 9, ch59data }; - -static const unsigned char ch60data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0, - 0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch60 = { 9, 15, 0, 3, 9, ch60data }; - -static const unsigned char ch61data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x0,0x0, - 0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch61 = { 9, 15, 0, 3, 9, ch61data }; - -static const unsigned char ch62data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0, - 0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch62 = { 9, 15, 0, 3, 9, ch62data }; - -static const unsigned char ch63data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x4,0x0, - 0x2,0x0,0x1,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch63 = { 9, 15, 0, 3, 9, ch63data }; - -static const unsigned char ch64data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x4d,0x0,0x53,0x0, - 0x51,0x0,0x4f,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch64 = { 9, 15, 0, 3, 9, ch64data }; - -static const unsigned char ch65data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch65 = { 9, 15, 0, 3, 9, ch65data }; - -static const unsigned char ch66data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, - 0x3e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch66 = { 9, 15, 0, 3, 9, ch66data }; - -static const unsigned char ch67data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch67 = { 9, 15, 0, 3, 9, ch67data }; - -static const unsigned char ch68data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, - 0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch68 = { 9, 15, 0, 3, 9, ch68data }; - -static const unsigned char ch69data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0, - 0x3c,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch69 = { 9, 15, 0, 3, 9, ch69data }; - -static const unsigned char ch70data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0, - 0x3c,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch70 = { 9, 15, 0, 3, 9, ch70data }; - -static const unsigned char ch71data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x47,0x0, - 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch71 = { 9, 15, 0, 3, 9, ch71data }; - -static const unsigned char ch72data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x7f,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch72 = { 9, 15, 0, 3, 9, ch72data }; - -static const unsigned char ch73data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch73 = { 9, 15, 0, 3, 9, ch73data }; - -static const unsigned char ch74data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0x2,0x0,0x2,0x0,0x2,0x0, - 0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0xf,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch74 = { 9, 15, 0, 3, 9, ch74data }; - -static const unsigned char ch75data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x42,0x0,0x44,0x0,0x48,0x0,0x50,0x0, - 0x70,0x0,0x48,0x0,0x44,0x0,0x42,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch75 = { 9, 15, 0, 3, 9, ch75data }; - -static const unsigned char ch76data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch76 = { 9, 15, 0, 3, 9, ch76data }; - -static const unsigned char ch77data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x49,0x0,0x49,0x0, - 0x55,0x0,0x55,0x0,0x63,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch77 = { 9, 15, 0, 3, 9, ch77data }; - -static const unsigned char ch78data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x43,0x0,0x45,0x0, - 0x49,0x0,0x51,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch78 = { 9, 15, 0, 3, 9, ch78data }; - -static const unsigned char ch79data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch79 = { 9, 15, 0, 3, 9, ch79data }; - -static const unsigned char ch80data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x7e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch80 = { 9, 15, 0, 3, 9, ch80data }; - -static const unsigned char ch81data[] = { - 0x0,0x0,0x3,0x0,0x4,0x0,0x3e,0x0,0x49,0x0,0x51,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch81 = { 9, 15, 0, 3, 9, ch81data }; - -static const unsigned char ch82data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x42,0x0,0x44,0x0,0x48,0x0, - 0x7e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch82 = { 9, 15, 0, 3, 9, ch82data }; - -static const unsigned char ch83data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x1,0x0,0x6,0x0, - 0x38,0x0,0x40,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch83 = { 9, 15, 0, 3, 9, ch83data }; - -static const unsigned char ch84data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch84 = { 9, 15, 0, 3, 9, ch84data }; - -static const unsigned char ch85data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch85 = { 9, 15, 0, 3, 9, ch85data }; - -static const unsigned char ch86data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x14,0x0,0x14,0x0,0x14,0x0,0x22,0x0, - 0x22,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch86 = { 9, 15, 0, 3, 9, ch86data }; - -static const unsigned char ch87data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x49,0x0, - 0x49,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch87 = { 9, 15, 0, 3, 9, ch87data }; - -static const unsigned char ch88data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0, - 0x8,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch88 = { 9, 15, 0, 3, 9, ch88data }; - -static const unsigned char ch89data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch89 = { 9, 15, 0, 3, 9, ch89data }; - -static const unsigned char ch90data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x40,0x0,0x20,0x0,0x10,0x0, - 0x8,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch90 = { 9, 15, 0, 3, 9, ch90data }; - -static const unsigned char ch91data[] = { - 0x0,0x0,0x0,0x0,0x1e,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0, - 0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x1e,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch91 = { 9, 15, 0, 3, 9, ch91data }; - -static const unsigned char ch92data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x8,0x0, - 0x8,0x0,0x10,0x0,0x20,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch92 = { 9, 15, 0, 3, 9, ch92data }; - -static const unsigned char ch93data[] = { - 0x0,0x0,0x0,0x0,0x3c,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, - 0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch93 = { 9, 15, 0, 3, 9, ch93data }; - -static const unsigned char ch94data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch94 = { 9, 15, 0, 3, 9, ch94data }; - -static const unsigned char ch95data[] = { - 0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch95 = { 9, 15, 0, 3, 9, ch95data }; - -static const unsigned char ch96data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x18,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch96 = { 9, 15, 0, 3, 9, ch96data }; - -static const unsigned char ch97data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch97 = { 9, 15, 0, 3, 9, ch97data }; - -static const unsigned char ch98data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch98 = { 9, 15, 0, 3, 9, ch98data }; - -static const unsigned char ch99data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch99 = { 9, 15, 0, 3, 9, ch99data }; - -static const unsigned char ch100data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x43,0x0,0x3d,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch100 = { 9, 15, 0, 3, 9, ch100data }; - -static const unsigned char ch101data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch101 = { 9, 15, 0, 3, 9, ch101data }; - -static const unsigned char ch102data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x7c,0x0, - 0x10,0x0,0x10,0x0,0x11,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch102 = { 9, 15, 0, 3, 9, ch102data }; - -static const unsigned char ch103data[] = { - 0x3e,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x40,0x0,0x3c,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch103 = { 9, 15, 0, 3, 9, ch103data }; - -static const unsigned char ch104data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch104 = { 9, 15, 0, 3, 9, ch104data }; - -static const unsigned char ch105data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch105 = { 9, 15, 0, 3, 9, ch105data }; - -static const unsigned char ch106data[] = { - 0x3c,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, - 0x2,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch106 = { 9, 15, 0, 3, 9, ch106data }; - -static const unsigned char ch107data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x46,0x0,0x58,0x0,0x60,0x0,0x58,0x0, - 0x46,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch107 = { 9, 15, 0, 3, 9, ch107data }; - -static const unsigned char ch108data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch108 = { 9, 15, 0, 3, 9, ch108data }; - -static const unsigned char ch109data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x49,0x0,0x49,0x0,0x49,0x0,0x49,0x0, - 0x49,0x0,0x76,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch109 = { 9, 15, 0, 3, 9, ch109data }; - -static const unsigned char ch110data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch110 = { 9, 15, 0, 3, 9, ch110data }; - -static const unsigned char ch111data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch111 = { 9, 15, 0, 3, 9, ch111data }; - -static const unsigned char ch112data[] = { - 0x40,0x0,0x40,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch112 = { 9, 15, 0, 3, 9, ch112data }; - -static const unsigned char ch113data[] = { - 0x1,0x0,0x1,0x0,0x1,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x43,0x0,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch113 = { 9, 15, 0, 3, 9, ch113data }; - -static const unsigned char ch114data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x21,0x0, - 0x31,0x0,0x4e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch114 = { 9, 15, 0, 3, 9, ch114data }; - -static const unsigned char ch115data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x3e,0x0,0x40,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch115 = { 9, 15, 0, 3, 9, ch115data }; - -static const unsigned char ch116data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x0,0x11,0x0,0x10,0x0,0x10,0x0,0x10,0x0, - 0x10,0x0,0x7e,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch116 = { 9, 15, 0, 3, 9, ch116data }; - -static const unsigned char ch117data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch117 = { 9, 15, 0, 3, 9, ch117data }; - -static const unsigned char ch118data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x14,0x0,0x14,0x0,0x22,0x0,0x22,0x0, - 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch118 = { 9, 15, 0, 3, 9, ch118data }; - -static const unsigned char ch119data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x49,0x0, - 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch119 = { 9, 15, 0, 3, 9, ch119data }; - -static const unsigned char ch120data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x14,0x0, - 0x22,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch120 = { 9, 15, 0, 3, 9, ch120data }; - -static const unsigned char ch121data[] = { - 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch121 = { 9, 15, 0, 3, 9, ch121data }; - -static const unsigned char ch122data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0, - 0x2,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch122 = { 9, 15, 0, 3, 9, ch122data }; - -static const unsigned char ch123data[] = { - 0x0,0x0,0x0,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x18,0x0, - 0x18,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch123 = { 9, 15, 0, 3, 9, ch123data }; - -static const unsigned char ch124data[] = { - 0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch124 = { 9, 15, 0, 3, 9, ch124data }; - -static const unsigned char ch125data[] = { - 0x0,0x0,0x0,0x0,0x70,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0xc,0x0, - 0xc,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x70,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch125 = { 9, 15, 0, 3, 9, ch125data }; - -static const unsigned char ch126data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x46,0x0,0x49,0x0,0x31,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch126 = { 9, 15, 0, 3, 9, ch126data }; - -static const unsigned char ch127data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch127 = { 9, 15, 0, 3, 9, ch127data }; - -static const unsigned char ch160data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch160 = { 9, 15, 0, 3, 9, ch160data }; - -static const unsigned char ch161data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch161 = { 9, 15, 0, 3, 9, ch161data }; - -static const unsigned char ch162data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x3c,0x0,0x52,0x0,0x50,0x0,0x48,0x0, - 0x4a,0x0,0x3c,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch162 = { 9, 15, 0, 3, 9, ch162data }; - -static const unsigned char ch163data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x2e,0x0,0x51,0x0,0x30,0x0,0x10,0x0,0x10,0x0, - 0x7c,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch163 = { 9, 15, 0, 3, 9, ch163data }; - -static const unsigned char ch164data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x3e,0x0, - 0x22,0x0,0x22,0x0,0x3e,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch164 = { 9, 15, 0, 3, 9, ch164data }; - -static const unsigned char ch165data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x3e,0x0,0x8,0x0, - 0x3e,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch165 = { 9, 15, 0, 3, 9, ch165data }; - -static const unsigned char ch166data[] = { - 0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0, - 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch166 = { 9, 15, 0, 3, 9, ch166data }; - -static const unsigned char ch167data[] = { - 0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x2,0x0,0x1c,0x0,0x22,0x0,0x22,0x0, - 0x22,0x0,0x1c,0x0,0x20,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch167 = { 9, 15, 0, 3, 9, ch167data }; - -static const unsigned char ch168data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch168 = { 9, 15, 0, 3, 9, ch168data }; - -static const unsigned char ch169data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0x99,0x0,0xa5,0x0, - 0xa1,0x0,0xa5,0x0,0x99,0x0,0x42,0x0,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch169 = { 9, 15, 0, 3, 9, ch169data }; - -static const unsigned char ch170data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f,0x0,0x0,0x0, - 0xf,0x0,0x12,0x0,0xe,0x0,0x12,0x0,0xc,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch170 = { 9, 15, 0, 3, 9, ch170data }; - -static const unsigned char ch171data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x12,0x0,0x24,0x0,0x48,0x0, - 0x48,0x0,0x24,0x0,0x12,0x0,0x9,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch171 = { 9, 15, 0, 3, 9, ch171data }; - -static const unsigned char ch172data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, - 0x7e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch172 = { 9, 15, 0, 3, 9, ch172data }; - -static const unsigned char ch173data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch173 = { 9, 15, 0, 3, 9, ch173data }; - -static const unsigned char ch174data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0xa5,0x0,0xa9,0x0, - 0xbd,0x0,0xa5,0x0,0xb9,0x0,0x42,0x0,0x3c,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch174 = { 9, 15, 0, 3, 9, ch174data }; - -static const unsigned char ch175data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch175 = { 9, 15, 0, 3, 9, ch175data }; - -static const unsigned char ch176data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0xc,0x0,0x12,0x0,0x12,0x0,0xc,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch176 = { 9, 15, 0, 3, 9, ch176data }; - -static const unsigned char ch177data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch177 = { 9, 15, 0, 3, 9, ch177data }; - -static const unsigned char ch178data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x78,0x0, - 0x40,0x0,0x30,0x0,0x8,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch178 = { 9, 15, 0, 3, 9, ch178data }; - -static const unsigned char ch179data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0, - 0x48,0x0,0x8,0x0,0x10,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch179 = { 9, 15, 0, 3, 9, ch179data }; - -static const unsigned char ch180data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch180 = { 9, 15, 0, 3, 9, ch180data }; - -static const unsigned char ch181data[] = { - 0x0,0x0,0x40,0x0,0x40,0x0,0x5d,0x0,0x63,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch181 = { 9, 15, 0, 3, 9, ch181data }; - -static const unsigned char ch182data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, - 0x3d,0x0,0x45,0x0,0x45,0x0,0x45,0x0,0x3f,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch182 = { 9, 15, 0, 3, 9, ch182data }; - -static const unsigned char ch183data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0, - 0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch183 = { 9, 15, 0, 3, 9, ch183data }; - -static const unsigned char ch184data[] = { - 0x18,0x0,0x24,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch184 = { 9, 15, 0, 3, 9, ch184data }; - -static const unsigned char ch185data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x0, - 0x20,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch185 = { 9, 15, 0, 3, 9, ch185data }; - -static const unsigned char ch186data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x7c,0x0,0x0,0x0,0x38,0x0,0x44,0x0,0x44,0x0,0x38,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch186 = { 9, 15, 0, 3, 9, ch186data }; - -static const unsigned char ch187data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x0,0x24,0x0,0x12,0x0,0x9,0x0, - 0x9,0x0,0x12,0x0,0x24,0x0,0x48,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch187 = { 9, 15, 0, 3, 9, ch187data }; - -static const unsigned char ch188data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x73,0x0, - 0x21,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch188 = { 9, 15, 0, 3, 9, ch188data }; - -static const unsigned char ch189data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x8,0x0,0x6,0x0,0x1,0x0,0x79,0x0, - 0x26,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch189 = { 9, 15, 0, 3, 9, ch189data }; - -static const unsigned char ch190data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x33,0x0, - 0x49,0x0,0x8,0x0,0x10,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch190 = { 9, 15, 0, 3, 9, ch190data }; - -static const unsigned char ch191data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x40,0x0,0x20,0x0, - 0x10,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch191 = { 9, 15, 0, 3, 9, ch191data }; - -static const unsigned char ch192data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch192 = { 9, 15, 0, 3, 9, ch192data }; - -static const unsigned char ch193data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch193 = { 9, 15, 0, 3, 9, ch193data }; - -static const unsigned char ch194data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch194 = { 9, 15, 0, 3, 9, ch194data }; - -static const unsigned char ch195data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch195 = { 9, 15, 0, 3, 9, ch195data }; - -static const unsigned char ch196data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch196 = { 9, 15, 0, 3, 9, ch196data }; - -static const unsigned char ch197data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x22,0x0,0x1c,0x0,0x8,0x0,0x14,0x0,0x8,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch197 = { 9, 15, 0, 3, 9, ch197data }; - -static const unsigned char ch198data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x4f,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x7e,0x0, - 0x48,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x37,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch198 = { 9, 15, 0, 3, 9, ch198data }; - -static const unsigned char ch199data[] = { - 0x18,0x0,0x24,0x0,0xc,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch199 = { 9, 15, 0, 3, 9, ch199data }; - -static const unsigned char ch200data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, - 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch200 = { 9, 15, 0, 3, 9, ch200data }; - -static const unsigned char ch201data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, - 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch201 = { 9, 15, 0, 3, 9, ch201data }; - -static const unsigned char ch202data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, - 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch202 = { 9, 15, 0, 3, 9, ch202data }; - -static const unsigned char ch203data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, - 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch203 = { 9, 15, 0, 3, 9, ch203data }; - -static const unsigned char ch204data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch204 = { 9, 15, 0, 3, 9, ch204data }; - -static const unsigned char ch205data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch205 = { 9, 15, 0, 3, 9, ch205data }; - -static const unsigned char ch206data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch206 = { 9, 15, 0, 3, 9, ch206data }; - -static const unsigned char ch207data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch207 = { 9, 15, 0, 3, 9, ch207data }; - -static const unsigned char ch208data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, - 0x79,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch208 = { 9, 15, 0, 3, 9, ch208data }; - -static const unsigned char ch209data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x43,0x0,0x45,0x0,0x49,0x0,0x49,0x0, - 0x51,0x0,0x61,0x0,0x41,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch209 = { 9, 15, 0, 3, 9, ch209data }; - -static const unsigned char ch210data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch210 = { 9, 15, 0, 3, 9, ch210data }; - -static const unsigned char ch211data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch211 = { 9, 15, 0, 3, 9, ch211data }; - -static const unsigned char ch212data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch212 = { 9, 15, 0, 3, 9, ch212data }; - -static const unsigned char ch213data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch213 = { 9, 15, 0, 3, 9, ch213data }; - -static const unsigned char ch214data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch214 = { 9, 15, 0, 3, 9, ch214data }; - -static const unsigned char ch215data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0, - 0x14,0x0,0x22,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch215 = { 9, 15, 0, 3, 9, ch215data }; - -static const unsigned char ch216data[] = { - 0x0,0x0,0x0,0x0,0x40,0x0,0x3e,0x0,0x61,0x0,0x51,0x0,0x51,0x0,0x49,0x0, - 0x49,0x0,0x45,0x0,0x45,0x0,0x43,0x0,0x3e,0x0,0x1,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch216 = { 9, 15, 0, 3, 9, ch216data }; - -static const unsigned char ch217data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch217 = { 9, 15, 0, 3, 9, ch217data }; - -static const unsigned char ch218data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch218 = { 9, 15, 0, 3, 9, ch218data }; - -static const unsigned char ch219data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch219 = { 9, 15, 0, 3, 9, ch219data }; - -static const unsigned char ch220data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch220 = { 9, 15, 0, 3, 9, ch220data }; - -static const unsigned char ch221data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x14,0x0, - 0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch221 = { 9, 15, 0, 3, 9, ch221data }; - -static const unsigned char ch222data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x7e,0x0,0x41,0x0, - 0x41,0x0,0x41,0x0,0x7e,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch222 = { 9, 15, 0, 3, 9, ch222data }; - -static const unsigned char ch223data[] = { - 0x0,0x0,0x0,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x7e,0x0, - 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch223 = { 9, 15, 0, 3, 9, ch223data }; - -static const unsigned char ch224data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch224 = { 9, 15, 0, 3, 9, ch224data }; - -static const unsigned char ch225data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch225 = { 9, 15, 0, 3, 9, ch225data }; - -static const unsigned char ch226data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch226 = { 9, 15, 0, 3, 9, ch226data }; - -static const unsigned char ch227data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch227 = { 9, 15, 0, 3, 9, ch227data }; - -static const unsigned char ch228data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch228 = { 9, 15, 0, 3, 9, ch228data }; - -static const unsigned char ch229data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, - 0x1,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x12,0x0,0xc,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch229 = { 9, 15, 0, 3, 9, ch229data }; - -static const unsigned char ch230data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x37,0x0,0x49,0x0,0x48,0x0,0x3e,0x0,0x9,0x0, - 0x49,0x0,0x36,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch230 = { 9, 15, 0, 3, 9, ch230data }; - -static const unsigned char ch231data[] = { - 0x18,0x0,0x24,0x0,0xc,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch231 = { 9, 15, 0, 3, 9, ch231data }; - -static const unsigned char ch232data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch232 = { 9, 15, 0, 3, 9, ch232data }; - -static const unsigned char ch233data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch233 = { 9, 15, 0, 3, 9, ch233data }; - -static const unsigned char ch234data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch234 = { 9, 15, 0, 3, 9, ch234data }; - -static const unsigned char ch235data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch235 = { 9, 15, 0, 3, 9, ch235data }; - -static const unsigned char ch236data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch236 = { 9, 15, 0, 3, 9, ch236data }; - -static const unsigned char ch237data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch237 = { 9, 15, 0, 3, 9, ch237data }; - -static const unsigned char ch238data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x24,0x0,0x18,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch238 = { 9, 15, 0, 3, 9, ch238data }; - -static const unsigned char ch239data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, - 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch239 = { 9, 15, 0, 3, 9, ch239data }; - -static const unsigned char ch240data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x4,0x0,0x28,0x0,0x18,0x0,0x24,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch240 = { 9, 15, 0, 3, 9, ch240data }; - -static const unsigned char ch241data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch241 = { 9, 15, 0, 3, 9, ch241data }; - -static const unsigned char ch242data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch242 = { 9, 15, 0, 3, 9, ch242data }; - -static const unsigned char ch243data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch243 = { 9, 15, 0, 3, 9, ch243data }; - -static const unsigned char ch244data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch244 = { 9, 15, 0, 3, 9, ch244data }; - -static const unsigned char ch245data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch245 = { 9, 15, 0, 3, 9, ch245data }; - -static const unsigned char ch246data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch246 = { 9, 15, 0, 3, 9, ch246data }; - -static const unsigned char ch247data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x1c,0x0,0x8,0x0,0x0,0x0,0x7f,0x0, - 0x0,0x0,0x8,0x0,0x1c,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch247 = { 9, 15, 0, 3, 9, ch247data }; - -static const unsigned char ch248data[] = { - 0x0,0x0,0x0,0x0,0x40,0x0,0x3e,0x0,0x51,0x0,0x51,0x0,0x49,0x0,0x45,0x0, - 0x45,0x0,0x3e,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch248 = { 9, 15, 0, 3, 9, ch248data }; - -static const unsigned char ch249data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch249 = { 9, 15, 0, 3, 9, ch249data }; - -static const unsigned char ch250data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch250 = { 9, 15, 0, 3, 9, ch250data }; - -static const unsigned char ch251data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch251 = { 9, 15, 0, 3, 9, ch251data }; - -static const unsigned char ch252data[] = { - 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch252 = { 9, 15, 0, 3, 9, ch252data }; - -static const unsigned char ch253data[] = { - 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch253 = { 9, 15, 0, 3, 9, ch253data }; - -static const unsigned char ch254data[] = { - 0x40,0x0,0x40,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, - 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch254 = { 9, 15, 0, 3, 9, ch254data }; - -static const unsigned char ch255data[] = { - 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, - 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 -}; -static const GLUTBitmapChar ch255 = { 9, 15, 0, 3, 9, ch255data }; - - -static const GLUTBitmapChar *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 GLUTBitmapFont glutBitmap9By15 = { - "-Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO8859-1", - 15, 256, chars -}; diff --git a/src/glut/dos/hel10.c b/src/glut/dos/hel10.c deleted file mode 100644 index 3d24ffee1c..0000000000 --- a/src/glut/dos/hel10.c +++ /dev/null @@ -1,1019 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch32data[] = { - 0x0 -}; -static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 3, ch32data }; - -static const unsigned char ch33data[] = { - 0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch33 = { 1, 8, -1, 0, 3, ch33data }; - -static const unsigned char ch34data[] = { - 0xa0,0xa0 -}; -static const GLUTBitmapChar ch34 = { 3, 2, -1, -6, 4, ch34data }; - -static const unsigned char ch35data[] = { - 0x50,0x50,0xf8,0x28,0x7c,0x28,0x28 -}; -static const GLUTBitmapChar ch35 = { 6, 7, 0, 0, 6, ch35data }; - -static const unsigned char ch36data[] = { - 0x20,0x70,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20 -}; -static const GLUTBitmapChar ch36 = { 5, 9, 0, 1, 6, ch36data }; - -static const unsigned char ch37data[] = { - 0x26,0x29,0x16,0x10,0x8,0x68,0x94,0x64 -}; -static const GLUTBitmapChar ch37 = { 8, 8, 0, 0, 9, ch37data }; - -static const unsigned char ch38data[] = { - 0x64,0x98,0x98,0xa4,0x60,0x50,0x50,0x20 -}; -static const GLUTBitmapChar ch38 = { 6, 8, -1, 0, 8, ch38data }; - -static const unsigned char ch39data[] = { - 0x80,0x40,0x40 -}; -static const GLUTBitmapChar ch39 = { 2, 3, -1, -5, 3, ch39data }; - -static const unsigned char ch40data[] = { - 0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x40,0x40,0x20 -}; -static const GLUTBitmapChar ch40 = { 3, 10, 0, 2, 4, ch40data }; - -static const unsigned char ch41data[] = { - 0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x40,0x40,0x80 -}; -static const GLUTBitmapChar ch41 = { 3, 10, -1, 2, 4, ch41data }; - -static const unsigned char ch42data[] = { - 0xa0,0x40,0xa0 -}; -static const GLUTBitmapChar ch42 = { 3, 3, 0, -5, 4, ch42data }; - -static const unsigned char ch43data[] = { - 0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch43 = { 5, 5, 0, -1, 6, ch43data }; - -static const unsigned char ch44data[] = { - 0x80,0x40,0x40 -}; -static const GLUTBitmapChar ch44 = { 2, 3, 0, 2, 3, ch44data }; - -static const unsigned char ch45data[] = { - 0xf8 -}; -static const GLUTBitmapChar ch45 = { 5, 1, -1, -3, 7, ch45data }; - -static const unsigned char ch46data[] = { - 0x80 -}; -static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; - -static const unsigned char ch47data[] = { - 0x80,0x80,0x40,0x40,0x40,0x40,0x20,0x20 -}; -static const GLUTBitmapChar ch47 = { 3, 8, 0, 0, 3, ch47data }; - -static const unsigned char ch48data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch48 = { 5, 8, 0, 0, 6, ch48data }; - -static const unsigned char ch49data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0xc0,0x40 -}; -static const GLUTBitmapChar ch49 = { 2, 8, -1, 0, 6, ch49data }; - -static const unsigned char ch50data[] = { - 0xf8,0x80,0x40,0x30,0x8,0x8,0x88,0x70 -}; -static const GLUTBitmapChar ch50 = { 5, 8, 0, 0, 6, ch50data }; - -static const unsigned char ch51data[] = { - 0x70,0x88,0x8,0x8,0x30,0x8,0x88,0x70 -}; -static const GLUTBitmapChar ch51 = { 5, 8, 0, 0, 6, ch51data }; - -static const unsigned char ch52data[] = { - 0x10,0x10,0xf8,0x90,0x50,0x50,0x30,0x10 -}; -static const GLUTBitmapChar ch52 = { 5, 8, 0, 0, 6, ch52data }; - -static const unsigned char ch53data[] = { - 0x70,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8 -}; -static const GLUTBitmapChar ch53 = { 5, 8, 0, 0, 6, ch53data }; - -static const unsigned char ch54data[] = { - 0x70,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch54 = { 5, 8, 0, 0, 6, ch54data }; - -static const unsigned char ch55data[] = { - 0x40,0x40,0x20,0x20,0x10,0x10,0x8,0xf8 -}; -static const GLUTBitmapChar ch55 = { 5, 8, 0, 0, 6, ch55data }; - -static const unsigned char ch56data[] = { - 0x70,0x88,0x88,0x88,0x70,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch56 = { 5, 8, 0, 0, 6, ch56data }; - -static const unsigned char ch57data[] = { - 0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch57 = { 5, 8, 0, 0, 6, ch57data }; - -static const unsigned char ch58data[] = { - 0x80,0x0,0x0,0x0,0x0,0x80 -}; -static const GLUTBitmapChar ch58 = { 1, 6, -1, 0, 3, ch58data }; - -static const unsigned char ch59data[] = { - 0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40 -}; -static const GLUTBitmapChar ch59 = { 2, 8, 0, 2, 3, ch59data }; - -static const unsigned char ch60data[] = { - 0x20,0x40,0x80,0x40,0x20 -}; -static const GLUTBitmapChar ch60 = { 3, 5, -1, -1, 6, ch60data }; - -static const unsigned char ch61data[] = { - 0xf0,0x0,0xf0 -}; -static const GLUTBitmapChar ch61 = { 4, 3, 0, -2, 5, ch61data }; - -static const unsigned char ch62data[] = { - 0x80,0x40,0x20,0x40,0x80 -}; -static const GLUTBitmapChar ch62 = { 3, 5, -1, -1, 6, ch62data }; - -static const unsigned char ch63data[] = { - 0x40,0x0,0x40,0x40,0x20,0x10,0x90,0x60 -}; -static const GLUTBitmapChar ch63 = { 4, 8, -1, 0, 6, ch63data }; - -static const unsigned char ch64data[] = { - 0x3e,0x0,0x40,0x0,0x9b,0x0,0xa4,0x80,0xa4,0x80,0xa2,0x40,0x92,0x40,0x4d,0x40, - 0x20,0x80,0x1f,0x0 -}; -static const GLUTBitmapChar ch64 = { 10, 10, 0, 2, 11, ch64data }; - -static const unsigned char ch65data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10 -}; -static const GLUTBitmapChar ch65 = { 7, 8, 0, 0, 7, ch65data }; - -static const unsigned char ch66data[] = { - 0xf0,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0 -}; -static const GLUTBitmapChar ch66 = { 5, 8, -1, 0, 7, ch66data }; - -static const unsigned char ch67data[] = { - 0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78 -}; -static const GLUTBitmapChar ch67 = { 6, 8, -1, 0, 8, ch67data }; - -static const unsigned char ch68data[] = { - 0xf0,0x88,0x84,0x84,0x84,0x84,0x88,0xf0 -}; -static const GLUTBitmapChar ch68 = { 6, 8, -1, 0, 8, ch68data }; - -static const unsigned char ch69data[] = { - 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8 -}; -static const GLUTBitmapChar ch69 = { 5, 8, -1, 0, 7, ch69data }; - -static const unsigned char ch70data[] = { - 0x80,0x80,0x80,0x80,0xf0,0x80,0x80,0xf8 -}; -static const GLUTBitmapChar ch70 = { 5, 8, -1, 0, 6, ch70data }; - -static const unsigned char ch71data[] = { - 0x74,0x8c,0x84,0x8c,0x80,0x80,0x84,0x78 -}; -static const GLUTBitmapChar ch71 = { 6, 8, -1, 0, 8, ch71data }; - -static const unsigned char ch72data[] = { - 0x84,0x84,0x84,0x84,0xfc,0x84,0x84,0x84 -}; -static const GLUTBitmapChar ch72 = { 6, 8, -1, 0, 8, ch72data }; - -static const unsigned char ch73data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch73 = { 1, 8, -1, 0, 3, ch73data }; - -static const unsigned char ch74data[] = { - 0x60,0x90,0x10,0x10,0x10,0x10,0x10,0x10 -}; -static const GLUTBitmapChar ch74 = { 4, 8, 0, 0, 5, ch74data }; - -static const unsigned char ch75data[] = { - 0x88,0x88,0x90,0x90,0xe0,0xa0,0x90,0x88 -}; -static const GLUTBitmapChar ch75 = { 5, 8, -1, 0, 7, ch75data }; - -static const unsigned char ch76data[] = { - 0xf0,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch76 = { 4, 8, -1, 0, 6, ch76data }; - -static const unsigned char ch77data[] = { - 0x92,0x92,0x92,0xaa,0xaa,0xc6,0xc6,0x82 -}; -static const GLUTBitmapChar ch77 = { 7, 8, -1, 0, 9, ch77data }; - -static const unsigned char ch78data[] = { - 0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4 -}; -static const GLUTBitmapChar ch78 = { 6, 8, -1, 0, 8, ch78data }; - -static const unsigned char ch79data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78 -}; -static const GLUTBitmapChar ch79 = { 6, 8, -1, 0, 8, ch79data }; - -static const unsigned char ch80data[] = { - 0x80,0x80,0x80,0x80,0xf0,0x88,0x88,0xf0 -}; -static const GLUTBitmapChar ch80 = { 5, 8, -1, 0, 7, ch80data }; - -static const unsigned char ch81data[] = { - 0x2,0x7c,0x8c,0x94,0x84,0x84,0x84,0x84,0x78 -}; -static const GLUTBitmapChar ch81 = { 7, 9, -1, 1, 8, ch81data }; - -static const unsigned char ch82data[] = { - 0x88,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0 -}; -static const GLUTBitmapChar ch82 = { 5, 8, -1, 0, 7, ch82data }; - -static const unsigned char ch83data[] = { - 0x70,0x88,0x88,0x8,0x70,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch83 = { 5, 8, -1, 0, 7, ch83data }; - -static const unsigned char ch84data[] = { - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf8 -}; -static const GLUTBitmapChar ch84 = { 5, 8, 0, 0, 5, ch84data }; - -static const unsigned char ch85data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84 -}; -static const GLUTBitmapChar ch85 = { 6, 8, -1, 0, 8, ch85data }; - -static const unsigned char ch86data[] = { - 0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82 -}; -static const GLUTBitmapChar ch86 = { 7, 8, 0, 0, 7, ch86data }; - -static const unsigned char ch87data[] = { - 0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80 -}; -static const GLUTBitmapChar ch87 = { 9, 8, 0, 0, 9, ch87data }; - -static const unsigned char ch88data[] = { - 0x88,0x88,0x50,0x50,0x20,0x50,0x88,0x88 -}; -static const GLUTBitmapChar ch88 = { 5, 8, -1, 0, 7, ch88data }; - -static const unsigned char ch89data[] = { - 0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82 -}; -static const GLUTBitmapChar ch89 = { 7, 8, 0, 0, 7, ch89data }; - -static const unsigned char ch90data[] = { - 0xf8,0x80,0x40,0x20,0x20,0x10,0x8,0xf8 -}; -static const GLUTBitmapChar ch90 = { 5, 8, -1, 0, 7, ch90data }; - -static const unsigned char ch91data[] = { - 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 -}; -static const GLUTBitmapChar ch91 = { 2, 10, -1, 2, 3, ch91data }; - -static const unsigned char ch92data[] = { - 0x20,0x20,0x40,0x40,0x40,0x40,0x80,0x80 -}; -static const GLUTBitmapChar ch92 = { 3, 8, 0, 0, 3, ch92data }; - -static const unsigned char ch93data[] = { - 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 -}; -static const GLUTBitmapChar ch93 = { 2, 10, 0, 2, 3, ch93data }; - -static const unsigned char ch94data[] = { - 0x88,0x50,0x50,0x20,0x20 -}; -static const GLUTBitmapChar ch94 = { 5, 5, 0, -3, 6, ch94data }; - -static const unsigned char ch95data[] = { - 0xfc -}; -static const GLUTBitmapChar ch95 = { 6, 1, 0, 2, 6, ch95data }; - -static const unsigned char ch96data[] = { - 0x80,0x80,0x40 -}; -static const GLUTBitmapChar ch96 = { 2, 3, 0, -5, 3, ch96data }; - -static const unsigned char ch97data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0 -}; -static const GLUTBitmapChar ch97 = { 5, 6, 0, 0, 5, ch97data }; - -static const unsigned char ch98data[] = { - 0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch98 = { 5, 8, 0, 0, 6, ch98data }; - -static const unsigned char ch99data[] = { - 0x60,0x90,0x80,0x80,0x90,0x60 -}; -static const GLUTBitmapChar ch99 = { 4, 6, 0, 0, 5, ch99data }; - -static const unsigned char ch100data[] = { - 0x68,0x98,0x88,0x88,0x98,0x68,0x8,0x8 -}; -static const GLUTBitmapChar ch100 = { 5, 8, 0, 0, 6, ch100data }; - -static const unsigned char ch101data[] = { - 0x60,0x90,0x80,0xf0,0x90,0x60 -}; -static const GLUTBitmapChar ch101 = { 4, 6, 0, 0, 5, ch101data }; - -static const unsigned char ch102data[] = { - 0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30 -}; -static const GLUTBitmapChar ch102 = { 4, 8, 0, 0, 4, ch102data }; - -static const unsigned char ch103data[] = { - 0x70,0x8,0x68,0x98,0x88,0x88,0x98,0x68 -}; -static const GLUTBitmapChar ch103 = { 5, 8, 0, 2, 6, ch103data }; - -static const unsigned char ch104data[] = { - 0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch104 = { 5, 8, 0, 0, 6, ch104data }; - -static const unsigned char ch105data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch105 = { 1, 8, 0, 0, 2, ch105data }; - -static const unsigned char ch106data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch106 = { 1, 9, 0, 1, 2, ch106data }; - -static const unsigned char ch107data[] = { - 0x90,0x90,0xa0,0xc0,0xa0,0x90,0x80,0x80 -}; -static const GLUTBitmapChar ch107 = { 4, 8, 0, 0, 5, ch107data }; - -static const unsigned char ch108data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch108 = { 1, 8, 0, 0, 2, ch108data }; - -static const unsigned char ch109data[] = { - 0x92,0x92,0x92,0x92,0x92,0xec -}; -static const GLUTBitmapChar ch109 = { 7, 6, 0, 0, 8, ch109data }; - -static const unsigned char ch110data[] = { - 0x88,0x88,0x88,0x88,0xc8,0xb0 -}; -static const GLUTBitmapChar ch110 = { 5, 6, 0, 0, 6, ch110data }; - -static const unsigned char ch111data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch111 = { 5, 6, 0, 0, 6, ch111data }; - -static const unsigned char ch112data[] = { - 0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0 -}; -static const GLUTBitmapChar ch112 = { 5, 8, 0, 2, 6, ch112data }; - -static const unsigned char ch113data[] = { - 0x8,0x8,0x68,0x98,0x88,0x88,0x98,0x68 -}; -static const GLUTBitmapChar ch113 = { 5, 8, 0, 2, 6, ch113data }; - -static const unsigned char ch114data[] = { - 0x80,0x80,0x80,0x80,0xc0,0xa0 -}; -static const GLUTBitmapChar ch114 = { 3, 6, 0, 0, 4, ch114data }; - -static const unsigned char ch115data[] = { - 0x60,0x90,0x10,0x60,0x90,0x60 -}; -static const GLUTBitmapChar ch115 = { 4, 6, 0, 0, 5, ch115data }; - -static const unsigned char ch116data[] = { - 0x60,0x40,0x40,0x40,0x40,0xe0,0x40,0x40 -}; -static const GLUTBitmapChar ch116 = { 3, 8, 0, 0, 4, ch116data }; - -static const unsigned char ch117data[] = { - 0x70,0x90,0x90,0x90,0x90,0x90 -}; -static const GLUTBitmapChar ch117 = { 4, 6, 0, 0, 5, ch117data }; - -static const unsigned char ch118data[] = { - 0x20,0x20,0x50,0x50,0x88,0x88 -}; -static const GLUTBitmapChar ch118 = { 5, 6, 0, 0, 6, ch118data }; - -static const unsigned char ch119data[] = { - 0x28,0x28,0x54,0x54,0x92,0x92 -}; -static const GLUTBitmapChar ch119 = { 7, 6, 0, 0, 8, ch119data }; - -static const unsigned char ch120data[] = { - 0x88,0x88,0x50,0x20,0x50,0x88 -}; -static const GLUTBitmapChar ch120 = { 5, 6, 0, 0, 6, ch120data }; - -static const unsigned char ch121data[] = { - 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90 -}; -static const GLUTBitmapChar ch121 = { 4, 8, 0, 2, 5, ch121data }; - -static const unsigned char ch122data[] = { - 0xf0,0x80,0x40,0x20,0x10,0xf0 -}; -static const GLUTBitmapChar ch122 = { 4, 6, 0, 0, 5, ch122data }; - -static const unsigned char ch123data[] = { - 0x20,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x20 -}; -static const GLUTBitmapChar ch123 = { 3, 10, 0, 2, 3, ch123data }; - -static const unsigned char ch124data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch124 = { 1, 10, -1, 2, 3, ch124data }; - -static const unsigned char ch125data[] = { - 0x80,0x40,0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80 -}; -static const GLUTBitmapChar ch125 = { 3, 10, 0, 2, 3, ch125data }; - -static const unsigned char ch126data[] = { - 0x98,0x64 -}; -static const GLUTBitmapChar ch126 = { 6, 2, 0, -3, 7, ch126data }; - -static const unsigned char ch160data[] = { - 0x0 -}; -static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 3, ch160data }; - -static const unsigned char ch161data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch161 = { 1, 8, -1, 2, 3, ch161data }; - -static const unsigned char ch162data[] = { - 0x40,0x70,0xa8,0xa0,0xa0,0xa8,0x70,0x10 -}; -static const GLUTBitmapChar ch162 = { 5, 8, 0, 1, 6, ch162data }; - -static const unsigned char ch163data[] = { - 0xb0,0x48,0x40,0x40,0xe0,0x40,0x48,0x30 -}; -static const GLUTBitmapChar ch163 = { 5, 8, 0, 0, 6, ch163data }; - -static const unsigned char ch164data[] = { - 0x90,0x60,0x90,0x90,0x60,0x90 -}; -static const GLUTBitmapChar ch164 = { 4, 6, 0, -1, 5, ch164data }; - -static const unsigned char ch165data[] = { - 0x20,0xf8,0x20,0xf8,0x50,0x50,0x88,0x88 -}; -static const GLUTBitmapChar ch165 = { 5, 8, 0, 0, 6, ch165data }; - -static const unsigned char ch166data[] = { - 0x80,0x80,0x80,0x80,0x0,0x0,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch166 = { 1, 10, -1, 2, 3, ch166data }; - -static const unsigned char ch167data[] = { - 0x70,0x88,0x18,0x70,0xc8,0x98,0x70,0xc0,0x88,0x70 -}; -static const GLUTBitmapChar ch167 = { 5, 10, 0, 2, 6, ch167data }; - -static const unsigned char ch168data[] = { - 0xa0 -}; -static const GLUTBitmapChar ch168 = { 3, 1, 0, -7, 3, ch168data }; - -static const unsigned char ch169data[] = { - 0x38,0x44,0x9a,0xa2,0x9a,0x44,0x38 -}; -static const GLUTBitmapChar ch169 = { 7, 7, -1, 0, 9, ch169data }; - -static const unsigned char ch170data[] = { - 0xe0,0x0,0xa0,0x20,0xe0 -}; -static const GLUTBitmapChar ch170 = { 3, 5, 0, -3, 4, ch170data }; - -static const unsigned char ch171data[] = { - 0x28,0x50,0xa0,0x50,0x28 -}; -static const GLUTBitmapChar ch171 = { 5, 5, 0, 0, 6, ch171data }; - -static const unsigned char ch172data[] = { - 0x8,0x8,0xf8 -}; -static const GLUTBitmapChar ch172 = { 5, 3, -1, -2, 7, ch172data }; - -static const unsigned char ch173data[] = { - 0xe0 -}; -static const GLUTBitmapChar ch173 = { 3, 1, 0, -3, 4, ch173data }; - -static const unsigned char ch174data[] = { - 0x38,0x44,0xaa,0xb2,0xba,0x44,0x38 -}; -static const GLUTBitmapChar ch174 = { 7, 7, -1, 0, 9, ch174data }; - -static const unsigned char ch175data[] = { - 0xe0 -}; -static const GLUTBitmapChar ch175 = { 3, 1, 0, -7, 3, ch175data }; - -static const unsigned char ch176data[] = { - 0x60,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch176 = { 4, 4, 0, -3, 4, ch176data }; - -static const unsigned char ch177data[] = { - 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch177 = { 5, 7, 0, 0, 6, ch177data }; - -static const unsigned char ch178data[] = { - 0xe0,0x40,0xa0,0x60 -}; -static const GLUTBitmapChar ch178 = { 3, 4, 0, -3, 3, ch178data }; - -static const unsigned char ch179data[] = { - 0xc0,0x20,0x40,0xe0 -}; -static const GLUTBitmapChar ch179 = { 3, 4, 0, -3, 3, ch179data }; - -static const unsigned char ch180data[] = { - 0x80,0x40 -}; -static const GLUTBitmapChar ch180 = { 2, 2, 0, -6, 3, ch180data }; - -static const unsigned char ch181data[] = { - 0x80,0x80,0xf0,0x90,0x90,0x90,0x90,0x90 -}; -static const GLUTBitmapChar ch181 = { 4, 8, 0, 2, 5, ch181data }; - -static const unsigned char ch182data[] = { - 0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x7c -}; -static const GLUTBitmapChar ch182 = { 6, 10, 0, 2, 6, ch182data }; - -static const unsigned char ch183data[] = { - 0xc0 -}; -static const GLUTBitmapChar ch183 = { 2, 1, 0, -3, 3, ch183data }; - -static const unsigned char ch184data[] = { - 0xc0,0x40 -}; -static const GLUTBitmapChar ch184 = { 2, 2, 0, 2, 3, ch184data }; - -static const unsigned char ch185data[] = { - 0x40,0x40,0xc0,0x40 -}; -static const GLUTBitmapChar ch185 = { 2, 4, 0, -3, 3, ch185data }; - -static const unsigned char ch186data[] = { - 0xe0,0x0,0xe0,0xa0,0xe0 -}; -static const GLUTBitmapChar ch186 = { 3, 5, 0, -3, 4, ch186data }; - -static const unsigned char ch187data[] = { - 0xa0,0x50,0x28,0x50,0xa0 -}; -static const GLUTBitmapChar ch187 = { 5, 5, 0, 0, 6, ch187data }; - -static const unsigned char ch188data[] = { - 0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0x48,0x0,0x44,0x0,0xc4,0x0,0x42,0x0 -}; -static const GLUTBitmapChar ch188 = { 9, 8, 0, 0, 9, ch188data }; - -static const unsigned char ch189data[] = { - 0x27,0x12,0x15,0xb,0x48,0x44,0xc4,0x42 -}; -static const GLUTBitmapChar ch189 = { 8, 8, 0, 0, 9, ch189data }; - -static const unsigned char ch190data[] = { - 0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0xc8,0x0,0x24,0x0,0x44,0x0,0xe2,0x0 -}; -static const GLUTBitmapChar ch190 = { 9, 8, 0, 0, 9, ch190data }; - -static const unsigned char ch191data[] = { - 0x60,0x90,0x80,0x40,0x20,0x20,0x0,0x20 -}; -static const GLUTBitmapChar ch191 = { 4, 8, -1, 2, 6, ch191data }; - -static const unsigned char ch192data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch192 = { 7, 11, 0, 0, 7, ch192data }; - -static const unsigned char ch193data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch193 = { 7, 11, 0, 0, 7, ch193data }; - -static const unsigned char ch194data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch194 = { 7, 11, 0, 0, 7, ch194data }; - -static const unsigned char ch195data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x14 -}; -static const GLUTBitmapChar ch195 = { 7, 11, 0, 0, 7, ch195data }; - -static const unsigned char ch196data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28 -}; -static const GLUTBitmapChar ch196 = { 7, 10, 0, 0, 7, ch196data }; - -static const unsigned char ch197data[] = { - 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x10,0x28,0x10 -}; -static const GLUTBitmapChar ch197 = { 7, 11, 0, 0, 7, ch197data }; - -static const unsigned char ch198data[] = { - 0x8f,0x80,0x88,0x0,0x78,0x0,0x48,0x0,0x2f,0x80,0x28,0x0,0x18,0x0,0x1f,0x80 -}; -static const GLUTBitmapChar ch198 = { 9, 8, 0, 0, 10, ch198data }; - -static const unsigned char ch199data[] = { - 0x30,0x10,0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78 -}; -static const GLUTBitmapChar ch199 = { 6, 10, -1, 2, 8, ch199data }; - -static const unsigned char ch200data[] = { - 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch200 = { 5, 11, -1, 0, 7, ch200data }; - -static const unsigned char ch201data[] = { - 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch201 = { 5, 11, -1, 0, 7, ch201data }; - -static const unsigned char ch202data[] = { - 0xf8,0x80,0x80,0xf8,0x80,0x80,0x80,0xf8,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch202 = { 5, 11, -1, 0, 7, ch202data }; - -static const unsigned char ch203data[] = { - 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x50 -}; -static const GLUTBitmapChar ch203 = { 5, 10, -1, 0, 7, ch203data }; - -static const unsigned char ch204data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch204 = { 2, 11, 0, 0, 3, ch204data }; - -static const unsigned char ch205data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 -}; -static const GLUTBitmapChar ch205 = { 2, 11, -1, 0, 3, ch205data }; - -static const unsigned char ch206data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch206 = { 3, 11, 0, 0, 3, ch206data }; - -static const unsigned char ch207data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 -}; -static const GLUTBitmapChar ch207 = { 3, 10, 0, 0, 3, ch207data }; - -static const unsigned char ch208data[] = { - 0x78,0x44,0x42,0x42,0xf2,0x42,0x44,0x78 -}; -static const GLUTBitmapChar ch208 = { 7, 8, 0, 0, 8, ch208data }; - -static const unsigned char ch209data[] = { - 0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch209 = { 6, 11, -1, 0, 8, ch209data }; - -static const unsigned char ch210data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch210 = { 6, 11, -1, 0, 8, ch210data }; - -static const unsigned char ch211data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch211 = { 6, 11, -1, 0, 8, ch211data }; - -static const unsigned char ch212data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch212 = { 6, 11, -1, 0, 8, ch212data }; - -static const unsigned char ch213data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch213 = { 6, 11, -1, 0, 8, ch213data }; - -static const unsigned char ch214data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x48 -}; -static const GLUTBitmapChar ch214 = { 6, 10, -1, 0, 8, ch214data }; - -static const unsigned char ch215data[] = { - 0x88,0x50,0x20,0x50,0x88 -}; -static const GLUTBitmapChar ch215 = { 5, 5, 0, -1, 6, ch215data }; - -static const unsigned char ch216data[] = { - 0x80,0x78,0xc4,0xa4,0xa4,0x94,0x94,0x8c,0x78,0x4 -}; -static const GLUTBitmapChar ch216 = { 6, 10, -1, 1, 8, ch216data }; - -static const unsigned char ch217data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch217 = { 6, 11, -1, 0, 8, ch217data }; - -static const unsigned char ch218data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch218 = { 6, 11, -1, 0, 8, ch218data }; - -static const unsigned char ch219data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch219 = { 6, 11, -1, 0, 8, ch219data }; - -static const unsigned char ch220data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48 -}; -static const GLUTBitmapChar ch220 = { 6, 10, -1, 0, 8, ch220data }; - -static const unsigned char ch221data[] = { - 0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch221 = { 7, 11, 0, 0, 7, ch221data }; - -static const unsigned char ch222data[] = { - 0x80,0x80,0xf0,0x88,0x88,0xf0,0x80,0x80 -}; -static const GLUTBitmapChar ch222 = { 5, 8, -1, 0, 7, ch222data }; - -static const unsigned char ch223data[] = { - 0xa0,0x90,0x90,0x90,0xa0,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch223 = { 4, 8, 0, 0, 5, ch223data }; - -static const unsigned char ch224data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch224 = { 5, 9, 0, 0, 5, ch224data }; - -static const unsigned char ch225data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch225 = { 5, 9, 0, 0, 5, ch225data }; - -static const unsigned char ch226data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch226 = { 5, 9, 0, 0, 5, ch226data }; - -static const unsigned char ch227data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0xa0,0x50 -}; -static const GLUTBitmapChar ch227 = { 5, 9, 0, 0, 5, ch227data }; - -static const unsigned char ch228data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50 -}; -static const GLUTBitmapChar ch228 = { 5, 8, 0, 0, 5, ch228data }; - -static const unsigned char ch229data[] = { - 0x68,0x90,0x90,0x70,0x10,0xe0,0x20,0x50,0x20 -}; -static const GLUTBitmapChar ch229 = { 5, 9, 0, 0, 5, ch229data }; - -static const unsigned char ch230data[] = { - 0x6c,0x92,0x90,0x7e,0x12,0xec -}; -static const GLUTBitmapChar ch230 = { 7, 6, 0, 0, 8, ch230data }; - -static const unsigned char ch231data[] = { - 0x60,0x20,0x60,0x90,0x80,0x80,0x90,0x60 -}; -static const GLUTBitmapChar ch231 = { 4, 8, 0, 2, 5, ch231data }; - -static const unsigned char ch232data[] = { - 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch232 = { 4, 9, 0, 0, 5, ch232data }; - -static const unsigned char ch233data[] = { - 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch233 = { 4, 9, 0, 0, 5, ch233data }; - -static const unsigned char ch234data[] = { - 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch234 = { 4, 9, 0, 0, 5, ch234data }; - -static const unsigned char ch235data[] = { - 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50 -}; -static const GLUTBitmapChar ch235 = { 4, 8, 0, 0, 5, ch235data }; - -static const unsigned char ch236data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch236 = { 2, 9, 1, 0, 2, ch236data }; - -static const unsigned char ch237data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 -}; -static const GLUTBitmapChar ch237 = { 2, 9, 0, 0, 2, ch237data }; - -static const unsigned char ch238data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch238 = { 3, 9, 1, 0, 2, ch238data }; - -static const unsigned char ch239data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 -}; -static const GLUTBitmapChar ch239 = { 3, 8, 0, 0, 2, ch239data }; - -static const unsigned char ch240data[] = { - 0x70,0x88,0x88,0x88,0x88,0x78,0x90,0x60,0x50 -}; -static const GLUTBitmapChar ch240 = { 5, 9, 0, 0, 6, ch240data }; - -static const unsigned char ch241data[] = { - 0x90,0x90,0x90,0x90,0x90,0xe0,0x0,0xa0,0x50 -}; -static const GLUTBitmapChar ch241 = { 4, 9, 0, 0, 5, ch241data }; - -static const unsigned char ch242data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch242 = { 5, 9, 0, 0, 6, ch242data }; - -static const unsigned char ch243data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch243 = { 5, 9, 0, 0, 6, ch243data }; - -static const unsigned char ch244data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch244 = { 5, 9, 0, 0, 6, ch244data }; - -static const unsigned char ch245data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch245 = { 5, 9, 0, 0, 6, ch245data }; - -static const unsigned char ch246data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50 -}; -static const GLUTBitmapChar ch246 = { 5, 8, 0, 0, 6, ch246data }; - -static const unsigned char ch247data[] = { - 0x20,0x0,0xf8,0x0,0x20 -}; -static const GLUTBitmapChar ch247 = { 5, 5, 0, -1, 6, ch247data }; - -static const unsigned char ch248data[] = { - 0x70,0x88,0xc8,0xa8,0x98,0x74 -}; -static const GLUTBitmapChar ch248 = { 6, 6, 0, 0, 6, ch248data }; - -static const unsigned char ch249data[] = { - 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch249 = { 4, 9, 0, 0, 5, ch249data }; - -static const unsigned char ch250data[] = { - 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch250 = { 4, 9, 0, 0, 5, ch250data }; - -static const unsigned char ch251data[] = { - 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch251 = { 4, 9, 0, 0, 5, ch251data }; - -static const unsigned char ch252data[] = { - 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50 -}; -static const GLUTBitmapChar ch252 = { 4, 8, 0, 0, 5, ch252data }; - -static const unsigned char ch253data[] = { - 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch253 = { 4, 11, 0, 2, 5, ch253data }; - -static const unsigned char ch254data[] = { - 0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch254 = { 5, 10, 0, 2, 6, ch254data }; - -static const unsigned char ch255data[] = { - 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x50 -}; -static const GLUTBitmapChar ch255 = { 4, 10, 0, 2, 5, ch255data }; - - -static const GLUTBitmapChar *chars[] = { - 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, - &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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - &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 GLUTBitmapFont glutBitmapHelvetica10 = { - "-Adobe-Helvetica-Medium-R-Normal--10-100-75-75-P-56-ISO8859-1", - 13, 256, chars -}; diff --git a/src/glut/dos/hel12.c b/src/glut/dos/hel12.c deleted file mode 100644 index 0fe8b0919b..0000000000 --- a/src/glut/dos/hel12.c +++ /dev/null @@ -1,1029 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch32data[] = { - 0x0 -}; -static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 4, ch32data }; - -static const unsigned char ch33data[] = { - 0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch33 = { 1, 9, -1, 0, 3, ch33data }; - -static const unsigned char ch34data[] = { - 0xa0,0xa0,0xa0 -}; -static const GLUTBitmapChar ch34 = { 3, 3, -1, -6, 5, ch34data }; - -static const unsigned char ch35data[] = { - 0x50,0x50,0x50,0xfc,0x28,0xfc,0x28,0x28 -}; -static const GLUTBitmapChar ch35 = { 6, 8, 0, 0, 7, ch35data }; - -static const unsigned char ch36data[] = { - 0x20,0x70,0xa8,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20 -}; -static const GLUTBitmapChar ch36 = { 5, 10, -1, 1, 7, ch36data }; - -static const unsigned char ch37data[] = { - 0x23,0x0,0x14,0x80,0x14,0x80,0x13,0x0,0x8,0x0,0x68,0x0,0x94,0x0,0x94,0x0, - 0x62,0x0 -}; -static const GLUTBitmapChar ch37 = { 9, 9, -1, 0, 11, ch37data }; - -static const unsigned char ch38data[] = { - 0x72,0x8c,0x84,0x8a,0x50,0x30,0x48,0x48,0x30 -}; -static const GLUTBitmapChar ch38 = { 7, 9, -1, 0, 9, ch38data }; - -static const unsigned char ch39data[] = { - 0x80,0x40,0xc0 -}; -static const GLUTBitmapChar ch39 = { 2, 3, -1, -6, 3, ch39data }; - -static const unsigned char ch40data[] = { - 0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x80,0x80,0x40,0x40,0x20 -}; -static const GLUTBitmapChar ch40 = { 3, 12, -1, 3, 4, ch40data }; - -static const unsigned char ch41data[] = { - 0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x40,0x80 -}; -static const GLUTBitmapChar ch41 = { 3, 12, 0, 3, 4, ch41data }; - -static const unsigned char ch42data[] = { - 0xa0,0x40,0xa0 -}; -static const GLUTBitmapChar ch42 = { 3, 3, -1, -6, 5, ch42data }; - -static const unsigned char ch43data[] = { - 0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch43 = { 5, 5, -1, -1, 7, ch43data }; - -static const unsigned char ch44data[] = { - 0x80,0x40,0x40 -}; -static const GLUTBitmapChar ch44 = { 2, 3, -1, 2, 4, ch44data }; - -static const unsigned char ch45data[] = { - 0xf8 -}; -static const GLUTBitmapChar ch45 = { 5, 1, -1, -3, 8, ch45data }; - -static const unsigned char ch46data[] = { - 0x80 -}; -static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; - -static const unsigned char ch47data[] = { - 0x80,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10 -}; -static const GLUTBitmapChar ch47 = { 4, 9, 0, 0, 4, ch47data }; - -static const unsigned char ch48data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch48 = { 5, 9, -1, 0, 7, ch48data }; - -static const unsigned char ch49data[] = { - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe0,0x20 -}; -static const GLUTBitmapChar ch49 = { 3, 9, -1, 0, 7, ch49data }; - -static const unsigned char ch50data[] = { - 0xf8,0x80,0x80,0x40,0x20,0x10,0x8,0x88,0x70 -}; -static const GLUTBitmapChar ch50 = { 5, 9, -1, 0, 7, ch50data }; - -static const unsigned char ch51data[] = { - 0x70,0x88,0x88,0x8,0x8,0x30,0x8,0x88,0x70 -}; -static const GLUTBitmapChar ch51 = { 5, 9, -1, 0, 7, ch51data }; - -static const unsigned char ch52data[] = { - 0x8,0x8,0xfc,0x88,0x48,0x28,0x28,0x18,0x8 -}; -static const GLUTBitmapChar ch52 = { 6, 9, 0, 0, 7, ch52data }; - -static const unsigned char ch53data[] = { - 0x70,0x88,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8 -}; -static const GLUTBitmapChar ch53 = { 5, 9, -1, 0, 7, ch53data }; - -static const unsigned char ch54data[] = { - 0x70,0x88,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch54 = { 5, 9, -1, 0, 7, ch54data }; - -static const unsigned char ch55data[] = { - 0x40,0x40,0x20,0x20,0x20,0x10,0x10,0x8,0xf8 -}; -static const GLUTBitmapChar ch55 = { 5, 9, -1, 0, 7, ch55data }; - -static const unsigned char ch56data[] = { - 0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch56 = { 5, 9, -1, 0, 7, ch56data }; - -static const unsigned char ch57data[] = { - 0x70,0x88,0x8,0x8,0x78,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch57 = { 5, 9, -1, 0, 7, ch57data }; - -static const unsigned char ch58data[] = { - 0x80,0x0,0x0,0x0,0x0,0x80 -}; -static const GLUTBitmapChar ch58 = { 1, 6, -1, 0, 3, ch58data }; - -static const unsigned char ch59data[] = { - 0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40 -}; -static const GLUTBitmapChar ch59 = { 2, 8, 0, 2, 3, ch59data }; - -static const unsigned char ch60data[] = { - 0xc,0x30,0xc0,0x30,0xc -}; -static const GLUTBitmapChar ch60 = { 6, 5, 0, -1, 7, ch60data }; - -static const unsigned char ch61data[] = { - 0xf8,0x0,0xf8 -}; -static const GLUTBitmapChar ch61 = { 5, 3, -1, -2, 7, ch61data }; - -static const unsigned char ch62data[] = { - 0xc0,0x30,0xc,0x30,0xc0 -}; -static const GLUTBitmapChar ch62 = { 6, 5, -1, -1, 7, ch62data }; - -static const unsigned char ch63data[] = { - 0x20,0x0,0x20,0x20,0x10,0x10,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch63 = { 5, 9, -1, 0, 7, ch63data }; - -static const unsigned char ch64data[] = { - 0x3e,0x0,0x40,0x0,0x9b,0x0,0xa6,0x80,0xa2,0x40,0xa2,0x40,0x92,0x40,0x4d,0x40, - 0x60,0x80,0x1f,0x0 -}; -static const GLUTBitmapChar ch64 = { 10, 10, -1, 1, 12, ch64data }; - -static const unsigned char ch65data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x28,0x10 -}; -static const GLUTBitmapChar ch65 = { 7, 9, -1, 0, 9, ch65data }; - -static const unsigned char ch66data[] = { - 0xf8,0x84,0x84,0x84,0xf8,0x84,0x84,0x84,0xf8 -}; -static const GLUTBitmapChar ch66 = { 6, 9, -1, 0, 8, ch66data }; - -static const unsigned char ch67data[] = { - 0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c -}; -static const GLUTBitmapChar ch67 = { 7, 9, -1, 0, 9, ch67data }; - -static const unsigned char ch68data[] = { - 0xf8,0x84,0x82,0x82,0x82,0x82,0x82,0x84,0xf8 -}; -static const GLUTBitmapChar ch68 = { 7, 9, -1, 0, 9, ch68data }; - -static const unsigned char ch69data[] = { - 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc -}; -static const GLUTBitmapChar ch69 = { 6, 9, -1, 0, 8, ch69data }; - -static const unsigned char ch70data[] = { - 0x80,0x80,0x80,0x80,0xf8,0x80,0x80,0x80,0xfc -}; -static const GLUTBitmapChar ch70 = { 6, 9, -1, 0, 8, ch70data }; - -static const unsigned char ch71data[] = { - 0x3a,0x46,0x82,0x82,0x8e,0x80,0x80,0x42,0x3c -}; -static const GLUTBitmapChar ch71 = { 7, 9, -1, 0, 9, ch71data }; - -static const unsigned char ch72data[] = { - 0x82,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x82 -}; -static const GLUTBitmapChar ch72 = { 7, 9, -1, 0, 9, ch72data }; - -static const unsigned char ch73data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch73 = { 1, 9, -1, 0, 3, ch73data }; - -static const unsigned char ch74data[] = { - 0x70,0x88,0x88,0x8,0x8,0x8,0x8,0x8,0x8 -}; -static const GLUTBitmapChar ch74 = { 5, 9, -1, 0, 7, ch74data }; - -static const unsigned char ch75data[] = { - 0x82,0x84,0x88,0x90,0xe0,0xa0,0x90,0x88,0x84 -}; -static const GLUTBitmapChar ch75 = { 7, 9, -1, 0, 8, ch75data }; - -static const unsigned char ch76data[] = { - 0xf8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch76 = { 5, 9, -1, 0, 7, ch76data }; - -static const unsigned char ch77data[] = { - 0x88,0x80,0x88,0x80,0x94,0x80,0x94,0x80,0xa2,0x80,0xa2,0x80,0xc1,0x80,0xc1,0x80, - 0x80,0x80 -}; -static const GLUTBitmapChar ch77 = { 9, 9, -1, 0, 11, ch77data }; - -static const unsigned char ch78data[] = { - 0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82 -}; -static const GLUTBitmapChar ch78 = { 7, 9, -1, 0, 9, ch78data }; - -static const unsigned char ch79data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c -}; -static const GLUTBitmapChar ch79 = { 8, 9, -1, 0, 10, ch79data }; - -static const unsigned char ch80data[] = { - 0x80,0x80,0x80,0x80,0xf8,0x84,0x84,0x84,0xf8 -}; -static const GLUTBitmapChar ch80 = { 6, 9, -1, 0, 8, ch80data }; - -static const unsigned char ch81data[] = { - 0x3d,0x42,0x85,0x89,0x81,0x81,0x81,0x42,0x3c -}; -static const GLUTBitmapChar ch81 = { 8, 9, -1, 0, 10, ch81data }; - -static const unsigned char ch82data[] = { - 0x84,0x84,0x84,0x88,0xf8,0x84,0x84,0x84,0xf8 -}; -static const GLUTBitmapChar ch82 = { 6, 9, -1, 0, 8, ch82data }; - -static const unsigned char ch83data[] = { - 0x78,0x84,0x84,0x4,0x18,0x60,0x80,0x84,0x78 -}; -static const GLUTBitmapChar ch83 = { 6, 9, -1, 0, 8, ch83data }; - -static const unsigned char ch84data[] = { - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xfe -}; -static const GLUTBitmapChar ch84 = { 7, 9, 0, 0, 7, ch84data }; - -static const unsigned char ch85data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84 -}; -static const GLUTBitmapChar ch85 = { 6, 9, -1, 0, 8, ch85data }; - -static const unsigned char ch86data[] = { - 0x10,0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82 -}; -static const GLUTBitmapChar ch86 = { 7, 9, -1, 0, 9, ch86data }; - -static const unsigned char ch87data[] = { - 0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x55,0x0,0x49,0x0,0x88,0x80,0x88,0x80, - 0x88,0x80 -}; -static const GLUTBitmapChar ch87 = { 9, 9, -1, 0, 11, ch87data }; - -static const unsigned char ch88data[] = { - 0x82,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x82 -}; -static const GLUTBitmapChar ch88 = { 7, 9, -1, 0, 9, ch88data }; - -static const unsigned char ch89data[] = { - 0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82 -}; -static const GLUTBitmapChar ch89 = { 7, 9, -1, 0, 9, ch89data }; - -static const unsigned char ch90data[] = { - 0xfe,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0xfe -}; -static const GLUTBitmapChar ch90 = { 7, 9, -1, 0, 9, ch90data }; - -static const unsigned char ch91data[] = { - 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 -}; -static const GLUTBitmapChar ch91 = { 2, 12, -1, 3, 3, ch91data }; - -static const unsigned char ch92data[] = { - 0x10,0x10,0x20,0x20,0x20,0x40,0x40,0x80,0x80 -}; -static const GLUTBitmapChar ch92 = { 4, 9, 0, 0, 4, ch92data }; - -static const unsigned char ch93data[] = { - 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 -}; -static const GLUTBitmapChar ch93 = { 2, 12, 0, 3, 3, ch93data }; - -static const unsigned char ch94data[] = { - 0x88,0x50,0x20 -}; -static const GLUTBitmapChar ch94 = { 5, 3, 0, -5, 6, ch94data }; - -static const unsigned char ch95data[] = { - 0xfe -}; -static const GLUTBitmapChar ch95 = { 7, 1, 0, 2, 7, ch95data }; - -static const unsigned char ch96data[] = { - 0xc0,0x80,0x40 -}; -static const GLUTBitmapChar ch96 = { 2, 3, 0, -6, 3, ch96data }; - -static const unsigned char ch97data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70 -}; -static const GLUTBitmapChar ch97 = { 6, 7, -1, 0, 7, ch97data }; - -static const unsigned char ch98data[] = { - 0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch98 = { 5, 9, -1, 0, 7, ch98data }; - -static const unsigned char ch99data[] = { - 0x70,0x88,0x80,0x80,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch99 = { 5, 7, -1, 0, 7, ch99data }; - -static const unsigned char ch100data[] = { - 0x68,0x98,0x88,0x88,0x88,0x98,0x68,0x8,0x8 -}; -static const GLUTBitmapChar ch100 = { 5, 9, -1, 0, 7, ch100data }; - -static const unsigned char ch101data[] = { - 0x70,0x88,0x80,0xf8,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch101 = { 5, 7, -1, 0, 7, ch101data }; - -static const unsigned char ch102data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30 -}; -static const GLUTBitmapChar ch102 = { 4, 9, 0, 0, 3, ch102data }; - -static const unsigned char ch103data[] = { - 0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68 -}; -static const GLUTBitmapChar ch103 = { 5, 10, -1, 3, 7, ch103data }; - -static const unsigned char ch104data[] = { - 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch104 = { 5, 9, -1, 0, 7, ch104data }; - -static const unsigned char ch105data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch105 = { 1, 9, -1, 0, 3, ch105data }; - -static const unsigned char ch106data[] = { - 0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40 -}; -static const GLUTBitmapChar ch106 = { 2, 12, 0, 3, 3, ch106data }; - -static const unsigned char ch107data[] = { - 0x88,0x90,0xa0,0xc0,0xc0,0xa0,0x90,0x80,0x80 -}; -static const GLUTBitmapChar ch107 = { 5, 9, -1, 0, 6, ch107data }; - -static const unsigned char ch108data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch108 = { 1, 9, -1, 0, 3, ch108data }; - -static const unsigned char ch109data[] = { - 0x92,0x92,0x92,0x92,0x92,0xda,0xa4 -}; -static const GLUTBitmapChar ch109 = { 7, 7, -1, 0, 9, ch109data }; - -static const unsigned char ch110data[] = { - 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0 -}; -static const GLUTBitmapChar ch110 = { 5, 7, -1, 0, 7, ch110data }; - -static const unsigned char ch111data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch111 = { 5, 7, -1, 0, 7, ch111data }; - -static const unsigned char ch112data[] = { - 0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0 -}; -static const GLUTBitmapChar ch112 = { 5, 10, -1, 3, 7, ch112data }; - -static const unsigned char ch113data[] = { - 0x8,0x8,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68 -}; -static const GLUTBitmapChar ch113 = { 5, 10, -1, 3, 7, ch113data }; - -static const unsigned char ch114data[] = { - 0x80,0x80,0x80,0x80,0x80,0xc0,0xa0 -}; -static const GLUTBitmapChar ch114 = { 3, 7, -1, 0, 4, ch114data }; - -static const unsigned char ch115data[] = { - 0x60,0x90,0x10,0x60,0x80,0x90,0x60 -}; -static const GLUTBitmapChar ch115 = { 4, 7, -1, 0, 6, ch115data }; - -static const unsigned char ch116data[] = { - 0x60,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x40 -}; -static const GLUTBitmapChar ch116 = { 3, 9, 0, 0, 3, ch116data }; - -static const unsigned char ch117data[] = { - 0x68,0x98,0x88,0x88,0x88,0x88,0x88 -}; -static const GLUTBitmapChar ch117 = { 5, 7, -1, 0, 7, ch117data }; - -static const unsigned char ch118data[] = { - 0x20,0x20,0x50,0x50,0x88,0x88,0x88 -}; -static const GLUTBitmapChar ch118 = { 5, 7, -1, 0, 7, ch118data }; - -static const unsigned char ch119data[] = { - 0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80 -}; -static const GLUTBitmapChar ch119 = { 9, 7, 0, 0, 9, ch119data }; - -static const unsigned char ch120data[] = { - 0x84,0x84,0x48,0x30,0x30,0x48,0x84 -}; -static const GLUTBitmapChar ch120 = { 6, 7, 0, 0, 6, ch120data }; - -static const unsigned char ch121data[] = { - 0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88 -}; -static const GLUTBitmapChar ch121 = { 5, 10, -1, 3, 7, ch121data }; - -static const unsigned char ch122data[] = { - 0xf0,0x80,0x40,0x40,0x20,0x10,0xf0 -}; -static const GLUTBitmapChar ch122 = { 4, 7, -1, 0, 6, ch122data }; - -static const unsigned char ch123data[] = { - 0x30,0x40,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30 -}; -static const GLUTBitmapChar ch123 = { 4, 12, 0, 3, 4, ch123data }; - -static const unsigned char ch124data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch124 = { 1, 12, -1, 3, 3, ch124data }; - -static const unsigned char ch125data[] = { - 0xc0,0x20,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xc0 -}; -static const GLUTBitmapChar ch125 = { 4, 12, 0, 3, 4, ch125data }; - -static const unsigned char ch126data[] = { - 0x98,0x64 -}; -static const GLUTBitmapChar ch126 = { 6, 2, 0, -3, 7, ch126data }; - -static const unsigned char ch160data[] = { - 0x0 -}; -static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 4, ch160data }; - -static const unsigned char ch161data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch161 = { 1, 10, -1, 3, 3, ch161data }; - -static const unsigned char ch162data[] = { - 0x40,0x70,0xc8,0xa0,0xa0,0xa0,0xa8,0x70,0x10 -}; -static const GLUTBitmapChar ch162 = { 5, 9, -1, 1, 7, ch162data }; - -static const unsigned char ch163data[] = { - 0xb0,0x48,0x20,0x20,0xf0,0x40,0x40,0x48,0x30 -}; -static const GLUTBitmapChar ch163 = { 5, 9, -1, 0, 7, ch163data }; - -static const unsigned char ch164data[] = { - 0x84,0x78,0x48,0x48,0x78,0x84 -}; -static const GLUTBitmapChar ch164 = { 6, 6, 0, -1, 7, ch164data }; - -static const unsigned char ch165data[] = { - 0x20,0x20,0xf8,0x20,0xf8,0x20,0x50,0x88,0x88 -}; -static const GLUTBitmapChar ch165 = { 5, 9, -1, 0, 7, ch165data }; - -static const unsigned char ch166data[] = { - 0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch166 = { 1, 11, -1, 2, 3, ch166data }; - -static const unsigned char ch167data[] = { - 0x70,0x88,0x8,0x30,0x48,0x88,0x88,0x90,0x60,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch167 = { 5, 12, 0, 3, 6, ch167data }; - -static const unsigned char ch168data[] = { - 0xa0 -}; -static const GLUTBitmapChar ch168 = { 3, 1, 0, -8, 3, ch168data }; - -static const unsigned char ch169data[] = { - 0x3e,0x0,0x41,0x0,0x9c,0x80,0xa2,0x80,0xa0,0x80,0xa2,0x80,0x9c,0x80,0x41,0x0, - 0x3e,0x0 -}; -static const GLUTBitmapChar ch169 = { 9, 9, -1, 0, 11, ch169data }; - -static const unsigned char ch170data[] = { - 0xe0,0x0,0xa0,0x20,0xe0 -}; -static const GLUTBitmapChar ch170 = { 3, 5, -1, -4, 5, ch170data }; - -static const unsigned char ch171data[] = { - 0x28,0x50,0xa0,0x50,0x28 -}; -static const GLUTBitmapChar ch171 = { 5, 5, -1, -1, 7, ch171data }; - -static const unsigned char ch172data[] = { - 0x4,0x4,0x4,0xfc -}; -static const GLUTBitmapChar ch172 = { 6, 4, -1, -2, 8, ch172data }; - -static const unsigned char ch173data[] = { - 0xf0 -}; -static const GLUTBitmapChar ch173 = { 4, 1, 0, -3, 5, ch173data }; - -static const unsigned char ch174data[] = { - 0x3e,0x0,0x41,0x0,0x94,0x80,0x94,0x80,0x98,0x80,0x94,0x80,0x9c,0x80,0x41,0x0, - 0x3e,0x0 -}; -static const GLUTBitmapChar ch174 = { 9, 9, -1, 0, 11, ch174data }; - -static const unsigned char ch175data[] = { - 0xf0 -}; -static const GLUTBitmapChar ch175 = { 4, 1, 0, -8, 4, ch175data }; - -static const unsigned char ch176data[] = { - 0x60,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch176 = { 4, 4, 0, -4, 5, ch176data }; - -static const unsigned char ch177data[] = { - 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch177 = { 5, 7, -1, 0, 7, ch177data }; - -static const unsigned char ch178data[] = { - 0xf0,0x40,0x20,0x90,0x60 -}; -static const GLUTBitmapChar ch178 = { 4, 5, 0, -3, 4, ch178data }; - -static const unsigned char ch179data[] = { - 0xc0,0x20,0x40,0x20,0xe0 -}; -static const GLUTBitmapChar ch179 = { 3, 5, 0, -3, 4, ch179data }; - -static const unsigned char ch180data[] = { - 0x80,0x40 -}; -static const GLUTBitmapChar ch180 = { 2, 2, 0, -8, 2, ch180data }; - -static const unsigned char ch181data[] = { - 0x80,0x80,0x80,0xe8,0x98,0x88,0x88,0x88,0x88,0x88 -}; -static const GLUTBitmapChar ch181 = { 5, 10, -1, 3, 7, ch181data }; - -static const unsigned char ch182data[] = { - 0x28,0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x68,0x3c -}; -static const GLUTBitmapChar ch182 = { 6, 12, 0, 3, 7, ch182data }; - -static const unsigned char ch183data[] = { - 0x80 -}; -static const GLUTBitmapChar ch183 = { 1, 1, -1, -3, 3, ch183data }; - -static const unsigned char ch184data[] = { - 0xc0,0x20,0x20,0x40 -}; -static const GLUTBitmapChar ch184 = { 3, 4, 0, 3, 3, ch184data }; - -static const unsigned char ch185data[] = { - 0x40,0x40,0x40,0xc0,0x40 -}; -static const GLUTBitmapChar ch185 = { 2, 5, -1, -3, 4, ch185data }; - -static const unsigned char ch186data[] = { - 0xe0,0x0,0xe0,0xa0,0xe0 -}; -static const GLUTBitmapChar ch186 = { 3, 5, -1, -4, 5, ch186data }; - -static const unsigned char ch187data[] = { - 0xa0,0x50,0x28,0x50,0xa0 -}; -static const GLUTBitmapChar ch187 = { 5, 5, -1, -1, 7, ch187data }; - -static const unsigned char ch188data[] = { - 0x41,0x0,0x27,0x80,0x15,0x0,0x13,0x0,0x49,0x0,0x44,0x0,0x44,0x0,0xc2,0x0, - 0x41,0x0 -}; -static const GLUTBitmapChar ch188 = { 9, 9, 0, 0, 10, ch188data }; - -static const unsigned char ch189data[] = { - 0x47,0x80,0x22,0x0,0x11,0x0,0x14,0x80,0x4b,0x0,0x48,0x0,0x44,0x0,0xc2,0x0, - 0x41,0x0 -}; -static const GLUTBitmapChar ch189 = { 9, 9, 0, 0, 10, ch189data }; - -static const unsigned char ch190data[] = { - 0x21,0x0,0x17,0x80,0x15,0x0,0xb,0x0,0xc9,0x0,0x24,0x0,0x44,0x0,0x22,0x0, - 0xe1,0x0 -}; -static const GLUTBitmapChar ch190 = { 9, 9, 0, 0, 10, ch190data }; - -static const unsigned char ch191data[] = { - 0x70,0x88,0x88,0x40,0x40,0x20,0x20,0x0,0x20 -}; -static const GLUTBitmapChar ch191 = { 5, 9, -1, 3, 7, ch191data }; - -static const unsigned char ch192data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch192 = { 7, 12, -1, 0, 9, ch192data }; - -static const unsigned char ch193data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch193 = { 7, 12, -1, 0, 9, ch193data }; - -static const unsigned char ch194data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch194 = { 7, 12, -1, 0, 9, ch194data }; - -static const unsigned char ch195data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x14 -}; -static const GLUTBitmapChar ch195 = { 7, 12, -1, 0, 9, ch195data }; - -static const unsigned char ch196data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28 -}; -static const GLUTBitmapChar ch196 = { 7, 11, -1, 0, 9, ch196data }; - -static const unsigned char ch197data[] = { - 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x10,0x28,0x10 -}; -static const GLUTBitmapChar ch197 = { 7, 12, -1, 0, 9, ch197data }; - -static const unsigned char ch198data[] = { - 0x8f,0x80,0x88,0x0,0x88,0x0,0x78,0x0,0x4f,0x80,0x48,0x0,0x28,0x0,0x28,0x0, - 0x1f,0x80 -}; -static const GLUTBitmapChar ch198 = { 9, 9, -1, 0, 11, ch198data }; - -static const unsigned char ch199data[] = { - 0x30,0x8,0x8,0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c -}; -static const GLUTBitmapChar ch199 = { 7, 12, -1, 3, 9, ch199data }; - -static const unsigned char ch200data[] = { - 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch200 = { 6, 12, -1, 0, 8, ch200data }; - -static const unsigned char ch201data[] = { - 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch201 = { 6, 12, -1, 0, 8, ch201data }; - -static const unsigned char ch202data[] = { - 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch202 = { 6, 12, -1, 0, 8, ch202data }; - -static const unsigned char ch203data[] = { - 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28 -}; -static const GLUTBitmapChar ch203 = { 6, 11, -1, 0, 8, ch203data }; - -static const unsigned char ch204data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch204 = { 2, 12, 0, 0, 3, ch204data }; - -static const unsigned char ch205data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 -}; -static const GLUTBitmapChar ch205 = { 2, 12, -1, 0, 3, ch205data }; - -static const unsigned char ch206data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch206 = { 3, 12, 0, 0, 3, ch206data }; - -static const unsigned char ch207data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 -}; -static const GLUTBitmapChar ch207 = { 3, 11, 0, 0, 3, ch207data }; - -static const unsigned char ch208data[] = { - 0x7c,0x42,0x41,0x41,0xf1,0x41,0x41,0x42,0x7c -}; -static const GLUTBitmapChar ch208 = { 8, 9, 0, 0, 9, ch208data }; - -static const unsigned char ch209data[] = { - 0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82,0x0,0x28,0x14 -}; -static const GLUTBitmapChar ch209 = { 7, 12, -1, 0, 9, ch209data }; - -static const unsigned char ch210data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x10 -}; -static const GLUTBitmapChar ch210 = { 8, 12, -1, 0, 10, ch210data }; - -static const unsigned char ch211data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x4 -}; -static const GLUTBitmapChar ch211 = { 8, 12, -1, 0, 10, ch211data }; - -static const unsigned char ch212data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x14,0x8 -}; -static const GLUTBitmapChar ch212 = { 8, 12, -1, 0, 10, ch212data }; - -static const unsigned char ch213data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x28,0x14 -}; -static const GLUTBitmapChar ch213 = { 8, 12, -1, 0, 10, ch213data }; - -static const unsigned char ch214data[] = { - 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x24 -}; -static const GLUTBitmapChar ch214 = { 8, 11, -1, 0, 10, ch214data }; - -static const unsigned char ch215data[] = { - 0x88,0x50,0x20,0x50,0x88 -}; -static const GLUTBitmapChar ch215 = { 5, 5, -1, -1, 7, ch215data }; - -static const unsigned char ch216data[] = { - 0x80,0x0,0x5e,0x0,0x21,0x0,0x50,0x80,0x48,0x80,0x44,0x80,0x44,0x80,0x42,0x80, - 0x21,0x0,0x1e,0x80,0x0,0x40 -}; -static const GLUTBitmapChar ch216 = { 10, 11, 0, 1, 10, ch216data }; - -static const unsigned char ch217data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch217 = { 6, 12, -1, 0, 8, ch217data }; - -static const unsigned char ch218data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch218 = { 6, 12, -1, 0, 8, ch218data }; - -static const unsigned char ch219data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch219 = { 6, 12, -1, 0, 8, ch219data }; - -static const unsigned char ch220data[] = { - 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48 -}; -static const GLUTBitmapChar ch220 = { 6, 11, -1, 0, 8, ch220data }; - -static const unsigned char ch221data[] = { - 0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch221 = { 7, 12, -1, 0, 9, ch221data }; - -static const unsigned char ch222data[] = { - 0x80,0x80,0xf8,0x84,0x84,0x84,0xf8,0x80,0x80 -}; -static const GLUTBitmapChar ch222 = { 6, 9, -1, 0, 8, ch222data }; - -static const unsigned char ch223data[] = { - 0xb0,0x88,0x88,0x88,0xb0,0x88,0x88,0x88,0x70 -}; -static const GLUTBitmapChar ch223 = { 5, 9, -1, 0, 7, ch223data }; - -static const unsigned char ch224data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch224 = { 6, 10, -1, 0, 7, ch224data }; - -static const unsigned char ch225data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch225 = { 6, 10, -1, 0, 7, ch225data }; - -static const unsigned char ch226data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch226 = { 6, 10, -1, 0, 7, ch226data }; - -static const unsigned char ch227data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch227 = { 6, 10, -1, 0, 7, ch227data }; - -static const unsigned char ch228data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50 -}; -static const GLUTBitmapChar ch228 = { 6, 9, -1, 0, 7, ch228data }; - -static const unsigned char ch229data[] = { - 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x30,0x48,0x30 -}; -static const GLUTBitmapChar ch229 = { 6, 10, -1, 0, 7, ch229data }; - -static const unsigned char ch230data[] = { - 0x77,0x0,0x88,0x80,0x88,0x0,0x7f,0x80,0x8,0x80,0x88,0x80,0x77,0x0 -}; -static const GLUTBitmapChar ch230 = { 9, 7, -1, 0, 11, ch230data }; - -static const unsigned char ch231data[] = { - 0x60,0x10,0x20,0x70,0x88,0x80,0x80,0x80,0x88,0x70 -}; -static const GLUTBitmapChar ch231 = { 5, 10, -1, 3, 7, ch231data }; - -static const unsigned char ch232data[] = { - 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch232 = { 5, 10, -1, 0, 7, ch232data }; - -static const unsigned char ch233data[] = { - 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch233 = { 5, 10, -1, 0, 7, ch233data }; - -static const unsigned char ch234data[] = { - 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch234 = { 5, 10, -1, 0, 7, ch234data }; - -static const unsigned char ch235data[] = { - 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50 -}; -static const GLUTBitmapChar ch235 = { 5, 9, -1, 0, 7, ch235data }; - -static const unsigned char ch236data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch236 = { 2, 10, 0, 0, 3, ch236data }; - -static const unsigned char ch237data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 -}; -static const GLUTBitmapChar ch237 = { 2, 10, -1, 0, 3, ch237data }; - -static const unsigned char ch238data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch238 = { 3, 10, 0, 0, 3, ch238data }; - -static const unsigned char ch239data[] = { - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 -}; -static const GLUTBitmapChar ch239 = { 3, 9, 0, 0, 3, ch239data }; - -static const unsigned char ch240data[] = { - 0x70,0x88,0x88,0x88,0x88,0x78,0x8,0x50,0x30,0x68 -}; -static const GLUTBitmapChar ch240 = { 5, 10, -1, 0, 7, ch240data }; - -static const unsigned char ch241data[] = { - 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch241 = { 5, 10, -1, 0, 7, ch241data }; - -static const unsigned char ch242data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch242 = { 5, 10, -1, 0, 7, ch242data }; - -static const unsigned char ch243data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch243 = { 5, 10, -1, 0, 7, ch243data }; - -static const unsigned char ch244data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch244 = { 5, 10, -1, 0, 7, ch244data }; - -static const unsigned char ch245data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch245 = { 5, 10, -1, 0, 7, ch245data }; - -static const unsigned char ch246data[] = { - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50 -}; -static const GLUTBitmapChar ch246 = { 5, 9, -1, 0, 7, ch246data }; - -static const unsigned char ch247data[] = { - 0x20,0x0,0xf8,0x0,0x20 -}; -static const GLUTBitmapChar ch247 = { 5, 5, -1, -1, 7, ch247data }; - -static const unsigned char ch248data[] = { - 0xb8,0x44,0x64,0x54,0x4c,0x44,0x3a -}; -static const GLUTBitmapChar ch248 = { 7, 7, 0, 0, 7, ch248data }; - -static const unsigned char ch249data[] = { - 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch249 = { 5, 10, -1, 0, 7, ch249data }; - -static const unsigned char ch250data[] = { - 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch250 = { 5, 10, -1, 0, 7, ch250data }; - -static const unsigned char ch251data[] = { - 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch251 = { 5, 10, -1, 0, 7, ch251data }; - -static const unsigned char ch252data[] = { - 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50 -}; -static const GLUTBitmapChar ch252 = { 5, 9, -1, 0, 7, ch252data }; - -static const unsigned char ch253data[] = { - 0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch253 = { 5, 13, -1, 3, 7, ch253data }; - -static const unsigned char ch254data[] = { - 0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 -}; -static const GLUTBitmapChar ch254 = { 5, 12, -1, 3, 7, ch254data }; - -static const unsigned char ch255data[] = { - 0xc0,0x20,0x20,0x20,0x30,0x50,0x50,0x48,0x88,0x88,0x0,0x50 -}; -static const GLUTBitmapChar ch255 = { 5, 12, -1, 3, 7, ch255data }; - - -static const GLUTBitmapChar *chars[] = { - 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, - &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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - &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 GLUTBitmapFont glutBitmapHelvetica12 = { - "-Adobe-Helvetica-Medium-R-Normal--12-120-75-75-P-67-ISO8859-1", - 15, 256, chars -}; diff --git a/src/glut/dos/hel18.c b/src/glut/dos/hel18.c deleted file mode 100644 index f4d4340e3e..0000000000 --- a/src/glut/dos/hel18.c +++ /dev/null @@ -1,1138 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch32data[] = { - 0x0 -}; -static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 5, ch32data }; - -static const unsigned char ch33data[] = { - 0xc0,0xc0,0x0,0x0,0x80,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch33 = { 2, 14, -2, 0, 6, ch33data }; - -static const unsigned char ch34data[] = { - 0x90,0x90,0xd8,0xd8,0xd8 -}; -static const GLUTBitmapChar ch34 = { 5, 5, 0, -9, 5, ch34data }; - -static const unsigned char ch35data[] = { - 0x24,0x0,0x24,0x0,0x24,0x0,0xff,0x80,0xff,0x80,0x12,0x0,0x12,0x0,0x12,0x0, - 0x7f,0xc0,0x7f,0xc0,0x9,0x0,0x9,0x0,0x9,0x0 -}; -static const GLUTBitmapChar ch35 = { 10, 13, 0, 0, 10, ch35data }; - -static const unsigned char ch36data[] = { - 0x8,0x0,0x8,0x0,0x3e,0x0,0x7f,0x0,0xeb,0x80,0xc9,0x80,0x9,0x80,0xf,0x0, - 0x3e,0x0,0x78,0x0,0xe8,0x0,0xc8,0x0,0xcb,0x0,0x7f,0x0,0x3e,0x0,0x8,0x0 -}; -static const GLUTBitmapChar ch36 = { 9, 16, -1, 2, 10, ch36data }; - -static const unsigned char ch37data[] = { - 0x18,0x78,0x18,0xfc,0xc,0xcc,0xc,0xcc,0x6,0xfc,0x6,0x78,0x3,0x0,0x7b,0x0, - 0xfd,0x80,0xcd,0x80,0xcc,0xc0,0xfc,0xc0,0x78,0x60 -}; -static const GLUTBitmapChar ch37 = { 14, 13, -1, 0, 16, ch37data }; - -static const unsigned char ch38data[] = { - 0x3c,0x70,0x7e,0xe0,0xe7,0xc0,0xc3,0x80,0xc3,0xc0,0xc6,0xc0,0xee,0xc0,0x7c,0x0, - 0x3c,0x0,0x66,0x0,0x66,0x0,0x7e,0x0,0x3c,0x0 -}; -static const GLUTBitmapChar ch38 = { 12, 13, -1, 0, 13, ch38data }; - -static const unsigned char ch39data[] = { - 0x80,0x40,0x40,0xc0,0xc0 -}; -static const GLUTBitmapChar ch39 = { 2, 5, -1, -9, 4, ch39data }; - -static const unsigned char ch40data[] = { - 0x10,0x30,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60,0x60, - 0x30,0x10 -}; -static const GLUTBitmapChar ch40 = { 4, 18, -1, 4, 6, ch40data }; - -static const unsigned char ch41data[] = { - 0x80,0xc0,0x60,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0x60, - 0xc0,0x80 -}; -static const GLUTBitmapChar ch41 = { 4, 18, -1, 4, 6, ch41data }; - -static const unsigned char ch42data[] = { - 0x88,0x70,0x70,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch42 = { 5, 6, -1, -8, 7, ch42data }; - -static const unsigned char ch43data[] = { - 0x18,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18,0x18 -}; -static const GLUTBitmapChar ch43 = { 8, 10, -1, 0, 10, ch43data }; - -static const unsigned char ch44data[] = { - 0x80,0x40,0x40,0xc0,0xc0 -}; -static const GLUTBitmapChar ch44 = { 2, 5, -1, 3, 5, ch44data }; - -static const unsigned char ch45data[] = { - 0xff,0xff -}; -static const GLUTBitmapChar ch45 = { 8, 2, -1, -4, 11, ch45data }; - -static const unsigned char ch46data[] = { - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch46 = { 2, 2, -1, 0, 5, ch46data }; - -static const unsigned char ch47data[] = { - 0xc0,0xc0,0x40,0x40,0x60,0x60,0x20,0x20,0x30,0x30,0x10,0x10,0x18,0x18 -}; -static const GLUTBitmapChar ch47 = { 5, 14, 0, 0, 5, ch47data }; - -static const unsigned char ch48data[] = { - 0x3c,0x7e,0x66,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x66,0x7e,0x3c -}; -static const GLUTBitmapChar ch48 = { 8, 13, -1, 0, 10, ch48data }; - -static const unsigned char ch49data[] = { - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0xf8,0x18 -}; -static const GLUTBitmapChar ch49 = { 5, 13, -2, 0, 10, ch49data }; - -static const unsigned char ch50data[] = { - 0xff,0xff,0xc0,0xe0,0x70,0x38,0x1c,0xe,0x7,0x3,0xc3,0xfe,0x3c -}; -static const GLUTBitmapChar ch50 = { 8, 13, -1, 0, 10, ch50data }; - -static const unsigned char ch51data[] = { - 0x3c,0x7e,0xc7,0xc3,0x3,0x7,0x1e,0x1c,0x6,0xc3,0xc3,0x7e,0x3c -}; -static const GLUTBitmapChar ch51 = { 8, 13, -1, 0, 10, ch51data }; - -static const unsigned char ch52data[] = { - 0x3,0x0,0x3,0x0,0x3,0x0,0xff,0x80,0xff,0x80,0xc3,0x0,0x63,0x0,0x33,0x0, - 0x33,0x0,0x1b,0x0,0xf,0x0,0x7,0x0,0x3,0x0 -}; -static const GLUTBitmapChar ch52 = { 9, 13, -1, 0, 10, ch52data }; - -static const unsigned char ch53data[] = { - 0x7c,0xfe,0xc7,0xc3,0x3,0x3,0xc7,0xfe,0xfc,0xc0,0xc0,0xfe,0xfe -}; -static const GLUTBitmapChar ch53 = { 8, 13, -1, 0, 10, ch53data }; - -static const unsigned char ch54data[] = { - 0x3c,0x7e,0xe3,0xc3,0xc3,0xc3,0xfe,0xdc,0xc0,0xc0,0x63,0x7f,0x3c -}; -static const GLUTBitmapChar ch54 = { 8, 13, -1, 0, 10, ch54data }; - -static const unsigned char ch55data[] = { - 0x60,0x60,0x30,0x30,0x30,0x18,0x18,0xc,0xc,0x6,0x3,0xff,0xff -}; -static const GLUTBitmapChar ch55 = { 8, 13, -1, 0, 10, ch55data }; - -static const unsigned char ch56data[] = { - 0x3c,0x7e,0xe7,0xc3,0xc3,0x66,0x7e,0x66,0xc3,0xc3,0xe7,0x7e,0x3c -}; -static const GLUTBitmapChar ch56 = { 8, 13, -1, 0, 10, ch56data }; - -static const unsigned char ch57data[] = { - 0x7c,0xfe,0xc6,0x3,0x3,0x3b,0x7f,0xc3,0xc3,0xc3,0xc7,0x7e,0x3c -}; -static const GLUTBitmapChar ch57 = { 8, 13, -1, 0, 10, ch57data }; - -static const unsigned char ch58data[] = { - 0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch58 = { 2, 10, -1, 0, 5, ch58data }; - -static const unsigned char ch59data[] = { - 0x80,0x40,0x40,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch59 = { 2, 13, -1, 3, 5, ch59data }; - -static const unsigned char ch60data[] = { - 0x3,0xf,0x3c,0x70,0xc0,0x70,0x3c,0xf,0x3 -}; -static const GLUTBitmapChar ch60 = { 8, 9, -1, 0, 10, ch60data }; - -static const unsigned char ch61data[] = { - 0xfe,0xfe,0x0,0x0,0xfe,0xfe -}; -static const GLUTBitmapChar ch61 = { 7, 6, -2, -2, 11, ch61data }; - -static const unsigned char ch62data[] = { - 0xc0,0xf0,0x3c,0xe,0x3,0xe,0x3c,0xf0,0xc0 -}; -static const GLUTBitmapChar ch62 = { 8, 9, -1, 0, 10, ch62data }; - -static const unsigned char ch63data[] = { - 0x30,0x30,0x0,0x0,0x30,0x30,0x30,0x38,0x1c,0xe,0xc6,0xc6,0xfe,0x7c -}; -static const GLUTBitmapChar ch63 = { 7, 14, -1, 0, 10, ch63data }; - -static const unsigned char ch64data[] = { - 0x7,0xe0,0x1f,0xf0,0x38,0x0,0x70,0x0,0x67,0x70,0xcf,0xf8,0xcc,0xcc,0xcc,0x66, - 0xcc,0x66,0xcc,0x63,0xc6,0x33,0x67,0x73,0x63,0xb3,0x30,0x6,0x1c,0xe,0xf,0xfc, - 0x3,0xf0 -}; -static const GLUTBitmapChar ch64 = { 16, 17, -1, 3, 18, ch64data }; - -static const unsigned char ch65data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch65 = { 12, 14, 0, 0, 12, ch65data }; - -static const unsigned char ch66data[] = { - 0xff,0x80,0xff,0xc0,0xc0,0xe0,0xc0,0x60,0xc0,0x60,0xc0,0xe0,0xff,0xc0,0xff,0x80, - 0xc1,0x80,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 -}; -static const GLUTBitmapChar ch66 = { 11, 14, -1, 0, 13, ch66data }; - -static const unsigned char ch67data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, - 0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 -}; -static const GLUTBitmapChar ch67 = { 12, 14, -1, 0, 14, ch67data }; - -static const unsigned char ch68data[] = { - 0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 -}; -static const GLUTBitmapChar ch68 = { 11, 14, -1, 0, 13, ch68data }; - -static const unsigned char ch69data[] = { - 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80 -}; -static const GLUTBitmapChar ch69 = { 9, 14, -1, 0, 11, ch69data }; - -static const unsigned char ch70data[] = { - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80 -}; -static const GLUTBitmapChar ch70 = { 9, 14, -1, 0, 11, ch70data }; - -static const unsigned char ch71data[] = { - 0xf,0xb0,0x3f,0xf0,0x70,0x70,0x60,0x30,0xe0,0x30,0xc1,0xf0,0xc1,0xf0,0xc0,0x0, - 0xc0,0x0,0xe0,0x30,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 -}; -static const GLUTBitmapChar ch71 = { 12, 14, -1, 0, 14, ch71data }; - -static const unsigned char ch72data[] = { - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xff,0xe0,0xff,0xe0, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60 -}; -static const GLUTBitmapChar ch72 = { 11, 14, -1, 0, 13, ch72data }; - -static const unsigned char ch73data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch73 = { 2, 14, -2, 0, 6, ch73data }; - -static const unsigned char ch74data[] = { - 0x3c,0x7e,0xe7,0xc3,0xc3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3 -}; -static const GLUTBitmapChar ch74 = { 8, 14, -1, 0, 10, ch74data }; - -static const unsigned char ch75data[] = { - 0xc0,0x70,0xc0,0xe0,0xc1,0xc0,0xc3,0x80,0xc7,0x0,0xce,0x0,0xfc,0x0,0xf8,0x0, - 0xdc,0x0,0xce,0x0,0xc7,0x0,0xc3,0x80,0xc1,0xc0,0xc0,0xe0 -}; -static const GLUTBitmapChar ch75 = { 12, 14, -1, 0, 13, ch75data }; - -static const unsigned char ch76data[] = { - 0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch76 = { 8, 14, -1, 0, 10, ch76data }; - -static const unsigned char ch77data[] = { - 0xc3,0xc,0xc3,0xc,0xc7,0x8c,0xc4,0x8c,0xcc,0xcc,0xcc,0xcc,0xd8,0x6c,0xd8,0x6c, - 0xf0,0x3c,0xf0,0x3c,0xe0,0x1c,0xe0,0x1c,0xc0,0xc,0xc0,0xc -}; -static const GLUTBitmapChar ch77 = { 14, 14, -1, 0, 16, ch77data }; - -static const unsigned char ch78data[] = { - 0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, - 0xcc,0x60,0xd8,0x60,0xf0,0x60,0xf0,0x60,0xe0,0x60,0xc0,0x60 -}; -static const GLUTBitmapChar ch78 = { 11, 14, -1, 0, 13, ch78data }; - -static const unsigned char ch79data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 -}; -static const GLUTBitmapChar ch79 = { 13, 14, -1, 0, 15, ch79data }; - -static const unsigned char ch80data[] = { - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80, - 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 -}; -static const GLUTBitmapChar ch80 = { 10, 14, -1, 0, 12, ch80data }; - -static const unsigned char ch81data[] = { - 0x0,0x30,0xf,0xb0,0x3f,0xe0,0x70,0xf0,0x61,0xb0,0xe1,0xb8,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 -}; -static const GLUTBitmapChar ch81 = { 13, 15, -1, 1, 15, ch81data }; - -static const unsigned char ch82data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0x80,0xc1,0x80,0xff,0x0,0xff,0x80, - 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 -}; -static const GLUTBitmapChar ch82 = { 10, 14, -1, 0, 12, ch82data }; - -static const unsigned char ch83data[] = { - 0x3f,0x0,0x7f,0xc0,0xe0,0xe0,0xc0,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0,0x1f,0x0, - 0x7c,0x0,0xe0,0x0,0xc0,0x60,0xe0,0xe0,0x7f,0xc0,0x1f,0x0 -}; -static const GLUTBitmapChar ch83 = { 11, 14, -1, 0, 13, ch83data }; - -static const unsigned char ch84data[] = { - 0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0, - 0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xff,0xc0,0xff,0xc0 -}; -static const GLUTBitmapChar ch84 = { 10, 14, -1, 0, 12, ch84data }; - -static const unsigned char ch85data[] = { - 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60 -}; -static const GLUTBitmapChar ch85 = { 11, 14, -1, 0, 13, ch85data }; - -static const unsigned char ch86data[] = { - 0x6,0x0,0xf,0x0,0xf,0x0,0x19,0x80,0x19,0x80,0x19,0x80,0x30,0xc0,0x30,0xc0, - 0x30,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30 -}; -static const GLUTBitmapChar ch86 = { 12, 14, -1, 0, 14, ch86data }; - -static const unsigned char ch87data[] = { - 0x18,0x18,0x18,0x18,0x1c,0x38,0x34,0x2c,0x36,0x6c,0x36,0x6c,0x66,0x66,0x66,0x66, - 0x62,0x46,0x63,0xc6,0xc3,0xc3,0xc1,0x83,0xc1,0x83,0xc1,0x83 -}; -static const GLUTBitmapChar ch87 = { 16, 14, -1, 0, 18, ch87data }; - -static const unsigned char ch88data[] = { - 0xc0,0x60,0xe0,0xe0,0x60,0xc0,0x71,0xc0,0x31,0x80,0x1b,0x0,0xe,0x0,0xe,0x0, - 0x1b,0x0,0x31,0x80,0x71,0xc0,0x60,0xc0,0xe0,0xe0,0xc0,0x60 -}; -static const GLUTBitmapChar ch88 = { 11, 14, -1, 0, 13, ch88data }; - -static const unsigned char ch89data[] = { - 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, - 0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30 -}; -static const GLUTBitmapChar ch89 = { 12, 14, -1, 0, 14, ch89data }; - -static const unsigned char ch90data[] = { - 0xff,0xc0,0xff,0xc0,0xc0,0x0,0x60,0x0,0x30,0x0,0x18,0x0,0x1c,0x0,0xc,0x0, - 0x6,0x0,0x3,0x0,0x1,0x80,0x0,0xc0,0xff,0xc0,0xff,0xc0 -}; -static const GLUTBitmapChar ch90 = { 10, 14, -1, 0, 12, ch90data }; - -static const unsigned char ch91data[] = { - 0xf0,0xf0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xf0,0xf0 -}; -static const GLUTBitmapChar ch91 = { 4, 18, -1, 4, 5, ch91data }; - -static const unsigned char ch92data[] = { - 0x18,0x18,0x10,0x10,0x30,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0xc0,0xc0 -}; -static const GLUTBitmapChar ch92 = { 5, 14, 0, 0, 5, ch92data }; - -static const unsigned char ch93data[] = { - 0xf0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0xf0,0xf0 -}; -static const GLUTBitmapChar ch93 = { 4, 18, 0, 4, 5, ch93data }; - -static const unsigned char ch94data[] = { - 0x82,0xc6,0x6c,0x38,0x10 -}; -static const GLUTBitmapChar ch94 = { 7, 5, -1, -8, 9, ch94data }; - -static const unsigned char ch95data[] = { - 0xff,0xc0,0xff,0xc0 -}; -static const GLUTBitmapChar ch95 = { 10, 2, 0, 4, 10, ch95data }; - -static const unsigned char ch96data[] = { - 0xc0,0xc0,0x80,0x80,0x40 -}; -static const GLUTBitmapChar ch96 = { 2, 5, -1, -9, 4, ch96data }; - -static const unsigned char ch97data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c -}; -static const GLUTBitmapChar ch97 = { 7, 10, -1, 0, 9, ch97data }; - -static const unsigned char ch98data[] = { - 0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0, - 0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0 -}; -static const GLUTBitmapChar ch98 = { 9, 14, -1, 0, 11, ch98data }; - -static const unsigned char ch99data[] = { - 0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e -}; -static const GLUTBitmapChar ch99 = { 8, 10, -1, 0, 10, ch99data }; - -static const unsigned char ch100data[] = { - 0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80, - 0x7f,0x80,0x3d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80 -}; -static const GLUTBitmapChar ch100 = { 9, 14, -1, 0, 11, ch100data }; - -static const unsigned char ch101data[] = { - 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c -}; -static const GLUTBitmapChar ch101 = { 8, 10, -1, 0, 10, ch101data }; - -static const unsigned char ch102data[] = { - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x3c,0x1c -}; -static const GLUTBitmapChar ch102 = { 6, 14, 0, 0, 6, ch102data }; - -static const unsigned char ch103data[] = { - 0x1c,0x0,0x7f,0x0,0x63,0x0,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, - 0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x7f,0x80,0x3d,0x80 -}; -static const GLUTBitmapChar ch103 = { 9, 14, -1, 4, 11, ch103data }; - -static const unsigned char ch104data[] = { - 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch104 = { 8, 14, -1, 0, 10, ch104data }; - -static const unsigned char ch105data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch105 = { 2, 14, -1, 0, 4, ch105data }; - -static const unsigned char ch106data[] = { - 0xe0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x0, - 0x30,0x30 -}; -static const GLUTBitmapChar ch106 = { 4, 18, 1, 4, 4, ch106data }; - -static const unsigned char ch107data[] = { - 0xc7,0xc6,0xce,0xcc,0xd8,0xf8,0xf0,0xd8,0xcc,0xc6,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch107 = { 8, 14, -1, 0, 9, ch107data }; - -static const unsigned char ch108data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch108 = { 2, 14, -1, 0, 4, ch108data }; - -static const unsigned char ch109data[] = { - 0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xe7,0x30, - 0xde,0xf0,0xcc,0x60 -}; -static const GLUTBitmapChar ch109 = { 12, 10, -1, 0, 14, ch109data }; - -static const unsigned char ch110data[] = { - 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce -}; -static const GLUTBitmapChar ch110 = { 8, 10, -1, 0, 10, ch110data }; - -static const unsigned char ch111data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0 -}; -static const GLUTBitmapChar ch111 = { 9, 10, -1, 0, 11, ch111data }; - -static const unsigned char ch112data[] = { - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, - 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0 -}; -static const GLUTBitmapChar ch112 = { 9, 14, -1, 4, 11, ch112data }; - -static const unsigned char ch113data[] = { - 0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, - 0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80,0x7f,0x80,0x3d,0x80 -}; -static const GLUTBitmapChar ch113 = { 9, 14, -1, 4, 11, ch113data }; - -static const unsigned char ch114data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xd8,0xd8 -}; -static const GLUTBitmapChar ch114 = { 5, 10, -1, 0, 6, ch114data }; - -static const unsigned char ch115data[] = { - 0x78,0xfc,0xc6,0x6,0x3e,0xfc,0xc0,0xc6,0x7e,0x3c -}; -static const GLUTBitmapChar ch115 = { 7, 10, -1, 0, 9, ch115data }; - -static const unsigned char ch116data[] = { - 0x18,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x30 -}; -static const GLUTBitmapChar ch116 = { 6, 13, 0, 0, 6, ch116data }; - -static const unsigned char ch117data[] = { - 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3 -}; -static const GLUTBitmapChar ch117 = { 8, 10, -1, 0, 10, ch117data }; - -static const unsigned char ch118data[] = { - 0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3 -}; -static const GLUTBitmapChar ch118 = { 8, 10, -1, 0, 10, ch118data }; - -static const unsigned char ch119data[] = { - 0x19,0x80,0x19,0x80,0x39,0xc0,0x29,0x40,0x69,0x60,0x66,0x60,0x66,0x60,0xc6,0x30, - 0xc6,0x30,0xc6,0x30 -}; -static const GLUTBitmapChar ch119 = { 12, 10, -1, 0, 14, ch119data }; - -static const unsigned char ch120data[] = { - 0xc3,0xe7,0x66,0x3c,0x18,0x18,0x3c,0x66,0xe7,0xc3 -}; -static const GLUTBitmapChar ch120 = { 8, 10, -1, 0, 10, ch120data }; - -static const unsigned char ch121data[] = { - 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3 -}; -static const GLUTBitmapChar ch121 = { 8, 14, -1, 4, 10, ch121data }; - -static const unsigned char ch122data[] = { - 0xfe,0xfe,0xc0,0x60,0x30,0x18,0xc,0x6,0xfe,0xfe -}; -static const GLUTBitmapChar ch122 = { 7, 10, -1, 0, 9, ch122data }; - -static const unsigned char ch123data[] = { - 0xc,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0xc0,0x60,0x30,0x30,0x30,0x30,0x30, - 0x18,0xc -}; -static const GLUTBitmapChar ch123 = { 6, 18, 0, 4, 6, ch123data }; - -static const unsigned char ch124data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch124 = { 2, 18, -1, 4, 4, ch124data }; - -static const unsigned char ch125data[] = { - 0xc0,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0xc,0x18,0x30,0x30,0x30,0x30,0x30, - 0x60,0xc0 -}; -static const GLUTBitmapChar ch125 = { 6, 18, 0, 4, 6, ch125data }; - -static const unsigned char ch126data[] = { - 0xcc,0x7e,0x33 -}; -static const GLUTBitmapChar ch126 = { 8, 3, -1, -4, 10, ch126data }; - -static const unsigned char ch160data[] = { - 0x0 -}; -static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 5, ch160data }; - -static const unsigned char ch161data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x40,0x40,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch161 = { 2, 14, -2, 4, 6, ch161data }; - -static const unsigned char ch162data[] = { - 0x10,0x10,0x3e,0x7f,0x6b,0xc8,0xc8,0xc8,0xc8,0x6b,0x7f,0x3e,0x4,0x4 -}; -static const GLUTBitmapChar ch162 = { 8, 14, -1, 2, 10, ch162data }; - -static const unsigned char ch163data[] = { - 0xdf,0x0,0xff,0x80,0x60,0x80,0x30,0x0,0x18,0x0,0x18,0x0,0x7e,0x0,0x30,0x0, - 0x60,0x0,0x61,0x80,0x61,0x80,0x3f,0x0,0x1e,0x0 -}; -static const GLUTBitmapChar ch163 = { 9, 13, 0, 0, 10, ch163data }; - -static const unsigned char ch164data[] = { - 0xc3,0xff,0x66,0x66,0x66,0xff,0xc3 -}; -static const GLUTBitmapChar ch164 = { 8, 7, -1, -3, 10, ch164data }; - -static const unsigned char ch165data[] = { - 0x18,0x18,0x18,0x18,0xff,0x18,0xff,0x3c,0x66,0x66,0x66,0xc3,0xc3 -}; -static const GLUTBitmapChar ch165 = { 8, 13, -1, 0, 10, ch165data }; - -static const unsigned char ch166data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch166 = { 2, 17, -1, 3, 4, ch166data }; - -static const unsigned char ch167data[] = { - 0x3c,0x7e,0xc3,0xc3,0x7,0xe,0x3e,0x73,0xe3,0xc3,0xc7,0x6e,0x7c,0xf0,0xc3,0xc3, - 0x7e,0x3c -}; -static const GLUTBitmapChar ch167 = { 8, 18, -1, 4, 10, ch167data }; - -static const unsigned char ch168data[] = { - 0xd8,0xd8 -}; -static const GLUTBitmapChar ch168 = { 5, 2, 0, -11, 6, ch168data }; - -static const unsigned char ch169data[] = { - 0xf,0x80,0x30,0x60,0x40,0x10,0x47,0x10,0x88,0x88,0x90,0x8,0x90,0x8,0x90,0x8, - 0x88,0x88,0x47,0x10,0x40,0x10,0x30,0x60,0xf,0x80 -}; -static const GLUTBitmapChar ch169 = { 13, 13, -1, 0, 15, ch169data }; - -static const unsigned char ch170data[] = { - 0xf8,0x0,0x68,0xd8,0x48,0x38,0xc8,0x70 -}; -static const GLUTBitmapChar ch170 = { 5, 8, -1, -6, 7, ch170data }; - -static const unsigned char ch171data[] = { - 0x12,0x36,0x6c,0xd8,0xd8,0x6c,0x36,0x12 -}; -static const GLUTBitmapChar ch171 = { 7, 8, -1, -1, 9, ch171data }; - -static const unsigned char ch172data[] = { - 0x1,0x80,0x1,0x80,0x1,0x80,0xff,0x80,0xff,0x80 -}; -static const GLUTBitmapChar ch172 = { 9, 5, -1, -3, 11, ch172data }; - -static const unsigned char ch173data[] = { - 0xf8,0xf8 -}; -static const GLUTBitmapChar ch173 = { 5, 2, -1, -4, 7, ch173data }; - -static const unsigned char ch174data[] = { - 0xf,0x80,0x30,0x60,0x40,0x10,0x48,0x50,0x88,0x88,0x89,0x8,0x8f,0x88,0x88,0x48, - 0x88,0x48,0x4f,0x90,0x40,0x10,0x30,0x60,0xf,0x80 -}; -static const GLUTBitmapChar ch174 = { 13, 13, -1, 0, 14, ch174data }; - -static const unsigned char ch175data[] = { - 0xf8 -}; -static const GLUTBitmapChar ch175 = { 5, 1, 0, -12, 5, ch175data }; - -static const unsigned char ch176data[] = { - 0x70,0xd8,0x88,0xd8,0x70 -}; -static const GLUTBitmapChar ch176 = { 5, 5, -1, -8, 7, ch176data }; - -static const unsigned char ch177data[] = { - 0xff,0xff,0x0,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18 -}; -static const GLUTBitmapChar ch177 = { 8, 11, -1, 0, 10, ch177data }; - -static const unsigned char ch178data[] = { - 0xf8,0xf8,0x60,0x30,0x18,0x98,0xf8,0x70 -}; -static const GLUTBitmapChar ch178 = { 5, 8, 0, -5, 6, ch178data }; - -static const unsigned char ch179data[] = { - 0x70,0xf8,0x98,0x30,0x30,0x98,0xf8,0x70 -}; -static const GLUTBitmapChar ch179 = { 5, 8, 0, -5, 6, ch179data }; - -static const unsigned char ch180data[] = { - 0xc0,0x60,0x30 -}; -static const GLUTBitmapChar ch180 = { 4, 3, 0, -11, 4, ch180data }; - -static const unsigned char ch181data[] = { - 0xc0,0xc0,0xc0,0xc0,0xdb,0xff,0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3 -}; -static const GLUTBitmapChar ch181 = { 8, 14, -1, 4, 10, ch181data }; - -static const unsigned char ch182data[] = { - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x32,0x72,0xf2,0xf2,0xf2,0xf2, - 0x72,0x3f -}; -static const GLUTBitmapChar ch182 = { 8, 18, -1, 4, 10, ch182data }; - -static const unsigned char ch183data[] = { - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch183 = { 2, 2, -1, -4, 4, ch183data }; - -static const unsigned char ch184data[] = { - 0xf0,0xd8,0x18,0x70,0x60 -}; -static const GLUTBitmapChar ch184 = { 5, 5, 0, 4, 5, ch184data }; - -static const unsigned char ch185data[] = { - 0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x60 -}; -static const GLUTBitmapChar ch185 = { 3, 8, -1, -5, 6, ch185data }; - -static const unsigned char ch186data[] = { - 0xf8,0x0,0x70,0xd8,0x88,0x88,0xd8,0x70 -}; -static const GLUTBitmapChar ch186 = { 5, 8, -1, -6, 7, ch186data }; - -static const unsigned char ch187data[] = { - 0x90,0xd8,0x6c,0x36,0x36,0x6c,0xd8,0x90 -}; -static const GLUTBitmapChar ch187 = { 7, 8, -1, -1, 9, ch187data }; - -static const unsigned char ch188data[] = { - 0x30,0x30,0x30,0x30,0x19,0xf8,0xd,0xb0,0xc,0xf0,0x66,0x70,0x62,0x30,0x63,0x10, - 0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60 -}; -static const GLUTBitmapChar ch188 = { 13, 13, -1, 0, 15, ch188data }; - -static const unsigned char ch189data[] = { - 0x30,0xf8,0x30,0xf8,0x18,0x60,0xc,0x30,0xc,0x18,0x66,0x98,0x62,0xf8,0x63,0x70, - 0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60 -}; -static const GLUTBitmapChar ch189 = { 13, 13, -1, 0, 15, ch189data }; - -static const unsigned char ch190data[] = { - 0x18,0x18,0x18,0x18,0xc,0xfc,0x6,0xd8,0x6,0x78,0x73,0x38,0xf9,0x18,0x99,0x88, - 0x30,0xc0,0x30,0xc0,0x98,0x60,0xf8,0x30,0x70,0x30 -}; -static const GLUTBitmapChar ch190 = { 14, 13, 0, 0, 15, ch190data }; - -static const unsigned char ch191data[] = { - 0x7c,0xfe,0xc6,0xc6,0xe0,0x70,0x38,0x18,0x18,0x18,0x0,0x0,0x18,0x18 -}; -static const GLUTBitmapChar ch191 = { 7, 14, -1, 4, 10, ch191data }; - -static const unsigned char ch192data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, - 0xc,0x0,0x18,0x0 -}; -static const GLUTBitmapChar ch192 = { 12, 18, 0, 0, 12, ch192data }; - -static const unsigned char ch193data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, - 0x3,0x0,0x1,0x80 -}; -static const GLUTBitmapChar ch193 = { 12, 18, 0, 0, 12, ch193data }; - -static const unsigned char ch194data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, - 0xf,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch194 = { 12, 18, 0, 0, 12, ch194data }; - -static const unsigned char ch195data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x13,0x0, - 0x16,0x80,0xc,0x80 -}; -static const GLUTBitmapChar ch195 = { 12, 18, 0, 0, 12, ch195data }; - -static const unsigned char ch196data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, - 0x19,0x80 -}; -static const GLUTBitmapChar ch196 = { 12, 17, 0, 0, 12, ch196data }; - -static const unsigned char ch197data[] = { - 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, - 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, - 0x19,0x80,0xf,0x0 -}; -static const GLUTBitmapChar ch197 = { 12, 18, 0, 0, 12, ch197data }; - -static const unsigned char ch198data[] = { - 0xc1,0xff,0xc1,0xff,0x61,0x80,0x61,0x80,0x7f,0x80,0x3f,0x80,0x31,0xfe,0x31,0xfe, - 0x19,0x80,0x19,0x80,0xd,0x80,0xd,0x80,0x7,0xff,0x7,0xff -}; -static const GLUTBitmapChar ch198 = { 16, 14, -1, 0, 18, ch198data }; - -static const unsigned char ch199data[] = { - 0x1e,0x0,0x1b,0x0,0x3,0x0,0xe,0x0,0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30, - 0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70, - 0x3f,0xe0,0xf,0x80 -}; -static const GLUTBitmapChar ch199 = { 12, 18, -1, 4, 14, ch199data }; - -static const unsigned char ch200data[] = { - 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, - 0x18,0x0,0x30,0x0 -}; -static const GLUTBitmapChar ch200 = { 9, 18, -1, 0, 11, ch200data }; - -static const unsigned char ch201data[] = { - 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, - 0x6,0x0,0x3,0x0 -}; -static const GLUTBitmapChar ch201 = { 9, 18, -1, 0, 11, ch201data }; - -static const unsigned char ch202data[] = { - 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, - 0x1e,0x0,0xc,0x0 -}; -static const GLUTBitmapChar ch202 = { 9, 18, -1, 0, 11, ch202data }; - -static const unsigned char ch203data[] = { - 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, - 0x33,0x0 -}; -static const GLUTBitmapChar ch203 = { 9, 17, -1, 0, 11, ch203data }; - -static const unsigned char ch204data[] = { - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x30, - 0x60,0xc0 -}; -static const GLUTBitmapChar ch204 = { 4, 18, 0, 0, 6, ch204data }; - -static const unsigned char ch205data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0xc0, - 0x60,0x30 -}; -static const GLUTBitmapChar ch205 = { 4, 18, -2, 0, 6, ch205data }; - -static const unsigned char ch206data[] = { - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, - 0x78,0x30 -}; -static const GLUTBitmapChar ch206 = { 6, 18, 0, 0, 6, ch206data }; - -static const unsigned char ch207data[] = { - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, - 0xcc -}; -static const GLUTBitmapChar ch207 = { 6, 17, 0, 0, 6, ch207data }; - -static const unsigned char ch208data[] = { - 0x7f,0x80,0x7f,0xc0,0x60,0xe0,0x60,0x60,0x60,0x30,0x60,0x30,0xfc,0x30,0xfc,0x30, - 0x60,0x30,0x60,0x30,0x60,0x60,0x60,0xe0,0x7f,0xc0,0x7f,0x80 -}; -static const GLUTBitmapChar ch208 = { 12, 14, 0, 0, 13, ch208data }; - -static const unsigned char ch209data[] = { - 0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, - 0xcc,0x60,0xd8,0x60,0xd8,0x60,0xf0,0x60,0xe0,0x60,0xe0,0x60,0x0,0x0,0x13,0x0, - 0x16,0x80,0xc,0x80 -}; -static const GLUTBitmapChar ch209 = { 11, 18, -1, 0, 13, ch209data }; - -static const unsigned char ch210data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, - 0x6,0x0,0xc,0x0 -}; -static const GLUTBitmapChar ch210 = { 13, 18, -1, 0, 15, ch210data }; - -static const unsigned char ch211data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, - 0x1,0x80,0x0,0xc0 -}; -static const GLUTBitmapChar ch211 = { 13, 18, -1, 0, 15, ch211data }; - -static const unsigned char ch212data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xc,0xc0, - 0x7,0x80,0x3,0x0 -}; -static const GLUTBitmapChar ch212 = { 13, 18, -1, 0, 15, ch212data }; - -static const unsigned char ch213data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x9,0x80, - 0xb,0x40,0x6,0x40 -}; -static const GLUTBitmapChar ch213 = { 13, 18, -1, 0, 15, ch213data }; - -static const unsigned char ch214data[] = { - 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, - 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xd,0x80, - 0xd,0x80 -}; -static const GLUTBitmapChar ch214 = { 13, 17, -1, 0, 15, ch214data }; - -static const unsigned char ch215data[] = { - 0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0,0x61,0x80, - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch215 = { 10, 9, 0, 0, 10, ch215data }; - -static const unsigned char ch216data[] = { - 0xc7,0xc0,0xff,0xf0,0x78,0x38,0x38,0x18,0x6c,0x1c,0x6e,0xc,0x67,0xc,0x63,0x8c, - 0x61,0xcc,0x70,0xdc,0x30,0x78,0x38,0x38,0x1f,0xfc,0x7,0xcc -}; -static const GLUTBitmapChar ch216 = { 14, 14, 0, 0, 15, ch216data }; - -static const unsigned char ch217data[] = { - 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x6,0x0, - 0xc,0x0,0x18,0x0 -}; -static const GLUTBitmapChar ch217 = { 11, 18, -1, 0, 13, ch217data }; - -static const unsigned char ch218data[] = { - 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0xc,0x0, - 0x6,0x0,0x3,0x0 -}; -static const GLUTBitmapChar ch218 = { 11, 18, -1, 0, 13, ch218data }; - -static const unsigned char ch219data[] = { - 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, - 0xf,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch219 = { 11, 18, -1, 0, 13, ch219data }; - -static const unsigned char ch220data[] = { - 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, - 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, - 0x19,0x80 -}; -static const GLUTBitmapChar ch220 = { 11, 17, -1, 0, 13, ch220data }; - -static const unsigned char ch221data[] = { - 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, - 0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30,0x0,0x0,0x6,0x0, - 0x3,0x0,0x1,0x80 -}; -static const GLUTBitmapChar ch221 = { 12, 18, -1, 0, 14, ch221data }; - -static const unsigned char ch222data[] = { - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc1,0xc0,0xff,0x80,0xff,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0 -}; -static const GLUTBitmapChar ch222 = { 10, 14, -1, 0, 12, ch222data }; - -static const unsigned char ch223data[] = { - 0xdc,0xde,0xc6,0xc6,0xc6,0xc6,0xdc,0xdc,0xc6,0xc6,0xc6,0xc6,0x7c,0x38 -}; -static const GLUTBitmapChar ch223 = { 7, 14, -1, 0, 9, ch223data }; - -static const unsigned char ch224data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x18,0x30,0x60 -}; -static const GLUTBitmapChar ch224 = { 7, 14, -1, 0, 9, ch224data }; - -static const unsigned char ch225data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x30,0x18,0xc -}; -static const GLUTBitmapChar ch225 = { 7, 14, -1, 0, 9, ch225data }; - -static const unsigned char ch226data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x66,0x3c,0x18 -}; -static const GLUTBitmapChar ch226 = { 7, 14, -1, 0, 9, ch226data }; - -static const unsigned char ch227data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x4c,0x5a,0x32 -}; -static const GLUTBitmapChar ch227 = { 7, 14, -1, 0, 9, ch227data }; - -static const unsigned char ch228data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x6c,0x6c -}; -static const GLUTBitmapChar ch228 = { 7, 13, -1, 0, 9, ch228data }; - -static const unsigned char ch229data[] = { - 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x38,0x6c,0x6c,0x38 -}; -static const GLUTBitmapChar ch229 = { 7, 14, -1, 0, 9, ch229data }; - -static const unsigned char ch230data[] = { - 0x75,0xe0,0xef,0xf8,0xc7,0x18,0xc6,0x0,0xe6,0x0,0x7f,0xf8,0xe,0x18,0xc6,0x18, - 0xef,0xf0,0x7d,0xe0 -}; -static const GLUTBitmapChar ch230 = { 13, 10, -1, 0, 15, ch230data }; - -static const unsigned char ch231data[] = { - 0x78,0x6c,0xc,0x38,0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e -}; -static const GLUTBitmapChar ch231 = { 8, 14, -1, 4, 10, ch231data }; - -static const unsigned char ch232data[] = { - 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0x30,0x60 -}; -static const GLUTBitmapChar ch232 = { 8, 14, -1, 0, 10, ch232data }; - -static const unsigned char ch233data[] = { - 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0xc,0x6 -}; -static const GLUTBitmapChar ch233 = { 8, 14, -1, 0, 10, ch233data }; - -static const unsigned char ch234data[] = { - 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x66,0x3c,0x18 -}; -static const GLUTBitmapChar ch234 = { 8, 14, -1, 0, 10, ch234data }; - -static const unsigned char ch235data[] = { - 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x36,0x36 -}; -static const GLUTBitmapChar ch235 = { 8, 13, -1, 0, 10, ch235data }; - -static const unsigned char ch236data[] = { - 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0x30,0x60,0xc0 -}; -static const GLUTBitmapChar ch236 = { 4, 14, 0, 0, 4, ch236data }; - -static const unsigned char ch237data[] = { - 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xc0,0x60,0x30 -}; -static const GLUTBitmapChar ch237 = { 4, 14, 0, 0, 4, ch237data }; - -static const unsigned char ch238data[] = { - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc,0x78,0x30 -}; -static const GLUTBitmapChar ch238 = { 6, 14, 1, 0, 4, ch238data }; - -static const unsigned char ch239data[] = { - 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xd8,0xd8 -}; -static const GLUTBitmapChar ch239 = { 5, 13, 0, 0, 4, ch239data }; - -static const unsigned char ch240data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x4c,0x0,0x38,0x0,0x36,0x0,0x60,0x0 -}; -static const GLUTBitmapChar ch240 = { 9, 14, -1, 0, 11, ch240data }; - -static const unsigned char ch241data[] = { - 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0x0,0x4c,0x5a,0x32 -}; -static const GLUTBitmapChar ch241 = { 8, 14, -1, 0, 10, ch241data }; - -static const unsigned char ch242data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x18,0x0,0x30,0x0 -}; -static const GLUTBitmapChar ch242 = { 9, 14, -1, 0, 11, ch242data }; - -static const unsigned char ch243data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0xc,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch243 = { 9, 14, -1, 0, 11, ch243data }; - -static const unsigned char ch244data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x0,0x0,0x33,0x0,0x1e,0x0,0xc,0x0 -}; -static const GLUTBitmapChar ch244 = { 9, 14, -1, 0, 11, ch244data }; - -static const unsigned char ch245data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x0,0x0,0x26,0x0,0x2d,0x0,0x19,0x0 -}; -static const GLUTBitmapChar ch245 = { 9, 14, -1, 0, 11, ch245data }; - -static const unsigned char ch246data[] = { - 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, - 0x7f,0x0,0x3e,0x0,0x0,0x0,0x36,0x0,0x36,0x0 -}; -static const GLUTBitmapChar ch246 = { 9, 13, -1, 0, 11, ch246data }; - -static const unsigned char ch247data[] = { - 0x18,0x18,0x0,0xff,0xff,0x0,0x18,0x18 -}; -static const GLUTBitmapChar ch247 = { 8, 8, -1, -1, 10, ch247data }; - -static const unsigned char ch248data[] = { - 0xce,0x0,0x7f,0x80,0x31,0x80,0x78,0xc0,0x6c,0xc0,0x66,0xc0,0x63,0xc0,0x31,0x80, - 0x3f,0xc0,0xe,0x60 -}; -static const GLUTBitmapChar ch248 = { 11, 10, 0, 0, 11, ch248data }; - -static const unsigned char ch249data[] = { - 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0xc,0x18,0x30 -}; -static const GLUTBitmapChar ch249 = { 8, 14, -1, 0, 10, ch249data }; - -static const unsigned char ch250data[] = { - 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x18,0xc,0x6 -}; -static const GLUTBitmapChar ch250 = { 8, 14, -1, 0, 10, ch250data }; - -static const unsigned char ch251data[] = { - 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x3c,0x18 -}; -static const GLUTBitmapChar ch251 = { 8, 14, -1, 0, 10, ch251data }; - -static const unsigned char ch252data[] = { - 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x66 -}; -static const GLUTBitmapChar ch252 = { 8, 13, -1, 0, 10, ch252data }; - -static const unsigned char ch253data[] = { - 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x18, - 0xc,0x6 -}; -static const GLUTBitmapChar ch253 = { 8, 18, -1, 4, 10, ch253data }; - -static const unsigned char ch254data[] = { - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, - 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0, - 0xc0,0x0,0xc0,0x0 -}; -static const GLUTBitmapChar ch254 = { 9, 18, -1, 4, 11, ch254data }; - -static const unsigned char ch255data[] = { - 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x66, - 0x66 -}; -static const GLUTBitmapChar ch255 = { 8, 17, -1, 4, 10, ch255data }; - - -static const GLUTBitmapChar *chars[] = { - 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, - &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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - &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 GLUTBitmapFont glutBitmapHelvetica18 = { - "-Adobe-Helvetica-Medium-R-Normal--18-180-75-75-P-98-ISO8859-1", - 22, 256, chars -}; diff --git a/src/glut/dos/init.c b/src/glut/dos/init.c deleted file mode 100644 index 3a98dcf0a4..0000000000 --- a/src/glut/dos/init.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "internal.h" - - -char *__glutProgramName = NULL; - -GLUTvisual _glut_visual = { - 16, 8, 16, 8, 16, /* bpp, alpha, depth, stencil, accum */ - - { 0, 0 }, 0, /* geometry */ - - 0 /* flags */ -}; - -GLUTdefault _glut_default = { - 0, 0, /* glutInitWindowPosition */ - 300, 300, /* glutInitWindowSize */ - 0 /* glutInitDisplayMode */ -}; - -GLuint _glut_fps = 0; - -static char *init_string; - - -void -_glut_fatal (char *format,...) -{ - va_list args; - - va_start(args, format); - fprintf(stderr, "GLUT: Fatal Error in %s: ", - __glutProgramName ? __glutProgramName : "(unamed)"); - vfprintf(stderr, format, args); - va_end(args); - putc('\n', stderr); - exit(1); -} - - -/* strdup is actually not a standard ANSI C or POSIX routine - * so implement a private one for GLUT. - */ -static char * -_glut_strdup (const char *string) -{ - if (string != NULL) { - int len = strlen(string) + 1; - char *p = malloc(len); - if (p != NULL) { - return strcpy(p, string); - } - } - return NULL; -} - - -void APIENTRY -glutInit (int *argc, char **argv) -{ - char *str; - const char *env; - - if ((env = getenv("DMESA_GLUT_BPP")) != NULL) { - _glut_visual.bpp = atoi(env); - } - if ((env = getenv("DMESA_GLUT_ALPHA")) != NULL) { - _glut_visual.alpha = atoi(env); - } - if ((env = getenv("DMESA_GLUT_DEPTH")) != NULL) { - _glut_visual.depth = atoi(env); - } - if ((env = getenv("DMESA_GLUT_STENCIL")) != NULL) { - _glut_visual.stencil = atoi(env); - } - if ((env = getenv("DMESA_GLUT_ACCUM")) != NULL) { - _glut_visual.accum = atoi(env); - } - if ((env = getenv("DMESA_GLUT_REFRESH")) != NULL) { - _glut_visual.refresh = atoi(env); - } - - /* Determine program name. */ - str = strrchr(argv[0], '/'); - if (str == NULL) { - str = argv[0]; - } else { - str++; - } - __glutProgramName = _glut_strdup(str); - - /* check if GLUT_FPS env var is set */ - if ((env = getenv("GLUT_FPS")) != NULL) { - if ((_glut_fps = atoi(env)) <= 0) { - _glut_fps = 5000; /* 5000 milliseconds */ - } - } - - /* Initialize timer */ - glutGet(GLUT_ELAPSED_TIME); -} - - -void APIENTRY -glutInitDisplayMode (unsigned int mode) -{ - _glut_default.mode = mode; -} - - -void APIENTRY -glutInitWindowPosition (int x, int y) -{ - _glut_default.x = x; - _glut_default.y = y; -} - - -void APIENTRY -glutInitWindowSize (int width, int height) -{ - _glut_default.width = width; - _glut_default.height = height; -} - - -void APIENTRY -glutInitDisplayString (const char *string) -{ - init_string = _glut_strdup(string); -} - - -void APIENTRY -glutSetOption (GLenum pname, int value) -{ - switch (pname) { - case GLUT_INIT_WINDOW_X: - _glut_default.x = value; - break; - case GLUT_INIT_WINDOW_Y: - _glut_default.y = value; - break; - } -} - - -void APIENTRY -glutForceJoystickFunc (void) -{ -} - - -void APIENTRY -glutIgnoreKeyRepeat (int ignore) -{ -} - - -void APIENTRY -glutSetKeyRepeat (int repeatMode) -{ -} - - -void APIENTRY -glutVideoPan (int x, int y, int w, int h) -{ -} - - -int APIENTRY -glutVideoResizeGet( GLenum eWhat ) -{ - return 0; -} - - -void APIENTRY -glutSetupVideoResizing (void) -{ -} - - -void APIENTRY -glutStopVideoResizing (void) -{ -} - - -void APIENTRY -glutVideoResize (int x, int y, int w, int h) -{ -} diff --git a/src/glut/dos/internal.h b/src/glut/dos/internal.h deleted file mode 100644 index 063c2d00d9..0000000000 --- a/src/glut/dos/internal.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef INTERNAL_H_included -#define INTERNAL_H_included - -#include <GL/glut.h> - -#include "GL/dmesa.h" - - -#define MAX_WINDOWS 2 -#define MAX_TIMER_CB 8 -#define RESERVED_COLORS 0 - - -/* GLUT function types */ -typedef void (GLUTCALLBACK *GLUTdisplayCB) (void); -typedef void (GLUTCALLBACK *GLUTreshapeCB) (int, int); -typedef void (GLUTCALLBACK *GLUTkeyboardCB) (unsigned char, int, int); -typedef void (GLUTCALLBACK *GLUTmouseCB) (int, int, int, int); -typedef void (GLUTCALLBACK *GLUTmotionCB) (int, int); -typedef void (GLUTCALLBACK *GLUTpassiveCB) (int, int); -typedef void (GLUTCALLBACK *GLUTentryCB) (int); -typedef void (GLUTCALLBACK *GLUTvisibilityCB) (int); -typedef void (GLUTCALLBACK *GLUTwindowStatusCB) (int); -typedef void (GLUTCALLBACK *GLUTidleCB) (void); -typedef void (GLUTCALLBACK *GLUTtimerCB) (int); -typedef void (GLUTCALLBACK *GLUTmenuStateCB) (int); /* DEPRECATED. */ -typedef void (GLUTCALLBACK *GLUTmenuStatusCB) (int, int, int); -typedef void (GLUTCALLBACK *GLUTselectCB) (int); -typedef void (GLUTCALLBACK *GLUTspecialCB) (int, int, int); -typedef void (GLUTCALLBACK *GLUTspaceMotionCB) (int, int, int); -typedef void (GLUTCALLBACK *GLUTspaceRotateCB) (int, int, int); -typedef void (GLUTCALLBACK *GLUTspaceButtonCB) (int, int); -typedef void (GLUTCALLBACK *GLUTdialsCB) (int, int); -typedef void (GLUTCALLBACK *GLUTbuttonBoxCB) (int, int); -typedef void (GLUTCALLBACK *GLUTtabletMotionCB) (int, int); -typedef void (GLUTCALLBACK *GLUTtabletButtonCB) (int, int, int, int); -typedef void (GLUTCALLBACK *GLUTjoystickCB) (unsigned int, int, int, int); - -typedef void (GLUTCALLBACK *GLUTdestroyCB) (void); -typedef void (GLUTCALLBACK *GLUTmouseWheelCB) (int, int, int, int); -typedef void (GLUTCALLBACK *GLUTmenuDestroyCB) (void); - - -typedef struct { - GLuint bpp, alpha; - GLuint depth, stencil; - GLuint accum; - - GLint geometry[2]; - GLuint refresh; - - GLint flags; -} GLUTvisual; - -typedef struct { - GLint x, y; - GLint width, height; - GLuint mode; -} GLUTdefault; - -typedef struct { - void (*func) (int); - int value; - int time; -} GLUTSShotCB; - -typedef struct GLUTwindow { - int num; /* window id */ - - DMesaContext context; - DMesaBuffer buffer; - - int show_mouse; - GLboolean redisplay; - - /* GLUT settable or visible window state. */ - int xpos; - int ypos; - int width; /* window width in pixels */ - int height; /* window height in pixels */ - - /* Per-window callbacks. */ - GLUTdisplayCB display; /* redraw */ - GLUTreshapeCB reshape; /* resize (width,height) */ - GLUTmouseCB mouse; /* mouse (button,state,x,y) */ - GLUTmotionCB motion; /* motion (x,y) */ - GLUTpassiveCB passive; /* passive motion (x,y) */ - GLUTentryCB entry; /* window entry/exit (state) */ - GLUTkeyboardCB keyboard; /* keyboard (ASCII,x,y) */ - GLUTkeyboardCB keyboardUp; /* keyboard up (ASCII,x,y) */ - GLUTwindowStatusCB windowStatus; /* window status */ - GLUTvisibilityCB visibility; /* visibility */ - GLUTspecialCB special; /* special key */ - GLUTspecialCB specialUp; /* special up key */ - GLUTbuttonBoxCB buttonBox; /* button box */ - GLUTdialsCB dials; /* dials */ - GLUTspaceMotionCB spaceMotion; /* Spaceball motion */ - GLUTspaceRotateCB spaceRotate; /* Spaceball rotate */ - GLUTspaceButtonCB spaceButton; /* Spaceball button */ - GLUTtabletMotionCB tabletMotion; /* tablet motion */ - GLUTtabletButtonCB tabletButton; /* tablet button */ - GLUTjoystickCB joystick; /* joystick */ - - GLUTdestroyCB destroy; /* destroy */ - GLUTmouseWheelCB mouseWheel; /* mouse wheel */ - - /* specific data */ - void *data; -} GLUTwindow; - -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; - -typedef struct { - const GLfloat x, y; -} GLUTStrokeVertex; - -typedef struct { - const unsigned num; - const GLUTStrokeVertex *vertex; -} GLUTStrokeStrip; - -typedef struct { - const GLfloat right; - const unsigned num; - const GLUTStrokeStrip *strip; -} GLUTStrokeChar; - -typedef struct { - const char *name; - const unsigned num; - const GLUTStrokeChar *const *table; - const GLfloat height; - const GLfloat descent; -} GLUTStrokeFont; - - -extern char *__glutProgramName; - -extern GLUTvisual _glut_visual; -extern GLUTdefault _glut_default; - -extern GLuint _glut_fps; -extern GLUTidleCB _glut_idle_func; -extern GLUTmenuStatusCB _glut_menu_status_func; -extern GLUTSShotCB _glut_timer_cb[]; - -extern GLUTwindow *_glut_current, *_glut_windows[]; - -extern int _glut_mouse; /* number of buttons, if mouse installed */ -extern int _glut_mouse_x, _glut_mouse_y; /* mouse coords, relative to current win */ - - -extern void _glut_mouse_init (void); -extern void _glut_fatal(char *format,...); -extern void *_glut_font (void *font); - - -#include "pc_hw/pc_hw.h" - -#endif diff --git a/src/glut/dos/loop.c b/src/glut/dos/loop.c deleted file mode 100644 index 36c3adc3ff..0000000000 --- a/src/glut/dos/loop.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include <string.h> - -#include <GL/glut.h> -#include "GL/dmesa.h" - -#include "PC_HW/pc_hw.h" -#include "internal.h" - - -static int looping = 0; - - -#define DO_REDISPLAY(w, ccin, ccout) \ - do { \ - if (w->redisplay && w->display) { \ - int rv = GL_TRUE; \ - \ - idle = GL_FALSE; \ - w->redisplay = GL_FALSE; \ - \ - /* test IN condition (whether we need to `MakeCurrent') */\ - if (ccin) { \ - rv = DMesaMakeCurrent(w->context, w->buffer); \ - } \ - \ - /* do the display only if `MakeCurrent' didn't failed */ \ - if (rv) { \ - if (w->show_mouse && !(_glut_default.mode & GLUT_DOUBLE)) {\ - /* XXX scare mouse */ \ - w->display(); \ - /* XXX unscare mouse */ \ - } else { \ - w->display(); \ - } \ - \ - /* update OUT condition */ \ - ccout; \ - } \ - } \ - } while (0) - - -void APIENTRY -glutMainLoopEvent (void) -{ - int i, n; - GLUTwindow *w; - GLboolean idle; - static int old_mouse_x = 0; - static int old_mouse_y = 0; - static int old_mouse_b = 0; - - static GLboolean virgin = GL_TRUE; - if (virgin) { - pc_install_keyb(); - _glut_mouse_init(); - - for (i = 0; i < MAX_WINDOWS; i++) { - w = _glut_windows[i]; - if (w != NULL) { - glutSetWindow(w->num); - glutPostRedisplay(); - if (w->reshape) { - w->reshape(w->width, w->height); - } - if (w->visibility) { - w->visibility(GLUT_VISIBLE); - } - } - } - virgin = GL_FALSE; - } - - idle = GL_TRUE; - - n = 0; - for (i = 0; i < MAX_WINDOWS; i++) { - w = _glut_windows[i]; - if ((w != NULL) && (w != _glut_current)) { - /* 1) redisplay `w' - * 2) `MakeCurrent' always - * 3) update number of non-default windows - */ - DO_REDISPLAY(w, GL_TRUE, n++); - } - } - /* 1) redisplay `_glut_current' - * 2) `MakeCurrent' only if we previously did non-default windows - * 3) don't update anything - */ - DO_REDISPLAY(_glut_current, n, n); - - if (_glut_mouse) { - int mouse_x; - int mouse_y; - int mouse_z; - int mouse_b; - - /* query mouse */ - mouse_b = pc_query_mouse(&mouse_x, &mouse_y, &mouse_z); - - /* relative to window coordinates */ - _glut_mouse_x = mouse_x - _glut_current->xpos; - _glut_mouse_y = mouse_y - _glut_current->ypos; - - /* mouse was moved? */ - if ((mouse_x != old_mouse_x) || (mouse_y != old_mouse_y)) { - idle = GL_FALSE; - old_mouse_x = mouse_x; - old_mouse_y = mouse_y; - - if (mouse_b) { - /* any button pressed */ - if (_glut_current->motion) { - _glut_current->motion(_glut_mouse_x, _glut_mouse_y); - } - } else { - /* no button pressed */ - if (_glut_current->passive) { - _glut_current->passive(_glut_mouse_x, _glut_mouse_y); - } - } - } - - /* button state changed? */ - if (mouse_b != old_mouse_b) { - GLUTmouseCB mouse_func; - - if ((mouse_func = _glut_current->mouse)) { - if ((old_mouse_b & 1) && !(mouse_b & 1)) - mouse_func(GLUT_LEFT_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); - else if (!(old_mouse_b & 1) && (mouse_b & 1)) - mouse_func(GLUT_LEFT_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); - - if ((old_mouse_b & 2) && !(mouse_b & 2)) - mouse_func(GLUT_RIGHT_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); - else if (!(old_mouse_b & 2) && (mouse_b & 2)) - mouse_func(GLUT_RIGHT_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); - - if ((old_mouse_b & 4) && !(mouse_b & 4)) - mouse_func(GLUT_MIDDLE_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); - else if (!(old_mouse_b & 3) && (mouse_b & 4)) - mouse_func(GLUT_MIDDLE_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); - } - - idle = GL_FALSE; - old_mouse_b = mouse_b; - } - } - - if (pc_keypressed()) { - int key; - int glut_key; - - idle = GL_FALSE; - key = pc_readkey(); - - switch (key>>16) { - case KEY_F1: glut_key = GLUT_KEY_F1; goto special; - case KEY_F2: glut_key = GLUT_KEY_F2; goto special; - case KEY_F3: glut_key = GLUT_KEY_F3; goto special; - case KEY_F4: glut_key = GLUT_KEY_F4; goto special; - case KEY_F5: glut_key = GLUT_KEY_F5; goto special; - case KEY_F6: glut_key = GLUT_KEY_F6; goto special; - case KEY_F7: glut_key = GLUT_KEY_F7; goto special; - case KEY_F8: glut_key = GLUT_KEY_F8; goto special; - case KEY_F9: glut_key = GLUT_KEY_F9; goto special; - case KEY_F10: glut_key = GLUT_KEY_F10; goto special; - case KEY_F11: glut_key = GLUT_KEY_F11; goto special; - case KEY_F12: glut_key = GLUT_KEY_F12; goto special; - case KEY_LEFT: glut_key = GLUT_KEY_LEFT; goto special; - case KEY_UP: glut_key = GLUT_KEY_UP; goto special; - case KEY_RIGHT: glut_key = GLUT_KEY_RIGHT; goto special; - case KEY_DOWN: glut_key = GLUT_KEY_DOWN; goto special; - case KEY_PGUP: glut_key = GLUT_KEY_PAGE_UP; goto special; - case KEY_PGDN: glut_key = GLUT_KEY_PAGE_DOWN; goto special; - case KEY_HOME: glut_key = GLUT_KEY_HOME; goto special; - case KEY_END: glut_key = GLUT_KEY_END; goto special; - case KEY_INSERT: glut_key = GLUT_KEY_INSERT; goto special; - special: - if (_glut_current->special) { - _glut_current->special(glut_key, _glut_mouse_x, _glut_mouse_y); - } - break; - default: - if (_glut_current->keyboard) { - _glut_current->keyboard(key & 0xFF, _glut_mouse_x, _glut_mouse_y); - } - } - } - - if (idle && _glut_idle_func) - _glut_idle_func(); - - for (i = 0; i < MAX_TIMER_CB; i++) { - int time = glutGet(GLUT_ELAPSED_TIME); - GLUTSShotCB *cb = &_glut_timer_cb[i]; - if (cb->func && (time >= cb->time)) { - cb->func(cb->value); - cb->func = NULL; - } - } -} - - -void APIENTRY -glutMainLoop (void) -{ - looping++; - while (looping) { - glutMainLoopEvent(); - } -} - - -void APIENTRY -glutLeaveMainLoop (void) -{ - looping--; -} diff --git a/src/glut/dos/menu.c b/src/glut/dos/menu.c deleted file mode 100644 index 857d2b4a46..0000000000 --- a/src/glut/dos/menu.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -GLUTmenuStatusCB _glut_menu_status_func = NULL; - - -void APIENTRY -glutMenuStateFunc (GLUTmenuStateCB func) -{ - _glut_menu_status_func = (GLUTmenuStatusCB)func; -} - - -void APIENTRY -glutMenuStatusFunc (GLUTmenuStatusCB func) -{ - _glut_menu_status_func = func; -} - - -int APIENTRY -glutCreateMenu (GLUTselectCB func) -{ - return 0; -} - - -void APIENTRY -glutDestroyMenu (int menu) -{ -} - - -int APIENTRY -glutGetMenu (void) -{ - return 0; -} - - -void APIENTRY -glutSetMenu (int menu) -{ -} - - -void APIENTRY -glutAddMenuEntry (const char *label, int value) -{ -} - - -void APIENTRY -glutAddSubMenu (const char *label, int submenu) -{ -} - - -void APIENTRY -glutChangeToMenuEntry (int item, const char *label, int value) -{ -} - - -void APIENTRY -glutChangeToSubMenu (int item, const char *label, int submenu) -{ -} - - -void APIENTRY -glutRemoveMenuItem (int item) -{ -} - - -void APIENTRY -glutAttachMenu (int button) -{ -} - - -void APIENTRY -glutDetachMenu (int button) -{ -} - - -void APIENTRY -glutMenuDestroyFunc ( void (* callback)( void ) ) -{ -} - - -void * APIENTRY -glutGetMenuData (void) -{ - return NULL; -} - - -void APIENTRY -glutSetMenuData (void *data) -{ -} diff --git a/src/glut/dos/mouse.c b/src/glut/dos/mouse.c deleted file mode 100644 index 945e2a5c14..0000000000 --- a/src/glut/dos/mouse.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -int _glut_mouse; -int _glut_mouse_x = 0, _glut_mouse_y = 0; - - -void -_glut_mouse_init (void) -{ - if ((_glut_mouse = pc_install_mouse())) { - pc_mouse_area(_glut_current->xpos, _glut_current->ypos, _glut_current->xpos + _glut_current->width - 1, _glut_current->ypos + _glut_current->height - 1); - - _glut_current->show_mouse = (_glut_current->mouse || _glut_current->motion || _glut_current->passive); - } -} - - -void APIENTRY -glutSetCursor (int cursor) -{ - /* XXX completely futile until full mouse support (maybe never) */ -} - - -void APIENTRY -glutWarpPointer (int x, int y) -{ - pc_warp_mouse(x, y); -} diff --git a/src/glut/dos/mroman.c b/src/glut/dos/mroman.c deleted file mode 100644 index 137458b754..0000000000 --- a/src/glut/dos/mroman.c +++ /dev/null @@ -1,2779 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#include "internal.h" - -/* char: 0x20 */ - -static const GLUTStrokeChar ch32 = {104.7619f,0,NULL}; - -/* char: 0x21 */ - -static const GLUTStrokeVertex ch33st0[] = -{ - {52.3810f,100.0000f}, - {52.3810f,33.3333f} -}; - -static const GLUTStrokeVertex ch33st1[] = -{ - {52.3810f,9.5238f}, - {47.6191f,4.7619f}, - {52.3810f,0.0000f}, - {57.1429f,4.7619f}, - {52.3810f,9.5238f} -}; - -static const GLUTStrokeStrip ch33st[] = -{ - {2,ch33st0}, - {5,ch33st1} -}; - -static const GLUTStrokeChar ch33 = {104.7619f,2,ch33st}; - -/* char: 0x22 */ - -static const GLUTStrokeVertex ch34st0[] = -{ - {33.3334f,100.0000f}, - {33.3334f,66.6667f} -}; - -static const GLUTStrokeVertex ch34st1[] = -{ - {71.4286f,100.0000f}, - {71.4286f,66.6667f} -}; - -static const GLUTStrokeStrip ch34st[] = -{ - {2,ch34st0}, - {2,ch34st1} -}; - -static const GLUTStrokeChar ch34 = {104.7619f,2,ch34st}; - -/* char: 0x23 */ - -static const GLUTStrokeVertex ch35st0[] = -{ - {54.7619f,119.0476f}, - {21.4286f,-33.3333f} -}; - -static const GLUTStrokeVertex ch35st1[] = -{ - {83.3334f,119.0476f}, - {50.0000f,-33.3333f} -}; - -static const GLUTStrokeVertex ch35st2[] = -{ - {21.4286f,57.1429f}, - {88.0952f,57.1429f} -}; - -static const GLUTStrokeVertex ch35st3[] = -{ - {16.6667f,28.5714f}, - {83.3334f,28.5714f} -}; - -static const GLUTStrokeStrip ch35st[] = -{ - {2,ch35st0}, - {2,ch35st1}, - {2,ch35st2}, - {2,ch35st3} -}; - -static const GLUTStrokeChar ch35 = {104.7619f,4,ch35st}; - -/* char: 0x24 */ - -static const GLUTStrokeVertex ch36st0[] = -{ - {42.8571f,119.0476f}, - {42.8571f,-19.0476f} -}; - -static const GLUTStrokeVertex ch36st1[] = -{ - {61.9047f,119.0476f}, - {61.9047f,-19.0476f} -}; - -static const GLUTStrokeVertex ch36st2[] = -{ - {85.7143f,85.7143f}, - {76.1905f,95.2381f}, - {61.9047f,100.0000f}, - {42.8571f,100.0000f}, - {28.5714f,95.2381f}, - {19.0476f,85.7143f}, - {19.0476f,76.1905f}, - {23.8095f,66.6667f}, - {28.5714f,61.9048f}, - {38.0952f,57.1429f}, - {66.6666f,47.6190f}, - {76.1905f,42.8571f}, - {80.9524f,38.0952f}, - {85.7143f,28.5714f}, - {85.7143f,14.2857f}, - {76.1905f,4.7619f}, - {61.9047f,0.0000f}, - {42.8571f,0.0000f}, - {28.5714f,4.7619f}, - {19.0476f,14.2857f} -}; - -static const GLUTStrokeStrip ch36st[] = -{ - {2,ch36st0}, - {2,ch36st1}, - {20,ch36st2} -}; - -static const GLUTStrokeChar ch36 = {104.7619f,3,ch36st}; - -/* char: 0x25 */ - -static const GLUTStrokeVertex ch37st0[] = -{ - {95.2381f,100.0000f}, - {9.5238f,0.0000f} -}; - -static const GLUTStrokeVertex ch37st1[] = -{ - {33.3333f,100.0000f}, - {42.8571f,90.4762f}, - {42.8571f,80.9524f}, - {38.0952f,71.4286f}, - {28.5714f,66.6667f}, - {19.0476f,66.6667f}, - {9.5238f,76.1905f}, - {9.5238f,85.7143f}, - {14.2857f,95.2381f}, - {23.8095f,100.0000f}, - {33.3333f,100.0000f}, - {42.8571f,95.2381f}, - {57.1428f,90.4762f}, - {71.4286f,90.4762f}, - {85.7143f,95.2381f}, - {95.2381f,100.0000f} -}; - -static const GLUTStrokeVertex ch37st2[] = -{ - {76.1905f,33.3333f}, - {66.6667f,28.5714f}, - {61.9048f,19.0476f}, - {61.9048f,9.5238f}, - {71.4286f,0.0000f}, - {80.9524f,0.0000f}, - {90.4762f,4.7619f}, - {95.2381f,14.2857f}, - {95.2381f,23.8095f}, - {85.7143f,33.3333f}, - {76.1905f,33.3333f} -}; - -static const GLUTStrokeStrip ch37st[] = -{ - {2,ch37st0}, - {16,ch37st1}, - {11,ch37st2} -}; - -static const GLUTStrokeChar ch37 = {104.7619f,3,ch37st}; - -/* char: 0x26 */ - -static const GLUTStrokeVertex ch38st0[] = -{ - {100.0000f,57.1429f}, - {100.0000f,61.9048f}, - {95.2381f,66.6667f}, - {90.4762f,66.6667f}, - {85.7143f,61.9048f}, - {80.9524f,52.3810f}, - {71.4286f,28.5714f}, - {61.9048f,14.2857f}, - {52.3809f,4.7619f}, - {42.8571f,0.0000f}, - {23.8095f,0.0000f}, - {14.2857f,4.7619f}, - {9.5238f,9.5238f}, - {4.7619f,19.0476f}, - {4.7619f,28.5714f}, - {9.5238f,38.0952f}, - {14.2857f,42.8571f}, - {47.6190f,61.9048f}, - {52.3809f,66.6667f}, - {57.1429f,76.1905f}, - {57.1429f,85.7143f}, - {52.3809f,95.2381f}, - {42.8571f,100.0000f}, - {33.3333f,95.2381f}, - {28.5714f,85.7143f}, - {28.5714f,76.1905f}, - {33.3333f,61.9048f}, - {42.8571f,47.6190f}, - {66.6667f,14.2857f}, - {76.1905f,4.7619f}, - {85.7143f,0.0000f}, - {95.2381f,0.0000f}, - {100.0000f,4.7619f}, - {100.0000f,9.5238f} -}; - -static const GLUTStrokeStrip ch38st[] = -{ - {34,ch38st0} -}; - -static const GLUTStrokeChar ch38 = {104.7619f,1,ch38st}; - -/* char: 0x27 */ - -static const GLUTStrokeVertex ch39st0[] = -{ - {52.3810f,100.0000f}, - {52.3810f,66.6667f} -}; - -static const GLUTStrokeStrip ch39st[] = -{ - {2,ch39st0} -}; - -static const GLUTStrokeChar ch39 = {104.7619f,1,ch39st}; - -/* char: 0x28 */ - -static const GLUTStrokeVertex ch40st0[] = -{ - {69.0476f,119.0476f}, - {59.5238f,109.5238f}, - {50.0000f,95.2381f}, - {40.4762f,76.1905f}, - {35.7143f,52.3810f}, - {35.7143f,33.3333f}, - {40.4762f,9.5238f}, - {50.0000f,-9.5238f}, - {59.5238f,-23.8095f}, - {69.0476f,-33.3333f} -}; - -static const GLUTStrokeStrip ch40st[] = -{ - {10,ch40st0} -}; - -static const GLUTStrokeChar ch40 = {104.7619f,1,ch40st}; - -/* char: 0x29 */ - -static const GLUTStrokeVertex ch41st0[] = -{ - {35.7143f,119.0476f}, - {45.2381f,109.5238f}, - {54.7619f,95.2381f}, - {64.2857f,76.1905f}, - {69.0476f,52.3810f}, - {69.0476f,33.3333f}, - {64.2857f,9.5238f}, - {54.7619f,-9.5238f}, - {45.2381f,-23.8095f}, - {35.7143f,-33.3333f} -}; - -static const GLUTStrokeStrip ch41st[] = -{ - {10,ch41st0} -}; - -static const GLUTStrokeChar ch41 = {104.7619f,1,ch41st}; - -/* char: 0x2a */ - -static const GLUTStrokeVertex ch42st0[] = -{ - {52.3810f,71.4286f}, - {52.3810f,14.2857f} -}; - -static const GLUTStrokeVertex ch42st1[] = -{ - {28.5715f,57.1429f}, - {76.1905f,28.5714f} -}; - -static const GLUTStrokeVertex ch42st2[] = -{ - {76.1905f,57.1429f}, - {28.5715f,28.5714f} -}; - -static const GLUTStrokeStrip ch42st[] = -{ - {2,ch42st0}, - {2,ch42st1}, - {2,ch42st2} -}; - -static const GLUTStrokeChar ch42 = {104.7619f,3,ch42st}; - -/* char: 0x2b */ - -static const GLUTStrokeVertex ch43st0[] = -{ - {52.3809f,85.7143f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch43st1[] = -{ - {9.5238f,42.8571f}, - {95.2381f,42.8571f} -}; - -static const GLUTStrokeStrip ch43st[] = -{ - {2,ch43st0}, - {2,ch43st1} -}; - -static const GLUTStrokeChar ch43 = {104.7619f,2,ch43st}; - -/* char: 0x2c */ - -static const GLUTStrokeVertex ch44st0[] = -{ - {57.1429f,4.7619f}, - {52.3810f,0.0000f}, - {47.6191f,4.7619f}, - {52.3810f,9.5238f}, - {57.1429f,4.7619f}, - {57.1429f,-4.7619f}, - {52.3810f,-14.2857f}, - {47.6191f,-19.0476f} -}; - -static const GLUTStrokeStrip ch44st[] = -{ - {8,ch44st0} -}; - -static const GLUTStrokeChar ch44 = {104.7619f,1,ch44st}; - -/* char: 0x2d */ - -static const GLUTStrokeVertex ch45st0[] = -{ - {9.5238f,42.8571f}, - {95.2381f,42.8571f} -}; - -static const GLUTStrokeStrip ch45st[] = -{ - {2,ch45st0} -}; - -static const GLUTStrokeChar ch45 = {104.7619f,1,ch45st}; - -/* char: 0x2e */ - -static const GLUTStrokeVertex ch46st0[] = -{ - {52.3810f,9.5238f}, - {47.6191f,4.7619f}, - {52.3810f,0.0000f}, - {57.1429f,4.7619f}, - {52.3810f,9.5238f} -}; - -static const GLUTStrokeStrip ch46st[] = -{ - {5,ch46st0} -}; - -static const GLUTStrokeChar ch46 = {104.7619f,1,ch46st}; - -/* char: 0x2f */ - -static const GLUTStrokeVertex ch47st0[] = -{ - {19.0476f,-14.2857f}, - {85.7143f,100.0000f} -}; - -static const GLUTStrokeStrip ch47st[] = -{ - {2,ch47st0} -}; - -static const GLUTStrokeChar ch47 = {104.7619f,1,ch47st}; - -/* char: 0x30 */ - -static const GLUTStrokeVertex ch48st0[] = -{ - {47.6190f,100.0000f}, - {33.3333f,95.2381f}, - {23.8095f,80.9524f}, - {19.0476f,57.1429f}, - {19.0476f,42.8571f}, - {23.8095f,19.0476f}, - {33.3333f,4.7619f}, - {47.6190f,0.0000f}, - {57.1428f,0.0000f}, - {71.4286f,4.7619f}, - {80.9524f,19.0476f}, - {85.7143f,42.8571f}, - {85.7143f,57.1429f}, - {80.9524f,80.9524f}, - {71.4286f,95.2381f}, - {57.1428f,100.0000f}, - {47.6190f,100.0000f} -}; - -static const GLUTStrokeStrip ch48st[] = -{ - {17,ch48st0} -}; - -static const GLUTStrokeChar ch48 = {104.7619f,1,ch48st}; - -/* char: 0x31 */ - -static const GLUTStrokeVertex ch49st0[] = -{ - {40.4762f,80.9524f}, - {50.0000f,85.7143f}, - {64.2857f,100.0000f}, - {64.2857f,0.0000f} -}; - -static const GLUTStrokeStrip ch49st[] = -{ - {4,ch49st0} -}; - -static const GLUTStrokeChar ch49 = {104.7619f,1,ch49st}; - -/* char: 0x32 */ - -static const GLUTStrokeVertex ch50st0[] = -{ - {23.8095f,76.1905f}, - {23.8095f,80.9524f}, - {28.5714f,90.4762f}, - {33.3333f,95.2381f}, - {42.8571f,100.0000f}, - {61.9047f,100.0000f}, - {71.4286f,95.2381f}, - {76.1905f,90.4762f}, - {80.9524f,80.9524f}, - {80.9524f,71.4286f}, - {76.1905f,61.9048f}, - {66.6666f,47.6190f}, - {19.0476f,0.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeStrip ch50st[] = -{ - {14,ch50st0} -}; - -static const GLUTStrokeChar ch50 = {104.7619f,1,ch50st}; - -/* char: 0x33 */ - -static const GLUTStrokeVertex ch51st0[] = -{ - {28.5714f,100.0000f}, - {80.9524f,100.0000f}, - {52.3809f,61.9048f}, - {66.6666f,61.9048f}, - {76.1905f,57.1429f}, - {80.9524f,52.3810f}, - {85.7143f,38.0952f}, - {85.7143f,28.5714f}, - {80.9524f,14.2857f}, - {71.4286f,4.7619f}, - {57.1428f,0.0000f}, - {42.8571f,0.0000f}, - {28.5714f,4.7619f}, - {23.8095f,9.5238f}, - {19.0476f,19.0476f} -}; - -static const GLUTStrokeStrip ch51st[] = -{ - {15,ch51st0} -}; - -static const GLUTStrokeChar ch51 = {104.7619f,1,ch51st}; - -/* char: 0x34 */ - -static const GLUTStrokeVertex ch52st0[] = -{ - {64.2857f,100.0000f}, - {16.6667f,33.3333f}, - {88.0952f,33.3333f} -}; - -static const GLUTStrokeVertex ch52st1[] = -{ - {64.2857f,100.0000f}, - {64.2857f,0.0000f} -}; - -static const GLUTStrokeStrip ch52st[] = -{ - {3,ch52st0}, - {2,ch52st1} -}; - -static const GLUTStrokeChar ch52 = {104.7619f,2,ch52st}; - -/* char: 0x35 */ - -static const GLUTStrokeVertex ch53st0[] = -{ - {76.1905f,100.0000f}, - {28.5714f,100.0000f}, - {23.8095f,57.1429f}, - {28.5714f,61.9048f}, - {42.8571f,66.6667f}, - {57.1428f,66.6667f}, - {71.4286f,61.9048f}, - {80.9524f,52.3810f}, - {85.7143f,38.0952f}, - {85.7143f,28.5714f}, - {80.9524f,14.2857f}, - {71.4286f,4.7619f}, - {57.1428f,0.0000f}, - {42.8571f,0.0000f}, - {28.5714f,4.7619f}, - {23.8095f,9.5238f}, - {19.0476f,19.0476f} -}; - -static const GLUTStrokeStrip ch53st[] = -{ - {17,ch53st0} -}; - -static const GLUTStrokeChar ch53 = {104.7619f,1,ch53st}; - -/* char: 0x36 */ - -static const GLUTStrokeVertex ch54st0[] = -{ - {78.5714f,85.7143f}, - {73.8096f,95.2381f}, - {59.5238f,100.0000f}, - {50.0000f,100.0000f}, - {35.7143f,95.2381f}, - {26.1905f,80.9524f}, - {21.4286f,57.1429f}, - {21.4286f,33.3333f}, - {26.1905f,14.2857f}, - {35.7143f,4.7619f}, - {50.0000f,0.0000f}, - {54.7619f,0.0000f}, - {69.0476f,4.7619f}, - {78.5714f,14.2857f}, - {83.3334f,28.5714f}, - {83.3334f,33.3333f}, - {78.5714f,47.6190f}, - {69.0476f,57.1429f}, - {54.7619f,61.9048f}, - {50.0000f,61.9048f}, - {35.7143f,57.1429f}, - {26.1905f,47.6190f}, - {21.4286f,33.3333f} -}; - -static const GLUTStrokeStrip ch54st[] = -{ - {23,ch54st0} -}; - -static const GLUTStrokeChar ch54 = {104.7619f,1,ch54st}; - -/* char: 0x37 */ - -static const GLUTStrokeVertex ch55st0[] = -{ - {85.7143f,100.0000f}, - {38.0952f,0.0000f} -}; - -static const GLUTStrokeVertex ch55st1[] = -{ - {19.0476f,100.0000f}, - {85.7143f,100.0000f} -}; - -static const GLUTStrokeStrip ch55st[] = -{ - {2,ch55st0}, - {2,ch55st1} -}; - -static const GLUTStrokeChar ch55 = {104.7619f,2,ch55st}; - -/* char: 0x38 */ - -static const GLUTStrokeVertex ch56st0[] = -{ - {42.8571f,100.0000f}, - {28.5714f,95.2381f}, - {23.8095f,85.7143f}, - {23.8095f,76.1905f}, - {28.5714f,66.6667f}, - {38.0952f,61.9048f}, - {57.1428f,57.1429f}, - {71.4286f,52.3810f}, - {80.9524f,42.8571f}, - {85.7143f,33.3333f}, - {85.7143f,19.0476f}, - {80.9524f,9.5238f}, - {76.1905f,4.7619f}, - {61.9047f,0.0000f}, - {42.8571f,0.0000f}, - {28.5714f,4.7619f}, - {23.8095f,9.5238f}, - {19.0476f,19.0476f}, - {19.0476f,33.3333f}, - {23.8095f,42.8571f}, - {33.3333f,52.3810f}, - {47.6190f,57.1429f}, - {66.6666f,61.9048f}, - {76.1905f,66.6667f}, - {80.9524f,76.1905f}, - {80.9524f,85.7143f}, - {76.1905f,95.2381f}, - {61.9047f,100.0000f}, - {42.8571f,100.0000f} -}; - -static const GLUTStrokeStrip ch56st[] = -{ - {29,ch56st0} -}; - -static const GLUTStrokeChar ch56 = {104.7619f,1,ch56st}; - -/* char: 0x39 */ - -static const GLUTStrokeVertex ch57st0[] = -{ - {83.3334f,66.6667f}, - {78.5714f,52.3810f}, - {69.0476f,42.8571f}, - {54.7619f,38.0952f}, - {50.0000f,38.0952f}, - {35.7143f,42.8571f}, - {26.1905f,52.3810f}, - {21.4286f,66.6667f}, - {21.4286f,71.4286f}, - {26.1905f,85.7143f}, - {35.7143f,95.2381f}, - {50.0000f,100.0000f}, - {54.7619f,100.0000f}, - {69.0476f,95.2381f}, - {78.5714f,85.7143f}, - {83.3334f,66.6667f}, - {83.3334f,42.8571f}, - {78.5714f,19.0476f}, - {69.0476f,4.7619f}, - {54.7619f,0.0000f}, - {45.2381f,0.0000f}, - {30.9524f,4.7619f}, - {26.1905f,14.2857f} -}; - -static const GLUTStrokeStrip ch57st[] = -{ - {23,ch57st0} -}; - -static const GLUTStrokeChar ch57 = {104.7619f,1,ch57st}; - -/* char: 0x3a */ - -static const GLUTStrokeVertex ch58st0[] = -{ - {52.3810f,66.6667f}, - {47.6191f,61.9048f}, - {52.3810f,57.1429f}, - {57.1429f,61.9048f}, - {52.3810f,66.6667f} -}; - -static const GLUTStrokeVertex ch58st1[] = -{ - {52.3810f,9.5238f}, - {47.6191f,4.7619f}, - {52.3810f,0.0000f}, - {57.1429f,4.7619f}, - {52.3810f,9.5238f} -}; - -static const GLUTStrokeStrip ch58st[] = -{ - {5,ch58st0}, - {5,ch58st1} -}; - -static const GLUTStrokeChar ch58 = {104.7619f,2,ch58st}; - -/* char: 0x3b */ - -static const GLUTStrokeVertex ch59st0[] = -{ - {52.3810f,66.6667f}, - {47.6191f,61.9048f}, - {52.3810f,57.1429f}, - {57.1429f,61.9048f}, - {52.3810f,66.6667f} -}; - -static const GLUTStrokeVertex ch59st1[] = -{ - {57.1429f,4.7619f}, - {52.3810f,0.0000f}, - {47.6191f,4.7619f}, - {52.3810f,9.5238f}, - {57.1429f,4.7619f}, - {57.1429f,-4.7619f}, - {52.3810f,-14.2857f}, - {47.6191f,-19.0476f} -}; - -static const GLUTStrokeStrip ch59st[] = -{ - {5,ch59st0}, - {8,ch59st1} -}; - -static const GLUTStrokeChar ch59 = {104.7619f,2,ch59st}; - -/* char: 0x3c */ - -static const GLUTStrokeVertex ch60st0[] = -{ - {90.4762f,85.7143f}, - {14.2857f,42.8571f}, - {90.4762f,0.0000f} -}; - -static const GLUTStrokeStrip ch60st[] = -{ - {3,ch60st0} -}; - -static const GLUTStrokeChar ch60 = {104.7619f,1,ch60st}; - -/* char: 0x3d */ - -static const GLUTStrokeVertex ch61st0[] = -{ - {9.5238f,57.1429f}, - {95.2381f,57.1429f} -}; - -static const GLUTStrokeVertex ch61st1[] = -{ - {9.5238f,28.5714f}, - {95.2381f,28.5714f} -}; - -static const GLUTStrokeStrip ch61st[] = -{ - {2,ch61st0}, - {2,ch61st1} -}; - -static const GLUTStrokeChar ch61 = {104.7619f,2,ch61st}; - -/* char: 0x3e */ - -static const GLUTStrokeVertex ch62st0[] = -{ - {14.2857f,85.7143f}, - {90.4762f,42.8571f}, - {14.2857f,0.0000f} -}; - -static const GLUTStrokeStrip ch62st[] = -{ - {3,ch62st0} -}; - -static const GLUTStrokeChar ch62 = {104.7619f,1,ch62st}; - -/* char: 0x3f */ - -static const GLUTStrokeVertex ch63st0[] = -{ - {23.8095f,76.1905f}, - {23.8095f,80.9524f}, - {28.5714f,90.4762f}, - {33.3333f,95.2381f}, - {42.8571f,100.0000f}, - {61.9047f,100.0000f}, - {71.4285f,95.2381f}, - {76.1905f,90.4762f}, - {80.9524f,80.9524f}, - {80.9524f,71.4286f}, - {76.1905f,61.9048f}, - {71.4285f,57.1429f}, - {52.3809f,47.6190f}, - {52.3809f,33.3333f} -}; - -static const GLUTStrokeVertex ch63st1[] = -{ - {52.3809f,9.5238f}, - {47.6190f,4.7619f}, - {52.3809f,0.0000f}, - {57.1428f,4.7619f}, - {52.3809f,9.5238f} -}; - -static const GLUTStrokeStrip ch63st[] = -{ - {14,ch63st0}, - {5,ch63st1} -}; - -static const GLUTStrokeChar ch63 = {104.7619f,2,ch63st}; - -/* char: 0x40 */ - -static const GLUTStrokeVertex ch64st0[] = -{ - {64.2857f,52.3810f}, - {54.7619f,57.1429f}, - {45.2381f,57.1429f}, - {40.4762f,47.6190f}, - {40.4762f,42.8571f}, - {45.2381f,33.3333f}, - {54.7619f,33.3333f}, - {64.2857f,38.0952f} -}; - -static const GLUTStrokeVertex ch64st1[] = -{ - {64.2857f,57.1429f}, - {64.2857f,38.0952f}, - {69.0476f,33.3333f}, - {78.5714f,33.3333f}, - {83.3334f,42.8571f}, - {83.3334f,47.6190f}, - {78.5714f,61.9048f}, - {69.0476f,71.4286f}, - {54.7619f,76.1905f}, - {50.0000f,76.1905f}, - {35.7143f,71.4286f}, - {26.1905f,61.9048f}, - {21.4286f,47.6190f}, - {21.4286f,42.8571f}, - {26.1905f,28.5714f}, - {35.7143f,19.0476f}, - {50.0000f,14.2857f}, - {54.7619f,14.2857f}, - {69.0476f,19.0476f} -}; - -static const GLUTStrokeStrip ch64st[] = -{ - {8,ch64st0}, - {19,ch64st1} -}; - -static const GLUTStrokeChar ch64 = {104.7619f,2,ch64st}; - -/* char: 0x41 */ - -static const GLUTStrokeVertex ch65st0[] = -{ - {52.3809f,100.0000f}, - {14.2857f,0.0000f} -}; - -static const GLUTStrokeVertex ch65st1[] = -{ - {52.3809f,100.0000f}, - {90.4762f,0.0000f} -}; - -static const GLUTStrokeVertex ch65st2[] = -{ - {28.5714f,33.3333f}, - {76.1905f,33.3333f} -}; - -static const GLUTStrokeStrip ch65st[] = -{ - {2,ch65st0}, - {2,ch65st1}, - {2,ch65st2} -}; - -static const GLUTStrokeChar ch65 = {104.7619f,3,ch65st}; - -/* char: 0x42 */ - -static const GLUTStrokeVertex ch66st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch66st1[] = -{ - {19.0476f,100.0000f}, - {61.9047f,100.0000f}, - {76.1905f,95.2381f}, - {80.9524f,90.4762f}, - {85.7143f,80.9524f}, - {85.7143f,71.4286f}, - {80.9524f,61.9048f}, - {76.1905f,57.1429f}, - {61.9047f,52.3810f} -}; - -static const GLUTStrokeVertex ch66st2[] = -{ - {19.0476f,52.3810f}, - {61.9047f,52.3810f}, - {76.1905f,47.6190f}, - {80.9524f,42.8571f}, - {85.7143f,33.3333f}, - {85.7143f,19.0476f}, - {80.9524f,9.5238f}, - {76.1905f,4.7619f}, - {61.9047f,0.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeStrip ch66st[] = -{ - {2,ch66st0}, - {9,ch66st1}, - {10,ch66st2} -}; - -static const GLUTStrokeChar ch66 = {104.7619f,3,ch66st}; - -/* char: 0x43 */ - -static const GLUTStrokeVertex ch67st0[] = -{ - {88.0952f,76.1905f}, - {83.3334f,85.7143f}, - {73.8096f,95.2381f}, - {64.2857f,100.0000f}, - {45.2381f,100.0000f}, - {35.7143f,95.2381f}, - {26.1905f,85.7143f}, - {21.4286f,76.1905f}, - {16.6667f,61.9048f}, - {16.6667f,38.0952f}, - {21.4286f,23.8095f}, - {26.1905f,14.2857f}, - {35.7143f,4.7619f}, - {45.2381f,0.0000f}, - {64.2857f,0.0000f}, - {73.8096f,4.7619f}, - {83.3334f,14.2857f}, - {88.0952f,23.8095f} -}; - -static const GLUTStrokeStrip ch67st[] = -{ - {18,ch67st0} -}; - -static const GLUTStrokeChar ch67 = {104.7619f,1,ch67st}; - -/* char: 0x44 */ - -static const GLUTStrokeVertex ch68st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch68st1[] = -{ - {19.0476f,100.0000f}, - {52.3809f,100.0000f}, - {66.6666f,95.2381f}, - {76.1905f,85.7143f}, - {80.9524f,76.1905f}, - {85.7143f,61.9048f}, - {85.7143f,38.0952f}, - {80.9524f,23.8095f}, - {76.1905f,14.2857f}, - {66.6666f,4.7619f}, - {52.3809f,0.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeStrip ch68st[] = -{ - {2,ch68st0}, - {12,ch68st1} -}; - -static const GLUTStrokeChar ch68 = {104.7619f,2,ch68st}; - -/* char: 0x45 */ - -static const GLUTStrokeVertex ch69st0[] = -{ - {21.4286f,100.0000f}, - {21.4286f,0.0000f} -}; - -static const GLUTStrokeVertex ch69st1[] = -{ - {21.4286f,100.0000f}, - {83.3334f,100.0000f} -}; - -static const GLUTStrokeVertex ch69st2[] = -{ - {21.4286f,52.3810f}, - {59.5238f,52.3810f} -}; - -static const GLUTStrokeVertex ch69st3[] = -{ - {21.4286f,0.0000f}, - {83.3334f,0.0000f} -}; - -static const GLUTStrokeStrip ch69st[] = -{ - {2,ch69st0}, - {2,ch69st1}, - {2,ch69st2}, - {2,ch69st3} -}; - -static const GLUTStrokeChar ch69 = {104.7619f,4,ch69st}; - -/* char: 0x46 */ - -static const GLUTStrokeVertex ch70st0[] = -{ - {21.4286f,100.0000f}, - {21.4286f,0.0000f} -}; - -static const GLUTStrokeVertex ch70st1[] = -{ - {21.4286f,100.0000f}, - {83.3334f,100.0000f} -}; - -static const GLUTStrokeVertex ch70st2[] = -{ - {21.4286f,52.3810f}, - {59.5238f,52.3810f} -}; - -static const GLUTStrokeStrip ch70st[] = -{ - {2,ch70st0}, - {2,ch70st1}, - {2,ch70st2} -}; - -static const GLUTStrokeChar ch70 = {104.7619f,3,ch70st}; - -/* char: 0x47 */ - -static const GLUTStrokeVertex ch71st0[] = -{ - {88.0952f,76.1905f}, - {83.3334f,85.7143f}, - {73.8096f,95.2381f}, - {64.2857f,100.0000f}, - {45.2381f,100.0000f}, - {35.7143f,95.2381f}, - {26.1905f,85.7143f}, - {21.4286f,76.1905f}, - {16.6667f,61.9048f}, - {16.6667f,38.0952f}, - {21.4286f,23.8095f}, - {26.1905f,14.2857f}, - {35.7143f,4.7619f}, - {45.2381f,0.0000f}, - {64.2857f,0.0000f}, - {73.8096f,4.7619f}, - {83.3334f,14.2857f}, - {88.0952f,23.8095f}, - {88.0952f,38.0952f} -}; - -static const GLUTStrokeVertex ch71st1[] = -{ - {64.2857f,38.0952f}, - {88.0952f,38.0952f} -}; - -static const GLUTStrokeStrip ch71st[] = -{ - {19,ch71st0}, - {2,ch71st1} -}; - -static const GLUTStrokeChar ch71 = {104.7619f,2,ch71st}; - -/* char: 0x48 */ - -static const GLUTStrokeVertex ch72st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch72st1[] = -{ - {85.7143f,100.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeVertex ch72st2[] = -{ - {19.0476f,52.3810f}, - {85.7143f,52.3810f} -}; - -static const GLUTStrokeStrip ch72st[] = -{ - {2,ch72st0}, - {2,ch72st1}, - {2,ch72st2} -}; - -static const GLUTStrokeChar ch72 = {104.7619f,3,ch72st}; - -/* char: 0x49 */ - -static const GLUTStrokeVertex ch73st0[] = -{ - {52.3810f,100.0000f}, - {52.3810f,0.0000f} -}; - -static const GLUTStrokeStrip ch73st[] = -{ - {2,ch73st0} -}; - -static const GLUTStrokeChar ch73 = {104.7619f,1,ch73st}; - -/* char: 0x4a */ - -static const GLUTStrokeVertex ch74st0[] = -{ - {76.1905f,100.0000f}, - {76.1905f,23.8095f}, - {71.4286f,9.5238f}, - {66.6667f,4.7619f}, - {57.1429f,0.0000f}, - {47.6191f,0.0000f}, - {38.0953f,4.7619f}, - {33.3334f,9.5238f}, - {28.5715f,23.8095f}, - {28.5715f,33.3333f} -}; - -static const GLUTStrokeStrip ch74st[] = -{ - {10,ch74st0} -}; - -static const GLUTStrokeChar ch74 = {104.7619f,1,ch74st}; - -/* char: 0x4b */ - -static const GLUTStrokeVertex ch75st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch75st1[] = -{ - {85.7143f,100.0000f}, - {19.0476f,33.3333f} -}; - -static const GLUTStrokeVertex ch75st2[] = -{ - {42.8571f,57.1429f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeStrip ch75st[] = -{ - {2,ch75st0}, - {2,ch75st1}, - {2,ch75st2} -}; - -static const GLUTStrokeChar ch75 = {104.7619f,3,ch75st}; - -/* char: 0x4c */ - -static const GLUTStrokeVertex ch76st0[] = -{ - {23.8095f,100.0000f}, - {23.8095f,0.0000f} -}; - -static const GLUTStrokeVertex ch76st1[] = -{ - {23.8095f,0.0000f}, - {80.9524f,0.0000f} -}; - -static const GLUTStrokeStrip ch76st[] = -{ - {2,ch76st0}, - {2,ch76st1} -}; - -static const GLUTStrokeChar ch76 = {104.7619f,2,ch76st}; - -/* char: 0x4d */ - -static const GLUTStrokeVertex ch77st0[] = -{ - {14.2857f,100.0000f}, - {14.2857f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st1[] = -{ - {14.2857f,100.0000f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st2[] = -{ - {90.4762f,100.0000f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st3[] = -{ - {90.4762f,100.0000f}, - {90.4762f,0.0000f} -}; - -static const GLUTStrokeStrip ch77st[] = -{ - {2,ch77st0}, - {2,ch77st1}, - {2,ch77st2}, - {2,ch77st3} -}; - -static const GLUTStrokeChar ch77 = {104.7619f,4,ch77st}; - -/* char: 0x4e */ - -static const GLUTStrokeVertex ch78st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch78st1[] = -{ - {19.0476f,100.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeVertex ch78st2[] = -{ - {85.7143f,100.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeStrip ch78st[] = -{ - {2,ch78st0}, - {2,ch78st1}, - {2,ch78st2} -}; - -static const GLUTStrokeChar ch78 = {104.7619f,3,ch78st}; - -/* char: 0x4f */ - -static const GLUTStrokeVertex ch79st0[] = -{ - {42.8571f,100.0000f}, - {33.3333f,95.2381f}, - {23.8095f,85.7143f}, - {19.0476f,76.1905f}, - {14.2857f,61.9048f}, - {14.2857f,38.0952f}, - {19.0476f,23.8095f}, - {23.8095f,14.2857f}, - {33.3333f,4.7619f}, - {42.8571f,0.0000f}, - {61.9047f,0.0000f}, - {71.4286f,4.7619f}, - {80.9524f,14.2857f}, - {85.7143f,23.8095f}, - {90.4762f,38.0952f}, - {90.4762f,61.9048f}, - {85.7143f,76.1905f}, - {80.9524f,85.7143f}, - {71.4286f,95.2381f}, - {61.9047f,100.0000f}, - {42.8571f,100.0000f} -}; - -static const GLUTStrokeStrip ch79st[] = -{ - {21,ch79st0} -}; - -static const GLUTStrokeChar ch79 = {104.7619f,1,ch79st}; - -/* char: 0x50 */ - -static const GLUTStrokeVertex ch80st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch80st1[] = -{ - {19.0476f,100.0000f}, - {61.9047f,100.0000f}, - {76.1905f,95.2381f}, - {80.9524f,90.4762f}, - {85.7143f,80.9524f}, - {85.7143f,66.6667f}, - {80.9524f,57.1429f}, - {76.1905f,52.3810f}, - {61.9047f,47.6190f}, - {19.0476f,47.6190f} -}; - -static const GLUTStrokeStrip ch80st[] = -{ - {2,ch80st0}, - {10,ch80st1} -}; - -static const GLUTStrokeChar ch80 = {104.7619f,2,ch80st}; - -/* char: 0x51 */ - -static const GLUTStrokeVertex ch81st0[] = -{ - {42.8571f,100.0000f}, - {33.3333f,95.2381f}, - {23.8095f,85.7143f}, - {19.0476f,76.1905f}, - {14.2857f,61.9048f}, - {14.2857f,38.0952f}, - {19.0476f,23.8095f}, - {23.8095f,14.2857f}, - {33.3333f,4.7619f}, - {42.8571f,0.0000f}, - {61.9047f,0.0000f}, - {71.4286f,4.7619f}, - {80.9524f,14.2857f}, - {85.7143f,23.8095f}, - {90.4762f,38.0952f}, - {90.4762f,61.9048f}, - {85.7143f,76.1905f}, - {80.9524f,85.7143f}, - {71.4286f,95.2381f}, - {61.9047f,100.0000f}, - {42.8571f,100.0000f} -}; - -static const GLUTStrokeVertex ch81st1[] = -{ - {57.1428f,19.0476f}, - {85.7143f,-9.5238f} -}; - -static const GLUTStrokeStrip ch81st[] = -{ - {21,ch81st0}, - {2,ch81st1} -}; - -static const GLUTStrokeChar ch81 = {104.7619f,2,ch81st}; - -/* char: 0x52 */ - -static const GLUTStrokeVertex ch82st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch82st1[] = -{ - {19.0476f,100.0000f}, - {61.9047f,100.0000f}, - {76.1905f,95.2381f}, - {80.9524f,90.4762f}, - {85.7143f,80.9524f}, - {85.7143f,71.4286f}, - {80.9524f,61.9048f}, - {76.1905f,57.1429f}, - {61.9047f,52.3810f}, - {19.0476f,52.3810f} -}; - -static const GLUTStrokeVertex ch82st2[] = -{ - {52.3809f,52.3810f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeStrip ch82st[] = -{ - {2,ch82st0}, - {10,ch82st1}, - {2,ch82st2} -}; - -static const GLUTStrokeChar ch82 = {104.7619f,3,ch82st}; - -/* char: 0x53 */ - -static const GLUTStrokeVertex ch83st0[] = -{ - {85.7143f,85.7143f}, - {76.1905f,95.2381f}, - {61.9047f,100.0000f}, - {42.8571f,100.0000f}, - {28.5714f,95.2381f}, - {19.0476f,85.7143f}, - {19.0476f,76.1905f}, - {23.8095f,66.6667f}, - {28.5714f,61.9048f}, - {38.0952f,57.1429f}, - {66.6666f,47.6190f}, - {76.1905f,42.8571f}, - {80.9524f,38.0952f}, - {85.7143f,28.5714f}, - {85.7143f,14.2857f}, - {76.1905f,4.7619f}, - {61.9047f,0.0000f}, - {42.8571f,0.0000f}, - {28.5714f,4.7619f}, - {19.0476f,14.2857f} -}; - -static const GLUTStrokeStrip ch83st[] = -{ - {20,ch83st0} -}; - -static const GLUTStrokeChar ch83 = {104.7619f,1,ch83st}; - -/* char: 0x54 */ - -static const GLUTStrokeVertex ch84st0[] = -{ - {52.3809f,100.0000f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch84st1[] = -{ - {19.0476f,100.0000f}, - {85.7143f,100.0000f} -}; - -static const GLUTStrokeStrip ch84st[] = -{ - {2,ch84st0}, - {2,ch84st1} -}; - -static const GLUTStrokeChar ch84 = {104.7619f,2,ch84st}; - -/* char: 0x55 */ - -static const GLUTStrokeVertex ch85st0[] = -{ - {19.0476f,100.0000f}, - {19.0476f,28.5714f}, - {23.8095f,14.2857f}, - {33.3333f,4.7619f}, - {47.6190f,0.0000f}, - {57.1428f,0.0000f}, - {71.4286f,4.7619f}, - {80.9524f,14.2857f}, - {85.7143f,28.5714f}, - {85.7143f,100.0000f} -}; - -static const GLUTStrokeStrip ch85st[] = -{ - {10,ch85st0} -}; - -static const GLUTStrokeChar ch85 = {104.7619f,1,ch85st}; - -/* char: 0x56 */ - -static const GLUTStrokeVertex ch86st0[] = -{ - {14.2857f,100.0000f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch86st1[] = -{ - {90.4762f,100.0000f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeStrip ch86st[] = -{ - {2,ch86st0}, - {2,ch86st1} -}; - -static const GLUTStrokeChar ch86 = {104.7619f,2,ch86st}; - -/* char: 0x57 */ - -static const GLUTStrokeVertex ch87st0[] = -{ - {4.7619f,100.0000f}, - {28.5714f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st1[] = -{ - {52.3809f,100.0000f}, - {28.5714f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st2[] = -{ - {52.3809f,100.0000f}, - {76.1905f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st3[] = -{ - {100.0000f,100.0000f}, - {76.1905f,0.0000f} -}; - -static const GLUTStrokeStrip ch87st[] = -{ - {2,ch87st0}, - {2,ch87st1}, - {2,ch87st2}, - {2,ch87st3} -}; - -static const GLUTStrokeChar ch87 = {104.7619f,4,ch87st}; - -/* char: 0x58 */ - -static const GLUTStrokeVertex ch88st0[] = -{ - {19.0476f,100.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeVertex ch88st1[] = -{ - {85.7143f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeStrip ch88st[] = -{ - {2,ch88st0}, - {2,ch88st1} -}; - -static const GLUTStrokeChar ch88 = {104.7619f,2,ch88st}; - -/* char: 0x59 */ - -static const GLUTStrokeVertex ch89st0[] = -{ - {14.2857f,100.0000f}, - {52.3809f,52.3810f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch89st1[] = -{ - {90.4762f,100.0000f}, - {52.3809f,52.3810f} -}; - -static const GLUTStrokeStrip ch89st[] = -{ - {3,ch89st0}, - {2,ch89st1} -}; - -static const GLUTStrokeChar ch89 = {104.7619f,2,ch89st}; - -/* char: 0x5a */ - -static const GLUTStrokeVertex ch90st0[] = -{ - {85.7143f,100.0000f}, - {19.0476f,0.0000f} -}; - -static const GLUTStrokeVertex ch90st1[] = -{ - {19.0476f,100.0000f}, - {85.7143f,100.0000f} -}; - -static const GLUTStrokeVertex ch90st2[] = -{ - {19.0476f,0.0000f}, - {85.7143f,0.0000f} -}; - -static const GLUTStrokeStrip ch90st[] = -{ - {2,ch90st0}, - {2,ch90st1}, - {2,ch90st2} -}; - -static const GLUTStrokeChar ch90 = {104.7619f,3,ch90st}; - -/* char: 0x5b */ - -static const GLUTStrokeVertex ch91st0[] = -{ - {35.7143f,119.0476f}, - {35.7143f,-33.3333f} -}; - -static const GLUTStrokeVertex ch91st1[] = -{ - {40.4762f,119.0476f}, - {40.4762f,-33.3333f} -}; - -static const GLUTStrokeVertex ch91st2[] = -{ - {35.7143f,119.0476f}, - {69.0476f,119.0476f} -}; - -static const GLUTStrokeVertex ch91st3[] = -{ - {35.7143f,-33.3333f}, - {69.0476f,-33.3333f} -}; - -static const GLUTStrokeStrip ch91st[] = -{ - {2,ch91st0}, - {2,ch91st1}, - {2,ch91st2}, - {2,ch91st3} -}; - -static const GLUTStrokeChar ch91 = {104.7619f,4,ch91st}; - -/* char: 0x5c */ - -static const GLUTStrokeVertex ch92st0[] = -{ - {19.0476f,100.0000f}, - {85.7143f,-14.2857f} -}; - -static const GLUTStrokeStrip ch92st[] = -{ - {2,ch92st0} -}; - -static const GLUTStrokeChar ch92 = {104.7619f,1,ch92st}; - -/* char: 0x5d */ - -static const GLUTStrokeVertex ch93st0[] = -{ - {64.2857f,119.0476f}, - {64.2857f,-33.3333f} -}; - -static const GLUTStrokeVertex ch93st1[] = -{ - {69.0476f,119.0476f}, - {69.0476f,-33.3333f} -}; - -static const GLUTStrokeVertex ch93st2[] = -{ - {35.7143f,119.0476f}, - {69.0476f,119.0476f} -}; - -static const GLUTStrokeVertex ch93st3[] = -{ - {35.7143f,-33.3333f}, - {69.0476f,-33.3333f} -}; - -static const GLUTStrokeStrip ch93st[] = -{ - {2,ch93st0}, - {2,ch93st1}, - {2,ch93st2}, - {2,ch93st3} -}; - -static const GLUTStrokeChar ch93 = {104.7619f,4,ch93st}; - -/* char: 0x5e */ - -static const GLUTStrokeVertex ch94st0[] = -{ - {52.3809f,109.5238f}, - {14.2857f,42.8571f} -}; - -static const GLUTStrokeVertex ch94st1[] = -{ - {52.3809f,109.5238f}, - {90.4762f,42.8571f} -}; - -static const GLUTStrokeStrip ch94st[] = -{ - {2,ch94st0}, - {2,ch94st1} -}; - -static const GLUTStrokeChar ch94 = {104.7619f,2,ch94st}; - -/* char: 0x5f */ - -static const GLUTStrokeVertex ch95st0[] = -{ - {0.0000f,-33.3333f}, - {104.7619f,-33.3333f}, - {104.7619f,-28.5714f}, - {0.0000f,-28.5714f}, - {0.0000f,-33.3333f} -}; - -static const GLUTStrokeStrip ch95st[] = -{ - {5,ch95st0} -}; - -static const GLUTStrokeChar ch95 = {104.7619f,1,ch95st}; - -/* char: 0x60 */ - -static const GLUTStrokeVertex ch96st0[] = -{ - {42.8572f,100.0000f}, - {66.6667f,71.4286f} -}; - -static const GLUTStrokeVertex ch96st1[] = -{ - {42.8572f,100.0000f}, - {38.0953f,95.2381f}, - {66.6667f,71.4286f} -}; - -static const GLUTStrokeStrip ch96st[] = -{ - {2,ch96st0}, - {3,ch96st1} -}; - -static const GLUTStrokeChar ch96 = {104.7619f,2,ch96st}; - -/* char: 0x61 */ - -static const GLUTStrokeVertex ch97st0[] = -{ - {80.9524f,66.6667f}, - {80.9524f,0.0000f} -}; - -static const GLUTStrokeVertex ch97st1[] = -{ - {80.9524f,52.3810f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch97st[] = -{ - {2,ch97st0}, - {14,ch97st1} -}; - -static const GLUTStrokeChar ch97 = {104.7619f,2,ch97st}; - -/* char: 0x62 */ - -static const GLUTStrokeVertex ch98st0[] = -{ - {23.8095f,100.0000f}, - {23.8095f,0.0000f} -}; - -static const GLUTStrokeVertex ch98st1[] = -{ - {23.8095f,52.3810f}, - {33.3333f,61.9048f}, - {42.8571f,66.6667f}, - {57.1428f,66.6667f}, - {66.6666f,61.9048f}, - {76.1905f,52.3810f}, - {80.9524f,38.0952f}, - {80.9524f,28.5714f}, - {76.1905f,14.2857f}, - {66.6666f,4.7619f}, - {57.1428f,0.0000f}, - {42.8571f,0.0000f}, - {33.3333f,4.7619f}, - {23.8095f,14.2857f} -}; - -static const GLUTStrokeStrip ch98st[] = -{ - {2,ch98st0}, - {14,ch98st1} -}; - -static const GLUTStrokeChar ch98 = {104.7619f,2,ch98st}; - -/* char: 0x63 */ - -static const GLUTStrokeVertex ch99st0[] = -{ - {80.9524f,52.3810f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch99st[] = -{ - {14,ch99st0} -}; - -static const GLUTStrokeChar ch99 = {104.7619f,1,ch99st}; - -/* char: 0x64 */ - -static const GLUTStrokeVertex ch100st0[] = -{ - {80.9524f,100.0000f}, - {80.9524f,0.0000f} -}; - -static const GLUTStrokeVertex ch100st1[] = -{ - {80.9524f,52.3810f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch100st[] = -{ - {2,ch100st0}, - {14,ch100st1} -}; - -static const GLUTStrokeChar ch100 = {104.7619f,2,ch100st}; - -/* char: 0x65 */ - -static const GLUTStrokeVertex ch101st0[] = -{ - {23.8095f,38.0952f}, - {80.9524f,38.0952f}, - {80.9524f,47.6190f}, - {76.1905f,57.1429f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch101st[] = -{ - {17,ch101st0} -}; - -static const GLUTStrokeChar ch101 = {104.7619f,1,ch101st}; - -/* char: 0x66 */ - -static const GLUTStrokeVertex ch102st0[] = -{ - {71.4286f,100.0000f}, - {61.9048f,100.0000f}, - {52.3810f,95.2381f}, - {47.6191f,80.9524f}, - {47.6191f,0.0000f} -}; - -static const GLUTStrokeVertex ch102st1[] = -{ - {33.3334f,66.6667f}, - {66.6667f,66.6667f} -}; - -static const GLUTStrokeStrip ch102st[] = -{ - {5,ch102st0}, - {2,ch102st1} -}; - -static const GLUTStrokeChar ch102 = {104.7619f,2,ch102st}; - -/* char: 0x67 */ - -static const GLUTStrokeVertex ch103st0[] = -{ - {80.9524f,66.6667f}, - {80.9524f,-9.5238f}, - {76.1905f,-23.8095f}, - {71.4285f,-28.5714f}, - {61.9047f,-33.3333f}, - {47.6190f,-33.3333f}, - {38.0952f,-28.5714f} -}; - -static const GLUTStrokeVertex ch103st1[] = -{ - {80.9524f,52.3810f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch103st[] = -{ - {7,ch103st0}, - {14,ch103st1} -}; - -static const GLUTStrokeChar ch103 = {104.7619f,2,ch103st}; - -/* char: 0x68 */ - -static const GLUTStrokeVertex ch104st0[] = -{ - {26.1905f,100.0000f}, - {26.1905f,0.0000f} -}; - -static const GLUTStrokeVertex ch104st1[] = -{ - {26.1905f,47.6190f}, - {40.4762f,61.9048f}, - {50.0000f,66.6667f}, - {64.2857f,66.6667f}, - {73.8095f,61.9048f}, - {78.5715f,47.6190f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeStrip ch104st[] = -{ - {2,ch104st0}, - {7,ch104st1} -}; - -static const GLUTStrokeChar ch104 = {104.7619f,2,ch104st}; - -/* char: 0x69 */ - -static const GLUTStrokeVertex ch105st0[] = -{ - {47.6191f,100.0000f}, - {52.3810f,95.2381f}, - {57.1429f,100.0000f}, - {52.3810f,104.7619f}, - {47.6191f,100.0000f} -}; - -static const GLUTStrokeVertex ch105st1[] = -{ - {52.3810f,66.6667f}, - {52.3810f,0.0000f} -}; - -static const GLUTStrokeStrip ch105st[] = -{ - {5,ch105st0}, - {2,ch105st1} -}; - -static const GLUTStrokeChar ch105 = {104.7619f,2,ch105st}; - -/* char: 0x6a */ - -static const GLUTStrokeVertex ch106st0[] = -{ - {57.1429f,100.0000f}, - {61.9048f,95.2381f}, - {66.6667f,100.0000f}, - {61.9048f,104.7619f}, - {57.1429f,100.0000f} -}; - -static const GLUTStrokeVertex ch106st1[] = -{ - {61.9048f,66.6667f}, - {61.9048f,-14.2857f}, - {57.1429f,-28.5714f}, - {47.6191f,-33.3333f}, - {38.0953f,-33.3333f} -}; - -static const GLUTStrokeStrip ch106st[] = -{ - {5,ch106st0}, - {5,ch106st1} -}; - -static const GLUTStrokeChar ch106 = {104.7619f,2,ch106st}; - -/* char: 0x6b */ - -static const GLUTStrokeVertex ch107st0[] = -{ - {26.1905f,100.0000f}, - {26.1905f,0.0000f} -}; - -static const GLUTStrokeVertex ch107st1[] = -{ - {73.8095f,66.6667f}, - {26.1905f,19.0476f} -}; - -static const GLUTStrokeVertex ch107st2[] = -{ - {45.2381f,38.0952f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeStrip ch107st[] = -{ - {2,ch107st0}, - {2,ch107st1}, - {2,ch107st2} -}; - -static const GLUTStrokeChar ch107 = {104.7619f,3,ch107st}; - -/* char: 0x6c */ - -static const GLUTStrokeVertex ch108st0[] = -{ - {52.3810f,100.0000f}, - {52.3810f,0.0000f} -}; - -static const GLUTStrokeStrip ch108st[] = -{ - {2,ch108st0} -}; - -static const GLUTStrokeChar ch108 = {104.7619f,1,ch108st}; - -/* char: 0x6d */ - -static const GLUTStrokeVertex ch109st0[] = -{ - {0.0000f,66.6667f}, - {0.0000f,0.0000f} -}; - -static const GLUTStrokeVertex ch109st1[] = -{ - {0.0000f,47.6190f}, - {14.2857f,61.9048f}, - {23.8095f,66.6667f}, - {38.0952f,66.6667f}, - {47.6190f,61.9048f}, - {52.3810f,47.6190f}, - {52.3810f,0.0000f} -}; - -static const GLUTStrokeVertex ch109st2[] = -{ - {52.3810f,47.6190f}, - {66.6667f,61.9048f}, - {76.1905f,66.6667f}, - {90.4762f,66.6667f}, - {100.0000f,61.9048f}, - {104.7619f,47.6190f}, - {104.7619f,0.0000f} -}; - -static const GLUTStrokeStrip ch109st[] = -{ - {2,ch109st0}, - {7,ch109st1}, - {7,ch109st2} -}; - -static const GLUTStrokeChar ch109 = {104.7619f,3,ch109st}; - -/* char: 0x6e */ - -static const GLUTStrokeVertex ch110st0[] = -{ - {26.1905f,66.6667f}, - {26.1905f,0.0000f} -}; - -static const GLUTStrokeVertex ch110st1[] = -{ - {26.1905f,47.6190f}, - {40.4762f,61.9048f}, - {50.0000f,66.6667f}, - {64.2857f,66.6667f}, - {73.8095f,61.9048f}, - {78.5715f,47.6190f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeStrip ch110st[] = -{ - {2,ch110st0}, - {7,ch110st1} -}; - -static const GLUTStrokeChar ch110 = {104.7619f,2,ch110st}; - -/* char: 0x6f */ - -static const GLUTStrokeVertex ch111st0[] = -{ - {45.2381f,66.6667f}, - {35.7143f,61.9048f}, - {26.1905f,52.3810f}, - {21.4286f,38.0952f}, - {21.4286f,28.5714f}, - {26.1905f,14.2857f}, - {35.7143f,4.7619f}, - {45.2381f,0.0000f}, - {59.5238f,0.0000f}, - {69.0476f,4.7619f}, - {78.5714f,14.2857f}, - {83.3334f,28.5714f}, - {83.3334f,38.0952f}, - {78.5714f,52.3810f}, - {69.0476f,61.9048f}, - {59.5238f,66.6667f}, - {45.2381f,66.6667f} -}; - -static const GLUTStrokeStrip ch111st[] = -{ - {17,ch111st0} -}; - -static const GLUTStrokeChar ch111 = {104.7619f,1,ch111st}; - -/* char: 0x70 */ - -static const GLUTStrokeVertex ch112st0[] = -{ - {23.8095f,66.6667f}, - {23.8095f,-33.3333f} -}; - -static const GLUTStrokeVertex ch112st1[] = -{ - {23.8095f,52.3810f}, - {33.3333f,61.9048f}, - {42.8571f,66.6667f}, - {57.1428f,66.6667f}, - {66.6666f,61.9048f}, - {76.1905f,52.3810f}, - {80.9524f,38.0952f}, - {80.9524f,28.5714f}, - {76.1905f,14.2857f}, - {66.6666f,4.7619f}, - {57.1428f,0.0000f}, - {42.8571f,0.0000f}, - {33.3333f,4.7619f}, - {23.8095f,14.2857f} -}; - -static const GLUTStrokeStrip ch112st[] = -{ - {2,ch112st0}, - {14,ch112st1} -}; - -static const GLUTStrokeChar ch112 = {104.7619f,2,ch112st}; - -/* char: 0x71 */ - -static const GLUTStrokeVertex ch113st0[] = -{ - {80.9524f,66.6667f}, - {80.9524f,-33.3333f} -}; - -static const GLUTStrokeVertex ch113st1[] = -{ - {80.9524f,52.3810f}, - {71.4285f,61.9048f}, - {61.9047f,66.6667f}, - {47.6190f,66.6667f}, - {38.0952f,61.9048f}, - {28.5714f,52.3810f}, - {23.8095f,38.0952f}, - {23.8095f,28.5714f}, - {28.5714f,14.2857f}, - {38.0952f,4.7619f}, - {47.6190f,0.0000f}, - {61.9047f,0.0000f}, - {71.4285f,4.7619f}, - {80.9524f,14.2857f} -}; - -static const GLUTStrokeStrip ch113st[] = -{ - {2,ch113st0}, - {14,ch113st1} -}; - -static const GLUTStrokeChar ch113 = {104.7619f,2,ch113st}; - -/* char: 0x72 */ - -static const GLUTStrokeVertex ch114st0[] = -{ - {33.3334f,66.6667f}, - {33.3334f,0.0000f} -}; - -static const GLUTStrokeVertex ch114st1[] = -{ - {33.3334f,38.0952f}, - {38.0953f,52.3810f}, - {47.6191f,61.9048f}, - {57.1429f,66.6667f}, - {71.4286f,66.6667f} -}; - -static const GLUTStrokeStrip ch114st[] = -{ - {2,ch114st0}, - {5,ch114st1} -}; - -static const GLUTStrokeChar ch114 = {104.7619f,2,ch114st}; - -/* char: 0x73 */ - -static const GLUTStrokeVertex ch115st0[] = -{ - {78.5715f,52.3810f}, - {73.8095f,61.9048f}, - {59.5238f,66.6667f}, - {45.2381f,66.6667f}, - {30.9524f,61.9048f}, - {26.1905f,52.3810f}, - {30.9524f,42.8571f}, - {40.4762f,38.0952f}, - {64.2857f,33.3333f}, - {73.8095f,28.5714f}, - {78.5715f,19.0476f}, - {78.5715f,14.2857f}, - {73.8095f,4.7619f}, - {59.5238f,0.0000f}, - {45.2381f,0.0000f}, - {30.9524f,4.7619f}, - {26.1905f,14.2857f} -}; - -static const GLUTStrokeStrip ch115st[] = -{ - {17,ch115st0} -}; - -static const GLUTStrokeChar ch115 = {104.7619f,1,ch115st}; - -/* char: 0x74 */ - -static const GLUTStrokeVertex ch116st0[] = -{ - {47.6191f,100.0000f}, - {47.6191f,19.0476f}, - {52.3810f,4.7619f}, - {61.9048f,0.0000f}, - {71.4286f,0.0000f} -}; - -static const GLUTStrokeVertex ch116st1[] = -{ - {33.3334f,66.6667f}, - {66.6667f,66.6667f} -}; - -static const GLUTStrokeStrip ch116st[] = -{ - {5,ch116st0}, - {2,ch116st1} -}; - -static const GLUTStrokeChar ch116 = {104.7619f,2,ch116st}; - -/* char: 0x75 */ - -static const GLUTStrokeVertex ch117st0[] = -{ - {26.1905f,66.6667f}, - {26.1905f,19.0476f}, - {30.9524f,4.7619f}, - {40.4762f,0.0000f}, - {54.7619f,0.0000f}, - {64.2857f,4.7619f}, - {78.5715f,19.0476f} -}; - -static const GLUTStrokeVertex ch117st1[] = -{ - {78.5715f,66.6667f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeStrip ch117st[] = -{ - {7,ch117st0}, - {2,ch117st1} -}; - -static const GLUTStrokeChar ch117 = {104.7619f,2,ch117st}; - -/* char: 0x76 */ - -static const GLUTStrokeVertex ch118st0[] = -{ - {23.8095f,66.6667f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeVertex ch118st1[] = -{ - {80.9524f,66.6667f}, - {52.3809f,0.0000f} -}; - -static const GLUTStrokeStrip ch118st[] = -{ - {2,ch118st0}, - {2,ch118st1} -}; - -static const GLUTStrokeChar ch118 = {104.7619f,2,ch118st}; - -/* char: 0x77 */ - -static const GLUTStrokeVertex ch119st0[] = -{ - {14.2857f,66.6667f}, - {33.3333f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st1[] = -{ - {52.3809f,66.6667f}, - {33.3333f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st2[] = -{ - {52.3809f,66.6667f}, - {71.4286f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st3[] = -{ - {90.4762f,66.6667f}, - {71.4286f,0.0000f} -}; - -static const GLUTStrokeStrip ch119st[] = -{ - {2,ch119st0}, - {2,ch119st1}, - {2,ch119st2}, - {2,ch119st3} -}; - -static const GLUTStrokeChar ch119 = {104.7619f,4,ch119st}; - -/* char: 0x78 */ - -static const GLUTStrokeVertex ch120st0[] = -{ - {26.1905f,66.6667f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeVertex ch120st1[] = -{ - {78.5715f,66.6667f}, - {26.1905f,0.0000f} -}; - -static const GLUTStrokeStrip ch120st[] = -{ - {2,ch120st0}, - {2,ch120st1} -}; - -static const GLUTStrokeChar ch120 = {104.7619f,2,ch120st}; - -/* char: 0x79 */ - -static const GLUTStrokeVertex ch121st0[] = -{ - {26.1905f,66.6667f}, - {54.7619f,0.0000f} -}; - -static const GLUTStrokeVertex ch121st1[] = -{ - {83.3334f,66.6667f}, - {54.7619f,0.0000f}, - {45.2381f,-19.0476f}, - {35.7143f,-28.5714f}, - {26.1905f,-33.3333f}, - {21.4286f,-33.3333f} -}; - -static const GLUTStrokeStrip ch121st[] = -{ - {2,ch121st0}, - {6,ch121st1} -}; - -static const GLUTStrokeChar ch121 = {104.7619f,2,ch121st}; - -/* char: 0x7a */ - -static const GLUTStrokeVertex ch122st0[] = -{ - {78.5715f,66.6667f}, - {26.1905f,0.0000f} -}; - -static const GLUTStrokeVertex ch122st1[] = -{ - {26.1905f,66.6667f}, - {78.5715f,66.6667f} -}; - -static const GLUTStrokeVertex ch122st2[] = -{ - {26.1905f,0.0000f}, - {78.5715f,0.0000f} -}; - -static const GLUTStrokeStrip ch122st[] = -{ - {2,ch122st0}, - {2,ch122st1}, - {2,ch122st2} -}; - -static const GLUTStrokeChar ch122 = {104.7619f,3,ch122st}; - -/* char: 0x7b */ - -static const GLUTStrokeVertex ch123st0[] = -{ - {64.2857f,119.0476f}, - {54.7619f,114.2857f}, - {50.0000f,109.5238f}, - {45.2381f,100.0000f}, - {45.2381f,90.4762f}, - {50.0000f,80.9524f}, - {54.7619f,76.1905f}, - {59.5238f,66.6667f}, - {59.5238f,57.1429f}, - {50.0000f,47.6190f} -}; - -static const GLUTStrokeVertex ch123st1[] = -{ - {54.7619f,114.2857f}, - {50.0000f,104.7619f}, - {50.0000f,95.2381f}, - {54.7619f,85.7143f}, - {59.5238f,80.9524f}, - {64.2857f,71.4286f}, - {64.2857f,61.9048f}, - {59.5238f,52.3810f}, - {40.4762f,42.8571f}, - {59.5238f,33.3333f}, - {64.2857f,23.8095f}, - {64.2857f,14.2857f}, - {59.5238f,4.7619f}, - {54.7619f,0.0000f}, - {50.0000f,-9.5238f}, - {50.0000f,-19.0476f}, - {54.7619f,-28.5714f} -}; - -static const GLUTStrokeVertex ch123st2[] = -{ - {50.0000f,38.0952f}, - {59.5238f,28.5714f}, - {59.5238f,19.0476f}, - {54.7619f,9.5238f}, - {50.0000f,4.7619f}, - {45.2381f,-4.7619f}, - {45.2381f,-14.2857f}, - {50.0000f,-23.8095f}, - {54.7619f,-28.5714f}, - {64.2857f,-33.3333f} -}; - -static const GLUTStrokeStrip ch123st[] = -{ - {10,ch123st0}, - {17,ch123st1}, - {10,ch123st2} -}; - -static const GLUTStrokeChar ch123 = {104.7619f,3,ch123st}; - -/* char: 0x7c */ - -static const GLUTStrokeVertex ch124st0[] = -{ - {52.3810f,119.0476f}, - {52.3810f,-33.3333f} -}; - -static const GLUTStrokeStrip ch124st[] = -{ - {2,ch124st0} -}; - -static const GLUTStrokeChar ch124 = {104.7619f,1,ch124st}; - -/* char: 0x7d */ - -static const GLUTStrokeVertex ch125st0[] = -{ - {40.4762f,119.0476f}, - {50.0000f,114.2857f}, - {54.7619f,109.5238f}, - {59.5238f,100.0000f}, - {59.5238f,90.4762f}, - {54.7619f,80.9524f}, - {50.0000f,76.1905f}, - {45.2381f,66.6667f}, - {45.2381f,57.1429f}, - {54.7619f,47.6190f} -}; - -static const GLUTStrokeVertex ch125st1[] = -{ - {50.0000f,114.2857f}, - {54.7619f,104.7619f}, - {54.7619f,95.2381f}, - {50.0000f,85.7143f}, - {45.2381f,80.9524f}, - {40.4762f,71.4286f}, - {40.4762f,61.9048f}, - {45.2381f,52.3810f}, - {64.2857f,42.8571f}, - {45.2381f,33.3333f}, - {40.4762f,23.8095f}, - {40.4762f,14.2857f}, - {45.2381f,4.7619f}, - {50.0000f,0.0000f}, - {54.7619f,-9.5238f}, - {54.7619f,-19.0476f}, - {50.0000f,-28.5714f} -}; - -static const GLUTStrokeVertex ch125st2[] = -{ - {54.7619f,38.0952f}, - {45.2381f,28.5714f}, - {45.2381f,19.0476f}, - {50.0000f,9.5238f}, - {54.7619f,4.7619f}, - {59.5238f,-4.7619f}, - {59.5238f,-14.2857f}, - {54.7619f,-23.8095f}, - {50.0000f,-28.5714f}, - {40.4762f,-33.3333f} -}; - -static const GLUTStrokeStrip ch125st[] = -{ - {10,ch125st0}, - {17,ch125st1}, - {10,ch125st2} -}; - -static const GLUTStrokeChar ch125 = {104.7619f,3,ch125st}; - -/* char: 0x7e */ - -static const GLUTStrokeVertex ch126st0[] = -{ - {9.5238f,28.5714f}, - {9.5238f,38.0952f}, - {14.2857f,52.3810f}, - {23.8095f,57.1429f}, - {33.3333f,57.1429f}, - {42.8571f,52.3810f}, - {61.9048f,38.0952f}, - {71.4286f,33.3333f}, - {80.9524f,33.3333f}, - {90.4762f,38.0952f}, - {95.2381f,47.6190f} -}; - -static const GLUTStrokeVertex ch126st1[] = -{ - {9.5238f,38.0952f}, - {14.2857f,47.6190f}, - {23.8095f,52.3810f}, - {33.3333f,52.3810f}, - {42.8571f,47.6190f}, - {61.9048f,33.3333f}, - {71.4286f,28.5714f}, - {80.9524f,28.5714f}, - {90.4762f,33.3333f}, - {95.2381f,47.6190f}, - {95.2381f,57.1429f} -}; - -static const GLUTStrokeStrip ch126st[] = -{ - {11,ch126st0}, - {11,ch126st1} -}; - -static const GLUTStrokeChar ch126 = {104.7619f,2,ch126st}; - -static const GLUTStrokeChar *chars[] = -{ - 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, - &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 -}; - -const GLUTStrokeFont glutStrokeMonoRoman = {"MonoRoman",128,chars,152.3809f,33.3333f}; diff --git a/src/glut/dos/overlay.c b/src/glut/dos/overlay.c deleted file mode 100644 index 46d3a39577..0000000000 --- a/src/glut/dos/overlay.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -int APIENTRY -glutLayerGet (GLenum info) -{ - switch (info) { - case GLUT_OVERLAY_POSSIBLE: - case GLUT_HAS_OVERLAY: - return GL_FALSE; - case GLUT_LAYER_IN_USE: - return GLUT_NORMAL; - case GLUT_NORMAL_DAMAGED: - return GL_FALSE; - case GLUT_OVERLAY_DAMAGED: - case GLUT_TRANSPARENT_INDEX: - default: - return -1; - } -} - - -void APIENTRY -glutOverlayDisplayFunc (GLUTdisplayCB func) -{ -} - - -void APIENTRY -glutEstablishOverlay (void) -{ -} - - -void APIENTRY -glutRemoveOverlay (void) -{ -} - - -void APIENTRY -glutUseLayer (GLenum layer) -{ -} - - -void APIENTRY -glutPostOverlayRedisplay (void) -{ -} - - -void APIENTRY -glutShowOverlay (void) -{ -} - - -void APIENTRY -glutHideOverlay (void) -{ -} - - -void APIENTRY -glutPostWindowOverlayRedisplay (int win) -{ -} diff --git a/src/glut/dos/roman.c b/src/glut/dos/roman.c deleted file mode 100644 index c30d76eb3f..0000000000 --- a/src/glut/dos/roman.c +++ /dev/null @@ -1,2779 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#include "internal.h" - -/* char: 0x20 */ - -static const GLUTStrokeChar ch32 = {104.7619f,0,NULL}; - -/* char: 0x21 */ - -static const GLUTStrokeVertex ch33st0[] = -{ - {13.3819f,100.0000f}, - {13.3819f,33.3333f} -}; - -static const GLUTStrokeVertex ch33st1[] = -{ - {13.3819f,9.5238f}, - {8.6200f,4.7619f}, - {13.3819f,0.0000f}, - {18.1438f,4.7619f}, - {13.3819f,9.5238f} -}; - -static const GLUTStrokeStrip ch33st[] = -{ - {2,ch33st0}, - {5,ch33st1} -}; - -static const GLUTStrokeChar ch33 = {26.6238f,2,ch33st}; - -/* char: 0x22 */ - -static const GLUTStrokeVertex ch34st0[] = -{ - {4.0200f,100.0000f}, - {4.0200f,66.6667f} -}; - -static const GLUTStrokeVertex ch34st1[] = -{ - {42.1152f,100.0000f}, - {42.1152f,66.6667f} -}; - -static const GLUTStrokeStrip ch34st[] = -{ - {2,ch34st0}, - {2,ch34st1} -}; - -static const GLUTStrokeChar ch34 = {51.4352f,2,ch34st}; - -/* char: 0x23 */ - -static const GLUTStrokeVertex ch35st0[] = -{ - {41.2952f,119.0476f}, - {7.9619f,-33.3333f} -}; - -static const GLUTStrokeVertex ch35st1[] = -{ - {69.8667f,119.0476f}, - {36.5333f,-33.3333f} -}; - -static const GLUTStrokeVertex ch35st2[] = -{ - {7.9619f,57.1429f}, - {74.6286f,57.1429f} -}; - -static const GLUTStrokeVertex ch35st3[] = -{ - {3.2000f,28.5714f}, - {69.8667f,28.5714f} -}; - -static const GLUTStrokeStrip ch35st[] = -{ - {2,ch35st0}, - {2,ch35st1}, - {2,ch35st2}, - {2,ch35st3} -}; - -static const GLUTStrokeChar ch35 = {79.4886f,4,ch35st}; - -/* char: 0x24 */ - -static const GLUTStrokeVertex ch36st0[] = -{ - {28.6295f,119.0476f}, - {28.6295f,-19.0476f} -}; - -static const GLUTStrokeVertex ch36st1[] = -{ - {47.6771f,119.0476f}, - {47.6771f,-19.0476f} -}; - -static const GLUTStrokeVertex ch36st2[] = -{ - {71.4867f,85.7143f}, - {61.9629f,95.2381f}, - {47.6771f,100.0000f}, - {28.6295f,100.0000f}, - {14.3438f,95.2381f}, - {4.8200f,85.7143f}, - {4.8200f,76.1905f}, - {9.5819f,66.6667f}, - {14.3438f,61.9048f}, - {23.8676f,57.1429f}, - {52.4390f,47.6190f}, - {61.9629f,42.8571f}, - {66.7248f,38.0952f}, - {71.4867f,28.5714f}, - {71.4867f,14.2857f}, - {61.9629f,4.7619f}, - {47.6771f,0.0000f}, - {28.6295f,0.0000f}, - {14.3438f,4.7619f}, - {4.8200f,14.2857f} -}; - -static const GLUTStrokeStrip ch36st[] = -{ - {2,ch36st0}, - {2,ch36st1}, - {20,ch36st2} -}; - -static const GLUTStrokeChar ch36 = {76.2067f,3,ch36st}; - -/* char: 0x25 */ - -static const GLUTStrokeVertex ch37st0[] = -{ - {92.0743f,100.0000f}, - {6.3600f,0.0000f} -}; - -static const GLUTStrokeVertex ch37st1[] = -{ - {30.1695f,100.0000f}, - {39.6933f,90.4762f}, - {39.6933f,80.9524f}, - {34.9314f,71.4286f}, - {25.4076f,66.6667f}, - {15.8838f,66.6667f}, - {6.3600f,76.1905f}, - {6.3600f,85.7143f}, - {11.1219f,95.2381f}, - {20.6457f,100.0000f}, - {30.1695f,100.0000f}, - {39.6933f,95.2381f}, - {53.9790f,90.4762f}, - {68.2648f,90.4762f}, - {82.5505f,95.2381f}, - {92.0743f,100.0000f} -}; - -static const GLUTStrokeVertex ch37st2[] = -{ - {73.0267f,33.3333f}, - {63.5029f,28.5714f}, - {58.7410f,19.0476f}, - {58.7410f,9.5238f}, - {68.2648f,0.0000f}, - {77.7886f,0.0000f}, - {87.3124f,4.7619f}, - {92.0743f,14.2857f}, - {92.0743f,23.8095f}, - {82.5505f,33.3333f}, - {73.0267f,33.3333f} -}; - -static const GLUTStrokeStrip ch37st[] = -{ - {2,ch37st0}, - {16,ch37st1}, - {11,ch37st2} -}; - -static const GLUTStrokeChar ch37 = {96.5743f,3,ch37st}; - -/* char: 0x26 */ - -static const GLUTStrokeVertex ch38st0[] = -{ - {101.2181f,57.1429f}, - {101.2181f,61.9048f}, - {96.4562f,66.6667f}, - {91.6943f,66.6667f}, - {86.9324f,61.9048f}, - {82.1705f,52.3810f}, - {72.6467f,28.5714f}, - {63.1229f,14.2857f}, - {53.5990f,4.7619f}, - {44.0752f,0.0000f}, - {25.0276f,0.0000f}, - {15.5038f,4.7619f}, - {10.7419f,9.5238f}, - {5.9800f,19.0476f}, - {5.9800f,28.5714f}, - {10.7419f,38.0952f}, - {15.5038f,42.8571f}, - {48.8371f,61.9048f}, - {53.5990f,66.6667f}, - {58.3610f,76.1905f}, - {58.3610f,85.7143f}, - {53.5990f,95.2381f}, - {44.0752f,100.0000f}, - {34.5514f,95.2381f}, - {29.7895f,85.7143f}, - {29.7895f,76.1905f}, - {34.5514f,61.9048f}, - {44.0752f,47.6190f}, - {67.8848f,14.2857f}, - {77.4086f,4.7619f}, - {86.9324f,0.0000f}, - {96.4562f,0.0000f}, - {101.2181f,4.7619f}, - {101.2181f,9.5238f} -}; - -static const GLUTStrokeStrip ch38st[] = -{ - {34,ch38st0} -}; - -static const GLUTStrokeChar ch38 = {101.7581f,1,ch38st}; - -/* char: 0x27 */ - -static const GLUTStrokeVertex ch39st0[] = -{ - {4.4400f,100.0000f}, - {4.4400f,66.6667f} -}; - -static const GLUTStrokeStrip ch39st[] = -{ - {2,ch39st0} -}; - -static const GLUTStrokeChar ch39 = {13.6200f,1,ch39st}; - -/* char: 0x28 */ - -static const GLUTStrokeVertex ch40st0[] = -{ - {40.9133f,119.0476f}, - {31.3895f,109.5238f}, - {21.8657f,95.2381f}, - {12.3419f,76.1905f}, - {7.5800f,52.3810f}, - {7.5800f,33.3333f}, - {12.3419f,9.5238f}, - {21.8657f,-9.5238f}, - {31.3895f,-23.8095f}, - {40.9133f,-33.3333f} -}; - -static const GLUTStrokeStrip ch40st[] = -{ - {10,ch40st0} -}; - -static const GLUTStrokeChar ch40 = {47.1733f,1,ch40st}; - -/* char: 0x29 */ - -static const GLUTStrokeVertex ch41st0[] = -{ - {5.2800f,119.0476f}, - {14.8038f,109.5238f}, - {24.3276f,95.2381f}, - {33.8514f,76.1905f}, - {38.6133f,52.3810f}, - {38.6133f,33.3333f}, - {33.8514f,9.5238f}, - {24.3276f,-9.5238f}, - {14.8038f,-23.8095f}, - {5.2800f,-33.3333f} -}; - -static const GLUTStrokeStrip ch41st[] = -{ - {10,ch41st0} -}; - -static const GLUTStrokeChar ch41 = {47.5333f,1,ch41st}; - -/* char: 0x2a */ - -static const GLUTStrokeVertex ch42st0[] = -{ - {30.7695f,71.4286f}, - {30.7695f,14.2857f} -}; - -static const GLUTStrokeVertex ch42st1[] = -{ - {6.9600f,57.1429f}, - {54.5790f,28.5714f} -}; - -static const GLUTStrokeVertex ch42st2[] = -{ - {54.5790f,57.1429f}, - {6.9600f,28.5714f} -}; - -static const GLUTStrokeStrip ch42st[] = -{ - {2,ch42st0}, - {2,ch42st1}, - {2,ch42st2} -}; - -static const GLUTStrokeChar ch42 = {59.4390f,3,ch42st}; - -/* char: 0x2b */ - -static const GLUTStrokeVertex ch43st0[] = -{ - {48.8371f,85.7143f}, - {48.8371f,0.0000f} -}; - -static const GLUTStrokeVertex ch43st1[] = -{ - {5.9800f,42.8571f}, - {91.6943f,42.8571f} -}; - -static const GLUTStrokeStrip ch43st[] = -{ - {2,ch43st0}, - {2,ch43st1} -}; - -static const GLUTStrokeChar ch43 = {97.2543f,2,ch43st}; - -/* char: 0x2c */ - -static const GLUTStrokeVertex ch44st0[] = -{ - {18.2838f,4.7619f}, - {13.5219f,0.0000f}, - {8.7600f,4.7619f}, - {13.5219f,9.5238f}, - {18.2838f,4.7619f}, - {18.2838f,-4.7619f}, - {13.5219f,-14.2857f}, - {8.7600f,-19.0476f} -}; - -static const GLUTStrokeStrip ch44st[] = -{ - {8,ch44st0} -}; - -static const GLUTStrokeChar ch44 = {26.0638f,1,ch44st}; - -/* char: 0x2d */ - -static const GLUTStrokeVertex ch45st0[] = -{ - {7.3800f,42.8571f}, - {93.0943f,42.8571f} -}; - -static const GLUTStrokeStrip ch45st[] = -{ - {2,ch45st0} -}; - -static const GLUTStrokeChar ch45 = {100.7543f,1,ch45st}; - -/* char: 0x2e */ - -static const GLUTStrokeVertex ch46st0[] = -{ - {13.1019f,9.5238f}, - {8.3400f,4.7619f}, - {13.1019f,0.0000f}, - {17.8638f,4.7619f}, - {13.1019f,9.5238f} -}; - -static const GLUTStrokeStrip ch46st[] = -{ - {5,ch46st0} -}; - -static const GLUTStrokeChar ch46 = {26.4838f,1,ch46st}; - -/* char: 0x2f */ - -static const GLUTStrokeVertex ch47st0[] = -{ - {7.2400f,-14.2857f}, - {73.9067f,100.0000f} -}; - -static const GLUTStrokeStrip ch47st[] = -{ - {2,ch47st0} -}; - -static const GLUTStrokeChar ch47 = {82.1067f,1,ch47st}; - -/* char: 0x30 */ - -static const GLUTStrokeVertex ch48st0[] = -{ - {33.5514f,100.0000f}, - {19.2657f,95.2381f}, - {9.7419f,80.9524f}, - {4.9800f,57.1429f}, - {4.9800f,42.8571f}, - {9.7419f,19.0476f}, - {19.2657f,4.7619f}, - {33.5514f,0.0000f}, - {43.0752f,0.0000f}, - {57.3610f,4.7619f}, - {66.8848f,19.0476f}, - {71.6467f,42.8571f}, - {71.6467f,57.1429f}, - {66.8848f,80.9524f}, - {57.3610f,95.2381f}, - {43.0752f,100.0000f}, - {33.5514f,100.0000f} -}; - -static const GLUTStrokeStrip ch48st[] = -{ - {17,ch48st0} -}; - -static const GLUTStrokeChar ch48 = {77.0667f,1,ch48st}; - -/* char: 0x31 */ - -static const GLUTStrokeVertex ch49st0[] = -{ - {11.8200f,80.9524f}, - {21.3438f,85.7143f}, - {35.6295f,100.0000f}, - {35.6295f,0.0000f} -}; - -static const GLUTStrokeStrip ch49st[] = -{ - {4,ch49st0} -}; - -static const GLUTStrokeChar ch49 = {66.5295f,1,ch49st}; - -/* char: 0x32 */ - -static const GLUTStrokeVertex ch50st0[] = -{ - {10.1819f,76.1905f}, - {10.1819f,80.9524f}, - {14.9438f,90.4762f}, - {19.7057f,95.2381f}, - {29.2295f,100.0000f}, - {48.2771f,100.0000f}, - {57.8010f,95.2381f}, - {62.5629f,90.4762f}, - {67.3248f,80.9524f}, - {67.3248f,71.4286f}, - {62.5629f,61.9048f}, - {53.0390f,47.6190f}, - {5.4200f,0.0000f}, - {72.0867f,0.0000f} -}; - -static const GLUTStrokeStrip ch50st[] = -{ - {14,ch50st0} -}; - -static const GLUTStrokeChar ch50 = {77.6467f,1,ch50st}; - -/* char: 0x33 */ - -static const GLUTStrokeVertex ch51st0[] = -{ - {14.5238f,100.0000f}, - {66.9048f,100.0000f}, - {38.3333f,61.9048f}, - {52.6190f,61.9048f}, - {62.1429f,57.1429f}, - {66.9048f,52.3810f}, - {71.6667f,38.0952f}, - {71.6667f,28.5714f}, - {66.9048f,14.2857f}, - {57.3810f,4.7619f}, - {43.0952f,0.0000f}, - {28.8095f,0.0000f}, - {14.5238f,4.7619f}, - {9.7619f,9.5238f}, - {5.0000f,19.0476f} -}; - -static const GLUTStrokeStrip ch51st[] = -{ - {15,ch51st0} -}; - -static const GLUTStrokeChar ch51 = {77.0467f,1,ch51st}; - -/* char: 0x34 */ - -static const GLUTStrokeVertex ch52st0[] = -{ - {51.4990f,100.0000f}, - {3.8800f,33.3333f}, - {75.3086f,33.3333f} -}; - -static const GLUTStrokeVertex ch52st1[] = -{ - {51.4990f,100.0000f}, - {51.4990f,0.0000f} -}; - -static const GLUTStrokeStrip ch52st[] = -{ - {3,ch52st0}, - {2,ch52st1} -}; - -static const GLUTStrokeChar ch52 = {80.1686f,2,ch52st}; - -/* char: 0x35 */ - -static const GLUTStrokeVertex ch53st0[] = -{ - {62.0029f,100.0000f}, - {14.3838f,100.0000f}, - {9.6219f,57.1429f}, - {14.3838f,61.9048f}, - {28.6695f,66.6667f}, - {42.9552f,66.6667f}, - {57.2410f,61.9048f}, - {66.7648f,52.3810f}, - {71.5267f,38.0952f}, - {71.5267f,28.5714f}, - {66.7648f,14.2857f}, - {57.2410f,4.7619f}, - {42.9552f,0.0000f}, - {28.6695f,0.0000f}, - {14.3838f,4.7619f}, - {9.6219f,9.5238f}, - {4.8600f,19.0476f} -}; - -static const GLUTStrokeStrip ch53st[] = -{ - {17,ch53st0} -}; - -static const GLUTStrokeChar ch53 = {77.6867f,1,ch53st}; - -/* char: 0x36 */ - -static const GLUTStrokeVertex ch54st0[] = -{ - {62.7229f,85.7143f}, - {57.9610f,95.2381f}, - {43.6752f,100.0000f}, - {34.1514f,100.0000f}, - {19.8657f,95.2381f}, - {10.3419f,80.9524f}, - {5.5800f,57.1429f}, - {5.5800f,33.3333f}, - {10.3419f,14.2857f}, - {19.8657f,4.7619f}, - {34.1514f,0.0000f}, - {38.9133f,0.0000f}, - {53.1990f,4.7619f}, - {62.7229f,14.2857f}, - {67.4848f,28.5714f}, - {67.4848f,33.3333f}, - {62.7229f,47.6190f}, - {53.1990f,57.1429f}, - {38.9133f,61.9048f}, - {34.1514f,61.9048f}, - {19.8657f,57.1429f}, - {10.3419f,47.6190f}, - {5.5800f,33.3333f} -}; - -static const GLUTStrokeStrip ch54st[] = -{ - {23,ch54st0} -}; - -static const GLUTStrokeChar ch54 = {73.8048f,1,ch54st}; - -/* char: 0x37 */ - -static const GLUTStrokeVertex ch55st0[] = -{ - {72.2267f,100.0000f}, - {24.6076f,0.0000f} -}; - -static const GLUTStrokeVertex ch55st1[] = -{ - {5.5600f,100.0000f}, - {72.2267f,100.0000f} -}; - -static const GLUTStrokeStrip ch55st[] = -{ - {2,ch55st0}, - {2,ch55st1} -}; - -static const GLUTStrokeChar ch55 = {77.2267f,2,ch55st}; - -/* char: 0x38 */ - -static const GLUTStrokeVertex ch56st0[] = -{ - {29.4095f,100.0000f}, - {15.1238f,95.2381f}, - {10.3619f,85.7143f}, - {10.3619f,76.1905f}, - {15.1238f,66.6667f}, - {24.6476f,61.9048f}, - {43.6952f,57.1429f}, - {57.9810f,52.3810f}, - {67.5048f,42.8571f}, - {72.2667f,33.3333f}, - {72.2667f,19.0476f}, - {67.5048f,9.5238f}, - {62.7429f,4.7619f}, - {48.4571f,0.0000f}, - {29.4095f,0.0000f}, - {15.1238f,4.7619f}, - {10.3619f,9.5238f}, - {5.6000f,19.0476f}, - {5.6000f,33.3333f}, - {10.3619f,42.8571f}, - {19.8857f,52.3810f}, - {34.1714f,57.1429f}, - {53.2190f,61.9048f}, - {62.7429f,66.6667f}, - {67.5048f,76.1905f}, - {67.5048f,85.7143f}, - {62.7429f,95.2381f}, - {48.4571f,100.0000f}, - {29.4095f,100.0000f} -}; - -static const GLUTStrokeStrip ch56st[] = -{ - {29,ch56st0} -}; - -static const GLUTStrokeChar ch56 = {77.6667f,1,ch56st}; - -/* char: 0x39 */ - -static const GLUTStrokeVertex ch57st0[] = -{ - {68.5048f,66.6667f}, - {63.7429f,52.3810f}, - {54.2190f,42.8571f}, - {39.9333f,38.0952f}, - {35.1714f,38.0952f}, - {20.8857f,42.8571f}, - {11.3619f,52.3810f}, - {6.6000f,66.6667f}, - {6.6000f,71.4286f}, - {11.3619f,85.7143f}, - {20.8857f,95.2381f}, - {35.1714f,100.0000f}, - {39.9333f,100.0000f}, - {54.2190f,95.2381f}, - {63.7429f,85.7143f}, - {68.5048f,66.6667f}, - {68.5048f,42.8571f}, - {63.7429f,19.0476f}, - {54.2190f,4.7619f}, - {39.9333f,0.0000f}, - {30.4095f,0.0000f}, - {16.1238f,4.7619f}, - {11.3619f,14.2857f} -}; - -static const GLUTStrokeStrip ch57st[] = -{ - {23,ch57st0} -}; - -static const GLUTStrokeChar ch57 = {74.0648f,1,ch57st}; - -/* char: 0x3a */ - -static const GLUTStrokeVertex ch58st0[] = -{ - {14.0819f,66.6667f}, - {9.3200f,61.9048f}, - {14.0819f,57.1429f}, - {18.8438f,61.9048f}, - {14.0819f,66.6667f} -}; - -static const GLUTStrokeVertex ch58st1[] = -{ - {14.0819f,9.5238f}, - {9.3200f,4.7619f}, - {14.0819f,0.0000f}, - {18.8438f,4.7619f}, - {14.0819f,9.5238f} -}; - -static const GLUTStrokeStrip ch58st[] = -{ - {5,ch58st0}, - {5,ch58st1} -}; - -static const GLUTStrokeChar ch58 = {26.2238f,2,ch58st}; - -/* char: 0x3b */ - -static const GLUTStrokeVertex ch59st0[] = -{ - {12.9619f,66.6667f}, - {8.2000f,61.9048f}, - {12.9619f,57.1429f}, - {17.7238f,61.9048f}, - {12.9619f,66.6667f} -}; - -static const GLUTStrokeVertex ch59st1[] = -{ - {17.7238f,4.7619f}, - {12.9619f,0.0000f}, - {8.2000f,4.7619f}, - {12.9619f,9.5238f}, - {17.7238f,4.7619f}, - {17.7238f,-4.7619f}, - {12.9619f,-14.2857f}, - {8.2000f,-19.0476f} -}; - -static const GLUTStrokeStrip ch59st[] = -{ - {5,ch59st0}, - {8,ch59st1} -}; - -static const GLUTStrokeChar ch59 = {26.3038f,2,ch59st}; - -/* char: 0x3c */ - -static const GLUTStrokeVertex ch60st0[] = -{ - {79.2505f,85.7143f}, - {3.0600f,42.8571f}, - {79.2505f,0.0000f} -}; - -static const GLUTStrokeStrip ch60st[] = -{ - {3,ch60st0} -}; - -static const GLUTStrokeChar ch60 = {81.6105f,1,ch60st}; - -/* char: 0x3d */ - -static const GLUTStrokeVertex ch61st0[] = -{ - {5.7000f,57.1429f}, - {91.4143f,57.1429f} -}; - -static const GLUTStrokeVertex ch61st1[] = -{ - {5.7000f,28.5714f}, - {91.4143f,28.5714f} -}; - -static const GLUTStrokeStrip ch61st[] = -{ - {2,ch61st0}, - {2,ch61st1} -}; - -static const GLUTStrokeChar ch61 = {97.2543f,2,ch61st}; - -/* char: 0x3e */ - -static const GLUTStrokeVertex ch62st0[] = -{ - {2.7800f,85.7143f}, - {78.9705f,42.8571f}, - {2.7800f,0.0000f} -}; - -static const GLUTStrokeStrip ch62st[] = -{ - {3,ch62st0} -}; - -static const GLUTStrokeChar ch62 = {81.6105f,1,ch62st}; - -/* char: 0x3f */ - -static const GLUTStrokeVertex ch63st0[] = -{ - {8.4200f,76.1905f}, - {8.4200f,80.9524f}, - {13.1819f,90.4762f}, - {17.9438f,95.2381f}, - {27.4676f,100.0000f}, - {46.5152f,100.0000f}, - {56.0390f,95.2381f}, - {60.8010f,90.4762f}, - {65.5629f,80.9524f}, - {65.5629f,71.4286f}, - {60.8010f,61.9048f}, - {56.0390f,57.1429f}, - {36.9914f,47.6190f}, - {36.9914f,33.3333f} -}; - -static const GLUTStrokeVertex ch63st1[] = -{ - {36.9914f,9.5238f}, - {32.2295f,4.7619f}, - {36.9914f,0.0000f}, - {41.7533f,4.7619f}, - {36.9914f,9.5238f} -}; - -static const GLUTStrokeStrip ch63st[] = -{ - {14,ch63st0}, - {5,ch63st1} -}; - -static const GLUTStrokeChar ch63 = {73.9029f,2,ch63st}; - -/* char: 0x40 */ - -static const GLUTStrokeVertex ch64st0[] = -{ - {49.2171f,52.3810f}, - {39.6933f,57.1429f}, - {30.1695f,57.1429f}, - {25.4076f,47.6190f}, - {25.4076f,42.8571f}, - {30.1695f,33.3333f}, - {39.6933f,33.3333f}, - {49.2171f,38.0952f} -}; - -static const GLUTStrokeVertex ch64st1[] = -{ - {49.2171f,57.1429f}, - {49.2171f,38.0952f}, - {53.9790f,33.3333f}, - {63.5029f,33.3333f}, - {68.2648f,42.8571f}, - {68.2648f,47.6190f}, - {63.5029f,61.9048f}, - {53.9790f,71.4286f}, - {39.6933f,76.1905f}, - {34.9314f,76.1905f}, - {20.6457f,71.4286f}, - {11.1219f,61.9048f}, - {6.3600f,47.6190f}, - {6.3600f,42.8571f}, - {11.1219f,28.5714f}, - {20.6457f,19.0476f}, - {34.9314f,14.2857f}, - {39.6933f,14.2857f}, - {53.9790f,19.0476f} -}; - -static const GLUTStrokeStrip ch64st[] = -{ - {8,ch64st0}, - {19,ch64st1} -}; - -static const GLUTStrokeChar ch64 = {74.3648f,2,ch64st}; - -/* char: 0x41 */ - -static const GLUTStrokeVertex ch65st0[] = -{ - {40.5952f,100.0000f}, - {2.5000f,0.0000f} -}; - -static const GLUTStrokeVertex ch65st1[] = -{ - {40.5952f,100.0000f}, - {78.6905f,0.0000f} -}; - -static const GLUTStrokeVertex ch65st2[] = -{ - {16.7857f,33.3333f}, - {64.4048f,33.3333f} -}; - -static const GLUTStrokeStrip ch65st[] = -{ - {2,ch65st0}, - {2,ch65st1}, - {2,ch65st2} -}; - -static const GLUTStrokeChar ch65 = {80.4905f,3,ch65st}; - -/* char: 0x42 */ - -static const GLUTStrokeVertex ch66st0[] = -{ - {11.4200f,100.0000f}, - {11.4200f,0.0000f} -}; - -static const GLUTStrokeVertex ch66st1[] = -{ - {11.4200f,100.0000f}, - {54.2771f,100.0000f}, - {68.5629f,95.2381f}, - {73.3248f,90.4762f}, - {78.0867f,80.9524f}, - {78.0867f,71.4286f}, - {73.3248f,61.9048f}, - {68.5629f,57.1429f}, - {54.2771f,52.3810f} -}; - -static const GLUTStrokeVertex ch66st2[] = -{ - {11.4200f,52.3810f}, - {54.2771f,52.3810f}, - {68.5629f,47.6190f}, - {73.3248f,42.8571f}, - {78.0867f,33.3333f}, - {78.0867f,19.0476f}, - {73.3248f,9.5238f}, - {68.5629f,4.7619f}, - {54.2771f,0.0000f}, - {11.4200f,0.0000f} -}; - -static const GLUTStrokeStrip ch66st[] = -{ - {2,ch66st0}, - {9,ch66st1}, - {10,ch66st2} -}; - -static const GLUTStrokeChar ch66 = {83.6267f,3,ch66st}; - -/* char: 0x43 */ - -static const GLUTStrokeVertex ch67st0[] = -{ - {78.0886f,76.1905f}, - {73.3267f,85.7143f}, - {63.8029f,95.2381f}, - {54.2790f,100.0000f}, - {35.2314f,100.0000f}, - {25.7076f,95.2381f}, - {16.1838f,85.7143f}, - {11.4219f,76.1905f}, - {6.6600f,61.9048f}, - {6.6600f,38.0952f}, - {11.4219f,23.8095f}, - {16.1838f,14.2857f}, - {25.7076f,4.7619f}, - {35.2314f,0.0000f}, - {54.2790f,0.0000f}, - {63.8029f,4.7619f}, - {73.3267f,14.2857f}, - {78.0886f,23.8095f} -}; - -static const GLUTStrokeStrip ch67st[] = -{ - {18,ch67st0} -}; - -static const GLUTStrokeChar ch67 = {84.4886f,1,ch67st}; - -/* char: 0x44 */ - -static const GLUTStrokeVertex ch68st0[] = -{ - {11.9600f,100.0000f}, - {11.9600f,0.0000f} -}; - -static const GLUTStrokeVertex ch68st1[] = -{ - {11.9600f,100.0000f}, - {45.2933f,100.0000f}, - {59.5790f,95.2381f}, - {69.1029f,85.7143f}, - {73.8648f,76.1905f}, - {78.6267f,61.9048f}, - {78.6267f,38.0952f}, - {73.8648f,23.8095f}, - {69.1029f,14.2857f}, - {59.5790f,4.7619f}, - {45.2933f,0.0000f}, - {11.9600f,0.0000f} -}; - -static const GLUTStrokeStrip ch68st[] = -{ - {2,ch68st0}, - {12,ch68st1} -}; - -static const GLUTStrokeChar ch68 = {85.2867f,2,ch68st}; - -/* char: 0x45 */ - -static const GLUTStrokeVertex ch69st0[] = -{ - {11.4200f,100.0000f}, - {11.4200f,0.0000f} -}; - -static const GLUTStrokeVertex ch69st1[] = -{ - {11.4200f,100.0000f}, - {73.3248f,100.0000f} -}; - -static const GLUTStrokeVertex ch69st2[] = -{ - {11.4200f,52.3810f}, - {49.5152f,52.3810f} -}; - -static const GLUTStrokeVertex ch69st3[] = -{ - {11.4200f,0.0000f}, - {73.3248f,0.0000f} -}; - -static const GLUTStrokeStrip ch69st[] = -{ - {2,ch69st0}, - {2,ch69st1}, - {2,ch69st2}, - {2,ch69st3} -}; - -static const GLUTStrokeChar ch69 = {78.1848f,4,ch69st}; - -/* char: 0x46 */ - -static const GLUTStrokeVertex ch70st0[] = -{ - {11.4200f,100.0000f}, - {11.4200f,0.0000f} -}; - -static const GLUTStrokeVertex ch70st1[] = -{ - {11.4200f,100.0000f}, - {73.3248f,100.0000f} -}; - -static const GLUTStrokeVertex ch70st2[] = -{ - {11.4200f,52.3810f}, - {49.5152f,52.3810f} -}; - -static const GLUTStrokeStrip ch70st[] = -{ - {2,ch70st0}, - {2,ch70st1}, - {2,ch70st2} -}; - -static const GLUTStrokeChar ch70 = {78.7448f,3,ch70st}; - -/* char: 0x47 */ - -static const GLUTStrokeVertex ch71st0[] = -{ - {78.4886f,76.1905f}, - {73.7267f,85.7143f}, - {64.2029f,95.2381f}, - {54.6790f,100.0000f}, - {35.6314f,100.0000f}, - {26.1076f,95.2381f}, - {16.5838f,85.7143f}, - {11.8219f,76.1905f}, - {7.0600f,61.9048f}, - {7.0600f,38.0952f}, - {11.8219f,23.8095f}, - {16.5838f,14.2857f}, - {26.1076f,4.7619f}, - {35.6314f,0.0000f}, - {54.6790f,0.0000f}, - {64.2029f,4.7619f}, - {73.7267f,14.2857f}, - {78.4886f,23.8095f}, - {78.4886f,38.0952f} -}; - -static const GLUTStrokeVertex ch71st1[] = -{ - {54.6790f,38.0952f}, - {78.4886f,38.0952f} -}; - -static const GLUTStrokeStrip ch71st[] = -{ - {19,ch71st0}, - {2,ch71st1} -}; - -static const GLUTStrokeChar ch71 = {89.7686f,2,ch71st}; - -/* char: 0x48 */ - -static const GLUTStrokeVertex ch72st0[] = -{ - {11.4200f,100.0000f}, - {11.4200f,0.0000f} -}; - -static const GLUTStrokeVertex ch72st1[] = -{ - {78.0867f,100.0000f}, - {78.0867f,0.0000f} -}; - -static const GLUTStrokeVertex ch72st2[] = -{ - {11.4200f,52.3810f}, - {78.0867f,52.3810f} -}; - -static const GLUTStrokeStrip ch72st[] = -{ - {2,ch72st0}, - {2,ch72st1}, - {2,ch72st2} -}; - -static const GLUTStrokeChar ch72 = {89.0867f,3,ch72st}; - -/* char: 0x49 */ - -static const GLUTStrokeVertex ch73st0[] = -{ - {10.8600f,100.0000f}, - {10.8600f,0.0000f} -}; - -static const GLUTStrokeStrip ch73st[] = -{ - {2,ch73st0} -}; - -static const GLUTStrokeChar ch73 = {21.3000f,1,ch73st}; - -/* char: 0x4a */ - -static const GLUTStrokeVertex ch74st0[] = -{ - {50.1190f,100.0000f}, - {50.1190f,23.8095f}, - {45.3571f,9.5238f}, - {40.5952f,4.7619f}, - {31.0714f,0.0000f}, - {21.5476f,0.0000f}, - {12.0238f,4.7619f}, - {7.2619f,9.5238f}, - {2.5000f,23.8095f}, - {2.5000f,33.3333f} -}; - -static const GLUTStrokeStrip ch74st[] = -{ - {10,ch74st0} -}; - -static const GLUTStrokeChar ch74 = {59.9990f,1,ch74st}; - -/* char: 0x4b */ - -static const GLUTStrokeVertex ch75st0[] = -{ - {11.2800f,100.0000f}, - {11.2800f,0.0000f} -}; - -static const GLUTStrokeVertex ch75st1[] = -{ - {77.9467f,100.0000f}, - {11.2800f,33.3333f} -}; - -static const GLUTStrokeVertex ch75st2[] = -{ - {35.0895f,57.1429f}, - {77.9467f,0.0000f} -}; - -static const GLUTStrokeStrip ch75st[] = -{ - {2,ch75st0}, - {2,ch75st1}, - {2,ch75st2} -}; - -static const GLUTStrokeChar ch75 = {79.3267f,3,ch75st}; - -/* char: 0x4c */ - -static const GLUTStrokeVertex ch76st0[] = -{ - {11.6800f,100.0000f}, - {11.6800f,0.0000f} -}; - -static const GLUTStrokeVertex ch76st1[] = -{ - {11.6800f,0.0000f}, - {68.8229f,0.0000f} -}; - -static const GLUTStrokeStrip ch76st[] = -{ - {2,ch76st0}, - {2,ch76st1} -}; - -static const GLUTStrokeChar ch76 = {71.3229f,2,ch76st}; - -/* char: 0x4d */ - -static const GLUTStrokeVertex ch77st0[] = -{ - {10.8600f,100.0000f}, - {10.8600f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st1[] = -{ - {10.8600f,100.0000f}, - {48.9552f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st2[] = -{ - {87.0505f,100.0000f}, - {48.9552f,0.0000f} -}; - -static const GLUTStrokeVertex ch77st3[] = -{ - {87.0505f,100.0000f}, - {87.0505f,0.0000f} -}; - -static const GLUTStrokeStrip ch77st[] = -{ - {2,ch77st0}, - {2,ch77st1}, - {2,ch77st2}, - {2,ch77st3} -}; - -static const GLUTStrokeChar ch77 = {97.2105f,4,ch77st}; - -/* char: 0x4e */ - -static const GLUTStrokeVertex ch78st0[] = -{ - {11.1400f,100.0000f}, - {11.1400f,0.0000f} -}; - -static const GLUTStrokeVertex ch78st1[] = -{ - {11.1400f,100.0000f}, - {77.8067f,0.0000f} -}; - -static const GLUTStrokeVertex ch78st2[] = -{ - {77.8067f,100.0000f}, - {77.8067f,0.0000f} -}; - -static const GLUTStrokeStrip ch78st[] = -{ - {2,ch78st0}, - {2,ch78st1}, - {2,ch78st2} -}; - -static const GLUTStrokeChar ch78 = {88.8067f,3,ch78st}; - -/* char: 0x4f */ - -static const GLUTStrokeVertex ch79st0[] = -{ - {34.8114f,100.0000f}, - {25.2876f,95.2381f}, - {15.7638f,85.7143f}, - {11.0019f,76.1905f}, - {6.2400f,61.9048f}, - {6.2400f,38.0952f}, - {11.0019f,23.8095f}, - {15.7638f,14.2857f}, - {25.2876f,4.7619f}, - {34.8114f,0.0000f}, - {53.8590f,0.0000f}, - {63.3829f,4.7619f}, - {72.9067f,14.2857f}, - {77.6686f,23.8095f}, - {82.4305f,38.0952f}, - {82.4305f,61.9048f}, - {77.6686f,76.1905f}, - {72.9067f,85.7143f}, - {63.3829f,95.2381f}, - {53.8590f,100.0000f}, - {34.8114f,100.0000f} -}; - -static const GLUTStrokeStrip ch79st[] = -{ - {21,ch79st0} -}; - -static const GLUTStrokeChar ch79 = {88.8305f,1,ch79st}; - -/* char: 0x50 */ - -static const GLUTStrokeVertex ch80st0[] = -{ - {12.1000f,100.0000f}, - {12.1000f,0.0000f} -}; - -static const GLUTStrokeVertex ch80st1[] = -{ - {12.1000f,100.0000f}, - {54.9571f,100.0000f}, - {69.2429f,95.2381f}, - {74.0048f,90.4762f}, - {78.7667f,80.9524f}, - {78.7667f,66.6667f}, - {74.0048f,57.1429f}, - {69.2429f,52.3810f}, - {54.9571f,47.6190f}, - {12.1000f,47.6190f} -}; - -static const GLUTStrokeStrip ch80st[] = -{ - {2,ch80st0}, - {10,ch80st1} -}; - -static const GLUTStrokeChar ch80 = {85.6667f,2,ch80st}; - -/* char: 0x51 */ - -static const GLUTStrokeVertex ch81st0[] = -{ - {33.8714f,100.0000f}, - {24.3476f,95.2381f}, - {14.8238f,85.7143f}, - {10.0619f,76.1905f}, - {5.3000f,61.9048f}, - {5.3000f,38.0952f}, - {10.0619f,23.8095f}, - {14.8238f,14.2857f}, - {24.3476f,4.7619f}, - {33.8714f,0.0000f}, - {52.9190f,0.0000f}, - {62.4429f,4.7619f}, - {71.9667f,14.2857f}, - {76.7286f,23.8095f}, - {81.4905f,38.0952f}, - {81.4905f,61.9048f}, - {76.7286f,76.1905f}, - {71.9667f,85.7143f}, - {62.4429f,95.2381f}, - {52.9190f,100.0000f}, - {33.8714f,100.0000f} -}; - -static const GLUTStrokeVertex ch81st1[] = -{ - {48.1571f,19.0476f}, - {76.7286f,-9.5238f} -}; - -static const GLUTStrokeStrip ch81st[] = -{ - {21,ch81st0}, - {2,ch81st1} -}; - -static const GLUTStrokeChar ch81 = {88.0905f,2,ch81st}; - -/* char: 0x52 */ - -static const GLUTStrokeVertex ch82st0[] = -{ - {11.6800f,100.0000f}, - {11.6800f,0.0000f} -}; - -static const GLUTStrokeVertex ch82st1[] = -{ - {11.6800f,100.0000f}, - {54.5371f,100.0000f}, - {68.8229f,95.2381f}, - {73.5848f,90.4762f}, - {78.3467f,80.9524f}, - {78.3467f,71.4286f}, - {73.5848f,61.9048f}, - {68.8229f,57.1429f}, - {54.5371f,52.3810f}, - {11.6800f,52.3810f} -}; - -static const GLUTStrokeVertex ch82st2[] = -{ - {45.0133f,52.3810f}, - {78.3467f,0.0000f} -}; - -static const GLUTStrokeStrip ch82st[] = -{ - {2,ch82st0}, - {10,ch82st1}, - {2,ch82st2} -}; - -static const GLUTStrokeChar ch82 = {82.3667f,3,ch82st}; - -/* char: 0x53 */ - -static const GLUTStrokeVertex ch83st0[] = -{ - {74.6667f,85.7143f}, - {65.1429f,95.2381f}, - {50.8571f,100.0000f}, - {31.8095f,100.0000f}, - {17.5238f,95.2381f}, - {8.0000f,85.7143f}, - {8.0000f,76.1905f}, - {12.7619f,66.6667f}, - {17.5238f,61.9048f}, - {27.0476f,57.1429f}, - {55.6190f,47.6190f}, - {65.1429f,42.8571f}, - {69.9048f,38.0952f}, - {74.6667f,28.5714f}, - {74.6667f,14.2857f}, - {65.1429f,4.7619f}, - {50.8571f,0.0000f}, - {31.8095f,0.0000f}, - {17.5238f,4.7619f}, - {8.0000f,14.2857f} -}; - -static const GLUTStrokeStrip ch83st[] = -{ - {20,ch83st0} -}; - -static const GLUTStrokeChar ch83 = {80.8267f,1,ch83st}; - -/* char: 0x54 */ - -static const GLUTStrokeVertex ch84st0[] = -{ - {35.6933f,100.0000f}, - {35.6933f,0.0000f} -}; - -static const GLUTStrokeVertex ch84st1[] = -{ - {2.3600f,100.0000f}, - {69.0267f,100.0000f} -}; - -static const GLUTStrokeStrip ch84st[] = -{ - {2,ch84st0}, - {2,ch84st1} -}; - -static const GLUTStrokeChar ch84 = {71.9467f,2,ch84st}; - -/* char: 0x55 */ - -static const GLUTStrokeVertex ch85st0[] = -{ - {11.5400f,100.0000f}, - {11.5400f,28.5714f}, - {16.3019f,14.2857f}, - {25.8257f,4.7619f}, - {40.1114f,0.0000f}, - {49.6352f,0.0000f}, - {63.9210f,4.7619f}, - {73.4448f,14.2857f}, - {78.2067f,28.5714f}, - {78.2067f,100.0000f} -}; - -static const GLUTStrokeStrip ch85st[] = -{ - {10,ch85st0} -}; - -static const GLUTStrokeChar ch85 = {89.4867f,1,ch85st}; - -/* char: 0x56 */ - -static const GLUTStrokeVertex ch86st0[] = -{ - {2.3600f,100.0000f}, - {40.4552f,0.0000f} -}; - -static const GLUTStrokeVertex ch86st1[] = -{ - {78.5505f,100.0000f}, - {40.4552f,0.0000f} -}; - -static const GLUTStrokeStrip ch86st[] = -{ - {2,ch86st0}, - {2,ch86st1} -}; - -static const GLUTStrokeChar ch86 = {81.6105f,2,ch86st}; - -/* char: 0x57 */ - -static const GLUTStrokeVertex ch87st0[] = -{ - {2.2200f,100.0000f}, - {26.0295f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st1[] = -{ - {49.8390f,100.0000f}, - {26.0295f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st2[] = -{ - {49.8390f,100.0000f}, - {73.6486f,0.0000f} -}; - -static const GLUTStrokeVertex ch87st3[] = -{ - {97.4581f,100.0000f}, - {73.6486f,0.0000f} -}; - -static const GLUTStrokeStrip ch87st[] = -{ - {2,ch87st0}, - {2,ch87st1}, - {2,ch87st2}, - {2,ch87st3} -}; - -static const GLUTStrokeChar ch87 = {100.5181f,4,ch87st}; - -/* char: 0x58 */ - -static const GLUTStrokeVertex ch88st0[] = -{ - {2.5000f,100.0000f}, - {69.1667f,0.0000f} -}; - -static const GLUTStrokeVertex ch88st1[] = -{ - {69.1667f,100.0000f}, - {2.5000f,0.0000f} -}; - -static const GLUTStrokeStrip ch88st[] = -{ - {2,ch88st0}, - {2,ch88st1} -}; - -static const GLUTStrokeChar ch88 = {72.3667f,2,ch88st}; - -/* char: 0x59 */ - -static const GLUTStrokeVertex ch89st0[] = -{ - {1.5200f,100.0000f}, - {39.6152f,52.3810f}, - {39.6152f,0.0000f} -}; - -static const GLUTStrokeVertex ch89st1[] = -{ - {77.7105f,100.0000f}, - {39.6152f,52.3810f} -}; - -static const GLUTStrokeStrip ch89st[] = -{ - {3,ch89st0}, - {2,ch89st1} -}; - -static const GLUTStrokeChar ch89 = {79.6505f,2,ch89st}; - -/* char: 0x5a */ - -static const GLUTStrokeVertex ch90st0[] = -{ - {69.1667f,100.0000f}, - {2.5000f,0.0000f} -}; - -static const GLUTStrokeVertex ch90st1[] = -{ - {2.5000f,100.0000f}, - {69.1667f,100.0000f} -}; - -static const GLUTStrokeVertex ch90st2[] = -{ - {2.5000f,0.0000f}, - {69.1667f,0.0000f} -}; - -static const GLUTStrokeStrip ch90st[] = -{ - {2,ch90st0}, - {2,ch90st1}, - {2,ch90st2} -}; - -static const GLUTStrokeChar ch90 = {73.7467f,3,ch90st}; - -/* char: 0x5b */ - -static const GLUTStrokeVertex ch91st0[] = -{ - {7.7800f,119.0476f}, - {7.7800f,-33.3333f} -}; - -static const GLUTStrokeVertex ch91st1[] = -{ - {12.5419f,119.0476f}, - {12.5419f,-33.3333f} -}; - -static const GLUTStrokeVertex ch91st2[] = -{ - {7.7800f,119.0476f}, - {41.1133f,119.0476f} -}; - -static const GLUTStrokeVertex ch91st3[] = -{ - {7.7800f,-33.3333f}, - {41.1133f,-33.3333f} -}; - -static const GLUTStrokeStrip ch91st[] = -{ - {2,ch91st0}, - {2,ch91st1}, - {2,ch91st2}, - {2,ch91st3} -}; - -static const GLUTStrokeChar ch91 = {46.1133f,4,ch91st}; - -/* char: 0x5c */ - -static const GLUTStrokeVertex ch92st0[] = -{ - {5.8400f,100.0000f}, - {72.5067f,-14.2857f} -}; - -static const GLUTStrokeStrip ch92st[] = -{ - {2,ch92st0} -}; - -static const GLUTStrokeChar ch92 = {78.2067f,1,ch92st}; - -/* char: 0x5d */ - -static const GLUTStrokeVertex ch93st0[] = -{ - {33.0114f,119.0476f}, - {33.0114f,-33.3333f} -}; - -static const GLUTStrokeVertex ch93st1[] = -{ - {37.7733f,119.0476f}, - {37.7733f,-33.3333f} -}; - -static const GLUTStrokeVertex ch93st2[] = -{ - {4.4400f,119.0476f}, - {37.7733f,119.0476f} -}; - -static const GLUTStrokeVertex ch93st3[] = -{ - {4.4400f,-33.3333f}, - {37.7733f,-33.3333f} -}; - -static const GLUTStrokeStrip ch93st[] = -{ - {2,ch93st0}, - {2,ch93st1}, - {2,ch93st2}, - {2,ch93st3} -}; - -static const GLUTStrokeChar ch93 = {46.3933f,4,ch93st}; - -/* char: 0x5e */ - -static const GLUTStrokeVertex ch94st0[] = -{ - {44.0752f,109.5238f}, - {5.9800f,42.8571f} -}; - -static const GLUTStrokeVertex ch94st1[] = -{ - {44.0752f,109.5238f}, - {82.1705f,42.8571f} -}; - -static const GLUTStrokeStrip ch94st[] = -{ - {2,ch94st0}, - {2,ch94st1} -}; - -static const GLUTStrokeChar ch94 = {90.2305f,2,ch94st}; - -/* char: 0x5f */ - -static const GLUTStrokeVertex ch95st0[] = -{ - {-1.1000f,-33.3333f}, - {103.6619f,-33.3333f}, - {103.6619f,-28.5714f}, - {-1.1000f,-28.5714f}, - {-1.1000f,-33.3333f} -}; - -static const GLUTStrokeStrip ch95st[] = -{ - {5,ch95st0} -}; - -static const GLUTStrokeChar ch95 = {104.0619f,1,ch95st}; - -/* char: 0x60 */ - -static const GLUTStrokeVertex ch96st0[] = -{ - {33.0219f,100.0000f}, - {56.8314f,71.4286f} -}; - -static const GLUTStrokeVertex ch96st1[] = -{ - {33.0219f,100.0000f}, - {28.2600f,95.2381f}, - {56.8314f,71.4286f} -}; - -static const GLUTStrokeStrip ch96st[] = -{ - {2,ch96st0}, - {3,ch96st1} -}; - -static const GLUTStrokeChar ch96 = {83.5714f,2,ch96st}; - -/* char: 0x61 */ - -static const GLUTStrokeVertex ch97st0[] = -{ - {63.8229f,66.6667f}, - {63.8229f,0.0000f} -}; - -static const GLUTStrokeVertex ch97st1[] = -{ - {63.8229f,52.3810f}, - {54.2990f,61.9048f}, - {44.7752f,66.6667f}, - {30.4895f,66.6667f}, - {20.9657f,61.9048f}, - {11.4419f,52.3810f}, - {6.6800f,38.0952f}, - {6.6800f,28.5714f}, - {11.4419f,14.2857f}, - {20.9657f,4.7619f}, - {30.4895f,0.0000f}, - {44.7752f,0.0000f}, - {54.2990f,4.7619f}, - {63.8229f,14.2857f} -}; - -static const GLUTStrokeStrip ch97st[] = -{ - {2,ch97st0}, - {14,ch97st1} -}; - -static const GLUTStrokeChar ch97 = {66.6029f,2,ch97st}; - -/* char: 0x62 */ - -static const GLUTStrokeVertex ch98st0[] = -{ - {8.7600f,100.0000f}, - {8.7600f,0.0000f} -}; - -static const GLUTStrokeVertex ch98st1[] = -{ - {8.7600f,52.3810f}, - {18.2838f,61.9048f}, - {27.8076f,66.6667f}, - {42.0933f,66.6667f}, - {51.6171f,61.9048f}, - {61.1410f,52.3810f}, - {65.9029f,38.0952f}, - {65.9029f,28.5714f}, - {61.1410f,14.2857f}, - {51.6171f,4.7619f}, - {42.0933f,0.0000f}, - {27.8076f,0.0000f}, - {18.2838f,4.7619f}, - {8.7600f,14.2857f} -}; - -static const GLUTStrokeStrip ch98st[] = -{ - {2,ch98st0}, - {14,ch98st1} -}; - -static const GLUTStrokeChar ch98 = {70.4629f,2,ch98st}; - -/* char: 0x63 */ - -static const GLUTStrokeVertex ch99st0[] = -{ - {62.6629f,52.3810f}, - {53.1390f,61.9048f}, - {43.6152f,66.6667f}, - {29.3295f,66.6667f}, - {19.8057f,61.9048f}, - {10.2819f,52.3810f}, - {5.5200f,38.0952f}, - {5.5200f,28.5714f}, - {10.2819f,14.2857f}, - {19.8057f,4.7619f}, - {29.3295f,0.0000f}, - {43.6152f,0.0000f}, - {53.1390f,4.7619f}, - {62.6629f,14.2857f} -}; - -static const GLUTStrokeStrip ch99st[] = -{ - {14,ch99st0} -}; - -static const GLUTStrokeChar ch99 = {68.9229f,1,ch99st}; - -/* char: 0x64 */ - -static const GLUTStrokeVertex ch100st0[] = -{ - {61.7829f,100.0000f}, - {61.7829f,0.0000f} -}; - -static const GLUTStrokeVertex ch100st1[] = -{ - {61.7829f,52.3810f}, - {52.2590f,61.9048f}, - {42.7352f,66.6667f}, - {28.4495f,66.6667f}, - {18.9257f,61.9048f}, - {9.4019f,52.3810f}, - {4.6400f,38.0952f}, - {4.6400f,28.5714f}, - {9.4019f,14.2857f}, - {18.9257f,4.7619f}, - {28.4495f,0.0000f}, - {42.7352f,0.0000f}, - {52.2590f,4.7619f}, - {61.7829f,14.2857f} -}; - -static const GLUTStrokeStrip ch100st[] = -{ - {2,ch100st0}, - {14,ch100st1} -}; - -static const GLUTStrokeChar ch100 = {70.2629f,2,ch100st}; - -/* char: 0x65 */ - -static const GLUTStrokeVertex ch101st0[] = -{ - {5.7200f,38.0952f}, - {62.8629f,38.0952f}, - {62.8629f,47.6190f}, - {58.1010f,57.1429f}, - {53.3390f,61.9048f}, - {43.8152f,66.6667f}, - {29.5295f,66.6667f}, - {20.0057f,61.9048f}, - {10.4819f,52.3810f}, - {5.7200f,38.0952f}, - {5.7200f,28.5714f}, - {10.4819f,14.2857f}, - {20.0057f,4.7619f}, - {29.5295f,0.0000f}, - {43.8152f,0.0000f}, - {53.3390f,4.7619f}, - {62.8629f,14.2857f} -}; - -static const GLUTStrokeStrip ch101st[] = -{ - {17,ch101st0} -}; - -static const GLUTStrokeChar ch101 = {68.5229f,1,ch101st}; - -/* char: 0x66 */ - -static const GLUTStrokeVertex ch102st0[] = -{ - {38.7752f,100.0000f}, - {29.2514f,100.0000f}, - {19.7276f,95.2381f}, - {14.9657f,80.9524f}, - {14.9657f,0.0000f} -}; - -static const GLUTStrokeVertex ch102st1[] = -{ - {0.6800f,66.6667f}, - {34.0133f,66.6667f} -}; - -static const GLUTStrokeStrip ch102st[] = -{ - {5,ch102st0}, - {2,ch102st1} -}; - -static const GLUTStrokeChar ch102 = {38.6552f,2,ch102st}; - -/* char: 0x67 */ - -static const GLUTStrokeVertex ch103st0[] = -{ - {62.5029f,66.6667f}, - {62.5029f,-9.5238f}, - {57.7410f,-23.8095f}, - {52.9790f,-28.5714f}, - {43.4552f,-33.3333f}, - {29.1695f,-33.3333f}, - {19.6457f,-28.5714f} -}; - -static const GLUTStrokeVertex ch103st1[] = -{ - {62.5029f,52.3810f}, - {52.9790f,61.9048f}, - {43.4552f,66.6667f}, - {29.1695f,66.6667f}, - {19.6457f,61.9048f}, - {10.1219f,52.3810f}, - {5.3600f,38.0952f}, - {5.3600f,28.5714f}, - {10.1219f,14.2857f}, - {19.6457f,4.7619f}, - {29.1695f,0.0000f}, - {43.4552f,0.0000f}, - {52.9790f,4.7619f}, - {62.5029f,14.2857f} -}; - -static const GLUTStrokeStrip ch103st[] = -{ - {7,ch103st0}, - {14,ch103st1} -}; - -static const GLUTStrokeChar ch103 = {70.9829f,2,ch103st}; - -/* char: 0x68 */ - -static const GLUTStrokeVertex ch104st0[] = -{ - {9.6000f,100.0000f}, - {9.6000f,0.0000f} -}; - -static const GLUTStrokeVertex ch104st1[] = -{ - {9.6000f,47.6190f}, - {23.8857f,61.9048f}, - {33.4095f,66.6667f}, - {47.6952f,66.6667f}, - {57.2190f,61.9048f}, - {61.9810f,47.6190f}, - {61.9810f,0.0000f} -}; - -static const GLUTStrokeStrip ch104st[] = -{ - {2,ch104st0}, - {7,ch104st1} -}; - -static const GLUTStrokeChar ch104 = {71.0210f,2,ch104st}; - -/* char: 0x69 */ - -static const GLUTStrokeVertex ch105st0[] = -{ - {10.0200f,100.0000f}, - {14.7819f,95.2381f}, - {19.5438f,100.0000f}, - {14.7819f,104.7619f}, - {10.0200f,100.0000f} -}; - -static const GLUTStrokeVertex ch105st1[] = -{ - {14.7819f,66.6667f}, - {14.7819f,0.0000f} -}; - -static const GLUTStrokeStrip ch105st[] = -{ - {5,ch105st0}, - {2,ch105st1} -}; - -static const GLUTStrokeChar ch105 = {28.8638f,2,ch105st}; - -/* char: 0x6a */ - -static const GLUTStrokeVertex ch106st0[] = -{ - {17.3876f,100.0000f}, - {22.1495f,95.2381f}, - {26.9114f,100.0000f}, - {22.1495f,104.7619f}, - {17.3876f,100.0000f} -}; - -static const GLUTStrokeVertex ch106st1[] = -{ - {22.1495f,66.6667f}, - {22.1495f,-14.2857f}, - {17.3876f,-28.5714f}, - {7.8638f,-33.3333f}, - {-1.6600f,-33.3333f} -}; - -static const GLUTStrokeStrip ch106st[] = -{ - {5,ch106st0}, - {5,ch106st1} -}; - -static const GLUTStrokeChar ch106 = {36.2314f,2,ch106st}; - -/* char: 0x6b */ - -static const GLUTStrokeVertex ch107st0[] = -{ - {9.6000f,100.0000f}, - {9.6000f,0.0000f} -}; - -static const GLUTStrokeVertex ch107st1[] = -{ - {57.2190f,66.6667f}, - {9.6000f,19.0476f} -}; - -static const GLUTStrokeVertex ch107st2[] = -{ - {28.6476f,38.0952f}, - {61.9810f,0.0000f} -}; - -static const GLUTStrokeStrip ch107st[] = -{ - {2,ch107st0}, - {2,ch107st1}, - {2,ch107st2} -}; - -static const GLUTStrokeChar ch107 = {62.5210f,3,ch107st}; - -/* char: 0x6c */ - -static const GLUTStrokeVertex ch108st0[] = -{ - {10.0200f,100.0000f}, - {10.0200f,0.0000f} -}; - -static const GLUTStrokeStrip ch108st[] = -{ - {2,ch108st0} -}; - -static const GLUTStrokeChar ch108 = {19.3400f,1,ch108st}; - -/* char: 0x6d */ - -static const GLUTStrokeVertex ch109st0[] = -{ - {9.6000f,66.6667f}, - {9.6000f,0.0000f} -}; - -static const GLUTStrokeVertex ch109st1[] = -{ - {9.6000f,47.6190f}, - {23.8857f,61.9048f}, - {33.4095f,66.6667f}, - {47.6952f,66.6667f}, - {57.2190f,61.9048f}, - {61.9810f,47.6190f}, - {61.9810f,0.0000f} -}; - -static const GLUTStrokeVertex ch109st2[] = -{ - {61.9810f,47.6190f}, - {76.2667f,61.9048f}, - {85.7905f,66.6667f}, - {100.0762f,66.6667f}, - {109.6000f,61.9048f}, - {114.3619f,47.6190f}, - {114.3619f,0.0000f} -}; - -static const GLUTStrokeStrip ch109st[] = -{ - {2,ch109st0}, - {7,ch109st1}, - {7,ch109st2} -}; - -static const GLUTStrokeChar ch109 = {123.9619f,3,ch109st}; - -/* char: 0x6e */ - -static const GLUTStrokeVertex ch110st0[] = -{ - {9.1800f,66.6667f}, - {9.1800f,0.0000f} -}; - -static const GLUTStrokeVertex ch110st1[] = -{ - {9.1800f,47.6190f}, - {23.4657f,61.9048f}, - {32.9895f,66.6667f}, - {47.2752f,66.6667f}, - {56.7990f,61.9048f}, - {61.5610f,47.6190f}, - {61.5610f,0.0000f} -}; - -static const GLUTStrokeStrip ch110st[] = -{ - {2,ch110st0}, - {7,ch110st1} -}; - -static const GLUTStrokeChar ch110 = {70.8810f,2,ch110st}; - -/* char: 0x6f */ - -static const GLUTStrokeVertex ch111st0[] = -{ - {28.7895f,66.6667f}, - {19.2657f,61.9048f}, - {9.7419f,52.3810f}, - {4.9800f,38.0952f}, - {4.9800f,28.5714f}, - {9.7419f,14.2857f}, - {19.2657f,4.7619f}, - {28.7895f,0.0000f}, - {43.0752f,0.0000f}, - {52.5990f,4.7619f}, - {62.1229f,14.2857f}, - {66.8848f,28.5714f}, - {66.8848f,38.0952f}, - {62.1229f,52.3810f}, - {52.5990f,61.9048f}, - {43.0752f,66.6667f}, - {28.7895f,66.6667f} -}; - -static const GLUTStrokeStrip ch111st[] = -{ - {17,ch111st0} -}; - -static const GLUTStrokeChar ch111 = {71.7448f,1,ch111st}; - -/* char: 0x70 */ - -static const GLUTStrokeVertex ch112st0[] = -{ - {9.4600f,66.6667f}, - {9.4600f,-33.3333f} -}; - -static const GLUTStrokeVertex ch112st1[] = -{ - {9.4600f,52.3810f}, - {18.9838f,61.9048f}, - {28.5076f,66.6667f}, - {42.7933f,66.6667f}, - {52.3171f,61.9048f}, - {61.8410f,52.3810f}, - {66.6029f,38.0952f}, - {66.6029f,28.5714f}, - {61.8410f,14.2857f}, - {52.3171f,4.7619f}, - {42.7933f,0.0000f}, - {28.5076f,0.0000f}, - {18.9838f,4.7619f}, - {9.4600f,14.2857f} -}; - -static const GLUTStrokeStrip ch112st[] = -{ - {2,ch112st0}, - {14,ch112st1} -}; - -static const GLUTStrokeChar ch112 = {70.8029f,2,ch112st}; - -/* char: 0x71 */ - -static const GLUTStrokeVertex ch113st0[] = -{ - {61.9829f,66.6667f}, - {61.9829f,-33.3333f} -}; - -static const GLUTStrokeVertex ch113st1[] = -{ - {61.9829f,52.3810f}, - {52.4590f,61.9048f}, - {42.9352f,66.6667f}, - {28.6495f,66.6667f}, - {19.1257f,61.9048f}, - {9.6019f,52.3810f}, - {4.8400f,38.0952f}, - {4.8400f,28.5714f}, - {9.6019f,14.2857f}, - {19.1257f,4.7619f}, - {28.6495f,0.0000f}, - {42.9352f,0.0000f}, - {52.4590f,4.7619f}, - {61.9829f,14.2857f} -}; - -static const GLUTStrokeStrip ch113st[] = -{ - {2,ch113st0}, - {14,ch113st1} -}; - -static const GLUTStrokeChar ch113 = {70.7429f,2,ch113st}; - -/* char: 0x72 */ - -static const GLUTStrokeVertex ch114st0[] = -{ - {9.4600f,66.6667f}, - {9.4600f,0.0000f} -}; - -static const GLUTStrokeVertex ch114st1[] = -{ - {9.4600f,38.0952f}, - {14.2219f,52.3810f}, - {23.7457f,61.9048f}, - {33.2695f,66.6667f}, - {47.5552f,66.6667f} -}; - -static const GLUTStrokeStrip ch114st[] = -{ - {2,ch114st0}, - {5,ch114st1} -}; - -static const GLUTStrokeChar ch114 = {49.4952f,2,ch114st}; - -/* char: 0x73 */ - -static const GLUTStrokeVertex ch115st0[] = -{ - {57.0810f,52.3810f}, - {52.3190f,61.9048f}, - {38.0333f,66.6667f}, - {23.7476f,66.6667f}, - {9.4619f,61.9048f}, - {4.7000f,52.3810f}, - {9.4619f,42.8571f}, - {18.9857f,38.0952f}, - {42.7952f,33.3333f}, - {52.3190f,28.5714f}, - {57.0810f,19.0476f}, - {57.0810f,14.2857f}, - {52.3190f,4.7619f}, - {38.0333f,0.0000f}, - {23.7476f,0.0000f}, - {9.4619f,4.7619f}, - {4.7000f,14.2857f} -}; - -static const GLUTStrokeStrip ch115st[] = -{ - {17,ch115st0} -}; - -static const GLUTStrokeChar ch115 = {62.3210f,1,ch115st}; - -/* char: 0x74 */ - -static const GLUTStrokeVertex ch116st0[] = -{ - {14.8257f,100.0000f}, - {14.8257f,19.0476f}, - {19.5876f,4.7619f}, - {29.1114f,0.0000f}, - {38.6352f,0.0000f} -}; - -static const GLUTStrokeVertex ch116st1[] = -{ - {0.5400f,66.6667f}, - {33.8733f,66.6667f} -}; - -static const GLUTStrokeStrip ch116st[] = -{ - {5,ch116st0}, - {2,ch116st1} -}; - -static const GLUTStrokeChar ch116 = {39.3152f,2,ch116st}; - -/* char: 0x75 */ - -static const GLUTStrokeVertex ch117st0[] = -{ - {9.4600f,66.6667f}, - {9.4600f,19.0476f}, - {14.2219f,4.7619f}, - {23.7457f,0.0000f}, - {38.0314f,0.0000f}, - {47.5552f,4.7619f}, - {61.8410f,19.0476f} -}; - -static const GLUTStrokeVertex ch117st1[] = -{ - {61.8410f,66.6667f}, - {61.8410f,0.0000f} -}; - -static const GLUTStrokeStrip ch117st[] = -{ - {7,ch117st0}, - {2,ch117st1} -}; - -static const GLUTStrokeChar ch117 = {71.1610f,2,ch117st}; - -/* char: 0x76 */ - -static const GLUTStrokeVertex ch118st0[] = -{ - {1.8000f,66.6667f}, - {30.3714f,0.0000f} -}; - -static const GLUTStrokeVertex ch118st1[] = -{ - {58.9429f,66.6667f}, - {30.3714f,0.0000f} -}; - -static const GLUTStrokeStrip ch118st[] = -{ - {2,ch118st0}, - {2,ch118st1} -}; - -static const GLUTStrokeChar ch118 = {60.6029f,2,ch118st}; - -/* char: 0x77 */ - -static const GLUTStrokeVertex ch119st0[] = -{ - {2.5000f,66.6667f}, - {21.5476f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st1[] = -{ - {40.5952f,66.6667f}, - {21.5476f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st2[] = -{ - {40.5952f,66.6667f}, - {59.6429f,0.0000f} -}; - -static const GLUTStrokeVertex ch119st3[] = -{ - {78.6905f,66.6667f}, - {59.6429f,0.0000f} -}; - -static const GLUTStrokeStrip ch119st[] = -{ - {2,ch119st0}, - {2,ch119st1}, - {2,ch119st2}, - {2,ch119st3} -}; - -static const GLUTStrokeChar ch119 = {80.4905f,4,ch119st}; - -/* char: 0x78 */ - -static const GLUTStrokeVertex ch120st0[] = -{ - {1.6600f,66.6667f}, - {54.0410f,0.0000f} -}; - -static const GLUTStrokeVertex ch120st1[] = -{ - {54.0410f,66.6667f}, - {1.6600f,0.0000f} -}; - -static const GLUTStrokeStrip ch120st[] = -{ - {2,ch120st0}, - {2,ch120st1} -}; - -static const GLUTStrokeChar ch120 = {56.4010f,2,ch120st}; - -/* char: 0x79 */ - -static const GLUTStrokeVertex ch121st0[] = -{ - {6.5619f,66.6667f}, - {35.1333f,0.0000f} -}; - -static const GLUTStrokeVertex ch121st1[] = -{ - {63.7048f,66.6667f}, - {35.1333f,0.0000f}, - {25.6095f,-19.0476f}, - {16.0857f,-28.5714f}, - {6.5619f,-33.3333f}, - {1.8000f,-33.3333f} -}; - -static const GLUTStrokeStrip ch121st[] = -{ - {2,ch121st0}, - {6,ch121st1} -}; - -static const GLUTStrokeChar ch121 = {66.0648f,2,ch121st}; - -/* char: 0x7a */ - -static const GLUTStrokeVertex ch122st0[] = -{ - {56.8210f,66.6667f}, - {4.4400f,0.0000f} -}; - -static const GLUTStrokeVertex ch122st1[] = -{ - {4.4400f,66.6667f}, - {56.8210f,66.6667f} -}; - -static const GLUTStrokeVertex ch122st2[] = -{ - {4.4400f,0.0000f}, - {56.8210f,0.0000f} -}; - -static const GLUTStrokeStrip ch122st[] = -{ - {2,ch122st0}, - {2,ch122st1}, - {2,ch122st2} -}; - -static const GLUTStrokeChar ch122 = {61.8210f,3,ch122st}; - -/* char: 0x7b */ - -static const GLUTStrokeVertex ch123st0[] = -{ - {31.1895f,119.0476f}, - {21.6657f,114.2857f}, - {16.9038f,109.5238f}, - {12.1419f,100.0000f}, - {12.1419f,90.4762f}, - {16.9038f,80.9524f}, - {21.6657f,76.1905f}, - {26.4276f,66.6667f}, - {26.4276f,57.1429f}, - {16.9038f,47.6190f} -}; - -static const GLUTStrokeVertex ch123st1[] = -{ - {21.6657f,114.2857f}, - {16.9038f,104.7619f}, - {16.9038f,95.2381f}, - {21.6657f,85.7143f}, - {26.4276f,80.9524f}, - {31.1895f,71.4286f}, - {31.1895f,61.9048f}, - {26.4276f,52.3810f}, - {7.3800f,42.8571f}, - {26.4276f,33.3333f}, - {31.1895f,23.8095f}, - {31.1895f,14.2857f}, - {26.4276f,4.7619f}, - {21.6657f,0.0000f}, - {16.9038f,-9.5238f}, - {16.9038f,-19.0476f}, - {21.6657f,-28.5714f} -}; - -static const GLUTStrokeVertex ch123st2[] = -{ - {16.9038f,38.0952f}, - {26.4276f,28.5714f}, - {26.4276f,19.0476f}, - {21.6657f,9.5238f}, - {16.9038f,4.7619f}, - {12.1419f,-4.7619f}, - {12.1419f,-14.2857f}, - {16.9038f,-23.8095f}, - {21.6657f,-28.5714f}, - {31.1895f,-33.3333f} -}; - -static const GLUTStrokeStrip ch123st[] = -{ - {10,ch123st0}, - {17,ch123st1}, - {10,ch123st2} -}; - -static const GLUTStrokeChar ch123 = {41.6295f,3,ch123st}; - -/* char: 0x7c */ - -static const GLUTStrokeVertex ch124st0[] = -{ - {11.5400f,119.0476f}, - {11.5400f,-33.3333f} -}; - -static const GLUTStrokeStrip ch124st[] = -{ - {2,ch124st0} -}; - -static const GLUTStrokeChar ch124 = {23.7800f,1,ch124st}; - -/* char: 0x7d */ - -static const GLUTStrokeVertex ch125st0[] = -{ - {9.1800f,119.0476f}, - {18.7038f,114.2857f}, - {23.4657f,109.5238f}, - {28.2276f,100.0000f}, - {28.2276f,90.4762f}, - {23.4657f,80.9524f}, - {18.7038f,76.1905f}, - {13.9419f,66.6667f}, - {13.9419f,57.1429f}, - {23.4657f,47.6190f} -}; - -static const GLUTStrokeVertex ch125st1[] = -{ - {18.7038f,114.2857f}, - {23.4657f,104.7619f}, - {23.4657f,95.2381f}, - {18.7038f,85.7143f}, - {13.9419f,80.9524f}, - {9.1800f,71.4286f}, - {9.1800f,61.9048f}, - {13.9419f,52.3810f}, - {32.9895f,42.8571f}, - {13.9419f,33.3333f}, - {9.1800f,23.8095f}, - {9.1800f,14.2857f}, - {13.9419f,4.7619f}, - {18.7038f,0.0000f}, - {23.4657f,-9.5238f}, - {23.4657f,-19.0476f}, - {18.7038f,-28.5714f} -}; - -static const GLUTStrokeVertex ch125st2[] = -{ - {23.4657f,38.0952f}, - {13.9419f,28.5714f}, - {13.9419f,19.0476f}, - {18.7038f,9.5238f}, - {23.4657f,4.7619f}, - {28.2276f,-4.7619f}, - {28.2276f,-14.2857f}, - {23.4657f,-23.8095f}, - {18.7038f,-28.5714f}, - {9.1800f,-33.3333f} -}; - -static const GLUTStrokeStrip ch125st[] = -{ - {10,ch125st0}, - {17,ch125st1}, - {10,ch125st2} -}; - -static const GLUTStrokeChar ch125 = {41.4695f,3,ch125st}; - -/* char: 0x7e */ - -static const GLUTStrokeVertex ch126st0[] = -{ - {2.9200f,28.5714f}, - {2.9200f,38.0952f}, - {7.6819f,52.3810f}, - {17.2057f,57.1429f}, - {26.7295f,57.1429f}, - {36.2533f,52.3810f}, - {55.3010f,38.0952f}, - {64.8248f,33.3333f}, - {74.3486f,33.3333f}, - {83.8724f,38.0952f}, - {88.6343f,47.6190f} -}; - -static const GLUTStrokeVertex ch126st1[] = -{ - {2.9200f,38.0952f}, - {7.6819f,47.6190f}, - {17.2057f,52.3810f}, - {26.7295f,52.3810f}, - {36.2533f,47.6190f}, - {55.3010f,33.3333f}, - {64.8248f,28.5714f}, - {74.3486f,28.5714f}, - {83.8724f,33.3333f}, - {88.6343f,47.6190f}, - {88.6343f,57.1429f} -}; - -static const GLUTStrokeStrip ch126st[] = -{ - {11,ch126st0}, - {11,ch126st1} -}; - -static const GLUTStrokeChar ch126 = {91.2743f,2,ch126st}; - -static const GLUTStrokeChar *chars[] = -{ - 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, - &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 -}; - -const GLUTStrokeFont glutStrokeRoman = {"Roman",128,chars,152.3809f,33.3333f}; diff --git a/src/glut/dos/shapes.c b/src/glut/dos/shapes.c deleted file mode 100644 index 4edebe90ed..0000000000 --- a/src/glut/dos/shapes.c +++ /dev/null @@ -1,1143 +0,0 @@ -/* - * freeglut_geometry.c - * - * Freeglut geometry rendering methods. - * - * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. - * Written by Pawel W. Olszta, <olszta@sourceforge.net> - * Creation date: Fri Dec 3 1999 - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include <math.h> -#include "internal.h" - -/* - * TODO BEFORE THE STABLE RELEASE: - * - * Following functions have been contributed by Andreas Umbach. - * - * glutWireCube() -- looks OK - * glutSolidCube() -- OK - * - * Those functions have been implemented by John Fay. - * - * glutWireTorus() -- looks OK - * glutSolidTorus() -- looks OK - * glutWireDodecahedron() -- looks OK - * glutSolidDodecahedron() -- looks OK - * glutWireOctahedron() -- looks OK - * glutSolidOctahedron() -- looks OK - * glutWireTetrahedron() -- looks OK - * glutSolidTetrahedron() -- looks OK - * glutWireIcosahedron() -- looks OK - * glutSolidIcosahedron() -- looks OK - * - * The Following functions have been updated by Nigel Stewart, based - * on FreeGLUT 2.0.0 implementations: - * - * glutWireSphere() -- looks OK - * glutSolidSphere() -- looks OK - * glutWireCone() -- looks OK - * glutSolidCone() -- looks OK - */ - - -/* -- INTERFACE FUNCTIONS -------------------------------------------------- */ - -/* - * Draws a wireframed cube. Code contributed by Andreas Umbach <marvin@dataway.ch> - */ -void GLUTAPIENTRY glutWireCube( GLdouble dSize ) -{ - double size = dSize * 0.5; - -# define V(a,b,c) glVertex3d( a size, b size, c size ); -# define N(a,b,c) glNormal3d( a, b, c ); - - /* - * PWO: I dared to convert the code to use macros... - */ - glBegin( GL_LINE_LOOP ); N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); glEnd(); - glBegin( GL_LINE_LOOP ); N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); glEnd(); - glBegin( GL_LINE_LOOP ); N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); glEnd(); - glBegin( GL_LINE_LOOP ); N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); glEnd(); - glBegin( GL_LINE_LOOP ); N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); glEnd(); - glBegin( GL_LINE_LOOP ); N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); glEnd(); - -# undef V -# undef N -} - -/* - * Draws a solid cube. Code contributed by Andreas Umbach <marvin@dataway.ch> - */ -void GLUTAPIENTRY glutSolidCube( GLdouble dSize ) -{ - double size = dSize * 0.5; - -# define V(a,b,c) glVertex3d( a size, b size, c size ); -# define N(a,b,c) glNormal3d( a, b, c ); - - /* - * PWO: Again, I dared to convert the code to use macros... - */ - glBegin( GL_QUADS ); - N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); - N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); - N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); - N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); - N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); - N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); - glEnd(); - -# undef V -# undef N -} - -/* - * Compute lookup table of cos and sin values forming a cirle - * - * Notes: - * It is the responsibility of the caller to free these tables - * The size of the table is (n+1) to form a connected loop - * The last entry is exactly the same as the first - * The sign of n can be flipped to get the reverse loop - */ - -static void circleTable(double **sint,double **cost,const int n) -{ - int i; - - /* Table size, the sign of n flips the circle direction */ - - const int size = abs(n); - - /* Determine the angle between samples */ - - const double angle = 2*M_PI/(double)n; - - /* Allocate memory for n samples, plus duplicate of first entry at the end */ - - *sint = (double *) calloc(sizeof(double), size+1); - *cost = (double *) calloc(sizeof(double), size+1); - - /* Bail out if memory allocation fails, fgError never returns */ - - if (!(*sint) || !(*cost)) - { - free(*sint); - free(*cost); - _glut_fatal("Failed to allocate memory in circleTable"); - } - - /* Compute cos and sin around the circle */ - - for (i=0; i<size; i++) - { - (*sint)[i] = sin(angle*i); - (*cost)[i] = cos(angle*i); - } - - /* Last sample is duplicate of the first */ - - (*sint)[size] = (*sint)[0]; - (*cost)[size] = (*cost)[0]; -} - -/* - * Draws a solid sphere - */ -void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) -{ - int i,j; - - /* Adjust z and radius as stacks are drawn. */ - - double z0,z1; - double r0,r1; - - /* Pre-computed circle */ - - double *sint1,*cost1; - double *sint2,*cost2; - circleTable(&sint1,&cost1,-slices); - circleTable(&sint2,&cost2,stacks*2); - - /* The top stack is covered with a triangle fan */ - - z0 = 1.0; - z1 = cost2[1]; - r0 = 0.0; - r1 = sint2[1]; - - glBegin(GL_TRIANGLE_FAN); - - glNormal3d(0,0,1); - glVertex3d(0,0,radius); - - for (j=slices; j>=0; j--) - { - glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); - glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); - } - - glEnd(); - - /* Cover each stack with a quad strip, except the top and bottom stacks */ - - for( i=1; i<stacks-1; i++ ) - { - z0 = z1; z1 = cost2[i+1]; - r0 = r1; r1 = sint2[i+1]; - - glBegin(GL_QUAD_STRIP); - - for(j=0; j<=slices; j++) - { - glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); - glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); - glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); - glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); - } - - glEnd(); - } - - /* The bottom stack is covered with a triangle fan */ - - z0 = z1; - r0 = r1; - - glBegin(GL_TRIANGLE_FAN); - - glNormal3d(0,0,-1); - glVertex3d(0,0,-radius); - - for (j=0; j<=slices; j++) - { - glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); - glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); - } - - glEnd(); - - /* Release sin and cos tables */ - - free(sint1); - free(cost1); - free(sint2); - free(cost2); -} - -/* - * Draws a solid sphere - */ -void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks) -{ - int i,j; - - /* Adjust z and radius as stacks and slices are drawn. */ - - double r; - double x,y,z; - - /* Pre-computed circle */ - - double *sint1,*cost1; - double *sint2,*cost2; - circleTable(&sint1,&cost1,-slices ); - circleTable(&sint2,&cost2, stacks*2); - - /* Draw a line loop for each stack */ - - for (i=1; i<stacks; i++) - { - z = cost2[i]; - r = sint2[i]; - - glBegin(GL_LINE_LOOP); - - for(j=0; j<=slices; j++) - { - x = cost1[j]; - y = sint1[j]; - - glNormal3d(x,y,z); - glVertex3d(x*r*radius,y*r*radius,z*radius); - } - - glEnd(); - } - - /* Draw a line loop for each slice */ - - for (i=0; i<slices; i++) - { - glBegin(GL_LINE_STRIP); - - for(j=0; j<=stacks; j++) - { - x = cost1[i]*sint2[j]; - y = sint1[i]*sint2[j]; - z = cost2[j]; - - glNormal3d(x,y,z); - glVertex3d(x*radius,y*radius,z*radius); - } - - glEnd(); - } - - /* Release sin and cos tables */ - - free(sint1); - free(cost1); - free(sint2); - free(cost2); -} - -/* - * Draws a solid cone - */ -void GLUTAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ) -{ - int i,j; - - /* Step in z and radius as stacks are drawn. */ - - double z0,z1; - double r0,r1; - - const double zStep = height/stacks; - const double rStep = base/stacks; - - /* Scaling factors for vertex normals */ - - const double cosn = ( height / sqrt ( height * height + base * base )); - const double sinn = ( base / sqrt ( height * height + base * base )); - - /* Pre-computed circle */ - - double *sint,*cost; - circleTable(&sint,&cost,-slices); - - /* Cover the circular base with a triangle fan... */ - - z0 = 0.0; - z1 = zStep; - - r0 = base; - r1 = r0 - rStep; - - glBegin(GL_TRIANGLE_FAN); - - glNormal3d(0.0,0.0,-1.0); - glVertex3d(0.0,0.0, z0 ); - - for (j=0; j<=slices; j++) - glVertex3d(cost[j]*r0, sint[j]*r0, z0); - - glEnd(); - - /* Cover each stack with a quad strip, except the top stack */ - - for( i=0; i<stacks-1; i++ ) - { - glBegin(GL_QUAD_STRIP); - - for(j=0; j<=slices; j++) - { - glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn); - glVertex3d(cost[j]*r0, sint[j]*r0, z0 ); - glVertex3d(cost[j]*r1, sint[j]*r1, z1 ); - } - - z0 = z1; z1 += zStep; - r0 = r1; r1 -= rStep; - - glEnd(); - } - - /* The top stack is covered with individual triangles */ - - glBegin(GL_TRIANGLES); - - glNormal3d(cost[0]*sinn, sint[0]*sinn, cosn); - - for (j=0; j<slices; j++) - { - glVertex3d(cost[j+0]*r0, sint[j+0]*r0, z0 ); - glVertex3d(0, 0, height); - glNormal3d(cost[j+1]*sinn, sint[j+1]*sinn, cosn ); - glVertex3d(cost[j+1]*r0, sint[j+1]*r0, z0 ); - } - - glEnd(); - - /* Release sin and cos tables */ - - free(sint); - free(cost); -} - -/* - * Draws a wire cone - */ -void GLUTAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks) -{ - int i,j; - - /* Step in z and radius as stacks are drawn. */ - - double z = 0.0; - double r = base; - - const double zStep = height/stacks; - const double rStep = base/stacks; - - /* Scaling factors for vertex normals */ - - const double cosn = ( height / sqrt ( height * height + base * base )); - const double sinn = ( base / sqrt ( height * height + base * base )); - - /* Pre-computed circle */ - - double *sint,*cost; - circleTable(&sint,&cost,-slices); - - /* Draw the stacks... */ - - for (i=0; i<stacks; i++) - { - glBegin(GL_LINE_LOOP); - - for( j=0; j<slices; j++ ) - { - glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn); - glVertex3d(cost[j]*r, sint[j]*r, z ); - } - - glEnd(); - - z += zStep; - r -= rStep; - } - - /* Draw the slices */ - - r = base; - - glBegin(GL_LINES); - - for (j=0; j<slices; j++) - { - glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn ); - glVertex3d(cost[j]*r, sint[j]*r, 0.0 ); - glVertex3d(0.0, 0.0, height); - } - - glEnd(); - - /* Release sin and cos tables */ - - free(sint); - free(cost); -} - - -/* - * Draws a solid cylinder - */ -void GLUTAPIENTRY glutSolidCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks) -{ - int i,j; - - /* Step in z and radius as stacks are drawn. */ - - double z0,z1; - const double zStep = height/stacks; - - /* Pre-computed circle */ - - double *sint,*cost; - circleTable(&sint,&cost,-slices); - - /* Cover the base and top */ - - glBegin(GL_TRIANGLE_FAN); - glNormal3d(0.0, 0.0, -1.0 ); - glVertex3d(0.0, 0.0, 0.0 ); - for (j=0; j<=slices; j++) - glVertex3d(cost[j]*radius, sint[j]*radius, 0.0); - glEnd(); - - glBegin(GL_TRIANGLE_FAN); - glNormal3d(0.0, 0.0, 1.0 ); - glVertex3d(0.0, 0.0, height); - for (j=slices; j>=0; j--) - glVertex3d(cost[j]*radius, sint[j]*radius, height); - glEnd(); - - /* Do the stacks */ - - z0 = 0.0; - z1 = zStep; - - for (i=1; i<=stacks; i++) - { - if (i==stacks) - z1 = height; - - glBegin(GL_QUAD_STRIP); - for (j=0; j<=slices; j++ ) - { - glNormal3d(cost[j], sint[j], 0.0 ); - glVertex3d(cost[j]*radius, sint[j]*radius, z0 ); - glVertex3d(cost[j]*radius, sint[j]*radius, z1 ); - } - glEnd(); - - z0 = z1; z1 += zStep; - } - - /* Release sin and cos tables */ - - free(sint); - free(cost); -} - -/* - * Draws a wire cylinder - */ -void GLUTAPIENTRY glutWireCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks) -{ - int i,j; - - /* Step in z and radius as stacks are drawn. */ - - double z = 0.0; - const double zStep = height/stacks; - - /* Pre-computed circle */ - - double *sint,*cost; - circleTable(&sint,&cost,-slices); - - /* Draw the stacks... */ - - for (i=0; i<=stacks; i++) - { - if (i==stacks) - z = height; - - glBegin(GL_LINE_LOOP); - - for( j=0; j<slices; j++ ) - { - glNormal3d(cost[j], sint[j], 0.0); - glVertex3d(cost[j]*radius, sint[j]*radius, z ); - } - - glEnd(); - - z += zStep; - } - - /* Draw the slices */ - - glBegin(GL_LINES); - - for (j=0; j<slices; j++) - { - glNormal3d(cost[j], sint[j], 0.0 ); - glVertex3d(cost[j]*radius, sint[j]*radius, 0.0 ); - glVertex3d(cost[j]*radius, sint[j]*radius, height); - } - - glEnd(); - - /* Release sin and cos tables */ - - free(sint); - free(cost); -} - -/* - * - */ -void GLUTAPIENTRY glutWireTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings ) -{ - double iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi; - double *vertex, *normal; - int i, j; - double spsi, cpsi, sphi, cphi ; - - /* - * Allocate the vertices array - */ - vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings ); - normal = (double *)calloc( sizeof(double), 3 * nSides * nRings ); - - glPushMatrix(); - - dpsi = 2.0 * M_PI / (double)nRings ; - dphi = -2.0 * M_PI / (double)nSides ; - psi = 0.0; - - for( j=0; j<nRings; j++ ) - { - cpsi = cos ( psi ) ; - spsi = sin ( psi ) ; - phi = 0.0; - - for( i=0; i<nSides; i++ ) - { - int offset = 3 * ( j * nSides + i ) ; - cphi = cos ( phi ) ; - sphi = sin ( phi ) ; - *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ; - *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ; - *(vertex + offset + 2) = sphi * iradius ; - *(normal + offset + 0) = cpsi * cphi ; - *(normal + offset + 1) = spsi * cphi ; - *(normal + offset + 2) = sphi ; - phi += dphi; - } - - psi += dpsi; - } - - for( i=0; i<nSides; i++ ) - { - glBegin( GL_LINE_LOOP ); - - for( j=0; j<nRings; j++ ) - { - int offset = 3 * ( j * nSides + i ) ; - glNormal3dv( normal + offset ); - glVertex3dv( vertex + offset ); - } - - glEnd(); - } - - for( j=0; j<nRings; j++ ) - { - glBegin(GL_LINE_LOOP); - - for( i=0; i<nSides; i++ ) - { - int offset = 3 * ( j * nSides + i ) ; - glNormal3dv( normal + offset ); - glVertex3dv( vertex + offset ); - } - - glEnd(); - } - - free ( vertex ) ; - free ( normal ) ; - glPopMatrix(); -} - -/* - * - */ -void GLUTAPIENTRY glutSolidTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings ) -{ - double iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi; - double *vertex, *normal; - int i, j; - double spsi, cpsi, sphi, cphi ; - - /* - * Increment the number of sides and rings to allow for one more point than surface - */ - nSides ++ ; - nRings ++ ; - - /* - * Allocate the vertices array - */ - vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings ); - normal = (double *)calloc( sizeof(double), 3 * nSides * nRings ); - - glPushMatrix(); - - dpsi = 2.0 * M_PI / (double)(nRings - 1) ; - dphi = -2.0 * M_PI / (double)(nSides - 1) ; - psi = 0.0; - - for( j=0; j<nRings; j++ ) - { - cpsi = cos ( psi ) ; - spsi = sin ( psi ) ; - phi = 0.0; - - for( i=0; i<nSides; i++ ) - { - int offset = 3 * ( j * nSides + i ) ; - cphi = cos ( phi ) ; - sphi = sin ( phi ) ; - *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ; - *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ; - *(vertex + offset + 2) = sphi * iradius ; - *(normal + offset + 0) = cpsi * cphi ; - *(normal + offset + 1) = spsi * cphi ; - *(normal + offset + 2) = sphi ; - phi += dphi; - } - - psi += dpsi; - } - - glBegin( GL_QUADS ); - for( i=0; i<nSides-1; i++ ) - { - for( j=0; j<nRings-1; j++ ) - { - int offset = 3 * ( j * nSides + i ) ; - glNormal3dv( normal + offset ); - glVertex3dv( vertex + offset ); - glNormal3dv( normal + offset + 3 ); - glVertex3dv( vertex + offset + 3 ); - glNormal3dv( normal + offset + 3 * nSides + 3 ); - glVertex3dv( vertex + offset + 3 * nSides + 3 ); - glNormal3dv( normal + offset + 3 * nSides ); - glVertex3dv( vertex + offset + 3 * nSides ); - } - } - - glEnd(); - - free ( vertex ) ; - free ( normal ) ; - glPopMatrix(); -} - -/* - * - */ -void GLUTAPIENTRY glutWireDodecahedron( void ) -{ - /* Magic Numbers: It is possible to create a dodecahedron by attaching two pentagons to each face of - * of a cube. The coordinates of the points are: - * (+-x,0, z); (+-1, 1, 1); (0, z, x ) - * where x = 0.61803398875 and z = 1.61803398875. - */ - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.0, 0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.0, 0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.0, -0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( -0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( -0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( 0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( -0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3d ( -0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; -} - -/* - * - */ -void GLUTAPIENTRY glutSolidDodecahedron( void ) -{ - /* Magic Numbers: It is possible to create a dodecahedron by attaching two pentagons to each face of - * of a cube. The coordinates of the points are: - * (+-x,0, z); (+-1, 1, 1); (0, z, x ) - * where x = 0.61803398875 and z = 1.61803398875. - */ - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.0, 0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.0, 0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.0, -0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( -0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( -0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( 0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( -0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; - glEnd () ; - glBegin ( GL_POLYGON ) ; - glNormal3d ( -0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; - glEnd () ; -} - -/* - * - */ -void GLUTAPIENTRY glutWireOctahedron( void ) -{ -#define RADIUS 1.0f - glBegin( GL_LINE_LOOP ); - glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glEnd(); -#undef RADIUS -} - -/* - * - */ -void GLUTAPIENTRY glutSolidOctahedron( void ) -{ -#define RADIUS 1.0f - glBegin( GL_TRIANGLES ); - glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); - glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); - glEnd(); -#undef RADIUS -} - -/* - * - */ -void GLUTAPIENTRY glutWireTetrahedron( void ) -{ - /* Magic Numbers: r0 = ( 1, 0, 0 ) - * r1 = ( -1/3, 2 sqrt(2) / 3, 0 ) - * r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 ) - * r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 ) - * |r0| = |r1| = |r2| = |r3| = 1 - * Distance between any two points is 2 sqrt(6) / 3 - * - * Normals: The unit normals are simply the negative of the coordinates of the point not on the surface. - */ - - double r0[3] = { 1.0, 0.0, 0.0 } ; - double r1[3] = { -0.333333333333, 0.942809041582, 0.0 } ; - double r2[3] = { -0.333333333333, -0.471404520791, 0.816496580928 } ; - double r3[3] = { -0.333333333333, -0.471404520791, -0.816496580928 } ; - - glBegin( GL_LINE_LOOP ) ; - glNormal3d ( -1.0, 0.0, 0.0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r2 ) ; - glNormal3d ( 0.333333333333, -0.942809041582, 0.0 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r2 ) ; glVertex3dv ( r3 ) ; - glNormal3d ( 0.333333333333, 0.471404520791, -0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r1 ) ; - glNormal3d ( 0.333333333333, 0.471404520791, 0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r2 ) ; - glEnd() ; -} - -/* - * - */ -void GLUTAPIENTRY glutSolidTetrahedron( void ) -{ - /* Magic Numbers: r0 = ( 1, 0, 0 ) - * r1 = ( -1/3, 2 sqrt(2) / 3, 0 ) - * r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 ) - * r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 ) - * |r0| = |r1| = |r2| = |r3| = 1 - * Distance between any two points is 2 sqrt(6) / 3 - * - * Normals: The unit normals are simply the negative of the coordinates of the point not on the surface. - */ - - double r0[3] = { 1.0, 0.0, 0.0 } ; - double r1[3] = { -0.333333333333, 0.942809041582, 0.0 } ; - double r2[3] = { -0.333333333333, -0.471404520791, 0.816496580928 } ; - double r3[3] = { -0.333333333333, -0.471404520791, -0.816496580928 } ; - - glBegin( GL_TRIANGLES ) ; - glNormal3d ( -1.0, 0.0, 0.0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r2 ) ; - glNormal3d ( 0.333333333333, -0.942809041582, 0.0 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r2 ) ; glVertex3dv ( r3 ) ; - glNormal3d ( 0.333333333333, 0.471404520791, -0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r1 ) ; - glNormal3d ( 0.333333333333, 0.471404520791, 0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r2 ) ; - glEnd() ; -} - -/* - * - */ -double icos_r[12][3] = { { 1.0, 0.0, 0.0 }, - { 0.447213595500, 0.894427191000, 0.0 }, { 0.447213595500, 0.276393202252, 0.850650808354 }, { 0.447213595500, -0.723606797748, 0.525731112119 }, { 0.447213595500, -0.723606797748, -0.525731112119 }, { 0.447213595500, 0.276393202252, -0.850650808354 }, - { -0.447213595500, -0.894427191000, 0.0 }, { -0.447213595500, -0.276393202252, 0.850650808354 }, { -0.447213595500, 0.723606797748, 0.525731112119 }, { -0.447213595500, 0.723606797748, -0.525731112119 }, { -0.447213595500, -0.276393202252, -0.850650808354 }, - { -1.0, 0.0, 0.0 } } ; -int icos_v [20][3] = { { 0, 1, 2 }, { 0, 2, 3 }, { 0, 3, 4 }, { 0, 4, 5 }, { 0, 5, 1 }, - { 1, 8, 2 }, { 2, 7, 3 }, { 3, 6, 4 }, { 4, 10, 5 }, { 5, 9, 1 }, - { 1, 9, 8 }, { 2, 8, 7 }, { 3, 7, 6 }, { 4, 6, 10 }, { 5, 10, 9 }, - { 11, 9, 10 }, { 11, 8, 9 }, { 11, 7, 8 }, { 11, 6, 7 }, { 11, 10, 6 } } ; - -void GLUTAPIENTRY glutWireIcosahedron( void ) -{ - int i ; - for ( i = 0; i < 20; i++ ) - { - double normal[3] ; - normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ; - normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ; - normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ; - glBegin ( GL_LINE_LOOP ) ; - glNormal3dv ( normal ) ; - glVertex3dv ( icos_r[icos_v[i][0]] ) ; - glVertex3dv ( icos_r[icos_v[i][1]] ) ; - glVertex3dv ( icos_r[icos_v[i][2]] ) ; - glEnd () ; - } -} - -/* - * - */ -void GLUTAPIENTRY glutSolidIcosahedron( void ) -{ - int i ; - - glBegin ( GL_TRIANGLES ) ; - for ( i = 0; i < 20; i++ ) - { - double normal[3] ; - normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ; - normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ; - normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ; - glNormal3dv ( normal ) ; - glVertex3dv ( icos_r[icos_v[i][0]] ) ; - glVertex3dv ( icos_r[icos_v[i][1]] ) ; - glVertex3dv ( icos_r[icos_v[i][2]] ) ; - } - - glEnd () ; -} - -/* - * - */ -double rdod_r[14][3] = { { 0.0, 0.0, 1.0 }, - { 0.707106781187, 0.000000000000, 0.5 }, { 0.000000000000, 0.707106781187, 0.5 }, { -0.707106781187, 0.000000000000, 0.5 }, { 0.000000000000, -0.707106781187, 0.5 }, - { 0.707106781187, 0.707106781187, 0.0 }, { -0.707106781187, 0.707106781187, 0.0 }, { -0.707106781187, -0.707106781187, 0.0 }, { 0.707106781187, -0.707106781187, 0.0 }, - { 0.707106781187, 0.000000000000, -0.5 }, { 0.000000000000, 0.707106781187, -0.5 }, { -0.707106781187, 0.000000000000, -0.5 }, { 0.000000000000, -0.707106781187, -0.5 }, - { 0.0, 0.0, -1.0 } } ; -int rdod_v [12][4] = { { 0, 1, 5, 2 }, { 0, 2, 6, 3 }, { 0, 3, 7, 4 }, { 0, 4, 8, 1 }, - { 5, 10, 6, 2 }, { 6, 11, 7, 3 }, { 7, 12, 8, 4 }, { 8, 9, 5, 1 }, - { 5, 9, 13, 10 }, { 6, 10, 13, 11 }, { 7, 11, 13, 12 }, { 8, 12, 13, 9 } } ; -double rdod_n[12][3] = { - { 0.353553390594, 0.353553390594, 0.5 }, { -0.353553390594, 0.353553390594, 0.5 }, { -0.353553390594, -0.353553390594, 0.5 }, { 0.353553390594, -0.353553390594, 0.5 }, - { 0.000000000000, 1.000000000000, 0.0 }, { -1.000000000000, 0.000000000000, 0.0 }, { 0.000000000000, -1.000000000000, 0.0 }, { 1.000000000000, 0.000000000000, 0.0 }, - { 0.353553390594, 0.353553390594, -0.5 }, { -0.353553390594, 0.353553390594, -0.5 }, { -0.353553390594, -0.353553390594, -0.5 }, { 0.353553390594, -0.353553390594, -0.5 } - } ; - -void GLUTAPIENTRY glutWireRhombicDodecahedron( void ) -{ - int i ; - for ( i = 0; i < 12; i++ ) - { - glBegin ( GL_LINE_LOOP ) ; - glNormal3dv ( rdod_n[i] ) ; - glVertex3dv ( rdod_r[rdod_v[i][0]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][1]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][2]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][3]] ) ; - glEnd () ; - } -} - -/* - * - */ -void GLUTAPIENTRY glutSolidRhombicDodecahedron( void ) -{ - int i ; - - glBegin ( GL_QUADS ) ; - for ( i = 0; i < 12; i++ ) - { - glNormal3dv ( rdod_n[i] ) ; - glVertex3dv ( rdod_r[rdod_v[i][0]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][1]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][2]] ) ; - glVertex3dv ( rdod_r[rdod_v[i][3]] ) ; - } - - glEnd () ; -} - -#define NUM_FACES 4 - -static GLdouble tetrahedron_v[4][3] = /* Vertices */ -{ - { -0.5, -0.288675134595, -0.144337567297 }, - { 0.5, -0.288675134595, -0.144337567297 }, - { 0.0, 0.577350269189, -0.144337567297 }, - { 0.0, 0.0, 0.672159013631 } -} ; - -static GLint tetrahedron_i[4][3] = /* Vertex indices */ -{ - { 0, 1, 2 }, { 0, 2, 3 }, { 0, 3, 1 }, { 1, 3, 2 } -} ; - -static GLdouble tetrahedron_n[4][3] = /* Normals */ -{ - { 0.0, 0.0, -1.0 }, - { -0.816496580928, 0.471404520791, 0.333333333333 }, - { 0.0, -0.942809041582, 0.333333333333 }, - { 0.816496580928, 0.471404520791, 0.333333333333 } -} ; - -void GLUTAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) -{ - int i, j ; - - if ( num_levels == 0 ) - { - - for ( i = 0 ; i < NUM_FACES ; i++ ) - { - glBegin ( GL_LINE_LOOP ) ; - glNormal3dv ( tetrahedron_n[i] ) ; - for ( j = 0; j < 3; j++ ) - { - double x = offset[0] + scale * tetrahedron_v[tetrahedron_i[i][j]][0] ; - double y = offset[1] + scale * tetrahedron_v[tetrahedron_i[i][j]][1] ; - double z = offset[2] + scale * tetrahedron_v[tetrahedron_i[i][j]][2] ; - glVertex3d ( x, y, z ) ; - } - - glEnd () ; - } - } - else - { - GLdouble local_offset[3] ; /* Use a local variable to avoid buildup of roundoff errors */ - num_levels -- ; - scale /= 2.0 ; - local_offset[0] = offset[0] + scale * tetrahedron_v[0][0] ; - local_offset[1] = offset[1] + scale * tetrahedron_v[0][1] ; - local_offset[2] = offset[2] + scale * tetrahedron_v[0][2] ; - glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[0] += scale ; - glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[0] -= 0.5 * scale ; - local_offset[1] += 0.866025403784 * scale ; - glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[1] -= 0.577350269189 * scale ; - local_offset[2] += 0.816496580928 * scale ; - glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; - } -} - -void GLUTAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) -{ - int i, j ; - - if ( num_levels == 0 ) - { - glBegin ( GL_TRIANGLES ) ; - - for ( i = 0 ; i < NUM_FACES ; i++ ) - { - glNormal3dv ( tetrahedron_n[i] ) ; - for ( j = 0; j < 3; j++ ) - { - double x = offset[0] + scale * tetrahedron_v[tetrahedron_i[i][j]][0] ; - double y = offset[1] + scale * tetrahedron_v[tetrahedron_i[i][j]][1] ; - double z = offset[2] + scale * tetrahedron_v[tetrahedron_i[i][j]][2] ; - glVertex3d ( x, y, z ) ; - } - } - - glEnd () ; - } - else - { - GLdouble local_offset[3] ; /* Use a local variable to avoid buildup of roundoff errors */ - num_levels -- ; - scale /= 2.0 ; - local_offset[0] = offset[0] + scale * tetrahedron_v[0][0] ; - local_offset[1] = offset[1] + scale * tetrahedron_v[0][1] ; - local_offset[2] = offset[2] + scale * tetrahedron_v[0][2] ; - glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[0] += scale ; - glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[0] -= 0.5 * scale ; - local_offset[1] += 0.866025403784 * scale ; - glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; - local_offset[1] -= 0.577350269189 * scale ; - local_offset[2] += 0.816496580928 * scale ; - glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; - } -} - -#undef NUM_FACES - -/*** END OF FILE ***/ diff --git a/src/glut/dos/state.c b/src/glut/dos/state.c deleted file mode 100644 index b0d5d8ae92..0000000000 --- a/src/glut/dos/state.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include <stdio.h> - -#include "internal.h" - - -#define FREQUENCY 100 /* set this to zero to use the default timer */ - - -static int timer_installed; -#if FREQUENCY -static volatile int ticks; - - -static void -ticks_timer (void *p) -{ - (void)p; - ticks++; -} ENDOFUNC(ticks_timer) -#else -#include <time.h> - -static struct timeval then; -#endif - - -int APIENTRY -glutGet (GLenum type) -{ - switch (type) { - case GLUT_WINDOW_X: - return _glut_current->xpos; - case GLUT_WINDOW_Y: - return _glut_current->ypos; - case GLUT_WINDOW_WIDTH: - return _glut_current->width; - case GLUT_WINDOW_HEIGHT: - return _glut_current->height; - case GLUT_WINDOW_STENCIL_SIZE: - return _glut_visual.stencil; - case GLUT_WINDOW_DEPTH_SIZE: - return _glut_visual.depth; - case GLUT_WINDOW_RGBA: - return !(_glut_default.mode & GLUT_INDEX); - case GLUT_WINDOW_COLORMAP_SIZE: - return (_glut_default.mode & GLUT_INDEX) ? (256 - RESERVED_COLORS) : 0; - case GLUT_SCREEN_WIDTH: - return _glut_visual.geometry[0]; - case GLUT_SCREEN_HEIGHT: - return _glut_visual.geometry[1]; - case GLUT_INIT_WINDOW_X: - return _glut_default.x; - case GLUT_INIT_WINDOW_Y: - return _glut_default.y; - case GLUT_INIT_WINDOW_WIDTH: - return _glut_default.width; - case GLUT_INIT_WINDOW_HEIGHT: - return _glut_default.height; - case GLUT_INIT_DISPLAY_MODE: - return _glut_default.mode; - case GLUT_ELAPSED_TIME: -#if FREQUENCY - if (!timer_installed) { - timer_installed = GL_TRUE; - LOCKDATA(ticks); - LOCKFUNC(ticks_timer); - pc_install_int(ticks_timer, NULL, FREQUENCY); - } - return ticks * 1000 / FREQUENCY; -#else - if (!timer_installed) { - timer_installed = GL_TRUE; - gettimeofday(&then, NULL); - return 0; - } else { - struct timeval now; - gettimeofday(&now, NULL); - return (now.tv_usec - then.tv_usec) / 1000 + - (now.tv_sec - then.tv_sec) * 1000; - } -#endif - default: - return -1; - } -} - - -int APIENTRY -glutDeviceGet (GLenum type) -{ - switch (type) { - case GLUT_HAS_KEYBOARD: - return GL_TRUE; - case GLUT_HAS_MOUSE: - return (_glut_mouse != 0); - case GLUT_NUM_MOUSE_BUTTONS: - return _glut_mouse; - case GLUT_HAS_SPACEBALL: - case GLUT_HAS_DIAL_AND_BUTTON_BOX: - case GLUT_HAS_TABLET: - return GL_FALSE; - case GLUT_NUM_SPACEBALL_BUTTONS: - case GLUT_NUM_BUTTON_BOX_BUTTONS: - case GLUT_NUM_DIALS: - case GLUT_NUM_TABLET_BUTTONS: - return 0; - default: - return -1; - } -} - - -int APIENTRY -glutGetModifiers (void) -{ - int mod = 0; - int shifts = pc_keyshifts(); - - if (shifts & (KB_SHIFT_FLAG | KB_CAPSLOCK_FLAG)) { - mod |= GLUT_ACTIVE_SHIFT; - } - - if (shifts & KB_ALT_FLAG) { - mod |= GLUT_ACTIVE_ALT; - } - - if (shifts & KB_CTRL_FLAG) { - mod |= GLUT_ACTIVE_CTRL; - } - - return mod; -} - - -void APIENTRY -glutReportErrors (void) -{ - /* reports all the OpenGL errors that happened till now */ -} - - -/* GAME MODE - * Hack alert: incomplete... what is GameMode, anyway? - */ -static GLint game; -static GLboolean game_possible; -static GLboolean game_active; -static GLuint game_width; -static GLuint game_height; -static GLuint game_bpp; -static GLuint game_refresh; - - -void APIENTRY -glutGameModeString (const char *string) -{ - if (sscanf(string, "%ux%u:%u@%u", &game_width, &game_height, &game_bpp, &game_refresh) == 4) { - game_possible = GL_TRUE; - } -} - - -int APIENTRY -glutGameModeGet (GLenum mode) -{ - switch (mode) { - case GLUT_GAME_MODE_ACTIVE: - return game_active; - case GLUT_GAME_MODE_POSSIBLE: - return game_possible && !_glut_current; - case GLUT_GAME_MODE_WIDTH: - return game_active ? (int)game_width : -1; - case GLUT_GAME_MODE_HEIGHT: - return game_active ? (int)game_height : -1; - case GLUT_GAME_MODE_PIXEL_DEPTH: - return game_active ? (int)game_bpp : -1; - case GLUT_GAME_MODE_REFRESH_RATE: - return game_active ? (int)game_refresh : -1; - default: - return -1; - } -} - - -int APIENTRY -glutEnterGameMode (void) -{ - if (glutGameModeGet(GLUT_GAME_MODE_POSSIBLE)) { - _glut_visual.bpp = game_bpp; - _glut_visual.refresh = game_refresh; - - glutInitWindowSize(game_width, game_height); - - if ((game = glutCreateWindow("<game>")) > 0) { - game_active = GL_TRUE; - } - - return game; - } else { - return 0; - } -} - - -void GLUTAPIENTRY -glutLeaveGameMode (void) -{ - if (glutGameModeGet(GLUT_GAME_MODE_ACTIVE)) { - game_active = GL_FALSE; - - glutDestroyWindow(game); - } -} diff --git a/src/glut/dos/stroke.c b/src/glut/dos/stroke.c deleted file mode 100644 index aa2c06a7db..0000000000 --- a/src/glut/dos/stroke.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * FxGLUT version 0.12 - GLUT for Voodoo 1 and 2 under Linux - * Copyright (C) 1999 Christopher John Purnell - * cjp@lost.org.uk - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "internal.h" - - -void -glutStrokeCharacter (void *font, int c) -{ - const GLUTStrokeFont *sfp = _glut_font(font); - const GLUTStrokeChar *scp; - const GLUTStrokeStrip *ssp; - const GLUTStrokeVertex *svp; - unsigned i, j; - - if (((unsigned)c) >= sfp->num || !(scp = sfp->table[c])) - return; - - ssp = scp->strip; - - for (i = 0; i < scp->num; i++, ssp++) { - svp = ssp->vertex; - - glBegin(GL_LINE_STRIP); - for (j = 0; j < ssp->num; j++, svp++) { - glVertex2f(svp->x, svp->y); - } - glEnd(); - } - - glTranslatef(scp->right, 0.0, 0.0); -} - - -void -glutStrokeString (void *font, const unsigned char *string) -{ - const GLUTStrokeFont *sfp = _glut_font(font); - const GLUTStrokeChar *scp; - const GLUTStrokeStrip *ssp; - const GLUTStrokeVertex *svp; - unsigned char c; - unsigned i, j; - - while ((c = *(string++))) { - if (c < sfp->num && (scp = sfp->table[c])) { - ssp = scp->strip; - - for (i = 0; i < scp->num; i++, ssp++) { - svp = ssp->vertex; - - glBegin(GL_LINE_STRIP); - for (j = 0; j < ssp->num; j++, svp++) { - glVertex2f(svp->x, svp->y); - } - glEnd(); - } - - glTranslatef(scp->right, 0.0, 0.0); - } - } -} - - -int -glutStrokeWidth (void *font, int c) -{ - const GLUTStrokeFont *sfp = _glut_font(font); - const GLUTStrokeChar *scp; - - if (((unsigned)c) >= sfp->num || !(scp = sfp->table[c])) - return 0; - - return scp->right; -} - - -int -glutStrokeLength (void *font, const unsigned char *string) -{ - const GLUTStrokeFont *sfp = _glut_font(font); - const GLUTStrokeChar *scp; - unsigned char c; - int length = 0; - - while ((c = *(string++))) { - if (c < sfp->num && (scp = sfp->table[c])) - length += scp->right; - } - - return length; -} - - -GLfloat -glutStrokeHeight (void *font) -{ - const GLUTStrokeFont *sfp = _glut_font(font); - - return sfp->height; -} diff --git a/src/glut/dos/teapot.c b/src/glut/dos/teapot.c deleted file mode 100644 index 8d02eb49f3..0000000000 --- a/src/glut/dos/teapot.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * - * ALL RIGHTS RESERVED - * - * Permission to use, copy, modify, and distribute this software - * for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that - * both the copyright notice and this permission notice appear in - * supporting documentation, and that the name of Silicon - * Graphics, Inc. not be used in advertising or publicity - * pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU - * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR - * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO - * EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE - * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, - * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, - * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR - * NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY - * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * US Government Users Restricted Rights - * - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer - * Software clause at DFARS 252.227-7013 and/or in similar or - * successor clauses in the FAR or the DOD or NASA FAR - * Supplement. Unpublished-- rights reserved under the copyright - * laws of the United States. Contractor/manufacturer is Silicon - * Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA - * 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ - -#include "internal.h" - -/* - * Rim, body, lid, and bottom data must be reflected in x and y; - * handle and spout data across the y axis only. - */ -static int patchdata[][16] = -{ - { 102, 103, 104, 105, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15 }, /* rim */ - { 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27 }, /* body */ - { 24, 25, 26, 27, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40 }, - { 96, 96, 96, 96, 97, 98, 99, 100, - 101, 101, 101, 101, 0, 1, 2, 3 }, /* lid */ - { 0, 1, 2, 3, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117 }, - { 118, 118, 118, 118, 124, 122, 119, 121, - 123, 126, 125, 120, 40, 39, 38, 37 }, /* bottom */ - { 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56 }, /* handle */ - { 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 28, 65, 66, 67 }, - { 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83 }, /* spout */ - { 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95 } -}; - -static float cpdata[][3] = -{ - {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, - {0,-0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125}, - {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, - {1.4375, 0, 2.53125}, {1.4375, -0.805, 2.53125}, - {0.805, -1.4375, 2.53125}, {0, -1.4375, 2.53125}, - {1.5, 0, 2.4}, {1.5, -0.84, 2.4}, {0.84, -1.5, 2.4}, - {0, -1.5, 2.4}, {1.75, 0, 1.875}, {1.75, -0.98, 1.875}, - {0.98, -1.75, 1.875}, {0, -1.75, 1.875}, {2, 0, 1.35}, - {2, -1.12, 1.35}, {1.12, -2, 1.35}, {0, -2, 1.35}, {2, 0, 0.9}, - {2, -1.12, 0.9}, {1.12, -2, 0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, - {2, 0, 0.45}, {2, -1.12, 0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, - {1.5, 0, 0.225}, {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, - {0, -1.5, 0.225}, {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, - {0.84, -1.5, 0.15}, {0, -1.5, 0.15}, {-1.6, 0, 2.025}, - {-1.6, -0.3, 2.025}, {-1.5, -0.3, 2.25}, {-1.5, 0, 2.25}, - {-2.3, 0, 2.025}, {-2.3, -0.3, 2.025}, {-2.5, -0.3, 2.25}, - {-2.5, 0, 2.25}, {-2.7, 0, 2.025}, {-2.7, -0.3, 2.025}, - {-3, -0.3, 2.25}, {-3, 0, 2.25}, {-2.7, 0, 1.8}, - {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8}, {-3, 0, 1.8}, - {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3, -0.3, 1.35}, - {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3, 1.125}, - {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2, -0.3, 0.9}, - {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0, 1.425}, - {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0, 0.6}, - {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66, 0.825}, - {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1}, - {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, - {2.7, -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, - {2.8, 0, 2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375}, - {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475}, - {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4}, - {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, - {0, 0, 3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, - {0.45, -0.8, 3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, - {1.4, -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, - {0.4, 0, 2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, - {0, -0.4, 2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, - {0.728, -1.3, 2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, - {1.3, -0.728, 2.4}, {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, - {0, 0, 0}, {1.425, -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, - {0.798, -1.425, 0}, {0, -1.5, 0.075}, {0, -1.425, 0}, - {1.5, -0.84, 0.075}, {0.84, -1.5, 0.075} -}; - -static float tex[2][2][2] = -{ - { {0, 0}, {1, 0} }, - { {0, 1}, {1, 1} } -}; - -static void teapot( GLint grid, GLdouble scale, GLenum type ) -{ - float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3]; - long i, j, k, l; - - glPushAttrib( GL_ENABLE_BIT | GL_EVAL_BIT ); - glEnable( GL_AUTO_NORMAL ); - glEnable( GL_NORMALIZE ); - glEnable( GL_MAP2_VERTEX_3 ); - glEnable( GL_MAP2_TEXTURE_COORD_2 ); - - glPushMatrix(); - glRotatef(270.0, 1.0, 0.0, 0.0); - glScalef(0.5 * scale, 0.5 * scale, 0.5 * scale); - glTranslatef(0.0, 0.0, -1.5); - - for (i = 0; i < 10; i++) - { - for (j = 0; j < 4; j++) - { - for (k = 0; k < 4; k++) - { - for (l = 0; l < 3; l++) - { - p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; - q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l]; - if (l == 1) - q[j][k][l] *= -1.0; - if (i < 6) - { - r[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l]; - if (l == 0) - r[j][k][l] *= -1.0; - s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; - if (l == 0) - s[j][k][l] *= -1.0; - if (l == 1) - s[j][k][l] *= -1.0; - } - } - } - } - - glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2, - &tex[0][0][0]); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &p[0][0][0]); - glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0); - glEvalMesh2(type, 0, grid, 0, grid); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &q[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - if (i < 6) - { - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &r[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &s[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - } - } - - glPopMatrix(); - glPopAttrib(); -} - -void glutWireTeapot(GLdouble size) -{ - teapot(10, size, GL_LINE); -} - -void glutSolidTeapot(GLdouble size) -{ - teapot(7, size, GL_FILL); -} diff --git a/src/glut/dos/tr10.c b/src/glut/dos/tr10.c deleted file mode 100644 index a1e03f3e1b..0000000000 --- a/src/glut/dos/tr10.c +++ /dev/null @@ -1,1018 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch32data[] = { - 0x0 -}; -static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 2, ch32data }; - -static const unsigned char ch33data[] = { - 0x80,0x0,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch33 = { 1, 7, -1, 0, 3, ch33data }; - -static const unsigned char ch34data[] = { - 0xa0,0xa0 -}; -static const GLUTBitmapChar ch34 = { 3, 2, 0, -5, 4, ch34data }; - -static const unsigned char ch35data[] = { - 0x50,0x50,0xf8,0x50,0xf8,0x50,0x50 -}; -static const GLUTBitmapChar ch35 = { 5, 7, 0, 0, 5, ch35data }; - -static const unsigned char ch36data[] = { - 0x20,0xe0,0x90,0x10,0x60,0x80,0x90,0x70,0x20 -}; -static const GLUTBitmapChar ch36 = { 4, 9, 0, 1, 5, ch36data }; - -static const unsigned char ch37data[] = { - 0x44,0x2a,0x2a,0x56,0xa8,0xa4,0x7e -}; -static const GLUTBitmapChar ch37 = { 7, 7, 0, 0, 8, ch37data }; - -static const unsigned char ch38data[] = { - 0x76,0x8d,0x98,0x74,0x6e,0x50,0x30 -}; -static const GLUTBitmapChar ch38 = { 8, 7, 0, 0, 8, ch38data }; - -static const unsigned char ch39data[] = { - 0x40,0xc0 -}; -static const GLUTBitmapChar ch39 = { 2, 2, 0, -5, 3, ch39data }; - -static const unsigned char ch40data[] = { - 0x20,0x40,0x40,0x80,0x80,0x80,0x40,0x40,0x20 -}; -static const GLUTBitmapChar ch40 = { 3, 9, 0, 2, 4, ch40data }; - -static const unsigned char ch41data[] = { - 0x80,0x40,0x40,0x20,0x20,0x20,0x40,0x40,0x80 -}; -static const GLUTBitmapChar ch41 = { 3, 9, 0, 2, 4, ch41data }; - -static const unsigned char ch42data[] = { - 0xa0,0x40,0xa0 -}; -static const GLUTBitmapChar ch42 = { 3, 3, 0, -4, 5, ch42data }; - -static const unsigned char ch43data[] = { - 0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch43 = { 5, 5, 0, 0, 6, ch43data }; - -static const unsigned char ch44data[] = { - 0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch44 = { 1, 3, -1, 2, 3, ch44data }; - -static const unsigned char ch45data[] = { - 0xf0 -}; -static const GLUTBitmapChar ch45 = { 4, 1, -1, -2, 7, ch45data }; - -static const unsigned char ch46data[] = { - 0x80 -}; -static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; - -static const unsigned char ch47data[] = { - 0x80,0x80,0x40,0x40,0x40,0x20,0x20 -}; -static const GLUTBitmapChar ch47 = { 3, 7, 0, 0, 3, ch47data }; - -static const unsigned char ch48data[] = { - 0x60,0x90,0x90,0x90,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch48 = { 4, 7, 0, 0, 5, ch48data }; - -static const unsigned char ch49data[] = { - 0xe0,0x40,0x40,0x40,0x40,0xc0,0x40 -}; -static const GLUTBitmapChar ch49 = { 3, 7, -1, 0, 5, ch49data }; - -static const unsigned char ch50data[] = { - 0xf0,0x40,0x20,0x20,0x10,0x90,0x60 -}; -static const GLUTBitmapChar ch50 = { 4, 7, 0, 0, 5, ch50data }; - -static const unsigned char ch51data[] = { - 0xe0,0x10,0x10,0x60,0x10,0x90,0x60 -}; -static const GLUTBitmapChar ch51 = { 4, 7, 0, 0, 5, ch51data }; - -static const unsigned char ch52data[] = { - 0x10,0x10,0xf8,0x90,0x50,0x30,0x10 -}; -static const GLUTBitmapChar ch52 = { 5, 7, 0, 0, 5, ch52data }; - -static const unsigned char ch53data[] = { - 0xe0,0x90,0x10,0x10,0xe0,0x40,0x70 -}; -static const GLUTBitmapChar ch53 = { 4, 7, 0, 0, 5, ch53data }; - -static const unsigned char ch54data[] = { - 0x60,0x90,0x90,0x90,0xe0,0x40,0x30 -}; -static const GLUTBitmapChar ch54 = { 4, 7, 0, 0, 5, ch54data }; - -static const unsigned char ch55data[] = { - 0x40,0x40,0x40,0x20,0x20,0x90,0xf0 -}; -static const GLUTBitmapChar ch55 = { 4, 7, 0, 0, 5, ch55data }; - -static const unsigned char ch56data[] = { - 0x60,0x90,0x90,0x60,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch56 = { 4, 7, 0, 0, 5, ch56data }; - -static const unsigned char ch57data[] = { - 0xc0,0x20,0x70,0x90,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch57 = { 4, 7, 0, 0, 5, ch57data }; - -static const unsigned char ch58data[] = { - 0x80,0x0,0x0,0x0,0x80 -}; -static const GLUTBitmapChar ch58 = { 1, 5, -1, 0, 3, ch58data }; - -static const unsigned char ch59data[] = { - 0x80,0x80,0x80,0x0,0x0,0x0,0x80 -}; -static const GLUTBitmapChar ch59 = { 1, 7, -1, 2, 3, ch59data }; - -static const unsigned char ch60data[] = { - 0x20,0x40,0x80,0x40,0x20 -}; -static const GLUTBitmapChar ch60 = { 3, 5, -1, 0, 5, ch60data }; - -static const unsigned char ch61data[] = { - 0xf8,0x0,0xf8 -}; -static const GLUTBitmapChar ch61 = { 5, 3, 0, -1, 6, ch61data }; - -static const unsigned char ch62data[] = { - 0x80,0x40,0x20,0x40,0x80 -}; -static const GLUTBitmapChar ch62 = { 3, 5, 0, 0, 5, ch62data }; - -static const unsigned char ch63data[] = { - 0x40,0x0,0x40,0x40,0x20,0xa0,0xe0 -}; -static const GLUTBitmapChar ch63 = { 3, 7, 0, 0, 4, ch63data }; - -static const unsigned char ch64data[] = { - 0x3e,0x40,0x92,0xad,0xa5,0xa5,0x9d,0x42,0x3c -}; -static const GLUTBitmapChar ch64 = { 8, 9, 0, 2, 9, ch64data }; - -static const unsigned char ch65data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10 -}; -static const GLUTBitmapChar ch65 = { 7, 7, 0, 0, 8, ch65data }; - -static const unsigned char ch66data[] = { - 0xf0,0x48,0x48,0x70,0x48,0x48,0xf0 -}; -static const GLUTBitmapChar ch66 = { 5, 7, 0, 0, 6, ch66data }; - -static const unsigned char ch67data[] = { - 0x78,0xc4,0x80,0x80,0x80,0xc4,0x7c -}; -static const GLUTBitmapChar ch67 = { 6, 7, 0, 0, 7, ch67data }; - -static const unsigned char ch68data[] = { - 0xf8,0x4c,0x44,0x44,0x44,0x4c,0xf8 -}; -static const GLUTBitmapChar ch68 = { 6, 7, 0, 0, 7, ch68data }; - -static const unsigned char ch69data[] = { - 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8 -}; -static const GLUTBitmapChar ch69 = { 5, 7, 0, 0, 6, ch69data }; - -static const unsigned char ch70data[] = { - 0xe0,0x40,0x40,0x70,0x40,0x48,0xf8 -}; -static const GLUTBitmapChar ch70 = { 5, 7, 0, 0, 6, ch70data }; - -static const unsigned char ch71data[] = { - 0x78,0xc4,0x84,0x9c,0x80,0xc4,0x7c -}; -static const GLUTBitmapChar ch71 = { 6, 7, 0, 0, 7, ch71data }; - -static const unsigned char ch72data[] = { - 0xee,0x44,0x44,0x7c,0x44,0x44,0xee -}; -static const GLUTBitmapChar ch72 = { 7, 7, 0, 0, 8, ch72data }; - -static const unsigned char ch73data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0 -}; -static const GLUTBitmapChar ch73 = { 3, 7, 0, 0, 4, ch73data }; - -static const unsigned char ch74data[] = { - 0xc0,0xa0,0x20,0x20,0x20,0x20,0x70 -}; -static const GLUTBitmapChar ch74 = { 4, 7, 0, 0, 4, ch74data }; - -static const unsigned char ch75data[] = { - 0xec,0x48,0x50,0x60,0x50,0x48,0xec -}; -static const GLUTBitmapChar ch75 = { 6, 7, 0, 0, 7, ch75data }; - -static const unsigned char ch76data[] = { - 0xf8,0x48,0x40,0x40,0x40,0x40,0xe0 -}; -static const GLUTBitmapChar ch76 = { 5, 7, 0, 0, 6, ch76data }; - -static const unsigned char ch77data[] = { - 0xeb,0x80,0x49,0x0,0x55,0x0,0x55,0x0,0x63,0x0,0x63,0x0,0xe3,0x80 -}; -static const GLUTBitmapChar ch77 = { 9, 7, 0, 0, 10, ch77data }; - -static const unsigned char ch78data[] = { - 0xe4,0x4c,0x4c,0x54,0x54,0x64,0xee -}; -static const GLUTBitmapChar ch78 = { 7, 7, 0, 0, 8, ch78data }; - -static const unsigned char ch79data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78 -}; -static const GLUTBitmapChar ch79 = { 6, 7, 0, 0, 7, ch79data }; - -static const unsigned char ch80data[] = { - 0xe0,0x40,0x40,0x70,0x48,0x48,0xf0 -}; -static const GLUTBitmapChar ch80 = { 5, 7, 0, 0, 6, ch80data }; - -static const unsigned char ch81data[] = { - 0xc,0x18,0x70,0xcc,0x84,0x84,0x84,0xcc,0x78 -}; -static const GLUTBitmapChar ch81 = { 6, 9, 0, 2, 7, ch81data }; - -static const unsigned char ch82data[] = { - 0xec,0x48,0x50,0x70,0x48,0x48,0xf0 -}; -static const GLUTBitmapChar ch82 = { 6, 7, 0, 0, 7, ch82data }; - -static const unsigned char ch83data[] = { - 0xe0,0x90,0x10,0x60,0xc0,0x90,0x70 -}; -static const GLUTBitmapChar ch83 = { 4, 7, 0, 0, 5, ch83data }; - -static const unsigned char ch84data[] = { - 0x70,0x20,0x20,0x20,0x20,0xa8,0xf8 -}; -static const GLUTBitmapChar ch84 = { 5, 7, 0, 0, 6, ch84data }; - -static const unsigned char ch85data[] = { - 0x38,0x6c,0x44,0x44,0x44,0x44,0xee -}; -static const GLUTBitmapChar ch85 = { 7, 7, 0, 0, 8, ch85data }; - -static const unsigned char ch86data[] = { - 0x10,0x10,0x28,0x28,0x6c,0x44,0xee -}; -static const GLUTBitmapChar ch86 = { 7, 7, 0, 0, 8, ch86data }; - -static const unsigned char ch87data[] = { - 0x22,0x0,0x22,0x0,0x55,0x0,0x55,0x0,0xc9,0x80,0x88,0x80,0xdd,0xc0 -}; -static const GLUTBitmapChar ch87 = { 10, 7, 0, 0, 10, ch87data }; - -static const unsigned char ch88data[] = { - 0xee,0x44,0x28,0x10,0x28,0x44,0xee -}; -static const GLUTBitmapChar ch88 = { 7, 7, 0, 0, 8, ch88data }; - -static const unsigned char ch89data[] = { - 0x38,0x10,0x10,0x28,0x28,0x44,0xee -}; -static const GLUTBitmapChar ch89 = { 7, 7, 0, 0, 8, ch89data }; - -static const unsigned char ch90data[] = { - 0xf8,0x88,0x40,0x20,0x10,0x88,0xf8 -}; -static const GLUTBitmapChar ch90 = { 5, 7, 0, 0, 6, ch90data }; - -static const unsigned char ch91data[] = { - 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 -}; -static const GLUTBitmapChar ch91 = { 2, 9, 0, 2, 3, ch91data }; - -static const unsigned char ch92data[] = { - 0x20,0x20,0x40,0x40,0x40,0x80,0x80 -}; -static const GLUTBitmapChar ch92 = { 3, 7, 0, 0, 3, ch92data }; - -static const unsigned char ch93data[] = { - 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 -}; -static const GLUTBitmapChar ch93 = { 2, 9, 0, 2, 3, ch93data }; - -static const unsigned char ch94data[] = { - 0xa0,0xa0,0x40 -}; -static const GLUTBitmapChar ch94 = { 3, 3, -1, -4, 5, ch94data }; - -static const unsigned char ch95data[] = { - 0xf8 -}; -static const GLUTBitmapChar ch95 = { 5, 1, 0, 3, 5, ch95data }; - -static const unsigned char ch96data[] = { - 0xc0,0x80 -}; -static const GLUTBitmapChar ch96 = { 2, 2, 0, -5, 3, ch96data }; - -static const unsigned char ch97data[] = { - 0xe0,0xa0,0x60,0x20,0xc0 -}; -static const GLUTBitmapChar ch97 = { 3, 5, 0, 0, 4, ch97data }; - -static const unsigned char ch98data[] = { - 0xe0,0x90,0x90,0x90,0xe0,0x80,0x80 -}; -static const GLUTBitmapChar ch98 = { 4, 7, 0, 0, 5, ch98data }; - -static const unsigned char ch99data[] = { - 0x60,0x80,0x80,0x80,0x60 -}; -static const GLUTBitmapChar ch99 = { 3, 5, 0, 0, 4, ch99data }; - -static const unsigned char ch100data[] = { - 0x68,0x90,0x90,0x90,0x70,0x10,0x30 -}; -static const GLUTBitmapChar ch100 = { 5, 7, 0, 0, 5, ch100data }; - -static const unsigned char ch101data[] = { - 0x60,0x80,0xc0,0xa0,0x60 -}; -static const GLUTBitmapChar ch101 = { 3, 5, 0, 0, 4, ch101data }; - -static const unsigned char ch102data[] = { - 0xe0,0x40,0x40,0x40,0xe0,0x40,0x30 -}; -static const GLUTBitmapChar ch102 = { 4, 7, 0, 0, 4, ch102data }; - -static const unsigned char ch103data[] = { - 0xe0,0x90,0x60,0x40,0xa0,0xa0,0x70 -}; -static const GLUTBitmapChar ch103 = { 4, 7, 0, 2, 5, ch103data }; - -static const unsigned char ch104data[] = { - 0xd8,0x90,0x90,0x90,0xe0,0x80,0x80 -}; -static const GLUTBitmapChar ch104 = { 5, 7, 0, 0, 5, ch104data }; - -static const unsigned char ch105data[] = { - 0x40,0x40,0x40,0x40,0xc0,0x0,0x40 -}; -static const GLUTBitmapChar ch105 = { 2, 7, 0, 0, 3, ch105data }; - -static const unsigned char ch106data[] = { - 0x80,0x40,0x40,0x40,0x40,0x40,0xc0,0x0,0x40 -}; -static const GLUTBitmapChar ch106 = { 2, 9, 0, 2, 3, ch106data }; - -static const unsigned char ch107data[] = { - 0x98,0x90,0xe0,0xa0,0x90,0x80,0x80 -}; -static const GLUTBitmapChar ch107 = { 5, 7, 0, 0, 5, ch107data }; - -static const unsigned char ch108data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xc0 -}; -static const GLUTBitmapChar ch108 = { 3, 7, 0, 0, 4, ch108data }; - -static const unsigned char ch109data[] = { - 0xdb,0x92,0x92,0x92,0xec -}; -static const GLUTBitmapChar ch109 = { 8, 5, 0, 0, 8, ch109data }; - -static const unsigned char ch110data[] = { - 0xd8,0x90,0x90,0x90,0xe0 -}; -static const GLUTBitmapChar ch110 = { 5, 5, 0, 0, 5, ch110data }; - -static const unsigned char ch111data[] = { - 0x60,0x90,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch111 = { 4, 5, 0, 0, 5, ch111data }; - -static const unsigned char ch112data[] = { - 0xc0,0x80,0xe0,0x90,0x90,0x90,0xe0 -}; -static const GLUTBitmapChar ch112 = { 4, 7, 0, 2, 5, ch112data }; - -static const unsigned char ch113data[] = { - 0x38,0x10,0x70,0x90,0x90,0x90,0x70 -}; -static const GLUTBitmapChar ch113 = { 5, 7, 0, 2, 5, ch113data }; - -static const unsigned char ch114data[] = { - 0xe0,0x40,0x40,0x60,0xa0 -}; -static const GLUTBitmapChar ch114 = { 3, 5, 0, 0, 4, ch114data }; - -static const unsigned char ch115data[] = { - 0xe0,0x20,0x60,0x80,0xe0 -}; -static const GLUTBitmapChar ch115 = { 3, 5, 0, 0, 4, ch115data }; - -static const unsigned char ch116data[] = { - 0x30,0x40,0x40,0x40,0xe0,0x40 -}; -static const GLUTBitmapChar ch116 = { 4, 6, 0, 0, 4, ch116data }; - -static const unsigned char ch117data[] = { - 0x68,0x90,0x90,0x90,0x90 -}; -static const GLUTBitmapChar ch117 = { 5, 5, 0, 0, 5, ch117data }; - -static const unsigned char ch118data[] = { - 0x20,0x60,0x50,0x90,0xd8 -}; -static const GLUTBitmapChar ch118 = { 5, 5, 0, 0, 5, ch118data }; - -static const unsigned char ch119data[] = { - 0x28,0x6c,0x54,0x92,0xdb -}; -static const GLUTBitmapChar ch119 = { 8, 5, 0, 0, 8, ch119data }; - -static const unsigned char ch120data[] = { - 0xd8,0x50,0x20,0x50,0xd8 -}; -static const GLUTBitmapChar ch120 = { 5, 5, 0, 0, 6, ch120data }; - -static const unsigned char ch121data[] = { - 0x40,0x40,0x20,0x30,0x50,0x48,0xdc -}; -static const GLUTBitmapChar ch121 = { 6, 7, 1, 2, 5, ch121data }; - -static const unsigned char ch122data[] = { - 0xf0,0x90,0x40,0x20,0xf0 -}; -static const GLUTBitmapChar ch122 = { 4, 5, 0, 0, 5, ch122data }; - -static const unsigned char ch123data[] = { - 0x20,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x20 -}; -static const GLUTBitmapChar ch123 = { 3, 9, 0, 2, 4, ch123data }; - -static const unsigned char ch124data[] = { - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch124 = { 1, 9, 0, 2, 2, ch124data }; - -static const unsigned char ch125data[] = { - 0x80,0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80 -}; -static const GLUTBitmapChar ch125 = { 3, 9, 0, 2, 4, ch125data }; - -static const unsigned char ch126data[] = { - 0x98,0x64 -}; -static const GLUTBitmapChar ch126 = { 6, 2, 0, -2, 7, ch126data }; - -static const unsigned char ch160data[] = { - 0x0 -}; -static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 2, ch160data }; - -static const unsigned char ch161data[] = { - 0x80,0x80,0x80,0x80,0x80,0x0,0x80 -}; -static const GLUTBitmapChar ch161 = { 1, 7, -1, 2, 3, ch161data }; - -static const unsigned char ch162data[] = { - 0x80,0xe0,0x90,0x80,0x90,0x70,0x10 -}; -static const GLUTBitmapChar ch162 = { 4, 7, 0, 1, 5, ch162data }; - -static const unsigned char ch163data[] = { - 0xf0,0xc8,0x40,0xe0,0x40,0x50,0x30 -}; -static const GLUTBitmapChar ch163 = { 5, 7, 0, 0, 5, ch163data }; - -static const unsigned char ch164data[] = { - 0x88,0x70,0x50,0x50,0x70,0x88 -}; -static const GLUTBitmapChar ch164 = { 5, 6, 0, -1, 5, ch164data }; - -static const unsigned char ch165data[] = { - 0x70,0x20,0xf8,0x20,0xd8,0x50,0x88 -}; -static const GLUTBitmapChar ch165 = { 5, 7, 0, 0, 5, ch165data }; - -static const unsigned char ch166data[] = { - 0x80,0x80,0x80,0x0,0x80,0x80,0x80 -}; -static const GLUTBitmapChar ch166 = { 1, 7, 0, 0, 2, ch166data }; - -static const unsigned char ch167data[] = { - 0xe0,0x90,0x20,0x50,0x90,0xa0,0x40,0x90,0x70 -}; -static const GLUTBitmapChar ch167 = { 4, 9, 0, 1, 5, ch167data }; - -static const unsigned char ch168data[] = { - 0xa0 -}; -static const GLUTBitmapChar ch168 = { 3, 1, -1, -6, 5, ch168data }; - -static const unsigned char ch169data[] = { - 0x38,0x44,0x9a,0xa2,0x9a,0x44,0x38 -}; -static const GLUTBitmapChar ch169 = { 7, 7, -1, 0, 9, ch169data }; - -static const unsigned char ch170data[] = { - 0xe0,0x0,0xa0,0x20,0xc0 -}; -static const GLUTBitmapChar ch170 = { 3, 5, 0, -2, 4, ch170data }; - -static const unsigned char ch171data[] = { - 0x50,0xa0,0xa0,0x50 -}; -static const GLUTBitmapChar ch171 = { 4, 4, 0, -1, 5, ch171data }; - -static const unsigned char ch172data[] = { - 0x8,0x8,0xf8 -}; -static const GLUTBitmapChar ch172 = { 5, 3, -1, -1, 7, ch172data }; - -static const unsigned char ch173data[] = { - 0xe0 -}; -static const GLUTBitmapChar ch173 = { 3, 1, 0, -2, 4, ch173data }; - -static const unsigned char ch174data[] = { - 0x38,0x44,0xaa,0xb2,0xba,0x44,0x38 -}; -static const GLUTBitmapChar ch174 = { 7, 7, -1, 0, 9, ch174data }; - -static const unsigned char ch175data[] = { - 0xe0 -}; -static const GLUTBitmapChar ch175 = { 3, 1, 0, -6, 4, ch175data }; - -static const unsigned char ch176data[] = { - 0x60,0x90,0x90,0x60 -}; -static const GLUTBitmapChar ch176 = { 4, 4, 0, -3, 4, ch176data }; - -static const unsigned char ch177data[] = { - 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 -}; -static const GLUTBitmapChar ch177 = { 5, 7, 0, 0, 6, ch177data }; - -static const unsigned char ch178data[] = { - 0xe0,0x40,0xa0,0x60 -}; -static const GLUTBitmapChar ch178 = { 3, 4, 0, -3, 3, ch178data }; - -static const unsigned char ch179data[] = { - 0xc0,0x20,0x40,0xe0 -}; -static const GLUTBitmapChar ch179 = { 3, 4, 0, -3, 3, ch179data }; - -static const unsigned char ch180data[] = { - 0x80,0x40 -}; -static const GLUTBitmapChar ch180 = { 2, 2, 0, -5, 3, ch180data }; - -static const unsigned char ch181data[] = { - 0x80,0x80,0xe8,0x90,0x90,0x90,0x90 -}; -static const GLUTBitmapChar ch181 = { 5, 7, 0, 2, 5, ch181data }; - -static const unsigned char ch182data[] = { - 0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x7c -}; -static const GLUTBitmapChar ch182 = { 6, 9, 0, 2, 6, ch182data }; - -static const unsigned char ch183data[] = { - 0x80 -}; -static const GLUTBitmapChar ch183 = { 1, 1, 0, -2, 2, ch183data }; - -static const unsigned char ch184data[] = { - 0xc0,0x20,0x40 -}; -static const GLUTBitmapChar ch184 = { 3, 3, 0, 3, 4, ch184data }; - -static const unsigned char ch185data[] = { - 0xe0,0x40,0xc0,0x40 -}; -static const GLUTBitmapChar ch185 = { 3, 4, 0, -3, 3, ch185data }; - -static const unsigned char ch186data[] = { - 0xe0,0x0,0x40,0xa0,0x40 -}; -static const GLUTBitmapChar ch186 = { 3, 5, 0, -2, 4, ch186data }; - -static const unsigned char ch187data[] = { - 0xa0,0x50,0x50,0xa0 -}; -static const GLUTBitmapChar ch187 = { 4, 4, 0, -1, 5, ch187data }; - -static const unsigned char ch188data[] = { - 0x44,0x3e,0x2c,0xf4,0x48,0xc8,0x44 -}; -static const GLUTBitmapChar ch188 = { 7, 7, 0, 0, 8, ch188data }; - -static const unsigned char ch189data[] = { - 0x4e,0x24,0x2a,0xf6,0x48,0xc8,0x44 -}; -static const GLUTBitmapChar ch189 = { 7, 7, 0, 0, 8, ch189data }; - -static const unsigned char ch190data[] = { - 0x44,0x3e,0x2c,0xd4,0x28,0x48,0xe4 -}; -static const GLUTBitmapChar ch190 = { 7, 7, 0, 0, 8, ch190data }; - -static const unsigned char ch191data[] = { - 0xe0,0xa0,0x80,0x40,0x40,0x0,0x40 -}; -static const GLUTBitmapChar ch191 = { 3, 7, 0, 2, 4, ch191data }; - -static const unsigned char ch192data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch192 = { 7, 10, 0, 0, 8, ch192data }; - -static const unsigned char ch193data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch193 = { 7, 10, 0, 0, 8, ch193data }; - -static const unsigned char ch194data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch194 = { 7, 10, 0, 0, 8, ch194data }; - -static const unsigned char ch195data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28,0x14 -}; -static const GLUTBitmapChar ch195 = { 7, 10, 0, 0, 8, ch195data }; - -static const unsigned char ch196data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28 -}; -static const GLUTBitmapChar ch196 = { 7, 9, 0, 0, 8, ch196data }; - -static const unsigned char ch197data[] = { - 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x10,0x28,0x10 -}; -static const GLUTBitmapChar ch197 = { 7, 10, 0, 0, 8, ch197data }; - -static const unsigned char ch198data[] = { - 0xef,0x49,0x78,0x2e,0x28,0x39,0x1f -}; -static const GLUTBitmapChar ch198 = { 8, 7, 0, 0, 9, ch198data }; - -static const unsigned char ch199data[] = { - 0x60,0x10,0x20,0x78,0xc4,0x80,0x80,0x80,0xc4,0x7c -}; -static const GLUTBitmapChar ch199 = { 6, 10, 0, 3, 7, ch199data }; - -static const unsigned char ch200data[] = { - 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch200 = { 5, 10, 0, 0, 6, ch200data }; - -static const unsigned char ch201data[] = { - 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch201 = { 5, 10, 0, 0, 6, ch201data }; - -static const unsigned char ch202data[] = { - 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch202 = { 5, 10, 0, 0, 6, ch202data }; - -static const unsigned char ch203data[] = { - 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x50 -}; -static const GLUTBitmapChar ch203 = { 5, 9, 0, 0, 6, ch203data }; - -static const unsigned char ch204data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch204 = { 3, 10, 0, 0, 4, ch204data }; - -static const unsigned char ch205data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch205 = { 3, 10, 0, 0, 4, ch205data }; - -static const unsigned char ch206data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch206 = { 3, 10, 0, 0, 4, ch206data }; - -static const unsigned char ch207data[] = { - 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0xa0 -}; -static const GLUTBitmapChar ch207 = { 3, 9, 0, 0, 4, ch207data }; - -static const unsigned char ch208data[] = { - 0xf8,0x4c,0x44,0xe4,0x44,0x4c,0xf8 -}; -static const GLUTBitmapChar ch208 = { 6, 7, 0, 0, 7, ch208data }; - -static const unsigned char ch209data[] = { - 0xe4,0x4c,0x4c,0x54,0x54,0x64,0xee,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch209 = { 7, 10, 0, 0, 8, ch209data }; - -static const unsigned char ch210data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch210 = { 6, 10, 0, 0, 7, ch210data }; - -static const unsigned char ch211data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch211 = { 6, 10, 0, 0, 7, ch211data }; - -static const unsigned char ch212data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch212 = { 6, 10, 0, 0, 7, ch212data }; - -static const unsigned char ch213data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50,0x28 -}; -static const GLUTBitmapChar ch213 = { 6, 10, 0, 0, 7, ch213data }; - -static const unsigned char ch214data[] = { - 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50 -}; -static const GLUTBitmapChar ch214 = { 6, 9, 0, 0, 7, ch214data }; - -static const unsigned char ch215data[] = { - 0x88,0x50,0x20,0x50,0x88 -}; -static const GLUTBitmapChar ch215 = { 5, 5, 0, 0, 6, ch215data }; - -static const unsigned char ch216data[] = { - 0x80,0x7c,0x66,0x52,0x52,0x4a,0x66,0x3e,0x1 -}; -static const GLUTBitmapChar ch216 = { 8, 9, 0, 1, 8, ch216data }; - -static const unsigned char ch217data[] = { - 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x10,0x20 -}; -static const GLUTBitmapChar ch217 = { 7, 10, 0, 0, 8, ch217data }; - -static const unsigned char ch218data[] = { - 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch218 = { 7, 10, 0, 0, 8, ch218data }; - -static const unsigned char ch219data[] = { - 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x28,0x10 -}; -static const GLUTBitmapChar ch219 = { 7, 10, 0, 0, 8, ch219data }; - -static const unsigned char ch220data[] = { - 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x28 -}; -static const GLUTBitmapChar ch220 = { 7, 9, 0, 0, 8, ch220data }; - -static const unsigned char ch221data[] = { - 0x38,0x10,0x10,0x28,0x28,0x44,0xee,0x0,0x10,0x8 -}; -static const GLUTBitmapChar ch221 = { 7, 10, 0, 0, 8, ch221data }; - -static const unsigned char ch222data[] = { - 0xe0,0x40,0x70,0x48,0x70,0x40,0xe0 -}; -static const GLUTBitmapChar ch222 = { 5, 7, 0, 0, 6, ch222data }; - -static const unsigned char ch223data[] = { - 0xe0,0x50,0x50,0x60,0x50,0x50,0x20 -}; -static const GLUTBitmapChar ch223 = { 4, 7, 0, 0, 5, ch223data }; - -static const unsigned char ch224data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch224 = { 3, 8, 0, 0, 4, ch224data }; - -static const unsigned char ch225data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch225 = { 3, 8, 0, 0, 4, ch225data }; - -static const unsigned char ch226data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch226 = { 3, 8, 0, 0, 4, ch226data }; - -static const unsigned char ch227data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0,0x50 -}; -static const GLUTBitmapChar ch227 = { 4, 8, 0, 0, 4, ch227data }; - -static const unsigned char ch228data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0 -}; -static const GLUTBitmapChar ch228 = { 3, 7, 0, 0, 4, ch228data }; - -static const unsigned char ch229data[] = { - 0xe0,0xa0,0x60,0x20,0xc0,0x40,0xa0,0x40 -}; -static const GLUTBitmapChar ch229 = { 3, 8, 0, 0, 4, ch229data }; - -static const unsigned char ch230data[] = { - 0xd8,0xa0,0x70,0x28,0xd8 -}; -static const GLUTBitmapChar ch230 = { 5, 5, 0, 0, 6, ch230data }; - -static const unsigned char ch231data[] = { - 0xc0,0x20,0x40,0x60,0x80,0x80,0x80,0x60 -}; -static const GLUTBitmapChar ch231 = { 3, 8, 0, 3, 4, ch231data }; - -static const unsigned char ch232data[] = { - 0x60,0x80,0xc0,0xa0,0x60,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch232 = { 3, 8, 0, 0, 4, ch232data }; - -static const unsigned char ch233data[] = { - 0x60,0x80,0xc0,0xa0,0x60,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch233 = { 3, 8, 0, 0, 4, ch233data }; - -static const unsigned char ch234data[] = { - 0x60,0x80,0xc0,0xa0,0x60,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch234 = { 3, 8, 0, 0, 4, ch234data }; - -static const unsigned char ch235data[] = { - 0x60,0x80,0xc0,0xa0,0x60,0x0,0xa0 -}; -static const GLUTBitmapChar ch235 = { 3, 7, 0, 0, 4, ch235data }; - -static const unsigned char ch236data[] = { - 0xe0,0x40,0x40,0x40,0xc0,0x0,0x40,0x80 -}; -static const GLUTBitmapChar ch236 = { 3, 8, 0, 0, 4, ch236data }; - -static const unsigned char ch237data[] = { - 0xe0,0x40,0x40,0x40,0xc0,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch237 = { 3, 8, 0, 0, 4, ch237data }; - -static const unsigned char ch238data[] = { - 0xe0,0x40,0x40,0x40,0xc0,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch238 = { 3, 8, 0, 0, 4, ch238data }; - -static const unsigned char ch239data[] = { - 0xe0,0x40,0x40,0x40,0xc0,0x0,0xa0 -}; -static const GLUTBitmapChar ch239 = { 3, 7, 0, 0, 4, ch239data }; - -static const unsigned char ch240data[] = { - 0x60,0x90,0x90,0x90,0x70,0xa0,0x70,0x40 -}; -static const GLUTBitmapChar ch240 = { 4, 8, 0, 0, 5, ch240data }; - -static const unsigned char ch241data[] = { - 0xd8,0x90,0x90,0x90,0xe0,0x0,0xa0,0x50 -}; -static const GLUTBitmapChar ch241 = { 5, 8, 0, 0, 5, ch241data }; - -static const unsigned char ch242data[] = { - 0x60,0x90,0x90,0x90,0x60,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch242 = { 4, 8, 0, 0, 5, ch242data }; - -static const unsigned char ch243data[] = { - 0x60,0x90,0x90,0x90,0x60,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch243 = { 4, 8, 0, 0, 5, ch243data }; - -static const unsigned char ch244data[] = { - 0x60,0x90,0x90,0x90,0x60,0x0,0xa0,0x40 -}; -static const GLUTBitmapChar ch244 = { 4, 8, 0, 0, 5, ch244data }; - -static const unsigned char ch245data[] = { - 0x60,0x90,0x90,0x90,0x60,0x0,0xa0,0x50 -}; -static const GLUTBitmapChar ch245 = { 4, 8, 0, 0, 5, ch245data }; - -static const unsigned char ch246data[] = { - 0x60,0x90,0x90,0x90,0x60,0x0,0xa0 -}; -static const GLUTBitmapChar ch246 = { 4, 7, 0, 0, 5, ch246data }; - -static const unsigned char ch247data[] = { - 0x20,0x0,0xf8,0x0,0x20 -}; -static const GLUTBitmapChar ch247 = { 5, 5, 0, 0, 6, ch247data }; - -static const unsigned char ch248data[] = { - 0x80,0x70,0x48,0x48,0x48,0x38,0x4 -}; -static const GLUTBitmapChar ch248 = { 6, 7, 1, 1, 5, ch248data }; - -static const unsigned char ch249data[] = { - 0x68,0x90,0x90,0x90,0x90,0x0,0x20,0x40 -}; -static const GLUTBitmapChar ch249 = { 5, 8, 0, 0, 5, ch249data }; - -static const unsigned char ch250data[] = { - 0x68,0x90,0x90,0x90,0x90,0x0,0x40,0x20 -}; -static const GLUTBitmapChar ch250 = { 5, 8, 0, 0, 5, ch250data }; - -static const unsigned char ch251data[] = { - 0x68,0x90,0x90,0x90,0x90,0x0,0x50,0x20 -}; -static const GLUTBitmapChar ch251 = { 5, 8, 0, 0, 5, ch251data }; - -static const unsigned char ch252data[] = { - 0x68,0x90,0x90,0x90,0x90,0x0,0x50 -}; -static const GLUTBitmapChar ch252 = { 5, 7, 0, 0, 5, ch252data }; - -static const unsigned char ch253data[] = { - 0x80,0xc0,0x40,0x60,0xa0,0x90,0xb8,0x0,0x20,0x10 -}; -static const GLUTBitmapChar ch253 = { 5, 10, 0, 2, 5, ch253data }; - -static const unsigned char ch254data[] = { - 0xc0,0x80,0xe0,0x90,0x90,0x90,0xe0,0x80,0x80 -}; -static const GLUTBitmapChar ch254 = { 4, 9, 0, 2, 5, ch254data }; - -static const unsigned char ch255data[] = { - 0x80,0xc0,0x40,0x60,0xa0,0x90,0xb8,0x0,0xa0 -}; -static const GLUTBitmapChar ch255 = { 5, 9, 0, 2, 5, ch255data }; - - -static const GLUTBitmapChar *chars[] = { - 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, - &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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - &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 GLUTBitmapFont glutBitmapTimesRoman10 = { - "-Adobe-Times-Medium-R-Normal--10-100-75-75-P-54-ISO8859-1", - 13, 256, chars -}; diff --git a/src/glut/dos/tr24.c b/src/glut/dos/tr24.c deleted file mode 100644 index 2dd2a78c83..0000000000 --- a/src/glut/dos/tr24.c +++ /dev/null @@ -1,1301 +0,0 @@ -/* autogenerated by bdf2c! do not edit */ - -/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ - - -#include "internal.h" -/* -typedef struct { - int width, height; - int xorig, yorig; - int xmove; - const unsigned char *bitmap; -} GLUTBitmapChar; - -typedef struct { - const char *name; - int height; - int num; - const GLUTBitmapChar *const *table; -} GLUTBitmapFont; -*/ - - -static const unsigned char ch32data[] = { - 0x0 -}; -static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 6, ch32data }; - -static const unsigned char ch33data[] = { - 0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch33 = { 2, 17, -3, 0, 8, ch33data }; - -static const unsigned char ch34data[] = { - 0x88,0xcc,0xcc,0xcc,0xcc -}; -static const GLUTBitmapChar ch34 = { 6, 5, -1, -12, 10, ch34data }; - -static const unsigned char ch35data[] = { - 0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0xff,0xc0,0xff,0xc0,0x11,0x0, - 0x11,0x0,0x11,0x0,0x7f,0xe0,0x7f,0xe0,0x8,0x80,0x8,0x80,0x8,0x80,0x8,0x80, - 0x8,0x80 -}; -static const GLUTBitmapChar ch35 = { 11, 17, -1, 0, 13, ch35data }; - -static const unsigned char ch36data[] = { - 0x4,0x0,0x4,0x0,0x3f,0x0,0xe5,0xc0,0xc4,0xc0,0x84,0x60,0x84,0x60,0x4,0x60, - 0x4,0xe0,0x7,0xc0,0x7,0x80,0x1e,0x0,0x3c,0x0,0x74,0x0,0x64,0x0,0x64,0x20, - 0x64,0x60,0x34,0xe0,0x1f,0x80,0x4,0x0,0x4,0x0 -}; -static const GLUTBitmapChar ch36 = { 11, 21, 0, 2, 12, ch36data }; - -static const unsigned char ch37data[] = { - 0x30,0x3c,0x0,0x18,0x72,0x0,0xc,0x61,0x0,0x4,0x60,0x80,0x6,0x60,0x80,0x3, - 0x30,0x80,0x1,0x19,0x80,0x1,0x8f,0x0,0x78,0xc0,0x0,0xe4,0x40,0x0,0xc2,0x60, - 0x0,0xc1,0x30,0x0,0xc1,0x10,0x0,0x61,0x18,0x0,0x33,0xfc,0x0,0x1e,0xc,0x0 -}; -static const GLUTBitmapChar ch37 = { 17, 16, -1, 0, 19, ch37data }; - -static const unsigned char ch38data[] = { - 0x3c,0x3c,0x7f,0x7e,0xe1,0xe1,0xc0,0xc0,0xc1,0xc0,0xc1,0xa0,0x63,0x20,0x37,0x10, - 0x1e,0x18,0xe,0x3e,0xf,0x0,0x1d,0x80,0x18,0xc0,0x18,0x40,0x18,0x40,0xc,0xc0, - 0x7,0x80 -}; -static const GLUTBitmapChar ch38 = { 16, 17, -1, 0, 18, ch38data }; - -static const unsigned char ch39data[] = { - 0xc0,0x60,0x20,0xe0,0xc0 -}; -static const GLUTBitmapChar ch39 = { 3, 5, -3, -12, 8, ch39data }; - -static const unsigned char ch40data[] = { - 0x4,0x8,0x10,0x30,0x20,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60, - 0x60,0x20,0x30,0x10,0x8,0x4 -}; -static const GLUTBitmapChar ch40 = { 6, 22, -1, 5, 8, ch40data }; - -static const unsigned char ch41data[] = { - 0x80,0x40,0x20,0x30,0x10,0x18,0x18,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x18, - 0x18,0x10,0x30,0x20,0x40,0x80 -}; -static const GLUTBitmapChar ch41 = { 6, 22, -1, 5, 8, ch41data }; - -static const unsigned char ch42data[] = { - 0x8,0x0,0x1c,0x0,0xc9,0x80,0xeb,0x80,0x1c,0x0,0xeb,0x80,0xc9,0x80,0x1c,0x0, - 0x8,0x0 -}; -static const GLUTBitmapChar ch42 = { 9, 9, -2, -8, 12, ch42data }; - -static const unsigned char ch43data[] = { - 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xff,0xf0,0xff,0xf0,0x6,0x0, - 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch43 = { 12, 12, -1, -1, 14, ch43data }; - -static const unsigned char ch44data[] = { - 0xc0,0x60,0x20,0xe0,0xc0 -}; -static const GLUTBitmapChar ch44 = { 3, 5, -2, 3, 7, ch44data }; - -static const unsigned char ch45data[] = { - 0xff,0xf0,0xff,0xf0 -}; -static const GLUTBitmapChar ch45 = { 12, 2, -1, -6, 14, ch45data }; - -static const unsigned char ch46data[] = { - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch46 = { 2, 2, -2, 0, 6, ch46data }; - -static const unsigned char ch47data[] = { - 0xc0,0xc0,0xc0,0x60,0x60,0x20,0x30,0x30,0x10,0x18,0x18,0x8,0xc,0xc,0x4,0x6, - 0x6,0x3,0x3,0x3 -}; -static const GLUTBitmapChar ch47 = { 8, 20, 1, 3, 7, ch47data }; - -static const unsigned char ch48data[] = { - 0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0xe1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x61,0x80,0x61,0x80,0x33,0x0, - 0x1e,0x0 -}; -static const GLUTBitmapChar ch48 = { 10, 17, -1, 0, 12, ch48data }; - -static const unsigned char ch49data[] = { - 0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x18, - 0x8 -}; -static const GLUTBitmapChar ch49 = { 8, 17, -2, 0, 12, ch49data }; - -static const unsigned char ch50data[] = { - 0xff,0x80,0xff,0xc0,0x60,0x40,0x30,0x0,0x18,0x0,0xc,0x0,0x4,0x0,0x6,0x0, - 0x3,0x0,0x3,0x0,0x1,0x80,0x1,0x80,0x81,0x80,0x81,0x80,0x43,0x80,0x7f,0x0, - 0x1c,0x0 -}; -static const GLUTBitmapChar ch50 = { 10, 17, -1, 0, 12, ch50data }; - -static const unsigned char ch51data[] = { - 0x78,0x0,0xe6,0x0,0xc3,0x0,0x1,0x0,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0x80, - 0x7,0x0,0x1e,0x0,0xc,0x0,0x6,0x0,0x83,0x0,0x83,0x0,0x47,0x0,0x7e,0x0, - 0x1c,0x0 -}; -static const GLUTBitmapChar ch51 = { 9, 17, -1, 0, 12, ch51data }; - -static const unsigned char ch52data[] = { - 0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0xff,0xc0,0xff,0xc0,0xc3,0x0,0x43,0x0, - 0x63,0x0,0x23,0x0,0x33,0x0,0x13,0x0,0x1b,0x0,0xb,0x0,0x7,0x0,0x7,0x0, - 0x3,0x0 -}; -static const GLUTBitmapChar ch52 = { 10, 17, -1, 0, 12, ch52data }; - -static const unsigned char ch53data[] = { - 0x7e,0x0,0xe3,0x80,0xc1,0x80,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x1,0xc0, - 0x3,0x80,0xf,0x80,0x7e,0x0,0x78,0x0,0x60,0x0,0x20,0x0,0x20,0x0,0x1f,0x80, - 0x1f,0xc0 -}; -static const GLUTBitmapChar ch53 = { 10, 17, -1, 0, 12, ch53data }; - -static const unsigned char ch54data[] = { - 0x1e,0x0,0x7b,0x80,0x61,0x80,0xe0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc1,0x80,0xf3,0x80,0xee,0x0,0x60,0x0,0x70,0x0,0x30,0x0,0x18,0x0,0xe,0x0, - 0x3,0xc0 -}; -static const GLUTBitmapChar ch54 = { 10, 17, -1, 0, 12, ch54data }; - -static const unsigned char ch55data[] = { - 0x18,0x0,0x18,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0x4,0x0,0x6,0x0,0x6,0x0, - 0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x80,0x81,0x80,0xc0,0xc0,0xff,0xc0, - 0x7f,0xc0 -}; -static const GLUTBitmapChar ch55 = { 10, 17, -1, 0, 12, ch55data }; - -static const unsigned char ch56data[] = { - 0x1e,0x0,0x73,0x80,0xe1,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x41,0xc0,0x61,0x80, - 0x37,0x0,0x1e,0x0,0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, - 0x1e,0x0 -}; -static const GLUTBitmapChar ch56 = { 10, 17, -1, 0, 12, ch56data }; - -static const unsigned char ch57data[] = { - 0xf0,0x0,0x1c,0x0,0x6,0x0,0x3,0x0,0x3,0x80,0x1,0x80,0x1d,0x80,0x73,0xc0, - 0x61,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0x61,0x80,0x77,0x80, - 0x1e,0x0 -}; -static const GLUTBitmapChar ch57 = { 10, 17, -1, 0, 12, ch57data }; - -static const unsigned char ch58data[] = { - 0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch58 = { 2, 11, -2, 0, 6, ch58data }; - -static const unsigned char ch59data[] = { - 0xc0,0x60,0x20,0xe0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 -}; -static const GLUTBitmapChar ch59 = { 3, 14, -2, 3, 7, ch59data }; - -static const unsigned char ch60data[] = { - 0x0,0x60,0x1,0xc0,0x7,0x0,0x1c,0x0,0x70,0x0,0xc0,0x0,0x70,0x0,0x1c,0x0, - 0x7,0x0,0x1,0xc0,0x0,0x60 -}; -static const GLUTBitmapChar ch60 = { 11, 11, -1, -1, 13, ch60data }; - -static const unsigned char ch61data[] = { - 0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0 -}; -static const GLUTBitmapChar ch61 = { 12, 6, -1, -4, 14, ch61data }; - -static const unsigned char ch62data[] = { - 0xc0,0x0,0x70,0x0,0x1c,0x0,0x7,0x0,0x1,0xc0,0x0,0x60,0x1,0xc0,0x7,0x0, - 0x1c,0x0,0x70,0x0,0xc0,0x0 -}; -static const GLUTBitmapChar ch62 = { 11, 11, -1, -1, 13, ch62data }; - -static const unsigned char ch63data[] = { - 0x30,0x30,0x0,0x0,0x10,0x10,0x10,0x18,0x18,0xc,0xe,0x7,0xc3,0xc3,0x83,0xc6, - 0x7c -}; -static const GLUTBitmapChar ch63 = { 8, 17, -2, 0, 11, ch63data }; - -static const unsigned char ch64data[] = { - 0x3,0xf0,0x0,0xe,0xc,0x0,0x18,0x0,0x0,0x30,0x0,0x0,0x61,0xde,0x0,0x63, - 0x7b,0x0,0xc6,0x39,0x80,0xc6,0x18,0x80,0xc6,0x18,0xc0,0xc6,0x18,0x40,0xc6,0xc, - 0x40,0xc3,0xc,0x40,0xc3,0x8c,0x40,0xe1,0xfc,0x40,0x60,0xec,0xc0,0x70,0x0,0x80, - 0x38,0x1,0x80,0x1c,0x3,0x0,0xf,0xe,0x0,0x3,0xf8,0x0 -}; -static const GLUTBitmapChar ch64 = { 18, 20, -2, 3, 22, ch64data }; - -static const unsigned char ch65data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0 -}; -static const GLUTBitmapChar ch65 = { 17, 17, 0, 0, 17, ch65data }; - -static const unsigned char ch66data[] = { - 0xff,0xe0,0x30,0x78,0x30,0x18,0x30,0xc,0x30,0xc,0x30,0xc,0x30,0x18,0x30,0x38, - 0x3f,0xe0,0x30,0x40,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, - 0xff,0xc0 -}; -static const GLUTBitmapChar ch66 = { 14, 17, -1, 0, 16, ch66data }; - -static const unsigned char ch67data[] = { - 0x7,0xe0,0x1e,0x38,0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, - 0x7,0xe4 -}; -static const GLUTBitmapChar ch67 = { 14, 17, -1, 0, 16, ch67data }; - -static const unsigned char ch68data[] = { - 0xff,0xc0,0x30,0x70,0x30,0x38,0x30,0xc,0x30,0xc,0x30,0x6,0x30,0x6,0x30,0x6, - 0x30,0x6,0x30,0x6,0x30,0x6,0x30,0x6,0x30,0xc,0x30,0xc,0x30,0x38,0x30,0x70, - 0xff,0xc0 -}; -static const GLUTBitmapChar ch68 = { 15, 17, -1, 0, 17, ch68data }; - -static const unsigned char ch69data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, - 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0 -}; -static const GLUTBitmapChar ch69 = { 13, 17, -1, 0, 15, ch69data }; - -static const unsigned char ch70data[] = { - 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x20,0x30,0x20, - 0x3f,0xe0,0x30,0x20,0x30,0x20,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0 -}; -static const GLUTBitmapChar ch70 = { 12, 17, -1, 0, 14, ch70data }; - -static const unsigned char ch71data[] = { - 0x7,0xe0,0x1e,0x38,0x38,0x1c,0x60,0xc,0x60,0xc,0xc0,0xc,0xc0,0xc,0xc0,0x3f, - 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, - 0x7,0xe4 -}; -static const GLUTBitmapChar ch71 = { 16, 17, -1, 0, 18, ch71data }; - -static const unsigned char ch72data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30, - 0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x3f,0xfe,0x0,0x30,0x6,0x0,0x30,0x6, - 0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0, - 0xfc,0x1f,0x80 -}; -static const GLUTBitmapChar ch72 = { 17, 17, -1, 0, 19, ch72data }; - -static const unsigned char ch73data[] = { - 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0xfc -}; -static const GLUTBitmapChar ch73 = { 6, 17, -1, 0, 8, ch73data }; - -static const unsigned char ch74data[] = { - 0x78,0x0,0xcc,0x0,0xc6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, - 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, - 0x1f,0x80 -}; -static const GLUTBitmapChar ch74 = { 9, 17, -1, 0, 11, ch74data }; - -static const unsigned char ch75data[] = { - 0xfc,0x1f,0x30,0xe,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0xe0,0x31,0xc0,0x33,0x80, - 0x3f,0x0,0x3e,0x0,0x33,0x0,0x31,0x80,0x30,0xc0,0x30,0x60,0x30,0x30,0x30,0x18, - 0xfc,0x7e -}; -static const GLUTBitmapChar ch75 = { 16, 17, -1, 0, 17, ch75data }; - -static const unsigned char ch76data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, - 0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, - 0xfc,0x0 -}; -static const GLUTBitmapChar ch76 = { 13, 17, -1, 0, 14, ch76data }; - -static const unsigned char ch77data[] = { - 0xf8,0x21,0xf8,0x20,0x60,0x60,0x20,0x60,0x60,0x20,0xd0,0x60,0x20,0xd0,0x60,0x21, - 0x88,0x60,0x21,0x88,0x60,0x23,0x8,0x60,0x23,0x4,0x60,0x26,0x4,0x60,0x26,0x2, - 0x60,0x2c,0x2,0x60,0x2c,0x2,0x60,0x38,0x1,0x60,0x38,0x1,0x60,0x30,0x0,0xe0, - 0xf0,0x0,0xf8 -}; -static const GLUTBitmapChar ch77 = { 21, 17, -1, 0, 22, ch77data }; - -static const unsigned char ch78data[] = { - 0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, - 0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, - 0xf0,0x1f -}; -static const GLUTBitmapChar ch78 = { 16, 17, -1, 0, 18, ch78data }; - -static const unsigned char ch79data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0 -}; -static const GLUTBitmapChar ch79 = { 16, 17, -1, 0, 18, ch79data }; - -static const unsigned char ch80data[] = { - 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, - 0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, - 0xff,0xc0 -}; -static const GLUTBitmapChar ch80 = { 13, 17, -1, 0, 15, ch80data }; - -static const unsigned char ch81data[] = { - 0x0,0xf,0x0,0x38,0x0,0x70,0x0,0xe0,0x1,0xc0,0x7,0xe0,0x1c,0x38,0x38,0x1c, - 0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38,0x7,0xe0 -}; -static const GLUTBitmapChar ch81 = { 16, 22, -1, 5, 18, ch81data }; - -static const unsigned char ch82data[] = { - 0xfc,0x1e,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0x60,0x30,0xc0,0x31,0xc0,0x33,0x80, - 0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x38,0x30,0x18,0x30,0x38,0x30,0x30,0x30,0x70, - 0xff,0xc0 -}; -static const GLUTBitmapChar ch82 = { 15, 17, -1, 0, 16, ch82data }; - -static const unsigned char ch83data[] = { - 0x9e,0x0,0xf1,0x80,0xc0,0xc0,0x80,0x60,0x80,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0, - 0xf,0x80,0x1e,0x0,0x78,0x0,0xe0,0x0,0xc0,0x40,0xc0,0x40,0xc0,0xc0,0x63,0xc0, - 0x1e,0x40 -}; -static const GLUTBitmapChar ch83 = { 11, 17, -1, 0, 13, ch83data }; - -static const unsigned char ch84data[] = { - 0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, - 0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x83,0x4,0x83,0x4,0xc3,0xc, - 0xff,0xfc -}; -static const GLUTBitmapChar ch84 = { 14, 17, -1, 0, 16, ch84data }; - -static const unsigned char ch85data[] = { - 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0xfc,0x1f -}; -static const GLUTBitmapChar ch85 = { 16, 17, -1, 0, 18, ch85data }; - -static const unsigned char ch86data[] = { - 0x1,0x80,0x0,0x1,0x80,0x0,0x1,0x80,0x0,0x3,0xc0,0x0,0x3,0x40,0x0,0x3, - 0x60,0x0,0x6,0x20,0x0,0x6,0x20,0x0,0x6,0x30,0x0,0xc,0x10,0x0,0xc,0x18, - 0x0,0x18,0x8,0x0,0x18,0x8,0x0,0x18,0xc,0x0,0x30,0x4,0x0,0x30,0x6,0x0, - 0xfc,0x1f,0x80 -}; -static const GLUTBitmapChar ch86 = { 17, 17, 0, 0, 17, ch86data }; - -static const unsigned char ch87data[] = { - 0x1,0x83,0x0,0x1,0x83,0x0,0x1,0x83,0x80,0x3,0x87,0x80,0x3,0x46,0x80,0x3, - 0x46,0xc0,0x6,0x46,0x40,0x6,0x4c,0x40,0x6,0x4c,0x60,0xc,0x2c,0x60,0xc,0x2c, - 0x20,0x18,0x2c,0x20,0x18,0x18,0x30,0x18,0x18,0x10,0x30,0x18,0x10,0x30,0x18,0x18, - 0xfc,0x7e,0x7e -}; -static const GLUTBitmapChar ch87 = { 23, 17, 0, 0, 23, ch87data }; - -static const unsigned char ch88data[] = { - 0xfc,0xf,0xc0,0x30,0x3,0x80,0x18,0x7,0x0,0x8,0xe,0x0,0x4,0xc,0x0,0x6, - 0x18,0x0,0x2,0x38,0x0,0x1,0x70,0x0,0x0,0xe0,0x0,0x0,0xc0,0x0,0x1,0xc0, - 0x0,0x3,0xa0,0x0,0x3,0x10,0x0,0x6,0x8,0x0,0xe,0xc,0x0,0x1c,0x6,0x0, - 0x7e,0xf,0x80 -}; -static const GLUTBitmapChar ch88 = { 18, 17, 0, 0, 18, ch88data }; - -static const unsigned char ch89data[] = { - 0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, - 0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, - 0xfc,0x3f -}; -static const GLUTBitmapChar ch89 = { 16, 17, 0, 0, 16, ch89data }; - -static const unsigned char ch90data[] = { - 0xff,0xf8,0xe0,0x18,0x70,0x8,0x30,0x8,0x38,0x0,0x18,0x0,0x1c,0x0,0xe,0x0, - 0x6,0x0,0x7,0x0,0x3,0x0,0x3,0x80,0x1,0xc0,0x80,0xc0,0x80,0xe0,0xc0,0x70, - 0xff,0xf0 -}; -static const GLUTBitmapChar ch90 = { 13, 17, -1, 0, 15, ch90data }; - -static const unsigned char ch91data[] = { - 0xf8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0xc0,0xc0,0xf8 -}; -static const GLUTBitmapChar ch91 = { 5, 21, -2, 4, 8, ch91data }; - -static const unsigned char ch92data[] = { - 0x6,0x6,0x4,0xc,0xc,0x8,0x18,0x18,0x10,0x30,0x30,0x20,0x60,0x60,0x40,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch92 = { 7, 17, 0, 0, 7, ch92data }; - -static const unsigned char ch93data[] = { - 0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0xf8 -}; -static const GLUTBitmapChar ch93 = { 5, 21, -1, 4, 8, ch93data }; - -static const unsigned char ch94data[] = { - 0x80,0x80,0xc1,0x80,0x41,0x0,0x63,0x0,0x22,0x0,0x36,0x0,0x14,0x0,0x1c,0x0, - 0x8,0x0 -}; -static const GLUTBitmapChar ch94 = { 9, 9, -1, -8, 11, ch94data }; - -static const unsigned char ch95data[] = { - 0xff,0xf8,0xff,0xf8 -}; -static const GLUTBitmapChar ch95 = { 13, 2, 0, 5, 13, ch95data }; - -static const unsigned char ch96data[] = { - 0x60,0xe0,0x80,0xc0,0x60 -}; -static const GLUTBitmapChar ch96 = { 3, 5, -2, -12, 7, ch96data }; - -static const unsigned char ch97data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0 -}; -static const GLUTBitmapChar ch97 = { 9, 12, -1, 0, 11, ch97data }; - -static const unsigned char ch98data[] = { - 0x5e,0x0,0x73,0x80,0x61,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x61,0x80,0x73,0x80,0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, - 0xe0,0x0 -}; -static const GLUTBitmapChar ch98 = { 10, 17, -1, 0, 12, ch98data }; - -static const unsigned char ch99data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, - 0xc0,0x0,0x41,0x80,0x63,0x80,0x1f,0x0 -}; -static const GLUTBitmapChar ch99 = { 9, 12, -1, 0, 11, ch99data }; - -static const unsigned char ch100data[] = { - 0x1e,0xc0,0x73,0x80,0x61,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80, - 0xc1,0x80,0x61,0x80,0x73,0x80,0x1d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80, - 0x3,0x80 -}; -static const GLUTBitmapChar ch100 = { 10, 17, -1, 0, 12, ch100data }; - -static const unsigned char ch101data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, - 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0 -}; -static const GLUTBitmapChar ch101 = { 9, 12, -1, 0, 11, ch101data }; - -static const unsigned char ch102data[] = { - 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x30,0x30,0x30,0x16, - 0xe -}; -static const GLUTBitmapChar ch102 = { 7, 17, 0, 0, 7, ch102data }; - -static const unsigned char ch103data[] = { - 0x3f,0x0,0xf1,0xc0,0xc0,0x60,0xc0,0x20,0x60,0x60,0x3f,0xc0,0x7f,0x0,0x60,0x0, - 0x30,0x0,0x3e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, - 0x1f,0xc0 -}; -static const GLUTBitmapChar ch103 = { 11, 17, -1, 5, 12, ch103data }; - -static const unsigned char ch104data[] = { - 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x71,0xc0,0x6f,0x80,0x67,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, - 0xe0,0x0 -}; -static const GLUTBitmapChar ch104 = { 11, 17, -1, 0, 13, ch104data }; - -static const unsigned char ch105data[] = { - 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x0,0x0,0x60, - 0x60 -}; -static const GLUTBitmapChar ch105 = { 4, 17, -1, 0, 6, ch105data }; - -static const unsigned char ch106data[] = { - 0xc0,0xe0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x70,0x0,0x0,0x0,0x30,0x30 -}; -static const GLUTBitmapChar ch106 = { 4, 22, 0, 5, 6, ch106data }; - -static const unsigned char ch107data[] = { - 0xf3,0xe0,0x61,0xc0,0x63,0x80,0x67,0x0,0x6e,0x0,0x6c,0x0,0x78,0x0,0x68,0x0, - 0x64,0x0,0x66,0x0,0x63,0x0,0x67,0xc0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, - 0xe0,0x0 -}; -static const GLUTBitmapChar ch107 = { 11, 17, -1, 0, 12, ch107data }; - -static const unsigned char ch108data[] = { - 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, - 0xe0 -}; -static const GLUTBitmapChar ch108 = { 4, 17, -1, 0, 6, ch108data }; - -static const unsigned char ch109data[] = { - 0xf1,0xe3,0xc0,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60, - 0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x71,0xe3,0x80,0x6f,0x9f, - 0x0,0xe7,0xe,0x0 -}; -static const GLUTBitmapChar ch109 = { 18, 12, -1, 0, 20, ch109data }; - -static const unsigned char ch110data[] = { - 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0 -}; -static const GLUTBitmapChar ch110 = { 11, 12, -1, 0, 13, ch110data }; - -static const unsigned char ch111data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0 -}; -static const GLUTBitmapChar ch111 = { 10, 12, -1, 0, 12, ch111data }; - -static const unsigned char ch112data[] = { - 0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, - 0xee,0x0 -}; -static const GLUTBitmapChar ch112 = { 10, 17, -1, 5, 12, ch112data }; - -static const unsigned char ch113data[] = { - 0x3,0xc0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1d,0x80,0x73,0x80,0x61,0x80, - 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x73,0x80, - 0x1d,0x80 -}; -static const GLUTBitmapChar ch113 = { 10, 17, -1, 5, 12, ch113data }; - -static const unsigned char ch114data[] = { - 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x76,0x6e,0xe6 -}; -static const GLUTBitmapChar ch114 = { 7, 12, -1, 0, 8, ch114data }; - -static const unsigned char ch115data[] = { - 0xf8,0xc6,0x83,0x3,0x7,0x1e,0x7c,0x70,0xe0,0xc2,0x66,0x3e -}; -static const GLUTBitmapChar ch115 = { 8, 12, -1, 0, 10, ch115data }; - -static const unsigned char ch116data[] = { - 0x1c,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x70,0x30,0x10 -}; -static const GLUTBitmapChar ch116 = { 7, 15, 0, 0, 7, ch116data }; - -static const unsigned char ch117data[] = { - 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0 -}; -static const GLUTBitmapChar ch117 = { 11, 12, -1, 0, 13, ch117data }; - -static const unsigned char ch118data[] = { - 0x4,0x0,0xe,0x0,0xe,0x0,0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80, - 0x30,0x80,0x60,0x80,0x60,0xc0,0xf1,0xe0 -}; -static const GLUTBitmapChar ch118 = { 11, 12, 0, 0, 11, ch118data }; - -static const unsigned char ch119data[] = { - 0x4,0x10,0x0,0xe,0x38,0x0,0xe,0x38,0x0,0x1a,0x28,0x0,0x1a,0x64,0x0,0x19, - 0x64,0x0,0x31,0x64,0x0,0x30,0xc2,0x0,0x30,0xc2,0x0,0x60,0xc2,0x0,0x60,0xc3, - 0x0,0xf1,0xe7,0x80 -}; -static const GLUTBitmapChar ch119 = { 17, 12, 0, 0, 17, ch119data }; - -static const unsigned char ch120data[] = { - 0xf1,0xe0,0x60,0xc0,0x21,0x80,0x33,0x80,0x1b,0x0,0xe,0x0,0xc,0x0,0x1a,0x0, - 0x39,0x0,0x31,0x80,0x60,0xc0,0xf1,0xe0 -}; -static const GLUTBitmapChar ch120 = { 11, 12, -1, 0, 13, ch120data }; - -static const unsigned char ch121data[] = { - 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, - 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, - 0xf1,0xe0 -}; -static const GLUTBitmapChar ch121 = { 11, 17, 0, 5, 11, ch121data }; - -static const unsigned char ch122data[] = { - 0xff,0xc3,0x61,0x70,0x30,0x38,0x18,0x1c,0xe,0x86,0xc3,0xff -}; -static const GLUTBitmapChar ch122 = { 8, 12, -1, 0, 10, ch122data }; - -static const unsigned char ch123data[] = { - 0x7,0xc,0x18,0x18,0x18,0x18,0x18,0x18,0x10,0x30,0x20,0xc0,0x20,0x30,0x10,0x18, - 0x18,0x18,0x18,0x18,0xc,0x7 -}; -static const GLUTBitmapChar ch123 = { 8, 22, -1, 5, 10, ch123data }; - -static const unsigned char ch124data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch124 = { 2, 17, -2, 0, 6, ch124data }; - -static const unsigned char ch125data[] = { - 0xe0,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x8,0xc,0x4,0x3,0x4,0xc,0x8,0x18, - 0x18,0x18,0x18,0x18,0x30,0xe0 -}; -static const GLUTBitmapChar ch125 = { 8, 22, -1, 5, 10, ch125data }; - -static const unsigned char ch126data[] = { - 0x83,0x80,0xc7,0xc0,0x7c,0x60,0x38,0x20 -}; -static const GLUTBitmapChar ch126 = { 11, 4, -1, -5, 13, ch126data }; - -static const unsigned char ch160data[] = { - 0x0 -}; -static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 6, ch160data }; - -static const unsigned char ch161data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch161 = { 2, 17, -4, 5, 8, ch161data }; - -static const unsigned char ch162data[] = { - 0x40,0x0,0x40,0x0,0x3e,0x0,0x7f,0x0,0x70,0x80,0xd0,0x0,0xc8,0x0,0xc8,0x0, - 0xc8,0x0,0xc4,0x0,0xc4,0x0,0x43,0x80,0x63,0x80,0x1f,0x0,0x1,0x0,0x1,0x0 -}; -static const GLUTBitmapChar ch162 = { 9, 16, -1, 2, 12, ch162data }; - -static const unsigned char ch163data[] = { - 0xe7,0x80,0xbe,0xc0,0x78,0x40,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, - 0x30,0x0,0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x31,0x80,0x19,0x80, - 0xf,0x0 -}; -static const GLUTBitmapChar ch163 = { 10, 17, -1, 0, 12, ch163data }; - -static const unsigned char ch164data[] = { - 0xc0,0x60,0xee,0xe0,0x7f,0xc0,0x31,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x31,0x80,0x7f,0xc0,0xee,0xe0,0xc0,0x60 -}; -static const GLUTBitmapChar ch164 = { 11, 12, -1, -3, 13, ch164data }; - -static const unsigned char ch165data[] = { - 0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1f,0xe0,0x3,0x0,0x1f,0xe0, - 0x3,0x0,0x7,0x80,0xc,0x80,0xc,0xc0,0x18,0x40,0x18,0x60,0x30,0x20,0x70,0x30, - 0xf8,0x7c -}; -static const GLUTBitmapChar ch165 = { 14, 17, 0, 0, 14, ch165data }; - -static const unsigned char ch166data[] = { - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0 -}; -static const GLUTBitmapChar ch166 = { 2, 17, -2, 0, 6, ch166data }; - -static const unsigned char ch167data[] = { - 0x38,0x64,0x62,0x6,0xe,0x1c,0x38,0x74,0xe2,0xc3,0x83,0x87,0x4e,0x3c,0x38,0x70, - 0x60,0x46,0x26,0x1c -}; -static const GLUTBitmapChar ch167 = { 8, 20, -2, 2, 12, ch167data }; - -static const unsigned char ch168data[] = { - 0xcc,0xcc -}; -static const GLUTBitmapChar ch168 = { 6, 2, -1, -14, 8, ch168data }; - -static const unsigned char ch169data[] = { - 0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x61,0xc3,0x0,0x47,0x71,0x0,0xc4, - 0x19,0x80,0x8c,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x8c,0x0, - 0x80,0xc4,0x19,0x80,0x47,0x31,0x0,0x61,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, - 0x7,0xf0,0x0 -}; -static const GLUTBitmapChar ch169 = { 17, 17, -1, 0, 19, ch169data }; - -static const unsigned char ch170data[] = { - 0x7e,0x0,0x76,0xcc,0xcc,0x7c,0xc,0xcc,0x78 -}; -static const GLUTBitmapChar ch170 = { 7, 9, 0, -8, 8, ch170data }; - -static const unsigned char ch171data[] = { - 0x8,0x80,0x19,0x80,0x33,0x0,0x66,0x0,0xcc,0x0,0xcc,0x0,0x66,0x0,0x33,0x0, - 0x19,0x80,0x8,0x80 -}; -static const GLUTBitmapChar ch171 = { 9, 10, -2, -1, 13, ch171data }; - -static const unsigned char ch172data[] = { - 0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0xff,0xf0,0xff,0xf0 -}; -static const GLUTBitmapChar ch172 = { 12, 7, -1, -3, 14, ch172data }; - -static const unsigned char ch173data[] = { - 0xfe,0xfe -}; -static const GLUTBitmapChar ch173 = { 7, 2, -1, -5, 9, ch173data }; - -static const unsigned char ch174data[] = { - 0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x60,0x3,0x0,0x47,0x19,0x0,0xc2, - 0x31,0x80,0x82,0x20,0x80,0x82,0x40,0x80,0x83,0xe0,0x80,0x82,0x30,0x80,0x82,0x10, - 0x80,0xc2,0x11,0x80,0x42,0x31,0x0,0x67,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, - 0x7,0xf0,0x0 -}; -static const GLUTBitmapChar ch174 = { 17, 17, -1, 0, 19, ch174data }; - -static const unsigned char ch175data[] = { - 0xfc,0xfc -}; -static const GLUTBitmapChar ch175 = { 6, 2, -1, -14, 8, ch175data }; - -static const unsigned char ch176data[] = { - 0x38,0x44,0x82,0x82,0x82,0x44,0x38 -}; -static const GLUTBitmapChar ch176 = { 7, 7, -1, -10, 9, ch176data }; - -static const unsigned char ch177data[] = { - 0xff,0xf0,0xff,0xf0,0x0,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, - 0xff,0xf0,0xff,0xf0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch177 = { 12, 15, -1, 0, 14, ch177data }; - -static const unsigned char ch178data[] = { - 0xfc,0x44,0x20,0x30,0x10,0x8,0xc,0x8c,0x4c,0x38 -}; -static const GLUTBitmapChar ch178 = { 6, 10, 0, -7, 7, ch178data }; - -static const unsigned char ch179data[] = { - 0x70,0x88,0x8c,0xc,0x8,0x30,0x8,0x8c,0x4c,0x38 -}; -static const GLUTBitmapChar ch179 = { 6, 10, 0, -7, 7, ch179data }; - -static const unsigned char ch180data[] = { - 0x80,0x60,0x38,0x18 -}; -static const GLUTBitmapChar ch180 = { 5, 4, -2, -13, 8, ch180data }; - -static const unsigned char ch181data[] = { - 0x40,0x0,0xe0,0x0,0xc0,0x0,0x40,0x0,0x40,0x0,0x5c,0xe0,0x7e,0xc0,0x71,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0xe1,0xc0 -}; -static const GLUTBitmapChar ch181 = { 11, 17, -1, 5, 13, ch181data }; - -static const unsigned char ch182data[] = { - 0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, - 0x9,0x0,0x9,0x0,0x9,0x0,0x19,0x0,0x39,0x0,0x79,0x0,0x79,0x0,0xf9,0x0, - 0xf9,0x0,0xf9,0x0,0x79,0x0,0x79,0x0,0x39,0x0,0x1f,0x80 -}; -static const GLUTBitmapChar ch182 = { 9, 22, -1, 5, 11, ch182data }; - -static const unsigned char ch183data[] = { - 0xc0,0xc0 -}; -static const GLUTBitmapChar ch183 = { 2, 2, -2, -6, 6, ch183data }; - -static const unsigned char ch184data[] = { - 0x78,0xcc,0xc,0x3c,0x30,0x10 -}; -static const GLUTBitmapChar ch184 = { 6, 6, -1, 6, 8, ch184data }; - -static const unsigned char ch185data[] = { - 0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xa0,0x60,0x20 -}; -static const GLUTBitmapChar ch185 = { 5, 10, -1, -7, 7, ch185data }; - -static const unsigned char ch186data[] = { - 0xfc,0x0,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0x78 -}; -static const GLUTBitmapChar ch186 = { 6, 9, -1, -8, 8, ch186data }; - -static const unsigned char ch187data[] = { - 0x88,0x0,0xcc,0x0,0x66,0x0,0x33,0x0,0x19,0x80,0x19,0x80,0x33,0x0,0x66,0x0, - 0xcc,0x0,0x88,0x0 -}; -static const GLUTBitmapChar ch187 = { 9, 10, -2, -1, 12, ch187data }; - -static const unsigned char ch188data[] = { - 0x30,0x4,0x10,0x4,0x18,0xff,0x8,0x44,0xc,0x64,0x6,0x24,0x2,0x14,0xfb,0x1c, - 0x21,0xc,0x21,0x84,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, - 0x20,0x8 -}; -static const GLUTBitmapChar ch188 = { 16, 17, -1, 0, 18, ch188data }; - -static const unsigned char ch189data[] = { - 0x30,0x7e,0x10,0x22,0x18,0x10,0x8,0x18,0xc,0x8,0x6,0x4,0x2,0x6,0xfb,0x46, - 0x21,0x26,0x21,0x9c,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, - 0x20,0x8 -}; -static const GLUTBitmapChar ch189 = { 15, 17, -1, 0, 18, ch189data }; - -static const unsigned char ch190data[] = { - 0x18,0x2,0x0,0x8,0x2,0x0,0xc,0x7f,0x80,0x4,0x22,0x0,0x6,0x32,0x0,0x3, - 0x12,0x0,0x1,0xa,0x0,0x71,0x8e,0x0,0x88,0x86,0x0,0x8c,0xc2,0x0,0xc,0x60, - 0x0,0x8,0x20,0x0,0x30,0x30,0x0,0x8,0x10,0x0,0x8c,0x18,0x0,0x4c,0xc,0x0, - 0x38,0x4,0x0 -}; -static const GLUTBitmapChar ch190 = { 17, 17, 0, 0, 18, ch190data }; - -static const unsigned char ch191data[] = { - 0x3e,0x63,0xc1,0xc3,0xc3,0xe0,0x70,0x30,0x38,0x18,0x18,0x8,0x8,0x0,0x0,0xc, - 0xc -}; -static const GLUTBitmapChar ch191 = { 8, 17, -1, 5, 11, ch191data }; - -static const unsigned char ch192data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0xc0,0x0,0x3,0x80,0x0,0x3, - 0x0,0x0 -}; -static const GLUTBitmapChar ch192 = { 17, 22, 0, 0, 17, ch192data }; - -static const unsigned char ch193data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xc0,0x0,0x0,0x70,0x0,0x0, - 0x30,0x0 -}; -static const GLUTBitmapChar ch193 = { 17, 22, 0, 0, 17, ch193data }; - -static const unsigned char ch194data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x8,0x10,0x0,0x6,0x60,0x0,0x3,0xc0,0x0,0x1, - 0x80,0x0 -}; -static const GLUTBitmapChar ch194 = { 17, 22, 0, 0, 17, ch194data }; - -static const unsigned char ch195data[] = { - 0xfc,0x1f,0x80,0x30,0x7,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0xe0,0x0,0x3,0x90,0x0 -}; -static const GLUTBitmapChar ch195 = { 17, 21, 0, 0, 17, ch195data }; - -static const unsigned char ch196data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x30,0x0,0x6,0x30,0x0 -}; -static const GLUTBitmapChar ch196 = { 17, 21, 0, 0, 17, ch196data }; - -static const unsigned char ch197data[] = { - 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, - 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, - 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, - 0x0,0x80,0x0,0x1,0xc0,0x0,0x2,0x20,0x0,0x2,0x20,0x0,0x1,0xc0,0x0 -}; -static const GLUTBitmapChar ch197 = { 17, 21, 0, 0, 17, ch197data }; - -static const unsigned char ch198data[] = { - 0xf9,0xff,0xf0,0x30,0x60,0x30,0x10,0x60,0x10,0x10,0x60,0x10,0x18,0x60,0x0,0x8, - 0x60,0x0,0xf,0xe0,0x80,0xc,0x60,0x80,0x4,0x7f,0x80,0x4,0x60,0x80,0x6,0x60, - 0x80,0x2,0x60,0x0,0x2,0x60,0x0,0x1,0x60,0x20,0x1,0x60,0x20,0x1,0xe0,0x60, - 0x3,0xff,0xe0 -}; -static const GLUTBitmapChar ch198 = { 20, 17, 0, 0, 21, ch198data }; - -static const unsigned char ch199data[] = { - 0x7,0x80,0xc,0xc0,0x0,0xc0,0x3,0xc0,0x3,0x0,0x1,0x0,0x7,0xe0,0x1e,0x38, - 0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, - 0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c,0x7,0xe4 -}; -static const GLUTBitmapChar ch199 = { 14, 23, -1, 6, 16, ch199data }; - -static const unsigned char ch200data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, - 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0,0x0,0x0,0x1,0x0,0x6,0x0,0x1c,0x0,0x18,0x0 -}; -static const GLUTBitmapChar ch200 = { 13, 22, -1, 0, 15, ch200data }; - -static const unsigned char ch201data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, - 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0,0x0,0x0,0x4,0x0,0x3,0x0,0x1,0xc0,0x0,0xc0 -}; -static const GLUTBitmapChar ch201 = { 13, 22, -1, 0, 15, ch201data }; - -static const unsigned char ch202data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, - 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0,0x0,0x0,0x10,0x20,0xc,0xc0,0x7,0x80,0x3,0x0 -}; -static const GLUTBitmapChar ch202 = { 13, 22, -1, 0, 15, ch202data }; - -static const unsigned char ch203data[] = { - 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, - 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, - 0xff,0xf0,0x0,0x0,0x0,0x0,0x19,0x80,0x19,0x80 -}; -static const GLUTBitmapChar ch203 = { 13, 21, -1, 0, 15, ch203data }; - -static const unsigned char ch204data[] = { - 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0xfc,0x0,0x8,0x30,0xe0,0xc0 -}; -static const GLUTBitmapChar ch204 = { 6, 22, -1, 0, 8, ch204data }; - -static const unsigned char ch205data[] = { - 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0xfc,0x0,0x40,0x30,0x1c,0xc -}; -static const GLUTBitmapChar ch205 = { 6, 22, -1, 0, 8, ch205data }; - -static const unsigned char ch206data[] = { - 0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x7e,0x0,0x81,0x66,0x3c,0x18 -}; -static const GLUTBitmapChar ch206 = { 8, 22, -1, 0, 8, ch206data }; - -static const unsigned char ch207data[] = { - 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0xfc,0x0,0x0,0xcc,0xcc -}; -static const GLUTBitmapChar ch207 = { 6, 21, -1, 0, 8, ch207data }; - -static const unsigned char ch208data[] = { - 0x7f,0xe0,0x18,0x38,0x18,0x1c,0x18,0x6,0x18,0x6,0x18,0x3,0x18,0x3,0x18,0x3, - 0xff,0x3,0x18,0x3,0x18,0x3,0x18,0x3,0x18,0x6,0x18,0x6,0x18,0x1c,0x18,0x38, - 0x7f,0xe0 -}; -static const GLUTBitmapChar ch208 = { 16, 17, 0, 0, 17, ch208data }; - -static const unsigned char ch209data[] = { - 0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, - 0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, - 0xf0,0x1f,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90 -}; -static const GLUTBitmapChar ch209 = { 16, 21, -1, 0, 18, ch209data }; - -static const unsigned char ch210data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch210 = { 16, 22, -1, 0, 18, ch210data }; - -static const unsigned char ch211data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 -}; -static const GLUTBitmapChar ch211 = { 16, 22, -1, 0, 18, ch211data }; - -static const unsigned char ch212data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80 -}; -static const GLUTBitmapChar ch212 = { 16, 22, -1, 0, 18, ch212data }; - -static const unsigned char ch213data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90 -}; -static const GLUTBitmapChar ch213 = { 16, 21, -1, 0, 18, ch213data }; - -static const unsigned char ch214data[] = { - 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, - 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, - 0x7,0xe0,0x0,0x0,0x0,0x0,0x6,0x60,0x6,0x60 -}; -static const GLUTBitmapChar ch214 = { 16, 21, -1, 0, 18, ch214data }; - -static const unsigned char ch215data[] = { - 0x80,0x40,0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0, - 0x61,0x80,0xc0,0xc0,0x80,0x40 -}; -static const GLUTBitmapChar ch215 = { 10, 11, -2, -1, 14, ch215data }; - -static const unsigned char ch216data[] = { - 0x20,0x0,0x27,0xe0,0x1c,0x38,0x38,0x1c,0x68,0x6,0x64,0x6,0xc2,0x3,0xc2,0x3, - 0xc1,0x3,0xc1,0x3,0xc0,0x83,0xc0,0x83,0xc0,0x43,0x60,0x46,0x60,0x26,0x38,0x1c, - 0x1c,0x38,0x7,0xe4,0x0,0x4 -}; -static const GLUTBitmapChar ch216 = { 16, 19, -1, 1, 18, ch216data }; - -static const unsigned char ch217data[] = { - 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0xfc,0x1f,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch217 = { 16, 22, -1, 0, 18, ch217data }; - -static const unsigned char ch218data[] = { - 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0xfc,0x1f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 -}; -static const GLUTBitmapChar ch218 = { 16, 22, -1, 0, 18, ch218data }; - -static const unsigned char ch219data[] = { - 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0xfc,0x1f,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80 -}; -static const GLUTBitmapChar ch219 = { 16, 22, -1, 0, 18, ch219data }; - -static const unsigned char ch220data[] = { - 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, - 0xfc,0x1f,0x0,0x0,0x0,0x0,0x6,0x30,0x6,0x30 -}; -static const GLUTBitmapChar ch220 = { 16, 21, -1, 0, 18, ch220data }; - -static const unsigned char ch221data[] = { - 0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, - 0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, - 0xfc,0x3f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 -}; -static const GLUTBitmapChar ch221 = { 16, 22, 0, 0, 16, ch221data }; - -static const unsigned char ch222data[] = { - 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18, - 0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70,0x3f,0xc0,0x30,0x0,0x30,0x0,0x30,0x0, - 0xfc,0x0 -}; -static const GLUTBitmapChar ch222 = { 13, 17, -1, 0, 15, ch222data }; - -static const unsigned char ch223data[] = { - 0xe7,0x0,0x6c,0x80,0x6c,0xc0,0x60,0xc0,0x60,0xc0,0x61,0xc0,0x61,0x80,0x63,0x80, - 0x67,0x0,0x6c,0x0,0x63,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, - 0x1e,0x0 -}; -static const GLUTBitmapChar ch223 = { 10, 17, -1, 0, 12, ch223data }; - -static const unsigned char ch224data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, - 0x60,0x0 -}; -static const GLUTBitmapChar ch224 = { 9, 17, -1, 0, 11, ch224data }; - -static const unsigned char ch225data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, - 0x3,0x0 -}; -static const GLUTBitmapChar ch225 = { 9, 17, -1, 0, 11, ch225data }; - -static const unsigned char ch226data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x42,0x0,0x24,0x0,0x3c,0x0, - 0x18,0x0 -}; -static const GLUTBitmapChar ch226 = { 9, 17, -1, 0, 11, ch226data }; - -static const unsigned char ch227data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x5c,0x0,0x3a,0x0 -}; -static const GLUTBitmapChar ch227 = { 9, 16, -1, 0, 11, ch227data }; - -static const unsigned char ch228data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x66,0x0,0x66,0x0 -}; -static const GLUTBitmapChar ch228 = { 9, 16, -1, 0, 11, ch228data }; - -static const unsigned char ch229data[] = { - 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, - 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x22,0x0, - 0x1c,0x0 -}; -static const GLUTBitmapChar ch229 = { 9, 17, -1, 0, 11, ch229data }; - -static const unsigned char ch230data[] = { - 0x70,0xf0,0xfb,0xf8,0xc7,0x84,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0xfc, - 0x3,0xc,0x63,0xc,0x67,0x98,0x3c,0xf0 -}; -static const GLUTBitmapChar ch230 = { 14, 12, -1, 0, 16, ch230data }; - -static const unsigned char ch231data[] = { - 0x3c,0x0,0x66,0x0,0x6,0x0,0x1e,0x0,0x18,0x0,0x8,0x0,0x1e,0x0,0x7f,0x0, - 0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x41,0x80, - 0x63,0x80,0x1f,0x0 -}; -static const GLUTBitmapChar ch231 = { 9, 18, -1, 6, 11, ch231data }; - -static const unsigned char ch232data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, - 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, - 0x60,0x0 -}; -static const GLUTBitmapChar ch232 = { 9, 17, -1, 0, 11, ch232data }; - -static const unsigned char ch233data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, - 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, - 0x3,0x0 -}; -static const GLUTBitmapChar ch233 = { 9, 17, -1, 0, 11, ch233data }; - -static const unsigned char ch234data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, - 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, - 0xc,0x0 -}; -static const GLUTBitmapChar ch234 = { 9, 17, -1, 0, 11, ch234data }; - -static const unsigned char ch235data[] = { - 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, - 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 -}; -static const GLUTBitmapChar ch235 = { 9, 16, -1, 0, 11, ch235data }; - -static const unsigned char ch236data[] = { - 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x8,0x30,0xe0, - 0xc0 -}; -static const GLUTBitmapChar ch236 = { 5, 17, 0, 0, 6, ch236data }; - -static const unsigned char ch237data[] = { - 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x80,0x60,0x38, - 0x18 -}; -static const GLUTBitmapChar ch237 = { 5, 17, -1, 0, 6, ch237data }; - -static const unsigned char ch238data[] = { - 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x84,0x48,0x78, - 0x30 -}; -static const GLUTBitmapChar ch238 = { 6, 17, 0, 0, 6, ch238data }; - -static const unsigned char ch239data[] = { - 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x0,0xcc,0xcc -}; -static const GLUTBitmapChar ch239 = { 6, 16, 0, 0, 6, ch239data }; - -static const unsigned char ch240data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1f,0x0,0xc6,0x0,0x3c,0x0,0x1e,0x0,0x71,0x80, - 0xc0,0x0 -}; -static const GLUTBitmapChar ch240 = { 10, 17, -1, 0, 12, ch240data }; - -static const unsigned char ch241data[] = { - 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80 -}; -static const GLUTBitmapChar ch241 = { 11, 16, -1, 0, 13, ch241data }; - -static const unsigned char ch242data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, - 0x30,0x0 -}; -static const GLUTBitmapChar ch242 = { 10, 17, -1, 0, 12, ch242data }; - -static const unsigned char ch243data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, - 0x1,0x80 -}; -static const GLUTBitmapChar ch243 = { 10, 17, -1, 0, 12, ch243data }; - -static const unsigned char ch244data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, - 0xc,0x0 -}; -static const GLUTBitmapChar ch244 = { 10, 17, -1, 0, 12, ch244data }; - -static const unsigned char ch245data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80 -}; -static const GLUTBitmapChar ch245 = { 10, 16, -1, 0, 12, ch245data }; - -static const unsigned char ch246data[] = { - 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 -}; -static const GLUTBitmapChar ch246 = { 10, 16, -1, 0, 12, ch246data }; - -static const unsigned char ch247data[] = { - 0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0, - 0x6,0x0,0x6,0x0 -}; -static const GLUTBitmapChar ch247 = { 12, 10, -1, -2, 14, ch247data }; - -static const unsigned char ch248data[] = { - 0xc0,0x0,0xde,0x0,0x73,0x80,0x71,0x80,0xd0,0xc0,0xd8,0xc0,0xc8,0xc0,0xcc,0xc0, - 0xc4,0xc0,0xc6,0xc0,0x63,0x80,0x73,0x80,0x1e,0xc0,0x0,0xc0 -}; -static const GLUTBitmapChar ch248 = { 10, 14, -1, 1, 12, ch248data }; - -static const unsigned char ch249data[] = { - 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, - 0x30,0x0 -}; -static const GLUTBitmapChar ch249 = { 11, 17, -1, 0, 13, ch249data }; - -static const unsigned char ch250data[] = { - 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, - 0x1,0x80 -}; -static const GLUTBitmapChar ch250 = { 11, 17, -1, 0, 13, ch250data }; - -static const unsigned char ch251data[] = { - 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, - 0xc,0x0 -}; -static const GLUTBitmapChar ch251 = { 11, 17, -1, 0, 13, ch251data }; - -static const unsigned char ch252data[] = { - 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 -}; -static const GLUTBitmapChar ch252 = { 11, 16, -1, 0, 13, ch252data }; - -static const unsigned char ch253data[] = { - 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, - 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, - 0xf1,0xe0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80,0x1,0x80 -}; -static const GLUTBitmapChar ch253 = { 11, 22, 0, 5, 11, ch253data }; - -static const unsigned char ch254data[] = { - 0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, - 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, - 0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0xe0,0x0 -}; -static const GLUTBitmapChar ch254 = { 10, 22, -1, 5, 12, ch254data }; - -static const unsigned char ch255data[] = { - 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, - 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, - 0xf1,0xe0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 -}; -static const GLUTBitmapChar ch255 = { 11, 21, 0, 5, 11, ch255data }; - - -static const GLUTBitmapChar *chars[] = { - 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, - &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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - &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 GLUTBitmapFont glutBitmapTimesRoman24 = { - "-Adobe-Times-Medium-R-Normal--24-240-75-75-P-124-ISO8859-1", - 28, 256, chars -}; diff --git a/src/glut/dos/util.c b/src/glut/dos/util.c deleted file mode 100644 index df126443d3..0000000000 --- a/src/glut/dos/util.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "internal.h" - - -extern GLUTStrokeFont glutStrokeRoman, glutStrokeMonoRoman; -extern GLUTBitmapFont glutBitmap8By13, glutBitmap9By15, glutBitmapTimesRoman10, glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12, glutBitmapHelvetica18; - -/* To get around the fact that DJGPP DXEs only allow functions - to be exported and no data addresses (as Unix DSOs support), the - GLUT API constants such as GLUT_STROKE_ROMAN have to get passed - through a case statement to get mapped to the actual data structure - address. */ -void * -_glut_font (void *font) -{ - switch ((int)font) { - case (int)GLUT_STROKE_ROMAN: - return &glutStrokeRoman; - case (int)GLUT_STROKE_MONO_ROMAN: - return &glutStrokeMonoRoman; - case (int)GLUT_BITMAP_9_BY_15: - return &glutBitmap9By15; - case (int)GLUT_BITMAP_8_BY_13: - return &glutBitmap8By13; - case (int)GLUT_BITMAP_TIMES_ROMAN_10: - return &glutBitmapTimesRoman10; - case (int)GLUT_BITMAP_TIMES_ROMAN_24: - return &glutBitmapTimesRoman24; - case (int)GLUT_BITMAP_HELVETICA_10: - return &glutBitmapHelvetica10; - case (int)GLUT_BITMAP_HELVETICA_12: - return &glutBitmapHelvetica12; - case (int)GLUT_BITMAP_HELVETICA_18: - return &glutBitmapHelvetica18; - default: - if ((font == &glutStrokeRoman) || - (font == &glutStrokeMonoRoman) || - (font == &glutBitmap9By15) || - (font == &glutBitmap8By13) || - (font == &glutBitmapTimesRoman10) || - (font == &glutBitmapTimesRoman24) || - (font == &glutBitmapHelvetica10) || - (font == &glutBitmapHelvetica12) || - (font == &glutBitmapHelvetica18)) { - return font; - } - _glut_fatal("bad font!"); - return NULL; - } -} diff --git a/src/glut/dos/window.c b/src/glut/dos/window.c deleted file mode 100644 index 610cf36dcc..0000000000 --- a/src/glut/dos/window.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - * DOS/DJGPP Mesa Utility Toolkit - * Version: 1.0 - * - * Copyright (C) 2005 Daniel Borca All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include <stdio.h> - -#include "internal.h" - - -static GLuint swaptime, swapcount; - -static DMesaVisual visual = NULL; - -GLUTwindow *_glut_current, *_glut_windows[MAX_WINDOWS]; - - -static void -clean (void) -{ - int i; - - for (i=1; i<=MAX_WINDOWS; i++) { - glutDestroyWindow(i); - } - if (visual) DMesaDestroyVisual(visual); - - pc_close_stdout(); - pc_close_stderr(); -} - - -static GLUTwindow * -_glut_window (int win) -{ - if (win > 0 && --win < MAX_WINDOWS) { - return _glut_windows[win]; - } - return NULL; -} - - -int APIENTRY -glutCreateWindow (const char *title) -{ - int i; - int m8width = (_glut_default.width + 7) & ~7; - - if (!(_glut_default.mode & GLUT_DOUBLE)) { - return 0; - } - - /* We set the Visual once. This will be our desktop (graphic mode). - * We should do this in the `glutInit' code, but we don't have any idea - * about its geometry. Supposedly, when we are about to create one - * window, we have a slight idea about resolution. - */ - if (!visual) { - if ((visual=DMesaCreateVisual(_glut_default.x + m8width, _glut_default.y + _glut_default.height, _glut_visual.bpp, _glut_visual.refresh, - GLUT_SINGLE, - !(_glut_default.mode & GLUT_INDEX), - (_glut_default.mode & GLUT_ALPHA ) ? _glut_visual.alpha : 0, - (_glut_default.mode & GLUT_DEPTH ) ? _glut_visual.depth : 0, - (_glut_default.mode & GLUT_STENCIL) ? _glut_visual.stencil : 0, - (_glut_default.mode & GLUT_ACCUM ) ? _glut_visual.accum : 0))==NULL) { - return 0; - } - - DMesaGetIntegerv(DMESA_GET_SCREEN_SIZE, _glut_visual.geometry); - DMesaGetIntegerv(DMESA_GET_DRIVER_CAPS, &_glut_visual.flags); - - /* Also hook stdio/stderr once */ - pc_open_stdout(); - pc_open_stderr(); - pc_atexit(clean); - } - - /* Search for an empty slot. - * Each window has its own rendering Context and its own Buffer. - */ - for (i=0; i<MAX_WINDOWS; i++) { - if (_glut_windows[i] == NULL) { - DMesaContext c; - DMesaBuffer b; - GLUTwindow *w; - - if ((w = (GLUTwindow *)calloc(1, sizeof(GLUTwindow))) == NULL) { - return 0; - } - - /* Allocate the rendering Context. */ - if ((c = DMesaCreateContext(visual, NULL)) == NULL) { - free(w); - return 0; - } - - /* Allocate the Buffer (displayable area). - * We have to specify buffer size and position (inside the desktop). - */ - if ((b = DMesaCreateBuffer(visual, _glut_default.x, _glut_default.y, m8width, _glut_default.height)) == NULL) { - DMesaDestroyContext(c); - free(w); - return 0; - } - - /* Bind Buffer to Context and make the Context the current one. */ - if (!DMesaMakeCurrent(c, b)) { - DMesaDestroyBuffer(b); - DMesaDestroyContext(c); - free(w); - return 0; - } - - _glut_current = _glut_windows[i] = w; - - w->num = ++i; - w->xpos = _glut_default.x; - w->ypos = _glut_default.y; - w->width = m8width; - w->height = _glut_default.height; - w->context = c; - w->buffer = b; - - return i; - } - } - - return 0; -} - - -int APIENTRY -glutCreateSubWindow (int win, int x, int y, int width, int height) -{ - return GL_FALSE; -} - - -void APIENTRY -glutDestroyWindow (int win) -{ - GLUTwindow *w = _glut_window(win); - if (w != NULL) { - if (w->destroy) { - w->destroy(); - } - DMesaMakeCurrent(NULL, NULL); - DMesaDestroyBuffer(w->buffer); - DMesaDestroyContext(w->context); - free(w); - _glut_windows[win - 1] = NULL; - } -} - - -void APIENTRY -glutPostRedisplay (void) -{ - _glut_current->redisplay = GL_TRUE; -} - - -void APIENTRY -glutSwapBuffers (void) -{ - if (_glut_current->show_mouse) { - /* XXX scare mouse */ - DMesaSwapBuffers(_glut_current->buffer); - /* XXX unscare mouse */ - } else { - DMesaSwapBuffers(_glut_current->buffer); - } - - if (_glut_fps) { - GLint t = glutGet(GLUT_ELAPSED_TIME); - swapcount++; - if (swaptime == 0) - swaptime = t; - else if (t - swaptime > _glut_fps) { - double time = 0.001 * (t - swaptime); - double fps = (double)swapcount / time; - fprintf(stderr, "GLUT: %d frames in %.2f seconds = %.2f FPS\n", swapcount, time, fps); - swaptime = t; - swapcount = 0; - } - } -} - - -int APIENTRY -glutGetWindow (void) -{ - return _glut_current->num; -} - - -void APIENTRY -glutSetWindow (int win) -{ - GLUTwindow *w = _glut_window(win); - if (w != NULL) { - _glut_current = w; - DMesaMakeCurrent(_glut_current->context, _glut_current->buffer); - } -} - - -void APIENTRY -glutSetWindowTitle (const char *title) -{ -} - - -void APIENTRY -glutSetIconTitle (const char *title) -{ -} - - -void APIENTRY -glutPositionWindow (int x, int y) -{ - if (DMesaMoveBuffer(x, y)) { - _glut_current->xpos = x; - _glut_current->ypos = y; - } -} - - -void APIENTRY -glutReshapeWindow (int width, int height) -{ - if (DMesaResizeBuffer(width, height)) { - _glut_current->width = width; - _glut_current->height = height; - if (_glut_current->reshape) { - _glut_current->reshape(width, height); - } else { - glViewport(0, 0, width, height); - } - } -} - - -void APIENTRY -glutFullScreen (void) -{ -} - - -void APIENTRY -glutPopWindow (void) -{ -} - - -void APIENTRY -glutPushWindow (void) -{ -} - - -void APIENTRY -glutIconifyWindow (void) -{ -} - - -void APIENTRY -glutShowWindow (void) -{ -} - - -void APIENTRY -glutHideWindow (void) -{ -} - - -void APIENTRY -glutCloseFunc (GLUTdestroyCB destroy) -{ - _glut_current->destroy = destroy; -} - - -void APIENTRY -glutPostWindowRedisplay (int win) -{ - GLUTwindow *w = _glut_window(win); - if (w != NULL) { - w->redisplay = GL_TRUE; - } -} - - -void * APIENTRY -glutGetWindowData (void) -{ - return _glut_current->data; -} - - -void APIENTRY -glutSetWindowData (void *data) -{ - _glut_current->data = data; -} diff --git a/src/glut/fbdev/Makefile b/src/glut/fbdev/Makefile deleted file mode 100644 index c150ea88dc..0000000000 --- a/src/glut/fbdev/Makefile +++ /dev/null @@ -1,94 +0,0 @@ -# subset glut - -TOP = ../../.. -include $(TOP)/configs/current - -GLX_SHARED = $(TOP)/src/glut/glx -MINI_SHARED = $(TOP)/src/glut/mini - -GLUT_MAJOR = 3 -GLUT_MINOR = 7 -GLUT_TINY = 1 - -INCLUDES = -I$(TOP)/include -I$(GLX_SHARED) - -CORE_SOURCES = \ - fbdev.c \ - colormap.c \ - cursor.c \ - menu.c \ - overlay.c \ - ext.c \ - state.c \ - input.c \ - callback.c \ - gamemode.c \ - vidresize.c \ - bitmap.c \ - stroke.c - -GLX_SHARED_SOURCES = \ - $(GLX_SHARED)/glut_8x13.c \ - $(GLX_SHARED)/glut_9x15.c \ - $(GLX_SHARED)/glut_hel10.c \ - $(GLX_SHARED)/glut_hel12.c \ - $(GLX_SHARED)/glut_hel18.c \ - $(GLX_SHARED)/glut_tr10.c \ - $(GLX_SHARED)/glut_tr24.c \ - $(GLX_SHARED)/glut_mroman.c \ - $(GLX_SHARED)/glut_roman.c \ - -MINI_SHARED_SOURCES = \ - $(MINI_SHARED)/models.c \ - $(MINI_SHARED)/teapot.c - -SOURCES = $(CORE_SOURCES) $(GLX_SHARED_SOURCES) $(MINI_SHARED_SOURCES) - -OBJECTS = $(SOURCES:.c=.o) - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - - -##### TARGETS ##### - -default: depend $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME) - - -# Make the library -$(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME): depend $(OBJECTS) - $(MKLIB) -o $(GLUT_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ - -major $(GLUT_MAJOR) -minor $(GLUT_MINOR) -patch $(GLUT_TINY) \ - $(GLUT_LIB_DEPS) -install $(TOP)/$(LIB_DIR) \ - $(MKLIB_OPTIONS) $(OBJECTS) - -install: - $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL - $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) - $(INSTALL) -m 644 $(TOP)/include/GL/glut.h $(DESTDIR)$(INSTALL_INC_DIR)/GL - $(MINSTALL) $(TOP)/$(LIB_DIR)/libglut* $(DESTDIR)$(INSTALL_LIB_DIR) - -# Run 'make -f Makefile.solo dep' to update the dependencies if you change -# what's included by any source file. -depend: $(SOURCES) - rm -f depend - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) > /dev/null - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` - - -# Remove .o and backup files -clean: depend - -rm -f depend depend.bak - -rm -f *.o *~ *.o *~ *.so libglut.so.3.7 - -include depend diff --git a/src/glut/fbdev/bitmap.c b/src/glut/fbdev/bitmap.c deleted file mode 100644 index 5dbb330cc2..0000000000 --- a/src/glut/fbdev/bitmap.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - * - * To improve on this library, maybe support subwindows or overlays, - * I (sean at depagnier dot com) will do my best to help. - */ - - -#include "glutbitmap.h" - -void glutBitmapCharacter(GLUTbitmapFont font, int c) -{ - const BitmapCharRec *ch; - BitmapFontPtr fi = (BitmapFontPtr) font; - - if (c < fi->first || - c >= fi->first + fi->num_chars) - return; - ch = fi->ch[c - fi->first]; - if (!ch) - return; - - glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); - - 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); - glPopClientAttrib(); -} - -int glutBitmapWidth (GLUTbitmapFont font, int c) -{ - const BitmapCharRec *ch; - BitmapFontPtr fi = (BitmapFontPtr) font; - - if (c < fi->first || c >= fi->first + fi->num_chars) - return 0; - ch = fi->ch[c - fi->first]; - if (ch) - return ch->advance; - return 0; -} - -int glutBitmapLength(GLUTbitmapFont font, const unsigned char *string) -{ - int length = 0; - - for (; *string; string++) - length += glutBitmapWidth(font, *string); - return length; -} diff --git a/src/glut/fbdev/callback.c b/src/glut/fbdev/callback.c deleted file mode 100644 index 8c039f530b..0000000000 --- a/src/glut/fbdev/callback.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdlib.h> - -#include <GL/glut.h> - -#include "internal.h" - -void (*DisplayFunc)(void) = NULL; -void (*ReshapeFunc)(int width, int height) = NULL; -void (*KeyboardFunc)(unsigned char key, int x, int y) = NULL; -void (*KeyboardUpFunc)(unsigned char key, int x, int y) = NULL; -void (*MouseFunc)(int key, int state, int x, int y) = NULL; -void (*MotionFunc)(int x, int y) = NULL; -void (*PassiveMotionFunc)(int x, int y) = NULL; -void (*VisibilityFunc)(int state) = NULL; -void (*SpecialFunc)(int key, int x, int y) = NULL; -void (*SpecialUpFunc)(int key, int x, int y) = NULL; -void (*IdleFunc)(void) = NULL; -void (*MenuStatusFunc)(int state, int x, int y) = NULL; -void (*MenuStateFunc)(int state) = NULL; - -void glutDisplayFunc(void (*func)(void)) -{ - DisplayFunc = func; -} - -void glutOverlayDisplayFunc(void (*func)(void)) -{ -} - -void glutWindowStatusFunc(void (*func)(int state)) -{ -} - -void glutReshapeFunc(void (*func)(int width, int height)) -{ - ReshapeFunc = func; -} - -void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)) -{ - KeyboardFunc = func; -} - -void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)) -{ - KeyboardUpFunc = func; -} - -void glutMouseFunc(void (*func)(int button, int state, int x, int y)) -{ - MouseFunc = func; -} - -void glutMotionFunc(void (*func)(int x, int y)) -{ - MotionFunc = func; -} - -void glutPassiveMotionFunc(void (*func)(int x, int y)) -{ - PassiveMotionFunc = func; -} - -void glutJoystickFunc(void (*func)(unsigned int buttonMask, - int x, int y, int z), int pollInterval) -{ -} - -void glutVisibilityFunc(void (*func)(int state)) -{ - VisibilityFunc = func; -} - -void glutEntryFunc(void (*func)(int state)) -{ -} - -void glutSpecialFunc(void (*func)(int key, int x, int y)) -{ - SpecialFunc = func; -} - -void glutSpecialUpFunc(void (*func)(int key, int x, int y)) -{ - SpecialUpFunc = func; -} - -void glutSpaceballMotionFunc(void (*func)(int x, int y, int z)) -{ -} - -void glutSpaceballRotateFunc(void (*func)(int x, int y, int z)) -{ -} - -void glutSpaceballButtonFunc(void (*func)(int button, int state)) -{ -} - -void glutButtonBoxFunc(void (*func)(int button, int state)) -{ -} - -void glutDialsFunc(void (*func)(int dial, int value)) -{ -} - -void glutTabletMotionFunc(void (*func)(int x, int y)) -{ -} - -void glutTabletButtonFunc(void (*func)(int button, int state, - int x, int y)) -{ -} - -void glutMenuStatusFunc(void (*func)(int status, int x, int y)) -{ - MenuStatusFunc = func; -} - -void glutMenuStateFunc(void (*func)(int status)) -{ - MenuStateFunc = func; -} - -void glutIdleFunc(void (*func)(void)) -{ - IdleFunc = func; -} - -void glutTimerFunc(unsigned int msecs, - void (*func)(int value), int value) -{ - struct GlutTimer **head = &GlutTimers, *timer = malloc(sizeof *timer); - timer->time = glutGet(GLUT_ELAPSED_TIME) + msecs; - timer->func = func; - timer->value = value; - - while(*head && (*head)->time < timer->time) - head = &(*head)->next; - - timer->next = *head; - *head = timer; -} diff --git a/src/glut/fbdev/colormap.c b/src/glut/fbdev/colormap.c deleted file mode 100644 index 3e72a7b051..0000000000 --- a/src/glut/fbdev/colormap.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdio.h> -#include <stdlib.h> - -#include <linux/fb.h> - -#include <GL/gl.h> -#include <GL/glut.h> - -#include "internal.h" - -#define TOCMAP(x)(unsigned short)((x<0?0:x>1?1:x)*(GLfloat) ((1<<16) - 1)) -#define TORMAP(x)(unsigned short)((x<0?0:x>1?1:x)*(GLfloat)(REVERSECMAPSIZE-1)) -#define FROMCMAP(x) (GLfloat)x / (GLfloat)((1<<16) - 1) - -static struct fb_cmap ColorMap, OriginalColorMap; - -unsigned short RedColorMap[256], GreenColorMap[256], BlueColorMap[256]; - -unsigned char ReverseColorMap[REVERSECMAPSIZE] - [REVERSECMAPSIZE] - [REVERSECMAPSIZE]; - -static void FindReverseMap(int r, int g, int b) -{ - static int count; - int i, shift = 16 - REVERSECMAPSIZELOG; - unsigned int minv = -1, mini = 0; - for(i=0; i<256; i++) { - int val = 0; - val += abs(r-(RedColorMap[i]>>shift)); - val += abs(g-(GreenColorMap[i]>>shift)); - val += abs(b-(BlueColorMap[i]>>shift)); - if(val < minv) { - minv = val; - mini = i; - } - } - ReverseColorMap[r][g][b] = mini; -} - -static void FillItemReverseColorMap(int r, int g, int b) -{ - FindReverseMap(r, g, b); - if(r > 0) - FindReverseMap(r-1, g, b); - if(r < REVERSECMAPSIZE - 1) - FindReverseMap(r+1, g, b); - if(g > 0) - FindReverseMap(r, g-1, b); - if(g < REVERSECMAPSIZE - 1) - FindReverseMap(r, g+1, b); - if(b > 0) - FindReverseMap(r, g, b-1); - if(b < REVERSECMAPSIZE - 1) - FindReverseMap(r, g, b+1); -} - -static void FillReverseColorMap(void) -{ - int r, g, b; - for(r = 0; r < REVERSECMAPSIZE; r++) - for(g = 0; g < REVERSECMAPSIZE; g++) - for(b = 0; b < REVERSECMAPSIZE; b++) - FindReverseMap(r, g, b); -} - -void RestoreColorMap(void) -{ - if(FixedInfo.visual == FB_VISUAL_TRUECOLOR) - return; - - if (ioctl(FrameBufferFD, FBIOPUTCMAP, (void *) &ColorMap) < 0) - sprintf(exiterror, "ioctl(FBIOPUTCMAP) failed!\n"); -} - -void LoadColorMap(void) -{ - if(FixedInfo.visual == FB_VISUAL_TRUECOLOR) - return; - - ColorMap.start = 0; - ColorMap.red = RedColorMap; - ColorMap.green = GreenColorMap; - ColorMap.blue = BlueColorMap; - ColorMap.transp = NULL; - - if(DisplayMode & GLUT_INDEX) { - ColorMap.len = 256; - - if (ioctl(FrameBufferFD, FBIOGETCMAP, (void *) &ColorMap) < 0) - sprintf(exiterror, "ioctl(FBIOGETCMAP) failed!\n"); - - FillReverseColorMap(); - } else { - int rcols = 1 << VarInfo.red.length; - int gcols = 1 << VarInfo.green.length; - int bcols = 1 << VarInfo.blue.length; - - int i; - - ColorMap.len = gcols; - - for (i = 0; i < rcols ; i++) - RedColorMap[i] = (65536/(rcols-1)) * i; - - for (i = 0; i < gcols ; i++) - GreenColorMap[i] = (65536/(gcols-1)) * i; - - for (i = 0; i < bcols ; i++) - BlueColorMap[i] = (65536/(bcols-1)) * i; - - RestoreColorMap(); - } -} - -void glutSetColor(int cell, GLfloat red, GLfloat green, GLfloat blue) -{ - if(cell < 0 || cell >= 256) - return; - - RedColorMap[cell] = TOCMAP(red); - GreenColorMap[cell] = TOCMAP(green); - BlueColorMap[cell] = TOCMAP(blue); - - RestoreColorMap(); - - FillItemReverseColorMap(TORMAP(red), TORMAP(green), TORMAP(blue)); -} - -GLfloat glutGetColor(int cell, int component) -{ - if(!(DisplayMode & GLUT_INDEX)) - return -1.0; - - if(cell < 0 || cell > 256) - return -1.0; - - switch(component) { - case GLUT_RED: - return FROMCMAP(RedColorMap[cell]); - case GLUT_GREEN: - return FROMCMAP(GreenColorMap[cell]); - case GLUT_BLUE: - return FROMCMAP(BlueColorMap[cell]); - } - return -1.0; -} - -void glutCopyColormap(int win) -{ -} diff --git a/src/glut/fbdev/cursor.c b/src/glut/fbdev/cursor.c deleted file mode 100644 index 4bb2b7fba0..0000000000 --- a/src/glut/fbdev/cursor.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -/* these routines are written to access graphics memory directly, not using mesa - to render the cursor, this is faster, it would be good to use a hardware - cursor if it exists instead */ - -#include <stdio.h> -#include <stdlib.h> -#include <inttypes.h> -#include <string.h> - -#include <linux/fb.h> - -#include <GL/glut.h> - -#include "internal.h" -#include "cursors.h" - -int CurrentCursor = GLUT_CURSOR_LEFT_ARROW; - -static int LastMouseX, LastMouseY; -static unsigned char *MouseBuffer; - -void InitializeCursor(void) -{ - if(!MouseBuffer && (MouseBuffer = malloc(CURSOR_WIDTH * CURSOR_HEIGHT - * VarInfo.bits_per_pixel / 8)) == NULL) { - sprintf(exiterror, "malloc failure\n"); - exit(0); - } - - MouseX = VarInfo.xres / 2; - MouseY = VarInfo.yres / 2; -} - -void EraseCursor(void) -{ - int off = LastMouseY * FixedInfo.line_length - + LastMouseX * VarInfo.bits_per_pixel / 8; - int stride = CURSOR_WIDTH * VarInfo.bits_per_pixel / 8; - int i; - - unsigned char *src = MouseBuffer; - - if(!MouseVisible || CurrentCursor < 0 || CurrentCursor >= NUM_CURSORS) - return; - - for(i = 0; i<CURSOR_HEIGHT; i++) { - memcpy(BackBuffer + off, src, stride); - src += stride; - off += FixedInfo.line_length; - } -} - -static void SaveCursor(int x, int y) -{ - int bypp, off, stride, i; - unsigned char *src = MouseBuffer; - - if(x < 0) - LastMouseX = 0; - else - if(x > (int)VarInfo.xres - CURSOR_WIDTH) - LastMouseX = VarInfo.xres - CURSOR_WIDTH; - else - LastMouseX = x; - - if(y < 0) - LastMouseY = 0; - else - if(y > (int)VarInfo.yres - CURSOR_HEIGHT) - LastMouseY = VarInfo.yres - CURSOR_HEIGHT; - else - LastMouseY = y; - - bypp = VarInfo.bits_per_pixel / 8; - off = LastMouseY * FixedInfo.line_length + LastMouseX * bypp; - stride = CURSOR_WIDTH * bypp; - for(i = 0; i<CURSOR_HEIGHT; i++) { - memcpy(src, BackBuffer + off, stride); - src += stride; - off += FixedInfo.line_length; - } -} - -void DrawCursor(void) -{ - int i, j, px, py, xoff, xlen, yoff, ylen, bypp, cstride, dstride; - unsigned char *c; - const unsigned char *d; - - if(!MouseVisible || CurrentCursor < 0 || CurrentCursor >= NUM_CURSORS) - return; - - px = MouseX - CursorsXOffset[CurrentCursor]; - py = MouseY - CursorsYOffset[CurrentCursor]; - - SaveCursor(px, py); - - xoff = 0; - if(px < 0) - xoff = -px; - - xlen = CURSOR_WIDTH; - if(px + CURSOR_WIDTH > VarInfo.xres) - xlen = VarInfo.xres - px; - - yoff = 0; - if(py < 0) - yoff = -py; - - ylen = CURSOR_HEIGHT; - if(py + CURSOR_HEIGHT > VarInfo.yres) - ylen = VarInfo.yres - py; - - bypp = VarInfo.bits_per_pixel / 8; - - c = BackBuffer + FixedInfo.line_length * (py + yoff) + (px + xoff) * bypp; - cstride = FixedInfo.line_length - bypp * (xlen - xoff); - - d = Cursors[CurrentCursor] + (CURSOR_WIDTH * yoff + xoff)*4; - dstride = (CURSOR_WIDTH - xlen + xoff) * 4; - - switch(bypp) { - case 1: - { - const int shift = 8 - REVERSECMAPSIZELOG; - for(i = yoff; i < ylen; i++) { - for(j = xoff; j < xlen; j++) { - if(d[3] < 220) - *c = ReverseColorMap - [(d[0]+(((int)(RedColorMap[c[0]]>>8)*d[3])>>8))>>shift] - [(d[1]+(((int)(GreenColorMap[c[0]]>>8)*d[3])>>8))>>shift] - [(d[2]+(((int)(BlueColorMap[c[0]]>>8)*d[3])>>8))>>shift]; - c++; - d+=4; - } - d += dstride; - c += cstride; - } - } break; - case 2: - { - uint16_t *e = (void*)c; - cstride /= 2; - for(i = yoff; i < ylen; i++) { - for(j = xoff; j < xlen; j++) { - if(d[3] < 220) - e[0] = ((((d[0] + (((int)(((e[0] >> 8) & 0xf8) - | ((c[0] >> 11) & 0x7)) * d[3]) >> 8)) & 0xf8) << 8) - | (((d[1] + (((int)(((e[0] >> 3) & 0xfc) - | ((e[0] >> 5) & 0x3)) * d[3]) >> 8)) & 0xfc) << 3) - | ((d[2] + (((int)(((e[0] << 3) & 0xf8) - | (e[0] & 0x7)) * d[3]) >> 8)) >> 3)); - - e++; - d+=4; - } - d += dstride; - e += cstride; - } - } break; - case 3: - case 4: - for(i = yoff; i < ylen; i++) { - for(j = xoff; j < xlen; j++) { - if(d[3] < 220) { - c[0] = d[0] + (((int)c[0] * d[3]) >> 8); - c[1] = d[1] + (((int)c[1] * d[3]) >> 8); - c[2] = d[2] + (((int)c[2] * d[3]) >> 8); - } - - c+=bypp; - d+=4; - } - d += dstride; - c += cstride; - } break; - } -} - -#define MIN(x, y) x < y ? x : y -void SwapCursor(void) -{ - int px = MouseX - CursorsXOffset[CurrentCursor]; - int py = MouseY - CursorsYOffset[CurrentCursor]; - - int minx = MIN(px, LastMouseX); - int sizex = abs(px - LastMouseX); - - int miny = MIN(py, LastMouseY); - int sizey = abs(py - LastMouseY); - - if(MouseVisible) - DrawCursor(); - - /* now update the portion of the screen that has changed, this is also - used to hide the mouse if MouseVisible is 0 */ - if(DisplayMode & GLUT_DOUBLE && ((sizex || sizey) || !MouseVisible)) { - int off, stride, i; - if(minx < 0) - minx = 0; - if(miny < 0) - miny = 0; - - if(minx + sizex > VarInfo.xres - CURSOR_WIDTH) - sizex = VarInfo.xres - CURSOR_WIDTH - minx; - if(miny + sizey > VarInfo.yres - CURSOR_HEIGHT) - sizey = VarInfo.yres - CURSOR_HEIGHT - miny; - off = FixedInfo.line_length * miny - + minx * VarInfo.bits_per_pixel / 8; - stride = (sizex + CURSOR_WIDTH) * VarInfo.bits_per_pixel / 8; - - for(i = 0; i < sizey + CURSOR_HEIGHT; i++) { - memcpy(FrameBuffer+off, BackBuffer+off, stride); - off += FixedInfo.line_length; - } - } -} - -void glutWarpPointer(int x, int y) -{ - if(x < 0) - x = 0; - if(x >= VarInfo.xres) - x = VarInfo.xres - 1; - MouseX = x; - - if(y < 0) - y = 0; - if(y >= VarInfo.yres) - y = VarInfo.yres - 1; - MouseY = y; - - EraseCursor(); - SwapCursor(); -} - -void glutSetCursor(int cursor) -{ - if(cursor == GLUT_CURSOR_FULL_CROSSHAIR) - cursor = GLUT_CURSOR_CROSSHAIR; - - EraseCursor(); - MouseVisible = 1; - CurrentCursor = cursor; - SwapCursor(); -} diff --git a/src/glut/fbdev/cursors.h b/src/glut/fbdev/cursors.h deleted file mode 100644 index b1f8c3cde4..0000000000 --- a/src/glut/fbdev/cursors.h +++ /dev/null @@ -1,7099 +0,0 @@ -/* These cursor images were generated from png files - included in xorg. - - They are in the format RGBA and are each 32x32 - the RGB components have already been multiplied - by the alpha, and the alpha is already inverted */ - -#define CURSOR_WIDTH 32 -#define CURSOR_HEIGHT 32 - -int CursorsXOffset[20]={16, 4, 9, 16, 7, 16, 10, 8, 8, 11, - 16, 13, 12, 20, 3, 28, 3, 28, 28, 3}; -int CursorsYOffset[20]={4, 4, 2, 20, 28, 14, 0, 8, 14, 11, - 14, 12, 3, 28, 18, 12, 3, 3, 26, 26}; - -const unsigned char Cursors[][CURSOR_WIDTH * CURSOR_HEIGHT * 4] = { - { - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 0, 0, 0, 76, 0, 0, 0, 100, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 2, 2, 2, 73, - 127, 127, 127, 64, 0, 0, 0, 64, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 210, 2, 2, 2, 73, 127, 127, 127, 64, - 190, 190, 190, 64, 0, 0, 0, 64, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 251, - 0, 0, 0, 247, 0, 0, 0, 248, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 2, 2, 2, 73, 127, 127, 127, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 64, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 248, 0, 0, 0, 236, - 0, 0, 0, 227, 0, 0, 0, 229, 0, 0, 0, 240, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 2, 2, 2, 73, - 127, 127, 127, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 64, 0, 0, 0, 254, - 0, 0, 0, 248, 0, 0, 0, 234, 0, 0, 0, 221, - 0, 0, 0, 217, 0, 0, 0, 218, 0, 0, 0, 228, - 0, 0, 0, 248, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 210, 2, 2, 2, 73, 127, 127, 127, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 64, 0, 0, 0, 248, - 0, 0, 0, 234, 0, 0, 0, 221, 0, 0, 0, 216, - 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 246, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 2, 2, 2, 73, 127, 127, 127, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 62, 0, 0, 0, 234, - 0, 0, 0, 221, 0, 0, 0, 216, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 2, 2, 2, 73, - 127, 127, 127, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 62, 0, 0, 0, 59, 0, 0, 0, 221, - 0, 0, 0, 216, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 210, 2, 2, 2, 73, 127, 127, 127, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 189, 189, 189, 62, - 189, 189, 189, 59, 0, 0, 0, 55, 0, 0, 0, 216, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 2, 2, 2, 73, 127, 127, 127, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 59, - 189, 189, 189, 55, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 2, 2, 2, 73, - 127, 127, 127, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 62, 189, 189, 189, 59, 189, 189, 189, 55, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 222, 2, 2, 2, 73, 127, 127, 127, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 189, 189, 189, 62, - 189, 189, 189, 59, 189, 189, 189, 55, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 189, 26, 26, 26, 64, 130, 130, 130, 64, - 187, 187, 187, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 59, - 189, 189, 189, 55, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 174, 0, 0, 0, 94, - 23, 23, 23, 64, 104, 104, 104, 64, 178, 178, 178, 64, - 189, 189, 189, 62, 189, 189, 189, 59, 189, 189, 189, 55, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 201, 0, 0, 0, 97, 56, 56, 56, 62, - 189, 189, 189, 59, 189, 189, 189, 55, 190, 190, 190, 54, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 91, 133, 133, 133, 61, - 189, 189, 189, 56, 190, 190, 190, 54, 148, 148, 148, 54, - 127, 127, 127, 54, 186, 186, 186, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 198, 26, 26, 26, 63, 189, 189, 189, 60, - 189, 189, 189, 55, 190, 190, 190, 54, 56, 56, 56, 54, - 0, 0, 0, 67, 20, 20, 20, 54, 101, 101, 101, 54, - 175, 175, 175, 54, 0, 0, 0, 54, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 118, 107, 107, 107, 64, 189, 189, 189, 62, - 189, 189, 189, 57, 165, 165, 165, 55, 2, 2, 2, 59, - 0, 0, 0, 203, 0, 0, 0, 172, 0, 0, 0, 105, - 5, 5, 5, 56, 0, 0, 0, 72, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, - 8, 8, 8, 64, 178, 178, 178, 64, 189, 189, 189, 63, - 190, 190, 190, 61, 88, 88, 88, 59, 0, 0, 0, 119, - 0, 0, 0, 218, 0, 0, 0, 216, 0, 0, 0, 215, - 0, 0, 0, 202, 0, 0, 0, 207, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 144, - 80, 80, 80, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 184, 184, 184, 64, 14, 14, 14, 63, 0, 0, 0, 202, - 0, 0, 0, 222, 0, 0, 0, 216, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 243, 0, 0, 0, 73, - 160, 160, 160, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 122, 122, 122, 64, 0, 0, 0, 102, 0, 0, 0, 237, - 0, 0, 0, 220, 0, 0, 0, 216, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, - 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 225, - 0, 0, 0, 246, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 207, 23, 23, 23, 64, - 169, 169, 169, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 41, 41, 41, 64, 0, 0, 0, 178, 0, 0, 0, 229, - 0, 0, 0, 217, 0, 0, 0, 216, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 216, - 0, 0, 0, 218, 0, 0, 0, 219, 0, 0, 0, 217, - 0, 0, 0, 216, 0, 0, 0, 217, 0, 0, 0, 228, - 0, 0, 0, 247, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 249, 0, 0, 0, 135, - 2, 2, 2, 70, 62, 62, 62, 64, 110, 110, 110, 64, - 0, 0, 0, 78, 0, 0, 0, 234, 0, 0, 0, 222, - 0, 0, 0, 216, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 217, - 0, 0, 0, 227, 0, 0, 0, 235, 0, 0, 0, 230, - 0, 0, 0, 225, 0, 0, 0, 226, 0, 0, 0, 239, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 237, 0, 0, 0, 165, 0, 0, 0, 111, - 0, 0, 0, 179, 0, 0, 0, 232, 0, 0, 0, 218, - 0, 0, 0, 216, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 215, 0, 0, 0, 216, 0, 0, 0, 221, - 0, 0, 0, 239, 0, 0, 0, 250, 0, 0, 0, 249, - 0, 0, 0, 245, 0, 0, 0, 246, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 245, 0, 0, 0, 224, 0, 0, 0, 216, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 216, 0, 0, 0, 217, 0, 0, 0, 228, - 0, 0, 0, 247, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 242, 0, 0, 0, 222, 0, 0, 0, 216, - 0, 0, 0, 215, 0, 0, 0, 215, 0, 0, 0, 215, - 0, 0, 0, 216, 0, 0, 0, 219, 0, 0, 0, 236, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 246, 0, 0, 0, 228, 0, 0, 0, 218, - 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, - 0, 0, 0, 216, 0, 0, 0, 225, 0, 0, 0, 244, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 243, 0, 0, 0, 231, - 0, 0, 0, 223, 0, 0, 0, 219, 0, 0, 0, 217, - 0, 0, 0, 220, 0, 0, 0, 234, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 249, - 0, 0, 0, 242, 0, 0, 0, 235, 0, 0, 0, 231, - 0, 0, 0, 235, 0, 0, 0, 247, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 100, - 0, 0, 0, 76, 0, 0, 0, 210, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 127, 127, 127, 64, 2, 2, 2, 73, 0, 0, 0, 210, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 127, 127, 127, 64, 2, 2, 2, 73, - 0, 0, 0, 210, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 248, 0, 0, 0, 248, 0, 0, 0, 251, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 127, 127, 127, 64, - 2, 2, 2, 73, 0, 0, 0, 208, 0, 0, 0, 241, - 0, 0, 0, 230, 0, 0, 0, 228, 0, 0, 0, 237, - 0, 0, 0, 249, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 127, 127, 127, 64, 2, 2, 2, 71, 0, 0, 0, 189, - 0, 0, 0, 219, 0, 0, 0, 218, 0, 0, 0, 222, - 0, 0, 0, 235, 0, 0, 0, 249, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 127, 127, 127, 62, 2, 2, 2, 64, - 0, 0, 0, 179, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 222, 0, 0, 0, 235, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 127, 127, 127, 57, - 3, 3, 3, 62, 0, 0, 0, 179, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 222, 0, 0, 0, 235, - 0, 0, 0, 249, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 127, 127, 127, 54, 3, 3, 3, 62, 0, 0, 0, 179, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 222, - 0, 0, 0, 235, 0, 0, 0, 249, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 127, 127, 127, 54, 3, 3, 3, 62, - 0, 0, 0, 179, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 222, 0, 0, 0, 235, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 127, 127, 127, 54, - 3, 3, 3, 62, 0, 0, 0, 179, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 222, 0, 0, 0, 235, - 0, 0, 0, 249, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 127, 127, 127, 54, 3, 3, 3, 62, 0, 0, 0, 179, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 222, - 0, 0, 0, 235, 0, 0, 0, 249, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 127, 127, 127, 54, 3, 3, 3, 62, - 0, 0, 0, 189, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 222, 0, 0, 0, 235, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 186, 186, 186, 54, 130, 130, 130, 54, 26, 26, 26, 54, - 0, 0, 0, 161, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 222, 0, 0, 0, 235, - 0, 0, 0, 249, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 178, 178, 178, 54, 103, 103, 103, 54, - 23, 23, 23, 54, 0, 0, 0, 79, 0, 0, 0, 148, - 0, 0, 0, 214, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 222, - 0, 0, 0, 235, 0, 0, 0, 249, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 56, 56, 56, 54, 0, 0, 0, 82, - 0, 0, 0, 171, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 222, 0, 0, 0, 235, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 187, 187, 187, 64, - 127, 127, 127, 64, 147, 147, 147, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 133, 133, 133, 54, 0, 0, 0, 77, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 218, 0, 0, 0, 224, 0, 0, 0, 243, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 64, - 175, 175, 175, 64, 100, 100, 100, 64, 20, 20, 20, 64, - 0, 0, 0, 79, 56, 56, 56, 62, 189, 189, 189, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 26, 26, 26, 54, - 0, 0, 0, 169, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 222, 0, 0, 0, 241, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 85, - 5, 5, 5, 67, 0, 0, 0, 124, 0, 0, 0, 204, - 0, 0, 0, 240, 2, 2, 2, 68, 165, 165, 165, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 106, 106, 106, 54, - 0, 0, 0, 100, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 218, - 0, 0, 0, 221, 0, 0, 0, 230, 0, 0, 0, 246, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 246, - 0, 0, 0, 240, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 132, 88, 88, 88, 57, - 190, 190, 190, 54, 190, 190, 190, 54, 178, 178, 178, 54, - 8, 8, 8, 54, 0, 0, 0, 192, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 219, 0, 0, 0, 227, - 0, 0, 0, 236, 0, 0, 0, 245, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 209, 14, 14, 14, 57, - 184, 184, 184, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 80, 80, 80, 54, 0, 0, 0, 123, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 223, 0, 0, 0, 239, - 0, 0, 0, 251, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 246, 0, 0, 0, 92, - 121, 121, 121, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 160, 160, 160, 54, 0, 0, 0, 62, 0, 0, 0, 207, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 221, 0, 0, 0, 238, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 248, 0, 0, 0, 166, - 41, 41, 41, 55, 190, 190, 190, 54, 189, 189, 189, 55, - 169, 169, 169, 55, 23, 23, 23, 55, 0, 0, 0, 176, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 218, 0, 0, 0, 230, - 0, 0, 0, 248, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 234, - 0, 0, 0, 71, 109, 109, 109, 57, 62, 62, 62, 58, - 2, 2, 2, 65, 0, 0, 0, 122, 0, 0, 0, 214, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 223, - 0, 0, 0, 241, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 178, 0, 0, 0, 109, 0, 0, 0, 163, - 0, 0, 0, 233, 0, 0, 0, 240, 0, 0, 0, 222, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 219, - 0, 0, 0, 233, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 247, 0, 0, 0, 229, - 0, 0, 0, 218, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 226, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 237, - 0, 0, 0, 221, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 223, 0, 0, 0, 243, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 245, - 0, 0, 0, 226, 0, 0, 0, 218, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 219, - 0, 0, 0, 229, 0, 0, 0, 246, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 235, 0, 0, 0, 222, 0, 0, 0, 219, - 0, 0, 0, 220, 0, 0, 0, 224, 0, 0, 0, 232, - 0, 0, 0, 243, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 247, 0, 0, 0, 236, 0, 0, 0, 232, - 0, 0, 0, 236, 0, 0, 0, 243, 0, 0, 0, 249, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 13, 14, 20, 170, 45, 49, 63, 26, - 50, 52, 63, 26, 63, 67, 78, 80, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 17, 18, 21, 197, 36, 36, 41, 108, 53, 53, 63, 0, - 58, 57, 69, 0, 76, 81, 96, 28, 62, 65, 76, 129, - 16, 17, 19, 233, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 4, 4, 17, 55, 94, 94, 99, 0, 210, 213, 218, 0, - 206, 209, 214, 0, 117, 118, 124, 0, 23, 24, 36, 0, - 31, 33, 38, 210, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 13, 12, 22, 55, 100, 100, 103, 0, 202, 204, 208, 0, - 193, 195, 200, 0, 122, 123, 128, 0, 29, 30, 39, 0, - 29, 32, 36, 210, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 14, 14, 25, 55, 101, 101, 104, 0, 201, 203, 208, 0, - 193, 195, 200, 0, 121, 121, 127, 0, 32, 32, 43, 0, - 28, 31, 37, 210, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 17, 16, 27, 55, 101, 101, 104, 0, 200, 203, 207, 0, - 193, 196, 201, 0, 119, 120, 125, 0, 33, 33, 44, 0, - 26, 29, 36, 187, 0, 0, 0, 189, 0, 0, 0, 189, - 0, 0, 0, 203, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 17, 16, 27, 55, 101, 101, 104, 0, 199, 201, 206, 0, - 194, 196, 200, 0, 118, 119, 124, 0, 36, 36, 46, 0, - 24, 27, 34, 173, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 187, 0, 0, 0, 220, 0, 0, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 18, 17, 28, 55, 102, 103, 106, 0, 202, 205, 210, 0, - 198, 200, 205, 0, 117, 118, 123, 0, 40, 40, 51, 0, - 7, 7, 9, 169, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 240, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 20, 19, 29, 55, 104, 104, 107, 0, 204, 206, 212, 0, - 201, 203, 208, 0, 117, 117, 123, 0, 34, 35, 47, 0, - 13, 15, 19, 160, 12, 13, 17, 164, 13, 14, 17, 164, - 13, 14, 17, 164, 14, 15, 18, 164, 12, 13, 15, 224, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 2, 2, 6, 197, 22, 22, 30, 20, 33, 33, 39, 20, - 19, 20, 25, 163, 0, 0, 0, 255, 0, 0, 0, 255, - 23, 22, 33, 55, 103, 103, 106, 0, 205, 207, 212, 0, - 202, 204, 210, 0, 114, 114, 121, 0, 27, 27, 36, 0, - 41, 45, 56, 0, 43, 46, 58, 0, 38, 41, 54, 0, - 52, 54, 65, 0, 49, 51, 64, 0, 51, 54, 66, 45, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 9, 9, 9, 28, 79, 80, 85, 0, 82, 82, 89, 0, - 52, 54, 63, 77, 25, 28, 34, 151, 0, 0, 0, 255, - 23, 22, 33, 55, 103, 103, 106, 0, 207, 209, 213, 0, - 205, 207, 212, 0, 112, 113, 119, 0, 33, 32, 42, 0, - 72, 73, 78, 0, 36, 36, 47, 0, 30, 30, 41, 0, - 74, 75, 81, 0, 45, 44, 52, 0, 39, 40, 50, 22, - 41, 42, 49, 126, 25, 26, 30, 211, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 26, 26, 26, 25, 211, 213, 218, 0, 214, 217, 221, 0, - 67, 67, 77, 0, 21, 20, 26, 50, 5, 5, 7, 246, - 25, 24, 32, 50, 103, 103, 106, 0, 209, 211, 215, 0, - 208, 210, 214, 0, 111, 112, 118, 0, 60, 60, 70, 0, - 209, 210, 214, 0, 98, 99, 106, 0, 77, 76, 83, 0, - 204, 206, 210, 0, 67, 68, 74, 0, 34, 34, 44, 0, - 2, 2, 20, 0, 58, 61, 70, 143, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 2, 2, 2, 104, 73, 74, 78, 0, 216, 218, 222, 0, - 191, 193, 199, 0, 149, 150, 156, 3, 23, 23, 36, 11, - 33, 32, 40, 0, 97, 97, 101, 0, 209, 211, 216, 0, - 208, 210, 214, 0, 113, 113, 119, 0, 57, 56, 65, 0, - 204, 205, 209, 0, 99, 99, 105, 0, 78, 77, 84, 0, - 198, 200, 205, 0, 70, 69, 77, 0, 87, 86, 93, 0, - 167, 168, 173, 0, 73, 74, 83, 2, 45, 47, 54, 101, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 2, 218, 27, 27, 31, 61, 130, 131, 135, 0, - 197, 198, 203, 0, 183, 184, 190, 0, 90, 90, 100, 0, - 38, 37, 47, 0, 103, 103, 108, 0, 210, 212, 216, 0, - 210, 212, 217, 0, 159, 160, 164, 0, 108, 109, 114, 0, - 209, 211, 215, 0, 148, 149, 153, 0, 122, 122, 127, 0, - 202, 204, 209, 0, 78, 78, 87, 0, 112, 112, 118, 0, - 201, 203, 208, 0, 68, 67, 74, 0, 39, 40, 46, 89, - 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 2, 2, 3, 198, 17, 16, 26, 0, - 163, 165, 169, 0, 203, 205, 209, 0, 222, 224, 228, 0, - 62, 61, 70, 0, 107, 107, 114, 0, 209, 211, 216, 0, - 225, 227, 231, 0, 213, 215, 220, 0, 209, 212, 216, 0, - 214, 216, 220, 0, 212, 214, 218, 0, 205, 208, 213, 0, - 210, 212, 217, 0, 66, 67, 74, 0, 107, 108, 113, 0, - 202, 204, 208, 0, 68, 68, 75, 0, 38, 38, 46, 63, - 0, 0, 0, 178, 0, 0, 0, 190, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 3, 4, 209, 21, 20, 31, 0, - 170, 172, 176, 0, 209, 211, 216, 0, 210, 212, 216, 0, - 55, 54, 63, 0, 107, 108, 114, 0, 209, 212, 216, 0, - 230, 232, 236, 0, 239, 242, 245, 0, 236, 238, 242, 0, - 234, 237, 241, 0, 229, 232, 237, 0, 219, 221, 227, 0, - 209, 211, 216, 0, 194, 197, 202, 0, 204, 206, 211, 0, - 205, 207, 211, 0, 67, 67, 74, 0, 36, 38, 45, 63, - 0, 0, 0, 178, 0, 0, 0, 184, 0, 0, 0, 219, - 0, 0, 0, 242, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 3, 3, 226, 5, 5, 14, 93, - 110, 111, 119, 22, 177, 179, 183, 0, 215, 217, 221, 0, - 111, 111, 120, 0, 155, 156, 162, 0, 213, 215, 220, 0, - 228, 231, 234, 0, 233, 236, 240, 0, 232, 235, 240, 0, - 229, 231, 236, 0, 225, 227, 231, 0, 217, 220, 225, 0, - 211, 213, 218, 0, 203, 205, 211, 0, 201, 203, 208, 0, - 214, 216, 221, 0, 66, 66, 72, 0, 36, 38, 45, 63, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 221, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 10, 9, 20, 65, 87, 87, 93, 0, 229, 231, 234, 0, - 210, 212, 216, 0, 205, 207, 212, 0, 213, 215, 221, 0, - 221, 224, 229, 0, 226, 229, 234, 0, 226, 229, 234, 0, - 221, 223, 228, 0, 216, 219, 224, 0, 213, 215, 221, 0, - 209, 211, 216, 0, 203, 206, 212, 0, 201, 203, 208, 0, - 214, 217, 221, 0, 63, 62, 68, 0, 36, 37, 44, 63, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 179, 0, 0, 0, 209, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 247, 14, 14, 17, 170, 36, 37, 48, 0, - 204, 206, 209, 0, 212, 214, 220, 0, 212, 214, 219, 0, - 215, 218, 224, 0, 219, 222, 227, 0, 218, 221, 227, 0, - 215, 217, 223, 0, 211, 213, 219, 0, 209, 211, 217, 0, - 206, 208, 215, 0, 206, 209, 215, 0, 212, 214, 219, 0, - 217, 219, 224, 0, 53, 52, 59, 0, 34, 36, 44, 63, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 205, 28, 27, 35, 0, - 198, 199, 203, 0, 211, 214, 219, 0, 207, 210, 215, 0, - 208, 210, 216, 0, 209, 212, 218, 0, 210, 212, 217, 0, - 206, 209, 215, 0, 204, 207, 213, 0, 200, 203, 209, 0, - 198, 201, 206, 0, 206, 209, 215, 0, 201, 203, 207, 0, - 152, 154, 160, 0, 41, 43, 51, 58, 14, 14, 18, 124, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 1, 205, 5, 5, 18, 0, - 207, 209, 213, 0, 221, 223, 227, 0, 205, 207, 212, 0, - 200, 203, 209, 0, 203, 206, 212, 0, 202, 205, 211, 0, - 200, 202, 208, 0, 197, 199, 205, 0, 195, 198, 203, 0, - 193, 195, 200, 0, 196, 198, 203, 0, 154, 155, 160, 0, - 36, 36, 42, 0, 43, 49, 60, 108, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 1, 244, - 32, 31, 42, 14, 115, 115, 120, 0, 195, 197, 201, 0, - 195, 197, 202, 0, 196, 199, 204, 0, 196, 199, 205, 0, - 196, 198, 203, 0, 194, 196, 201, 0, 191, 194, 199, 0, - 191, 193, 197, 0, 191, 193, 198, 0, 156, 157, 162, 0, - 32, 31, 38, 0, 44, 48, 59, 108, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 25, 25, 36, 16, 109, 110, 114, 0, 198, 200, 205, 0, - 194, 196, 201, 0, 195, 197, 203, 0, 195, 198, 203, 0, - 194, 197, 202, 0, 194, 196, 200, 0, 193, 195, 199, 0, - 191, 193, 198, 0, 191, 193, 197, 0, 156, 158, 163, 0, - 28, 27, 34, 0, 29, 32, 39, 126, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 9, 9, 21, 39, 81, 82, 86, 1, 176, 178, 182, 22, - 170, 171, 175, 21, 170, 172, 176, 15, 171, 173, 176, 15, - 170, 171, 175, 15, 169, 171, 175, 15, 168, 170, 174, 16, - 168, 170, 173, 22, 168, 170, 174, 22, 136, 138, 141, 15, - 18, 18, 23, 0, 25, 27, 33, 134, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 204, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 248, 0, 0, 0, 77, 0, 0, 0, 52, - 0, 0, 0, 49, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 36, - 0, 0, 0, 109, 1, 1, 1, 176, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 200, 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 241, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 249, 0, 0, 0, 184, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 184, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 231, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 191, - 0, 0, 0, 178, 0, 0, 0, 183, 0, 0, 0, 183, - 0, 0, 0, 183, 0, 0, 0, 183, 0, 0, 0, 183, - 0, 0, 0, 183, 0, 0, 0, 183, 0, 0, 0, 185, - 0, 0, 0, 185, 0, 0, 0, 182, 0, 0, 0, 178, - 0, 0, 0, 235, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 200, 0, 0, 0, 193, 0, 0, 0, 193, - 0, 0, 0, 193, 0, 0, 0, 193, 0, 0, 0, 193, - 0, 0, 0, 193, 0, 0, 0, 193, 0, 0, 0, 194, - 0, 0, 0, 194, 0, 0, 0, 193, 0, 0, 0, 221, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 7, 7, 7, 246, 14, 14, 14, 239, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 45, 45, 45, 164, - 51, 51, 51, 83, 47, 47, 47, 67, 53, 53, 53, 61, - 45, 45, 45, 54, 50, 50, 50, 64, 55, 55, 55, 135, - 24, 24, 24, 223, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 8, 8, 8, 243, 39, 39, 39, 111, 7, 7, 7, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 1, 1, 1, 50, - 37, 37, 37, 61, 48, 48, 48, 177, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 59, 59, 59, 100, 3, 3, 3, 50, 2, 2, 2, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 1, 1, 1, 50, - 4, 4, 4, 50, 44, 44, 44, 56, 26, 26, 26, 226, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 6, 6, 6, 248, - 35, 35, 35, 54, 1, 1, 1, 50, 2, 2, 2, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, - 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, - 1, 1, 1, 50, 31, 31, 31, 50, 44, 44, 44, 205, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 252, - 38, 38, 38, 55, 16, 16, 16, 50, 2, 2, 2, 50, - 1, 1, 1, 50, 1, 1, 1, 50, 0, 0, 0, 50, - 0, 0, 0, 50, 1, 1, 1, 50, 1, 1, 1, 48, - 5, 5, 5, 44, 30, 30, 30, 42, 35, 35, 35, 171, - 0, 0, 0, 208, 0, 0, 0, 210, 0, 0, 0, 243, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 77, 77, 77, 56, 39, 39, 39, 51, 2, 2, 2, 50, - 14, 14, 14, 50, 12, 12, 12, 50, 2, 2, 2, 50, - 3, 3, 3, 50, 13, 13, 13, 45, 2, 2, 2, 36, - 4, 4, 4, 35, 65, 65, 65, 36, 39, 39, 39, 134, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 203, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 101, 101, 101, 58, 45, 45, 45, 66, 98, 98, 98, 50, - 161, 161, 161, 50, 155, 155, 155, 50, 16, 16, 16, 50, - 112, 112, 112, 44, 161, 161, 161, 35, 131, 131, 131, 35, - 14, 14, 14, 35, 108, 108, 108, 54, 7, 7, 7, 172, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 191, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 84, 84, 84, 117, 14, 14, 14, 50, 149, 149, 149, 50, - 163, 163, 163, 50, 148, 148, 148, 50, 41, 41, 41, 49, - 106, 106, 106, 35, 163, 163, 163, 35, 163, 163, 163, 35, - 33, 33, 33, 35, 84, 84, 84, 63, 15, 15, 15, 166, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 238, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 72, 72, 72, 70, 5, 5, 5, 50, 65, 65, 65, 50, - 108, 108, 108, 50, 58, 58, 58, 50, 125, 125, 125, 50, - 79, 79, 79, 35, 97, 97, 97, 35, 80, 80, 80, 35, - 6, 6, 6, 35, 36, 36, 36, 40, 27, 27, 27, 153, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 238, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 14, 14, 14, 239, 57, 57, 57, 141, 71, 71, 71, 102, - 61, 61, 61, 87, 12, 12, 12, 50, 154, 154, 154, 52, - 94, 94, 94, 35, 38, 38, 38, 41, 70, 70, 70, 87, - 69, 69, 69, 54, 30, 30, 30, 147, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 233, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 100, 100, 100, 99, - 100, 100, 100, 102, 48, 48, 48, 57, 23, 23, 23, 50, - 42, 42, 42, 39, 92, 92, 92, 50, 50, 50, 50, 129, - 49, 49, 49, 135, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 186, 0, 0, 0, 245, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 21, 21, 21, 227, - 33, 33, 33, 206, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 28, 28, 28, 214, 43, 43, 43, 50, - 111, 111, 111, 105, 99, 99, 99, 63, 103, 103, 103, 60, - 105, 105, 105, 45, 114, 114, 114, 59, 67, 67, 67, 60, - 50, 50, 50, 102, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 8, 8, 8, 171, 35, 35, 35, 145, - 0, 0, 0, 178, 0, 0, 0, 196, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 3, 3, 251, 55, 55, 55, 66, - 29, 29, 29, 51, 18, 18, 18, 225, 0, 0, 0, 255, - 0, 0, 0, 255, 38, 38, 38, 205, 30, 30, 30, 51, - 105, 105, 105, 57, 102, 102, 102, 63, 99, 99, 99, 56, - 112, 112, 112, 42, 113, 113, 113, 46, 19, 19, 19, 35, - 41, 41, 41, 111, 0, 0, 0, 178, 0, 0, 0, 178, - 23, 23, 23, 158, 52, 52, 52, 65, 55, 55, 55, 36, - 13, 13, 13, 168, 0, 0, 0, 180, 0, 0, 0, 239, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 42, 42, 42, 206, 24, 24, 24, 50, - 6, 6, 6, 50, 47, 47, 47, 178, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 48, 48, 48, 168, - 24, 24, 24, 52, 32, 32, 32, 50, 63, 63, 63, 50, - 40, 40, 40, 43, 14, 14, 14, 37, 38, 38, 38, 60, - 17, 17, 17, 165, 0, 0, 0, 178, 29, 29, 29, 147, - 40, 40, 40, 48, 55, 55, 55, 48, 49, 49, 49, 38, - 9, 9, 9, 170, 0, 0, 0, 211, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 45, 45, 45, 137, 4, 4, 4, 50, - 3, 3, 3, 50, 44, 44, 44, 68, 38, 38, 38, 203, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 26, 26, 26, 193, 41, 41, 41, 72, 39, 39, 39, 57, - 14, 14, 14, 71, 22, 22, 22, 140, 1, 1, 1, 211, - 0, 0, 0, 202, 36, 36, 36, 137, 31, 31, 31, 46, - 16, 16, 16, 35, 87, 87, 87, 50, 24, 24, 24, 47, - 23, 23, 23, 191, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 32, 32, 32, 198, 30, 30, 30, 60, 65, 65, 65, 62, - 38, 38, 38, 50, 6, 6, 6, 50, 24, 24, 24, 50, - 55, 55, 55, 110, 38, 38, 38, 199, 3, 3, 3, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 252, - 2, 2, 2, 252, 11, 11, 11, 237, 11, 11, 11, 167, - 15, 15, 15, 115, 40, 40, 40, 40, 76, 76, 76, 62, - 84, 84, 84, 47, 53, 53, 53, 39, 36, 36, 36, 39, - 20, 20, 20, 192, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 80, 80, 80, 119, 2, 2, 2, 50, 20, 20, 20, 50, - 41, 41, 41, 67, 64, 64, 64, 50, 10, 10, 10, 50, - 2, 2, 2, 50, 14, 14, 14, 50, 51, 51, 51, 66, - 60, 60, 60, 120, 8, 8, 8, 244, 0, 0, 0, 255, - 12, 12, 12, 214, 51, 51, 51, 83, 24, 24, 24, 36, - 15, 15, 15, 39, 93, 93, 93, 41, 55, 55, 55, 64, - 47, 47, 47, 118, 38, 38, 38, 150, 41, 41, 41, 145, - 2, 2, 2, 214, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 222, 0, 0, 0, 194, - 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 21, 21, 21, 231, 90, 90, 90, 96, 51, 51, 51, 185, - 0, 0, 0, 255, 13, 13, 13, 239, 9, 9, 9, 227, - 55, 55, 55, 102, 36, 36, 36, 54, 42, 42, 42, 36, - 96, 96, 96, 35, 73, 73, 73, 88, 24, 24, 24, 75, - 7, 7, 7, 50, 13, 13, 13, 50, 62, 62, 62, 40, - 80, 80, 80, 78, 38, 38, 38, 148, 0, 0, 0, 178, - 0, 0, 0, 179, 0, 0, 0, 181, 2, 2, 2, 177, - 1, 1, 1, 234, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 206, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 57, 57, 57, 191, 24, 24, 24, 50, 25, 25, 25, 106, - 8, 8, 8, 232, 8, 8, 8, 244, 3, 3, 3, 251, - 73, 73, 73, 148, 66, 66, 66, 97, 55, 55, 55, 38, - 7, 7, 7, 35, 3, 3, 3, 40, 40, 40, 40, 50, - 77, 77, 77, 93, 80, 80, 80, 106, 34, 34, 34, 51, - 44, 44, 44, 45, 26, 26, 26, 102, 14, 14, 14, 148, - 44, 44, 44, 141, 65, 65, 65, 133, 55, 55, 55, 82, - 29, 29, 29, 77, 46, 46, 46, 194, 0, 0, 0, 198, - 0, 0, 0, 178, 0, 0, 0, 189, 0, 0, 0, 180, - 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 58, 58, 58, 57, 35, 35, 35, 65, - 14, 14, 14, 51, 17, 17, 17, 52, 15, 15, 15, 60, - 4, 4, 4, 48, 1, 1, 1, 38, 30, 30, 30, 38, - 56, 56, 56, 61, 49, 49, 49, 114, 23, 23, 23, 173, - 33, 33, 33, 182, 60, 60, 60, 84, 45, 45, 45, 57, - 35, 35, 35, 50, 14, 14, 14, 45, 60, 60, 60, 50, - 38, 38, 38, 46, 18, 18, 18, 47, 4, 4, 4, 50, - 6, 6, 6, 48, 35, 35, 35, 140, 0, 0, 0, 181, - 0, 0, 0, 184, 0, 0, 0, 182, 0, 0, 0, 178, - 0, 0, 0, 236, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 57, 57, 57, 131, 34, 34, 34, 51, - 28, 28, 28, 52, 58, 58, 58, 50, 36, 36, 36, 50, - 54, 54, 54, 48, 46, 46, 46, 104, 23, 23, 23, 158, - 1, 1, 1, 177, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 190, 13, 13, 13, 206, - 43, 43, 43, 187, 60, 60, 60, 112, 54, 54, 54, 57, - 85, 85, 85, 58, 87, 87, 87, 60, 39, 39, 39, 41, - 60, 60, 60, 71, 16, 16, 16, 169, 0, 0, 0, 189, - 0, 0, 0, 192, 0, 0, 0, 203, 0, 0, 0, 205, - 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 35, 35, 35, 119, 12, 12, 12, 50, - 76, 76, 76, 62, 46, 46, 46, 98, 51, 51, 51, 169, - 11, 11, 11, 216, 0, 0, 0, 191, 0, 0, 0, 204, - 0, 0, 0, 229, 0, 0, 0, 217, 0, 0, 0, 212, - 0, 0, 0, 181, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 179, 0, 0, 0, 223, 18, 18, 18, 195, - 56, 56, 56, 84, 15, 15, 15, 36, 6, 6, 6, 35, - 46, 46, 46, 121, 0, 0, 0, 211, 0, 0, 0, 238, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 38, 38, 38, 194, 50, 50, 50, 115, - 51, 51, 51, 158, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 234, 0, 0, 0, 182, 0, 0, 0, 225, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 226, 0, 0, 0, 201, 0, 0, 0, 180, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 180, 53, 53, 53, 102, 58, 58, 58, 62, - 35, 35, 35, 166, 0, 0, 0, 240, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 227, - 0, 0, 0, 220, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 247, 0, 0, 0, 178, 0, 0, 0, 180, - 0, 0, 0, 203, 0, 0, 0, 207, 0, 0, 0, 213, - 0, 0, 0, 181, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 190, 0, 0, 0, 213, - 0, 0, 0, 218, 1, 1, 1, 177, 1, 1, 1, 177, - 0, 0, 0, 178, 0, 0, 0, 182, 0, 0, 0, 194, - 0, 0, 0, 190, 0, 0, 0, 183, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 198, 0, 0, 0, 184, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 186, 0, 0, 0, 214, - 0, 0, 0, 237, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 235, 0, 0, 0, 220, - 0, 0, 0, 199, 0, 0, 0, 178, 0, 0, 0, 181, - 0, 0, 0, 181, 0, 0, 0, 180, 0, 0, 0, 178, - 0, 0, 0, 187, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 202, 0, 0, 0, 178, - 0, 0, 0, 183, 0, 0, 0, 178, 0, 0, 0, 192, - 0, 0, 0, 223, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 245, 0, 0, 0, 214, - 0, 0, 0, 179, 0, 0, 0, 184, 0, 0, 0, 178, - 0, 0, 0, 218, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 0, 0, 0, 178, - 0, 0, 0, 191, 0, 0, 0, 241, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 245, 0, 0, 0, 188, 0, 0, 0, 178, - 0, 0, 0, 226, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 247, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 239, 0, 0, 0, 237, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 13, 13, 13, 233, 58, 58, 58, 179, - 87, 87, 87, 150, 89, 89, 89, 146, 68, 68, 68, 166, - 23, 23, 23, 213, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 22, 22, 22, 226, - 150, 150, 150, 90, 239, 239, 239, 8, 249, 249, 249, 0, - 242, 242, 242, 0, 243, 243, 243, 0, 248, 248, 248, 0, - 248, 248, 248, 2, 180, 180, 180, 46, 50, 50, 50, 175, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 35, 35, 35, 212, 220, 220, 220, 26, - 245, 245, 245, 0, 197, 197, 197, 0, 159, 159, 159, 1, - 134, 134, 134, 21, 133, 133, 133, 30, 178, 178, 178, 6, - 219, 219, 219, 0, 242, 242, 242, 0, 229, 229, 229, 2, - 83, 83, 83, 126, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 4, 4, 4, 247, 200, 200, 200, 43, 246, 246, 246, 0, - 175, 175, 175, 0, 82, 82, 82, 54, 12, 12, 12, 200, - 0, 0, 0, 253, 0, 0, 0, 255, 3, 3, 3, 229, - 81, 81, 81, 103, 216, 216, 216, 2, 239, 239, 239, 0, - 216, 216, 216, 2, 45, 45, 45, 167, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 80, 80, 80, 160, 254, 254, 254, 0, 206, 206, 206, 0, - 104, 104, 104, 36, 1, 1, 1, 239, 0, 0, 0, 255, - 0, 0, 0, 246, 0, 0, 0, 207, 0, 0, 0, 182, - 0, 0, 0, 178, 75, 75, 75, 96, 242, 242, 242, 0, - 231, 231, 231, 0, 140, 140, 140, 31, 0, 0, 0, 202, - 0, 0, 0, 243, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 163, 163, 163, 75, 243, 243, 243, 0, 177, 177, 177, 0, - 36, 36, 36, 155, 0, 0, 0, 255, 0, 0, 0, 239, - 0, 0, 0, 185, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 1, 1, 1, 177, 203, 203, 203, 20, - 242, 242, 242, 0, 183, 183, 183, 2, 5, 5, 5, 156, - 0, 0, 0, 182, 0, 0, 0, 232, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 141, 141, 141, 57, 162, 162, 162, 11, 139, 139, 139, 6, - 3, 3, 3, 229, 0, 0, 0, 250, 0, 0, 0, 187, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 195, - 0, 0, 0, 236, 0, 0, 0, 252, 168, 168, 168, 66, - 243, 243, 243, 0, 178, 178, 178, 1, 10, 10, 10, 145, - 0, 0, 0, 178, 0, 0, 0, 182, 0, 0, 0, 242, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 247, 2, 2, 2, 228, - 0, 0, 0, 254, 0, 0, 0, 218, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 194, 0, 0, 0, 252, - 0, 0, 0, 255, 2, 2, 2, 251, 207, 207, 207, 32, - 234, 234, 234, 0, 154, 154, 154, 5, 2, 2, 2, 183, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 204, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 191, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 234, 0, 0, 0, 255, - 0, 0, 0, 255, 105, 105, 105, 137, 253, 253, 253, 0, - 196, 196, 196, 0, 88, 88, 88, 64, 0, 0, 0, 246, - 0, 0, 0, 179, 0, 0, 0, 178, 0, 0, 0, 184, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 183, 0, 0, 0, 179, - 0, 0, 0, 183, 0, 0, 0, 253, 0, 0, 0, 254, - 99, 99, 99, 143, 248, 248, 248, 3, 213, 213, 213, 0, - 126, 126, 126, 10, 13, 13, 13, 203, 0, 0, 0, 255, - 0, 0, 0, 186, 0, 0, 0, 178, 0, 0, 0, 180, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 247, - 0, 0, 0, 242, 2, 2, 2, 252, 126, 126, 126, 115, - 251, 251, 251, 1, 213, 213, 213, 0, 130, 130, 130, 6, - 24, 24, 24, 170, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 181, 0, 0, 0, 178, 0, 0, 0, 184, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 1, 1, 1, 253, 138, 138, 138, 104, 252, 252, 252, 0, - 202, 202, 202, 0, 119, 119, 119, 11, 21, 21, 21, 175, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 214, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 206, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 87, 87, 87, 155, 252, 252, 252, 1, 200, 200, 200, 0, - 113, 113, 113, 19, 13, 13, 13, 197, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 218, 0, 0, 0, 179, - 0, 0, 0, 178, 0, 0, 0, 183, 0, 0, 0, 244, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 250, - 211, 211, 211, 30, 231, 231, 231, 0, 139, 139, 139, 5, - 13, 13, 13, 196, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 210, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 181, 0, 0, 0, 233, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 32, 32, 32, 207, - 252, 252, 252, 1, 208, 208, 208, 0, 85, 85, 85, 78, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 205, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 182, - 0, 0, 0, 233, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 58, 58, 58, 176, - 253, 253, 253, 0, 195, 195, 195, 0, 59, 59, 59, 128, - 0, 0, 0, 255, 0, 0, 0, 218, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 185, 0, 0, 0, 240, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 49, 49, 49, 177, - 174, 174, 174, 17, 134, 134, 134, 17, 35, 35, 35, 153, - 0, 0, 0, 250, 0, 0, 0, 182, 0, 0, 0, 178, - 0, 0, 0, 182, 0, 0, 0, 241, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 254, - 0, 0, 0, 231, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 211, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 252, - 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 254, - 0, 0, 0, 220, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 228, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 176, 176, 176, 51, - 238, 238, 238, 0, 230, 230, 230, 0, 55, 55, 55, 148, - 0, 0, 0, 219, 0, 0, 0, 179, 0, 0, 0, 179, - 0, 0, 0, 234, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 182, 182, 182, 51, - 252, 252, 252, 0, 204, 204, 204, 0, 46, 46, 46, 148, - 0, 0, 0, 253, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 4, 4, 4, 245, - 31, 31, 31, 206, 37, 37, 37, 199, 195, 195, 195, 40, - 249, 249, 249, 0, 200, 200, 200, 0, 80, 80, 80, 108, - 49, 49, 49, 186, 31, 31, 31, 197, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 3, 3, 3, 247, - 182, 182, 182, 40, 251, 251, 251, 0, 254, 254, 254, 0, - 253, 253, 253, 0, 236, 236, 236, 0, 247, 247, 247, 0, - 204, 204, 204, 0, 49, 49, 49, 97, 0, 0, 0, 184, - 0, 0, 0, 236, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 41, 41, 41, 186, 233, 233, 233, 1, 250, 250, 250, 0, - 254, 254, 254, 0, 249, 249, 249, 0, 197, 197, 197, 0, - 100, 100, 100, 25, 0, 0, 0, 173, 0, 0, 0, 178, - 0, 0, 0, 234, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 127, 127, 127, 87, 243, 243, 243, 0, - 252, 252, 252, 0, 223, 223, 223, 0, 151, 151, 151, 0, - 23, 23, 23, 123, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 224, 0, 0, 0, 241, 0, 0, 0, 245, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 12, 12, 12, 228, 209, 209, 209, 14, - 243, 243, 243, 0, 184, 184, 184, 0, 78, 78, 78, 47, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 227, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 77, 77, 77, 143, - 231, 231, 231, 0, 135, 135, 135, 3, 11, 11, 11, 146, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 195, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 250, - 154, 154, 154, 48, 56, 56, 56, 104, 0, 0, 0, 190, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 179, 0, 0, 0, 238, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 21, 21, 21, 201, 3, 3, 3, 233, 0, 0, 0, 235, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 206, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 205, 0, 0, 0, 178, 0, 0, 0, 182, - 0, 0, 0, 246, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 247, 0, 0, 0, 183, 0, 0, 0, 217, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 229, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 3, 2, 251, - 14, 20, 12, 231, 23, 36, 18, 210, 28, 45, 22, 199, - 29, 47, 23, 197, 28, 48, 21, 194, 20, 35, 15, 211, - 5, 8, 4, 244, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 32, 43, 28, 204, 79, 121, 65, 112, 100, 173, 76, 47, - 95, 180, 66, 38, 82, 175, 50, 38, 77, 169, 46, 38, - 74, 166, 44, 38, 68, 162, 37, 38, 67, 161, 36, 38, - 62, 155, 30, 42, 63, 138, 38, 74, 43, 96, 26, 129, - 16, 38, 9, 202, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 1, 1, 1, 253, 39, 54, 33, 191, 95, 142, 79, 88, - 107, 184, 82, 38, 83, 175, 52, 38, 54, 149, 22, 38, - 33, 116, 5, 38, 24, 98, 0, 42, 21, 83, 0, 66, - 17, 68, 0, 99, 15, 60, 0, 116, 12, 51, 0, 134, - 13, 52, 0, 134, 17, 66, 0, 117, 27, 92, 5, 85, - 36, 114, 10, 54, 34, 95, 13, 106, 10, 23, 5, 220, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 54, 94, 41, 123, 0, 1, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 24, 33, 22, 216, - 99, 140, 86, 93, 107, 185, 81, 38, 87, 181, 55, 38, - 52, 147, 20, 39, 26, 102, 0, 38, 18, 75, 0, 62, - 7, 30, 0, 156, 0, 3, 0, 240, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 2, 0, 248, 11, 44, 0, 167, 27, 94, 4, 76, - 0, 3, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 12, 16, 10, 235, 78, 157, 52, 42, 9, 37, 0, 179, - 1, 1, 1, 253, 70, 93, 62, 148, 116, 182, 94, 43, - 96, 184, 66, 38, 68, 174, 33, 38, 37, 134, 5, 39, - 22, 90, 0, 39, 9, 35, 0, 126, 0, 1, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 245, 0, 0, 0, 236, 0, 0, 0, 232, - 0, 0, 0, 229, 0, 0, 0, 227, 0, 0, 0, 231, - 0, 0, 0, 239, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 42, 64, 35, 177, 79, 171, 49, 38, 26, 102, 1, 80, - 78, 106, 69, 133, 117, 188, 94, 38, 82, 182, 49, 38, - 53, 168, 15, 38, 32, 129, 0, 39, 22, 89, 0, 39, - 7, 29, 0, 148, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 246, 0, 0, 0, 214, 0, 0, 0, 185, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 181, 0, 0, 0, 194, - 0, 0, 0, 217, 0, 0, 0, 246, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 72, 117, 57, 115, 78, 178, 45, 39, 49, 164, 11, 38, - 91, 182, 61, 39, 81, 182, 47, 38, 49, 172, 7, 38, - 35, 141, 0, 38, 23, 95, 0, 38, 7, 28, 0, 150, - 0, 0, 0, 255, 0, 0, 0, 244, 0, 0, 0, 208, - 0, 0, 0, 180, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 179, 0, 0, 0, 187, - 0, 0, 0, 201, 0, 0, 0, 208, 0, 0, 0, 215, - 0, 0, 0, 219, 0, 0, 0, 215, 0, 0, 0, 206, - 0, 0, 0, 195, 0, 0, 0, 184, 0, 0, 0, 218, - 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 1, 252, - 96, 164, 73, 58, 72, 179, 36, 38, 48, 173, 6, 38, - 54, 175, 13, 38, 47, 173, 5, 35, 39, 160, 0, 34, - 29, 120, 0, 38, 14, 56, 0, 98, 0, 0, 0, 250, - 0, 0, 0, 214, 0, 0, 0, 180, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 181, - 0, 0, 0, 208, 0, 0, 0, 243, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 246, 0, 0, 0, 208, - 0, 0, 0, 222, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 26, 38, 22, 209, - 96, 178, 69, 42, 62, 178, 24, 38, 43, 172, 0, 38, - 43, 172, 0, 38, 42, 171, 0, 32, 37, 149, 0, 29, - 26, 104, 0, 38, 3, 14, 0, 189, 0, 0, 0, 188, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 188, 0, 0, 0, 243, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 56, 89, 45, 148, - 87, 181, 55, 39, 53, 175, 12, 38, 43, 172, 0, 38, - 43, 172, 0, 38, 42, 172, 0, 28, 37, 152, 0, 27, - 29, 118, 0, 38, 9, 25, 3, 153, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 192, 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 85, 141, 67, 86, - 77, 179, 42, 40, 47, 173, 5, 38, 42, 171, 0, 38, - 41, 166, 0, 36, 39, 159, 0, 27, 37, 150, 0, 27, - 38, 147, 2, 27, 50, 149, 17, 29, 35, 95, 15, 76, - 7, 20, 3, 154, 0, 0, 0, 178, 0, 0, 0, 191, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 3, 12, 0, 217, 3, 12, 0, 228, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 11, 16, 10, 236, 101, 177, 75, 44, - 62, 171, 26, 38, 38, 150, 0, 38, 34, 139, 0, 38, - 32, 129, 0, 33, 29, 117, 0, 27, 25, 104, 0, 29, - 20, 85, 0, 40, 15, 60, 0, 71, 9, 36, 0, 108, - 2, 9, 0, 156, 0, 0, 0, 179, 0, 0, 0, 241, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 1, 0, 249, 3, 14, 0, 209, - 8, 35, 0, 157, 15, 59, 0, 105, 21, 85, 0, 55, - 53, 129, 27, 39, 32, 53, 25, 186, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 40, 62, 33, 179, 75, 161, 46, 38, - 30, 117, 1, 38, 26, 104, 0, 39, 20, 83, 0, 61, - 14, 56, 0, 84, 7, 32, 0, 114, 2, 12, 0, 150, - 0, 0, 0, 175, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 203, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 2, 0, 246, 4, 17, 0, 200, 9, 38, 0, 151, - 15, 61, 0, 100, 22, 89, 0, 52, 27, 107, 0, 39, - 29, 120, 0, 38, 33, 131, 0, 38, 54, 155, 19, 38, - 98, 175, 73, 45, 8, 11, 7, 241, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 33, 63, 22, 159, 15, 54, 2, 119, - 7, 29, 0, 171, 2, 9, 0, 223, 0, 0, 0, 249, - 0, 0, 0, 181, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 205, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 11, 41, 1, 159, - 33, 107, 8, 47, 33, 119, 5, 38, 31, 125, 0, 40, - 33, 132, 0, 38, 35, 142, 0, 38, 38, 152, 0, 38, - 40, 161, 0, 38, 46, 168, 5, 38, 78, 180, 43, 39, - 80, 134, 62, 93, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 231, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 184, - 0, 0, 0, 218, 0, 0, 0, 254, 0, 0, 0, 254, - 16, 40, 8, 197, 41, 116, 16, 90, 38, 147, 2, 38, - 39, 160, 0, 38, 43, 171, 0, 38, 43, 172, 0, 39, - 43, 172, 0, 38, 54, 175, 14, 38, 87, 181, 56, 39, - 52, 83, 41, 154, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 245, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 179, - 0, 0, 0, 183, 0, 0, 0, 198, 0, 0, 0, 215, - 0, 0, 0, 235, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 14, 0, 211, 28, 114, 0, 38, - 38, 155, 0, 38, 43, 172, 0, 38, 43, 172, 0, 38, - 43, 172, 0, 38, 63, 178, 25, 38, 96, 178, 68, 39, - 22, 32, 19, 186, 0, 0, 0, 205, 0, 0, 0, 187, - 0, 0, 0, 178, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 188, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 183, - 0, 0, 0, 201, 0, 0, 0, 219, 0, 0, 0, 237, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 11, 44, 0, 123, 29, 117, 0, 38, - 39, 160, 0, 38, 43, 172, 0, 36, 44, 173, 1, 33, - 45, 173, 3, 31, 72, 179, 37, 28, 92, 158, 69, 45, - 1, 1, 1, 177, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 250, 0, 0, 0, 205, - 0, 0, 0, 222, 0, 0, 0, 240, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 3, 12, 0, 206, 22, 89, 0, 42, 34, 138, 0, 37, - 44, 170, 2, 29, 65, 178, 26, 27, 69, 179, 32, 27, - 52, 172, 12, 27, 83, 181, 51, 27, 68, 110, 53, 85, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 10, 0, 212, - 17, 69, 0, 54, 29, 118, 0, 38, 43, 161, 4, 38, - 67, 178, 31, 38, 104, 186, 76, 33, 92, 155, 71, 50, - 39, 148, 4, 28, 88, 179, 57, 27, 37, 58, 30, 129, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 185, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 13, 0, 200, 17, 71, 0, 52, - 28, 115, 0, 39, 49, 159, 13, 39, 77, 181, 44, 38, - 105, 186, 79, 38, 115, 160, 100, 72, 15, 20, 14, 175, - 21, 87, 0, 65, 90, 168, 63, 31, 8, 12, 7, 168, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 206, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 1, 4, 0, 239, - 6, 26, 0, 188, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 1, 4, 0, 239, - 8, 32, 0, 151, 19, 79, 0, 45, 34, 124, 4, 39, - 64, 168, 30, 38, 94, 184, 64, 38, 118, 183, 96, 42, - 78, 108, 68, 130, 7, 8, 7, 232, 0, 0, 0, 179, - 7, 29, 0, 134, 65, 120, 47, 64, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 227, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 1, 7, 0, 237, - 30, 95, 8, 95, 28, 96, 6, 83, 9, 38, 0, 170, - 5, 22, 0, 201, 1, 7, 0, 234, 0, 2, 0, 245, - 0, 3, 0, 242, 2, 9, 0, 226, 3, 16, 0, 209, - 7, 30, 0, 171, 11, 46, 0, 131, 20, 83, 0, 50, - 29, 112, 1, 38, 54, 147, 22, 38, 89, 181, 58, 38, - 110, 184, 86, 39, 94, 137, 80, 95, 28, 36, 25, 214, - 0, 0, 0, 253, 0, 0, 0, 198, 0, 0, 0, 178, - 0, 0, 0, 177, 19, 30, 14, 149, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 179, - 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 16, 44, 6, 186, 43, 118, 18, 76, - 52, 143, 21, 39, 45, 133, 16, 38, 35, 120, 8, 41, - 33, 115, 5, 40, 37, 122, 8, 38, 38, 125, 10, 38, - 44, 133, 13, 38, 51, 144, 20, 38, 65, 161, 33, 38, - 88, 179, 58, 38, 109, 182, 85, 41, 85, 126, 72, 107, - 30, 40, 27, 208, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 202, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 179, - 0, 0, 0, 192, 0, 0, 0, 178, 0, 0, 0, 194, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 11, 24, 7, 222, 32, 64, 21, 172, 43, 97, 25, 128, - 65, 128, 44, 96, 74, 143, 51, 79, 76, 139, 55, 85, - 75, 136, 54, 88, 71, 127, 52, 100, 65, 109, 50, 123, - 54, 83, 44, 155, 17, 23, 15, 228, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 199, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 180, 0, 0, 0, 225, - 0, 0, 0, 237, 0, 0, 0, 178, 0, 0, 0, 215, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 229, 0, 0, 0, 243, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 230, 0, 0, 0, 191, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 194, 0, 0, 0, 240, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 197, 0, 0, 0, 237, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 229, 0, 0, 0, 187, 0, 0, 0, 206, - 0, 0, 0, 226, 0, 0, 0, 237, 0, 0, 0, 245, - 0, 0, 0, 248, 0, 0, 0, 242, 0, 0, 0, 236, - 0, 0, 0, 227, 0, 0, 0, 214, 0, 0, 0, 191, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 188, 0, 0, 0, 225, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 213, - 0, 0, 0, 185, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 178, - 0, 0, 0, 178, 0, 0, 0, 178, 0, 0, 0, 192, - 0, 0, 0, 226, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 239, 0, 0, 0, 223, - 0, 0, 0, 208, 0, 0, 0, 201, 0, 0, 0, 199, - 0, 0, 0, 200, 0, 0, 0, 204, 0, 0, 0, 209, - 0, 0, 0, 219, 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 13, 5, 13, 201, - 32, 13, 24, 144, 1, 0, 1, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 18, 8, 16, 185, 130, 40, 22, 23, - 146, 46, 22, 6, 35, 13, 21, 148, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 2, 1, 2, 245, 95, 32, 25, 56, 169, 58, 22, 0, - 163, 57, 25, 0, 104, 34, 24, 42, 3, 1, 4, 238, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 1, 3, 242, - 15, 8, 20, 186, 148, 60, 31, 10, 172, 86, 59, 0, - 176, 89, 55, 0, 134, 48, 24, 15, 18, 10, 24, 174, - 3, 2, 5, 238, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 68, 55, 76, 108, - 79, 54, 76, 73, 188, 142, 152, 0, 189, 159, 185, 0, - 180, 98, 70, 0, 149, 69, 43, 14, 123, 103, 128, 49, - 42, 32, 48, 150, 0, 0, 0, 252, 0, 0, 0, 240, - 0, 0, 0, 233, 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 13, 7, 17, 198, 160, 134, 161, 15, - 152, 121, 143, 18, 198, 177, 205, 0, 205, 187, 216, 0, - 175, 106, 91, 0, 172, 95, 70, 9, 205, 182, 205, 3, - 103, 85, 109, 67, 0, 0, 0, 240, 0, 0, 0, 215, - 0, 0, 0, 209, 0, 0, 0, 231, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 42, 28, 45, 144, 196, 173, 202, 0, - 194, 164, 189, 0, 214, 198, 226, 0, 210, 193, 222, 0, - 162, 91, 82, 0, 179, 102, 82, 1, 200, 177, 206, 0, - 111, 88, 114, 49, 0, 0, 0, 223, 0, 0, 0, 205, - 0, 0, 0, 203, 0, 0, 0, 218, 0, 0, 0, 247, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 62, 45, 68, 115, 197, 176, 207, 0, - 195, 168, 195, 0, 216, 200, 227, 0, 203, 183, 212, 0, - 157, 84, 74, 0, 159, 84, 72, 4, 198, 177, 208, 0, - 92, 72, 98, 69, 0, 0, 0, 214, 0, 0, 0, 203, - 0, 0, 0, 202, 0, 0, 0, 210, 0, 0, 0, 233, - 0, 0, 0, 248, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 84, 66, 91, 87, 202, 183, 212, 0, - 191, 164, 193, 0, 217, 202, 227, 0, 197, 173, 203, 0, - 173, 113, 112, 0, 163, 96, 92, 4, 202, 184, 214, 0, - 76, 58, 80, 81, 0, 0, 0, 205, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 203, 0, 0, 0, 210, - 0, 0, 0, 234, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 109, 88, 117, 56, 199, 176, 204, 0, - 199, 179, 211, 0, 216, 201, 227, 0, 197, 170, 200, 0, - 185, 139, 148, 0, 168, 107, 108, 4, 199, 180, 210, 0, - 59, 42, 62, 97, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 204, - 0, 0, 0, 225, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 2, 1, 3, 244, 128, 103, 133, 36, 190, 164, 193, 0, - 202, 180, 212, 0, 215, 198, 226, 0, 200, 173, 201, 0, - 188, 154, 171, 0, 168, 115, 123, 4, 190, 166, 196, 0, - 43, 29, 45, 118, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 204, - 0, 0, 0, 225, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 13, 6, 14, 207, 148, 121, 151, 22, 206, 183, 213, 0, - 191, 155, 180, 0, 209, 186, 214, 0, 205, 178, 203, 0, - 222, 205, 227, 0, 190, 160, 184, 0, 187, 161, 191, 1, - 28, 17, 29, 138, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 205, - 0, 0, 0, 228, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 0, 1, 250, 31, 19, 33, 162, - 142, 119, 147, 36, 213, 193, 222, 0, 210, 186, 214, 0, - 209, 163, 170, 0, 213, 185, 210, 0, 207, 182, 209, 0, - 215, 185, 213, 0, 221, 198, 223, 0, 193, 166, 193, 1, - 56, 36, 56, 92, 1, 0, 1, 197, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 206, - 0, 0, 0, 231, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 34, 20, 35, 155, 187, 162, 190, 9, - 221, 199, 224, 0, 177, 134, 184, 0, 157, 93, 100, 0, - 182, 112, 102, 0, 155, 80, 71, 0, 176, 123, 133, 0, - 208, 157, 181, 0, 212, 171, 194, 0, 215, 185, 211, 0, - 166, 132, 156, 10, 13, 6, 14, 162, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 207, - 0, 0, 0, 235, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 82, 54, 73, 85, 182, 138, 159, 2, - 184, 134, 149, 2, 195, 142, 153, 0, 180, 102, 88, 0, - 200, 155, 159, 0, 149, 81, 74, 0, 173, 85, 67, 0, - 197, 146, 156, 0, 190, 134, 142, 0, 166, 113, 125, 5, - 119, 78, 95, 34, 14, 6, 14, 163, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 208, - 0, 0, 0, 238, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 10, 5, 11, 217, 27, 12, 23, 175, - 84, 42, 55, 77, 173, 95, 89, 0, 201, 134, 117, 0, - 203, 150, 161, 0, 200, 151, 161, 0, 168, 83, 53, 0, - 217, 130, 88, 0, 171, 82, 67, 0, 108, 50, 62, 24, - 10, 4, 9, 177, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 209, - 0, 0, 0, 238, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 73, 31, 42, 96, 183, 96, 77, 0, 180, 123, 107, 30, - 201, 147, 131, 15, 218, 183, 141, 0, 217, 157, 84, 1, - 189, 117, 83, 22, 180, 92, 74, 0, 101, 46, 59, 37, - 2, 0, 1, 198, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 205, - 0, 0, 0, 225, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 111, 57, 68, 63, 215, 153, 138, 0, 155, 112, 104, 64, - 47, 23, 29, 187, 102, 67, 55, 115, 77, 44, 41, 119, - 148, 103, 100, 49, 207, 145, 147, 0, 104, 52, 61, 56, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 204, - 0, 0, 0, 217, 0, 0, 0, 246, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 18, 8, 13, 219, - 176, 138, 147, 29, 229, 204, 199, 0, 139, 106, 109, 89, - 0, 0, 0, 254, 0, 0, 0, 245, 17, 8, 11, 202, - 191, 165, 167, 25, 228, 210, 213, 0, 131, 93, 105, 54, - 0, 0, 0, 201, 0, 0, 0, 202, 0, 0, 0, 202, - 0, 0, 0, 202, 0, 0, 0, 202, 0, 0, 0, 212, - 0, 0, 0, 235, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 51, 36, 41, 183, - 226, 225, 225, 5, 231, 231, 231, 0, 158, 142, 148, 75, - 0, 0, 0, 255, 0, 0, 0, 254, 22, 12, 15, 221, - 173, 173, 173, 59, 197, 197, 197, 30, 118, 108, 111, 92, - 0, 0, 0, 204, 0, 0, 0, 203, 0, 0, 0, 203, - 0, 0, 0, 203, 0, 0, 0, 203, 0, 0, 0, 220, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 8, 7, 8, 246, - 86, 86, 86, 160, 107, 107, 107, 136, 35, 35, 35, 216, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 2, 2, 2, 232, 9, 9, 9, 199, 0, 0, 0, 215, - 0, 0, 0, 226, 0, 0, 0, 220, 0, 0, 0, 220, - 0, 0, 0, 214, 0, 0, 0, 205, 0, 0, 0, 224, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 229, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 249, 0, 0, 0, 249, 0, 0, 0, 247, - 0, 0, 0, 227, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 249, - 0, 0, 0, 221, 0, 0, 0, 207, 0, 0, 0, 229, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 227, 0, 0, 0, 212, 0, 0, 0, 230, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 231, 0, 0, 0, 222, 0, 0, 0, 239, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 245, 0, 0, 0, 240, 0, 0, 0, 247, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 250, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 28, 28, 28, 226, 34, 34, 34, 220, 34, 34, 34, 220, - 34, 34, 34, 220, 34, 34, 34, 220, 34, 34, 34, 220, - 34, 34, 34, 220, 15, 15, 15, 239, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 55, 55, 55, 189, - 44, 45, 45, 114, 28, 31, 32, 83, 36, 42, 43, 83, - 38, 45, 47, 83, 38, 45, 47, 83, 27, 30, 31, 83, - 28, 29, 30, 85, 62, 62, 62, 136, 22, 22, 22, 232, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 59, 59, 59, 148, - 127, 122, 98, 16, 12, 24, 26, 0, 18, 31, 34, 0, - 14, 26, 29, 0, 12, 23, 26, 0, 9, 19, 21, 0, - 23, 33, 34, 0, 106, 95, 73, 66, 57, 57, 57, 197, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 60, 60, 60, 142, - 175, 160, 127, 25, 117, 114, 93, 7, 174, 154, 118, 0, - 200, 173, 128, 0, 189, 161, 115, 0, 135, 116, 80, 0, - 76, 70, 55, 35, 127, 111, 79, 60, 58, 58, 58, 196, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 55, 55, 55, 194, 81, 76, 68, 99, - 232, 207, 156, 1, 198, 176, 143, 0, 194, 184, 170, 0, - 182, 177, 169, 0, 184, 178, 169, 0, 190, 175, 155, 0, - 181, 153, 112, 0, 133, 111, 75, 32, 71, 70, 69, 133, - 17, 17, 17, 237, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 29, 29, 29, 225, 74, 73, 69, 112, 213, 187, 139, 9, - 197, 185, 168, 0, 179, 178, 176, 0, 190, 190, 190, 0, - 158, 158, 157, 0, 171, 170, 169, 0, 159, 157, 156, 0, - 165, 160, 156, 0, 187, 163, 127, 0, 120, 102, 71, 45, - 71, 71, 71, 138, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 227, 0, 0, 0, 237, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 67, 67, 67, 161, 160, 144, 113, 43, 202, 181, 151, 0, - 192, 192, 192, 0, 208, 209, 209, 0, 197, 197, 197, 0, - 207, 208, 208, 0, 200, 200, 200, 0, 187, 187, 186, 0, - 139, 137, 140, 0, 151, 146, 141, 0, 196, 164, 117, 0, - 80, 73, 60, 78, 37, 37, 37, 174, 0, 0, 0, 204, - 0, 0, 0, 206, 0, 0, 0, 219, 0, 0, 0, 244, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 8, 8, 8, 246, - 72, 71, 69, 119, 221, 192, 144, 2, 189, 186, 182, 0, - 181, 182, 181, 0, 181, 186, 190, 0, 203, 205, 207, 0, - 214, 215, 215, 0, 211, 212, 212, 0, 184, 184, 186, 0, - 185, 185, 186, 0, 147, 144, 143, 0, 187, 169, 146, 0, - 126, 104, 68, 39, 75, 75, 75, 130, 2, 2, 2, 202, - 0, 0, 0, 207, 0, 0, 0, 218, 0, 0, 0, 242, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 22, 22, 22, 232, - 93, 89, 80, 98, 212, 186, 142, 0, 184, 183, 182, 0, - 206, 207, 207, 0, 210, 212, 213, 0, 183, 185, 189, 0, - 164, 171, 179, 0, 170, 172, 176, 0, 205, 206, 207, 0, - 214, 215, 215, 0, 165, 163, 162, 0, 181, 173, 162, 0, - 186, 153, 98, 10, 71, 63, 50, 77, 47, 47, 47, 166, - 0, 0, 0, 205, 0, 0, 0, 210, 0, 0, 0, 229, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 22, 22, 22, 232, - 93, 87, 77, 96, 210, 185, 141, 0, 164, 162, 160, 0, - 201, 202, 202, 0, 217, 219, 219, 0, 213, 214, 214, 0, - 150, 158, 168, 0, 189, 191, 193, 0, 213, 214, 214, 0, - 215, 216, 216, 0, 159, 157, 156, 0, 182, 174, 162, 0, - 194, 158, 100, 3, 87, 72, 51, 61, 52, 52, 52, 162, - 0, 0, 0, 204, 0, 0, 0, 205, 0, 0, 0, 212, - 0, 0, 0, 235, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 12, 12, 12, 242, - 73, 71, 67, 113, 213, 182, 130, 0, 178, 177, 175, 0, - 172, 172, 171, 0, 215, 216, 216, 0, 199, 199, 199, 0, - 183, 183, 182, 0, 181, 180, 179, 0, 211, 212, 212, 0, - 211, 212, 212, 0, 154, 152, 151, 0, 193, 181, 162, 0, - 127, 103, 67, 32, 68, 68, 68, 116, 12, 12, 12, 194, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 206, - 0, 0, 0, 220, 0, 0, 0, 246, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 66, 66, 66, 150, 162, 137, 94, 30, 185, 170, 150, 0, - 143, 141, 140, 0, 203, 203, 203, 0, 186, 186, 185, 0, - 169, 172, 180, 0, 182, 183, 185, 0, 197, 197, 197, 0, - 181, 180, 179, 0, 144, 140, 137, 0, 187, 161, 122, 0, - 82, 71, 52, 67, 50, 50, 50, 163, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 211, 0, 0, 0, 237, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 45, 45, 45, 209, 73, 66, 54, 97, 197, 165, 113, 2, - 177, 172, 165, 0, 138, 136, 136, 0, 166, 164, 164, 0, - 176, 175, 176, 0, 186, 185, 185, 0, 166, 164, 163, 0, - 164, 161, 160, 0, 182, 165, 143, 0, 140, 115, 75, 21, - 69, 68, 68, 110, 5, 5, 5, 199, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 207, 0, 0, 0, 223, 0, 0, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 69, 69, 69, 168, 94, 84, 64, 78, - 210, 181, 129, 1, 182, 167, 146, 0, 166, 162, 160, 0, - 154, 150, 147, 0, 155, 152, 151, 0, 175, 170, 164, 0, - 182, 161, 131, 0, 144, 118, 77, 15, 64, 61, 56, 93, - 34, 34, 34, 176, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 207, 0, 0, 0, 225, 0, 0, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 4, 4, 4, 250, 63, 63, 63, 139, - 179, 156, 111, 28, 156, 141, 103, 7, 199, 170, 120, 0, - 183, 156, 114, 0, 177, 149, 108, 0, 153, 126, 86, 0, - 101, 87, 62, 26, 104, 87, 60, 49, 66, 66, 66, 150, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 213, 0, 0, 0, 239, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 58, 58, 58, 145, - 135, 123, 89, 9, 6, 18, 21, 0, 14, 23, 23, 0, - 23, 23, 18, 0, 16, 16, 13, 0, 3, 10, 11, 0, - 18, 24, 21, 0, 103, 87, 60, 54, 53, 53, 53, 161, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 206, - 0, 0, 0, 223, 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 67, 67, 67, 165, - 31, 31, 29, 86, 1, 6, 8, 44, 6, 18, 21, 44, - 7, 22, 24, 44, 2, 8, 9, 43, 0, 2, 3, 41, - 7, 10, 10, 40, 49, 48, 46, 93, 35, 35, 35, 175, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 205, 0, 0, 0, 215, - 0, 0, 0, 238, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 4, 4, 4, 250, - 59, 59, 59, 187, 59, 59, 59, 180, 59, 59, 59, 180, - 59, 59, 59, 180, 59, 59, 59, 180, 59, 59, 59, 175, - 59, 59, 59, 159, 43, 43, 43, 170, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 205, 0, 0, 0, 211, 0, 0, 0, 233, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 233, 0, 0, 0, 212, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 207, 0, 0, 0, 218, 0, 0, 0, 243, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 237, 0, 0, 0, 212, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 206, 0, 0, 0, 220, 0, 0, 0, 246, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 250, 0, 0, 0, 238, 0, 0, 0, 233, - 0, 0, 0, 233, 0, 0, 0, 233, 0, 0, 0, 233, - 0, 0, 0, 234, 0, 0, 0, 242, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 237, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 65, - 0, 0, 0, 77, 0, 0, 0, 95, 0, 0, 0, 76, - 0, 0, 0, 195, 0, 0, 0, 209, 0, 0, 0, 105, - 0, 0, 0, 77, 0, 0, 0, 95, 0, 0, 0, 77, - 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 101, 136, 136, 136, 67, - 171, 171, 171, 79, 174, 174, 174, 80, 174, 174, 174, 80, - 103, 103, 103, 60, 87, 87, 87, 59, 171, 171, 171, 79, - 174, 174, 174, 80, 174, 174, 174, 80, 158, 158, 158, 75, - 5, 5, 5, 69, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 77, 158, 158, 158, 75, - 174, 174, 174, 80, 174, 174, 174, 80, 174, 174, 174, 80, - 174, 174, 174, 80, 174, 174, 174, 80, 174, 174, 174, 80, - 174, 174, 174, 80, 174, 174, 174, 80, 165, 165, 165, 78, - 5, 5, 5, 51, 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 245, 5, 5, 5, 67, - 10, 10, 10, 68, 8, 8, 8, 52, 105, 105, 105, 64, - 174, 174, 174, 80, 174, 174, 174, 80, 125, 125, 125, 66, - 10, 10, 10, 57, 10, 10, 10, 63, 8, 8, 8, 81, - 0, 0, 0, 215, 0, 0, 0, 253, 0, 0, 0, 253, - 0, 0, 0, 252, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 7, 7, 7, 56, - 174, 174, 174, 80, 174, 174, 174, 80, 17, 17, 17, 38, - 0, 0, 0, 218, 0, 0, 0, 214, 0, 0, 0, 210, - 0, 0, 0, 228, 0, 0, 0, 235, 0, 0, 0, 236, - 0, 0, 0, 231, 0, 0, 0, 229, 0, 0, 0, 230, - 0, 0, 0, 233, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 75, - 174, 174, 174, 80, 173, 173, 173, 79, 9, 9, 9, 53, - 0, 0, 0, 210, 0, 0, 0, 209, 0, 0, 0, 209, - 0, 0, 0, 209, 0, 0, 0, 211, 0, 0, 0, 212, - 0, 0, 0, 209, 0, 0, 0, 209, 0, 0, 0, 209, - 0, 0, 0, 212, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 59, - 174, 174, 174, 80, 173, 173, 173, 79, 12, 12, 12, 62, - 0, 0, 0, 212, 0, 0, 0, 207, 0, 0, 0, 206, - 0, 0, 0, 205, 0, 0, 0, 205, 0, 0, 0, 205, - 0, 0, 0, 205, 0, 0, 0, 206, 0, 0, 0, 207, - 0, 0, 0, 211, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 82, - 174, 174, 174, 80, 173, 173, 173, 80, 12, 12, 12, 66, - 0, 0, 0, 231, 0, 0, 0, 226, 0, 0, 0, 222, - 0, 0, 0, 211, 0, 0, 0, 205, 0, 0, 0, 205, - 0, 0, 0, 209, 0, 0, 0, 221, 0, 0, 0, 226, - 0, 0, 0, 230, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 65, - 174, 174, 174, 80, 174, 174, 174, 80, 10, 10, 10, 58, - 0, 0, 0, 251, 0, 0, 0, 250, 0, 0, 0, 244, - 0, 0, 0, 223, 0, 0, 0, 207, 0, 0, 0, 205, - 0, 0, 0, 219, 0, 0, 0, 242, 0, 0, 0, 249, - 0, 0, 0, 251, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 82, - 174, 174, 174, 80, 174, 174, 174, 80, 7, 7, 7, 48, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 229, 0, 0, 0, 208, 0, 0, 0, 207, - 0, 0, 0, 225, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 76, - 174, 174, 174, 80, 174, 174, 174, 80, 12, 12, 12, 73, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 75, - 174, 174, 174, 80, 174, 174, 174, 80, 13, 13, 13, 80, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 89, - 174, 174, 174, 80, 174, 174, 174, 80, 11, 11, 11, 65, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 89, - 174, 174, 174, 80, 174, 174, 174, 80, 8, 8, 8, 51, - 0, 0, 0, 237, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 69, - 174, 174, 174, 80, 174, 174, 174, 80, 12, 12, 12, 70, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 80, - 174, 174, 174, 80, 174, 174, 174, 80, 13, 13, 13, 80, - 0, 0, 0, 234, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 87, - 174, 174, 174, 80, 174, 174, 174, 80, 11, 11, 11, 64, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 87, - 174, 174, 174, 80, 174, 174, 174, 80, 12, 12, 12, 73, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 95, - 174, 174, 174, 80, 174, 174, 174, 80, 12, 12, 12, 73, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 9, 9, 9, 61, - 174, 174, 174, 80, 174, 174, 174, 80, 25, 25, 25, 55, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 229, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 245, 6, 6, 6, 78, - 7, 7, 7, 53, 10, 10, 10, 61, 105, 105, 105, 64, - 174, 174, 174, 80, 174, 174, 174, 80, 125, 125, 125, 66, - 12, 12, 12, 68, 9, 9, 9, 58, 6, 6, 6, 63, - 0, 0, 0, 210, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 84, 158, 158, 158, 75, - 174, 174, 174, 80, 174, 174, 174, 80, 174, 174, 174, 80, - 174, 174, 174, 80, 174, 174, 174, 80, 174, 174, 174, 80, - 174, 174, 174, 80, 174, 174, 174, 80, 150, 150, 150, 71, - 7, 7, 7, 62, 0, 0, 0, 209, 0, 0, 0, 207, - 0, 0, 0, 226, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 88, 147, 147, 147, 72, - 174, 174, 174, 80, 174, 174, 174, 80, 174, 174, 174, 80, - 103, 103, 103, 60, 87, 87, 87, 59, 171, 171, 171, 79, - 174, 174, 174, 80, 174, 174, 174, 80, 157, 157, 157, 74, - 8, 8, 8, 82, 0, 0, 0, 193, 0, 0, 0, 207, - 0, 0, 0, 225, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 81, - 0, 0, 0, 87, 0, 0, 0, 95, 0, 0, 0, 82, - 0, 0, 0, 195, 0, 0, 0, 209, 0, 0, 0, 81, - 0, 0, 0, 74, 0, 0, 0, 87, 0, 0, 0, 74, - 0, 0, 0, 198, 0, 0, 0, 205, 0, 0, 0, 205, - 0, 0, 0, 219, 0, 0, 0, 242, 0, 0, 0, 249, - 0, 0, 0, 251, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 245, - 0, 0, 0, 228, 0, 0, 0, 206, 0, 0, 0, 191, - 0, 0, 0, 211, 0, 0, 0, 205, 0, 0, 0, 205, - 0, 0, 0, 209, 0, 0, 0, 221, 0, 0, 0, 226, - 0, 0, 0, 230, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 234, - 0, 0, 0, 212, 0, 0, 0, 207, 0, 0, 0, 206, - 0, 0, 0, 205, 0, 0, 0, 205, 0, 0, 0, 205, - 0, 0, 0, 205, 0, 0, 0, 206, 0, 0, 0, 207, - 0, 0, 0, 211, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 235, - 0, 0, 0, 213, 0, 0, 0, 209, 0, 0, 0, 209, - 0, 0, 0, 209, 0, 0, 0, 211, 0, 0, 0, 212, - 0, 0, 0, 209, 0, 0, 0, 209, 0, 0, 0, 209, - 0, 0, 0, 212, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 247, - 0, 0, 0, 235, 0, 0, 0, 230, 0, 0, 0, 229, - 0, 0, 0, 231, 0, 0, 0, 235, 0, 0, 0, 236, - 0, 0, 0, 231, 0, 0, 0, 229, 0, 0, 0, 230, - 0, 0, 0, 233, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 252, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 252, 0, 0, 0, 253, 0, 0, 0, 253, - 0, 0, 0, 252, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 168, 0, 0, 0, 162, - 0, 0, 0, 246, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 168, 160, 160, 160, 64, 172, 172, 172, 64, - 12, 12, 12, 145, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 252, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 247, 0, 0, 0, 235, - 0, 0, 0, 234, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 234, 0, 0, 0, 214, - 0, 0, 0, 212, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 168, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 112, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 100, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 157, 0, 0, 0, 144, 0, 0, 0, 130, - 0, 0, 0, 129, 0, 0, 0, 169, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 168, 160, 160, 160, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 63, 190, 190, 190, 57, 189, 189, 189, 52, - 189, 189, 189, 52, 112, 112, 112, 57, 0, 0, 0, 213, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 162, 172, 172, 172, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 63, 190, 190, 190, 57, 189, 189, 189, 52, - 189, 189, 189, 52, 124, 124, 124, 57, 0, 0, 0, 207, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 246, 12, 12, 12, 145, - 23, 23, 23, 136, 23, 23, 23, 136, 23, 23, 23, 136, - 23, 23, 23, 136, 23, 23, 23, 136, 23, 23, 23, 135, - 23, 23, 23, 98, 189, 189, 189, 63, 189, 189, 189, 63, - 44, 44, 44, 89, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 131, 23, 23, 23, 121, 23, 23, 23, 110, - 23, 23, 23, 110, 5, 5, 5, 146, 0, 0, 0, 246, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 251, 0, 0, 0, 252, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 247, - 0, 0, 0, 147, 189, 189, 189, 58, 190, 190, 190, 57, - 23, 23, 23, 122, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 228, 0, 0, 0, 217, 0, 0, 0, 206, - 0, 0, 0, 205, 0, 0, 0, 215, 0, 0, 0, 227, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 237, - 0, 0, 0, 250, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 235, - 0, 0, 0, 135, 190, 190, 190, 52, 189, 189, 189, 52, - 23, 23, 23, 111, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 206, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 206, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 209, 0, 0, 0, 217, - 0, 0, 0, 241, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 234, - 0, 0, 0, 134, 189, 189, 189, 52, 189, 189, 189, 52, - 23, 23, 23, 110, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 206, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 205, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 208, 0, 0, 0, 216, - 0, 0, 0, 240, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 245, - 0, 0, 0, 146, 189, 189, 189, 57, 189, 189, 189, 57, - 23, 23, 23, 120, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 224, 0, 0, 0, 215, 0, 0, 0, 206, - 0, 0, 0, 205, 0, 0, 0, 214, 0, 0, 0, 224, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 227, 0, 0, 0, 234, - 0, 0, 0, 248, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 157, 189, 189, 189, 63, 189, 189, 189, 63, - 23, 23, 23, 133, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 246, 0, 0, 0, 227, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 224, 0, 0, 0, 245, - 0, 0, 0, 250, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 250, 0, 0, 0, 250, 0, 0, 0, 252, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 168, 160, 160, 160, 64, 172, 172, 172, 64, - 12, 12, 12, 145, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 168, 0, 0, 0, 162, - 0, 0, 0, 246, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 234, 0, 0, 0, 214, - 0, 0, 0, 212, 0, 0, 0, 231, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 247, 0, 0, 0, 235, - 0, 0, 0, 234, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 252, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 201, - 0, 0, 0, 201, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 192, 107, 107, 107, 67, - 107, 107, 107, 67, 0, 0, 0, 192, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 192, 107, 107, 107, 67, 190, 190, 190, 64, - 190, 190, 190, 64, 107, 107, 107, 67, 0, 0, 0, 192, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 192, - 107, 107, 107, 67, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 107, 107, 107, 67, - 0, 0, 0, 192, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 192, 107, 107, 107, 67, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 107, 107, 107, 67, 0, 0, 0, 192, 0, 0, 0, 250, - 0, 0, 0, 239, 0, 0, 0, 239, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 201, 107, 107, 107, 67, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 106, 106, 106, 65, 0, 0, 0, 184, - 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 234, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 204, 23, 23, 23, 136, 23, 23, 23, 136, - 23, 23, 23, 136, 23, 23, 23, 100, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 100, 23, 23, 23, 135, - 23, 23, 23, 132, 23, 23, 23, 122, 0, 0, 0, 170, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 215, - 0, 0, 0, 234, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 249, - 0, 0, 0, 234, 0, 0, 0, 215, 0, 0, 0, 206, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 206, - 0, 0, 0, 215, 0, 0, 0, 234, 0, 0, 0, 249, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 155, 0, 0, 0, 234, - 0, 0, 0, 215, 0, 0, 0, 206, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 206, 0, 0, 0, 215, 0, 0, 0, 234, - 0, 0, 0, 250, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 189, 189, 189, 64, 0, 0, 0, 148, 0, 0, 0, 218, - 0, 0, 0, 209, 0, 0, 0, 207, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 205, - 0, 0, 0, 207, 0, 0, 0, 209, 0, 0, 0, 218, - 0, 0, 0, 240, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 189, 189, 189, 64, 0, 0, 0, 150, 0, 0, 0, 229, - 0, 0, 0, 226, 0, 0, 0, 224, 0, 0, 0, 215, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 215, - 0, 0, 0, 224, 0, 0, 0, 226, 0, 0, 0, 229, - 0, 0, 0, 242, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 158, 0, 0, 0, 250, - 0, 0, 0, 250, 0, 0, 0, 246, 0, 0, 0, 227, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 227, - 0, 0, 0, 246, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 180, 68, 68, 68, 88, 71, 71, 71, 88, - 71, 71, 71, 88, 71, 71, 71, 76, 190, 190, 190, 64, - 190, 190, 190, 64, 71, 71, 71, 76, 71, 71, 71, 88, - 71, 71, 71, 88, 68, 68, 68, 87, 0, 0, 0, 160, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 225, 62, 62, 62, 82, 187, 187, 187, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 187, 187, 187, 64, 62, 62, 62, 80, 0, 0, 0, 202, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 230, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 225, 62, 62, 62, 82, - 187, 187, 187, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 187, 187, 187, 64, - 62, 62, 62, 82, 0, 0, 0, 221, 0, 0, 0, 229, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 229, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, - 62, 62, 62, 82, 187, 187, 187, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 186, 186, 186, 63, 61, 61, 61, 79, - 0, 0, 0, 216, 0, 0, 0, 243, 0, 0, 0, 225, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 225, - 0, 0, 0, 243, 0, 0, 0, 246, 0, 0, 0, 247, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 225, 62, 62, 62, 82, 187, 187, 187, 64, - 187, 187, 187, 63, 62, 62, 62, 76, 0, 0, 0, 197, - 0, 0, 0, 220, 0, 0, 0, 218, 0, 0, 0, 212, - 0, 0, 0, 205, 0, 0, 0, 205, 0, 0, 0, 212, - 0, 0, 0, 218, 0, 0, 0, 220, 0, 0, 0, 224, - 0, 0, 0, 240, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 225, 62, 62, 62, 82, - 62, 62, 62, 81, 0, 0, 0, 213, 0, 0, 0, 221, - 0, 0, 0, 208, 0, 0, 0, 206, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 205, - 0, 0, 0, 206, 0, 0, 0, 208, 0, 0, 0, 221, - 0, 0, 0, 242, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 234, - 0, 0, 0, 234, 0, 0, 0, 252, 0, 0, 0, 239, - 0, 0, 0, 219, 0, 0, 0, 207, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 207, 0, 0, 0, 219, 0, 0, 0, 239, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 251, - 0, 0, 0, 238, 0, 0, 0, 219, 0, 0, 0, 207, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 207, - 0, 0, 0, 219, 0, 0, 0, 238, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 238, 0, 0, 0, 219, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 219, - 0, 0, 0, 238, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 239, - 0, 0, 0, 221, 0, 0, 0, 221, 0, 0, 0, 239, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 244, 0, 0, 0, 244, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 20, 20, 20, 148, 15, 15, 15, 160, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 28, 28, 28, 128, 7, 7, 7, 177, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 246, 34, 34, 34, 122, - 168, 168, 168, 64, 36, 36, 36, 133, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 73, 73, 73, 95, 149, 149, 149, 64, - 16, 16, 16, 152, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 236, 52, 52, 52, 103, 179, 179, 179, 64, - 190, 190, 190, 64, 36, 36, 36, 133, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 253, 0, 0, 0, 254, - 0, 0, 0, 255, 73, 73, 73, 95, 190, 190, 190, 64, - 164, 164, 164, 64, 29, 29, 29, 128, 0, 0, 0, 249, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 222, - 75, 75, 75, 87, 186, 186, 186, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 87, 87, 87, 83, 63, 63, 63, 117, - 63, 63, 63, 117, 63, 63, 63, 117, 63, 63, 63, 116, - 63, 63, 63, 111, 63, 63, 63, 109, 63, 63, 63, 115, - 63, 63, 63, 117, 112, 112, 112, 73, 190, 190, 190, 64, - 190, 190, 190, 64, 176, 176, 176, 64, 47, 47, 47, 108, - 0, 0, 0, 238, 0, 0, 0, 239, 0, 0, 0, 234, - 0, 0, 0, 248, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 36, 36, 36, 106, - 187, 187, 187, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 63, 189, 189, 189, 59, - 189, 189, 189, 54, 189, 189, 189, 55, 189, 189, 189, 62, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 173, 173, 173, 64, - 11, 11, 11, 141, 0, 0, 0, 229, 0, 0, 0, 212, - 0, 0, 0, 225, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 234, - 56, 56, 56, 100, 181, 181, 181, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 70, 70, 70, 91, 42, 42, 42, 138, - 42, 42, 42, 133, 42, 42, 42, 122, 42, 42, 42, 113, - 42, 42, 42, 111, 42, 42, 42, 117, 42, 42, 42, 131, - 42, 42, 42, 136, 99, 99, 99, 75, 190, 190, 190, 63, - 190, 190, 190, 63, 167, 167, 167, 63, 32, 32, 32, 122, - 0, 0, 0, 241, 0, 0, 0, 226, 0, 0, 0, 207, - 0, 0, 0, 208, 0, 0, 0, 222, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 245, 37, 37, 37, 118, 170, 170, 170, 64, - 190, 190, 190, 64, 35, 35, 35, 133, 0, 0, 0, 247, - 0, 0, 0, 227, 0, 0, 0, 210, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 210, 0, 0, 0, 222, - 0, 0, 0, 226, 73, 73, 73, 84, 189, 189, 189, 57, - 151, 151, 151, 57, 18, 18, 18, 129, 0, 0, 0, 224, - 0, 0, 0, 224, 0, 0, 0, 214, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 207, 0, 0, 0, 219, - 0, 0, 0, 241, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 22, 22, 22, 141, - 156, 156, 156, 64, 36, 36, 36, 132, 0, 0, 0, 235, - 0, 0, 0, 211, 0, 0, 0, 205, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 205, 0, 0, 0, 206, - 0, 0, 0, 206, 73, 73, 73, 77, 131, 131, 131, 54, - 8, 8, 8, 140, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 205, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 207, - 0, 0, 0, 225, 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 10, 10, 10, 170, 11, 11, 11, 173, 0, 0, 0, 245, - 0, 0, 0, 224, 0, 0, 0, 209, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 209, 0, 0, 0, 219, - 0, 0, 0, 222, 20, 20, 20, 129, 2, 2, 2, 173, - 0, 0, 0, 222, 0, 0, 0, 222, 0, 0, 0, 222, - 0, 0, 0, 221, 0, 0, 0, 212, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 206, 0, 0, 0, 217, - 0, 0, 0, 238, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 247, 0, 0, 0, 227, 0, 0, 0, 210, - 0, 0, 0, 205, 0, 0, 0, 216, 0, 0, 0, 242, - 0, 0, 0, 250, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 247, 0, 0, 0, 226, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 220, 0, 0, 0, 241, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 249, 0, 0, 0, 231, - 0, 0, 0, 213, 0, 0, 0, 218, 0, 0, 0, 246, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 228, 0, 0, 0, 211, - 0, 0, 0, 223, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 236, 0, 0, 0, 231, 0, 0, 0, 249, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 237, 0, 0, 0, 231, - 0, 0, 0, 246, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 252, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 180, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 171, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 180, 139, 139, 139, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 157, 157, 157, 64, 5, 5, 5, 157, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 171, 157, 157, 157, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 172, 172, 172, 64, 8, 8, 8, 148, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 5, 5, 5, 157, - 23, 23, 23, 136, 23, 23, 23, 136, 23, 23, 23, 136, - 23, 23, 23, 136, 23, 23, 23, 136, 23, 23, 23, 135, - 23, 23, 23, 134, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 9, 9, 9, 144, 0, 0, 0, 242, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 251, 0, 0, 0, 252, 0, 0, 0, 252, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 248, - 0, 0, 0, 236, 0, 0, 0, 194, 0, 0, 0, 173, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 235, - 0, 0, 0, 247, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 236, - 0, 0, 0, 178, 83, 83, 83, 60, 127, 127, 127, 52, - 3, 3, 3, 140, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 213, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 195, - 83, 83, 83, 61, 189, 189, 189, 52, 189, 189, 189, 52, - 127, 127, 127, 52, 3, 3, 3, 139, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 212, - 0, 0, 0, 232, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 82, 82, 82, 71, - 190, 190, 190, 58, 189, 189, 189, 57, 189, 189, 189, 57, - 189, 189, 189, 57, 127, 127, 127, 57, 2, 2, 2, 150, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 224, - 0, 0, 0, 224, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 227, 0, 0, 0, 231, - 0, 0, 0, 245, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 210, 83, 83, 83, 73, 190, 190, 190, 64, - 189, 189, 189, 63, 186, 186, 186, 63, 189, 189, 189, 63, - 186, 186, 186, 63, 189, 189, 189, 63, 127, 127, 127, 63, - 3, 3, 3, 167, 0, 0, 0, 245, 0, 0, 0, 235, - 0, 0, 0, 233, 0, 0, 0, 243, 0, 0, 0, 249, - 0, 0, 0, 250, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 250, 0, 0, 0, 250, 0, 0, 0, 251, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 210, - 83, 83, 83, 73, 190, 190, 190, 64, 190, 190, 190, 64, - 83, 83, 83, 64, 166, 166, 166, 64, 190, 190, 190, 64, - 68, 68, 68, 64, 181, 181, 181, 64, 190, 190, 190, 64, - 127, 127, 127, 63, 3, 3, 3, 158, 0, 0, 0, 218, - 0, 0, 0, 215, 0, 0, 0, 231, 0, 0, 0, 248, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 210, 83, 83, 83, 73, - 190, 190, 190, 64, 190, 190, 190, 64, 83, 83, 83, 73, - 0, 0, 0, 139, 166, 166, 166, 64, 190, 190, 190, 64, - 23, 23, 23, 118, 44, 44, 44, 94, 180, 180, 180, 63, - 189, 189, 189, 59, 127, 127, 127, 54, 3, 3, 3, 139, - 0, 0, 0, 206, 0, 0, 0, 213, 0, 0, 0, 231, - 0, 0, 0, 248, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 210, 83, 83, 83, 73, 190, 190, 190, 64, - 190, 190, 190, 64, 83, 83, 83, 73, 0, 0, 0, 210, - 0, 0, 0, 183, 166, 166, 166, 64, 190, 190, 190, 64, - 23, 23, 23, 135, 0, 0, 0, 233, 44, 44, 44, 87, - 181, 181, 181, 54, 189, 189, 189, 52, 127, 127, 127, 51, - 2, 2, 2, 137, 0, 0, 0, 205, 0, 0, 0, 213, - 0, 0, 0, 231, 0, 0, 0, 248, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 213, - 83, 83, 83, 73, 190, 190, 190, 64, 190, 190, 190, 64, - 83, 83, 83, 73, 0, 0, 0, 210, 0, 0, 0, 255, - 0, 0, 0, 183, 166, 166, 166, 64, 190, 190, 190, 64, - 24, 24, 24, 132, 0, 0, 0, 236, 0, 0, 0, 202, - 44, 44, 44, 76, 180, 180, 180, 51, 189, 189, 189, 51, - 127, 127, 127, 51, 3, 3, 3, 139, 0, 0, 0, 205, - 0, 0, 0, 213, 0, 0, 0, 231, 0, 0, 0, 248, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 189, - 127, 127, 127, 64, 190, 190, 190, 64, 83, 83, 83, 73, - 0, 0, 0, 210, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 183, 166, 166, 166, 64, 189, 189, 189, 63, - 23, 23, 23, 124, 0, 0, 0, 217, 0, 0, 0, 207, - 0, 0, 0, 191, 44, 44, 44, 76, 180, 180, 180, 51, - 160, 160, 160, 51, 14, 14, 14, 115, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 213, 0, 0, 0, 231, - 0, 0, 0, 248, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 2, 2, 2, 171, 56, 56, 56, 73, 0, 0, 0, 210, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 183, 165, 165, 165, 63, 189, 189, 189, 59, - 23, 23, 23, 114, 0, 0, 0, 207, 0, 0, 0, 206, - 0, 0, 0, 214, 0, 0, 0, 202, 41, 41, 41, 77, - 17, 17, 17, 102, 0, 0, 0, 212, 0, 0, 0, 216, - 0, 0, 0, 208, 0, 0, 0, 206, 0, 0, 0, 213, - 0, 0, 0, 231, 0, 0, 0, 248, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 181, 166, 166, 166, 59, 190, 190, 190, 54, - 23, 23, 23, 109, 0, 0, 0, 207, 0, 0, 0, 217, - 0, 0, 0, 233, 0, 0, 0, 229, 0, 0, 0, 209, - 0, 0, 0, 207, 0, 0, 0, 223, 0, 0, 0, 235, - 0, 0, 0, 221, 0, 0, 0, 208, 0, 0, 0, 206, - 0, 0, 0, 213, 0, 0, 0, 231, 0, 0, 0, 248, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 175, 165, 165, 165, 55, 189, 189, 189, 52, - 23, 23, 23, 110, 0, 0, 0, 217, 0, 0, 0, 236, - 0, 0, 0, 248, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 247, - 0, 0, 0, 240, 0, 0, 0, 221, 0, 0, 0, 208, - 0, 0, 0, 206, 0, 0, 0, 214, 0, 0, 0, 235, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 173, 166, 166, 166, 54, 189, 189, 189, 52, - 23, 23, 23, 117, 0, 0, 0, 236, 0, 0, 0, 250, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 249, - 0, 0, 0, 252, 0, 0, 0, 241, 0, 0, 0, 221, - 0, 0, 0, 209, 0, 0, 0, 212, 0, 0, 0, 232, - 0, 0, 0, 251, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 180, 166, 166, 166, 58, 189, 189, 189, 56, - 24, 24, 24, 127, 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 241, - 0, 0, 0, 226, 0, 0, 0, 229, 0, 0, 0, 245, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 183, 165, 165, 165, 63, 189, 189, 189, 62, - 23, 23, 23, 134, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 248, 0, 0, 0, 249, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 183, 166, 166, 166, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 183, 166, 166, 166, 64, 190, 190, 190, 64, - 23, 23, 23, 136, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 228, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 204, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 233, 0, 0, 0, 210, - 0, 0, 0, 207, 0, 0, 0, 226, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 235, 0, 0, 0, 213, - 0, 0, 0, 211, 0, 0, 0, 229, 0, 0, 0, 250, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 245, 0, 0, 0, 233, - 0, 0, 0, 231, 0, 0, 0, 241, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 252, - 0, 0, 0, 252, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 207, - 0, 0, 0, 164, 0, 0, 0, 164, 0, 0, 0, 230, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 185, 185, 185, 64, 161, 161, 161, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 240, 0, 0, 0, 229, 0, 0, 0, 231, - 0, 0, 0, 244, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 228, 0, 0, 0, 210, 0, 0, 0, 213, - 0, 0, 0, 235, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 226, 0, 0, 0, 207, 0, 0, 0, 210, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 226, 0, 0, 0, 207, 0, 0, 0, 210, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 13, 13, 13, 137, - 35, 35, 35, 104, 0, 0, 0, 241, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 193, 47, 47, 47, 67, 1, 1, 1, 149, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 12, 12, 12, 148, 153, 153, 153, 64, - 177, 177, 177, 64, 37, 37, 37, 101, 0, 0, 0, 241, - 0, 0, 0, 255, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 213, - 73, 73, 73, 69, 187, 187, 187, 52, 117, 117, 117, 54, - 0, 0, 0, 180, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 5, 5, 5, 166, 136, 136, 136, 64, - 190, 190, 190, 64, 176, 176, 176, 64, 37, 37, 37, 101, - 0, 0, 0, 242, 0, 0, 0, 255, 23, 23, 23, 136, - 190, 190, 190, 64, 166, 166, 166, 64, 0, 0, 0, 183, - 0, 0, 0, 255, 0, 0, 0, 218, 72, 72, 72, 76, - 187, 187, 187, 57, 189, 189, 189, 52, 94, 94, 94, 58, - 0, 0, 0, 191, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 6, 6, 6, 159, - 137, 137, 137, 64, 190, 190, 190, 64, 176, 176, 176, 64, - 36, 36, 36, 101, 0, 0, 0, 242, 23, 23, 23, 135, - 189, 189, 189, 62, 165, 165, 165, 62, 0, 0, 0, 182, - 0, 0, 0, 218, 73, 73, 73, 77, 188, 188, 188, 63, - 189, 189, 189, 57, 95, 95, 95, 56, 0, 0, 0, 166, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 6, 6, 6, 159, 137, 137, 137, 64, 190, 190, 190, 64, - 176, 176, 176, 64, 36, 36, 36, 101, 23, 23, 23, 119, - 189, 189, 189, 57, 166, 166, 166, 56, 0, 0, 0, 140, - 71, 71, 71, 77, 188, 188, 188, 64, 189, 189, 189, 63, - 96, 96, 96, 61, 0, 0, 0, 162, 0, 0, 0, 210, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 6, 6, 6, 158, 138, 138, 138, 64, - 190, 190, 190, 64, 176, 176, 176, 63, 60, 60, 60, 58, - 190, 190, 190, 53, 166, 166, 166, 52, 71, 71, 71, 55, - 188, 188, 188, 60, 189, 189, 189, 63, 96, 96, 96, 68, - 0, 0, 0, 176, 0, 0, 0, 207, 0, 0, 0, 210, - 0, 0, 0, 233, 0, 0, 0, 252, 0, 0, 0, 250, - 0, 0, 0, 235, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 6, 6, 6, 157, - 138, 138, 138, 64, 189, 189, 189, 63, 182, 182, 182, 59, - 190, 190, 190, 54, 185, 185, 185, 51, 187, 187, 187, 52, - 189, 189, 189, 55, 97, 97, 97, 65, 0, 0, 0, 192, - 0, 0, 0, 226, 0, 0, 0, 207, 0, 0, 0, 210, - 0, 0, 0, 233, 0, 0, 0, 247, 0, 0, 0, 235, - 0, 0, 0, 216, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 6, 6, 6, 157, 138, 138, 138, 64, 189, 189, 189, 62, - 190, 190, 190, 58, 189, 189, 189, 54, 189, 189, 189, 51, - 97, 97, 97, 56, 0, 0, 0, 172, 0, 0, 0, 234, - 0, 0, 0, 223, 0, 0, 0, 207, 0, 0, 0, 209, - 0, 0, 0, 228, 0, 0, 0, 232, 0, 0, 0, 216, - 0, 0, 0, 206, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 6, 6, 6, 156, 139, 139, 139, 64, - 189, 189, 189, 62, 190, 190, 190, 58, 98, 98, 98, 58, - 0, 0, 0, 160, 0, 0, 0, 208, 0, 0, 0, 216, - 0, 0, 0, 214, 0, 0, 0, 206, 0, 0, 0, 207, - 0, 0, 0, 216, 0, 0, 0, 214, 0, 0, 0, 206, - 0, 0, 0, 207, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 7, 7, 7, 155, - 139, 139, 139, 64, 99, 99, 99, 67, 0, 0, 0, 180, - 0, 0, 0, 214, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 204, 0, 0, 0, 205, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 207, - 0, 0, 0, 217, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 4, 4, 4, 172, 0, 0, 0, 200, 0, 0, 0, 248, - 0, 0, 0, 232, 0, 0, 0, 214, 0, 0, 0, 206, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 204, 0, 0, 0, 207, 0, 0, 0, 217, - 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 2, 2, 2, 165, 5, 5, 5, 153, - 5, 5, 5, 153, 5, 5, 5, 153, 5, 5, 5, 153, - 5, 5, 5, 153, 5, 5, 5, 153, 5, 5, 5, 153, - 5, 5, 5, 153, 5, 5, 5, 153, 5, 5, 5, 153, - 5, 5, 5, 148, 5, 5, 5, 137, 6, 6, 6, 127, - 6, 6, 6, 123, 5, 5, 5, 122, 5, 5, 5, 122, - 1, 1, 1, 141, 0, 0, 0, 217, 0, 0, 0, 237, - 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 6, 6, 6, 154, 161, 161, 161, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 62, 190, 190, 190, 58, - 189, 189, 189, 54, 189, 189, 189, 51, 189, 189, 189, 52, - 143, 143, 143, 54, 0, 0, 0, 167, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 8, 8, 8, 149, 169, 169, 169, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 189, 189, 189, 62, - 190, 190, 190, 58, 190, 190, 190, 54, 189, 189, 189, 55, - 153, 153, 153, 59, 0, 0, 0, 171, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 247, 7, 7, 7, 152, 19, 19, 19, 140, - 19, 19, 19, 140, 19, 19, 19, 140, 19, 19, 19, 140, - 19, 19, 19, 140, 19, 19, 19, 139, 19, 19, 19, 137, - 19, 19, 19, 136, 19, 19, 19, 136, 19, 19, 19, 136, - 19, 19, 19, 136, 19, 19, 19, 135, 19, 19, 19, 135, - 19, 19, 19, 133, 19, 19, 19, 129, 19, 19, 19, 130, - 4, 4, 4, 154, 0, 0, 0, 247, 0, 0, 0, 250, - 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 245, 0, 0, 0, 231, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 225, 0, 0, 0, 223, 0, 0, 0, 224, - 0, 0, 0, 225, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 251, 0, 0, 0, 232, 0, 0, 0, 212, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 231, - 0, 0, 0, 228, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 204, 92, 92, 92, 68, - 106, 106, 106, 65, 0, 0, 0, 188, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 224, 0, 0, 0, 213, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 212, 79, 79, 79, 77, 105, 105, 105, 68, - 1, 1, 1, 191, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 253, 0, 0, 0, 205, - 88, 88, 88, 73, 189, 189, 189, 64, 188, 188, 188, 64, - 45, 45, 45, 85, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 250, - 0, 0, 0, 239, 0, 0, 0, 184, 98, 98, 98, 68, - 189, 189, 189, 64, 187, 187, 187, 64, 68, 68, 68, 82, - 0, 0, 0, 220, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 253, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 238, - 1, 1, 1, 162, 108, 108, 108, 57, 190, 190, 190, 58, - 184, 184, 184, 63, 60, 60, 60, 86, 0, 0, 0, 226, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 250, 0, 0, 0, 239, - 0, 0, 0, 235, 0, 0, 0, 247, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 2, 2, 2, 166, - 117, 117, 117, 54, 189, 189, 189, 52, 181, 181, 181, 56, - 52, 52, 52, 90, 0, 0, 0, 231, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 249, 0, 0, 0, 234, 0, 0, 0, 216, - 0, 0, 0, 213, 0, 0, 0, 229, 0, 0, 0, 249, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 3, 3, 3, 170, 126, 126, 126, 59, - 190, 190, 190, 52, 178, 178, 178, 52, 44, 44, 44, 86, - 0, 0, 0, 231, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 249, - 0, 0, 0, 233, 0, 0, 0, 214, 0, 0, 0, 206, - 0, 0, 0, 208, 0, 0, 0, 225, 0, 0, 0, 247, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 6, 6, 6, 161, 135, 135, 135, 63, 190, 190, 190, 58, - 185, 185, 185, 52, 70, 70, 70, 52, 33, 33, 33, 104, - 33, 33, 33, 128, 33, 33, 33, 132, 33, 33, 33, 132, - 32, 32, 32, 131, 32, 32, 32, 129, 32, 32, 32, 121, - 32, 32, 32, 112, 33, 33, 33, 106, 32, 32, 32, 107, - 32, 32, 32, 112, 30, 30, 30, 123, 0, 0, 0, 209, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 178, - 140, 140, 140, 64, 190, 190, 190, 63, 190, 190, 190, 58, - 190, 190, 190, 52, 189, 189, 189, 52, 189, 189, 189, 56, - 189, 189, 189, 62, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 62, 189, 189, 189, 58, 190, 190, 190, 53, - 189, 189, 189, 51, 189, 189, 189, 52, 189, 189, 189, 56, - 190, 190, 190, 60, 175, 175, 175, 63, 0, 0, 0, 174, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 224, - 64, 64, 64, 84, 186, 186, 186, 63, 190, 190, 190, 58, - 185, 185, 185, 52, 136, 136, 136, 52, 136, 136, 136, 56, - 135, 135, 135, 62, 135, 135, 135, 64, 135, 135, 135, 62, - 135, 135, 135, 58, 135, 135, 135, 53, 135, 135, 135, 51, - 135, 135, 135, 52, 135, 135, 135, 56, 135, 135, 135, 61, - 135, 135, 135, 63, 125, 125, 125, 64, 0, 0, 0, 175, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 229, 56, 56, 56, 88, 183, 183, 183, 58, - 190, 190, 190, 52, 112, 112, 112, 52, 1, 1, 1, 132, - 0, 0, 0, 212, 0, 0, 0, 211, 0, 0, 0, 195, - 0, 0, 0, 181, 0, 0, 0, 176, 0, 0, 0, 177, - 0, 0, 0, 186, 0, 0, 0, 201, 0, 0, 0, 209, - 0, 0, 0, 210, 0, 0, 0, 211, 0, 0, 0, 238, - 0, 0, 0, 246, 0, 0, 0, 246, 0, 0, 0, 246, - 0, 0, 0, 246, 0, 0, 0, 247, 0, 0, 0, 247, - 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 232, 47, 47, 47, 87, - 180, 180, 180, 52, 189, 189, 189, 52, 122, 122, 122, 57, - 3, 3, 3, 166, 0, 0, 0, 227, 0, 0, 0, 211, - 0, 0, 0, 205, 0, 0, 0, 204, 0, 0, 0, 205, - 0, 0, 0, 211, 0, 0, 0, 217, 0, 0, 0, 219, - 0, 0, 0, 219, 0, 0, 0, 219, 0, 0, 0, 219, - 0, 0, 0, 219, 0, 0, 0, 219, 0, 0, 0, 219, - 0, 0, 0, 219, 0, 0, 0, 219, 0, 0, 0, 222, - 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 218, - 40, 40, 40, 83, 176, 176, 176, 52, 189, 189, 189, 56, - 130, 130, 130, 59, 5, 5, 5, 139, 0, 0, 0, 205, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 205, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 209, - 0, 0, 0, 230, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 199, 34, 34, 34, 86, 172, 172, 172, 56, - 189, 189, 189, 60, 137, 137, 137, 57, 8, 8, 8, 127, - 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 205, - 0, 0, 0, 210, 0, 0, 0, 215, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 217, - 0, 0, 0, 217, 0, 0, 0, 217, 0, 0, 0, 220, - 0, 0, 0, 236, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 209, 0, 0, 0, 199, 28, 28, 28, 99, - 168, 168, 168, 62, 190, 190, 190, 61, 145, 145, 145, 57, - 11, 11, 11, 120, 0, 0, 0, 205, 0, 0, 0, 206, - 0, 0, 0, 217, 0, 0, 0, 234, 0, 0, 0, 242, - 0, 0, 0, 244, 0, 0, 0, 244, 0, 0, 0, 244, - 0, 0, 0, 244, 0, 0, 0, 244, 0, 0, 0, 244, - 0, 0, 0, 244, 0, 0, 0, 244, 0, 0, 0, 245, - 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 158, 190, 190, 190, 64, - 190, 190, 190, 64, 20, 20, 20, 139, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 209, 0, 0, 0, 206, 0, 0, 0, 218, - 23, 23, 23, 118, 162, 162, 162, 64, 175, 175, 175, 62, - 35, 35, 35, 94, 0, 0, 0, 211, 0, 0, 0, 205, - 0, 0, 0, 209, 0, 0, 0, 224, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 1, 1, 1, 160, 181, 181, 181, 64, - 187, 187, 187, 64, 14, 14, 14, 141, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 209, 0, 0, 0, 206, 0, 0, 0, 224, - 0, 0, 0, 245, 19, 19, 19, 133, 32, 32, 32, 113, - 0, 0, 0, 235, 0, 0, 0, 229, 0, 0, 0, 212, - 0, 0, 0, 206, 0, 0, 0, 209, 0, 0, 0, 224, - 0, 0, 0, 243, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 235, 36, 36, 36, 110, - 43, 43, 43, 103, 0, 0, 0, 225, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 209, 0, 0, 0, 206, 0, 0, 0, 224, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 247, 0, 0, 0, 230, - 0, 0, 0, 212, 0, 0, 0, 206, 0, 0, 0, 209, - 0, 0, 0, 223, 0, 0, 0, 242, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 232, - 0, 0, 0, 209, 0, 0, 0, 206, 0, 0, 0, 224, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 248, - 0, 0, 0, 231, 0, 0, 0, 213, 0, 0, 0, 206, - 0, 0, 0, 209, 0, 0, 0, 226, 0, 0, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 233, - 0, 0, 0, 209, 0, 0, 0, 207, 0, 0, 0, 224, - 0, 0, 0, 249, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 248, 0, 0, 0, 232, 0, 0, 0, 214, - 0, 0, 0, 211, 0, 0, 0, 228, 0, 0, 0, 248, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 236, - 0, 0, 0, 214, 0, 0, 0, 210, 0, 0, 0, 229, - 0, 0, 0, 250, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 249, 0, 0, 0, 236, - 0, 0, 0, 233, 0, 0, 0, 245, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 247, - 0, 0, 0, 234, 0, 0, 0, 231, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 173, - 0, 0, 0, 182, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 191, 0, 0, 0, 215, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 5, 5, 5, 158, 155, 155, 155, 64, - 137, 137, 137, 64, 0, 0, 0, 181, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 174, - 125, 125, 125, 64, 80, 80, 80, 74, 0, 0, 0, 212, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 57, 57, 57, 72, - 190, 190, 190, 64, 189, 189, 189, 64, 79, 79, 79, 74, - 0, 0, 0, 213, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 207, - 87, 87, 87, 72, 190, 190, 190, 64, 189, 189, 189, 64, - 79, 79, 79, 74, 0, 0, 0, 213, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 252, 0, 0, 0, 253, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 207, 87, 87, 87, 72, 190, 190, 190, 64, - 189, 189, 189, 64, 78, 78, 78, 75, 0, 0, 0, 213, - 0, 0, 0, 247, 0, 0, 0, 236, 0, 0, 0, 238, - 0, 0, 0, 250, 23, 23, 23, 135, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 160, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 206, 89, 89, 89, 71, - 190, 190, 190, 64, 189, 189, 189, 64, 78, 78, 78, 73, - 0, 0, 0, 193, 0, 0, 0, 214, 0, 0, 0, 216, - 0, 0, 0, 234, 23, 23, 23, 132, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 206, - 89, 89, 89, 71, 190, 190, 190, 64, 189, 189, 189, 62, - 77, 77, 77, 66, 0, 0, 0, 174, 0, 0, 0, 206, - 0, 0, 0, 215, 23, 23, 23, 123, 189, 189, 189, 63, - 190, 190, 190, 64, 0, 0, 0, 160, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 232, 0, 0, 0, 190, 0, 0, 0, 190, - 0, 0, 0, 190, 0, 0, 0, 190, 0, 0, 0, 190, - 0, 0, 0, 190, 0, 0, 0, 190, 0, 0, 0, 190, - 0, 0, 0, 190, 0, 0, 0, 190, 0, 0, 0, 190, - 0, 0, 0, 141, 90, 90, 90, 64, 190, 190, 190, 63, - 188, 188, 188, 60, 76, 76, 76, 64, 0, 0, 0, 174, - 0, 0, 0, 206, 23, 23, 23, 113, 189, 189, 189, 59, - 189, 189, 189, 63, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 160, 158, 158, 158, 64, 158, 158, 158, 64, - 158, 158, 158, 64, 158, 158, 158, 64, 158, 158, 158, 64, - 158, 158, 158, 64, 158, 158, 158, 64, 158, 158, 158, 64, - 158, 158, 158, 64, 158, 158, 158, 64, 158, 158, 158, 64, - 158, 158, 158, 64, 158, 158, 158, 64, 187, 187, 187, 64, - 189, 189, 189, 63, 188, 188, 188, 60, 76, 76, 76, 64, - 0, 0, 0, 176, 23, 23, 23, 109, 190, 190, 190, 54, - 189, 189, 189, 59, 0, 0, 0, 157, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 63, 132, 132, 132, 60, - 0, 0, 0, 158, 23, 23, 23, 110, 189, 189, 189, 52, - 190, 190, 190, 54, 0, 0, 0, 149, 0, 0, 0, 250, - 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 200, 32, 32, 32, 127, 32, 32, 32, 127, - 32, 32, 32, 127, 32, 32, 32, 127, 32, 32, 32, 127, - 32, 32, 32, 126, 32, 32, 32, 126, 32, 32, 32, 124, - 32, 32, 32, 124, 32, 32, 32, 124, 32, 32, 32, 124, - 32, 32, 32, 110, 71, 71, 71, 63, 187, 187, 187, 63, - 189, 189, 189, 63, 134, 134, 134, 63, 4, 4, 4, 157, - 0, 0, 0, 234, 23, 23, 23, 116, 189, 189, 189, 51, - 189, 189, 189, 52, 0, 0, 0, 136, 0, 0, 0, 235, - 0, 0, 0, 250, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 244, 0, 0, 0, 233, - 0, 0, 0, 231, 0, 0, 0, 231, 0, 0, 0, 219, - 38, 38, 38, 92, 176, 176, 176, 58, 190, 190, 190, 58, - 134, 134, 134, 58, 5, 5, 5, 145, 0, 0, 0, 231, - 0, 0, 0, 227, 23, 23, 23, 116, 189, 189, 189, 52, - 189, 189, 189, 51, 0, 0, 0, 129, 0, 0, 0, 216, - 0, 0, 0, 234, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 232, 0, 0, 0, 212, - 0, 0, 0, 209, 0, 0, 0, 197, 37, 37, 37, 82, - 177, 177, 177, 52, 190, 190, 190, 52, 135, 135, 135, 52, - 5, 5, 5, 131, 0, 0, 0, 209, 0, 0, 0, 209, - 0, 0, 0, 208, 23, 23, 23, 110, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 128, 0, 0, 0, 206, - 0, 0, 0, 217, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 232, 0, 0, 0, 211, - 0, 0, 0, 196, 37, 37, 37, 81, 176, 176, 176, 52, - 189, 189, 189, 52, 135, 135, 135, 52, 5, 5, 5, 131, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 207, 23, 23, 23, 110, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 128, 0, 0, 0, 206, - 0, 0, 0, 216, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 242, 0, 0, 0, 218, - 36, 36, 36, 89, 177, 177, 177, 57, 190, 190, 190, 57, - 136, 136, 136, 57, 5, 5, 5, 145, 0, 0, 0, 228, - 0, 0, 0, 228, 0, 0, 0, 228, 0, 0, 0, 228, - 0, 0, 0, 225, 24, 24, 24, 115, 189, 189, 189, 52, - 189, 189, 189, 51, 0, 0, 0, 129, 0, 0, 0, 214, - 0, 0, 0, 232, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 35, 35, 35, 99, - 176, 176, 176, 63, 189, 189, 189, 63, 136, 136, 136, 63, - 6, 6, 6, 157, 0, 0, 0, 250, 0, 0, 0, 250, - 0, 0, 0, 250, 0, 0, 0, 250, 0, 0, 0, 247, - 0, 0, 0, 235, 23, 23, 23, 116, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 135, 0, 0, 0, 232, - 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 24, 24, 24, 117, - 167, 167, 167, 64, 137, 137, 137, 64, 6, 6, 6, 159, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 239, - 0, 0, 0, 220, 23, 23, 23, 111, 189, 189, 189, 51, - 189, 189, 189, 54, 0, 0, 0, 147, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 249, - 21, 21, 21, 128, 6, 6, 6, 161, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 240, 0, 0, 0, 220, - 0, 0, 0, 208, 10, 10, 10, 116, 176, 176, 176, 54, - 163, 163, 163, 58, 0, 0, 0, 165, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 240, 0, 0, 0, 220, 0, 0, 0, 208, - 0, 0, 0, 206, 0, 0, 0, 202, 17, 17, 17, 123, - 13, 13, 13, 140, 0, 0, 0, 248, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 248, - 0, 0, 0, 226, 0, 0, 0, 208, 0, 0, 0, 206, - 0, 0, 0, 214, 0, 0, 0, 232, 0, 0, 0, 248, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 249, - 0, 0, 0, 229, 0, 0, 0, 212, 0, 0, 0, 214, - 0, 0, 0, 232, 0, 0, 0, 248, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 246, 0, 0, 0, 233, 0, 0, 0, 236, - 0, 0, 0, 249, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 251, 0, 0, 0, 252, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 180, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 159, 0, 0, 0, 159, - 0, 0, 0, 159, 0, 0, 0, 168, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 177, 142, 142, 142, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 160, 160, 160, 64, 0, 0, 0, 168, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 172, 172, 172, 64, 0, 0, 0, 162, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 44, 44, 44, 91, 23, 23, 23, 136, - 23, 23, 23, 136, 23, 23, 23, 136, 23, 23, 23, 135, - 23, 23, 23, 134, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 23, 23, 23, 133, 23, 23, 23, 133, - 23, 23, 23, 133, 12, 12, 12, 141, 0, 0, 0, 242, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 251, 0, 0, 0, 252, 0, 0, 0, 252, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 248, - 0, 0, 0, 236, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 234, - 0, 0, 0, 247, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 216, 0, 0, 0, 158, 0, 0, 0, 148, - 0, 0, 0, 135, 0, 0, 0, 131, 0, 0, 0, 131, - 0, 0, 0, 131, 0, 0, 0, 131, 0, 0, 0, 131, - 0, 0, 0, 131, 0, 0, 0, 131, 0, 0, 0, 131, - 0, 0, 0, 131, 0, 0, 0, 177, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 214, - 0, 0, 0, 235, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 189, 189, 189, 58, - 190, 190, 190, 52, 189, 189, 189, 51, 189, 189, 189, 51, - 189, 189, 189, 52, 189, 189, 189, 52, 189, 189, 189, 52, - 189, 189, 189, 52, 189, 189, 189, 52, 189, 189, 189, 52, - 189, 189, 189, 52, 0, 0, 0, 129, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 212, - 0, 0, 0, 234, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 189, 189, 189, 52, 189, 189, 189, 51, 189, 189, 189, 54, - 189, 189, 189, 56, 189, 189, 189, 57, 189, 189, 189, 57, - 189, 189, 189, 57, 189, 189, 189, 57, 189, 189, 189, 57, - 189, 189, 189, 57, 0, 0, 0, 141, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 231, - 0, 0, 0, 245, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 189, 189, 189, 52, 171, 171, 171, 52, 29, 29, 29, 59, - 0, 0, 0, 146, 0, 0, 0, 156, 0, 0, 0, 154, - 0, 0, 0, 154, 0, 0, 0, 154, 0, 0, 0, 154, - 0, 0, 0, 154, 0, 0, 0, 209, 0, 0, 0, 246, - 0, 0, 0, 246, 0, 0, 0, 246, 0, 0, 0, 246, - 0, 0, 0, 246, 0, 0, 0, 246, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 172, 172, 172, 52, 189, 189, 189, 52, 171, 171, 171, 57, - 29, 29, 29, 106, 0, 0, 0, 234, 0, 0, 0, 232, - 0, 0, 0, 230, 0, 0, 0, 229, 0, 0, 0, 229, - 0, 0, 0, 229, 0, 0, 0, 229, 0, 0, 0, 229, - 0, 0, 0, 229, 0, 0, 0, 229, 0, 0, 0, 229, - 0, 0, 0, 230, 0, 0, 0, 232, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 29, 29, 29, 55, 171, 171, 171, 52, 189, 189, 189, 57, - 171, 171, 171, 62, 29, 29, 29, 98, 0, 0, 0, 204, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 212, 0, 0, 0, 232, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 122, 29, 29, 29, 88, 171, 171, 171, 57, - 189, 189, 189, 62, 172, 172, 172, 57, 30, 30, 30, 88, - 0, 0, 0, 197, 0, 0, 0, 204, 0, 0, 0, 204, - 0, 0, 0, 205, 0, 0, 0, 207, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 212, 0, 0, 0, 232, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 200, 29, 29, 29, 95, - 171, 171, 171, 62, 190, 190, 190, 57, 172, 172, 172, 52, - 29, 29, 29, 87, 0, 0, 0, 197, 0, 0, 0, 204, - 0, 0, 0, 208, 0, 0, 0, 219, 0, 0, 0, 228, - 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 230, 0, 0, 0, 232, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 207, 0, 0, 0, 218, - 29, 29, 29, 105, 172, 172, 172, 57, 189, 189, 189, 52, - 172, 172, 172, 51, 29, 29, 29, 87, 0, 0, 0, 197, - 0, 0, 0, 207, 0, 0, 0, 220, 0, 0, 0, 239, - 0, 0, 0, 249, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 251, 0, 0, 0, 252, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 237, 29, 29, 29, 99, 172, 172, 172, 52, - 189, 189, 189, 51, 172, 172, 172, 52, 29, 29, 29, 88, - 0, 0, 0, 198, 0, 0, 0, 209, 0, 0, 0, 223, - 0, 0, 0, 243, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 222, 29, 29, 29, 89, - 172, 172, 172, 52, 189, 189, 189, 55, 171, 171, 171, 55, - 30, 30, 30, 88, 0, 0, 0, 198, 0, 0, 0, 209, - 0, 0, 0, 223, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 229, 0, 0, 0, 201, - 30, 30, 30, 88, 171, 171, 171, 57, 189, 189, 189, 60, - 163, 163, 163, 56, 3, 3, 3, 120, 0, 0, 0, 205, - 0, 0, 0, 209, 0, 0, 0, 223, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 23, 23, 23, 136, 0, 0, 0, 255, - 0, 0, 0, 159, 189, 189, 189, 63, 190, 190, 190, 57, - 0, 0, 0, 129, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 229, 0, 0, 0, 208, - 0, 0, 0, 201, 29, 29, 29, 96, 163, 163, 163, 62, - 44, 44, 44, 89, 0, 0, 0, 208, 0, 0, 0, 209, - 0, 0, 0, 205, 0, 0, 0, 209, 0, 0, 0, 223, - 0, 0, 0, 243, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 162, 172, 172, 172, 64, - 181, 181, 181, 64, 14, 14, 14, 139, 0, 0, 0, 255, - 0, 0, 0, 216, 0, 0, 0, 157, 0, 0, 0, 144, - 0, 0, 0, 176, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 229, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 221, 3, 3, 3, 145, - 0, 0, 0, 235, 0, 0, 0, 243, 0, 0, 0, 223, - 0, 0, 0, 209, 0, 0, 0, 205, 0, 0, 0, 209, - 0, 0, 0, 223, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 246, 12, 12, 12, 145, - 14, 14, 14, 139, 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 229, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 230, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 243, - 0, 0, 0, 223, 0, 0, 0, 209, 0, 0, 0, 205, - 0, 0, 0, 209, 0, 0, 0, 224, 0, 0, 0, 244, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 230, 0, 0, 0, 208, - 0, 0, 0, 208, 0, 0, 0, 230, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 243, 0, 0, 0, 223, 0, 0, 0, 209, - 0, 0, 0, 205, 0, 0, 0, 213, 0, 0, 0, 235, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 230, - 0, 0, 0, 208, 0, 0, 0, 207, 0, 0, 0, 226, - 0, 0, 0, 246, 0, 0, 0, 232, 0, 0, 0, 212, - 0, 0, 0, 212, 0, 0, 0, 232, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 243, 0, 0, 0, 224, - 0, 0, 0, 213, 0, 0, 0, 222, 0, 0, 0, 242, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 233, - 0, 0, 0, 212, 0, 0, 0, 211, 0, 0, 0, 230, - 0, 0, 0, 249, 0, 0, 0, 243, 0, 0, 0, 232, - 0, 0, 0, 232, 0, 0, 0, 243, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 244, - 0, 0, 0, 235, 0, 0, 0, 242, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 245, - 0, 0, 0, 232, 0, 0, 0, 230, 0, 0, 0, 243, - 0, 0, 0, 253, 0, 0, 0, 253, 0, 0, 0, 252, - 0, 0, 0, 252, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 251, 0, 0, 0, 251, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 242, 2, 2, 2, 158, 3, 3, 3, 156, - 3, 3, 3, 156, 3, 3, 3, 156, 3, 3, 3, 156, - 3, 3, 3, 156, 3, 3, 3, 156, 3, 3, 3, 156, - 3, 3, 3, 156, 3, 3, 3, 156, 3, 3, 3, 156, - 3, 3, 3, 156, 3, 3, 3, 156, 3, 3, 3, 156, - 3, 3, 3, 156, 3, 3, 3, 156, 3, 3, 3, 156, - 1, 1, 1, 183, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 16, 16, 16, 137, 176, 176, 176, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 128, 128, 128, 64, 0, 0, 0, 197, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 18, 18, 18, 134, 180, 180, 180, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 172, 172, 172, 64, 0, 0, 0, 178, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 237, 11, 11, 11, 145, 17, 17, 17, 143, - 17, 17, 17, 143, 17, 17, 17, 143, 17, 17, 17, 143, - 17, 17, 17, 143, 17, 17, 17, 143, 17, 17, 17, 142, - 16, 16, 16, 142, 16, 16, 16, 141, 16, 16, 16, 141, - 16, 16, 16, 141, 16, 16, 16, 141, 16, 16, 16, 141, - 16, 16, 16, 141, 53, 53, 53, 86, 189, 189, 189, 64, - 172, 172, 172, 64, 0, 0, 0, 176, 0, 0, 0, 253, - 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 249, 0, 0, 0, 239, - 0, 0, 0, 236, 0, 0, 0, 236, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 40, 40, 40, 110, 189, 189, 189, 59, - 172, 172, 172, 59, 0, 0, 0, 164, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 207, 10, 10, 10, 150, - 10, 10, 10, 150, 10, 10, 10, 150, 10, 10, 10, 150, - 10, 10, 10, 148, 10, 10, 10, 139, 10, 10, 10, 128, - 10, 10, 10, 125, 10, 10, 10, 125, 10, 10, 10, 125, - 10, 10, 10, 125, 9, 9, 9, 125, 0, 0, 0, 182, - 0, 0, 0, 211, 40, 40, 40, 99, 189, 189, 189, 53, - 172, 172, 172, 53, 0, 0, 0, 147, 0, 0, 0, 211, - 0, 0, 0, 211, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 7, 7, 7, 152, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 189, 189, 189, 63, 190, 190, 190, 58, 189, 189, 189, 53, - 189, 189, 189, 52, 189, 189, 189, 51, 189, 189, 189, 51, - 189, 189, 189, 51, 175, 175, 175, 51, 0, 0, 0, 141, - 0, 0, 0, 206, 40, 40, 40, 96, 189, 189, 189, 51, - 172, 172, 172, 51, 0, 0, 0, 143, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 6, 6, 6, 152, 176, 176, 176, 64, - 176, 176, 176, 64, 176, 176, 176, 64, 176, 176, 176, 64, - 176, 176, 176, 64, 176, 176, 176, 61, 176, 176, 176, 57, - 177, 177, 177, 55, 185, 185, 185, 55, 189, 189, 189, 55, - 189, 189, 189, 55, 175, 175, 175, 55, 0, 0, 0, 151, - 0, 0, 0, 221, 40, 40, 40, 103, 189, 189, 189, 55, - 172, 172, 172, 55, 0, 0, 0, 154, 0, 0, 0, 221, - 0, 0, 0, 221, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 220, 0, 0, 0, 173, - 0, 0, 0, 173, 0, 0, 0, 173, 0, 0, 0, 173, - 0, 0, 0, 173, 0, 0, 0, 172, 0, 0, 0, 150, - 46, 46, 46, 63, 181, 181, 181, 61, 190, 190, 190, 61, - 190, 190, 190, 61, 175, 175, 175, 61, 0, 0, 0, 167, - 0, 0, 0, 245, 39, 39, 39, 115, 190, 190, 190, 61, - 172, 172, 172, 61, 0, 0, 0, 170, 0, 0, 0, 245, - 0, 0, 0, 246, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 234, 47, 47, 47, 91, - 181, 181, 181, 59, 189, 189, 189, 59, 163, 163, 163, 59, - 189, 189, 189, 59, 175, 175, 175, 59, 0, 0, 0, 160, - 0, 0, 0, 234, 40, 40, 40, 110, 189, 189, 189, 59, - 172, 172, 172, 59, 0, 0, 0, 163, 0, 0, 0, 236, - 0, 0, 0, 245, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 235, 47, 47, 47, 92, 180, 180, 180, 59, - 190, 190, 190, 54, 156, 156, 156, 53, 30, 30, 30, 58, - 189, 189, 189, 53, 175, 175, 175, 53, 0, 0, 0, 144, - 0, 0, 0, 210, 39, 39, 39, 98, 189, 189, 189, 53, - 172, 172, 172, 53, 0, 0, 0, 146, 0, 0, 0, 214, - 0, 0, 0, 232, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 235, - 48, 48, 48, 92, 182, 182, 182, 63, 190, 190, 190, 58, - 156, 156, 156, 53, 16, 16, 16, 108, 13, 13, 13, 117, - 189, 189, 189, 52, 174, 174, 174, 52, 0, 0, 0, 141, - 0, 0, 0, 206, 39, 39, 39, 96, 189, 189, 189, 51, - 172, 172, 172, 51, 0, 0, 0, 142, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 234, 49, 49, 49, 92, - 182, 182, 182, 64, 189, 189, 189, 64, 155, 155, 155, 61, - 15, 15, 15, 121, 0, 0, 0, 224, 13, 13, 13, 129, - 190, 190, 190, 56, 175, 175, 175, 56, 0, 0, 0, 153, - 0, 0, 0, 217, 39, 39, 39, 98, 189, 189, 189, 51, - 172, 172, 172, 51, 0, 0, 0, 142, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 234, 49, 49, 49, 92, 182, 182, 182, 64, - 190, 190, 190, 64, 155, 155, 155, 64, 15, 15, 15, 133, - 0, 0, 0, 248, 0, 0, 0, 250, 13, 13, 13, 143, - 190, 190, 190, 62, 175, 175, 175, 62, 0, 0, 0, 163, - 0, 0, 0, 222, 39, 39, 39, 98, 189, 189, 189, 51, - 172, 172, 172, 51, 0, 0, 0, 142, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 234, - 49, 49, 49, 91, 182, 182, 182, 64, 190, 190, 190, 64, - 155, 155, 155, 64, 15, 15, 15, 135, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 13, 13, 13, 146, - 189, 189, 189, 64, 175, 175, 175, 61, 0, 0, 0, 153, - 0, 0, 0, 210, 39, 39, 39, 96, 189, 189, 189, 52, - 172, 172, 172, 52, 0, 0, 0, 142, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 234, 49, 49, 49, 91, - 182, 182, 182, 64, 190, 190, 190, 64, 154, 154, 154, 64, - 14, 14, 14, 135, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 13, 13, 13, 146, - 189, 189, 189, 62, 174, 174, 174, 57, 0, 0, 0, 143, - 0, 0, 0, 205, 40, 40, 40, 97, 190, 190, 190, 54, - 172, 172, 172, 54, 0, 0, 0, 143, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 5, 5, 5, 141, 167, 167, 167, 64, - 190, 190, 190, 64, 154, 154, 154, 64, 14, 14, 14, 136, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 13, 13, 13, 142, - 189, 189, 189, 57, 175, 175, 175, 53, 0, 0, 0, 140, - 0, 0, 0, 208, 40, 40, 40, 102, 189, 189, 189, 59, - 172, 172, 172, 57, 0, 0, 0, 144, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 244, 33, 33, 33, 106, - 138, 138, 138, 64, 13, 13, 13, 136, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 245, 11, 11, 11, 132, - 163, 163, 163, 53, 151, 151, 151, 51, 0, 0, 0, 143, - 0, 0, 0, 220, 39, 39, 39, 111, 189, 189, 189, 62, - 172, 172, 172, 58, 0, 0, 0, 144, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 244, - 0, 0, 0, 177, 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 245, 0, 0, 0, 227, 0, 0, 0, 186, - 0, 0, 0, 150, 0, 0, 0, 152, 0, 0, 0, 204, - 0, 0, 0, 240, 16, 16, 16, 137, 150, 150, 150, 63, - 117, 117, 117, 58, 0, 0, 0, 160, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 246, - 0, 0, 0, 227, 0, 0, 0, 211, 0, 0, 0, 205, - 0, 0, 0, 208, 0, 0, 0, 221, 0, 0, 0, 240, - 0, 0, 0, 252, 0, 0, 0, 249, 0, 0, 0, 186, - 0, 0, 0, 183, 0, 0, 0, 208, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 237, - 0, 0, 0, 214, 0, 0, 0, 206, 0, 0, 0, 208, - 0, 0, 0, 221, 0, 0, 0, 240, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 231, 0, 0, 0, 209, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 243, - 0, 0, 0, 222, 0, 0, 0, 211, 0, 0, 0, 221, - 0, 0, 0, 240, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 232, 0, 0, 0, 211, 0, 0, 0, 211, - 0, 0, 0, 231, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 252, - 0, 0, 0, 242, 0, 0, 0, 233, 0, 0, 0, 242, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 242, 0, 0, 0, 230, 0, 0, 0, 230, - 0, 0, 0, 242, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 251, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 251, 0, 0, 0, 251, - 0, 0, 0, 253, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 213, - 0, 0, 0, 218, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 210, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 245, - 0, 0, 0, 221, 0, 0, 0, 221, 0, 0, 0, 245, - 0, 0, 0, 255, 7, 7, 7, 164, 128, 128, 128, 64, - 117, 117, 117, 64, 0, 0, 0, 188, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 16, 16, 16, 133, - 111, 111, 111, 64, 8, 8, 8, 154, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 161, - 134, 134, 134, 64, 134, 134, 134, 64, 0, 0, 0, 161, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 2, 2, 2, 154, 156, 156, 156, 64, - 190, 190, 190, 64, 148, 148, 148, 64, 12, 12, 12, 143, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 159, - 190, 190, 190, 64, 190, 190, 190, 64, 0, 0, 0, 159, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 233, 50, 50, 50, 92, - 182, 182, 182, 64, 190, 190, 190, 64, 155, 155, 155, 64, - 16, 16, 16, 133, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 254, 0, 0, 0, 159, - 190, 190, 190, 64, 190, 190, 190, 64, 0, 0, 0, 159, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 64, - 190, 190, 190, 64, 0, 0, 0, 159, 0, 0, 0, 254, - 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 238, - 42, 42, 42, 99, 177, 177, 177, 64, 190, 190, 190, 64, - 161, 161, 161, 64, 22, 22, 22, 123, 0, 0, 0, 248, - 0, 0, 0, 246, 0, 0, 0, 240, 0, 0, 0, 154, - 189, 189, 189, 64, 190, 190, 190, 64, 0, 0, 0, 159, - 0, 0, 0, 255, 23, 23, 23, 136, 189, 189, 189, 64, - 189, 189, 189, 62, 0, 0, 0, 148, 0, 0, 0, 238, - 0, 0, 0, 246, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 242, 34, 34, 34, 106, 173, 173, 173, 64, - 190, 190, 190, 64, 167, 167, 167, 64, 27, 27, 27, 110, - 0, 0, 0, 218, 0, 0, 0, 215, 0, 0, 0, 140, - 190, 190, 190, 61, 189, 189, 189, 64, 0, 0, 0, 159, - 0, 0, 0, 255, 23, 23, 23, 136, 190, 190, 190, 63, - 190, 190, 190, 58, 0, 0, 0, 133, 0, 0, 0, 214, - 0, 0, 0, 233, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 247, 27, 27, 27, 115, - 167, 167, 167, 64, 190, 190, 190, 63, 173, 173, 173, 59, - 34, 34, 34, 88, 0, 0, 0, 195, 0, 0, 0, 130, - 190, 190, 190, 56, 190, 190, 190, 61, 0, 0, 0, 159, - 0, 0, 0, 255, 23, 23, 23, 136, 189, 189, 189, 63, - 190, 190, 190, 57, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 230, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 249, - 22, 22, 22, 123, 161, 161, 161, 64, 190, 190, 190, 61, - 177, 177, 177, 56, 42, 42, 42, 81, 0, 0, 0, 115, - 190, 190, 190, 52, 189, 189, 189, 56, 0, 0, 0, 154, - 0, 0, 0, 253, 23, 23, 23, 136, 189, 189, 189, 63, - 190, 190, 190, 57, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 16, 16, 16, 133, 155, 155, 155, 63, - 190, 190, 190, 61, 181, 181, 181, 56, 50, 50, 50, 52, - 189, 189, 189, 51, 190, 190, 190, 52, 0, 0, 0, 141, - 0, 0, 0, 242, 23, 23, 23, 134, 189, 189, 189, 63, - 190, 190, 190, 57, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 12, 12, 12, 143, - 147, 147, 147, 64, 190, 190, 190, 61, 185, 185, 185, 56, - 189, 189, 189, 53, 189, 189, 189, 51, 0, 0, 0, 131, - 0, 0, 0, 222, 23, 23, 23, 127, 189, 189, 189, 62, - 190, 190, 190, 57, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 190, 55, 55, 55, 109, - 55, 55, 55, 109, 55, 55, 55, 109, 55, 55, 55, 109, - 55, 55, 55, 109, 55, 55, 55, 109, 55, 55, 55, 109, - 64, 64, 64, 67, 173, 173, 173, 64, 190, 190, 190, 61, - 189, 189, 189, 57, 189, 189, 189, 53, 0, 0, 0, 128, - 0, 0, 0, 208, 23, 23, 23, 116, 189, 189, 189, 59, - 189, 189, 189, 57, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 159, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 189, 189, 189, 64, - 189, 189, 189, 62, 190, 190, 190, 57, 0, 0, 0, 131, - 0, 0, 0, 205, 23, 23, 23, 110, 190, 190, 190, 54, - 190, 190, 190, 54, 0, 0, 0, 129, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 165, 111, 111, 111, 64, - 111, 111, 111, 64, 111, 111, 111, 64, 111, 111, 111, 64, - 111, 111, 111, 64, 111, 111, 111, 64, 111, 111, 111, 64, - 111, 111, 111, 64, 111, 111, 111, 64, 111, 111, 111, 64, - 111, 111, 111, 64, 111, 111, 111, 62, 0, 0, 0, 146, - 0, 0, 0, 212, 23, 23, 23, 109, 189, 189, 189, 51, - 189, 189, 189, 52, 0, 0, 0, 128, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 244, - 0, 0, 0, 244, 0, 0, 0, 244, 0, 0, 0, 244, - 0, 0, 0, 244, 0, 0, 0, 243, 0, 0, 0, 240, - 0, 0, 0, 236, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 234, 0, 0, 0, 236, - 0, 0, 0, 222, 23, 23, 23, 111, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 127, 0, 0, 0, 208, - 0, 0, 0, 229, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 228, 0, 0, 0, 221, - 0, 0, 0, 221, 0, 0, 0, 221, 0, 0, 0, 221, - 0, 0, 0, 221, 0, 0, 0, 219, 0, 0, 0, 207, - 0, 0, 0, 194, 0, 0, 0, 191, 0, 0, 0, 191, - 0, 0, 0, 191, 0, 0, 0, 191, 0, 0, 0, 190, - 0, 0, 0, 186, 23, 23, 23, 100, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 128, 0, 0, 0, 208, - 0, 0, 0, 230, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 193, 106, 106, 106, 65, 134, 134, 134, 64, - 134, 134, 134, 64, 134, 134, 134, 64, 134, 134, 134, 64, - 134, 134, 134, 64, 134, 134, 134, 63, 133, 133, 133, 58, - 133, 133, 133, 53, 133, 133, 133, 52, 133, 133, 133, 52, - 133, 133, 133, 52, 133, 133, 133, 52, 133, 133, 133, 52, - 133, 133, 133, 51, 141, 141, 141, 51, 189, 189, 189, 51, - 189, 189, 189, 51, 0, 0, 0, 128, 0, 0, 0, 209, - 0, 0, 0, 230, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 159, 184, 184, 184, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 190, 190, 190, 63, 189, 189, 189, 59, - 189, 189, 189, 55, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 190, 190, 190, 54, 190, 190, 190, 54, 190, 190, 190, 54, - 177, 177, 177, 54, 0, 0, 0, 137, 0, 0, 0, 220, - 0, 0, 0, 237, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 233, 33, 33, 33, 117, 55, 55, 55, 109, - 55, 55, 55, 109, 55, 55, 55, 109, 55, 55, 55, 109, - 55, 55, 55, 109, 55, 55, 55, 109, 55, 55, 55, 107, - 55, 55, 55, 105, 55, 55, 55, 105, 55, 55, 55, 105, - 55, 55, 55, 105, 55, 55, 55, 105, 55, 55, 55, 105, - 55, 55, 55, 105, 55, 55, 55, 105, 55, 55, 55, 105, - 23, 23, 23, 124, 0, 0, 0, 232, 0, 0, 0, 244, - 0, 0, 0, 249, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 249, 0, 0, 0, 240, - 0, 0, 0, 236, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 236, - 0, 0, 0, 235, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 236, 0, 0, 0, 216, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 252, 0, 0, 0, 233, 0, 0, 0, 212, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 254, 0, 0, 0, 245, 0, 0, 0, 230, - 0, 0, 0, 226, 0, 0, 0, 225, 0, 0, 0, 225, - 0, 0, 0, 225, 0, 0, 0, 225, 0, 0, 0, 225, - 0, 0, 0, 225, 0, 0, 0, 225, 0, 0, 0, 225, - 0, 0, 0, 225, 0, 0, 0, 225, 0, 0, 0, 225, - 0, 0, 0, 225, - },{ - 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 243, - 0, 0, 0, 241, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 203, 87, 87, 87, 69, - 100, 100, 100, 65, 4, 4, 4, 179, 0, 0, 0, 255, - 0, 0, 0, 249, 0, 0, 0, 228, 0, 0, 0, 228, - 0, 0, 0, 247, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 219, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 166, 123, 123, 123, 64, 126, 126, 126, 64, - 3, 3, 3, 155, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 4, 4, 4, 171, 101, 101, 101, 65, - 19, 19, 19, 130, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 185, 185, 185, 64, 190, 190, 190, 64, - 6, 6, 6, 152, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 7, 7, 7, 160, 134, 134, 134, 64, 190, 190, 190, 64, - 161, 161, 161, 64, 7, 7, 7, 144, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 185, 185, 185, 64, 189, 189, 189, 62, - 6, 6, 6, 143, 0, 0, 0, 239, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 253, 10, 10, 10, 149, - 142, 142, 142, 64, 190, 190, 190, 64, 186, 186, 186, 64, - 66, 66, 66, 82, 0, 0, 0, 221, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 254, - 0, 0, 0, 253, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 185, 185, 185, 63, 189, 189, 189, 59, - 5, 5, 5, 128, 0, 0, 0, 215, 0, 0, 0, 235, - 0, 0, 0, 248, 14, 14, 14, 135, 150, 150, 150, 59, - 189, 189, 189, 59, 183, 183, 183, 62, 57, 57, 57, 87, - 0, 0, 0, 227, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 253, 0, 0, 0, 246, - 0, 0, 0, 238, 0, 0, 0, 245, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 185, 185, 185, 63, 189, 189, 189, 57, - 6, 6, 6, 124, 0, 0, 0, 208, 0, 0, 0, 225, - 19, 19, 19, 125, 156, 156, 156, 58, 190, 190, 190, 53, - 179, 179, 179, 54, 48, 48, 48, 87, 0, 0, 0, 231, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 253, 0, 0, 0, 243, 0, 0, 0, 225, - 0, 0, 0, 214, 0, 0, 0, 224, 0, 0, 0, 244, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 6, 6, 6, 124, 0, 0, 0, 202, 24, 24, 24, 106, - 163, 163, 163, 62, 189, 189, 189, 57, 176, 176, 176, 52, - 40, 40, 40, 83, 0, 0, 0, 217, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 253, - 0, 0, 0, 242, 0, 0, 0, 223, 0, 0, 0, 209, - 0, 0, 0, 206, 0, 0, 0, 213, 0, 0, 0, 236, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 6, 6, 6, 115, 30, 30, 30, 90, 169, 169, 169, 57, - 189, 189, 189, 62, 171, 171, 171, 57, 33, 33, 33, 87, - 0, 0, 0, 199, 0, 0, 0, 232, 0, 0, 0, 252, - 0, 0, 0, 255, 0, 0, 0, 252, 0, 0, 0, 241, - 0, 0, 0, 222, 0, 0, 0, 208, 0, 0, 0, 205, - 0, 0, 0, 210, 0, 0, 0, 225, 0, 0, 0, 245, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 43, 43, 43, 53, 173, 173, 173, 52, 190, 190, 190, 57, - 166, 166, 166, 62, 27, 27, 27, 102, 0, 0, 0, 200, - 0, 0, 0, 209, 0, 0, 0, 232, 0, 0, 0, 252, - 0, 0, 0, 252, 0, 0, 0, 240, 0, 0, 0, 221, - 0, 0, 0, 208, 0, 0, 0, 205, 0, 0, 0, 210, - 0, 0, 0, 226, 0, 0, 0, 245, 0, 0, 0, 253, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 180, 180, 180, 52, 189, 189, 189, 52, 160, 160, 160, 57, - 21, 21, 21, 120, 0, 0, 0, 222, 0, 0, 0, 207, - 0, 0, 0, 209, 0, 0, 0, 231, 0, 0, 0, 248, - 0, 0, 0, 239, 0, 0, 0, 220, 0, 0, 0, 208, - 0, 0, 0, 205, 0, 0, 0, 211, 0, 0, 0, 227, - 0, 0, 0, 246, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 189, 189, 189, 52, 175, 175, 175, 52, 58, 58, 58, 59, - 42, 42, 42, 115, 42, 42, 42, 109, 42, 42, 42, 99, - 42, 42, 42, 100, 41, 41, 41, 110, 42, 42, 42, 114, - 42, 42, 42, 106, 2, 2, 2, 153, 0, 0, 0, 205, - 0, 0, 0, 212, 0, 0, 0, 229, 0, 0, 0, 246, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 164, 184, 184, 184, 63, 189, 189, 189, 57, - 189, 189, 189, 52, 189, 189, 189, 52, 190, 190, 190, 57, - 189, 189, 189, 62, 189, 189, 189, 57, 189, 189, 189, 52, - 189, 189, 189, 52, 190, 190, 190, 54, 190, 190, 190, 54, - 189, 189, 189, 52, 12, 12, 12, 118, 0, 0, 0, 212, - 0, 0, 0, 230, 0, 0, 0, 247, 0, 0, 0, 254, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 166, 123, 123, 123, 63, 126, 126, 126, 57, - 126, 126, 126, 52, 126, 126, 126, 52, 126, 126, 126, 57, - 126, 126, 126, 62, 126, 126, 126, 57, 126, 126, 126, 52, - 126, 126, 126, 51, 126, 126, 126, 52, 126, 126, 126, 51, - 126, 126, 126, 51, 8, 8, 8, 126, 0, 0, 0, 231, - 0, 0, 0, 247, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 132, 0, 0, 0, 255, - 0, 0, 0, 248, 0, 0, 0, 224, 0, 0, 0, 203, - 0, 0, 0, 186, 0, 0, 0, 186, 0, 0, 0, 205, - 0, 0, 0, 220, 0, 0, 0, 204, 0, 0, 0, 186, - 0, 0, 0, 183, 0, 0, 0, 183, 0, 0, 0, 183, - 0, 0, 0, 187, 0, 0, 0, 216, 0, 0, 0, 239, - 0, 0, 0, 244, 0, 0, 0, 245, 0, 0, 0, 245, - 0, 0, 0, 246, 0, 0, 0, 246, 0, 0, 0, 251, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 26, 26, 26, 126, 0, 0, 0, 238, - 0, 0, 0, 238, 0, 0, 0, 233, 0, 0, 0, 212, - 0, 0, 0, 193, 0, 0, 0, 194, 0, 0, 0, 213, - 0, 0, 0, 229, 0, 0, 0, 212, 0, 0, 0, 193, - 0, 0, 0, 190, 0, 0, 0, 190, 0, 0, 0, 190, - 0, 0, 0, 193, 0, 0, 0, 200, 0, 0, 0, 217, - 0, 0, 0, 218, 0, 0, 0, 218, 0, 0, 0, 218, - 0, 0, 0, 218, 0, 0, 0, 221, 0, 0, 0, 238, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 161, 188, 188, 188, 64, - 190, 190, 190, 64, 127, 127, 127, 64, 117, 117, 117, 64, - 117, 117, 117, 64, 117, 117, 117, 63, 117, 117, 117, 57, - 117, 117, 117, 52, 117, 117, 117, 52, 117, 117, 117, 57, - 117, 117, 117, 62, 117, 117, 117, 57, 117, 117, 117, 52, - 117, 117, 117, 51, 117, 117, 117, 51, 117, 117, 117, 51, - 117, 117, 117, 51, 104, 104, 104, 52, 6, 6, 6, 136, - 0, 0, 0, 206, 0, 0, 0, 206, 0, 0, 0, 206, - 0, 0, 0, 206, 0, 0, 0, 210, 0, 0, 0, 232, - 0, 0, 0, 252, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 163, 179, 179, 179, 64, - 190, 190, 190, 64, 190, 190, 190, 64, 190, 190, 190, 64, - 190, 190, 190, 64, 189, 189, 189, 63, 189, 189, 189, 57, - 189, 189, 189, 52, 189, 189, 189, 52, 190, 190, 190, 57, - 189, 189, 189, 62, 189, 189, 189, 59, 189, 189, 189, 55, - 189, 189, 189, 55, 189, 189, 189, 55, 189, 189, 189, 55, - 189, 189, 189, 55, 189, 189, 189, 55, 34, 34, 34, 104, - 0, 0, 0, 218, 0, 0, 0, 218, 0, 0, 0, 218, - 0, 0, 0, 218, 0, 0, 0, 221, 0, 0, 0, 238, - 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 236, 37, 37, 37, 108, - 73, 73, 73, 91, 73, 73, 73, 91, 73, 73, 73, 91, - 73, 73, 73, 91, 73, 73, 73, 89, 73, 73, 73, 80, - 73, 73, 73, 73, 73, 73, 73, 74, 73, 73, 73, 81, - 73, 73, 73, 88, 73, 73, 73, 88, 74, 74, 74, 87, - 73, 73, 73, 87, 73, 73, 73, 87, 73, 73, 73, 87, - 73, 73, 73, 87, 61, 61, 61, 88, 0, 0, 0, 191, - 0, 0, 0, 243, 0, 0, 0, 243, 0, 0, 0, 243, - 0, 0, 0, 243, 0, 0, 0, 245, 0, 0, 0, 249, - 0, 0, 0, 254, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 250, 0, 0, 0, 227, - 0, 0, 0, 207, 0, 0, 0, 206, 0, 0, 0, 219, - 0, 0, 0, 233, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 235, - 0, 0, 0, 235, 0, 0, 0, 235, 0, 0, 0, 238, - 0, 0, 0, 248, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 250, 0, 0, 0, 227, - 0, 0, 0, 207, 0, 0, 0, 205, 0, 0, 0, 207, - 0, 0, 0, 209, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 210, - 0, 0, 0, 210, 0, 0, 0, 210, 0, 0, 0, 215, - 0, 0, 0, 234, 0, 0, 0, 252, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 251, 0, 0, 0, 232, - 0, 0, 0, 211, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, - 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 211, - 0, 0, 0, 231, 0, 0, 0, 251, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, - 0, 0, 0, 255, 0, 0, 0, 254, 0, 0, 0, 245, - 0, 0, 0, 231, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 226, - 0, 0, 0, 226, 0, 0, 0, 226, 0, 0, 0, 230, - 0, 0, 0, 243, 0, 0, 0, 254, 0, 0, 0, 255, - 0, 0, 0, 255, - }}; - -#define NUM_CURSORS sizeof(Cursors) / sizeof(Cursors[0]) diff --git a/src/glut/fbdev/ext.c b/src/glut/fbdev/ext.c deleted file mode 100644 index 65953e705b..0000000000 --- a/src/glut/fbdev/ext.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdio.h> - -#include <GL/gl.h> -#include <GL/glut.h> - -#include "internal.h" - -void glutReportErrors(void) -{ - GLenum error; - - while ((error = glGetError()) != GL_NO_ERROR) - sprintf(exiterror, "GL error: %s", gluErrorString(error)); -} - -static struct { - const char *name; - const GLUTproc address; -} glut_functions[] = { - { "glutInit", (const GLUTproc) glutInit }, - { "glutInitDisplayMode", (const GLUTproc) glutInitDisplayMode }, - { "glutInitWindowPosition", (const GLUTproc) glutInitWindowPosition }, - { "glutInitWindowSize", (const GLUTproc) glutInitWindowSize }, - { "glutMainLoop", (const GLUTproc) glutMainLoop }, - { "glutCreateWindow", (const GLUTproc) glutCreateWindow }, - { "glutCreateSubWindow", (const GLUTproc) glutCreateSubWindow }, - { "glutDestroyWindow", (const GLUTproc) glutDestroyWindow }, - { "glutPostRedisplay", (const GLUTproc) glutPostRedisplay }, - { "glutSwapBuffers", (const GLUTproc) glutSwapBuffers }, - { "glutGetWindow", (const GLUTproc) glutGetWindow }, - { "glutSetWindow", (const GLUTproc) glutSetWindow }, - { "glutSetWindowTitle", (const GLUTproc) glutSetWindowTitle }, - { "glutSetIconTitle", (const GLUTproc) glutSetIconTitle }, - { "glutPositionWindow", (const GLUTproc) glutPositionWindow }, - { "glutReshapeWindow", (const GLUTproc) glutReshapeWindow }, - { "glutPopWindow", (const GLUTproc) glutPopWindow }, - { "glutPushWindow", (const GLUTproc) glutPushWindow }, - { "glutIconifyWindow", (const GLUTproc) glutIconifyWindow }, - { "glutShowWindow", (const GLUTproc) glutShowWindow }, - { "glutHideWindow", (const GLUTproc) glutHideWindow }, - { "glutFullScreen", (const GLUTproc) glutFullScreen }, - { "glutSetCursor", (const GLUTproc) glutSetCursor }, - { "glutWarpPointer", (const GLUTproc) glutWarpPointer }, - { "glutEstablishOverlay", (const GLUTproc) glutEstablishOverlay }, - { "glutRemoveOverlay", (const GLUTproc) glutRemoveOverlay }, - { "glutUseLayer", (const GLUTproc) glutUseLayer }, - { "glutPostOverlayRedisplay", (const GLUTproc) glutPostOverlayRedisplay }, - { "glutShowOverlay", (const GLUTproc) glutShowOverlay }, - { "glutHideOverlay", (const GLUTproc) glutHideOverlay }, - { "glutCreateMenu", (const GLUTproc) glutCreateMenu }, - { "glutDestroyMenu", (const GLUTproc) glutDestroyMenu }, - { "glutGetMenu", (const GLUTproc) glutGetMenu }, - { "glutSetMenu", (const GLUTproc) glutSetMenu }, - { "glutAddMenuEntry", (const GLUTproc) glutAddMenuEntry }, - { "glutAddSubMenu", (const GLUTproc) glutAddSubMenu }, - { "glutChangeToMenuEntry", (const GLUTproc) glutChangeToMenuEntry }, - { "glutChangeToSubMenu", (const GLUTproc) glutChangeToSubMenu }, - { "glutRemoveMenuItem", (const GLUTproc) glutRemoveMenuItem }, - { "glutAttachMenu", (const GLUTproc) glutAttachMenu }, - { "glutDetachMenu", (const GLUTproc) glutDetachMenu }, - { "glutDisplayFunc", (const GLUTproc) glutDisplayFunc }, - { "glutReshapeFunc", (const GLUTproc) glutReshapeFunc }, - { "glutKeyboardFunc", (const GLUTproc) glutKeyboardFunc }, - { "glutMouseFunc", (const GLUTproc) glutMouseFunc }, - { "glutMotionFunc", (const GLUTproc) glutMotionFunc }, - { "glutPassiveMotionFunc", (const GLUTproc) glutPassiveMotionFunc }, - { "glutEntryFunc", (const GLUTproc) glutEntryFunc }, - { "glutVisibilityFunc", (const GLUTproc) glutVisibilityFunc }, - { "glutIdleFunc", (const GLUTproc) glutIdleFunc }, - { "glutTimerFunc", (const GLUTproc) glutTimerFunc }, - { "glutMenuStateFunc", (const GLUTproc) glutMenuStateFunc }, - { "glutSpecialFunc", (const GLUTproc) glutSpecialFunc }, - { "glutSpaceballRotateFunc", (const GLUTproc) glutSpaceballRotateFunc }, - { "glutButtonBoxFunc", (const GLUTproc) glutButtonBoxFunc }, - { "glutDialsFunc", (const GLUTproc) glutDialsFunc }, - { "glutTabletMotionFunc", (const GLUTproc) glutTabletMotionFunc }, - { "glutTabletButtonFunc", (const GLUTproc) glutTabletButtonFunc }, - { "glutMenuStatusFunc", (const GLUTproc) glutMenuStatusFunc }, - { "glutOverlayDisplayFunc", (const GLUTproc) glutOverlayDisplayFunc }, - { "glutSetColor", (const GLUTproc) glutSetColor }, - { "glutGetColor", (const GLUTproc) glutGetColor }, - { "glutCopyColormap", (const GLUTproc) glutCopyColormap }, - { "glutGet", (const GLUTproc) glutGet }, - { "glutDeviceGet", (const GLUTproc) glutDeviceGet }, - { "glutExtensionSupported", (const GLUTproc) glutExtensionSupported }, - { "glutGetModifiers", (const GLUTproc) glutGetModifiers }, - { "glutLayerGet", (const GLUTproc) glutLayerGet }, - { "glutGetProcAddress", (const GLUTproc) glutGetProcAddress }, - { "glutBitmapCharacter", (const GLUTproc) glutBitmapCharacter }, - { "glutBitmapWidth", (const GLUTproc) glutBitmapWidth }, - { "glutStrokeCharacter", (const GLUTproc) glutStrokeCharacter }, - { "glutStrokeWidth", (const GLUTproc) glutStrokeWidth }, - { "glutBitmapLength", (const GLUTproc) glutBitmapLength }, - { "glutStrokeLength", (const GLUTproc) glutStrokeLength }, - { "glutWireSphere", (const GLUTproc) glutWireSphere }, - { "glutSolidSphere", (const GLUTproc) glutSolidSphere }, - { "glutWireCone", (const GLUTproc) glutWireCone }, - { "glutSolidCone", (const GLUTproc) glutSolidCone }, - { "glutWireCube", (const GLUTproc) glutWireCube }, - { "glutSolidCube", (const GLUTproc) glutSolidCube }, - { "glutWireTorus", (const GLUTproc) glutWireTorus }, - { "glutSolidTorus", (const GLUTproc) glutSolidTorus }, - { "glutWireDodecahedron", (const GLUTproc) glutWireDodecahedron }, - { "glutSolidDodecahedron", (const GLUTproc) glutSolidDodecahedron }, - { "glutWireTeapot", (const GLUTproc) glutWireTeapot }, - { "glutSolidTeapot", (const GLUTproc) glutSolidTeapot }, - { "glutWireOctahedron", (const GLUTproc) glutWireOctahedron }, - { "glutSolidOctahedron", (const GLUTproc) glutSolidOctahedron }, - { "glutWireTetrahedron", (const GLUTproc) glutWireTetrahedron }, - { "glutSolidTetrahedron", (const GLUTproc) glutSolidTetrahedron }, - { "glutWireIcosahedron", (const GLUTproc) glutWireIcosahedron }, - { "glutSolidIcosahedron", (const GLUTproc) glutSolidIcosahedron }, - { "glutReportErrors", (const GLUTproc) glutReportErrors }, - { NULL, NULL } -}; - -GLUTproc glutGetProcAddress(const char *procName) -{ - /* Try GLUT functions first */ - int i; - for (i = 0; glut_functions[i].name; i++) { - if (strcmp(glut_functions[i].name, procName) == 0) - return glut_functions[i].address; - } - - /* Try core GL functions */ - return (GLUTproc) glFBDevGetProcAddress(procName); -} diff --git a/src/glut/fbdev/fbdev.c b/src/glut/fbdev/fbdev.c deleted file mode 100644 index 80237f5bc7..0000000000 --- a/src/glut/fbdev/fbdev.c +++ /dev/null @@ -1,940 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - * - * To improve on this library, maybe support subwindows or overlays, - * I (sean at depagnier dot com) will do my best to help. - */ - -#include <errno.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <unistd.h> -#include <inttypes.h> - -#include <sys/mman.h> -#include <sys/time.h> -#include <sys/kd.h> - -#include <linux/fb.h> -#include <linux/vt.h> - -#include <GL/gl.h> -#include <GL/glut.h> - -#include "internal.h" - -#define FBMODES "/etc/fb.modes" - -struct fb_fix_screeninfo FixedInfo; -struct fb_var_screeninfo VarInfo; -static struct fb_var_screeninfo OrigVarInfo; - -static int DesiredDepth = 0; - -int FrameBufferFD = -1; -unsigned char *FrameBuffer; -unsigned char *BackBuffer = NULL; -int DisplayMode; - -struct GlutTimer *GlutTimers = NULL; - -struct timeval StartTime; - -/* per window data */ -GLFBDevContextPtr Context; -GLFBDevBufferPtr Buffer; -GLFBDevVisualPtr Visual; - -int Redisplay; -int Visible; -int VisibleSwitch; -int Active; -static int Resized; -/* we have to poll to see if we are visible - on a framebuffer that is not active */ -int VisiblePoll; -int Swapping, VTSwitch; -static int FramebufferIndex; - -static int Initialized; - -char exiterror[256]; - -/* test if the active console is attached to the same framebuffer */ -void TestVisible(void) { - struct fb_con2fbmap confb; - struct vt_stat st; - int ret; - ioctl(ConsoleFD, VT_GETSTATE, &st); - confb.console = st.v_active; - - ret = ioctl(FrameBufferFD, FBIOGET_CON2FBMAP, &confb); - - if(ret == -1 || confb.framebuffer == FramebufferIndex) { - VisibleSwitch = 1; - Visible = 0; - VisiblePoll = 0; - } -} - -static void Cleanup(void) -{ - /* do not handle this signal when cleaning up */ - signal(SIGWINCH, SIG_IGN); - - if(GameMode) - glutLeaveGameMode(); - - if(ConsoleFD != -1) - RestoreVT(); - - /* close mouse */ - CloseMouse(); - - if(Visual) - glutDestroyWindow(1); - - /* restore original variable screen info */ - if(FrameBufferFD != -1) { - OrigVarInfo.xoffset = 0; - OrigVarInfo.yoffset = 0; - - if (ioctl(FrameBufferFD, FBIOPUT_VSCREENINFO, &OrigVarInfo)) - fprintf(stderr, "ioctl(FBIOPUT_VSCREENINFO failed): %s\n", - strerror(errno)); - - if(FrameBuffer) - munmap(FrameBuffer, FixedInfo.smem_len); - close(FrameBufferFD); - - } - - /* free allocated back buffer */ - if(DisplayMode & GLUT_DOUBLE) - free(BackBuffer); - - /* free menu items */ - FreeMenus(); - - if(exiterror[0]) - fprintf(stderr, "[glfbdev glut] %s", exiterror); - } - -static void CrashHandler(int sig) -{ - sprintf(exiterror, "Caught signal %d, cleaning up\n", sig); - exit(0); -} - -static void removeArgs(int *argcp, char **argv, int num) -{ - int i; - for (i = 0; argv[i+num]; i++) - argv[i] = argv[i+num]; - - argv[i] = NULL; - *argcp -= num; -} - -#define REQPARAM(PARAM) \ - if (i >= *argcp - 1) { \ - fprintf(stderr, PARAM" requires a parameter\n"); \ - exit(0); \ - } - -void glutInit (int *argcp, char **argv) -{ - int i, nomouse = 0, nokeyboard = 0, usestdin = 0; - int RequiredWidth = 0, RequiredHeight; - char *fbdev; - - stack_t stack; - struct sigaction sa; - - /* parse out args */ - for (i = 1; i < *argcp;) { - if (!strcmp(argv[i], "-geometry")) { - REQPARAM("geometry"); - if(sscanf(argv[i+1], "%dx%d", &RequiredWidth, - &RequiredHeight) != 2) { - fprintf(stderr,"Please specify geometry as widthxheight\n"); - exit(0); - } - removeArgs(argcp, &argv[i], 2); - } else - if (!strcmp(argv[i], "-bpp")) { - REQPARAM("bpp"); - if(sscanf(argv[i+1], "%d", &DesiredDepth) != 1) { - fprintf(stderr, "Please specify a parameter for bpp\n"); - exit(0); - } - removeArgs(argcp, &argv[i], 2); - } else - if (!strcmp(argv[i], "-vt")) { - REQPARAM("vt"); - if(sscanf(argv[i+1], "%d", &CurrentVT) != 1) { - fprintf(stderr, "Please specify a parameter for vt\n"); - exit(0); - } - removeArgs(argcp, &argv[i], 2); - } else - if (!strcmp(argv[i], "-mousespeed")) { - REQPARAM("mousespeed"); - if(sscanf(argv[i+1], "%lf", &MouseSpeed) != 1) { - fprintf(stderr, "Please specify a mouse speed, eg: 2.5\n"); - exit(0); - } - removeArgs(argcp, &argv[i], 2); - } else - if (!strcmp(argv[i], "-nomouse")) { - nomouse = 1; - removeArgs(argcp, &argv[i], 1); - } else - if (!strcmp(argv[i], "-nokeyboard")) { - nokeyboard = 1; - removeArgs(argcp, &argv[i], 1); - } else - if (!strcmp(argv[i], "-stdin")) { - usestdin = 1; - removeArgs(argcp, &argv[i], 1); - } else - if (!strcmp(argv[i], "-gpmmouse")) { -#ifdef HAVE_GPM - GpmMouse = 1; -#else - fprintf(stderr, "gpm support not compiled\n"); - exit(0); -#endif - removeArgs(argcp, &argv[i], 1); - } else - if (!strcmp(argv[i], "--")) { - removeArgs(argcp, &argv[i], 1); - break; - } else - i++; - } - - gettimeofday(&StartTime, 0); - atexit(Cleanup); - - /* set up SIGSEGV to use alternate stack */ - stack.ss_flags = 0; - stack.ss_size = SIGSTKSZ; - if(!(stack.ss_sp = malloc(SIGSTKSZ))) - sprintf(exiterror, "Failed to allocate alternate stack for SIGSEGV!\n"); - - sigaltstack(&stack, NULL); - - sa.sa_handler = CrashHandler; - sa.sa_flags = SA_ONSTACK; - sigemptyset(&sa.sa_mask); - sigaction(SIGSEGV, &sa, NULL); - - signal(SIGINT, CrashHandler); - signal(SIGTERM, CrashHandler); - signal(SIGABRT, CrashHandler); - - if(nomouse == 0) - InitializeMouse(); - if(nokeyboard == 0) - InitializeVT(usestdin); - - fbdev = getenv("FRAMEBUFFER"); - if(fbdev) { -#ifdef MULTIHEAD - if(!sscanf(fbdev, "/dev/fb%d", &FramebufferIndex)) - if(!sscanf(fbdev, "/dev/fb/%d", &FramebufferIndex)) - sprintf(exiterror, "Could not determine Framebuffer index!\n"); -#endif - } else { - static char fb[128]; - struct fb_con2fbmap confb; - int fd = open("/dev/fb0", O_RDWR); - - FramebufferIndex = 0; - - confb.console = CurrentVT; - if(ioctl(fd, FBIOGET_CON2FBMAP, &confb) != -1) - FramebufferIndex = confb.framebuffer; - sprintf(fb, "/dev/fb%d", FramebufferIndex); - fbdev = fb; - close(fd); - } - - /* open the framebuffer device */ - FrameBufferFD = open(fbdev, O_RDWR); - if (FrameBufferFD < 0) { - sprintf(exiterror, "Error opening %s: %s\n", fbdev, strerror(errno)); - exit(0); - } - - /* get the fixed screen info */ - if (ioctl(FrameBufferFD, FBIOGET_FSCREENINFO, &FixedInfo)) { - sprintf(exiterror, "error: ioctl(FBIOGET_FSCREENINFO) failed: %s\n", - strerror(errno)); - exit(0); - } - - /* get the variable screen info */ - if (ioctl(FrameBufferFD, FBIOGET_VSCREENINFO, &OrigVarInfo)) { - sprintf(exiterror, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", - strerror(errno)); - exit(0); - } - - /* operate on a copy */ - VarInfo = OrigVarInfo; - - /* set the depth, resolution, etc */ - if(RequiredWidth) - if(!ParseFBModes(RequiredWidth, RequiredWidth, RequiredHeight, - RequiredHeight, 0, MAX_VSYNC)) { - sprintf(exiterror, "No mode (%dx%d) found in "FBMODES"\n", - RequiredWidth, RequiredHeight); - exit(0); - } - - Initialized = 1; -} - -void glutInitDisplayMode (unsigned int mode) -{ - DisplayMode = mode; -} - -static const char *GetStrVal(const char *p, int *set, int min, int max) -{ - char *endptr; - int comp = *p, val; - - if(p[1] == '=') - p++; - - if(*p == '\0') - return p; - - val = strtol(p+1, &endptr, 10); - - if(endptr == p+1) - return p; - - switch(comp) { - case '!': - if(val == min) - val = max; - else - val = min; - break; - case '<': - val = min; - break; - case '>': - val = max; - break; - } - - if(val < min || val > max) { - sprintf(exiterror, "display string value out of range\n"); - exit(0); - } - - *set = val; - - return endptr; -} - -static void SetAttrib(int val, int attr) -{ - if(val) - DisplayMode |= attr; - else - DisplayMode &= ~attr; -} - -void glutInitDisplayString(const char *string) -{ - const char *p = string; - int val; - while(*p) { - if(*p == ' ') - p++; - else - if(memcmp(p, "acca", 4) == 0) { - p = GetStrVal(p+4, &AccumSize, 1, 32); - SetAttrib(AccumSize, GLUT_ACCUM); - } else - if(memcmp(p, "acc", 3) == 0) { - p = GetStrVal(p+3, &AccumSize, 1, 32); - SetAttrib(AccumSize, GLUT_ACCUM); - } else - if(memcmp(p, "depth", 5) == 0) { - p = GetStrVal(p+5, &DepthSize, 12, 32); - SetAttrib(DepthSize, GLUT_DEPTH); - } else - if(memcmp(p, "double", 6) == 0) { - val = 1; - p = GetStrVal(p+6, &val, 0, 1); - SetAttrib(val, GLUT_DOUBLE); - } else - if(memcmp(p, "index", 5) == 0) { - val = 1; - p = GetStrVal(p+5, &val, 0, 1); - SetAttrib(val, GLUT_INDEX); - } else - if(memcmp(p, "stencil", 7) == 0) { - p = GetStrVal(p+7, &StencilSize, 0, 1); - SetAttrib(StencilSize, GLUT_STENCIL); - } else - if(memcmp(p, "samples", 7) == 0) { - NumSamples = 1; - p = GetStrVal(p+7, &NumSamples, 0, 16); - SetAttrib(NumSamples, GLUT_MULTISAMPLE); - } else - if(p = strchr(p, ' ')) - p++; - else - break; - } -} - -void glutInitWindowPosition (int x, int y) -{ -} - -void glutInitWindowSize (int width, int height) -{ -} - -static void ProcessTimers(void) -{ - while(GlutTimers && GlutTimers->time <= glutGet(GLUT_ELAPSED_TIME)) { - struct GlutTimer *timer = GlutTimers; - GlutTimers = timer->next; - timer->func(timer->value); - free(timer); - } -} - -void glutMainLoop(void) -{ - int idleiters; - - if(ReshapeFunc) - ReshapeFunc(VarInfo.xres, VarInfo.yres); - - if(!DisplayFunc) { - sprintf(exiterror, "Fatal Error: No Display Function registered\n"); - exit(0); - } - - for(;;) { - ProcessTimers(); - - if(Active) - ReceiveInput(); - else - if(VisiblePoll) - TestVisible(); - - if(IdleFunc) - IdleFunc(); - - if(VisibleSwitch) { - VisibleSwitch = 0; - if(VisibilityFunc) - VisibilityFunc(Visible ? GLUT_VISIBLE : GLUT_NOT_VISIBLE); - } - - if(Resized) { - SetVideoMode(); - CreateBuffer(); - - if(!glFBDevMakeCurrent( Context, Buffer, Buffer )) { - sprintf(exiterror, "Failure to Make Current\n"); - exit(0); - } - - InitializeMenus(); - - if(ReshapeFunc) - ReshapeFunc(VarInfo.xres, VarInfo.yres); - - Redisplay = 1; - Resized = 0; - } - - if(Visible && Redisplay) { - Redisplay = 0; - EraseCursor(); - DisplayFunc(); - if(!(DisplayMode & GLUT_DOUBLE)) { - if(ActiveMenu) - DrawMenus(); - DrawCursor(); - } - idleiters = 0; - } else { - /* we sleep if not receiving redisplays, and - the main loop is running faster than 2khz */ - - static int lasttime; - int time = glutGet(GLUT_ELAPSED_TIME); - if(time > lasttime) { - if(idleiters >= 2) - usleep(100); - - idleiters = 0; - lasttime = time; - } - idleiters++; - } - } -} - -int ParseFBModes(int minw, int maxw, int minh, int maxh, int minf, int maxf) -{ - char buf[1024]; - struct fb_var_screeninfo vi = VarInfo; - - FILE *fbmodes = fopen(FBMODES, "r"); - - if(!fbmodes) { - sprintf(exiterror, "Warning: could not open "FBMODES"\n"); - return 0; - } - - while(fgets(buf, sizeof buf, fbmodes)) { - char *c; - int v, bpp, freq; - - if(!(c = strstr(buf, "geometry"))) - continue; - v = sscanf(c, "geometry %d %d %d %d %d", &vi.xres, &vi.yres, - &vi.xres_virtual, &vi.yres_virtual, &bpp); - if(v != 5) - continue; - - if(maxw < minw) { - if(maxw < vi.xres && minw > vi.xres) - continue; - } else - if(maxw < vi.xres || minw > vi.xres) - continue; - - if(maxh < minh) { - if(maxh < vi.yres && minh > vi.yres) - continue; - } else - if(maxh < vi.yres || minh > vi.yres) - continue; - - fgets(buf, sizeof buf, fbmodes); - if(!(c = strstr(buf, "timings"))) - continue; - - v = sscanf(c, "timings %d %d %d %d %d %d %d", &vi.pixclock, - &vi.left_margin, &vi.right_margin, &vi.upper_margin, - &vi.lower_margin, &vi.hsync_len, &vi.vsync_len); - - if(v != 7) - continue; - - freq = 1E12/vi.pixclock - /(vi.left_margin + vi.xres + vi.right_margin + vi.hsync_len) - /(vi.upper_margin + vi.yres + vi.lower_margin + vi.vsync_len); - - if(maxf < minf) { - if(maxf < freq && minf > freq) - continue; - } else - if(maxf < freq || minf > freq) - continue; - - VarInfo = vi; - fclose(fbmodes); - return 1; - } - - fclose(fbmodes); - - return 0; -} - -void SetVideoMode(void) -{ - /* set new variable screen info */ - if (ioctl(FrameBufferFD, FBIOPUT_VSCREENINFO, &VarInfo)) { - sprintf(exiterror, "FBIOPUT_VSCREENINFO failed: %s\n", strerror(errno)); - strcat(exiterror, "Perhaps the device does not support the selected mode\n"); - exit(0); - } - - /* reload the screen info to update rgb bits */ - if (ioctl(FrameBufferFD, FBIOGET_VSCREENINFO, &VarInfo)) { - sprintf(exiterror, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", - strerror(errno)); - exit(0); - } - - /* reload the fixed info to update color mode */ - if (ioctl(FrameBufferFD, FBIOGET_FSCREENINFO, &FixedInfo)) { - sprintf(exiterror, "error: ioctl(FBIOGET_FSCREENINFO) failed: %s\n", - strerror(errno)); - exit(0); - } - - if (DesiredDepth && DesiredDepth != VarInfo.bits_per_pixel) { - sprintf(exiterror, "error: Could not set set %d bpp\n", DesiredDepth); - exit(0); - } - - if(DisplayMode & GLUT_INDEX && FixedInfo.visual == FB_VISUAL_DIRECTCOLOR) { - sprintf(exiterror, "error: Could not set 8 bit color mode\n"); - exit(0); - } - - /* initialize colormap */ - LoadColorMap(); -} - -void CreateBuffer(void) -{ - int size = VarInfo.xres_virtual * VarInfo.yres_virtual - * VarInfo.bits_per_pixel / 8; - - /* mmap the framebuffer into our address space */ - if(FrameBuffer) - munmap(FrameBuffer, FixedInfo.smem_len); - FrameBuffer = mmap(0, FixedInfo.smem_len, PROT_READ | PROT_WRITE, - MAP_SHARED, FrameBufferFD, 0); - if (FrameBuffer == MAP_FAILED) { - sprintf(exiterror, "error: unable to mmap framebuffer: %s\n", - strerror(errno)); - exit(0); - } - - if(DisplayMode & GLUT_DOUBLE) { - free(BackBuffer); - if(!(BackBuffer = malloc(size))) { - sprintf(exiterror, "Failed to allocate double buffer\n"); - exit(0); - } - } else - BackBuffer = FrameBuffer; - - if(Buffer) - glFBDevDestroyBuffer(Buffer); - - if(!(Buffer = glFBDevCreateBuffer( &FixedInfo, &VarInfo, Visual, - FrameBuffer, BackBuffer, size))) { - sprintf(exiterror, "Failure to create Buffer\n"); - exit(0); - } -} - -void CreateVisual(void) -{ - int i, mask = DisplayMode; - int attribs[20]; - for(i=0; i<sizeof(attribs)/sizeof(*attribs) && mask; i++) { - if(mask & GLUT_DOUBLE) { - attribs[i] = GLFBDEV_DOUBLE_BUFFER; - mask &= ~GLUT_DOUBLE; - continue; - } - - if(mask & GLUT_INDEX) { - attribs[i] = GLFBDEV_COLOR_INDEX; - mask &= ~GLUT_INDEX; - continue; - } - - if(mask & GLUT_DEPTH) { - attribs[i] = GLFBDEV_DEPTH_SIZE; - attribs[++i] = DepthSize; - mask &= ~GLUT_DEPTH; - continue; - } - - if(mask & GLUT_STENCIL) { - attribs[i] = GLFBDEV_STENCIL_SIZE; - attribs[++i] = StencilSize; - mask &= ~GLUT_STENCIL; - continue; - } - - if(mask & GLUT_ACCUM) { - attribs[i] = GLFBDEV_ACCUM_SIZE; - attribs[++i] = AccumSize; - mask &= ~GLUT_ACCUM; - continue; - } - - if(mask & GLUT_ALPHA) - if(!(DisplayMode & GLUT_INDEX)) { - mask &= ~GLUT_ALPHA; - i--; - continue; - } - - if(mask & GLUT_MULTISAMPLE) { - attribs[i] = GLFBDEV_MULTISAMPLE; - attribs[++i] = NumSamples; - mask &= ~GLUT_MULTISAMPLE; - continue; - } - - sprintf(exiterror, "Invalid mode from glutInitDisplayMode\n"); - exit(0); - } - - attribs[i] = GLFBDEV_NONE; - - if(!(Visual = glFBDevCreateVisual( &FixedInfo, &VarInfo, attribs ))) { - sprintf(exiterror, "Failure to create Visual\n"); - exit(0); - } -} - -static void SignalWinch(int arg) -{ - /* we can't change bitdepth without destroying the visual */ - int bits_per_pixel = VarInfo.bits_per_pixel; - struct fb_bitfield red = VarInfo.red, green = VarInfo.green, - blue = VarInfo.blue, transp = VarInfo.transp; - - /* get the variable screen info */ - if (ioctl(FrameBufferFD, FBIOGET_VSCREENINFO, &VarInfo)) { - sprintf(exiterror, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", - strerror(errno)); - exit(0); - } - - /* restore bitdepth and color masks only */ - VarInfo.bits_per_pixel = bits_per_pixel; - VarInfo.red = red; - VarInfo.green = green; - VarInfo.blue = blue; - VarInfo.transp = transp; - - Resized = 1; -} - -int glutCreateWindow (const char *title) -{ - if(Initialized == 0) { - int argc = 0; - char *argv[] = {NULL}; - glutInit(&argc, argv); - } - - if(Context) - return 0; - - if(DisplayMode & GLUT_INDEX) - VarInfo.bits_per_pixel = 8; - else - if(VarInfo.bits_per_pixel == 8) - VarInfo.bits_per_pixel = 32; - - if (DesiredDepth) - VarInfo.bits_per_pixel = DesiredDepth; - - VarInfo.xoffset = 0; - VarInfo.yoffset = 0; - VarInfo.nonstd = 0; - VarInfo.vmode &= ~FB_VMODE_YWRAP; /* turn off scrolling */ - - SetVideoMode(); - CreateVisual(); - CreateBuffer(); - - if(!(Context = glFBDevCreateContext(Visual, NULL))) { - sprintf(exiterror, "Failure to create Context\n"); - exit(0); - } - - if(!glFBDevMakeCurrent( Context, Buffer, Buffer )) { - sprintf(exiterror, "Failure to Make Current\n"); - exit(0); - } - - InitializeCursor(); - InitializeMenus(); - - glutSetWindowTitle(title); - - signal(SIGWINCH, SignalWinch); - - Visible = 1; - VisibleSwitch = 1; - Redisplay = 1; - return 1; -} - -int glutCreateSubWindow(int win, int x, int y, int width, int height) -{ - return 0; -} - -void glutSetWindow(int win) -{ -} - -int glutGetWindow(void) -{ - return 1; -} - -void glutDestroyWindow(int win) -{ - glFBDevMakeCurrent( NULL, NULL, NULL); - glFBDevDestroyContext(Context); - glFBDevDestroyBuffer(Buffer); - glFBDevDestroyVisual(Visual); - - Visual = NULL; -} - -void glutPostRedisplay(void) -{ - Redisplay = 1; -} - -void glutPostWindowRedisplay(int win) -{ - Redisplay = 1; -} - -void glutSwapBuffers(void) -{ - glFlush(); - - if(!(DisplayMode & GLUT_DOUBLE)) - return; - - if(ActiveMenu) - DrawMenus(); - DrawCursor(); - - if(Visible) { - Swapping = 1; - glFBDevSwapBuffers(Buffer); - Swapping = 0; - } - - /* if there was a vt switch while swapping, switch now */ - if(VTSwitch) { - if(ioctl(ConsoleFD, VT_ACTIVATE, VTSwitch) < 0) - sprintf(exiterror, "Error switching console\n"); - VTSwitch = 0; - } -} - -void glutPositionWindow(int x, int y) -{ -} - -void glutReshapeWindow(int width, int height) -{ - if(GameMode) - return; - - if(!ParseFBModes(width, width, height, height, 0, MAX_VSYNC)) - return; - - signal(SIGWINCH, SIG_IGN); - - SetVideoMode(); - signal(SIGWINCH, SignalWinch); - Resized = 1; -} - -void glutFullScreen(void) -{ -} - -void glutPopWindow(void) -{ -} - -void glutPushWindow(void) -{ -} - -void glutShowWindow(void) -{ - Visible = 1; -} - -void glutHideWindow(void) -{ - Visible = 0; -} - -static void UnIconifyWindow(int sig) -{ - if(ConsoleFD == 0) - InitializeVT(1); - else - if(ConsoleFD > 0) - InitializeVT(0); - if (ioctl(FrameBufferFD, FBIOPUT_VSCREENINFO, &VarInfo)) { - sprintf(exiterror, "ioctl(FBIOPUT_VSCREENINFO failed): %s\n", - strerror(errno)); - exit(0); - } - - RestoreColorMap(); - - Redisplay = 1; - VisibleSwitch = 1; - Visible = 1; -} - -void glutIconifyWindow(void) -{ - RestoreVT(); - signal(SIGCONT, UnIconifyWindow); - if (ioctl(FrameBufferFD, FBIOPUT_VSCREENINFO, &OrigVarInfo)) - fprintf(stderr, "ioctl(FBIOPUT_VSCREENINFO failed): %s\n", - strerror(errno)); - - raise(SIGSTOP); -} - -void glutSetWindowTitle(const char *name) -{ - /* escape code to set title in screen */ - if(getenv("TERM") && memcmp(getenv("TERM"), "screen", 6) == 0) - printf("\033k%s\033\\", name); -} - -void glutSetIconTitle(const char *name) -{ -} diff --git a/src/glut/fbdev/gamemode.c b/src/glut/fbdev/gamemode.c deleted file mode 100644 index 30be36af7a..0000000000 --- a/src/glut/fbdev/gamemode.c +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <linux/fb.h> - -#include <GL/glut.h> - -#include "internal.h" - -int GameMode; - -static int ModePossible, DispChanged; -static struct fb_var_screeninfo NormVarInfo, GameVarInfo; - -static GLFBDevContextPtr GameContext; -static GLFBDevVisualPtr NormVisual; - -/* storage for non-gamemode callbacks */ -void (*KeyFuncs[2])(unsigned char key, int x, int y); -static void (*NormFuncs[8])(); - -static const char*SetOpers(const char *p, unsigned int *min, unsigned int *max) -{ - char *endptr; - int comp = *p, val, neq = 0; - - if(p[1] == '=') { - neq = 0; - p++; - } - - val = strtol(p+1, &endptr, 10); - if(endptr == p+1) - return p; - - switch(comp) { - case '=': - *min = *max = val; - break; - case '!': - *min = val + 1; - *max = val - 1; - break; - case '<': - *max = val - neq; - break; - case '>': - *min = val + neq; - break; - } - return endptr; -} - -void glutGameModeString(const char *string) -{ - const char *p = string; - unsigned int minb = 15, maxb = 32; - unsigned int minw = 0, maxw = -1; - unsigned int minh, maxh = -1; - unsigned int minf = 0, maxf = MAX_VSYNC; - char *endptr; - int count = -1, val; - - ModePossible = 0; - - if(DisplayMode & GLUT_INDEX) - minb = maxb = 8; - - again: - count++; - if((val = strtol(p, &endptr, 10)) && *endptr=='x') { - maxw = minw = val; - p = endptr + 1; - maxh = minh = strtol(p, &endptr, 10); - p = endptr; - goto again; - } - - if(*p == ':') { - minb = strtol(p+1, &endptr, 10); - p = endptr; - if(DisplayMode & GLUT_INDEX) { - if(minb != 8) - return; - } else - if(minb != 15 && minb != 16 && minb != 24 && minb != 32) - return; - maxb = minb; - goto again; - } - - if(*p == '@') { - minf = strtol(p+1, &endptr, 10) - 5; - maxf = minf + 10; - p = endptr; - goto again; - } - - if(count == 0) - while(*p) { - if(*p == ' ') - p++; - else - if(memcmp(p, "bpp", 3) == 0) - p = SetOpers(p+3, &minb, &maxb); - else - if(memcmp(p, "height", 6) == 0) - p = SetOpers(p+6, &minh, &maxh); - else - if(memcmp(p, "hertz", 5) == 0) - p = SetOpers(p+5, &minf, &maxf); - else - if(memcmp(p, "width", 5) == 0) - p = SetOpers(p+5, &minw, &maxw); - else - if(p = strchr(p, ' ')) - p++; - else - break; - } - - NormVarInfo = VarInfo; - if(!ParseFBModes(minw, maxw, minh, maxh, minf, maxf)) - return; - - GameVarInfo = VarInfo; - VarInfo = NormVarInfo; - - /* determine optimal bitdepth, make sure we have enough video memory */ - if(VarInfo.bits_per_pixel && VarInfo.bits_per_pixel <= maxb) - GameVarInfo.bits_per_pixel = VarInfo.bits_per_pixel; - else - GameVarInfo.bits_per_pixel = maxb; - - while(FixedInfo.smem_len < GameVarInfo.xres * GameVarInfo.yres - * GameVarInfo.bits_per_pixel / 8) { - if(GameVarInfo.bits_per_pixel < minb) - return; - GameVarInfo.bits_per_pixel = ((GameVarInfo.bits_per_pixel+1)/8)*8-8; - } - - ModePossible = 1; -} - -int glutEnterGameMode(void) -{ - if(ActiveMenu) - return 0; - - if(!ModePossible) - return 0; - - if(GameMode) { - if(!memcmp(&GameVarInfo, &VarInfo, sizeof VarInfo)) { - DispChanged = 0; - return 1; - } - glutLeaveGameMode(); - } - - if (ioctl(FrameBufferFD, FBIOPUT_VSCREENINFO, &GameVarInfo)) - return 0; - - NormVarInfo = VarInfo; - VarInfo = GameVarInfo; - - NormVisual = Visual; - SetVideoMode(); - CreateVisual(); - CreateBuffer(); - - if(!(GameContext = glFBDevCreateContext(Visual, NULL))) { - sprintf(exiterror, "Failure to create Context\n"); - exit(0); - } - - if(!glFBDevMakeCurrent( GameContext, Buffer, Buffer )) { - sprintf(exiterror, "Failure to Make Game Current\n"); - exit(0); - } - - InitializeCursor(); - - KeyFuncs[0] = KeyboardFunc; - KeyFuncs[1] = KeyboardUpFunc; - - NormFuncs[0] = DisplayFunc; - NormFuncs[1] = ReshapeFunc; - NormFuncs[2] = MouseFunc; - NormFuncs[3] = MotionFunc; - NormFuncs[4] = PassiveMotionFunc; - NormFuncs[5] = VisibilityFunc; - NormFuncs[6] = SpecialFunc; - NormFuncs[7] = SpecialUpFunc; - - DisplayFunc = NULL; - ReshapeFunc = NULL; - KeyboardFunc = NULL; - KeyboardUpFunc = NULL; - MouseFunc = NULL; - MotionFunc = NULL; - PassiveMotionFunc = NULL; - VisibilityFunc = NULL; - SpecialFunc = SpecialUpFunc = NULL; - - DispChanged = 1; - GameMode = 1; - Visible = 1; - VisibleSwitch = 1; - Redisplay = 1; - return 1; -} - -void glutLeaveGameMode(void) -{ - if(!GameMode) - return; - - glFBDevDestroyContext(GameContext); - glFBDevDestroyVisual(Visual); - - VarInfo = NormVarInfo; - Visual = NormVisual; - - if(Visual) { - SetVideoMode(); - CreateBuffer(); - - if(!glFBDevMakeCurrent( Context, Buffer, Buffer )) { - sprintf(exiterror, "Failure to Make Current\n"); - exit(0); - } - - Redisplay = 1; - } - - KeyboardFunc = KeyFuncs[0]; - KeyboardUpFunc = KeyFuncs[1]; - - DisplayFunc = NormFuncs[0]; - ReshapeFunc = NormFuncs[1]; - MouseFunc = NormFuncs[2]; - MotionFunc = NormFuncs[3]; - PassiveMotionFunc = NormFuncs[4]; - VisibilityFunc = NormFuncs[5]; - SpecialFunc = NormFuncs[6]; - SpecialUpFunc = NormFuncs[7]; - - GameMode = 0; -} - -int glutGameModeGet(GLenum mode) { - switch(mode) { - case GLUT_GAME_MODE_ACTIVE: - return GameMode; - case GLUT_GAME_MODE_POSSIBLE: - return ModePossible; - case GLUT_GAME_MODE_DISPLAY_CHANGED: - return DispChanged; - } - - if(!ModePossible) - return -1; - - switch(mode) { - case GLUT_GAME_MODE_WIDTH: - return GameVarInfo.xres; - case GLUT_GAME_MODE_HEIGHT: - return GameVarInfo.yres; - case GLUT_GAME_MODE_PIXEL_DEPTH: - return GameVarInfo.bits_per_pixel; - case GLUT_GAME_MODE_REFRESH_RATE: - return 1E12/GameVarInfo.pixclock - / (GameVarInfo.left_margin + GameVarInfo.xres - + GameVarInfo.right_margin + GameVarInfo.hsync_len) - / (GameVarInfo.upper_margin + GameVarInfo.yres - + GameVarInfo.lower_margin + GameVarInfo.vsync_len); - } -} diff --git a/src/glut/fbdev/input.c b/src/glut/fbdev/input.c deleted file mode 100644 index 1445682c76..0000000000 --- a/src/glut/fbdev/input.c +++ /dev/null @@ -1,828 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <errno.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <unistd.h> -#include <termios.h> -#include <inttypes.h> - -#include <sys/ioctl.h> -#include <sys/poll.h> -#include <sys/kd.h> - -#include <linux/keyboard.h> -#include <linux/fb.h> -#include <linux/vt.h> - -#include <GL/glut.h> - -#include "internal.h" - -#define MOUSEDEV "/dev/gpmdata" - -#ifdef HAVE_GPM -#include <gpm.h> -int GpmMouse; -#endif - -int CurrentVT = 0; -int ConsoleFD = -1; - -int KeyboardModifiers; - -int MouseX, MouseY; -int NumMouseButtons; - -double MouseSpeed = 0; - -int KeyRepeatMode = GLUT_KEY_REPEAT_DEFAULT; - -int MouseVisible = 0; -int LastMouseTime = 0; - -static int OldKDMode = -1; -static int OldMode = KD_TEXT; -static struct vt_mode OldVTMode; -static struct termios OldTermios; - -static int KeyboardLedState; - -static int MouseFD; - -static int kbdpipe[2]; - -static int LastStdinKeyTime, LastStdinSpecialKey = -1, LastStdinCode = -1; - -#define MODIFIER(mod) \ - KeyboardModifiers = release ? KeyboardModifiers & ~mod \ - : KeyboardModifiers | mod; - -/* signal handler attached to SIGIO on keyboard input, vt - switching and modifiers is handled in the signal handler - other keypresses read from a pipe that leaves the handler - if a program locks up the glut loop, you can still switch - vts and kill it without Alt-SysRq hack */ -static void KeyboardHandler(int sig) -{ - unsigned char code; - - while(read(ConsoleFD, &code, 1) == 1) { - int release, labelval; - struct kbentry entry; - static int lalt; /* only left alt does vt switch */ - - release = code & 0x80; - - entry.kb_index = code & 0x7F; - entry.kb_table = 0; - - if (ioctl(ConsoleFD, KDGKBENT, &entry) < 0) { - sprintf(exiterror, "ioctl(KDGKBENT) failed.\n"); - exit(0); - } - - labelval = entry.kb_value; - - switch(labelval) { - case K_SHIFT: - case K_SHIFTL: - MODIFIER(GLUT_ACTIVE_SHIFT); - continue; - case K_CTRL: - MODIFIER(GLUT_ACTIVE_CTRL); - continue; - case K_ALT: - lalt = !release; - case K_ALTGR: - MODIFIER(GLUT_ACTIVE_ALT); - continue; - } - - if(lalt && !release) { - /* VT switch, we must do it */ - int vt = -1; - struct vt_stat st; - if(labelval >= K_F1 && labelval <= K_F12) - vt = labelval - K_F1 + 1; - - if(labelval == K_LEFT) - if(ioctl(ConsoleFD, VT_GETSTATE, &st) >= 0) - vt = st.v_active - 1; - - if(labelval == K_RIGHT) - if(ioctl(ConsoleFD, VT_GETSTATE, &st) >= 0) - vt = st.v_active + 1; - - if(vt != -1) { - if(Swapping) - VTSwitch = vt; - else - if(ioctl(ConsoleFD, VT_ACTIVATE, vt) < 0) - sprintf(exiterror, "Error switching console\n"); - continue; - } - } - write(kbdpipe[1], &code, 1); - } -} - -static void LedModifier(int led, int release) -{ - static int releaseflag = K_CAPS | K_NUM | K_HOLD; - if(release) - releaseflag |= led; - else - if(releaseflag & led) { - KeyboardLedState ^= led; - releaseflag &= ~led; - } - - ioctl(ConsoleFD, KDSKBLED, KeyboardLedState); - ioctl(ConsoleFD, KDSETLED, 0x80); -} - -static void HandleKeyPress(unsigned char key, int up) -{ - if(up) { - if(KeyboardUpFunc) - KeyboardUpFunc(key, MouseX, MouseY); - } else - if(KeyboardFunc) - KeyboardFunc(key, MouseX, MouseY); - else - if(key == 27) - exit(0); /* no handler, to provide a way to exit */ -} - -static void HandleSpecialPress(int key, int up) -{ - if(up) { - if(SpecialUpFunc) - SpecialUpFunc(key, MouseX, MouseY); - } else - if(SpecialFunc) - SpecialFunc(key, MouseX, MouseY); -} - -static void ReleaseStdinKey(void) -{ - if(LastStdinSpecialKey != -1) { - HandleSpecialPress(LastStdinSpecialKey, 1); - LastStdinSpecialKey = -1; - } - if(LastStdinCode != -1) { - HandleKeyPress(LastStdinCode, 1); - LastStdinCode = -1; - } -} - -#define READKEY read(kbdpipe[0], &code, 1) -static int ReadKey(void) -{ - int release, labelval, labelvalnoshift; - unsigned char code; - int specialkey = 0; - struct kbentry entry; - - if(READKEY != 1) { - /* if we are reading from stdin, we detect key releases when the key - does not repeat after a given timeout */ - if(ConsoleFD == 0 && LastStdinKeyTime + 100 < glutGet(GLUT_ELAPSED_TIME)) - ReleaseStdinKey(); - return 0; - } - - if(code == 0) - return 0; - - /* stdin input escape code based */ - if(ConsoleFD == 0) { - KeyboardModifiers = 0; - altset: - if(code == 27 && READKEY == 1) { - if(code != 91) { - KeyboardModifiers |= GLUT_ACTIVE_ALT; - goto altset; - } - READKEY; - switch(code) { - case 68: - specialkey = GLUT_KEY_LEFT; break; - case 65: - specialkey = GLUT_KEY_UP; break; - case 67: - specialkey = GLUT_KEY_RIGHT; break; - case 66: - specialkey = GLUT_KEY_DOWN; break; - case 52: - specialkey = GLUT_KEY_END; READKEY; break; - case 53: - specialkey = GLUT_KEY_PAGE_UP; READKEY; break; - case 54: - specialkey = GLUT_KEY_PAGE_DOWN; READKEY; break; - case 49: - READKEY; - if(code == 126) - specialkey = GLUT_KEY_HOME; - else { - specialkey = GLUT_KEY_F1 + code - 50; - READKEY; - } - break; - case 50: - READKEY; - if(code == 126) - specialkey = GLUT_KEY_INSERT; - else { - if(code > '1') - code--; - if(code > '6') - code--; - if(code > '3') { - KeyboardModifiers |= GLUT_ACTIVE_SHIFT; - code -= 12; - } - specialkey = GLUT_KEY_F1 + code - 40; - READKEY; - } - break; - case 51: - READKEY; - if(code == 126) { - code = '\b'; - goto stdkey; - } - KeyboardModifiers |= GLUT_ACTIVE_SHIFT; - specialkey = GLUT_KEY_F1 + code - 45; - READKEY; - break; - case 91: - READKEY; - specialkey = GLUT_KEY_F1 + code - 65; - break; - default: - return 0; - } - } - - if(specialkey) { - LastStdinKeyTime = glutGet(GLUT_ELAPSED_TIME); - - if(LastStdinSpecialKey != specialkey) { - ReleaseStdinKey(); - HandleSpecialPress(specialkey, 0); - LastStdinSpecialKey = specialkey; - LastStdinKeyTime += 200; /* initial repeat */ - } else - if(KeyRepeatMode != GLUT_KEY_REPEAT_OFF) - HandleSpecialPress(specialkey, 0); - } else { - if(code >= 1 && code <= 26 && code != '\r') { - KeyboardModifiers |= GLUT_ACTIVE_CTRL; - code += 'a' - 1; - } - if((code >= 43 && code <= 34) || (code == 60) - || (code >= 62 && code <= 90) || (code == 94) - || (code == 95) || (code >= 123 && code <= 126)) - KeyboardModifiers |= GLUT_ACTIVE_SHIFT; - - stdkey: - LastStdinKeyTime = glutGet(GLUT_ELAPSED_TIME); - if(LastStdinCode != code) { - ReleaseStdinKey(); - HandleKeyPress(code, 0); - LastStdinCode = code; - LastStdinKeyTime += 200; /* initial repeat */ - } else - if(KeyRepeatMode != GLUT_KEY_REPEAT_OFF) - HandleSpecialPress(code, 0); - } - return 1; - } - - /* linux kbd reading */ - release = code & 0x80; - code &= 0x7F; - - if(KeyRepeatMode == GLUT_KEY_REPEAT_OFF) { - static char keystates[128]; - if(release) - keystates[code] = 0; - else { - if(keystates[code]) - return 1; - keystates[code] = 1; - } - } - - entry.kb_index = code; - entry.kb_table = 0; - - if (ioctl(ConsoleFD, KDGKBENT, &entry) < 0) { - sprintf(exiterror, "ioctl(KDGKBENT) failed.\n"); - exit(0); - } - - labelvalnoshift = entry.kb_value; - - if(KeyboardModifiers & GLUT_ACTIVE_SHIFT) - entry.kb_table |= K_SHIFTTAB; - - if (ioctl(ConsoleFD, KDGKBENT, &entry) < 0) { - sprintf(exiterror, "ioctl(KDGKBENT) failed.\n"); - exit(0); - } - - labelval = entry.kb_value; - - switch(labelvalnoshift) { - case K_CAPS: - LedModifier(LED_CAP, release); - return 0; - case K_NUM: - LedModifier(LED_NUM, release); - return 0; - case K_HOLD: /* scroll lock suspends glut */ - LedModifier(LED_SCR, release); - while(KeyboardLedState & LED_SCR) { - usleep(10000); - ReadKey(); - } - return 0; - } - - /* we could queue keypresses here */ - if(KeyboardLedState & LED_SCR) - return 0; - - if(labelvalnoshift >= K_F1 && labelvalnoshift <= K_F12) - specialkey = GLUT_KEY_F1 + labelvalnoshift - K_F1; - else - switch(labelvalnoshift) { - case K_LEFT: - specialkey = GLUT_KEY_LEFT; break; - case K_UP: - specialkey = GLUT_KEY_UP; break; - case K_RIGHT: - specialkey = GLUT_KEY_RIGHT; break; - case K_DOWN: - specialkey = GLUT_KEY_DOWN; break; - case K_PGUP: - specialkey = GLUT_KEY_PAGE_UP; break; - case K_PGDN: - specialkey = GLUT_KEY_PAGE_DOWN; break; - case K_FIND: - specialkey = GLUT_KEY_HOME; break; - case K_SELECT: - specialkey = GLUT_KEY_END; break; - case K_INSERT: - specialkey = GLUT_KEY_INSERT; break; - case K_REMOVE: - labelval = '\b'; - break; - case K_ENTER: - labelval = '\r'; break; - } - - /* likely a keypad input, but depends on keyboard mapping, ignore */ - if(labelval == 512) - return 1; - - /* dispatch callback */ - if(specialkey) - HandleSpecialPress(specialkey, release); - else { - char c = labelval; - - if(KeyboardLedState & LED_CAP) { - if(c >= 'A' && c <= 'Z') - c += 'a' - 'A'; - else - if(c >= 'a' && c <= 'z') - c += 'A' - 'a'; - } - HandleKeyPress(c, release); - } - return 1; -} - -void glutIgnoreKeyRepeat(int ignore) -{ - KeyRepeatMode = ignore ? GLUT_KEY_REPEAT_OFF : GLUT_KEY_REPEAT_ON; -} - -void glutSetKeyRepeat(int repeatMode) -{ - KeyRepeatMode = repeatMode; -} - -void glutForceJoystickFunc(void) -{ -} - -static void HandleMousePress(int button, int pressed) -{ - if(TryMenu(button, pressed)) - return; - - if(MouseFunc) - MouseFunc(button, pressed ? GLUT_DOWN : GLUT_UP, MouseX, MouseY); -} - -static int ReadMouse(void) -{ - int l, r, m; - static int ll, lm, lr; - signed char dx, dy; - -#ifdef HAVE_GPM - if(GpmMouse) { - Gpm_Event event; - struct pollfd pfd; - pfd.fd = gpm_fd; - pfd.events = POLLIN; - if(poll(&pfd, 1, 1) != 1) - return 0; - - if(Gpm_GetEvent(&event) != 1) - return 0; - - l = event.buttons & GPM_B_LEFT; - m = event.buttons & GPM_B_MIDDLE; - r = event.buttons & GPM_B_RIGHT; - - /* gpm is weird in that it gives a button number when the button - is released, with type set to GPM_UP, this is only a problem - if it is the last button released */ - - if(event.type & GPM_UP) - if(event.buttons == GPM_B_LEFT || event.buttons == GPM_B_MIDDLE || - event.buttons == GPM_B_RIGHT || event.buttons == GPM_B_FOURTH) - l = m = r = 0; - - dx = event.dx; - dy = event.dy; - } else -#endif - { - char data[4]; - - if(MouseFD == -1) - return 0; - - if(read(MouseFD, data, 4) != 4) - return 0; - - l = ((data[0] & 0x20) >> 3); - m = ((data[3] & 0x10) >> 3); - r = ((data[0] & 0x10) >> 4); - - dx = (((data[0] & 0x03) << 6) | (data[1] & 0x3F)); - dy = (((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); - } - - MouseX += dx * MouseSpeed; - if(MouseX < 0) - MouseX = 0; - else - if(MouseX >= VarInfo.xres) - MouseX = VarInfo.xres - 1; - - MouseY += dy * MouseSpeed; - if(MouseY < 0) - MouseY = 0; - else - if(MouseY >= VarInfo.yres) - MouseY = VarInfo.yres - 1; - - if(l != ll) - HandleMousePress(GLUT_LEFT_BUTTON, l); - if(m != lm) - HandleMousePress(GLUT_MIDDLE_BUTTON, m); - if(r != lr) - HandleMousePress(GLUT_RIGHT_BUTTON, r); - - ll = l, lm = m, lr = r; - - if(dx || dy || !MouseVisible) { - if(l || m || r) { - if(MotionFunc) - MotionFunc(MouseX, MouseY); - } else - if(PassiveMotionFunc) - PassiveMotionFunc(MouseX, MouseY); - - EraseCursor(); - - MouseVisible = 1; - - if(ActiveMenu) - Redisplay = 1; - else - SwapCursor(); - } - - LastMouseTime = glutGet(GLUT_ELAPSED_TIME); - - return 1; -} - -void ReceiveInput(void) -{ - if(ConsoleFD != -1) - while(ReadKey()); - - while(ReadMouse()); - - /* implement a 2 second timeout on the mouse */ - if(MouseVisible && glutGet(GLUT_ELAPSED_TIME) - LastMouseTime > 2000) { - EraseCursor(); - MouseVisible = 0; - SwapCursor(); - } -} - -static void VTSwitchHandler(int sig) -{ - struct vt_stat st; - switch(sig) { - case SIGUSR1: - ioctl(ConsoleFD, VT_RELDISP, 1); - Active = 0; -#ifdef MULTIHEAD - VisiblePoll = 1; - TestVisible(); -#else - VisibleSwitch = 1; - Visible = 0; -#endif - break; - case SIGUSR2: - ioctl(ConsoleFD, VT_GETSTATE, &st); - if(st.v_active) - ioctl(ConsoleFD, VT_RELDISP, VT_ACKACQ); - - RestoreColorMap(); - - Active = 1; - Visible = 1; - VisibleSwitch = 1; - - Redisplay = 1; - break; - } -} - -void InitializeVT(int usestdin) -{ - struct termios tio; - struct vt_mode vt; - char console[128]; - - signal(SIGIO, SIG_IGN); - - Active = 1; - - if(usestdin) { - ConsoleFD = 0; - goto setattribs; - } - - /* detect the current vt if it was not specified */ - if(CurrentVT == 0) { - int fd = open("/dev/tty", O_RDWR | O_NDELAY, 0); - struct vt_stat st; - if(fd == -1) { - sprintf(exiterror, "Failed to open /dev/tty\n"); - exit(0); - } - - if(ioctl(fd, VT_GETSTATE, &st) == -1) { - fprintf(stderr, "Could not detect current vt, specify with -vt\n"); - fprintf(stderr, "Defaulting to stdin input\n"); - ConsoleFD = 0; - close(fd); - goto setattribs; - } - - CurrentVT = st.v_active; - close(fd); - } - - /* if we close with the modifier set in glutIconifyWindow, we won't - get the signal when they are released, so set to zero here */ - KeyboardModifiers = 0; - - /* open the console tty */ - sprintf(console, "/dev/tty%d", CurrentVT); - ConsoleFD = open(console, O_RDWR | O_NDELAY, 0); - if (ConsoleFD < 0) { - sprintf(exiterror, "error couldn't open %s," - " defaulting to stdin \n", console); - ConsoleFD = 0; - goto setattribs; - } - - signal(SIGUSR1, VTSwitchHandler); - signal(SIGUSR2, VTSwitchHandler); - - if (ioctl(ConsoleFD, VT_GETMODE, &OldVTMode) < 0) { - sprintf(exiterror,"Failed to grab %s, defaulting to stdin\n", console); - close(ConsoleFD); - ConsoleFD = 0; - goto setattribs; - } - - vt = OldVTMode; - - vt.mode = VT_PROCESS; - vt.waitv = 0; - vt.relsig = SIGUSR1; - vt.acqsig = SIGUSR2; - if (ioctl(ConsoleFD, VT_SETMODE, &vt) < 0) { - sprintf(exiterror, "error: ioctl(VT_SETMODE) failed: %s\n", - strerror(errno)); - close(ConsoleFD); - ConsoleFD = 0; - exit(1); - } - - if (ioctl(ConsoleFD, KDGKBMODE, &OldKDMode) < 0) { - sprintf(exiterror, "Warning: ioctl KDGKBMODE failed!\n"); - OldKDMode = K_XLATE; - } - - /* use SIGIO so VT switching can work if the program is locked */ - signal(SIGIO, KeyboardHandler); - - pipe(kbdpipe); - - if(fcntl(kbdpipe[0], F_SETFL, O_NONBLOCK | O_ASYNC) < 0) { - sprintf(exiterror, "Failed to set keyboard to non-blocking\n"); - exit(0); - } - - fcntl(ConsoleFD, F_SETOWN, getpid()); - - if(ioctl(ConsoleFD, KDGETMODE, &OldMode) < 0) - sprintf(exiterror, "Warning: Failed to get terminal mode\n"); - -#ifdef HAVE_GPM - if(!GpmMouse) -#endif - if(ioctl(ConsoleFD, KDSETMODE, KD_GRAPHICS) < 0) - sprintf(exiterror,"Warning: Failed to set terminal to graphics\n"); - - if(ioctl(ConsoleFD, KDSKBMODE, K_MEDIUMRAW) < 0) { - sprintf(exiterror, "ioctl KDSKBMODE failed!\n"); - exit(0); - } - - if(ioctl(ConsoleFD, KDGKBLED, &KeyboardLedState) < 0) { - sprintf(exiterror, "ioctl KDGKBLED failed!\n"); - exit(0); - } - - setattribs: - /* enable async input input */ - if(fcntl(ConsoleFD, F_SETFL, O_ASYNC) < 0) { - sprintf(exiterror, "Failed to set O_ASYNC mode on fd %d\n", ConsoleFD); - exit(0); - } - - /* save old terminos settings */ - if (tcgetattr(ConsoleFD, &OldTermios) < 0) { - sprintf(exiterror, "tcgetattr failed\n"); - exit(0); - } - - tio = OldTermios; - - /* terminos settings for straight-through mode */ - tio.c_lflag &= ~(ICANON | ECHO | ISIG); - tio.c_iflag &= ~(ISTRIP | IGNCR | ICRNL | INLCR | IXOFF | IXON); - tio.c_iflag |= IGNBRK; - - tio.c_cc[VMIN] = 0; - tio.c_cc[VTIME] = 0; - - if (tcsetattr(ConsoleFD, TCSANOW, &tio) < 0) { - sprintf(exiterror, "tcsetattr failed\n"); - exit(0); - } -} - -void RestoreVT(void) -{ - if(ConsoleFD < 0) - return; - - if (tcsetattr(ConsoleFD, TCSANOW, &OldTermios) < 0) - sprintf(exiterror, "tcsetattr failed\n"); - - /* setting the mode to text from graphics restores the colormap */ - if( -#ifdef HAVE_GPM - !GpmMouse || -#endif - ConsoleFD == 0) - if(ioctl(ConsoleFD, KDSETMODE, KD_GRAPHICS) < 0) - goto skipioctl; /* no need to fail twice */ - - if(ioctl(ConsoleFD, KDSETMODE, OldMode) < 0) - fprintf(stderr, "ioctl KDSETMODE failed!\n"); - - skipioctl: - - if(ConsoleFD == 0) - return; - - /* restore keyboard state */ - if (ioctl(ConsoleFD, VT_SETMODE, &OldVTMode) < 0) - fprintf(stderr, "Failed to set vtmode\n"); - - if (ioctl(ConsoleFD, KDSKBMODE, OldKDMode) < 0) - fprintf(stderr, "ioctl KDSKBMODE failed!\n"); - - close(ConsoleFD); - - close(kbdpipe[0]); - close(kbdpipe[1]); -} - -void InitializeMouse(void) -{ -#ifdef HAVE_GPM - if(!GpmMouse) -#endif - { - const char *mousedev = getenv("MOUSE"); - if(!mousedev) - mousedev = MOUSEDEV; - if((MouseFD = open(mousedev, O_RDONLY | O_NONBLOCK)) >= 0) { - if(!MouseSpeed) - MouseSpeed = 1; - NumMouseButtons = 3; - return; - } - } -#ifdef HAVE_GPM - { - Gpm_Connect conn; - int c; - conn.eventMask = ~0; /* Want to know about all the events */ - conn.defaultMask = 0; /* don't handle anything by default */ - conn.minMod = 0; /* want everything */ - conn.maxMod = ~0; /* all modifiers included */ - if(Gpm_Open(&conn, 0) != -1) { - if(!MouseSpeed) - MouseSpeed = 8; - NumMouseButtons = 3; - return; - } - fprintf(stderr, "Cannot open gpmctl.\n"); - } -#endif - fprintf(stderr,"Cannot open %s.\n" - "Continuing without Mouse\n", MOUSEDEV); -} - -void CloseMouse(void) -{ -#ifdef HAVE_GPM - if(GpmMouse) { - if(NumMouseButtons) - Gpm_Close(); - } else -#endif - if(MouseFD >= 0) - close(MouseFD); -} diff --git a/src/glut/fbdev/internal.h b/src/glut/fbdev/internal.h deleted file mode 100644 index 0a159d96b0..0000000000 --- a/src/glut/fbdev/internal.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <sys/time.h> -#include <linux/fb.h> -#include <GL/glfbdev.h> - -#define MULTIHEAD /* enable multihead hacks, - it allows the program to continue drawing - without reading input when a second fbdev - has keyboard focus it can cause - screen corruption that requires C-l to fix */ -#define HAVE_GPM - -#define MAX_VSYNC 200 - -/* this causes these symbols to not be exported */ -#pragma GCC visibility push(hidden) - - -/* --------- fbdev ------------ */ -extern int Redisplay; -extern int Visible; -extern int VisibleSwitch; -extern int Active; -extern int VisiblePoll; -extern int Swapping, VTSwitch; - -void TestVisible(void); -int ParseFBModes(int, int, int, int, int, int); -void SetVideoMode(void); -void CreateBuffer(void); -void CreateVisual(void); - -extern int FrameBufferFD; -extern unsigned char *FrameBuffer; -extern unsigned char *BackBuffer; -extern int DisplayMode; - -extern char exiterror[256]; - -extern struct fb_fix_screeninfo FixedInfo; -extern struct fb_var_screeninfo VarInfo; - -extern GLFBDevContextPtr Context; -extern GLFBDevBufferPtr Buffer; -extern GLFBDevVisualPtr Visual; - -/* --- colormap --- */ -#define REVERSECMAPSIZELOG 3 -#define REVERSECMAPSIZE (1<<REVERSECMAPSIZELOG) - -extern unsigned short RedColorMap[256], - GreenColorMap[256], - BlueColorMap[256]; -extern unsigned char ReverseColorMap[REVERSECMAPSIZE] - [REVERSECMAPSIZE] - [REVERSECMAPSIZE]; - -void LoadColorMap(void); -void RestoreColorMap(void); - -/* --- mouse --- */ -extern int MouseX, MouseY; -extern int CurrentCursor; -extern int MouseVisible; -extern int LastMouseTime; -extern int NumMouseButtons; - -void InitializeCursor(void); -void EraseCursor(void); -void DrawCursor(void); -void SwapCursor(void); - -/* --- menus --- */ -struct GlutMenu { - int NumItems; - int x, y; - int width; - int selected; - struct { - int value; - int submenu; - char *name; - } *Items; - void (*func)(int); -}; - -extern struct GlutMenu *Menus; - -extern int ActiveMenu; -extern int CurrentMenu; - -void InitializeMenus(void); -void FreeMenus(void); -void DrawMenus(void); - -int TryMenu(int, int); -void OpenMenu(void); -void CloseMenu(void); - -/* --- state --- */ -extern int AccumSize, DepthSize, StencilSize, NumSamples; -extern struct timeval StartTime; -extern int KeyboardModifiers; - -/* --- input --- */ -#ifdef HAVE_GPM -extern int GpmMouse; -#endif - -extern int CurrentVT; -extern int ConsoleFD; - -extern double MouseSpeed; - -extern int KeyRepeatMode; - -void InitializeVT(int); -void RestoreVT(void); -void CloseMouse(void); -void InitializeMouse(void); - -void ReceiveInput(void); - -/* --- callback --- */ -extern void (*DisplayFunc)(void); -extern void (*ReshapeFunc)(int width, int height); -extern void (*KeyboardFunc)(unsigned char key, int x, int y); -extern void (*KeyboardUpFunc)(unsigned char key, int x, int y); -extern void (*MouseFunc)(int key, int state, int x, int y); -extern void (*MotionFunc)(int x, int y); -extern void (*PassiveMotionFunc)(int x, int y); -extern void (*VisibilityFunc)(int state); -extern void (*SpecialFunc)(int key, int x, int y); -extern void (*SpecialUpFunc)(int key, int x, int y); -extern void (*IdleFunc)(void); -extern void (*MenuStatusFunc)(int state, int x, int y); -extern void (*MenuStateFunc)(int state); - -/* --- timers --- */ -struct GlutTimer { - int time; - void (*func)(int); - int value; - struct GlutTimer *next; -}; - -extern struct GlutTimer *GlutTimers; - -/* ------- Game Mode -------- */ -extern int GameMode; - -#pragma GCC visibility pop diff --git a/src/glut/fbdev/menu.c b/src/glut/fbdev/menu.c deleted file mode 100644 index 4ab4eb30d4..0000000000 --- a/src/glut/fbdev/menu.c +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include <linux/fb.h> - -#include <GL/glut.h> - -#include "internal.h" - -#define MENU_FONT_WIDTH 9 -#define MENU_FONT_HEIGHT 15 -#define MENU_FONT GLUT_BITMAP_9_BY_15 -#define SUBMENU_OFFSET 20 - -struct GlutMenu *Menus; -int ActiveMenu; -int CurrentMenu; - -static double MenuProjection[16]; - -static int AttachedMenus[3]; -static int NumMenus = 1; -static int SelectedMenu; - -void InitializeMenus(void) -{ - glPushAttrib(GL_TRANSFORM_BIT); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - gluOrtho2D(0.0, VarInfo.xres, VarInfo.yres, 0.0); - glGetDoublev(GL_PROJECTION_MATRIX, MenuProjection); - - glPopMatrix(); - glPopAttrib(); -} - -void FreeMenus(void) -{ - int i, j; - - for(i = 1; i<NumMenus; i++) { - for(j = 0; j<Menus[i].NumItems; j++) - free(Menus[i].Items[j].name); - free(Menus[i].Items); - } - - free(Menus); -} - -int TryMenu(int button, int pressed) -{ - if(ActiveMenu && !pressed) { - ActiveMenu = 0; - CloseMenu(); - Redisplay = 1; - return 1; - } - - if(AttachedMenus[button] && pressed) { - ActiveMenu = AttachedMenus[button]; - OpenMenu(); - Redisplay = 1; - return 1; - } - return 0; -} - -static int DrawMenu(int menu, int x, int *y) -{ - int i; - int ret = 1; - - for(i=0; i < Menus[menu].NumItems; i++) { - char *s = Menus[menu].Items[i].name; - int a = 0; - if(MouseY >= *y && MouseY < *y + MENU_FONT_HEIGHT && - MouseX >= x && MouseX < x + Menus[menu].width) { - a = 1; - SelectedMenu = menu; - ret = 0; - Menus[menu].selected = i; - glColor3f(1,0,0); - } else - glColor3f(1,1,1); - - *y += MENU_FONT_HEIGHT; - glRasterPos2i(x, *y); - for(; *s; s++) - glutBitmapCharacter(MENU_FONT, *s); - - if(Menus[menu].selected == i) - if(Menus[menu].Items[i].submenu) - if(DrawMenu(Menus[menu].Items[i].submenu, x - + SUBMENU_OFFSET, y)) { - if(!a) - Menus[menu].selected = -1; - } else - ret = 0; - } - return ret; -} - -void DrawMenus(void) -{ - int x, y; - - if(GameMode) - return; - - x = Menus[ActiveMenu].x; - y = Menus[ActiveMenu].y; - - /* save old settings */ - glPushAttrib(GL_COLOR_BUFFER_BIT | GL_CURRENT_BIT - | GL_ENABLE_BIT | GL_VIEWPORT_BIT); - - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadIdentity(); - - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadMatrixd(MenuProjection); - glViewport(0, 0, VarInfo.xres, VarInfo.yres); - - glDisable(GL_DEPTH_TEST); - glDisable(GL_ALPHA_TEST); - glDisable(GL_LIGHTING); - glDisable(GL_FOG); - glDisable(GL_TEXTURE_2D); - glEnable(GL_COLOR_LOGIC_OP); - glLogicOp(GL_AND_REVERSE); - - if(DrawMenu(ActiveMenu, x, &y)) - Menus[ActiveMenu].selected = -1; - - /* restore settings */ - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - - glPopAttrib(); -} - -void OpenMenu(void) -{ - if(MenuStatusFunc) - MenuStatusFunc(GLUT_MENU_IN_USE, MouseX, MouseY); - if(MenuStateFunc) - MenuStateFunc(GLUT_MENU_IN_USE); - Menus[ActiveMenu].x = MouseX-Menus[ActiveMenu].width/2; - - if(Menus[ActiveMenu].x < 0) - Menus[ActiveMenu].x = 0; - if(Menus[ActiveMenu].x + Menus[ActiveMenu].width >= VarInfo.xres) - Menus[ActiveMenu].x = VarInfo.xres - Menus[ActiveMenu].width - 1; - - Menus[ActiveMenu].y = MouseY-Menus[ActiveMenu].NumItems*MENU_FONT_HEIGHT/2; - Menus[ActiveMenu].selected = -1; -} - -void CloseMenu(void) -{ - if(MenuStatusFunc) - MenuStatusFunc(GLUT_MENU_NOT_IN_USE, MouseX, MouseY); - if(MenuStateFunc) - MenuStateFunc(GLUT_MENU_NOT_IN_USE); - if(SelectedMenu > 0) { - int selected = Menus[SelectedMenu].selected; - if(selected >= 0) - if(Menus[SelectedMenu].Items[selected].submenu == 0) - Menus[SelectedMenu].func(Menus[SelectedMenu].Items - [selected].value); - } - -} - -/* glut menu functions */ - -int glutCreateMenu(void (*func)(int value)) -{ - CurrentMenu = NumMenus; - NumMenus++; - Menus = realloc(Menus, sizeof(*Menus) * NumMenus); - Menus[CurrentMenu].NumItems = 0; - Menus[CurrentMenu].Items = NULL; - Menus[CurrentMenu].func = func; - Menus[CurrentMenu].width = 0; - return CurrentMenu; -} - -void glutSetMenu(int menu) -{ - CurrentMenu = menu; -} - -int glutGetMenu(void) -{ - return CurrentMenu; -} - -void glutDestroyMenu(int menu) -{ - if(menu == CurrentMenu) - CurrentMenu = 0; -} - -static void NameMenuEntry(int entry, const char *name) -{ - int cm = CurrentMenu; - if(!(Menus[cm].Items[entry-1].name = realloc(Menus[cm].Items[entry-1].name, - strlen(name) + 1))) { - sprintf(exiterror, "realloc failed in NameMenuEntry\n"); - exit(0); - } - strcpy(Menus[cm].Items[entry-1].name, name); - if(strlen(name) * MENU_FONT_WIDTH > Menus[cm].width) - Menus[cm].width = strlen(name) * MENU_FONT_WIDTH; -} - -static int AddMenuItem(const char *name) -{ - int cm = CurrentMenu; - int item = Menus[cm].NumItems++; - if(!(Menus[cm].Items = realloc(Menus[cm].Items, - Menus[cm].NumItems * sizeof(*Menus[0].Items)))) { - sprintf(exiterror, "realloc failed in AddMenuItem\n"); - exit(0); - } - Menus[cm].Items[item].name = NULL; - NameMenuEntry(item+1, name); - return item; -} - -void glutAddMenuEntry(const char *name, int value) -{ - int item = AddMenuItem(name); - Menus[CurrentMenu].Items[item].value = value; - Menus[CurrentMenu].Items[item].submenu = 0; -} - -void glutAddSubMenu(const char *name, int menu) -{ - int item = AddMenuItem(name); - if(menu == CurrentMenu) { - sprintf(exiterror, "Recursive menus not supported\n"); - exit(0); - } - Menus[CurrentMenu].Items[item].submenu = menu; -} - -void glutChangeToMenuEntry(int entry, const char *name, int value) -{ - NameMenuEntry(entry, name); - Menus[CurrentMenu].Items[entry-1].value = value; - Menus[CurrentMenu].Items[entry-1].submenu = 0; -} - -void glutChangeToSubMenu(int entry, const char *name, int menu) -{ - NameMenuEntry(entry, name); - Menus[CurrentMenu].Items[entry-1].submenu = menu; -} - -void glutRemoveMenuItem(int entry) -{ - memmove(Menus[CurrentMenu].Items + entry - 1, - Menus[CurrentMenu].Items + entry, - sizeof(*Menus[0].Items) * (Menus[CurrentMenu].NumItems - entry)); - Menus[CurrentMenu].NumItems--; -} - -void glutAttachMenu(int button) -{ - AttachedMenus[button] = CurrentMenu; -} - -void glutDetachMenu(int button) -{ - AttachedMenus[button] = 0; -} diff --git a/src/glut/fbdev/overlay.c b/src/glut/fbdev/overlay.c deleted file mode 100644 index 374cf30e7d..0000000000 --- a/src/glut/fbdev/overlay.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <stdlib.h> -#include <GL/gl.h> - -void glutEstablishOverlay(void) -{ - exit(0); -} - -void glutUseLayer(GLenum layer) -{ -} - -void glutRemoveOverlay(void) -{ -} - -void glutPostOverlayRedisplay(void) -{ -} - -void glutPostWindowOverlayRedisplay(int win) -{ -} - -void glutShowOverlay(void) -{ -} - -void glutHideOverlay(void) -{ -} diff --git a/src/glut/fbdev/state.c b/src/glut/fbdev/state.c deleted file mode 100644 index 212a04aa02..0000000000 --- a/src/glut/fbdev/state.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -#include <string.h> -#include <sys/time.h> - -#include <linux/fb.h> - -#include <GL/glut.h> - -#include "../../mesa/main/config.h" - -#include "internal.h" - -int AccumSize = 16; /* per channel size of accumulation buffer */ -int DepthSize = DEFAULT_SOFTWARE_DEPTH_BITS; -int StencilSize = STENCIL_BITS; -int NumSamples = 4; - -int glutGet(GLenum state) -{ - switch(state) { - case GLUT_WINDOW_X: - return 0; - case GLUT_WINDOW_Y: - return 0; - case GLUT_INIT_WINDOW_WIDTH: - case GLUT_WINDOW_WIDTH: - case GLUT_SCREEN_WIDTH: - return VarInfo.xres; - case GLUT_INIT_WINDOW_HEIGHT: - case GLUT_WINDOW_HEIGHT: - case GLUT_SCREEN_HEIGHT: - return VarInfo.yres; - case GLUT_WINDOW_BUFFER_SIZE: - return VarInfo.bits_per_pixel; - case GLUT_WINDOW_STENCIL_SIZE: - return StencilSize; - case GLUT_WINDOW_DEPTH_SIZE: - return DepthSize; - case GLUT_WINDOW_RED_SIZE: - return VarInfo.red.length; - case GLUT_WINDOW_GREEN_SIZE: - return VarInfo.green.length; - case GLUT_WINDOW_BLUE_SIZE: - return VarInfo.green.length; - case GLUT_WINDOW_ALPHA_SIZE: - return VarInfo.transp.length; - case GLUT_WINDOW_ACCUM_RED_SIZE: - case GLUT_WINDOW_ACCUM_GREEN_SIZE: - case GLUT_WINDOW_ACCUM_BLUE_SIZE: - case GLUT_WINDOW_ACCUM_ALPHA_SIZE: - return AccumSize; - case GLUT_WINDOW_DOUBLEBUFFER: - if(DisplayMode & GLUT_DOUBLE) - return 1; - return 0; - case GLUT_WINDOW_RGBA: - if(DisplayMode & GLUT_INDEX) - return 0; - return 1; - case GLUT_WINDOW_PARENT: - return 0; - case GLUT_WINDOW_NUM_CHILDREN: - return 0; - case GLUT_WINDOW_COLORMAP_SIZE: - if(DisplayMode & GLUT_INDEX) - return 256; - return 0; - case GLUT_WINDOW_NUM_SAMPLES: - return NumSamples; - case GLUT_WINDOW_STEREO: - return 0; - case GLUT_WINDOW_CURSOR: - return CurrentCursor; - case GLUT_SCREEN_WIDTH_MM: - return VarInfo.width; - case GLUT_SCREEN_HEIGHT_MM: - return VarInfo.height; - case GLUT_MENU_NUM_ITEMS: - if(CurrentMenu) - return Menus[CurrentMenu].NumItems; - return 0; - case GLUT_DISPLAY_MODE_POSSIBLE: - if((DisplayMode & GLUT_MULTISAMPLE) - || (DisplayMode & GLUT_STEREO) - || (DisplayMode & GLUT_LUMINANCE) - || (DisplayMode & GLUT_ALPHA) && (DisplayMode & GLUT_INDEX)) - return 0; - return 1; - case GLUT_INIT_DISPLAY_MODE: - return DisplayMode; - case GLUT_INIT_WINDOW_X: - case GLUT_INIT_WINDOW_Y: - return 0; - case GLUT_ELAPSED_TIME: - { - static struct timeval tv; - gettimeofday(&tv, 0); - return 1000 * (tv.tv_sec - StartTime.tv_sec) - + (tv.tv_usec - StartTime.tv_usec) / 1000; - } - } - return -1; -} - -int glutLayerGet(GLenum info) -{ - switch(info) { - case GLUT_OVERLAY_POSSIBLE: - return 0; - case GLUT_LAYER_IN_USE: - return GLUT_NORMAL; - case GLUT_HAS_OVERLAY: - return 0; - case GLUT_TRANSPARENT_INDEX: - return -1; - case GLUT_NORMAL_DAMAGED: - return Redisplay; - case GLUT_OVERLAY_DAMAGED: - return -1; - } - return -1; -} - -int glutDeviceGet(GLenum info) -{ - switch(info) { - case GLUT_HAS_KEYBOARD: - return ConsoleFD != -1 ? 1 : 0; - case GLUT_HAS_MOUSE: - case GLUT_NUM_MOUSE_BUTTONS: - return NumMouseButtons; - case GLUT_HAS_SPACEBALL: - case GLUT_HAS_DIAL_AND_BUTTON_BOX: - case GLUT_HAS_TABLET: - return 0; - case GLUT_NUM_SPACEBALL_BUTTONS: - case GLUT_NUM_BUTTON_BOX_BUTTONS: - case GLUT_NUM_DIALS: - case GLUT_NUM_TABLET_BUTTONS: - return 0; - case GLUT_DEVICE_IGNORE_KEY_REPEAT: - return KeyRepeatMode == GLUT_KEY_REPEAT_OFF; - case GLUT_DEVICE_KEY_REPEAT: - return KeyRepeatMode; - case GLUT_JOYSTICK_POLL_RATE: - case GLUT_HAS_JOYSTICK: - case GLUT_JOYSTICK_BUTTONS: - case GLUT_JOYSTICK_AXES: - return 0; - } - return -1; -} - -int glutGetModifiers(void){ - return KeyboardModifiers; -} - -int glutExtensionSupported(const char *extension) -{ - const char *exts = (const char *) glGetString(GL_EXTENSIONS); - const char *start = exts; - int len = strlen(extension); - for(;;) { - const char *p = strstr(exts, extension); - if(!p) - break; - if((p == start || p[-1] == ' ') && (p[len] == ' ' || p[len] == 0)) - return 1; - exts = p + len; - } - return 0; -} diff --git a/src/glut/fbdev/stroke.c b/src/glut/fbdev/stroke.c deleted file mode 100644 index 1943ac661b..0000000000 --- a/src/glut/fbdev/stroke.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - * - * To improve on this library, maybe support subwindows or overlays, - * I (sean at depagnier dot com) will do my best to help. - */ - -#include <GL/glut.h> -#include "glutstroke.h" - -void glutStrokeCharacter(GLUTstrokeFont font, int c) -{ - const StrokeCharRec *ch; - const StrokeRec *stroke; - const CoordRec *coord; - StrokeFontPtr fontinfo = (StrokeFontPtr) font; - int i, j; - - if (c < 0 || c >= fontinfo->num_chars) - return; - ch = &(fontinfo->ch[c]); - if (ch) { - for (i = ch->num_strokes, stroke = ch->stroke; - i > 0; i--, stroke++) { - glBegin(GL_LINE_STRIP); - for (j = stroke->num_coords, coord = stroke->coord; - j > 0; j--, coord++) { - glVertex2f(coord->x, coord->y); - } - glEnd(); - } - glTranslatef(ch->right, 0.0, 0.0); - } -} - -int glutStrokeWidth(GLUTstrokeFont font, int c) -{ - StrokeFontPtr fontinfo; - const StrokeCharRec *ch; - - fontinfo = (StrokeFontPtr) font; - - if (c < 0 || c >= fontinfo->num_chars) - return 0; - ch = &(fontinfo->ch[c]); - if (ch) - return ch->right; - - return 0; -} - -int glutStrokeLength(GLUTstrokeFont font, const unsigned char *string) -{ - int length = 0; - - for (; *string; string++) - length += glutStrokeWidth(font, *string); - return length; -} diff --git a/src/glut/fbdev/vidresize.c b/src/glut/fbdev/vidresize.c deleted file mode 100644 index 960b018623..0000000000 --- a/src/glut/fbdev/vidresize.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * Copyright (C) 1995-2006 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Library for glut using mesa fbdev driver - * - * Written by Sean D'Epagnier (c) 2006 - */ - -/* Notice, if you know how to implement these functions correctly - please proceed */ - -#include <stdlib.h> - -#include <GL/glut.h> - -#include "internal.h" - -int glutVideoResizeGet(GLenum param) -{ - return 0; -} - -void glutSetupVideoResizing(void) -{ -} - -void glutStopVideoResizing(void) -{ -} - -void glutVideoResize(int x, int y, int width, int height) -{ -} - -void glutVideoPan(int x, int y, int width, int height) -{ -} diff --git a/src/glut/os2/Makefile b/src/glut/os2/Makefile deleted file mode 100644 index 102a8b688d..0000000000 --- a/src/glut/os2/Makefile +++ /dev/null @@ -1,420 +0,0 @@ -# Makefile -# Created by IBM WorkFrame/2 MakeMake at 12:46:25 on 3 June 2003 -# -# The actions included in this make file are: -# Compile::C++ Compiler -# Link::Linker -# Lib::Import Lib - -.SUFFIXES: - -.SUFFIXES: \ - .LIB .cpp .dll .obj - -.cpp.obj: - @echo " Compile::C++ Compiler " - icc.exe /I..\ /I..\X86 /I..\GL /I..\swrast /I..\swrast_setup /Ss /Wcmpcndcnscnvcpydclenuextgeninilanobsordparporppcprorearettrdtruund /Tx /O /Gm /Ge- /G5 /Gf /Gi /Oi /C %s - -{G:\EVGEN\MESA5\src-glut.os2pm}.cpp.obj: - @echo " Compile::C++ Compiler " - icc.exe /I..\ /I..\X86 /I..\GL /I..\swrast /I..\swrast_setup /Ss /Wcmpcndcnscnvcpydclenuextgeninilanobsordparporppcprorearettrdtruund /Tx /O /Gm /Ge- /G5 /Gf /Gi /Oi /C %s - -.dll.LIB: - @echo " Lib::Import Lib " - implib.exe %|dpfF.LIB %s - -{G:\EVGEN\MESA5\src-glut.os2pm}.dll.LIB: - @echo " Lib::Import Lib " - implib.exe %|dpfF.LIB %s - -all: \ - .\libGlut.LIB - -.\libGlut.dll: \ - .\os2_winproc.obj \ - .\WarpWin.obj \ - .\glutOverlay.obj \ - .\glut_8x13.obj \ - .\glut_9x15.obj \ - .\glut_bitmap.obj \ - .\glut_cindex.obj \ - .\glut_cmap.obj \ - .\glut_cursor.obj \ - .\glut_event.obj \ - .\glut_ext.obj \ - .\glut_fullscrn.obj \ - .\glut_gamemode.obj \ - .\glut_get.obj \ - .\glut_hel10.obj \ - .\glut_hel12.obj \ - .\glut_hel18.obj \ - .\glut_init.obj \ - .\glut_input.obj \ - .\glut_key.obj \ - .\glut_keyctrl.obj \ - .\glut_keyup.obj \ - .\glut_mesa.obj \ - .\glut_modifier.obj \ - .\glut_roman.obj \ - .\glut_shapes.obj \ - .\glut_stroke.obj \ - .\glut_swap.obj \ - .\glut_teapot.obj \ - .\glut_tr24.obj \ - .\glut_util.obj \ - .\glut_vidresize.obj \ - .\glut_warp.obj \ - .\glut_win.obj \ - .\glut_winmisc.obj \ - .\os2_glx.obj \ - .\os2_menu.obj \ - ..\si-glu\libGLU.lib \ - ..\MesaDll\MesaGL2.lib \ - ..\drv\DrvLoad\MesaDrvLoad.lib \ - {$(LIB)}libGlut.DEF - @echo " Link::Linker " - icc.exe @<< - /B" /dbgpack /exepack:2 /st:200000 /packd /optfunc" - /FelibGlut.dll - ..\si-glu\libGLU.lib - ..\MesaDll\MesaGL2.lib - ..\drv\DrvLoad\MesaDrvLoad.lib - libGlut.DEF - .\os2_winproc.obj - .\WarpWin.obj - .\glutOverlay.obj - .\glut_8x13.obj - .\glut_9x15.obj - .\glut_bitmap.obj - .\glut_cindex.obj - .\glut_cmap.obj - .\glut_cursor.obj - .\glut_event.obj - .\glut_ext.obj - .\glut_fullscrn.obj - .\glut_gamemode.obj - .\glut_get.obj - .\glut_hel10.obj - .\glut_hel12.obj - .\glut_hel18.obj - .\glut_init.obj - .\glut_input.obj - .\glut_key.obj - .\glut_keyctrl.obj - .\glut_keyup.obj - .\glut_mesa.obj - .\glut_modifier.obj - .\glut_roman.obj - .\glut_shapes.obj - .\glut_stroke.obj - .\glut_swap.obj - .\glut_teapot.obj - .\glut_tr24.obj - .\glut_util.obj - .\glut_vidresize.obj - .\glut_warp.obj - .\glut_win.obj - .\glut_winmisc.obj - .\os2_glx.obj - .\os2_menu.obj -<< - -.\os2_winproc.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\os2_winproc.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h \ - gl\os2mesa.h \ - gl\gl.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}gl_mangle.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}GL/os2_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}os2_config.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}os2mesadef.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}context.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glapi.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}mtypes.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glheader.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}config.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glapitable.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glthread.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}math/m_matrix.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}Trace/tr_context.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}dd.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}conf.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}GL/os2_config.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}GL/glext.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}Xthreads.h - -.\os2_menu.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\os2_menu.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\os2_glx.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\os2_glx.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - gl\os2mesa.h \ - gl\gl.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}gl_mangle.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}GL/os2_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}os2_config.h - -.\glut_winmisc.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_winmisc.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_win.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_win.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutos2.h \ - gl\os2mesa.h \ - gl\gl.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}gl_mangle.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}GL/os2_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}os2_config.h - -.\glut_warp.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_warp.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_vidresize.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_vidresize.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_util.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_util.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_tr24.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_tr24.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glut_teapot.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_teapot.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_swap.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_swap.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_stroke.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_stroke.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutstroke.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_shapes.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_shapes.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_roman.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_roman.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutstroke.h - -.\glut_modifier.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_modifier.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_mesa.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_mesa.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_keyup.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_keyup.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_keyctrl.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_keyctrl.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_key.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_key.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_input.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_input.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_init.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_init.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_hel18.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_hel18.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glut_hel12.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_hel12.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glut_hel10.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_hel10.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glut_get.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_get.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_gamemode.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_gamemode.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_fullscrn.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_fullscrn.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_ext.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_ext.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_event.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_event.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_cursor.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_cursor.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_cmap.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_cmap.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}layerutil.h - -.\glut_cindex.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_cindex.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_bitmap.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_bitmap.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\glut_9x15.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_9x15.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glut_8x13.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glut_8x13.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h - -.\glutOverlay.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\glutOverlay.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutint.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutbitmap.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutstroke.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}glutwin32.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_x11.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}win32_glx.h - -.\WarpWin.obj: \ - G:\EVGEN\MESA5\src-glut.os2pm\WarpWin.cpp \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpWin.h \ - {G:\EVGEN\MESA5\src-glut.os2pm;..\;..\X86;..\GL;..\swrast;..\swrast_setup;$(INCLUDE);}WarpGL.h - -.\libGlut.LIB: \ - .\libGlut.dll diff --git a/src/glut/os2/WarpWin.cpp b/src/glut/os2/WarpWin.cpp deleted file mode 100644 index 71cc8e1bc9..0000000000 --- a/src/glut/os2/WarpWin.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/* WarpWin.c */ -/* glut for Warp */ -#include <stdio.h> -#include <string.h> - -#include "WarpWin.h" -#include "WarpGL.h" - -#define POKA 0 - -/* global variables that must be set for some functions to operate - correctly. */ -HDC XHDC; -HWND XHWND; - - -void -XStoreColor(Display* display, Colormap colormap, XColor* color) -{ - /* KLUDGE: set XHDC to 0 if the palette should NOT be realized after - setting the color. set XHDC to the correct HDC if it should. */ - - LONG pe; - ULONG cclr; - int r,g,b; - /* X11 stores color from 0-65535, Win32 expects them to be 0-256, so - twiddle the bits ( / 256). */ - r = color->red / 256; - g = color->green / 256; - b = color->blue / 256; - pe = LONGFromRGB(r,g,b); - /* make sure we use this flag, otherwise the colors might get mapped - to another place in the colormap, and when we glIndex() that - color, it may have moved (argh!!) */ - pe |= (PC_NOCOLLAPSE<<24); -/* This function changes the entries in a palette. */ -#if POKA -OS2: - rc = GpiSetPaletteEntries(colormap,LCOLF_CONSECRGB, color->pixel, 1, &pe); - GpiSelectPalette(hps,colormap); - WinRealizePalette(hwnd,hps,&cclr); -source Win: - if (XHDC) { - UnrealizeObject(colormap); - SelectPalette(XHDC, colormap, FALSE); - RealizePalette(XHDC); - - } -#endif -} - -void -XSetWindowColormap(Display* display, Window window, Colormap colormap) -{ -#if POKA - HDC hdc = GetDC(window); - - /* if the third parameter is FALSE, the logical colormap is copied - into the device palette when the application is in the - foreground, if it is TRUE, the colors are mapped into the current - palette in the best possible way. */ - SelectPalette(hdc, colormap, FALSE); - RealizePalette(hdc); - - /* note that we don't have to release the DC, since our window class - uses the WC_OWNDC flag! */ -#endif -} - - -/* display, root and visual - don't used at all */ -Colormap -XCreateColormap(Display* display, Window root, Visual* visual, int alloc) -{ - /* KLUDGE: this function needs XHDC to be set to the HDC currently - being operated on before it is invoked! */ - - HPAL palette; - int n; -#if POKA - PIXELFORMATDESCRIPTOR pfd; - LOGPALETTE *logical; - - /* grab the pixel format */ - memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR)); - DescribePixelFormat(XHDC, GetPixelFormat(XHDC), - sizeof(PIXELFORMATDESCRIPTOR), &pfd); - - if (!(pfd.dwFlags & PFD_NEED_PALETTE || - pfd.iPixelType == PFD_TYPE_COLORINDEX)) - { - return 0; - } - - n = 1 << pfd.cColorBits; - - /* allocate a bunch of memory for the logical palette (assume 256 - colors in a Win32 palette */ - logical = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + - sizeof(PALETTEENTRY) * n); - memset(logical, 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * n); - - /* set the entries in the logical palette */ - logical->palVersion = 0x300; - logical->palNumEntries = n; - - /* start with a copy of the current system palette */ - GetSystemPaletteEntries(XHDC, 0, 256, &logical->palPalEntry[0]); - - if (pfd.iPixelType == PFD_TYPE_RGBA) { - int redMask = (1 << pfd.cRedBits) - 1; - int greenMask = (1 << pfd.cGreenBits) - 1; - int blueMask = (1 << pfd.cBlueBits) - 1; - int i; - - /* fill in an RGBA color palette */ - for (i = 0; i < n; ++i) { - logical->palPalEntry[i].peRed = - (((i >> pfd.cRedShift) & redMask) * 255) / redMask; - logical->palPalEntry[i].peGreen = - (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask; - logical->palPalEntry[i].peBlue = - (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask; - logical->palPalEntry[i].peFlags = 0; - } - } - - palette = CreatePalette(logical); - free(logical); - - SelectPalette(XHDC, palette, FALSE); - RealizePalette(XHDC); -#endif /* POKA */ - - return palette; -} - - - -int GetSystemMetrics( int mode) -{ RECTL rect; - - switch(mode) - { case SM_CXSCREEN: - WinQueryWindowRect(HWND_DESKTOP,&rect); - return (rect.xRight-rect.xLeft); - break; - case SM_CYSCREEN: - WinQueryWindowRect(HWND_DESKTOP,&rect); - return (rect.yTop-rect.yBottom); - break; - default: ; - } - return 0; -} -/* - * XParseGeometry parses strings of the form - * "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where - * width, height, xoffset, and yoffset are unsigned integers. - * Example: "=80x24+300-49" - * The equal sign is optional. - * It returns a bitmask that indicates which of the four values - * were actually found in the string. For each value found, - * the corresponding argument is updated; for each value - * not found, the corresponding argument is left unchanged. - */ - -static int -ReadInteger(char *string, char **NextString) -{ - register int Result = 0; - int Sign = 1; - - if (*string == '+') - string++; - else if (*string == '-') - { - string++; - Sign = -1; - } - for (; (*string >= '0') && (*string <= '9'); string++) - { - Result = (Result * 10) + (*string - '0'); - } - *NextString = string; - if (Sign >= 0) - return (Result); - else - return (-Result); -} - -int XParseGeometry(char *string, int *x, int *y, unsigned int *width, unsigned int *height) -{ - int mask = NoValue; - register char *strind; - unsigned int tempWidth, tempHeight; - int tempX, tempY; - char *nextCharacter; - - if ( (string == NULL) || (*string == '\0')) return(mask); - if (*string == '=') - string++; /* ignore possible '=' at beg of geometry spec */ - - strind = (char *)string; - if (*strind != '+' && *strind != '-' && *strind != 'x') { - tempWidth = ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return (0); - strind = nextCharacter; - mask |= WidthValue; - } - - if (*strind == 'x' || *strind == 'X') { - strind++; - tempHeight = ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return (0); - strind = nextCharacter; - mask |= HeightValue; - } - - if ((*strind == '+') || (*strind == '-')) { - if (*strind == '-') { - strind++; - tempX = -ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return (0); - strind = nextCharacter; - mask |= XNegative; - - } - else - { strind++; - tempX = ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return(0); - strind = nextCharacter; - } - mask |= XValue; - if ((*strind == '+') || (*strind == '-')) { - if (*strind == '-') { - strind++; - tempY = -ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return(0); - strind = nextCharacter; - mask |= YNegative; - - } - else - { - strind++; - tempY = ReadInteger(strind, &nextCharacter); - if (strind == nextCharacter) - return(0); - strind = nextCharacter; - } - mask |= YValue; - } - } - - /* If strind isn't at the end of the string the it's an invalid - geometry specification. */ - - if (*strind != '\0') return (0); - - if (mask & XValue) - *x = tempX; - if (mask & YValue) - *y = tempY; - if (mask & WidthValue) - *width = tempWidth; - if (mask & HeightValue) - *height = tempHeight; - return (mask); -} - -int gettimeofday(struct timeval* tp, void* tzp) -{ - DATETIME DateTime; - APIRET ulrc; /* Return Code. */ - - ulrc = DosGetDateTime(&DateTime); - tp->tv_sec = 60 * (60*DateTime.hours + DateTime.minutes) + DateTime.seconds; - tp->tv_usec = DateTime.hundredths * 10000; - return 0; -} - - -int -XPending(Display* display) -{ - /* similar functionality...I don't think that it is exact, but this - will have to do. */ - QMSG msg; - extern HAB hab; /* PM anchor block handle */ - -//?? WinPeekMsg(hab - return WinPeekMsg(hab, &msg, NULLHANDLE, 0, 0, PM_NOREMOVE); -} - -void -__glutAdjustCoords(Window parent, int* x, int* y, int* width, int* height) -{ - RECTL rect; - - /* adjust the window rectangle because Win32 thinks that the x, y, - width & height are the WHOLE window (including decorations), - whereas GLUT treats the x, y, width & height as only the CLIENT - area of the window. */ - rect.xLeft = *x; rect.yTop = *y; - rect.xRight = *x + *width; rect.yBottom = *y + *height; - - /* must adjust the coordinates according to the correct style - because depending on the style, there may or may not be - borders. */ -//?? AdjustWindowRect(&rect, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | -//?? (parent ? WS_CHILD : WS_OVERLAPPEDWINDOW), -//?? FALSE); - /* FALSE in the third parameter = window has no menu bar */ - - /* readjust if the x and y are offscreen */ - if(rect.xLeft < 0) { - *x = 0; - } else { - *x = rect.xLeft; - } - - if(rect.yTop < 0) { - *y = 0; - } else { - *y = rect.yTop; - } - - *width = rect.xRight - rect.xLeft; /* adjusted width */ - *height = -(rect.yBottom - rect.yTop); /* adjusted height */ -} - - -int -__glutGetTransparentPixel(Display * dpy, XVisualInfo * vinfo) -{ - /* the transparent pixel on Win32 is always index number 0. So if - we put this routine in this file, we can avoid compiling the - whole of layerutil.c which is where this routine normally comes - from. */ - return 0; -} - -/* Translate point coordinates src_x and src_y from src to dst */ - -Bool -XTranslateCoordinates(Display *display, Window src, Window dst, - int src_x, int src_y, - int* dest_x_return, int* dest_y_return, - Window* child_return) -{ - SWP swp_src,swp_dst; - - WinQueryWindowPos(src,&swp_src); - WinQueryWindowPos(dst,&swp_dst); - - *dest_x_return = src_x + swp_src.x - swp_dst.x; - *dest_y_return = src_y + swp_src.y - swp_dst.y; - - /* just to make compilers happy...we don't use the return value. */ - return True; -} - -Status -XGetGeometry(Display* display, Window window, Window* root_return, - int* x_return, int* y_return, - unsigned int* width_return, unsigned int* height_return, - unsigned int *border_width_return, unsigned int* depth_return) -{ - /* KLUDGE: doesn't return the border_width or depth or root, x & y - are in screen coordinates. */ - SWP swp_src; - WinQueryWindowPos(window,&swp_src); - - *x_return = swp_src.x; - *y_return = swp_src.y; - *width_return = swp_src.cx; - *height_return = swp_src.cy; - - /* just to make compilers happy...we don't use the return value. */ - return 1; -} - -/* Get Display Width in millimeters */ -int -DisplayWidthMM(Display* display, int screen) -{ - int width; - LONG *pVC_Caps; - pVC_Caps = GetVideoConfig(NULLHANDLE); - width = (int)( 0.001 * pVC_Caps[CAPS_WIDTH] / pVC_Caps[CAPS_HORIZONTAL_RESOLUTION]);/* mm */ - return width; -} - -/* Get Display Height in millimeters */ -int -DisplayHeightMM(Display* display, int screen) -{ - int height; - LONG *pVC_Caps; - pVC_Caps = GetVideoConfig(NULLHANDLE); - height = (int)( 0.001 * pVC_Caps[CAPS_HEIGHT] / pVC_Caps[CAPS_VERTICAL_RESOLUTION]); /* mm */ - return height; -} - -void ScreenToClient( HWND hwnd, POINTL *point) -{ - SWP swp_src; - WinQueryWindowPos(hwnd,&swp_src); - point->x -= swp_src.x; - point->y -= swp_src.y; -} - diff --git a/src/glut/os2/glutOverlay.cpp b/src/glut/os2/glutOverlay.cpp deleted file mode 100644 index d57c4e7418..0000000000 --- a/src/glut/os2/glutOverlay.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/*********************************************************** - * Copyright (C) 1997, Be Inc. All rights reserved. - * - * FILE: glutOverlay.cpp - * - * DESCRIPTION: we don't support overlays, so this code is - * really simple - ***********************************************************/ - -/*********************************************************** - * Headers - ***********************************************************/ -#include <GL/glut.h> -#include "glutint.h" -#include "glutbitmap.h" -#include "glutstroke.h" - -GLUTAPI void GLUTAPIENTRY -glutEstablishOverlay(void) -{ - __glutFatalError("OS2PM lacks overlay support."); -} - -GLUTAPI void GLUTAPIENTRY -glutUseLayer(GLenum layer) { - // ignore -} - -GLUTAPI void GLUTAPIENTRY -glutRemoveOverlay(void) { - // ignore -} - -GLUTAPI void GLUTAPIENTRY -glutPostOverlayRedisplay(void) { - // ignore -} - -GLUTAPI void GLUTAPIENTRY -glutShowOverlay(void) { - // ignore -} - -GLUTAPI void GLUTAPIENTRY glutHideOverlay(void) -{ - // ignore -} - -int GLUTAPIENTRY -glutLayerGet(GLenum param) -{ - // ignore -} - -/*********************************************************** - * Unsupported callbacks - ***********************************************************/ -GLUTAPI void GLUTAPIENTRY -glutOverlayDisplayFunc(GLUTdisplayCB displayFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutSpaceballMotionFunc(GLUTspaceMotionCB spaceMotionFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutSpaceballRotateFunc(GLUTspaceRotateCB spaceRotateFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutSpaceballButtonFunc(GLUTspaceButtonCB spaceButtonFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutButtonBoxFunc(GLUTbuttonBoxCB buttonBoxFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutDialsFunc(GLUTdialsCB dialsFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutTabletMotionFunc(GLUTtabletMotionCB tabletMotionFunc) -{ -} - -GLUTAPI void GLUTAPIENTRY -glutTabletButtonFunc(GLUTtabletButtonCB tabletButtonFunc) -{ -} -GLUTAPI void GLUTAPIENTRY -glutPostWindowOverlayRedisplay(int win) -{ // -} - -void GLUTAPIENTRY -glutInitDisplayString(const char *string) -{ // -} -void GLUTAPIENTRY -glutJoystickFunc(GLUTjoystickCB joystickFunc, int pollInterval) -{ // -} - -void GLUTAPIENTRY -glutForceJoystickFunc(void) -{ // -} - - -int GLUTAPIENTRY -glutBitmapWidth(GLUTbitmapFont font, int c) -{ return 0; -} -int GLUTAPIENTRY -glutBitmapLength(GLUTbitmapFont font, const unsigned char *string) -{ // - return 0; -} -int GLUTAPIENTRY -glutStrokeWidth(GLUTstrokeFont font, int c) -{ return 0; -} -int GLUTAPIENTRY -glutStrokeLength(GLUTstrokeFont font, const unsigned char *string) -{ return 0; -} diff --git a/src/glut/os2/glut_8x13.cpp b/src/glut/os2/glut_8x13.cpp deleted file mode 100644 index 29ea6ea070..0000000000 --- a/src/glut/os2/glut_8x13.cpp +++ /dev/null @@ -1,2076 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmap8By13 XXX -#include "glutbitmap.h" -#undef glutBitmap8By13 - -#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, -}; - -#if !defined(__IBMCPP__) -const -#endif -BitmapFontRec glutBitmap8By13 = { -"-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1", -256, -0, -chars -}; - diff --git a/src/glut/os2/glut_9x15.cpp b/src/glut/os2/glut_9x15.cpp deleted file mode 100644 index d228a2b150..0000000000 --- a/src/glut/os2/glut_9x15.cpp +++ /dev/null @@ -1,2077 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmap9By15 XXX -#include "glutbitmap.h" -#undef glutBitmap9By15 - -#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,9,ch0data}; -#else -static const BitmapCharRec ch0 = {0,0,0,0,9,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,9,ch32data}; -#else -static const BitmapCharRec ch32 = {0,0,0,0,9,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,9,ch127data}; -#else -static const BitmapCharRec ch127 = {0,0,0,0,9,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,9,ch160data}; -#else -static const BitmapCharRec ch160 = {0,0,0,0,9,0}; -#endif - -/* char: 0xff */ - -static const GLubyte ch255data[] = { -0x78,0x84,0x4,0x74,0x8c,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch255 = {6,14,-1,3,9,ch255data}; - -/* char: 0xfe */ - -static const GLubyte ch254data[] = { -0x80,0x80,0x80,0xbc,0xc2,0x82,0x82,0x82,0xc2,0xbc,0x80,0x80, -}; - -static const BitmapCharRec ch254 = {7,12,-1,3,9,ch254data}; - -/* char: 0xfd */ - -static const GLubyte ch253data[] = { -0x78,0x84,0x4,0x74,0x8c,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch253 = {6,14,-1,3,9,ch253data}; - -/* char: 0xfc */ - -static const GLubyte ch252data[] = { -0x7a,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch252 = {7,11,-1,0,9,ch252data}; - -/* char: 0xfb */ - -static const GLubyte ch251data[] = { -0x7a,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch251 = {7,11,-1,0,9,ch251data}; - -/* char: 0xfa */ - -static const GLubyte ch250data[] = { -0x7a,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch250 = {7,11,-1,0,9,ch250data}; - -/* char: 0xf9 */ - -static const GLubyte ch249data[] = { -0x7a,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch249 = {7,11,-1,0,9,ch249data}; - -/* char: 0xf8 */ - -static const GLubyte ch248data[] = { -0x80,0x7c,0xa2,0xa2,0x92,0x8a,0x8a,0x7c,0x2, -}; - -static const BitmapCharRec ch248 = {7,9,-1,1,9,ch248data}; - -/* char: 0xf7 */ - -static const GLubyte ch247data[] = { -0x10,0x38,0x10,0x0,0xfe,0x0,0x10,0x38,0x10, -}; - -static const BitmapCharRec ch247 = {7,9,-1,0,9,ch247data}; - -/* char: 0xf6 */ - -static const GLubyte ch246data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch246 = {7,11,-1,0,9,ch246data}; - -/* char: 0xf5 */ - -static const GLubyte ch245data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch245 = {7,11,-1,0,9,ch245data}; - -/* char: 0xf4 */ - -static const GLubyte ch244data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch244 = {7,11,-1,0,9,ch244data}; - -/* char: 0xf3 */ - -static const GLubyte ch243data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch243 = {7,11,-1,0,9,ch243data}; - -/* char: 0xf2 */ - -static const GLubyte ch242data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch242 = {7,11,-1,0,9,ch242data}; - -/* char: 0xf1 */ - -static const GLubyte ch241data[] = { -0x82,0x82,0x82,0x82,0x82,0xc2,0xbc,0x0,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch241 = {7,11,-1,0,9,ch241data}; - -/* char: 0xf0 */ - -static const GLubyte ch240data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x8,0x50,0x30,0x48, -}; - -static const BitmapCharRec ch240 = {7,11,-1,0,9,ch240data}; - -/* char: 0xef */ - -static const GLubyte ch239data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0xe0,0x0,0x0,0x50,0x50, -}; - -static const BitmapCharRec ch239 = {5,11,-2,0,9,ch239data}; - -/* char: 0xee */ - -static const GLubyte ch238data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0xe0,0x0,0x0,0x90,0x60, -}; - -static const BitmapCharRec ch238 = {5,11,-2,0,9,ch238data}; - -/* char: 0xed */ - -static const GLubyte ch237data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0xe0,0x0,0x0,0x60,0x10, -}; - -static const BitmapCharRec ch237 = {5,11,-2,0,9,ch237data}; - -/* char: 0xec */ - -static const GLubyte ch236data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0xe0,0x0,0x0,0x30,0x40, -}; - -static const BitmapCharRec ch236 = {5,11,-2,0,9,ch236data}; - -/* char: 0xeb */ - -static const GLubyte ch235data[] = { -0x7c,0x80,0x80,0xfe,0x82,0x82,0x7c,0x0,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch235 = {7,11,-1,0,9,ch235data}; - -/* char: 0xea */ - -static const GLubyte ch234data[] = { -0x7c,0x80,0x80,0xfe,0x82,0x82,0x7c,0x0,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch234 = {7,11,-1,0,9,ch234data}; - -/* char: 0xe9 */ - -static const GLubyte ch233data[] = { -0x7c,0x80,0x80,0xfe,0x82,0x82,0x7c,0x0,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch233 = {7,11,-1,0,9,ch233data}; - -/* char: 0xe8 */ - -static const GLubyte ch232data[] = { -0x7c,0x80,0x80,0xfe,0x82,0x82,0x7c,0x0,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch232 = {7,11,-1,0,9,ch232data}; - -/* char: 0xe7 */ - -static const GLubyte ch231data[] = { -0x30,0x48,0x18,0x7c,0x82,0x80,0x80,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch231 = {7,10,-1,3,9,ch231data}; - -/* char: 0xe6 */ - -static const GLubyte ch230data[] = { -0x6e,0x92,0x90,0x7c,0x12,0x92,0x6c, -}; - -static const BitmapCharRec ch230 = {7,7,-1,0,9,ch230data}; - -/* char: 0xe5 */ - -static const GLubyte ch229data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x18,0x24,0x18, -}; - -static const BitmapCharRec ch229 = {7,11,-1,0,9,ch229data}; - -/* char: 0xe4 */ - -static const GLubyte ch228data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch228 = {7,11,-1,0,9,ch228data}; - -/* char: 0xe3 */ - -static const GLubyte ch227data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch227 = {7,11,-1,0,9,ch227data}; - -/* char: 0xe2 */ - -static const GLubyte ch226data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch226 = {7,11,-1,0,9,ch226data}; - -/* char: 0xe1 */ - -static const GLubyte ch225data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch225 = {7,11,-1,0,9,ch225data}; - -/* char: 0xe0 */ - -static const GLubyte ch224data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c,0x0,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch224 = {7,11,-1,0,9,ch224data}; - -/* char: 0xdf */ - -static const GLubyte ch223data[] = { -0x80,0xbc,0xc2,0x82,0x82,0xfc,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch223 = {7,9,-1,1,9,ch223data}; - -/* char: 0xde */ - -static const GLubyte ch222data[] = { -0x80,0x80,0x80,0xfc,0x82,0x82,0x82,0xfc,0x80,0x80, -}; - -static const BitmapCharRec ch222 = {7,10,-1,0,9,ch222data}; - -/* char: 0xdd */ - -static const GLubyte ch221data[] = { -0x10,0x10,0x10,0x10,0x28,0x44,0x82,0x82,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch221 = {7,11,-1,0,9,ch221data}; - -/* char: 0xdc */ - -static const GLubyte ch220data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch220 = {7,11,-1,0,9,ch220data}; - -/* char: 0xdb */ - -static const GLubyte ch219data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch219 = {7,11,-1,0,9,ch219data}; - -/* char: 0xda */ - -static const GLubyte ch218data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch218 = {7,11,-1,0,9,ch218data}; - -/* char: 0xd9 */ - -static const GLubyte ch217data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch217 = {7,11,-1,0,9,ch217data}; - -/* char: 0xd8 */ - -static const GLubyte ch216data[] = { -0x80,0x7c,0xc2,0xa2,0xa2,0x92,0x92,0x8a,0x8a,0x86,0x7c,0x2, -}; - -static const BitmapCharRec ch216 = {7,12,-1,1,9,ch216data}; - -/* char: 0xd7 */ - -static const GLubyte ch215data[] = { -0x82,0x44,0x28,0x10,0x28,0x44,0x82, -}; - -static const BitmapCharRec ch215 = {7,7,-1,-1,9,ch215data}; - -/* char: 0xd6 */ - -static const GLubyte ch214data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch214 = {7,11,-1,0,9,ch214data}; - -/* char: 0xd5 */ - -static const GLubyte ch213data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch213 = {7,11,-1,0,9,ch213data}; - -/* char: 0xd4 */ - -static const GLubyte ch212data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch212 = {7,11,-1,0,9,ch212data}; - -/* char: 0xd3 */ - -static const GLubyte ch211data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch211 = {7,11,-1,0,9,ch211data}; - -/* char: 0xd2 */ - -static const GLubyte ch210data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch210 = {7,11,-1,0,9,ch210data}; - -/* char: 0xd1 */ - -static const GLubyte ch209data[] = { -0x82,0x86,0x8a,0x92,0x92,0xa2,0xc2,0x82,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch209 = {7,11,-1,0,9,ch209data}; - -/* char: 0xd0 */ - -static const GLubyte ch208data[] = { -0xfc,0x42,0x42,0x42,0x42,0xf2,0x42,0x42,0x42,0xfc, -}; - -static const BitmapCharRec ch208 = {7,10,-1,0,9,ch208data}; - -/* char: 0xcf */ - -static const GLubyte ch207data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0,0x50,0x50, -}; - -static const BitmapCharRec ch207 = {5,11,-2,0,9,ch207data}; - -/* char: 0xce */ - -static const GLubyte ch206data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0,0x88,0x70, -}; - -static const BitmapCharRec ch206 = {5,11,-2,0,9,ch206data}; - -/* char: 0xcd */ - -static const GLubyte ch205data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0,0x60,0x10, -}; - -static const BitmapCharRec ch205 = {5,11,-2,0,9,ch205data}; - -/* char: 0xcc */ - -static const GLubyte ch204data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0,0x30,0x40, -}; - -static const BitmapCharRec ch204 = {5,11,-2,0,9,ch204data}; - -/* char: 0xcb */ - -static const GLubyte ch203data[] = { -0xfe,0x40,0x40,0x40,0x78,0x40,0x40,0xfe,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch203 = {7,11,-1,0,9,ch203data}; - -/* char: 0xca */ - -static const GLubyte ch202data[] = { -0xfe,0x40,0x40,0x40,0x78,0x40,0x40,0xfe,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch202 = {7,11,-1,0,9,ch202data}; - -/* char: 0xc9 */ - -static const GLubyte ch201data[] = { -0xfe,0x40,0x40,0x40,0x78,0x40,0x40,0xfe,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch201 = {7,11,-1,0,9,ch201data}; - -/* char: 0xc8 */ - -static const GLubyte ch200data[] = { -0xfe,0x40,0x40,0x40,0x78,0x40,0x40,0xfe,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch200 = {7,11,-1,0,9,ch200data}; - -/* char: 0xc7 */ - -static const GLubyte ch199data[] = { -0x30,0x48,0x18,0x7c,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch199 = {7,13,-1,3,9,ch199data}; - -/* char: 0xc6 */ - -static const GLubyte ch198data[] = { -0x9e,0x90,0x90,0x90,0xfc,0x90,0x90,0x90,0x90,0x6e, -}; - -static const BitmapCharRec ch198 = {7,10,-1,0,9,ch198data}; - -/* char: 0xc5 */ - -static const GLubyte ch197data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x10,0x28,0x10, -}; - -static const BitmapCharRec ch197 = {7,11,-1,0,9,ch197data}; - -/* char: 0xc4 */ - -static const GLubyte ch196data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x0,0x28,0x28, -}; - -static const BitmapCharRec ch196 = {7,11,-1,0,9,ch196data}; - -/* char: 0xc3 */ - -static const GLubyte ch195data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch195 = {7,11,-1,0,9,ch195data}; - -/* char: 0xc2 */ - -static const GLubyte ch194data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x0,0x44,0x38, -}; - -static const BitmapCharRec ch194 = {7,11,-1,0,9,ch194data}; - -/* char: 0xc1 */ - -static const GLubyte ch193data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x0,0x30,0x8, -}; - -static const BitmapCharRec ch193 = {7,11,-1,0,9,ch193data}; - -/* char: 0xc0 */ - -static const GLubyte ch192data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x44,0x38,0x0,0x18,0x20, -}; - -static const BitmapCharRec ch192 = {7,11,-1,0,9,ch192data}; - -/* char: 0xbf */ - -static const GLubyte ch191data[] = { -0x7c,0x82,0x82,0x80,0x40,0x20,0x10,0x10,0x0,0x10, -}; - -static const BitmapCharRec ch191 = {7,10,-1,0,9,ch191data}; - -/* char: 0xbe */ - -static const GLubyte ch190data[] = { -0x6,0x1a,0x12,0xa,0x66,0x92,0x10,0x20,0x90,0x60, -}; - -static const BitmapCharRec ch190 = {7,10,-1,0,9,ch190data}; - -/* char: 0xbd */ - -static const GLubyte ch189data[] = { -0x1e,0x10,0xc,0x2,0xf2,0x4c,0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch189 = {7,10,-1,0,9,ch189data}; - -/* char: 0xbc */ - -static const GLubyte ch188data[] = { -0x6,0x1a,0x12,0xa,0xe6,0x42,0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch188 = {7,10,-1,0,9,ch188data}; - -/* char: 0xbb */ - -static const GLubyte ch187data[] = { -0x90,0x48,0x24,0x12,0x12,0x24,0x48,0x90, -}; - -static const BitmapCharRec ch187 = {7,8,-1,-1,9,ch187data}; - -/* char: 0xba */ - -static const GLubyte ch186data[] = { -0xf8,0x0,0x70,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch186 = {5,6,-1,-5,9,ch186data}; - -/* char: 0xb9 */ - -static const GLubyte ch185data[] = { -0xe0,0x40,0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch185 = {3,6,-1,-4,9,ch185data}; - -/* char: 0xb8 */ - -static const GLubyte ch184data[] = { -0x60,0x90,0x30, -}; - -static const BitmapCharRec ch184 = {4,3,-2,3,9,ch184data}; - -/* char: 0xb7 */ - -static const GLubyte ch183data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch183 = {2,2,-4,-4,9,ch183data}; - -/* char: 0xb6 */ - -static const GLubyte ch182data[] = { -0xa,0xa,0xa,0xa,0xa,0x7a,0x8a,0x8a,0x8a,0x7e, -}; - -static const BitmapCharRec ch182 = {7,10,-1,0,9,ch182data}; - -/* char: 0xb5 */ - -static const GLubyte ch181data[] = { -0x80,0x80,0xba,0xc6,0x82,0x82,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch181 = {7,9,-1,2,9,ch181data}; - -/* char: 0xb4 */ - -static const GLubyte ch180data[] = { -0xc0,0x20, -}; - -static const BitmapCharRec ch180 = {3,2,-3,-9,9,ch180data}; - -/* char: 0xb3 */ - -static const GLubyte ch179data[] = { -0x60,0x90,0x10,0x20,0x90,0x60, -}; - -static const BitmapCharRec ch179 = {4,6,-1,-4,9,ch179data}; - -/* char: 0xb2 */ - -static const GLubyte ch178data[] = { -0xf0,0x80,0x60,0x10,0x90,0x60, -}; - -static const BitmapCharRec ch178 = {4,6,-1,-4,9,ch178data}; - -/* char: 0xb1 */ - -static const GLubyte ch177data[] = { -0xfe,0x0,0x10,0x10,0x10,0xfe,0x10,0x10,0x10, -}; - -static const BitmapCharRec ch177 = {7,9,-1,-1,9,ch177data}; - -/* char: 0xb0 */ - -static const GLubyte ch176data[] = { -0x60,0x90,0x90,0x60, -}; - -static const BitmapCharRec ch176 = {4,4,-3,-6,9,ch176data}; - -/* char: 0xaf */ - -static const GLubyte ch175data[] = { -0xfc, -}; - -static const BitmapCharRec ch175 = {6,1,-1,-9,9,ch175data}; - -/* char: 0xae */ - -static const GLubyte ch174data[] = { -0x3c,0x42,0xa5,0xa9,0xbd,0xa5,0xb9,0x42,0x3c, -}; - -static const BitmapCharRec ch174 = {8,9,0,-1,9,ch174data}; - -/* char: 0xad */ - -static const GLubyte ch173data[] = { -0xfc, -}; - -static const BitmapCharRec ch173 = {6,1,-1,-4,9,ch173data}; - -/* char: 0xac */ - -static const GLubyte ch172data[] = { -0x4,0x4,0x4,0xfc, -}; - -static const BitmapCharRec ch172 = {6,4,-1,-2,9,ch172data}; - -/* char: 0xab */ - -static const GLubyte ch171data[] = { -0x12,0x24,0x48,0x90,0x90,0x48,0x24,0x12, -}; - -static const BitmapCharRec ch171 = {7,8,-1,-1,9,ch171data}; - -/* char: 0xaa */ - -static const GLubyte ch170data[] = { -0xf8,0x0,0x78,0x90,0x70,0x90,0x60, -}; - -static const BitmapCharRec ch170 = {5,7,-3,-3,9,ch170data}; - -/* char: 0xa9 */ - -static const GLubyte ch169data[] = { -0x3c,0x42,0x99,0xa5,0xa1,0xa5,0x99,0x42,0x3c, -}; - -static const BitmapCharRec ch169 = {8,9,0,-1,9,ch169data}; - -/* char: 0xa8 */ - -static const GLubyte ch168data[] = { -0xa0,0xa0, -}; - -static const BitmapCharRec ch168 = {3,2,-3,-9,9,ch168data}; - -/* char: 0xa7 */ - -static const GLubyte ch167data[] = { -0x70,0x88,0x8,0x70,0x88,0x88,0x88,0x70,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch167 = {5,11,-2,1,9,ch167data}; - -/* char: 0xa6 */ - -static const GLubyte ch166data[] = { -0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch166 = {1,11,-4,1,9,ch166data}; - -/* char: 0xa5 */ - -static const GLubyte ch165data[] = { -0x10,0x10,0x10,0x7c,0x10,0x7c,0x28,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch165 = {7,10,-1,0,9,ch165data}; - -/* char: 0xa4 */ - -static const GLubyte ch164data[] = { -0x82,0x7c,0x44,0x44,0x7c,0x82, -}; - -static const BitmapCharRec ch164 = {7,6,-1,-3,9,ch164data}; - -/* char: 0xa3 */ - -static const GLubyte ch163data[] = { -0x5c,0xa2,0x60,0x20,0x20,0xf8,0x20,0x20,0x22,0x1c, -}; - -static const BitmapCharRec ch163 = {7,10,-1,0,9,ch163data}; - -/* char: 0xa2 */ - -static const GLubyte ch162data[] = { -0x40,0x78,0xa4,0xa0,0x90,0x94,0x78,0x8, -}; - -static const BitmapCharRec ch162 = {6,8,-1,0,9,ch162data}; - -/* char: 0xa1 */ - -static const GLubyte ch161data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x80,0x80, -}; - -static const BitmapCharRec ch161 = {1,11,-4,0,9,ch161data}; - -/* char: 0x7e '~' */ - -static const GLubyte ch126data[] = { -0x8c,0x92,0x62, -}; - -static const BitmapCharRec ch126 = {7,3,-1,-7,9,ch126data}; - -/* char: 0x7d '}' */ - -static const GLubyte ch125data[] = { -0xe0,0x10,0x10,0x10,0x20,0x18,0x18,0x20,0x10,0x10,0x10,0xe0, -}; - -static const BitmapCharRec ch125 = {5,12,-1,1,9,ch125data}; - -/* char: 0x7c '|' */ - -static const GLubyte ch124data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch124 = {1,12,-4,1,9,ch124data}; - -/* char: 0x7b '{' */ - -static const GLubyte ch123data[] = { -0x38,0x40,0x40,0x40,0x20,0xc0,0xc0,0x20,0x40,0x40,0x40,0x38, -}; - -static const BitmapCharRec ch123 = {5,12,-3,1,9,ch123data}; - -/* char: 0x7a 'z' */ - -static const GLubyte ch122data[] = { -0xfe,0x40,0x20,0x10,0x8,0x4,0xfe, -}; - -static const BitmapCharRec ch122 = {7,7,-1,0,9,ch122data}; - -/* char: 0x79 'y' */ - -static const GLubyte ch121data[] = { -0x78,0x84,0x4,0x74,0x8c,0x84,0x84,0x84,0x84,0x84, -}; - -static const BitmapCharRec ch121 = {6,10,-1,3,9,ch121data}; - -/* char: 0x78 'x' */ - -static const GLubyte ch120data[] = { -0x82,0x44,0x28,0x10,0x28,0x44,0x82, -}; - -static const BitmapCharRec ch120 = {7,7,-1,0,9,ch120data}; - -/* char: 0x77 'w' */ - -static const GLubyte ch119data[] = { -0x44,0xaa,0x92,0x92,0x92,0x82,0x82, -}; - -static const BitmapCharRec ch119 = {7,7,-1,0,9,ch119data}; - -/* char: 0x76 'v' */ - -static const GLubyte ch118data[] = { -0x10,0x28,0x28,0x44,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch118 = {7,7,-1,0,9,ch118data}; - -/* char: 0x75 'u' */ - -static const GLubyte ch117data[] = { -0x7a,0x84,0x84,0x84,0x84,0x84,0x84, -}; - -static const BitmapCharRec ch117 = {7,7,-1,0,9,ch117data}; - -/* char: 0x74 't' */ - -static const GLubyte ch116data[] = { -0x1c,0x22,0x20,0x20,0x20,0x20,0xfc,0x20,0x20, -}; - -static const BitmapCharRec ch116 = {7,9,-1,0,9,ch116data}; - -/* char: 0x73 's' */ - -static const GLubyte ch115data[] = { -0x7c,0x82,0x2,0x7c,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch115 = {7,7,-1,0,9,ch115data}; - -/* char: 0x72 'r' */ - -static const GLubyte ch114data[] = { -0x40,0x40,0x40,0x40,0x42,0x62,0x9c, -}; - -static const BitmapCharRec ch114 = {7,7,-1,0,9,ch114data}; - -/* char: 0x71 'q' */ - -static const GLubyte ch113data[] = { -0x2,0x2,0x2,0x7a,0x86,0x82,0x82,0x82,0x86,0x7a, -}; - -static const BitmapCharRec ch113 = {7,10,-1,3,9,ch113data}; - -/* char: 0x70 'p' */ - -static const GLubyte ch112data[] = { -0x80,0x80,0x80,0xbc,0xc2,0x82,0x82,0x82,0xc2,0xbc, -}; - -static const BitmapCharRec ch112 = {7,10,-1,3,9,ch112data}; - -/* char: 0x6f 'o' */ - -static const GLubyte ch111data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch111 = {7,7,-1,0,9,ch111data}; - -/* char: 0x6e 'n' */ - -static const GLubyte ch110data[] = { -0x82,0x82,0x82,0x82,0x82,0xc2,0xbc, -}; - -static const BitmapCharRec ch110 = {7,7,-1,0,9,ch110data}; - -/* char: 0x6d 'm' */ - -static const GLubyte ch109data[] = { -0x82,0x92,0x92,0x92,0x92,0x92,0xec, -}; - -static const BitmapCharRec ch109 = {7,7,-1,0,9,ch109data}; - -/* char: 0x6c 'l' */ - -static const GLubyte ch108data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe0, -}; - -static const BitmapCharRec ch108 = {5,10,-2,0,9,ch108data}; - -/* char: 0x6b 'k' */ - -static const GLubyte ch107data[] = { -0x82,0x8c,0xb0,0xc0,0xb0,0x8c,0x82,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch107 = {7,10,-1,0,9,ch107data}; - -/* char: 0x6a 'j' */ - -static const GLubyte ch106data[] = { -0x78,0x84,0x84,0x84,0x4,0x4,0x4,0x4,0x4,0x1c,0x0,0x0,0xc, -}; - -static const BitmapCharRec ch106 = {6,13,-1,3,9,ch106data}; - -/* char: 0x69 'i' */ - -static const GLubyte ch105data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0xe0,0x0,0x0,0x60, -}; - -static const BitmapCharRec ch105 = {5,10,-2,0,9,ch105data}; - -/* char: 0x68 'h' */ - -static const GLubyte ch104data[] = { -0x82,0x82,0x82,0x82,0x82,0xc2,0xbc,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch104 = {7,10,-1,0,9,ch104data}; - -/* char: 0x67 'g' */ - -static const GLubyte ch103data[] = { -0x7c,0x82,0x82,0x7c,0x80,0x78,0x84,0x84,0x84,0x7a, -}; - -static const BitmapCharRec ch103 = {7,10,-1,3,9,ch103data}; - -/* char: 0x66 'f' */ - -static const GLubyte ch102data[] = { -0x20,0x20,0x20,0x20,0xf8,0x20,0x20,0x22,0x22,0x1c, -}; - -static const BitmapCharRec ch102 = {7,10,-1,0,9,ch102data}; - -/* char: 0x65 'e' */ - -static const GLubyte ch101data[] = { -0x7c,0x80,0x80,0xfe,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch101 = {7,7,-1,0,9,ch101data}; - -/* char: 0x64 'd' */ - -static const GLubyte ch100data[] = { -0x7a,0x86,0x82,0x82,0x82,0x86,0x7a,0x2,0x2,0x2, -}; - -static const BitmapCharRec ch100 = {7,10,-1,0,9,ch100data}; - -/* char: 0x63 'c' */ - -static const GLubyte ch99data[] = { -0x7c,0x82,0x80,0x80,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch99 = {7,7,-1,0,9,ch99data}; - -/* char: 0x62 'b' */ - -static const GLubyte ch98data[] = { -0xbc,0xc2,0x82,0x82,0x82,0xc2,0xbc,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch98 = {7,10,-1,0,9,ch98data}; - -/* char: 0x61 'a' */ - -static const GLubyte ch97data[] = { -0x7a,0x86,0x82,0x7e,0x2,0x2,0x7c, -}; - -static const BitmapCharRec ch97 = {7,7,-1,0,9,ch97data}; - -/* char: 0x60 '`' */ - -static const GLubyte ch96data[] = { -0x10,0x20,0x40,0xc0, -}; - -static const BitmapCharRec ch96 = {4,4,-3,-6,9,ch96data}; - -/* char: 0x5f '_' */ - -static const GLubyte ch95data[] = { -0xff, -}; - -static const BitmapCharRec ch95 = {8,1,0,1,9,ch95data}; - -/* char: 0x5e '^' */ - -static const GLubyte ch94data[] = { -0x82,0x44,0x28,0x10, -}; - -static const BitmapCharRec ch94 = {7,4,-1,-6,9,ch94data}; - -/* char: 0x5d ']' */ - -static const GLubyte ch93data[] = { -0xf0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xf0, -}; - -static const BitmapCharRec ch93 = {4,12,-2,1,9,ch93data}; - -/* char: 0x5c '\' */ - -static const GLubyte ch92data[] = { -0x2,0x4,0x4,0x8,0x10,0x10,0x20,0x40,0x40,0x80, -}; - -static const BitmapCharRec ch92 = {7,10,-1,0,9,ch92data}; - -/* char: 0x5b '[' */ - -static const GLubyte ch91data[] = { -0xf0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xf0, -}; - -static const BitmapCharRec ch91 = {4,12,-3,1,9,ch91data}; - -/* char: 0x5a 'Z' */ - -static const GLubyte ch90data[] = { -0xfe,0x80,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0xfe, -}; - -static const BitmapCharRec ch90 = {7,10,-1,0,9,ch90data}; - -/* char: 0x59 'Y' */ - -static const GLubyte ch89data[] = { -0x10,0x10,0x10,0x10,0x10,0x10,0x28,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch89 = {7,10,-1,0,9,ch89data}; - -/* char: 0x58 'X' */ - -static const GLubyte ch88data[] = { -0x82,0x82,0x44,0x28,0x10,0x10,0x28,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch88 = {7,10,-1,0,9,ch88data}; - -/* char: 0x57 'W' */ - -static const GLubyte ch87data[] = { -0x44,0xaa,0x92,0x92,0x92,0x92,0x82,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch87 = {7,10,-1,0,9,ch87data}; - -/* char: 0x56 'V' */ - -static const GLubyte ch86data[] = { -0x10,0x28,0x28,0x28,0x44,0x44,0x44,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch86 = {7,10,-1,0,9,ch86data}; - -/* char: 0x55 'U' */ - -static const GLubyte ch85data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch85 = {7,10,-1,0,9,ch85data}; - -/* char: 0x54 'T' */ - -static const GLubyte ch84data[] = { -0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xfe, -}; - -static const BitmapCharRec ch84 = {7,10,-1,0,9,ch84data}; - -/* char: 0x53 'S' */ - -static const GLubyte ch83data[] = { -0x7c,0x82,0x82,0x2,0xc,0x70,0x80,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch83 = {7,10,-1,0,9,ch83data}; - -/* char: 0x52 'R' */ - -static const GLubyte ch82data[] = { -0x82,0x82,0x84,0x88,0x90,0xfc,0x82,0x82,0x82,0xfc, -}; - -static const BitmapCharRec ch82 = {7,10,-1,0,9,ch82data}; - -/* char: 0x51 'Q' */ - -static const GLubyte ch81data[] = { -0x6,0x8,0x7c,0x92,0xa2,0x82,0x82,0x82,0x82,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch81 = {7,12,-1,2,9,ch81data}; - -/* char: 0x50 'P' */ - -static const GLubyte ch80data[] = { -0x80,0x80,0x80,0x80,0x80,0xfc,0x82,0x82,0x82,0xfc, -}; - -static const BitmapCharRec ch80 = {7,10,-1,0,9,ch80data}; - -/* char: 0x4f 'O' */ - -static const GLubyte ch79data[] = { -0x7c,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch79 = {7,10,-1,0,9,ch79data}; - -/* char: 0x4e 'N' */ - -static const GLubyte ch78data[] = { -0x82,0x82,0x82,0x86,0x8a,0x92,0xa2,0xc2,0x82,0x82, -}; - -static const BitmapCharRec ch78 = {7,10,-1,0,9,ch78data}; - -/* char: 0x4d 'M' */ - -static const GLubyte ch77data[] = { -0x82,0x82,0x82,0x92,0x92,0xaa,0xaa,0xc6,0x82,0x82, -}; - -static const BitmapCharRec ch77 = {7,10,-1,0,9,ch77data}; - -/* char: 0x4c 'L' */ - -static const GLubyte ch76data[] = { -0xfe,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch76 = {7,10,-1,0,9,ch76data}; - -/* char: 0x4b 'K' */ - -static const GLubyte ch75data[] = { -0x82,0x84,0x88,0x90,0xa0,0xe0,0x90,0x88,0x84,0x82, -}; - -static const BitmapCharRec ch75 = {7,10,-1,0,9,ch75data}; - -/* char: 0x4a 'J' */ - -static const GLubyte ch74data[] = { -0x78,0x84,0x4,0x4,0x4,0x4,0x4,0x4,0x4,0x1e, -}; - -static const BitmapCharRec ch74 = {7,10,-1,0,9,ch74data}; - -/* char: 0x49 'I' */ - -static const GLubyte ch73data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf8, -}; - -static const BitmapCharRec ch73 = {5,10,-2,0,9,ch73data}; - -/* char: 0x48 'H' */ - -static const GLubyte ch72data[] = { -0x82,0x82,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch72 = {7,10,-1,0,9,ch72data}; - -/* char: 0x47 'G' */ - -static const GLubyte ch71data[] = { -0x7c,0x82,0x82,0x82,0x8e,0x80,0x80,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch71 = {7,10,-1,0,9,ch71data}; - -/* char: 0x46 'F' */ - -static const GLubyte ch70data[] = { -0x40,0x40,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0xfe, -}; - -static const BitmapCharRec ch70 = {7,10,-1,0,9,ch70data}; - -/* char: 0x45 'E' */ - -static const GLubyte ch69data[] = { -0xfe,0x40,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0xfe, -}; - -static const BitmapCharRec ch69 = {7,10,-1,0,9,ch69data}; - -/* char: 0x44 'D' */ - -static const GLubyte ch68data[] = { -0xfc,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xfc, -}; - -static const BitmapCharRec ch68 = {7,10,-1,0,9,ch68data}; - -/* char: 0x43 'C' */ - -static const GLubyte ch67data[] = { -0x7c,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x82,0x7c, -}; - -static const BitmapCharRec ch67 = {7,10,-1,0,9,ch67data}; - -/* char: 0x42 'B' */ - -static const GLubyte ch66data[] = { -0xfc,0x42,0x42,0x42,0x42,0x7c,0x42,0x42,0x42,0xfc, -}; - -static const BitmapCharRec ch66 = {7,10,-1,0,9,ch66data}; - -/* char: 0x41 'A' */ - -static const GLubyte ch65data[] = { -0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x44,0x28,0x10, -}; - -static const BitmapCharRec ch65 = {7,10,-1,0,9,ch65data}; - -/* char: 0x40 '@' */ - -static const GLubyte ch64data[] = { -0x7c,0x80,0x80,0x9a,0xa6,0xa2,0x9e,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch64 = {7,10,-1,0,9,ch64data}; - -/* char: 0x3f '?' */ - -static const GLubyte ch63data[] = { -0x10,0x0,0x10,0x10,0x8,0x4,0x2,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch63 = {7,10,-1,0,9,ch63data}; - -/* char: 0x3e '>' */ - -static const GLubyte ch62data[] = { -0x80,0x40,0x20,0x10,0x8,0x8,0x10,0x20,0x40,0x80, -}; - -static const BitmapCharRec ch62 = {5,10,-2,0,9,ch62data}; - -/* char: 0x3d '=' */ - -static const GLubyte ch61data[] = { -0xfe,0x0,0x0,0xfe, -}; - -static const BitmapCharRec ch61 = {7,4,-1,-2,9,ch61data}; - -/* char: 0x3c '<' */ - -static const GLubyte ch60data[] = { -0x8,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x8, -}; - -static const BitmapCharRec ch60 = {5,10,-2,0,9,ch60data}; - -/* char: 0x3b ';' */ - -static const GLubyte ch59data[] = { -0x80,0x40,0x40,0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch59 = {2,10,-4,3,9,ch59data}; - -/* char: 0x3a ':' */ - -static const GLubyte ch58data[] = { -0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch58 = {2,7,-4,0,9,ch58data}; - -/* char: 0x39 '9' */ - -static const GLubyte ch57data[] = { -0x78,0x4,0x2,0x2,0x7a,0x86,0x82,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch57 = {7,10,-1,0,9,ch57data}; - -/* char: 0x38 '8' */ - -static const GLubyte ch56data[] = { -0x38,0x44,0x82,0x82,0x44,0x38,0x44,0x82,0x44,0x38, -}; - -static const BitmapCharRec ch56 = {7,10,-1,0,9,ch56data}; - -/* char: 0x37 '7' */ - -static const GLubyte ch55data[] = { -0x40,0x40,0x20,0x20,0x10,0x8,0x4,0x2,0x2,0xfe, -}; - -static const BitmapCharRec ch55 = {7,10,-1,0,9,ch55data}; - -/* char: 0x36 '6' */ - -static const GLubyte ch54data[] = { -0x7c,0x82,0x82,0x82,0xc2,0xbc,0x80,0x80,0x40,0x3c, -}; - -static const BitmapCharRec ch54 = {7,10,-1,0,9,ch54data}; - -/* char: 0x35 '5' */ - -static const GLubyte ch53data[] = { -0x7c,0x82,0x2,0x2,0x2,0xc2,0xbc,0x80,0x80,0xfe, -}; - -static const BitmapCharRec ch53 = {7,10,-1,0,9,ch53data}; - -/* char: 0x34 '4' */ - -static const GLubyte ch52data[] = { -0x4,0x4,0x4,0xfe,0x84,0x44,0x24,0x14,0xc,0x4, -}; - -static const BitmapCharRec ch52 = {7,10,-1,0,9,ch52data}; - -/* char: 0x33 '3' */ - -static const GLubyte ch51data[] = { -0x7c,0x82,0x2,0x2,0x2,0x1c,0x8,0x4,0x2,0xfe, -}; - -static const BitmapCharRec ch51 = {7,10,-1,0,9,ch51data}; - -/* char: 0x32 '2' */ - -static const GLubyte ch50data[] = { -0xfe,0x80,0x40,0x30,0x8,0x4,0x2,0x82,0x82,0x7c, -}; - -static const BitmapCharRec ch50 = {7,10,-1,0,9,ch50data}; - -/* char: 0x31 '1' */ - -static const GLubyte ch49data[] = { -0xfe,0x10,0x10,0x10,0x10,0x10,0x90,0x50,0x30,0x10, -}; - -static const BitmapCharRec ch49 = {7,10,-1,0,9,ch49data}; - -/* char: 0x30 '0' */ - -static const GLubyte ch48data[] = { -0x38,0x44,0x82,0x82,0x82,0x82,0x82,0x82,0x44,0x38, -}; - -static const BitmapCharRec ch48 = {7,10,-1,0,9,ch48data}; - -/* char: 0x2f '/' */ - -static const GLubyte ch47data[] = { -0x80,0x40,0x40,0x20,0x10,0x10,0x8,0x4,0x4,0x2, -}; - -static const BitmapCharRec ch47 = {7,10,-1,0,9,ch47data}; - -/* char: 0x2e '.' */ - -static const GLubyte ch46data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch46 = {2,2,-4,0,9,ch46data}; - -/* char: 0x2d '-' */ - -static const GLubyte ch45data[] = { -0xfe, -}; - -static const BitmapCharRec ch45 = {7,1,-1,-4,9,ch45data}; - -/* char: 0x2c ',' */ - -static const GLubyte ch44data[] = { -0x80,0x40,0x40,0xc0,0xc0, -}; - -static const BitmapCharRec ch44 = {2,5,-4,3,9,ch44data}; - -/* char: 0x2b '+' */ - -static const GLubyte ch43data[] = { -0x10,0x10,0x10,0xfe,0x10,0x10,0x10, -}; - -static const BitmapCharRec ch43 = {7,7,-1,-1,9,ch43data}; - -/* char: 0x2a '*' */ - -static const GLubyte ch42data[] = { -0x10,0x92,0x54,0x38,0x54,0x92,0x10, -}; - -static const BitmapCharRec ch42 = {7,7,-1,-1,9,ch42data}; - -/* char: 0x29 ')' */ - -static const GLubyte ch41data[] = { -0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x40,0x80, -}; - -static const BitmapCharRec ch41 = {3,12,-3,1,9,ch41data}; - -/* char: 0x28 '(' */ - -static const GLubyte ch40data[] = { -0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x80,0x80,0x40,0x40,0x20, -}; - -static const BitmapCharRec ch40 = {3,12,-3,1,9,ch40data}; - -/* char: 0x27 ''' */ - -static const GLubyte ch39data[] = { -0x80,0x40,0x20,0x30, -}; - -static const BitmapCharRec ch39 = {4,4,-3,-6,9,ch39data}; - -/* char: 0x26 '&' */ - -static const GLubyte ch38data[] = { -0x62,0x94,0x88,0x94,0x62,0x60,0x90,0x90,0x90,0x60, -}; - -static const BitmapCharRec ch38 = {7,10,-1,0,9,ch38data}; - -/* char: 0x25 '%' */ - -static const GLubyte ch37data[] = { -0x84,0x4a,0x4a,0x24,0x10,0x10,0x48,0xa4,0xa4,0x42, -}; - -static const BitmapCharRec ch37 = {7,10,-1,0,9,ch37data}; - -/* char: 0x24 '$' */ - -static const GLubyte ch36data[] = { -0x10,0x7c,0x92,0x12,0x12,0x14,0x38,0x50,0x90,0x92,0x7c,0x10, -}; - -static const BitmapCharRec ch36 = {7,12,-1,1,9,ch36data}; - -/* char: 0x23 '#' */ - -static const GLubyte ch35data[] = { -0x48,0x48,0xfc,0x48,0x48,0xfc,0x48,0x48, -}; - -static const BitmapCharRec ch35 = {6,8,-1,-1,9,ch35data}; - -/* char: 0x22 '"' */ - -static const GLubyte ch34data[] = { -0x90,0x90,0x90, -}; - -static const BitmapCharRec ch34 = {4,3,-3,-7,9,ch34data}; - -/* char: 0x21 '!' */ - -static const GLubyte ch33data[] = { -0x80,0x80,0x0,0x0,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch33 = {1,11,-4,0,9,ch33data}; - -/* char: 0x1f */ - -static const GLubyte ch31data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch31 = {2,2,-4,-2,9,ch31data}; - -/* char: 0x1e */ - -static const GLubyte ch30data[] = { -0x5c,0xa2,0x60,0x20,0x20,0xf8,0x20,0x20,0x22,0x1c, -}; - -static const BitmapCharRec ch30 = {7,10,-1,0,9,ch30data}; - -/* char: 0x1d */ - -static const GLubyte ch29data[] = { -0x80,0x40,0xfe,0x10,0xfe,0x4,0x2, -}; - -static const BitmapCharRec ch29 = {7,7,-1,0,9,ch29data}; - -/* char: 0x1c */ - -static const GLubyte ch28data[] = { -0x44,0x24,0x24,0x24,0x24,0x24,0xfe, -}; - -static const BitmapCharRec ch28 = {7,7,-1,0,9,ch28data}; - -/* char: 0x1b */ - -static const GLubyte ch27data[] = { -0xfe,0x0,0x80,0x40,0x20,0x10,0x8,0x8,0x10,0x20,0x40,0x80, -}; - -static const BitmapCharRec ch27 = {7,12,-1,2,9,ch27data}; - -/* char: 0x1a */ - -static const GLubyte ch26data[] = { -0xfc,0x0,0x4,0x8,0x10,0x20,0x40,0x40,0x20,0x10,0x8,0x4, -}; - -static const BitmapCharRec ch26 = {6,12,-2,2,9,ch26data}; - -/* char: 0x19 */ - -static const GLubyte ch25data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch25 = {1,15,-4,3,9,ch25data}; - -/* char: 0x18 */ - -static const GLubyte ch24data[] = { -0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80, -}; - -static const BitmapCharRec ch24 = {9,7,0,3,9,ch24data}; - -/* char: 0x17 */ - -static const GLubyte ch23data[] = { -0xff,0x80,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, -0x8,0x0, -}; - -static const BitmapCharRec ch23 = {9,9,0,-3,9,ch23data}; - -/* char: 0x16 */ - -static const GLubyte ch22data[] = { -0x8,0x8,0x8,0x8,0x8,0x8,0xf8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, -}; - -static const BitmapCharRec ch22 = {5,15,0,3,9,ch22data}; - -/* char: 0x15 */ - -static const GLubyte ch21data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch21 = {5,15,-4,3,9,ch21data}; - -/* char: 0x14 */ - -static const GLubyte ch20data[] = { -0xff,0x80, -}; - -static const BitmapCharRec ch20 = {9,1,0,1,9,ch20data}; - -/* char: 0x13 */ - -static const GLubyte ch19data[] = { -0xff,0x80, -}; - -static const BitmapCharRec ch19 = {9,1,0,-1,9,ch19data}; - -/* char: 0x12 */ - -static const GLubyte ch18data[] = { -0xff,0x80, -}; - -static const BitmapCharRec ch18 = {9,1,0,-3,9,ch18data}; - -/* char: 0x11 */ - -static const GLubyte ch17data[] = { -0xff,0x80, -}; - -static const BitmapCharRec ch17 = {9,1,0,-5,9,ch17data}; - -/* char: 0x10 */ - -static const GLubyte ch16data[] = { -0xff,0x80, -}; - -static const BitmapCharRec ch16 = {9,1,0,-7,9,ch16data}; - -/* char: 0xf */ - -static const GLubyte ch15data[] = { -0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80,0x8,0x0, -0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, -}; - -static const BitmapCharRec ch15 = {9,15,0,3,9,ch15data}; - -/* char: 0xe */ - -static const GLubyte ch14data[] = { -0xf8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch14 = {5,9,-4,-3,9,ch14data}; - -/* char: 0xd */ - -static const GLubyte ch13data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0xf8, -}; - -static const BitmapCharRec ch13 = {5,7,-4,3,9,ch13data}; - -/* char: 0xc */ - -static const GLubyte ch12data[] = { -0x8,0x8,0x8,0x8,0x8,0x8,0xf8, -}; - -static const BitmapCharRec ch12 = {5,7,0,3,9,ch12data}; - -/* char: 0xb */ - -static const GLubyte ch11data[] = { -0xf8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, -}; - -static const BitmapCharRec ch11 = {5,9,0,-3,9,ch11data}; - -/* char: 0xa */ - -static const GLubyte ch10data[] = { -0x8,0x8,0x8,0x8,0x3e,0x0,0x20,0x50,0x88,0x88, -}; - -static const BitmapCharRec ch10 = {7,10,-1,2,9,ch10data}; - -/* char: 0x9 */ - -static const GLubyte ch9data[] = { -0x3e,0x20,0x20,0x20,0x20,0x88,0x98,0xa8,0xc8,0x88, -}; - -static const BitmapCharRec ch9 = {7,10,-1,2,9,ch9data}; - -/* char: 0x8 */ - -static const GLubyte ch8data[] = { -0xfe,0x10,0x10,0xfe,0x10,0x10, -}; - -static const BitmapCharRec ch8 = {7,6,-1,0,9,ch8data}; - -/* char: 0x7 */ - -static const GLubyte ch7data[] = { -0x70,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch7 = {5,4,-2,-6,9,ch7data}; - -/* char: 0x6 */ - -static const GLubyte ch6data[] = { -0x20,0x20,0x3c,0x20,0x3e,0x0,0xf8,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch6 = {7,10,-1,2,9,ch6data}; - -/* char: 0x5 */ - -static const GLubyte ch5data[] = { -0x22,0x22,0x3c,0x22,0x3c,0x0,0x78,0x80,0x80,0x78, -}; - -static const BitmapCharRec ch5 = {7,10,-1,2,9,ch5data}; - -/* char: 0x4 */ - -static const GLubyte ch4data[] = { -0x10,0x10,0x1c,0x10,0x1e,0x80,0x80,0xe0,0x80,0xf0, -}; - -static const BitmapCharRec ch4 = {7,10,-1,2,9,ch4data}; - -/* char: 0x3 */ - -static const GLubyte ch3data[] = { -0x8,0x8,0x8,0x3e,0x0,0x88,0x88,0xf8,0x88,0x88, -}; - -static const BitmapCharRec ch3 = {7,10,-1,2,9,ch3data}; - -/* char: 0x2 */ - -static const GLubyte ch2data[] = { -0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa, -}; - -static const BitmapCharRec ch2 = {8,14,0,3,9,ch2data}; - -/* char: 0x1 */ - -static const GLubyte ch1data[] = { -0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10, -}; - -static const BitmapCharRec ch1 = {7,7,-1,0,9,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, -}; -#if !defined(__IBMCPP__) -const -#endif - BitmapFontRec glutBitmap9By15 = { -"-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1", -256, -0, -chars -}; - diff --git a/src/glut/os2/glut_bitmap.cpp b/src/glut/os2/glut_bitmap.cpp deleted file mode 100644 index 40530b69c1..0000000000 --- a/src/glut/os2/glut_bitmap.cpp +++ /dev/null @@ -1,57 +0,0 @@ - -/* 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. */ - -#include "glutint.h" -#include "glutbitmap.h" - -void GLUTAPIENTRY -glutBitmapCharacter(GLUTbitmapFont font, int c) -{ - const BitmapCharRec *ch; - BitmapFontPtr fontinfo; - GLint swapbytes, lsbfirst, rowlength; - GLint skiprows, skippixels, alignment; - -#if defined(_WIN32) - fontinfo = (BitmapFontPtr) __glutFont(font); -#else - fontinfo = (BitmapFontPtr) font; -#endif - - 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); - } -} diff --git a/src/glut/os2/glut_cindex.cpp b/src/glut/os2/glut_cindex.cpp deleted file mode 100644 index fa6d2f12d6..0000000000 --- a/src/glut/os2/glut_cindex.cpp +++ /dev/null @@ -1,258 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1996, 1997. */ - -/* 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. */ - -#include <stdlib.h> -#include "glutint.h" - -#if defined(__OS2PM__) - #define IsWindowVisible WinIsWindowVisible -#endif - -#define CLAMP(i) ((i) > 1.0 ? 1.0 : ((i) < 0.0 ? 0.0 : (i))) - -/* CENTRY */ -void GLUTAPIENTRY -glutSetColor(int ndx, GLfloat red, GLfloat green, GLfloat blue) -{ - GLUTcolormap *cmap, *newcmap; - XVisualInfo *vis; - XColor color; - int i; - - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - cmap = __glutCurrentWindow->colormap; - vis = __glutCurrentWindow->vis; - } else { - cmap = __glutCurrentWindow->overlay->colormap; - vis = __glutCurrentWindow->overlay->vis; - if (ndx == __glutCurrentWindow->overlay->transparentPixel) { - __glutWarning( - "glutSetColor: cannot set color of overlay transparent index %d\n", - ndx); - return; - } - } - - if (!cmap) { - __glutWarning("glutSetColor: current window is RGBA"); - return; - } -#if defined(_WIN32) || defined(__OS2PM__) - if (ndx >= 256 || /* always assume 256 colors on Win32 */ -#else - if (ndx >= vis->visual->map_entries || -#endif - ndx < 0) { - __glutWarning("glutSetColor: index %d out of range", ndx); - return; - } - if (cmap->refcnt > 1) { - newcmap = __glutAssociateNewColormap(vis); - cmap->refcnt--; - /* Wouldn't it be nice if XCopyColormapAndFree could be - told not to free the old colormap's entries! */ - for (i = cmap->size - 1; i >= 0; i--) { - if (i == ndx) { - /* We are going to set this cell shortly! */ - continue; - } - if (cmap->cells[i].component[GLUT_RED] >= 0.0) { - color.pixel = i; - newcmap->cells[i].component[GLUT_RED] = - cmap->cells[i].component[GLUT_RED]; - color.red = (GLfloat) 0xffff * - cmap->cells[i].component[GLUT_RED]; - newcmap->cells[i].component[GLUT_GREEN] = - cmap->cells[i].component[GLUT_GREEN]; - color.green = (GLfloat) 0xffff * - cmap->cells[i].component[GLUT_GREEN]; - newcmap->cells[i].component[GLUT_BLUE] = - cmap->cells[i].component[GLUT_BLUE]; - color.blue = (GLfloat) 0xffff * - cmap->cells[i].component[GLUT_BLUE]; - color.flags = DoRed | DoGreen | DoBlue; -#if defined(_WIN32) || defined(__OS2PM__) - if (IsWindowVisible(__glutCurrentWindow->win)) { - XHDC = __glutCurrentWindow->hdc; - } else { - XHDC = 0; - } -#endif - XStoreColor(__glutDisplay, newcmap->cmap, &color); - } else { - /* Leave unallocated entries unallocated. */ - } - } - cmap = newcmap; - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - __glutCurrentWindow->colormap = cmap; - __glutCurrentWindow->cmap = cmap->cmap; - } else { - __glutCurrentWindow->overlay->colormap = cmap; - __glutCurrentWindow->overlay->cmap = cmap->cmap; - } - XSetWindowColormap(__glutDisplay, - __glutCurrentWindow->renderWin, cmap->cmap); - -#if !defined(_WIN32) && !defined(__OS2PM__) - { - GLUTwindow *toplevel; - - toplevel = __glutToplevelOf(__glutCurrentWindow); - if (toplevel->cmap != cmap->cmap) { - __glutPutOnWorkList(toplevel, GLUT_COLORMAP_WORK); - } - } -#endif - } - color.pixel = ndx; - red = CLAMP(red); - cmap->cells[ndx].component[GLUT_RED] = red; - color.red = (GLfloat) 0xffff *red; - green = CLAMP(green); - cmap->cells[ndx].component[GLUT_GREEN] = green; - color.green = (GLfloat) 0xffff *green; - blue = CLAMP(blue); - cmap->cells[ndx].component[GLUT_BLUE] = blue; - color.blue = (GLfloat) 0xffff *blue; - color.flags = DoRed | DoGreen | DoBlue; -#if defined(_WIN32) || defined(__OS2PM__) - if (IsWindowVisible(__glutCurrentWindow->win)) { - XHDC = __glutCurrentWindow->hdc; - } else { - XHDC = 0; - } -#endif - XStoreColor(__glutDisplay, cmap->cmap, &color); -} - -GLfloat GLUTAPIENTRY -glutGetColor(int ndx, int comp) -{ - GLUTcolormap *colormap; - XVisualInfo *vis; - - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - colormap = __glutCurrentWindow->colormap; - vis = __glutCurrentWindow->vis; - } else { - colormap = __glutCurrentWindow->overlay->colormap; - vis = __glutCurrentWindow->overlay->vis; - if (ndx == __glutCurrentWindow->overlay->transparentPixel) { - __glutWarning("glutGetColor: requesting overlay transparent index %d\n", - ndx); - return -1.0; - } - } - - if (!colormap) { - __glutWarning("glutGetColor: current window is RGBA"); - return -1.0; - } -#if defined(_WIN32) || defined(__OS2PM__) -#define OUT_OF_RANGE_NDX(ndx) (ndx >= 256 || ndx < 0) -#else -#define OUT_OF_RANGE_NDX(ndx) (ndx >= vis->visual->map_entries || ndx < 0) -#endif - if (OUT_OF_RANGE_NDX(ndx)) { - __glutWarning("glutGetColor: index %d out of range", ndx); - return -1.0; - } - return colormap->cells[ndx].component[comp]; -} - -void GLUTAPIENTRY -glutCopyColormap(int winnum) -{ - GLUTwindow *window = __glutWindowList[winnum - 1]; - GLUTcolormap *oldcmap, *newcmap; - XVisualInfo *dstvis; - - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - oldcmap = __glutCurrentWindow->colormap; - dstvis = __glutCurrentWindow->vis; - newcmap = window->colormap; - } else { - oldcmap = __glutCurrentWindow->overlay->colormap; - dstvis = __glutCurrentWindow->overlay->vis; - if (!window->overlay) { - __glutWarning("glutCopyColormap: window %d has no overlay", winnum); - return; - } - newcmap = window->overlay->colormap; - } - - if (!oldcmap) { - __glutWarning("glutCopyColormap: destination colormap must be color index"); - return; - } - if (!newcmap) { - __glutWarning( - "glutCopyColormap: source colormap of window %d must be color index", - winnum); - return; - } - if (newcmap == oldcmap) { - /* Source and destination are the same; now copy needed. */ - return; - } -#if !defined(_WIN32) && !defined(__OS2PM__) - /* Play safe: compare visual IDs, not Visual*'s. */ - if (newcmap->visual->visualid == oldcmap->visual->visualid) { -#endif - /* Visuals match! "Copy" by reference... */ - __glutFreeColormap(oldcmap); - newcmap->refcnt++; - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - __glutCurrentWindow->colormap = newcmap; - __glutCurrentWindow->cmap = newcmap->cmap; - } else { - __glutCurrentWindow->overlay->colormap = newcmap; - __glutCurrentWindow->overlay->cmap = newcmap->cmap; - } - XSetWindowColormap(__glutDisplay, __glutCurrentWindow->renderWin, - newcmap->cmap); -#if !defined(_WIN32) && !defined(__OS2PM__) - __glutPutOnWorkList(__glutToplevelOf(window), GLUT_COLORMAP_WORK); -bla bla bla - - } else { - GLUTcolormap *copycmap; - XColor color; - int i, last; - - /* Visuals different - need a distinct X colormap! */ - copycmap = __glutAssociateNewColormap(dstvis); - /* Wouldn't it be nice if XCopyColormapAndFree could be - told not to free the old colormap's entries! */ - last = newcmap->size; - if (last > copycmap->size) { - last = copycmap->size; - } - for (i = last - 1; i >= 0; i--) { - if (newcmap->cells[i].component[GLUT_RED] >= 0.0) { - color.pixel = i; - copycmap->cells[i].component[GLUT_RED] = - newcmap->cells[i].component[GLUT_RED]; - color.red = (GLfloat) 0xffff * - newcmap->cells[i].component[GLUT_RED]; - copycmap->cells[i].component[GLUT_GREEN] = - newcmap->cells[i].component[GLUT_GREEN]; - color.green = (GLfloat) 0xffff * - newcmap->cells[i].component[GLUT_GREEN]; - copycmap->cells[i].component[GLUT_BLUE] = - newcmap->cells[i].component[GLUT_BLUE]; - color.blue = (GLfloat) 0xffff * - newcmap->cells[i].component[GLUT_BLUE]; - color.flags = DoRed | DoGreen | DoBlue; - XStoreColor(__glutDisplay, copycmap->cmap, &color); - } - } - } -#endif -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_cmap.cpp b/src/glut/os2/glut_cmap.cpp deleted file mode 100644 index afe44f0aca..0000000000 --- a/src/glut/os2/glut_cmap.cpp +++ /dev/null @@ -1,399 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1996, 1997. */ - -/* 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. */ - -#ifdef __VMS -//EK#include <GL/vms_x_fix.h> -#endif - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> /* SunOS multithreaded assert() needs <stdio.h>. Lame. */ -#include <assert.h> -#if !defined(_WIN32) && !defined(__OS2__) - #include <X11/Xlib.h> - #include <X11/Xutil.h> - #include <X11/Xatom.h> /* for XA_RGB_DEFAULT_MAP atom */ - #if defined(__vms) - #include <Xmu/StdCmap.h> /* for XmuLookupStandardColormap */ - #else - #include <X11/Xmu/StdCmap.h> /* for XmuLookupStandardColormap */ - #endif -#endif - -/* SGI optimization introduced in IRIX 6.3 to avoid X server - round trips for interning common X atoms. */ -#if defined(_SGI_EXTRA_PREDEFINES) && !defined(NO_FAST_ATOMS) -#include <X11/SGIFastAtom.h> -#else -#define XSGIFastInternAtom(dpy,string,fast_name,how) XInternAtom(dpy,string,how) -#endif - -#include "glutint.h" -#include "layerutil.h" - -GLUTcolormap *__glutColormapList = NULL; - -GLUTcolormap * -__glutAssociateNewColormap(XVisualInfo * vis) -{ - GLUTcolormap *cmap; - int transparentPixel, i; - unsigned long pixels[255]; - - cmap = (GLUTcolormap *) malloc(sizeof(GLUTcolormap)); - if (!cmap) - __glutFatalError("out of memory."); -#if defined(_WIN32) || defined(__OS2__) - pixels[0] = 0; /* avoid compilation warnings on win32 */ - cmap->visual = 0; - cmap->size = 256; /* always assume 256 on Win32 */ -#else - cmap->visual = vis->visual; - cmap->size = vis->visual->map_entries; -#endif - cmap->refcnt = 1; - cmap->cells = (GLUTcolorcell *) - malloc(sizeof(GLUTcolorcell) * cmap->size); - if (!cmap->cells) - __glutFatalError("out of memory."); - /* make all color cell entries be invalid */ - for (i = cmap->size - 1; i >= 0; i--) { - cmap->cells[i].component[GLUT_RED] = -1.0; - cmap->cells[i].component[GLUT_GREEN] = -1.0; - cmap->cells[i].component[GLUT_BLUE] = -1.0; - } - transparentPixel = __glutGetTransparentPixel(__glutDisplay, vis); - if (transparentPixel == -1 || transparentPixel >= cmap->size) { - - /* If there is no transparent pixel or if the transparent - pixel is outside the range of valid colormap cells (HP - can implement their overlays this smart way since their - transparent pixel is 255), we can AllocAll the colormap. - See note below. */ - - cmap->cmap = XCreateColormap(__glutDisplay, - __glutRoot, cmap->visual, AllocAll); - } else { - - /* On machines where zero (or some other value in the range - of 0 through map_entries-1), BadAlloc may be generated - when an AllocAll overlay colormap is allocated since the - transparent pixel precludes all the cells in the colormap - being allocated (the transparent pixel is pre-allocated). - So in this case, use XAllocColorCells to allocate - map_entries-1 pixels (that is, all but the transparent - pixel. */ - -#if defined(_WIN32) || defined(__OS2__) - cmap->cmap = XCreateColormap(__glutDisplay, - __glutRoot, 0, AllocNone); -#else - cmap->cmap = XCreateColormap(__glutDisplay, - __glutRoot, vis->visual, AllocNone); - XAllocColorCells(__glutDisplay, cmap->cmap, False, 0, 0, - pixels, cmap->size - 1); -#endif - } - cmap->next = __glutColormapList; - __glutColormapList = cmap; - return cmap; -} - -static GLUTcolormap * -associateColormap(XVisualInfo * vis) -{ -#if !defined(_WIN32) && !defined(__OS2__) - GLUTcolormap *cmap = __glutColormapList; - - while (cmap != NULL) { - /* Play safe: compare visual IDs, not Visual*'s. */ - if (cmap->visual->visualid == vis->visual->visualid) { - /* Already have created colormap for the visual. */ - cmap->refcnt++; - return cmap; - } - cmap = cmap->next; - } -#endif - return __glutAssociateNewColormap(vis); -} - -void -__glutSetupColormap(XVisualInfo * vi, GLUTcolormap ** colormap, Colormap * cmap) -{ -#if defined(_WIN32) || defined(__OS2__) - if (vi->dwFlags & PFD_NEED_PALETTE || vi->iPixelType == PFD_TYPE_COLORINDEX) { - *colormap = associateColormap(vi); - *cmap = (*colormap)->cmap; - } else { - *colormap = NULL; - *cmap = 0; - } -#else - Status status; - XStandardColormap *standardCmaps; - int i, numCmaps; - static Atom hpColorRecoveryAtom = -1; - int isRGB, visualClass, rc; - -#if defined(__cplusplus) || defined(c_plusplus) - visualClass = vi->c_class; -#else - visualClass = vi->class; -#endif - switch (visualClass) { - case PseudoColor: - /* Mesa might return a PseudoColor visual for RGB mode. */ - rc = glXGetConfig(__glutDisplay, vi, GLX_RGBA, &isRGB); - if (rc == 0 && isRGB) { - /* Must be Mesa. */ - *colormap = NULL; - if (MaxCmapsOfScreen(DefaultScreenOfDisplay(__glutDisplay)) == 1 - && vi->visual == DefaultVisual(__glutDisplay, __glutScreen)) { - char *privateCmap = getenv("MESA_PRIVATE_CMAP"); - - if (privateCmap) { - /* User doesn't want to share colormaps. */ - *cmap = XCreateColormap(__glutDisplay, __glutRoot, - vi->visual, AllocNone); - } else { - /* Share the root colormap. */ - *cmap = DefaultColormap(__glutDisplay, __glutScreen); - } - } else { - /* Get our own PseudoColor colormap. */ - *cmap = XCreateColormap(__glutDisplay, __glutRoot, - vi->visual, AllocNone); - } - } else { - /* CI mode, real GLX never returns a PseudoColor visual - for RGB mode. */ - *colormap = associateColormap(vi); - *cmap = (*colormap)->cmap; - } - break; - case TrueColor: - case DirectColor: - *colormap = NULL; /* NULL if RGBA */ - - /* Hewlett-Packard supports a feature called "HP Color - Recovery". Mesa has code to use HP Color Recovery. For - Mesa to use this feature, the atom - _HP_RGB_SMOOTH_MAP_LIST must be defined on the root - window AND the colormap obtainable by XGetRGBColormaps - for that atom must be set on the window. If that - colormap is not set, the output will look stripy. */ - - if (hpColorRecoveryAtom == -1) { - char *xvendor; - -#define VENDOR_HP "Hewlett-Packard" - - /* Only makes sense to make XInternAtom round-trip if we - know that we are connected to an HP X server. */ - xvendor = ServerVendor(__glutDisplay); - if (!strncmp(xvendor, VENDOR_HP, sizeof(VENDOR_HP) - 1)) { - hpColorRecoveryAtom = XInternAtom(__glutDisplay, "_HP_RGB_SMOOTH_MAP_LIST", True); - } else { - hpColorRecoveryAtom = None; - } - } - if (hpColorRecoveryAtom != None) { - status = XGetRGBColormaps(__glutDisplay, __glutRoot, - &standardCmaps, &numCmaps, hpColorRecoveryAtom); - if (status == 1) { - for (i = 0; i < numCmaps; i++) { - if (standardCmaps[i].visualid == vi->visualid) { - *cmap = standardCmaps[i].colormap; - XFree(standardCmaps); - return; - } - } - XFree(standardCmaps); - } - } -#ifndef SOLARIS_2_4_BUG - /* Solaris 2.4 and 2.5 have a bug in their - XmuLookupStandardColormap implementations. Please - compile your Solaris 2.4 or 2.5 version of GLUT with - -DSOLARIS_2_4_BUG to work around this bug. The symptom - of the bug is that programs will get a BadMatch error - from X_CreateWindow when creating a GLUT window because - Solaris 2.4 and 2.5 create a corrupted RGB_DEFAULT_MAP - property. Note that this workaround prevents Colormap - sharing between applications, perhaps leading - unnecessary colormap installations or colormap flashing. - Sun fixed this bug in Solaris 2.6. */ - status = XmuLookupStandardColormap(__glutDisplay, - vi->screen, vi->visualid, vi->depth, XA_RGB_DEFAULT_MAP, - /* replace */ False, /* retain */ True); - if (status == 1) { - status = XGetRGBColormaps(__glutDisplay, __glutRoot, - &standardCmaps, &numCmaps, XA_RGB_DEFAULT_MAP); - if (status == 1) { - for (i = 0; i < numCmaps; i++) { - if (standardCmaps[i].visualid == vi->visualid) { - *cmap = standardCmaps[i].colormap; - XFree(standardCmaps); - return; - } - } - XFree(standardCmaps); - } - } -#endif - /* If no standard colormap but TrueColor, just make a - private one. */ - /* XXX Should do a better job of internal sharing for - privately allocated TrueColor colormaps. */ - /* XXX DirectColor probably needs ramps hand initialized! */ - *cmap = XCreateColormap(__glutDisplay, __glutRoot, - vi->visual, AllocNone); - break; - case StaticColor: - case StaticGray: - case GrayScale: - /* Mesa supports these visuals */ - *colormap = NULL; - *cmap = XCreateColormap(__glutDisplay, __glutRoot, - vi->visual, AllocNone); - break; - default: - __glutFatalError( - "could not allocate colormap for visual type: %d.", - visualClass); - } - return; -#endif -} - -#if !defined(_WIN32) && !defined(__OS2__) -static int -findColormaps(GLUTwindow * window, - Window * winlist, Colormap * cmaplist, int num, int max) -{ - GLUTwindow *child; - int i; - - /* Do not allow more entries that maximum number of - colormaps! */ - if (num >= max) - return num; - /* Is cmap for this window already on the list? */ - for (i = 0; i < num; i++) { - if (cmaplist[i] == window->cmap) - goto normalColormapAlreadyListed; - } - /* Not found on the list; add colormap and window. */ - winlist[num] = window->win; - cmaplist[num] = window->cmap; - num++; - -normalColormapAlreadyListed: - - /* Repeat above but for the overlay colormap if there one. */ - if (window->overlay) { - if (num >= max) - return num; - for (i = 0; i < num; i++) { - if (cmaplist[i] == window->overlay->cmap) - goto overlayColormapAlreadyListed; - } - winlist[num] = window->overlay->win; - cmaplist[num] = window->overlay->cmap; - num++; - } -overlayColormapAlreadyListed: - - /* Recursively search children. */ - child = window->children; - while (child) { - num = findColormaps(child, winlist, cmaplist, num, max); - child = child->siblings; - } - return num; -} - -void -__glutEstablishColormapsProperty(GLUTwindow * window) -{ - /* this routine is strictly X. Win32 doesn't need to do - anything of this sort (but has to do other wacky stuff - later). */ - static Atom wmColormapWindows = None; - Window *winlist; - Colormap *cmaplist; - Status status; - int maxcmaps, num; - - assert(!window->parent); - maxcmaps = MaxCmapsOfScreen(ScreenOfDisplay(__glutDisplay, - __glutScreen)); - /* For portability reasons we don't use alloca for winlist - and cmaplist, but we could. */ - winlist = (Window *) malloc(maxcmaps * sizeof(Window)); - cmaplist = (Colormap *) malloc(maxcmaps * sizeof(Colormap)); - num = findColormaps(window, winlist, cmaplist, 0, maxcmaps); - if (num < 2) { - /* Property no longer needed; remove it. */ - wmColormapWindows = XSGIFastInternAtom(__glutDisplay, - "WM_COLORMAP_WINDOWS", SGI_XA_WM_COLORMAP_WINDOWS, False); - if (wmColormapWindows == None) { - __glutWarning("Could not intern X atom for WM_COLORMAP_WINDOWS."); - return; - } - XDeleteProperty(__glutDisplay, window->win, wmColormapWindows); - } else { - status = XSetWMColormapWindows(__glutDisplay, window->win, - winlist, num); - /* XSetWMColormapWindows should always work unless the - WM_COLORMAP_WINDOWS property cannot be intern'ed. We - check to be safe. */ - if (status == False) - __glutFatalError("XSetWMColormapWindows returned False."); - } - /* For portability reasons we don't use alloca for winlist - and cmaplist, but we could. */ - free(winlist); - free(cmaplist); -} - -GLUTwindow * -__glutToplevelOf(GLUTwindow * window) -{ - while (window->parent) { - window = window->parent; - } - return window; -} -#endif - -void -__glutFreeColormap(GLUTcolormap * cmap) -{ - GLUTcolormap *cur, **prev; - - cmap->refcnt--; - if (cmap->refcnt == 0) { - /* remove from colormap list */ - cur = __glutColormapList; - prev = &__glutColormapList; - while (cur) { - if (cur == cmap) { - *prev = cmap->next; - break; - } - prev = &(cur->next); - cur = cur->next; - } - /* actually free colormap */ - XFreeColormap(__glutDisplay, cmap->cmap); - free(cmap->cells); - free(cmap); - } -} - diff --git a/src/glut/os2/glut_cursor.cpp b/src/glut/os2/glut_cursor.cpp deleted file mode 100644 index 0db0aa64a4..0000000000 --- a/src/glut/os2/glut_cursor.cpp +++ /dev/null @@ -1,210 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1995, 1998. */ - -/* 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. */ - -#include "glutint.h" - -#if !defined(_WIN32) && !defined(__OS2PM__) -#include <X11/Xatom.h> /* For XA_CURSOR */ -#include <X11/cursorfont.h> -#endif - -typedef struct _CursorTable { -#if defined(_WIN32) - char* glyph; -#else - int glyph; -#endif - Cursor cursor; -} CursorTable; -/* *INDENT-OFF* */ - -static CursorTable cursorTable[] = { - {XC_arrow, None}, /* GLUT_CURSOR_RIGHT_ARROW */ - {XC_top_left_arrow, None}, /* GLUT_CURSOR_LEFT_ARROW */ - {XC_hand1, None}, /* GLUT_CURSOR_INFO */ - {XC_pirate, None}, /* GLUT_CURSOR_DESTROY */ - {XC_question_arrow, None}, /* GLUT_CURSOR_HELP */ - {XC_exchange, None}, /* GLUT_CURSOR_CYCLE */ - {XC_spraycan, None}, /* GLUT_CURSOR_SPRAY */ - {XC_watch, None}, /* GLUT_CURSOR_WAIT */ - {XC_xterm, None}, /* GLUT_CURSOR_TEXT */ - {XC_crosshair, None}, /* GLUT_CURSOR_CROSSHAIR */ - {XC_sb_v_double_arrow, None}, /* GLUT_CURSOR_UP_DOWN */ - {XC_sb_h_double_arrow, None}, /* GLUT_CURSOR_LEFT_RIGHT */ - {XC_top_side, None}, /* GLUT_CURSOR_TOP_SIDE */ - {XC_bottom_side, None}, /* GLUT_CURSOR_BOTTOM_SIDE */ - {XC_left_side, None}, /* GLUT_CURSOR_LEFT_SIDE */ - {XC_right_side, None}, /* GLUT_CURSOR_RIGHT_SIDE */ - {XC_top_left_corner, None}, /* GLUT_CURSOR_TOP_LEFT_CORNER */ - {XC_top_right_corner, None}, /* GLUT_CURSOR_TOP_RIGHT_CORNER */ - {XC_bottom_right_corner, None}, /* GLUT_CURSOR_BOTTOM_RIGHT_CORNER */ - {XC_bottom_left_corner, None}, /* GLUT_CURSOR_BOTTOM_LEFT_CORNER */ -}; -/* *INDENT-ON* */ - -#if !defined(_WIN32) && !defined(__OS2PM__) -static Cursor blankCursor = None; -static Cursor fullCrosshairCusor = None; - -/* SGI X server's support a special property called the - _SGI_CROSSHAIR_CURSOR that when installed as a window's - cursor, becomes a full screen crosshair cursor. SGI - has special cursor generation hardware for this case. */ -static Cursor -getFullCrosshairCursor(void) -{ - Cursor cursor; - Atom crosshairAtom, actualType; - int rc, actualFormat; - unsigned long n, left; - unsigned long *value; - - if (fullCrosshairCusor == None) { - crosshairAtom = XInternAtom(__glutDisplay, - "_SGI_CROSSHAIR_CURSOR", True); - if (crosshairAtom != None) { - value = 0; /* Make compiler happy. */ - rc = XGetWindowProperty(__glutDisplay, __glutRoot, - crosshairAtom, 0, 1, False, XA_CURSOR, &actualType, - &actualFormat, &n, &left, (unsigned char **) &value); - if (rc == Success && actualFormat == 32 && n >= 1) { - cursor = value[0]; - XFree(value); - return cursor; - } - } - } - return XCreateFontCursor(__glutDisplay, XC_crosshair); -} - -/* X11 forces you to create a blank cursor if you want - to disable the cursor. */ -static Cursor -makeBlankCursor(void) -{ - static char data[1] = - {0}; - Cursor cursor; - Pixmap blank; - XColor dummy; - - blank = XCreateBitmapFromData(__glutDisplay, __glutRoot, - data, 1, 1); - if (blank == None) - __glutFatalError("out of memory."); - cursor = XCreatePixmapCursor(__glutDisplay, blank, blank, - &dummy, &dummy, 0, 0); - XFreePixmap(__glutDisplay, blank); - - return cursor; -} -#endif /* !_WIN32 && !__OS2PM__*/ - -/* Win32 and X11 use this same function to accomplish - fairly different tasks. X11 lets you just define the - cursor for a window and the window system takes care - of making sure that the window's cursor is installed - when the mouse is in the window. Win32 requires the - application to handle a WM_SETCURSOR message to install - the right cursor when windows are entered. Think of - the Win32 __glutSetCursor (called from __glutWindowProc) - as "install cursor". Think of the X11 __glutSetCursor - (called from glutSetCursor) as "define cursor". */ -void -__glutSetCursor(GLUTwindow *window) -{ - int cursor = window->cursor; - Cursor xcursor = 0; - - if (cursor >= 0 && - cursor < sizeof(cursorTable) / sizeof(cursorTable[0])) { - if (cursorTable[cursor].cursor == None) { - cursorTable[cursor].cursor = XCreateFontCursor(__glutDisplay, - cursorTable[cursor].glyph); - } - xcursor = cursorTable[cursor].cursor; - } else { - /* Special cases. */ - switch (cursor) { - case GLUT_CURSOR_INHERIT: -#if defined(_WIN32) - while (window->parent) { - window = window->parent; - if (window->cursor != GLUT_CURSOR_INHERIT) { - __glutSetCursor(window); - return; - } - } - /* XXX Default to an arrow cursor. Is this - right or should we be letting the default - window proc be installing some system cursor? */ - xcursor = cursorTable[0].cursor; - if (xcursor == NULL) { - xcursor = - cursorTable[0].cursor = - LoadCursor(NULL, cursorTable[0].glyph); - } - -#elif defined(__OS2PM__) -//todo - xcursor = None; - -#else - xcursor = None; -#endif - break; - case GLUT_CURSOR_NONE: -#if defined(_WIN32) || defined(__OS2PM__) - xcursor = NULL; -#else - if (blankCursor == None) { - blankCursor = makeBlankCursor(); - } - xcursor = blankCursor; -#endif - break; - case GLUT_CURSOR_FULL_CROSSHAIR: -#if defined(_WIN32) - xcursor = (HICON) IDC_CROSS; -#elif defined(__OS2PM__) -//todo -#else - if (fullCrosshairCusor == None) { - fullCrosshairCusor = getFullCrosshairCursor(); - } - xcursor = fullCrosshairCusor; -#endif - break; - } - } - XDefineCursor(__glutDisplay, - window->win, xcursor); - XFlush(__glutDisplay); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutSetCursor(int cursor) -{ -#ifdef _WIN32 - POINT point; - - __glutCurrentWindow->cursor = cursor; - /* Are we in the window right now? If so, - install the cursor. */ - GetCursorPos(&point); - if (__glutCurrentWindow->win == WindowFromPoint(point)) { - __glutSetCursor(__glutCurrentWindow); - } -#elif defined(__OS2PM__) -//todo -#else - __glutCurrentWindow->cursor = cursor; - __glutSetCursor(__glutCurrentWindow); -#endif -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_event.cpp b/src/glut/os2/glut_event.cpp deleted file mode 100644 index 4ece82e52b..0000000000 --- a/src/glut/os2/glut_event.cpp +++ /dev/null @@ -1,1399 +0,0 @@ -/* glut_event.c */ -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1997, 1998. */ - -/* 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. */ - -#ifdef __VMS -#include <GL/vms_x_fix.h> -#endif - -#include <stdlib.h> -#include <stdio.h> -#include <errno.h> -#include <assert.h> -#include <string.h> /* Some FD_ZERO macros use memset without - prototyping memset. */ - -/* Much of the following #ifdef logic to include the proper - prototypes for the select system call is based on logic - from the X11R6.3 version of <X11/Xpoll.h>. */ - -#if !defined(_WIN32) -# ifdef __sgi -# include <bstring.h> /* prototype for bzero used by FD_ZERO */ -# endif -# if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE) -# include <sys/select.h> /* select system call interface */ -# ifdef luna -# include <sysent.h> -# endif -# endif - /* AIX 4.2 fubar-ed <sys/select.h>, so go to heroic measures to get it */ -# if defined(AIXV4) && !defined(NFDBITS) -# include <sys/select.h> -# endif -#endif /* !_WIN32 */ - -#include <sys/types.h> - -#if defined(__OS2__) -//??? 䨣 ?? # include <sys/time.h> -#elif !defined(_WIN32) -# if defined(__vms) && ( __VMS_VER < 70000000 ) -# include <sys/time.h> -# else -# ifndef __vms -# include <sys/time.h> -# endif -# endif -# include <unistd.h> -# include <X11/Xlib.h> -# include <X11/keysym.h> -#else -# ifdef __CYGWIN32__ -# include <sys/time.h> -# else -# include <sys/timeb.h> -# endif -# ifdef __hpux - /* XXX Bert Gijsbers <bert@mc.bio.uva.nl> reports that HP-UX - needs different keysyms for the End, Insert, and Delete keys - to work on an HP 715. It would be better if HP generated - standard keysyms for standard keys. */ -# include <X11/HPkeysym.h> -# endif -#endif /* !_WIN32 */ - -#include "glutint.h" - -#if defined(__vms) && ( __VMS_VER < 70000000 ) -#include <ssdef.h> -#include <psldef.h> -extern int SYS$CLREF(int efn); -extern int SYS$SETIMR(unsigned int efn, struct timeval6 *timeout, void *ast, - unsigned int request_id, unsigned int flags); -extern int SYS$WFLOR(unsigned int efn, unsigned int mask); -extern int SYS$CANTIM(unsigned int request_id, unsigned int mode); -#endif /* __vms, VMs 6.2 or earlier */ - -static GLUTtimer *freeTimerList = NULL; - -GLUTidleCB __glutIdleFunc = NULL; -GLUTtimer *__glutTimerList = NULL; -#ifdef SUPPORT_FORTRAN -GLUTtimer *__glutNewTimer; -#endif -GLUTwindow *__glutWindowWorkList = NULL; -GLUTmenu *__glutMappedMenu; -GLUTmenu *__glutCurrentMenu = NULL; - -void (*__glutUpdateInputDeviceMaskFunc) (GLUTwindow *); -#if !defined(_WIN32) && !defined(__OS2__) -void (*__glutMenuItemEnterOrLeave)(GLUTmenuItem * item, int num, int type) = NULL; -void (*__glutFinishMenu)(Window win, int x, int y); -void (*__glutPaintMenu)(GLUTmenu * menu); -void (*__glutStartMenu)(GLUTmenu * menu, GLUTwindow * window, int x, int y, int x_win, int y_win); -GLUTmenu * (*__glutGetMenuByNum)(int menunum); -GLUTmenuItem * (*__glutGetMenuItem)(GLUTmenu * menu, Window win, int *which); -GLUTmenu * (*__glutGetMenu)(Window win); -#endif - -Atom __glutMotifHints = None; -/* Modifier mask of ~0 implies not in core input callback. */ -unsigned int __glutModifierMask = (unsigned int) ~0; -int __glutWindowDamaged = 0; - -void GLUTAPIENTRY -glutIdleFunc(GLUTidleCB idleFunc) -{ - __glutIdleFunc = idleFunc; -} - -void GLUTAPIENTRY -glutTimerFunc(unsigned int interval, GLUTtimerCB timerFunc, int value) -{ - GLUTtimer *timer, *other; - GLUTtimer **prevptr; -#ifdef OLD_VMS - struct timeval6 now; -#else - struct timeval now; -#endif - - if (!timerFunc) - return; - - if (freeTimerList) { - timer = freeTimerList; - freeTimerList = timer->next; - } else { - timer = (GLUTtimer *) malloc(sizeof(GLUTtimer)); - if (!timer) - __glutFatalError("out of memory."); - } - - timer->func = timerFunc; -#if defined(__vms) && ( __VMS_VER < 70000000 ) - /* VMS time is expressed in units of 100 ns */ - timer->timeout.val = interval * TICKS_PER_MILLISECOND; -#else - timer->timeout.tv_sec = (int) interval / 1000; - timer->timeout.tv_usec = (int) (interval % 1000) * 1000; -#endif - timer->value = value; - timer->next = NULL; - GETTIMEOFDAY(&now); - ADD_TIME(timer->timeout, timer->timeout, now); - prevptr = &__glutTimerList; - other = *prevptr; - while (other && IS_AFTER(other->timeout, timer->timeout)) { - prevptr = &other->next; - other = *prevptr; - } - timer->next = other; -#ifdef SUPPORT_FORTRAN - __glutNewTimer = timer; /* for Fortran binding! */ -#endif - *prevptr = timer; -} - -void -handleTimeouts(void) -{ -#ifdef OLD_VMS - struct timeval6 now; -#else - struct timeval now; -#endif - GLUTtimer *timer; - - /* Assumption is that __glutTimerList is already determined - to be non-NULL. */ - GETTIMEOFDAY(&now); - while (IS_AT_OR_AFTER(__glutTimerList->timeout, now)) { - timer = __glutTimerList; - timer->func(timer->value); - __glutTimerList = timer->next; - timer->next = freeTimerList; - freeTimerList = timer; - if (!__glutTimerList) - break; - } -} - -void -__glutPutOnWorkList(GLUTwindow * window, int workMask) -{ - if (window->workMask) { - /* Already on list; just OR in new workMask. */ - window->workMask |= workMask; - } else { - /* Update work mask and add to window work list. */ - window->workMask = workMask; - /* Assert that if the window does not have a - workMask already, the window should definitely - not be the head of the work list. */ - assert(window != __glutWindowWorkList); - window->prevWorkWin = __glutWindowWorkList; - __glutWindowWorkList = window; - } -} - -void -__glutPostRedisplay(GLUTwindow * window, int layerMask) -{ - int shown = (layerMask & (GLUT_REDISPLAY_WORK | GLUT_REPAIR_WORK)) ? - window->shownState : window->overlay->shownState; - - /* Post a redisplay if the window is visible (or the - visibility of the window is unknown, ie. window->visState - == -1) _and_ the layer is known to be shown. */ - if (window->visState != GLUT_HIDDEN - && window->visState != GLUT_FULLY_COVERED && shown) { - __glutPutOnWorkList(window, layerMask); - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutPostRedisplay(void) -{ - __glutPostRedisplay(__glutCurrentWindow, GLUT_REDISPLAY_WORK); -} - -/* The advantage of this routine is that it saves the cost of a - glutSetWindow call (entailing an expensive OpenGL context switch), - particularly useful when multiple windows need redisplays posted at - the same times. See also glutPostWindowOverlayRedisplay. */ -void GLUTAPIENTRY -glutPostWindowRedisplay(int win) -{ - __glutPostRedisplay(__glutWindowList[win - 1], GLUT_REDISPLAY_WORK); -} - -/* ENDCENTRY */ -static GLUTeventParser *eventParserList = NULL; - -/* __glutRegisterEventParser allows another module to register - to intercept X events types not otherwise acted on by the - GLUT processEventsAndTimeouts routine. The X Input - extension support code uses an event parser for handling X - Input extension events. */ - -void -__glutRegisterEventParser(GLUTeventParser * parser) -{ - parser->next = eventParserList; - eventParserList = parser; -} - -static void -markWindowHidden(GLUTwindow * window) -{ - if (GLUT_HIDDEN != window->visState) { - GLUTwindow *child; - - if (window->windowStatus) { - window->visState = GLUT_HIDDEN; - __glutSetWindow(window); - window->windowStatus(GLUT_HIDDEN); - } - /* An unmap is only reported on a single window; its - descendents need to know they are no longer visible. */ - child = window->children; - while (child) { - markWindowHidden(child); - child = child->siblings; - } - } -} - -#if !defined(_WIN32) && !defined(__OS2__) - -static void -purgeStaleWindow(Window win) -{ - GLUTstale **pEntry = &__glutStaleWindowList; - GLUTstale *entry = __glutStaleWindowList; - - /* Tranverse singly-linked stale window list look for the - window ID. */ - while (entry) { - if (entry->win == win) { - /* Found it; delete it. */ - *pEntry = entry->next; - free(entry); - return; - } else { - pEntry = &entry->next; - entry = *pEntry; - } - } -} - -/* Unlike XNextEvent, if a signal arrives, - interruptibleXNextEvent will return (with a zero return - value). This helps GLUT drop out of XNextEvent if a signal - is delivered. The intent is so that a GLUT program can call - glutIdleFunc in a signal handler to register an idle func - and then immediately get dropped into the idle func (after - returning from the signal handler). The idea is to make - GLUT's main loop reliably interruptible by signals. */ -static int -interruptibleXNextEvent(Display * dpy, XEvent * event) -{ - fd_set fds; - int rc; - - /* Flush X protocol since XPending does not do this - implicitly. */ - XFlush(__glutDisplay); - for (;;) { - if (XPending(__glutDisplay)) { - XNextEvent(dpy, event); - return 1; - } -#ifndef VMS - /* the combination ConectionNumber-select is buggy on VMS. Sometimes it - * fails. This part of the code hangs the program on VMS7.2. But even - * without it the program seems to run correctly. - * Note that this is a bug in the VMS/DECWindows run-time-libraries. - * Compaq engeneering does not want or is not able to make a fix. - * (last sentence is a quotation from Compaq when I reported the - * problem January 2000) */ - FD_ZERO(&fds); - FD_SET(__glutConnectionFD, &fds); - rc = select(__glutConnectionFD + 1, &fds, NULL, NULL, NULL); - if (rc < 0) { - if (errno == EINTR) { - return 0; - } else { - __glutFatalError("select error."); - } - } -#endif - } -} - -#endif - -static void -processEventsAndTimeouts(void) -{ - do { -#if defined(__OS2__) - QMSG qmsg; /* message from message queue */ - extern HAB hab; /* PM anchor block handle */ - - if(! WinGetMsg( hab, &qmsg, 0UL, 0UL, 0UL ) ) - exit(0); - WinDispatchMsg( hab, /* PM anchor block handle */ - &qmsg ); /* pointer to message */ - -#elif defined(_WIN32) - MSG event; - - if(!GetMessage(&event, NULL, 0, 0)) /* bail if no more messages */ - exit(0); - TranslateMessage(&event); /* translate virtual-key messages */ - DispatchMessage(&event); /* call the window proc */ - /* see win32_event.c for event (message) processing procedures */ -#else - static int mappedMenuButton; - GLUTeventParser *parser; - XEvent event, ahead; - GLUTwindow *window; - GLUTkeyboardCB keyboard; - GLUTspecialCB special; - int gotEvent, width, height; - - gotEvent = interruptibleXNextEvent(__glutDisplay, &event); - if (gotEvent) { - switch (event.type) { - case MappingNotify: - XRefreshKeyboardMapping((XMappingEvent *) & event); - break; - case ConfigureNotify: - window = __glutGetWindow(event.xconfigure.window); - if (window) { - if (window->win != event.xconfigure.window) { - /* Ignore ConfigureNotify sent to the overlay - planes. GLUT could get here because overlays - select for StructureNotify events to receive - DestroyNotify. */ - break; - } - width = event.xconfigure.width; - height = event.xconfigure.height; - if (width != window->width || height != window->height) { - if (window->overlay) { - XResizeWindow(__glutDisplay, window->overlay->win, width, height); - } - window->width = width; - window->height = height; - __glutSetWindow(window); - /* Do not execute OpenGL out of sequence with - respect to the XResizeWindow request! */ - glXWaitX(); - window->reshape(width, height); - window->forceReshape = False; - /* A reshape should be considered like posting a - repair; this is necessary for the "Mesa - glXSwapBuffers to repair damage" hack to operate - correctly. Without it, there's not an initial - back buffer render from which to blit from when - damage happens to the window. */ - __glutPostRedisplay(window, GLUT_REPAIR_WORK); - } - } - break; - case Expose: - /* compress expose events */ - while (XEventsQueued(__glutDisplay, QueuedAfterReading) - > 0) { - XPeekEvent(__glutDisplay, &ahead); - if (ahead.type != Expose || - ahead.xexpose.window != event.xexpose.window) { - break; - } - XNextEvent(__glutDisplay, &event); - } - if (event.xexpose.count == 0) { - GLUTmenu *menu; - - if (__glutMappedMenu && - (menu = __glutGetMenu(event.xexpose.window))) { - __glutPaintMenu(menu); - } else { - window = __glutGetWindow(event.xexpose.window); - if (window) { - if (window->win == event.xexpose.window) { - __glutPostRedisplay(window, GLUT_REPAIR_WORK); - } else if (window->overlay && window->overlay->win == event.xexpose.window) { - __glutPostRedisplay(window, GLUT_OVERLAY_REPAIR_WORK); - } - } - } - } else { - /* there are more exposes to read; wait to redisplay */ - } - break; - case ButtonPress: - case ButtonRelease: - if (__glutMappedMenu && event.type == ButtonRelease - && mappedMenuButton == event.xbutton.button) { - /* Menu is currently popped up and its button is - released. */ - __glutFinishMenu(event.xbutton.window, event.xbutton.x, event.xbutton.y); - } else { - window = __glutGetWindow(event.xbutton.window); - if (window) { - GLUTmenu *menu; - int menuNum; - - menuNum = window->menu[event.xbutton.button - 1]; - /* Make sure that __glutGetMenuByNum is only called if there - really is a menu present. */ - if ((menuNum > 0) && (menu = __glutGetMenuByNum(menuNum))) { - if (event.type == ButtonPress && !__glutMappedMenu) { - __glutStartMenu(menu, window, - event.xbutton.x_root, event.xbutton.y_root, - event.xbutton.x, event.xbutton.y); - mappedMenuButton = event.xbutton.button; - } else { - /* Ignore a release of a button with a menu - attatched to it when no menu is popped up, - or ignore a press when another menu is - already popped up. */ - } - } else if (window->mouse) { - __glutSetWindow(window); - __glutModifierMask = event.xbutton.state; - window->mouse(event.xbutton.button - 1, - event.type == ButtonRelease ? - GLUT_UP : GLUT_DOWN, - event.xbutton.x, event.xbutton.y); - __glutModifierMask = ~0; - } else { - /* Stray mouse events. Ignore. */ - } - } else { - /* Window might have been destroyed and all the - events for the window may not yet be received. */ - } - } - break; - case MotionNotify: - if (!__glutMappedMenu) { - window = __glutGetWindow(event.xmotion.window); - if (window) { - /* If motion function registered _and_ buttons held - * down, call motion function... */ - if (window->motion && event.xmotion.state & - (Button1Mask | Button2Mask | Button3Mask)) { - __glutSetWindow(window); - window->motion(event.xmotion.x, event.xmotion.y); - } - /* If passive motion function registered _and_ - buttons not held down, call passive motion - function... */ - else if (window->passive && - ((event.xmotion.state & - (Button1Mask | Button2Mask | Button3Mask)) == - 0)) { - __glutSetWindow(window); - window->passive(event.xmotion.x, - event.xmotion.y); - } - } - } else { - /* Motion events are thrown away when a pop up menu - is active. */ - } - break; - case KeyPress: - case KeyRelease: - window = __glutGetWindow(event.xkey.window); - if (!window) { - break; - } - if (event.type == KeyPress) { - keyboard = window->keyboard; - } else { - - /* If we are ignoring auto repeated keys for this window, - check if the next event in the X event queue is a KeyPress - for the exact same key (and at the exact same time) as the - key being released. The X11 protocol will send auto - repeated keys as such KeyRelease/KeyPress pairs. */ - - if (window->ignoreKeyRepeat) { - if (XEventsQueued(__glutDisplay, QueuedAfterReading)) { - XPeekEvent(__glutDisplay, &ahead); - if (ahead.type == KeyPress - && ahead.xkey.window == event.xkey.window - && ahead.xkey.keycode == event.xkey.keycode - && ahead.xkey.time == event.xkey.time) { - /* Pop off the repeated KeyPress and ignore - the auto repeated KeyRelease/KeyPress pair. */ - XNextEvent(__glutDisplay, &event); - break; - } - } - } - keyboard = window->keyboardUp; - } - if (keyboard) { - char tmp[1]; - int rc; - - rc = XLookupString(&event.xkey, tmp, sizeof(tmp), - NULL, NULL); - if (rc) { - __glutSetWindow(window); - __glutModifierMask = event.xkey.state; - keyboard(tmp[0], - event.xkey.x, event.xkey.y); - __glutModifierMask = ~0; - break; - } - } - if (event.type == KeyPress) { - special = window->special; - } else { - special = window->specialUp; - } - if (special) { - KeySym ks; - int key; - -/* Introduced in X11R6: (Partial list of) Keypad Functions. Define - in place in case compiling against an older pre-X11R6 - X11/keysymdef.h file. */ -#ifndef XK_KP_Home -#define XK_KP_Home 0xFF95 -#endif -#ifndef XK_KP_Left -#define XK_KP_Left 0xFF96 -#endif -#ifndef XK_KP_Up -#define XK_KP_Up 0xFF97 -#endif -#ifndef XK_KP_Right -#define XK_KP_Right 0xFF98 -#endif -#ifndef XK_KP_Down -#define XK_KP_Down 0xFF99 -#endif -#ifndef XK_KP_Prior -#define XK_KP_Prior 0xFF9A -#endif -#ifndef XK_KP_Next -#define XK_KP_Next 0xFF9B -#endif -#ifndef XK_KP_End -#define XK_KP_End 0xFF9C -#endif -#ifndef XK_KP_Insert -#define XK_KP_Insert 0xFF9E -#endif -#ifndef XK_KP_Delete -#define XK_KP_Delete 0xFF9F -#endif - - ks = XLookupKeysym((XKeyEvent *) & event, 0); - /* XXX Verbose, but makes no assumptions about keysym - layout. */ - switch (ks) { -/* *INDENT-OFF* */ - /* function keys */ - case XK_F1: key = GLUT_KEY_F1; break; - case XK_F2: key = GLUT_KEY_F2; break; - case XK_F3: key = GLUT_KEY_F3; break; - case XK_F4: key = GLUT_KEY_F4; break; - case XK_F5: key = GLUT_KEY_F5; break; - case XK_F6: key = GLUT_KEY_F6; break; - case XK_F7: key = GLUT_KEY_F7; break; - case XK_F8: key = GLUT_KEY_F8; break; - case XK_F9: key = GLUT_KEY_F9; break; - case XK_F10: key = GLUT_KEY_F10; break; - case XK_F11: key = GLUT_KEY_F11; break; - case XK_F12: key = GLUT_KEY_F12; break; - /* directional keys */ - case XK_KP_Left: - case XK_Left: key = GLUT_KEY_LEFT; break; - case XK_KP_Up: /* Introduced in X11R6. */ - case XK_Up: key = GLUT_KEY_UP; break; - case XK_KP_Right: /* Introduced in X11R6. */ - case XK_Right: key = GLUT_KEY_RIGHT; break; - case XK_KP_Down: /* Introduced in X11R6. */ - case XK_Down: key = GLUT_KEY_DOWN; break; -/* *INDENT-ON* */ - - case XK_KP_Prior: /* Introduced in X11R6. */ - case XK_Prior: - /* XK_Prior same as X11R6's XK_Page_Up */ - key = GLUT_KEY_PAGE_UP; - break; - case XK_KP_Next: /* Introduced in X11R6. */ - case XK_Next: - /* XK_Next same as X11R6's XK_Page_Down */ - key = GLUT_KEY_PAGE_DOWN; - break; - case XK_KP_Home: /* Introduced in X11R6. */ - case XK_Home: - key = GLUT_KEY_HOME; - break; -#ifdef __hpux - case XK_Select: -#endif - case XK_KP_End: /* Introduced in X11R6. */ - case XK_End: - key = GLUT_KEY_END; - break; -#ifdef __hpux - case XK_InsertChar: -#endif - case XK_KP_Insert: /* Introduced in X11R6. */ - case XK_Insert: - key = GLUT_KEY_INSERT; - break; -#ifdef __hpux - case XK_DeleteChar: -#endif - case XK_KP_Delete: /* Introduced in X11R6. */ - /* The Delete character is really an ASCII key. */ - __glutSetWindow(window); - keyboard(127, /* ASCII Delete character. */ - event.xkey.x, event.xkey.y); - goto skip; - default: - goto skip; - } - __glutSetWindow(window); - __glutModifierMask = event.xkey.state; - special(key, event.xkey.x, event.xkey.y); - __glutModifierMask = ~0; - skip:; - } - break; - case EnterNotify: - case LeaveNotify: - if (event.xcrossing.mode != NotifyNormal || - event.xcrossing.detail == NotifyNonlinearVirtual || - event.xcrossing.detail == NotifyVirtual) { - - /* Careful to ignore Enter/LeaveNotify events that - come from the pop-up menu pointer grab and ungrab. - Also, ignore "virtual" Enter/LeaveNotify events - since they represent the pointer passing through - the window hierarchy without actually entering or - leaving the actual real estate of a window. */ - - break; - } - if (__glutMappedMenu) { - GLUTmenuItem *item; - int num; - - item = __glutGetMenuItem(__glutMappedMenu, - event.xcrossing.window, &num); - if (item) { - __glutMenuItemEnterOrLeave(item, num, event.type); - break; - } - } - window = __glutGetWindow(event.xcrossing.window); - if (window) { - if (window->entry) { - if (event.type == EnterNotify) { - - /* With overlays established, X can report two - enter events for both the overlay and normal - plane window. Do not generate a second enter - callback if we reported one without an - intervening leave. */ - - if (window->entryState != EnterNotify) { - int num = window->num; - Window xid = window->win; - - window->entryState = EnterNotify; - __glutSetWindow(window); - window->entry(GLUT_ENTERED); - - if (__glutMappedMenu) { - - /* Do not generate any passive motion events - when menus are in use. */ - - } else { - - /* An EnterNotify event can result in a - "compound" callback if a passive motion - callback is also registered. In this case, - be a little paranoid about the possibility - the window could have been destroyed in the - entry callback. */ - - window = __glutWindowList[num]; - if (window && window->passive && window->win == xid) { - __glutSetWindow(window); - window->passive(event.xcrossing.x, event.xcrossing.y); - } - } - } - } else { - if (window->entryState != LeaveNotify) { - - /* When an overlay is established for a window - already mapped and with the pointer in it, - the X server will generate a leave/enter - event pair as the pointer leaves (without - moving) from the normal plane X window to - the newly mapped overlay X window (or vice - versa). This enter/leave pair should not be - reported to the GLUT program since the pair - is a consequence of creating (or destroying) - the overlay, not an actual leave from the - GLUT window. */ - - if (XEventsQueued(__glutDisplay, QueuedAfterReading)) { - XPeekEvent(__glutDisplay, &ahead); - if (ahead.type == EnterNotify && - __glutGetWindow(ahead.xcrossing.window) == window) { - XNextEvent(__glutDisplay, &event); - break; - } - } - window->entryState = LeaveNotify; - __glutSetWindow(window); - window->entry(GLUT_LEFT); - } - } - } else if (window->passive) { - __glutSetWindow(window); - window->passive(event.xcrossing.x, event.xcrossing.y); - } - } - break; - case UnmapNotify: - /* MapNotify events are not needed to maintain - visibility state since VisibilityNotify events will - be delivered when a window becomes visible from - mapping. However, VisibilityNotify events are not - delivered when a window is unmapped (for the window - or its children). */ - window = __glutGetWindow(event.xunmap.window); - if (window) { - if (window->win != event.xconfigure.window) { - /* Ignore UnmapNotify sent to the overlay planes. - GLUT could get here because overlays select for - StructureNotify events to receive DestroyNotify. - */ - break; - } - markWindowHidden(window); - } - break; - case VisibilityNotify: - window = __glutGetWindow(event.xvisibility.window); - if (window) { - /* VisibilityUnobscured+1 = GLUT_FULLY_RETAINED, - VisibilityPartiallyObscured+1 = - GLUT_PARTIALLY_RETAINED, VisibilityFullyObscured+1 - = GLUT_FULLY_COVERED. */ - int visState = event.xvisibility.state + 1; - - if (visState != window->visState) { - if (window->windowStatus) { - window->visState = visState; - __glutSetWindow(window); - window->windowStatus(visState); - } - } - } - break; - case ClientMessage: - if (event.xclient.data.l[0] == __glutWMDeleteWindow) - exit(0); - break; - case DestroyNotify: - purgeStaleWindow(event.xdestroywindow.window); - break; - case CirculateNotify: - case CreateNotify: - case GravityNotify: - case ReparentNotify: - /* Uninteresting to GLUT (but possible for GLUT to - receive). */ - break; - default: - /* Pass events not directly handled by the GLUT main - event loop to any event parsers that have been - registered. In this way, X Input extension events - are passed to the correct handler without forcing - all GLUT programs to support X Input event handling. - */ - parser = eventParserList; - while (parser) { - if (parser->func(&event)) - break; - parser = parser->next; - } - break; - } - } -#endif /* _WIN32 */ - if (__glutTimerList) { - handleTimeouts(); - } - } - while (XPending(__glutDisplay)); -} - -static void -waitForSomething(void) -{ -#if defined(__vms) && ( __VMS_VER < 70000000 ) - static struct timeval6 zerotime = - {0}; - unsigned int timer_efn; -#define timer_id 'glut' /* random :-) number */ - unsigned int wait_mask; -#else - static struct timeval zerotime = - {0, 0}; -#if defined(__OS2__) - -#elif !defined(_WIN32) - fd_set fds; -#endif -#endif -#ifdef OLD_VMS - struct timeval6 now, timeout, waittime; -#else - struct timeval now, timeout, waittime; -#endif -#if !defined(_WIN32) - int rc; -#endif - - /* Flush X protocol since XPending does not do this - implicitly. */ - XFlush(__glutDisplay); - if (XPending(__glutDisplay)) { - /* It is possible (but quite rare) that XFlush may have - needed to wait for a writable X connection file - descriptor, and in the process, may have had to read off - X protocol from the file descriptor. If XPending is true, - this case occured and we should avoid waiting in select - since X protocol buffered within Xlib is due to be - processed and potentially no more X protocol is on the - file descriptor, so we would risk waiting improperly in - select. */ - goto immediatelyHandleXinput; - } -#if defined(__vms) && ( __VMS_VER < 70000000 ) - timeout = __glutTimerList->timeout; - GETTIMEOFDAY(&now); - wait_mask = 1 << (__glutConnectionFD & 31); - if (IS_AFTER(now, timeout)) { - /* We need an event flag for the timer. */ - /* XXX The `right' way to do this is to use LIB$GET_EF, but - since it needs to be in the same cluster as the EFN for - the display, we will have hack it. */ - timer_efn = __glutConnectionFD - 1; - if ((timer_efn / 32) != (__glutConnectionFD / 32)) { - timer_efn = __glutConnectionFD + 1; - } - rc = SYS$CLREF(timer_efn); - rc = SYS$SETIMR(timer_efn, &timeout, NULL, timer_id, 0); - wait_mask |= 1 << (timer_efn & 31); - } else { - timer_efn = 0; - } - rc = SYS$WFLOR(__glutConnectionFD, wait_mask); - if (timer_efn != 0 && SYS$CLREF(timer_efn) == SS$_WASCLR) { - rc = SYS$CANTIM(timer_id, PSL$C_USER); - } - /* XXX There does not seem to be checking of "rc" in the code - above. Can any of the SYS$ routines above fail? */ -#else /* not vms6.2 or lower */ -#if defined(__OS2__) - -#elif !defined(_WIN32) - FD_ZERO(&fds); - FD_SET(__glutConnectionFD, &fds); -#endif - timeout = __glutTimerList->timeout; - GETTIMEOFDAY(&now); - if (IS_AFTER(now, timeout)) { - TIMEDELTA(waittime, timeout, now); - } else { - waittime = zerotime; - } - -#if defined(__OS2__) - DosSleep(0); -#elif !defined(_WIN32) - rc = select(__glutConnectionFD + 1, &fds, - NULL, NULL, &waittime); - if (rc < 0 && errno != EINTR) - __glutFatalError("select error."); -#else - - MsgWaitForMultipleObjects(0, NULL, FALSE, - waittime.tv_sec*1000 + waittime.tv_usec/1000, QS_ALLINPUT); - -#endif -#endif /* not vms6.2 or lower */ - /* Without considering the cause of select unblocking, check - for pending X events and handle any timeouts (by calling - processEventsAndTimeouts). We always look for X events - even if select returned with 0 (indicating a timeout); - otherwise we risk starving X event processing by continous - timeouts. */ - if (XPending(__glutDisplay)) { - immediatelyHandleXinput: - processEventsAndTimeouts(); - } else { - if (__glutTimerList) - handleTimeouts(); - } -} - -static void -idleWait(void) -{ - if (XPending(__glutDisplay)) { - processEventsAndTimeouts(); - } else { - if (__glutTimerList) { - handleTimeouts(); - } - } - /* Make sure idle func still exists! */ - if (__glutIdleFunc) { - __glutIdleFunc(); - } -} - -static GLUTwindow **beforeEnd; - -static GLUTwindow * -processWindowWorkList(GLUTwindow * window) -{ - int workMask; - - if (window->prevWorkWin) { - window->prevWorkWin = processWindowWorkList(window->prevWorkWin); - } else { - beforeEnd = &window->prevWorkWin; - } - - /* Capture work mask for work that needs to be done to this - window, then clear the window's work mask (excepting the - dummy work bit, see below). Then, process the captured - work mask. This allows callbacks in the processing the - captured work mask to set the window's work mask for - subsequent processing. */ - - workMask = window->workMask; - assert((workMask & GLUT_DUMMY_WORK) == 0); - - /* Set the dummy work bit, clearing all other bits, to - indicate that the window is currently on the window work - list _and_ that the window's work mask is currently being - processed. This convinces __glutPutOnWorkList that this - window is on the work list still. */ - window->workMask = GLUT_DUMMY_WORK; - - /* Optimization: most of the time, the work to do is a - redisplay and not these other types of work. Check for - the following cases as a group to before checking each one - individually one by one. This saves about 25 MIPS - instructions in the common redisplay only case. */ - if (workMask & (GLUT_EVENT_MASK_WORK | GLUT_DEVICE_MASK_WORK | - GLUT_CONFIGURE_WORK | GLUT_COLORMAP_WORK | GLUT_MAP_WORK)) { - -#if !defined(_WIN32) && !defined(__OS2__) - /* Be sure to set event mask BEFORE map window is done. */ - if (workMask & GLUT_EVENT_MASK_WORK) { - long eventMask; - - /* Make sure children are not propogating events this - window is selecting for. Be sure to do this before - enabling events on the children's parent. */ - if (window->children) { - GLUTwindow *child = window->children; - unsigned long attribMask = CWDontPropagate; - XSetWindowAttributes wa; - - wa.do_not_propagate_mask = window->eventMask & GLUT_DONT_PROPAGATE_FILTER_MASK; - if (window->eventMask & GLUT_HACK_STOP_PROPAGATE_MASK) { - wa.event_mask = child->eventMask | (window->eventMask & GLUT_HACK_STOP_PROPAGATE_MASK); - attribMask |= CWEventMask; - } - do { - XChangeWindowAttributes(__glutDisplay, child->win, - attribMask, &wa); - child = child->siblings; - } while (child); - } - eventMask = window->eventMask; - if (window->parent && window->parent->eventMask & GLUT_HACK_STOP_PROPAGATE_MASK) - eventMask |= (window->parent->eventMask & GLUT_HACK_STOP_PROPAGATE_MASK); - XSelectInput(__glutDisplay, window->win, eventMask); - if (window->overlay) - XSelectInput(__glutDisplay, window->overlay->win, - window->eventMask & GLUT_OVERLAY_EVENT_FILTER_MASK); - } -#endif /* !_WIN32 */ - /* Be sure to set device mask BEFORE map window is done. */ - if (workMask & GLUT_DEVICE_MASK_WORK) { - __glutUpdateInputDeviceMaskFunc(window); - } - /* Be sure to configure window BEFORE map window is done. */ - if (workMask & GLUT_CONFIGURE_WORK) { -#if defined(__OS2__) - RECTL changes; - -#elif defined(_WIN32) - RECT changes; - POINT point; - UINT flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER - | SWP_NOSENDCHANGING | SWP_NOSIZE | SWP_NOZORDER; - - GetClientRect(window->win, &changes); - - /* If this window is a toplevel window, translate the 0,0 client - coordinate into a screen coordinate for proper placement. */ - if (!window->parent) { - point.x = 0; - point.y = 0; - ClientToScreen(window->win, &point); - changes.left = point.x; - changes.top = point.y; - } - if (window->desiredConfMask & (CWX | CWY)) { - changes.left = window->desiredX; - changes.top = window->desiredY; - flags &= ~SWP_NOMOVE; - } - if (window->desiredConfMask & (CWWidth | CWHeight)) { - changes.right = changes.left + window->desiredWidth; - changes.bottom = changes.top + window->desiredHeight; - flags &= ~SWP_NOSIZE; - /* XXX If overlay exists, resize the overlay here, ie. - if (window->overlay) ... */ - } - if (window->desiredConfMask & CWStackMode) { - flags &= ~SWP_NOZORDER; - /* XXX Overlay support might require something special here. */ - } - - /* Adjust the window rectangle because Win32 thinks that the x, y, - width & height are the WHOLE window (including decorations), - whereas GLUT treats the x, y, width & height as only the CLIENT - area of the window. Only do this to top level windows - that are not in game mode (since game mode windows do - not have any decorations). */ - if (!window->parent && window != __glutGameModeWindow) { - AdjustWindowRect(&changes, - WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, - FALSE); - } - - /* Do the repositioning, moving, and push/pop. */ - SetWindowPos(window->win, - window->desiredStack == Above ? HWND_TOP : HWND_NOTOPMOST, - changes.left, changes.top, - changes.right - changes.left, changes.bottom - changes.top, - flags); - - /* Zero out the mask. */ - window->desiredConfMask = 0; - - /* This hack causes the window to go back to the right position - when it is taken out of fullscreen mode. */ - if (workMask & GLUT_FULL_SCREEN_WORK) { - window->desiredConfMask |= CWX | CWY; - window->desiredX = point.x; - window->desiredY = point.y; - } -#else /* !_WIN32 */ - XWindowChanges changes; - - changes.x = window->desiredX; - changes.y = window->desiredY; - if (window->desiredConfMask & (CWWidth | CWHeight)) { - changes.width = window->desiredWidth; - changes.height = window->desiredHeight; - if (window->overlay) - XResizeWindow(__glutDisplay, window->overlay->win, - window->desiredWidth, window->desiredHeight); - if (__glutMotifHints != None) { - if (workMask & GLUT_FULL_SCREEN_WORK) { - MotifWmHints hints; - - hints.flags = MWM_HINTS_DECORATIONS; - hints.decorations = 0; /* Absolutely no - decorations. */ - XChangeProperty(__glutDisplay, window->win, - __glutMotifHints, __glutMotifHints, 32, - PropModeReplace, (unsigned char *) &hints, 4); - if (workMask & GLUT_MAP_WORK) { - /* Handle case where glutFullScreen is called - before the first time that the window is - mapped. Some window managers will randomly or - interactively position the window the first - time it is mapped if the window's - WM_NORMAL_HINTS property does not request an - explicit position. We don't want any such - window manager interaction when going - fullscreen. Overwrite the WM_NORMAL_HINTS - property installed by glutCreateWindow's - XSetWMProperties property with one explicitly - requesting a fullscreen window. */ - XSizeHints hints; - - hints.flags = USPosition | USSize; - hints.x = 0; - hints.y = 0; - hints.width = window->desiredWidth; - hints.height = window->desiredHeight; - XSetWMNormalHints(__glutDisplay, window->win, &hints); - } - } else { - XDeleteProperty(__glutDisplay, window->win, __glutMotifHints); - } - } - } - if (window->desiredConfMask & CWStackMode) { - changes.stack_mode = window->desiredStack; - /* Do not let glutPushWindow push window beneath the - underlay. */ - if (window->parent && window->parent->overlay - && window->desiredStack == Below) { - changes.stack_mode = Above; - changes.sibling = window->parent->overlay->win; - window->desiredConfMask |= CWSibling; - } - } - XConfigureWindow(__glutDisplay, window->win, - window->desiredConfMask, &changes); - window->desiredConfMask = 0; -#endif - } -#if !defined(_WIN32) && !defined(__OS2__) - /* Be sure to establish the colormaps BEFORE map window is - done. */ - if (workMask & GLUT_COLORMAP_WORK) { - __glutEstablishColormapsProperty(window); - } -#endif - if (workMask & GLUT_MAP_WORK) { - switch (window->desiredMapState) { - case WithdrawnState: - if (window->parent) { - XUnmapWindow(__glutDisplay, window->win); - } else { - XWithdrawWindow(__glutDisplay, window->win, - __glutScreen); - } - window->shownState = 0; - break; - case NormalState: - XMapWindow(__glutDisplay, window->win); - window->shownState = 1; - break; -#ifdef _WIN32 - case GameModeState: /* Not an Xlib value. */ - ShowWindow(window->win, SW_SHOW); - window->shownState = 1; - break; -#endif - case IconicState: - XIconifyWindow(__glutDisplay, window->win, __glutScreen); - window->shownState = 0; - break; - } - } - } - if (workMask & (GLUT_REDISPLAY_WORK | GLUT_OVERLAY_REDISPLAY_WORK | GLUT_REPAIR_WORK | GLUT_OVERLAY_REPAIR_WORK)) { - if (window->forceReshape) { - /* Guarantee that before a display callback is generated - for a window, a reshape callback must be generated. */ - __glutSetWindow(window); - window->reshape(window->width, window->height); - window->forceReshape = False; - - /* Setting the redisplay bit on the first reshape is - necessary to make the "Mesa glXSwapBuffers to repair - damage" hack operate correctly. Without indicating a - redisplay is necessary, there's not an initial back - buffer render from which to blit from when damage - happens to the window. */ - workMask |= GLUT_REDISPLAY_WORK; - } - /* The code below is more involved than otherwise necessary - because it is paranoid about the overlay or entire window - being removed or destroyed in the course of the callbacks. - Notice how the global __glutWindowDamaged is used to record - the layers' damage status. See the code in glutLayerGet for - how __glutWindowDamaged is used. The point is to not have to - update the "damaged" field after the callback since the - window (or overlay) may be destroyed (or removed) when the - callback returns. */ - - if (window->overlay && window->overlay->display) { - int num = window->num; - Window xid = window->overlay ? window->overlay->win : None; - - /* If an overlay display callback is registered, we - differentiate between a redisplay needed for the - overlay and/or normal plane. If there is no overlay - display callback registered, we simply use the - standard display callback. */ - - if (workMask & (GLUT_REDISPLAY_WORK | GLUT_REPAIR_WORK)) { - if (__glutMesaSwapHackSupport) { - if (window->usedSwapBuffers) { - if ((workMask & (GLUT_REPAIR_WORK | GLUT_REDISPLAY_WORK)) == GLUT_REPAIR_WORK) { - SWAP_BUFFERS_WINDOW(window); - goto skippedDisplayCallback1; - } - } - } - /* Render to normal plane. */ -#ifdef _WIN32 - window->renderDc = window->hdc; -#endif - window->renderWin = window->win; - window->renderCtx = window->ctx; - __glutWindowDamaged = (workMask & GLUT_REPAIR_WORK); - __glutSetWindow(window); - window->usedSwapBuffers = 0; - window->display(); - __glutWindowDamaged = 0; - - skippedDisplayCallback1:; - } - if (workMask & (GLUT_OVERLAY_REDISPLAY_WORK | GLUT_OVERLAY_REPAIR_WORK)) { - window = __glutWindowList[num]; - if (window && window->overlay && - window->overlay->win == xid && window->overlay->display) { - - /* Render to overlay. */ -#ifdef _WIN32 - window->renderDc = window->overlay->hdc; -#endif - window->renderWin = window->overlay->win; - window->renderCtx = window->overlay->ctx; - __glutWindowDamaged = (workMask & GLUT_OVERLAY_REPAIR_WORK); - __glutSetWindow(window); - window->overlay->display(); - __glutWindowDamaged = 0; - } else { - /* Overlay may have since been destroyed or the - overlay callback may have been disabled during - normal display callback. */ - } - } - } else { - if (__glutMesaSwapHackSupport) { - if (!window->overlay && window->usedSwapBuffers) { - if ((workMask & (GLUT_REPAIR_WORK | GLUT_REDISPLAY_WORK)) == GLUT_REPAIR_WORK) { - SWAP_BUFFERS_WINDOW(window); - goto skippedDisplayCallback2; - } - } - } - /* Render to normal plane (and possibly overlay). */ - __glutWindowDamaged = (workMask & (GLUT_OVERLAY_REPAIR_WORK | GLUT_REPAIR_WORK)); - __glutSetWindow(window); - window->usedSwapBuffers = 0; - window->display(); - __glutWindowDamaged = 0; - - skippedDisplayCallback2:; - } - } - /* Combine workMask with window->workMask to determine what - finish and debug work there is. */ - workMask |= window->workMask; - - if (workMask & GLUT_FINISH_WORK) { - /* Finish work makes sure a glFinish gets done to indirect - rendering contexts. Indirect contexts tend to have much - longer latency because lots of OpenGL extension requests - can queue up in the X protocol stream. __glutSetWindow - is where the finish works gets queued for indirect - contexts. */ - __glutSetWindow(window); - glFinish(); - } - if (workMask & GLUT_DEBUG_WORK) { - __glutSetWindow(window); - glutReportErrors(); - } - /* Strip out dummy, finish, and debug work bits. */ - window->workMask &= ~(GLUT_DUMMY_WORK | GLUT_FINISH_WORK | GLUT_DEBUG_WORK); - if (window->workMask) { - /* Leave on work list. */ - return window; - } else { - /* Remove current window from work list. */ - return window->prevWorkWin; - } -} - -#ifndef _WIN32 -static /* X11 implementations do not need this global. */ -#endif -void -__glutProcessWindowWorkLists(void) -{ - if (__glutWindowWorkList) { - GLUTwindow *remainder, *work; - - work = __glutWindowWorkList; - __glutWindowWorkList = NULL; - if (work) { - remainder = processWindowWorkList(work); - if (remainder) { - *beforeEnd = __glutWindowWorkList; - __glutWindowWorkList = remainder; - } - } - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutMainLoop(void) -{ -#if !defined(_WIN32) - if (!__glutDisplay) - __glutFatalUsage("main loop entered with out proper initialization."); -#endif - if (!__glutWindowListSize) - __glutFatalUsage( - "main loop entered with no windows created."); - for (;;) { - __glutProcessWindowWorkLists(); - if (__glutIdleFunc || __glutWindowWorkList) { - idleWait(); - } else { - if (__glutTimerList) { - waitForSomething(); - } else { - processEventsAndTimeouts(); - } - } - } -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_ext.cpp b/src/glut/os2/glut_ext.cpp deleted file mode 100644 index 6617fd6edb..0000000000 --- a/src/glut/os2/glut_ext.cpp +++ /dev/null @@ -1,204 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997. */ - -/* 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. */ - -#include <stdlib.h> -#include <string.h> - -#include "glutint.h" - -/* CENTRY */ -int GLUTAPIENTRY -glutExtensionSupported(const char *extension) -{ - static const GLubyte *extensions = NULL; - const GLubyte *start; - GLubyte *where, *terminator; - - /* Extension names should not have spaces. */ - where = (GLubyte *) strchr(extension, ' '); - if (where || *extension == '\0') - return 0; - - if (!extensions) { - extensions = glGetString(GL_EXTENSIONS); - } - /* It takes a bit of care to be fool-proof about parsing the - OpenGL extensions string. Don't be fooled by sub-strings, - etc. */ - start = extensions; - for (;;) { - /* If your application crashes in the strstr routine below, - you are probably calling glutExtensionSupported without - having a current window. Calling glGetString without - a current OpenGL context has unpredictable results. - Please fix your program. */ - where = (GLubyte *) strstr((const char *) start, extension); - if (!where) - break; - terminator = where + strlen(extension); - if (where == start || *(where - 1) == ' ') { - if (*terminator == ' ' || *terminator == '\0') { - return 1; - } - } - start = terminator; - } - return 0; -} - - -struct name_address_pair { - const char *name; - const void *address; -}; - -static struct name_address_pair glut_functions[] = { - { "glutInit", (const void *) glutInit }, - { "glutInitDisplayMode", (const void *) glutInitDisplayMode }, - { "glutInitDisplayString", (const void *) glutInitDisplayString }, - { "glutInitWindowPosition", (const void *) glutInitWindowPosition }, - { "glutInitWindowSize", (const void *) glutInitWindowSize }, - { "glutMainLoop", (const void *) glutMainLoop }, - { "glutCreateWindow", (const void *) glutCreateWindow }, - { "glutCreateSubWindow", (const void *) glutCreateSubWindow }, - { "glutDestroyWindow", (const void *) glutDestroyWindow }, - { "glutPostRedisplay", (const void *) glutPostRedisplay }, - { "glutPostWindowRedisplay", (const void *) glutPostWindowRedisplay }, - { "glutSwapBuffers", (const void *) glutSwapBuffers }, - { "glutGetWindow", (const void *) glutGetWindow }, - { "glutSetWindow", (const void *) glutSetWindow }, - { "glutSetWindowTitle", (const void *) glutSetWindowTitle }, - { "glutSetIconTitle", (const void *) glutSetIconTitle }, - { "glutPositionWindow", (const void *) glutPositionWindow }, - { "glutReshapeWindow", (const void *) glutReshapeWindow }, - { "glutPopWindow", (const void *) glutPopWindow }, - { "glutPushWindow", (const void *) glutPushWindow }, - { "glutIconifyWindow", (const void *) glutIconifyWindow }, - { "glutShowWindow", (const void *) glutShowWindow }, - { "glutHideWindow", (const void *) glutHideWindow }, - { "glutFullScreen", (const void *) glutFullScreen }, - { "glutSetCursor", (const void *) glutSetCursor }, - { "glutWarpPointer", (const void *) glutWarpPointer }, - { "glutEstablishOverlay", (const void *) glutEstablishOverlay }, - { "glutRemoveOverlay", (const void *) glutRemoveOverlay }, - { "glutUseLayer", (const void *) glutUseLayer }, - { "glutPostOverlayRedisplay", (const void *) glutPostOverlayRedisplay }, - { "glutPostWindowOverlayRedisplay", (const void *) glutPostWindowOverlayRedisplay }, - { "glutShowOverlay", (const void *) glutShowOverlay }, - { "glutHideOverlay", (const void *) glutHideOverlay }, - { "glutCreateMenu", (const void *) glutCreateMenu }, - { "glutDestroyMenu", (const void *) glutDestroyMenu }, - { "glutGetMenu", (const void *) glutGetMenu }, - { "glutSetMenu", (const void *) glutSetMenu }, - { "glutAddMenuEntry", (const void *) glutAddMenuEntry }, - { "glutAddSubMenu", (const void *) glutAddSubMenu }, - { "glutChangeToMenuEntry", (const void *) glutChangeToMenuEntry }, - { "glutChangeToSubMenu", (const void *) glutChangeToSubMenu }, - { "glutRemoveMenuItem", (const void *) glutRemoveMenuItem }, - { "glutAttachMenu", (const void *) glutAttachMenu }, - { "glutDetachMenu", (const void *) glutDetachMenu }, - { "glutDisplayFunc", (const void *) glutDisplayFunc }, - { "glutReshapeFunc", (const void *) glutReshapeFunc }, - { "glutKeyboardFunc", (const void *) glutKeyboardFunc }, - { "glutMouseFunc", (const void *) glutMouseFunc }, - { "glutMotionFunc", (const void *) glutMotionFunc }, - { "glutPassiveMotionFunc", (const void *) glutPassiveMotionFunc }, - { "glutEntryFunc", (const void *) glutEntryFunc }, - { "glutVisibilityFunc", (const void *) glutVisibilityFunc }, - { "glutIdleFunc", (const void *) glutIdleFunc }, - { "glutTimerFunc", (const void *) glutTimerFunc }, - { "glutMenuStateFunc", (const void *) glutMenuStateFunc }, - { "glutSpecialFunc", (const void *) glutSpecialFunc }, - { "glutSpaceballMotionFunc", (const void *) glutSpaceballMotionFunc }, - { "glutSpaceballRotateFunc", (const void *) glutSpaceballRotateFunc }, - { "glutSpaceballButtonFunc", (const void *) glutSpaceballButtonFunc }, - { "glutButtonBoxFunc", (const void *) glutButtonBoxFunc }, - { "glutDialsFunc", (const void *) glutDialsFunc }, - { "glutTabletMotionFunc", (const void *) glutTabletMotionFunc }, - { "glutTabletButtonFunc", (const void *) glutTabletButtonFunc }, - { "glutMenuStatusFunc", (const void *) glutMenuStatusFunc }, - { "glutOverlayDisplayFunc", (const void *) glutOverlayDisplayFunc }, - { "glutWindowStatusFunc", (const void *) glutWindowStatusFunc }, - { "glutKeyboardUpFunc", (const void *) glutKeyboardUpFunc }, - { "glutSpecialUpFunc", (const void *) glutSpecialUpFunc }, - { "glutJoystickFunc", (const void *) glutJoystickFunc }, - { "glutSetColor", (const void *) glutSetColor }, - { "glutGetColor", (const void *) glutGetColor }, - { "glutCopyColormap", (const void *) glutCopyColormap }, - { "glutGet", (const void *) glutGet }, - { "glutDeviceGet", (const void *) glutDeviceGet }, - { "glutExtensionSupported", (const void *) glutExtensionSupported }, - { "glutGetModifiers", (const void *) glutGetModifiers }, - { "glutLayerGet", (const void *) glutLayerGet }, - { "glutGetProcAddress", (const void *) glutGetProcAddress }, - { "glutBitmapCharacter", (const void *) glutBitmapCharacter }, - { "glutBitmapWidth", (const void *) glutBitmapWidth }, - { "glutStrokeCharacter", (const void *) glutStrokeCharacter }, - { "glutStrokeWidth", (const void *) glutStrokeWidth }, - { "glutBitmapLength", (const void *) glutBitmapLength }, - { "glutStrokeLength", (const void *) glutStrokeLength }, - { "glutWireSphere", (const void *) glutWireSphere }, - { "glutSolidSphere", (const void *) glutSolidSphere }, - { "glutWireCone", (const void *) glutWireCone }, - { "glutSolidCone", (const void *) glutSolidCone }, - { "glutWireCube", (const void *) glutWireCube }, - { "glutSolidCube", (const void *) glutSolidCube }, - { "glutWireTorus", (const void *) glutWireTorus }, - { "glutSolidTorus", (const void *) glutSolidTorus }, - { "glutWireDodecahedron", (const void *) glutWireDodecahedron }, - { "glutSolidDodecahedron", (const void *) glutSolidDodecahedron }, - { "glutWireTeapot", (const void *) glutWireTeapot }, - { "glutSolidTeapot", (const void *) glutSolidTeapot }, - { "glutWireOctahedron", (const void *) glutWireOctahedron }, - { "glutSolidOctahedron", (const void *) glutSolidOctahedron }, - { "glutWireTetrahedron", (const void *) glutWireTetrahedron }, - { "glutSolidTetrahedron", (const void *) glutSolidTetrahedron }, - { "glutWireIcosahedron", (const void *) glutWireIcosahedron }, - { "glutSolidIcosahedron", (const void *) glutSolidIcosahedron }, - { "glutVideoResizeGet", (const void *) glutVideoResizeGet }, - { "glutSetupVideoResizing", (const void *) glutSetupVideoResizing }, - { "glutStopVideoResizing", (const void *) glutStopVideoResizing }, - { "glutVideoResize", (const void *) glutVideoResize }, - { "glutVideoPan", (const void *) glutVideoPan }, - { "glutReportErrors", (const void *) glutReportErrors }, - { "glutIgnoreKeyRepeat", (const void *) glutIgnoreKeyRepeat }, - { "glutSetKeyRepeat", (const void *) glutSetKeyRepeat }, - { "glutForceJoystickFunc", (const void *) glutForceJoystickFunc }, - { "glutGameModeString", (const void *) glutGameModeString }, - { "glutEnterGameMode", (const void *) glutEnterGameMode }, - { "glutLeaveGameMode", (const void *) glutLeaveGameMode }, - { "glutGameModeGet", (const void *) glutGameModeGet }, - { NULL, NULL } -}; - - -/* XXX This isn't an official GLUT function, yet */ -void * GLUTAPIENTRY -glutGetProcAddress(const char *procName) -{ - /* Try GLUT functions first */ - int i; - for (i = 0; glut_functions[i].name; i++) { - if (strcmp(glut_functions[i].name, procName) == 0) - return (void *) glut_functions[i].address; - } - - /* Try core GL functions */ -#if defined(_WIN32) - return (void *) wglGetProcAddress((LPCSTR) procName); - -#elif defined(__OS2PM__) - return (void *) wglGetProcAddress((char *) procName); -#elif defined(GLX_ARB_get_proc_address) - return (void *) glXGetProcAddressARB((const GLubyte *) procName); -#else - return NULL; -#endif -} - - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_fullscrn.cpp b/src/glut/os2/glut_fullscrn.cpp deleted file mode 100644 index 584aba4fd8..0000000000 --- a/src/glut/os2/glut_fullscrn.cpp +++ /dev/null @@ -1,38 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1995, 1998. */ - -/* 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. */ - -#include <assert.h> - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutFullScreen(void) -{ - assert(!__glutCurrentWindow->parent); - IGNORE_IN_GAME_MODE(); -#if !defined(_WIN32) && !defined(__OS2PM__) - if (__glutMotifHints == None) { - __glutMotifHints = XSGIFastInternAtom(__glutDisplay, "_MOTIF_WM_HINTS", - SGI_XA__MOTIF_WM_HINTS, 0); - if (__glutMotifHints == None) { - __glutWarning("Could not intern X atom for _MOTIF_WM_HINTS."); - } - } -#endif - - __glutCurrentWindow->desiredX = 0; - __glutCurrentWindow->desiredY = 0; - __glutCurrentWindow->desiredWidth = __glutScreenWidth; - __glutCurrentWindow->desiredHeight = __glutScreenHeight; - __glutCurrentWindow->desiredConfMask |= CWX | CWY | CWWidth | CWHeight; - - __glutPutOnWorkList(__glutCurrentWindow, - GLUT_CONFIGURE_WORK | GLUT_FULL_SCREEN_WORK); -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_gamemode.cpp b/src/glut/os2/glut_gamemode.cpp deleted file mode 100644 index 1756e8a4b5..0000000000 --- a/src/glut/os2/glut_gamemode.cpp +++ /dev/null @@ -1,679 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1998. */ - -/* 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. */ - - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "glutint.h" - -#if !defined(_WIN32) && !defined(__OS2__) -#include <X11/Xlib.h> -#include <X11/Xatom.h> - -/* SGI optimization introduced in IRIX 6.3 to avoid X server - round trips for interning common X atoms. */ -#if defined(_SGI_EXTRA_PREDEFINES) && !defined(NO_FAST_ATOMS) -#include <X11/SGIFastAtom.h> -#else -#define XSGIFastInternAtom(dpy,string,fast_name,how) XInternAtom(dpy,string,how) -#endif -#endif /* not _WIN32 */ - -int __glutDisplaySettingsChanged = 0; -static DisplayMode *dmodes, *currentDm = NULL; -static int ndmodes = -1; -GLUTwindow *__glutGameModeWindow = NULL; - -#ifdef TEST -static char *compstr[] = -{ - "none", "=", "!=", "<=", ">=", ">", "<", "~" -}; -static char *capstr[] = -{ - "width", "height", "bpp", "hertz", "num" -}; -#endif - -#if defined(__OS2__) -void -#else -void __cdecl -#endif -__glutCloseDownGameMode(void) -{ - if (__glutDisplaySettingsChanged) { -#ifdef _WIN32 - /* Assumes that display settings have been changed, that - is __glutDisplaySettingsChanged is true. */ - ChangeDisplaySettings(NULL, 0); -#endif - __glutDisplaySettingsChanged = 0; - } - __glutGameModeWindow = NULL; -} - -void GLUTAPIENTRY -glutLeaveGameMode(void) -{ - if (__glutGameModeWindow == NULL) { - __glutWarning("not in game mode so cannot leave game mode"); - return; - } - __glutDestroyWindow(__glutGameModeWindow, - __glutGameModeWindow); - XFlush(__glutDisplay); - __glutGameModeWindow = NULL; -} - -#ifdef _WIN32 - -/* Same values as from MSDN's SetDisp.c example. */ -#define MIN_WIDTH 400 -#define MIN_FREQUENCY 60 - -static void -initGameModeSupport(void) -{ - DEVMODE dm; - DWORD mode; - int i; - - if (ndmodes >= 0) { - /* ndmodes is initially -1 to indicate no - dmodes allocated yet. */ - return; - } - - /* Determine how many display modes there are. */ - ndmodes = 0; - mode = 0; - while (EnumDisplaySettings(NULL, mode, &dm)) { - if (dm.dmPelsWidth >= MIN_WIDTH && - (dm.dmDisplayFrequency == 0 || - dm.dmDisplayFrequency >= MIN_FREQUENCY)) { - ndmodes++; - } - mode++; - } - - /* Allocate memory for a list of all the display modes. */ - dmodes = (DisplayMode*) - malloc(ndmodes * sizeof(DisplayMode)); - - /* Now that we know how many display modes to expect, - enumerate them again and save the information in - the list we allocated above. */ - i = 0; - mode = 0; - while (EnumDisplaySettings(NULL, mode, &dm)) { - /* Try to reject any display settings that seem unplausible. */ - if (dm.dmPelsWidth >= MIN_WIDTH && - (dm.dmDisplayFrequency == 0 || - dm.dmDisplayFrequency >= MIN_FREQUENCY)) { - dmodes[i].devmode = dm; - dmodes[i].valid = 1; /* XXX Not used for now. */ - dmodes[i].cap[DM_WIDTH] = dm.dmPelsWidth; - dmodes[i].cap[DM_HEIGHT] = dm.dmPelsHeight; - dmodes[i].cap[DM_PIXEL_DEPTH] = dm.dmBitsPerPel; - if (dm.dmDisplayFrequency == 0) { - /* Guess a reasonable guess. */ - /* Lame Windows 95 version of EnumDisplaySettings. */ - dmodes[i].cap[DM_HERTZ] = 60; - } else { - dmodes[i].cap[DM_HERTZ] = dm.dmDisplayFrequency; - } - i++; - } - mode++; - } - - assert(i == ndmodes); -} - -#else - -/* X Windows version of initGameModeSupport. */ -static void -initGameModeSupport(void) -{ - if (ndmodes >= 0) { - /* ndmodes is initially -1 to indicate no - dmodes allocated yet. */ - return; - } - - /* Determine how many display modes there are. */ - ndmodes = 0; -} - -#endif - -/* This routine is based on similiar code in glut_dstr.c */ -static DisplayMode * -findMatch(DisplayMode * dmodes, int ndmodes, - Criterion * criteria, int ncriteria) -{ - DisplayMode *found; - int *bestScore, *thisScore; - int i, j, numok, result = 0, worse, better; - - found = NULL; - numok = 1; /* "num" capability is indexed from 1, - not 0. */ - - /* XXX alloca canidate. */ - bestScore = (int *) malloc(ncriteria * sizeof(int)); - if (!bestScore) { - __glutFatalError("out of memory."); - } - for (j = 0; j < ncriteria; j++) { - /* Very negative number. */ - bestScore[j] = -32768; - } - - /* XXX alloca canidate. */ - thisScore = (int *) malloc(ncriteria * sizeof(int)); - if (!thisScore) { - __glutFatalError("out of memory."); - } - - for (i = 0; i < ndmodes; i++) { - if (dmodes[i].valid) { - worse = 0; - better = 0; - - for (j = 0; j < ncriteria; j++) { - int cap, cvalue, dvalue; - - cap = criteria[j].capability; - cvalue = criteria[j].value; - if (cap == NUM) { - dvalue = numok; - } else { - dvalue = dmodes[i].cap[cap]; - } -#ifdef TEST - if (verbose) - printf(" %s %s %d to %d\n", - capstr[cap], compstr[criteria[j].comparison], cvalue, dvalue); -#endif - switch (criteria[j].comparison) { - case EQ: - result = cvalue == dvalue; - thisScore[j] = 1; - break; - case NEQ: - result = cvalue != dvalue; - thisScore[j] = 1; - break; - case LT: - result = dvalue < cvalue; - thisScore[j] = dvalue - cvalue; - break; - case GT: - result = dvalue > cvalue; - thisScore[j] = dvalue - cvalue; - break; - case LTE: - result = dvalue <= cvalue; - thisScore[j] = dvalue - cvalue; - break; - case GTE: - result = (dvalue >= cvalue); - thisScore[j] = dvalue - cvalue; - break; - case MIN: - result = dvalue >= cvalue; - thisScore[j] = cvalue - dvalue; - break; - } - -#ifdef TEST - if (verbose) - printf(" result=%d score=%d bestScore=%d\n", result, thisScore[j], bestScore[j]); -#endif - - if (result) { - if (better || thisScore[j] > bestScore[j]) { - better = 1; - } else if (thisScore[j] == bestScore[j]) { - /* Keep looking. */ - } else { - goto nextDM; - } - } else { - if (cap == NUM) { - worse = 1; - } else { - goto nextDM; - } - } - - } - - if (better && !worse) { - found = &dmodes[i]; - for (j = 0; j < ncriteria; j++) { - bestScore[j] = thisScore[j]; - } - } - numok++; - - nextDM:; - - } - } - free(bestScore); - free(thisScore); - return found; -} - -/** - * Parses strings in the form of: - * 800x600 - * 800x600:16 - * 800x600@60 - * 800x600:16@60 - * @60 - * :16 - * :16@60 - * NOTE that @ before : is not parsed. - */ -static int -specialCaseParse(char *word, Criterion * criterion, int mask) -{ - char *xstr, *response; - int got; - int width, height, bpp, hertz; - - switch(word[0]) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - /* The WWWxHHH case. */ - if (mask & (1 << DM_WIDTH)) { - return -1; - } - xstr = strpbrk(&word[1], "x"); - if (xstr) { - width = (int) strtol(word, &response, 0); - if (response == word || response[0] != 'x') { - /* Not a valid number OR needs to be followed by 'x'. */ - return -1; - } - height = (int) strtol(&xstr[1], &response, 0); - if (response == &xstr[1]) { - /* Not a valid number. */ - return -1; - } - criterion[0].capability = DM_WIDTH; - criterion[0].comparison = EQ; - criterion[0].value = width; - criterion[1].capability = DM_HEIGHT; - criterion[1].comparison = EQ; - criterion[1].value = height; - got = specialCaseParse(response, - &criterion[2], 1 << DM_WIDTH); - if (got >= 0) { - return got + 2; - } else { - return -1; - } - } - return -1; - case ':': - /* The :BPP case. */ - if (mask & (1 << DM_PIXEL_DEPTH)) { - return -1; - } - bpp = (int) strtol(&word[1], &response, 0); - if (response == &word[1]) { - /* Not a valid number. */ - return -1; - } - criterion[0].capability = DM_PIXEL_DEPTH; - criterion[0].comparison = EQ; - criterion[0].value = bpp; - got = specialCaseParse(response, - &criterion[1], (1 << DM_WIDTH) | (1 << DM_PIXEL_DEPTH)); - if (got >= 0) { - return got + 1; - } else { - return -1; - } - case '@': - /* The @HZ case. */ - if (mask & (1 << DM_HERTZ)) { - return -1; - } - hertz = (int) strtol(&word[1], &response, 0); - if (response == &word[1]) { - /* Not a valid number. */ - return -1; - } - criterion[0].capability = DM_HERTZ; - criterion[0].comparison = EQ; - criterion[0].value = hertz; - got = specialCaseParse(response, - &criterion[1], ~DM_HERTZ); - if (got >= 0) { - return got + 1; - } else { - return -1; - } - case '\0': - return 0; - } - return -1; -} - -/* This routine is based on similiar code in glut_dstr.c */ -static int -parseCriteria(char *word, Criterion * criterion) -{ - char *cstr, *vstr, *response; - int comparator, value = 0; - - cstr = strpbrk(word, "=><!~"); - if (cstr) { - switch (cstr[0]) { - case '=': - comparator = EQ; - vstr = &cstr[1]; - break; - case '~': - comparator = MIN; - vstr = &cstr[1]; - break; - case '>': - if (cstr[1] == '=') { - comparator = GTE; - vstr = &cstr[2]; - } else { - comparator = GT; - vstr = &cstr[1]; - } - break; - case '<': - if (cstr[1] == '=') { - comparator = LTE; - vstr = &cstr[2]; - } else { - comparator = LT; - vstr = &cstr[1]; - } - break; - case '!': - if (cstr[1] == '=') { - comparator = NEQ; - vstr = &cstr[2]; - } else { - return -1; - } - break; - default: - return -1; - } - value = (int) strtol(vstr, &response, 0); - if (response == vstr) { - /* Not a valid number. */ - return -1; - } - *cstr = '\0'; - } else { - comparator = NONE; - } - switch (word[0]) { - case 'b': - if (!strcmp(word, "bpp")) { - criterion[0].capability = DM_PIXEL_DEPTH; - if (comparator == NONE) { - return -1; - } else { - criterion[0].comparison = comparator; - criterion[0].value = value; - return 1; - } - } - return -1; - case 'h': - if (!strcmp(word, "height")) { - criterion[0].capability = DM_HEIGHT; - if (comparator == NONE) { - return -1; - } else { - criterion[0].comparison = comparator; - criterion[0].value = value; - return 1; - } - } - if (!strcmp(word, "hertz")) { - criterion[0].capability = DM_HERTZ; - if (comparator == NONE) { - return -1; - } else { - criterion[0].comparison = comparator; - criterion[0].value = value; - return 1; - } - } - return -1; - case 'n': - if (!strcmp(word, "num")) { - criterion[0].capability = DM_NUM; - if (comparator == NONE) { - return -1; - } else { - criterion[0].comparison = comparator; - criterion[0].value = value; - return 1; - } - } - return -1; - case 'w': - if (!strcmp(word, "width")) { - criterion[0].capability = DM_WIDTH; - if (comparator == NONE) { - return -1; - } else { - criterion[0].comparison = comparator; - criterion[0].value = value; - return 1; - } - } - return -1; - } - if (comparator == NONE) { - return specialCaseParse(word, criterion, 0); - } - return -1; -} - -/* This routine is based on similiar code in glut_dstr.c */ -static Criterion * -parseDisplayString(const char *display, int *ncriteria) -{ - Criterion *criteria = NULL; - int n, parsed; - char *copy, *word; - - copy = __glutStrdup(display); - /* Attempt to estimate how many criteria entries should be - needed. */ - n = 0; - word = strtok(copy, " \t"); - while (word) { - n++; - word = strtok(NULL, " \t"); - } - /* Allocate number of words of criteria. A word - could contain as many as four criteria in the - worst case. Example: 800x600:16@60 */ - criteria = (Criterion *) malloc(4 * n * sizeof(Criterion)); - if (!criteria) { - __glutFatalError("out of memory."); - } - - /* Re-copy the copy of the display string. */ - strcpy(copy, display); - - n = 0; - word = strtok(copy, " \t"); - while (word) { - parsed = parseCriteria(word, &criteria[n]); - if (parsed >= 0) { - n += parsed; - } else { - __glutWarning("Unrecognized game mode string word: %s (ignoring)\n", word); - } - word = strtok(NULL, " \t"); - } - - free(copy); - *ncriteria = n; - return criteria; -} - -void GLUTAPIENTRY -glutGameModeString(const char *string) -{ - Criterion *criteria; - int ncriteria; - - initGameModeSupport(); - criteria = parseDisplayString(string, &ncriteria); - currentDm = findMatch(dmodes, ndmodes, criteria, ncriteria); - free(criteria); -} - -int GLUTAPIENTRY -glutEnterGameMode(void) -{ - GLUTwindow *window; - int width, height; - Window win; - - if (__glutMappedMenu) { - __glutFatalUsage("entering game mode not allowed while menus in use"); - } - if (__glutGameModeWindow) { - /* Already in game mode, so blow away game mode - window so apps can change resolutions. */ - window = __glutGameModeWindow; - /* Setting the game mode window to NULL tricks - the window destroy code into not undoing the - screen display change since we plan on immediately - doing another mode change. */ - __glutGameModeWindow = NULL; - __glutDestroyWindow(window, window); - } - - /* Assume default screen size until we find out if we - can actually change the display settings. */ - width = __glutScreenWidth; - height = __glutScreenHeight; - - if (currentDm) { -#ifdef _WIN32 - LONG status; - static int registered = 0; - - status = ChangeDisplaySettings(¤tDm->devmode, - CDS_FULLSCREEN); - if (status == DISP_CHANGE_SUCCESSFUL) { - __glutDisplaySettingsChanged = 1; - width = currentDm->cap[DM_WIDTH]; - height = currentDm->cap[DM_HEIGHT]; - if (!registered) { - atexit(__glutCloseDownGameMode); - registered = 1; - } - } else { - /* Switch back to default resolution. */ - ChangeDisplaySettings(NULL, 0); - } -#endif - } - - window = __glutCreateWindow(NULL, 0, 0, - width, height, /* game mode */ 1); - win = window->win; - -#if !defined(_WIN32) && !defined(__OS2__) - if (__glutMotifHints == None) { - __glutMotifHints = XSGIFastInternAtom(__glutDisplay, "_MOTIF_WM_HINTS", - SGI_XA__MOTIF_WM_HINTS, 0); - if (__glutMotifHints == None) { - __glutWarning("Could not intern X atom for _MOTIF_WM_HINTS."); - } - } - - /* Game mode window is a toplevel window. */ - XSetWMProtocols(__glutDisplay, win, &__glutWMDeleteWindow, 1); -#endif - - /* Schedule the fullscreen property to be added and to - make sure the window is configured right. Win32 - doesn't need this. */ - window->desiredX = 0; - window->desiredY = 0; - window->desiredWidth = width; - window->desiredHeight = height; - window->desiredConfMask |= CWX | CWY | CWWidth | CWHeight; -#ifdef _WIN32 - /* Win32 does not want to use GLUT_FULL_SCREEN_WORK - for game mode because we need to be maximizing - the window in game mode, not just sizing it to - take up the full screen. The Win32-ness of game - mode happens when you pass 1 in the gameMode parameter - to __glutCreateWindow above. A gameMode of creates - a WS_POPUP window, not a standard WS_OVERLAPPEDWINDOW - window. WS_POPUP ensures the taskbar is hidden. */ - __glutPutOnWorkList(window, - GLUT_CONFIGURE_WORK); -#else - __glutPutOnWorkList(window, - GLUT_CONFIGURE_WORK | GLUT_FULL_SCREEN_WORK); -#endif - - __glutGameModeWindow = window; - return window->num + 1; -} - -int GLUTAPIENTRY -glutGameModeGet(GLenum mode) -{ - switch (mode) { - case GLUT_GAME_MODE_ACTIVE: - return __glutGameModeWindow != NULL; - case GLUT_GAME_MODE_POSSIBLE: - return currentDm != NULL; - case GLUT_GAME_MODE_WIDTH: - return currentDm ? currentDm->cap[DM_WIDTH] : -1; - case GLUT_GAME_MODE_HEIGHT: - return currentDm ? currentDm->cap[DM_HEIGHT] : -1; - case GLUT_GAME_MODE_PIXEL_DEPTH: - return currentDm ? currentDm->cap[DM_PIXEL_DEPTH] : -1; - case GLUT_GAME_MODE_REFRESH_RATE: - return currentDm ? currentDm->cap[DM_HERTZ] : -1; - case GLUT_GAME_MODE_DISPLAY_CHANGED: - return __glutDisplaySettingsChanged; - default: - return -1; - } -} diff --git a/src/glut/os2/glut_get.cpp b/src/glut/os2/glut_get.cpp deleted file mode 100644 index 8921e9ab03..0000000000 --- a/src/glut/os2/glut_get.cpp +++ /dev/null @@ -1,232 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */ - -/* 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. */ - -#include <assert.h> -#include <stdlib.h> /* SunOS 4 needs NULL defined for GETTIMEOFDAY macro. */ -#include "glutint.h" - -/* CENTRY */ -int GLUTAPIENTRY -glutGet(GLenum param) -{ - Window win, root; - int x, y, value; - unsigned int width, height, border, depth; - - switch (param) { - case GLUT_INIT_WINDOW_X: - return __glutInitX; - case GLUT_INIT_WINDOW_Y: - return __glutInitY; - case GLUT_INIT_WINDOW_WIDTH: - return __glutInitWidth; - case GLUT_INIT_WINDOW_HEIGHT: - return __glutInitHeight; - case GLUT_INIT_DISPLAY_MODE: - return __glutDisplayMode; - case GLUT_WINDOW_X: - XTranslateCoordinates(__glutDisplay, __glutCurrentWindow->win, - __glutRoot, 0, 0, &x, &y, &win); - return x; - case GLUT_WINDOW_Y: - XTranslateCoordinates(__glutDisplay, __glutCurrentWindow->win, - __glutRoot, 0, 0, &x, &y, &win); - return y; - case GLUT_WINDOW_WIDTH: - if (!__glutCurrentWindow->reshape) { - XGetGeometry(__glutDisplay, __glutCurrentWindow->win, - &root, &x, &y, - &width, &height, &border, &depth); - return width; - } - return __glutCurrentWindow->width; - case GLUT_WINDOW_HEIGHT: - if (!__glutCurrentWindow->reshape) { - XGetGeometry(__glutDisplay, __glutCurrentWindow->win, - &root, &x, &y, - &width, &height, &border, &depth); - return height; - } - return __glutCurrentWindow->height; -#ifdef __OS2__ - #define GET_CONFIG(attrib) \ - { if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) \ - glXGetConfig( __glutCurrentWindow->vis, attrib, &value); \ - else \ - glXGetConfig(__glutCurrentWindow->overlay->vis, attrib, &value); \ - } \ - -#else - -#define GET_CONFIG(attrib) { \ - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { \ - glXGetConfig(__glutDisplay, __glutCurrentWindow->vis, \ - attrib, &value); \ - } else { \ - glXGetConfig(__glutDisplay, __glutCurrentWindow->overlay->vis, \ - attrib, &value); \ - } \ -} -#endif - - case GLUT_WINDOW_BUFFER_SIZE: - GET_CONFIG(GLX_BUFFER_SIZE); - return value; - case GLUT_WINDOW_STENCIL_SIZE: - GET_CONFIG(GLX_STENCIL_SIZE); - return value; - case GLUT_WINDOW_DEPTH_SIZE: - GET_CONFIG(GLX_DEPTH_SIZE); - return value; - case GLUT_WINDOW_RED_SIZE: - GET_CONFIG(GLX_RED_SIZE); - return value; - case GLUT_WINDOW_GREEN_SIZE: - GET_CONFIG(GLX_GREEN_SIZE); - return value; - case GLUT_WINDOW_BLUE_SIZE: - GET_CONFIG(GLX_BLUE_SIZE); - return value; - case GLUT_WINDOW_ALPHA_SIZE: - GET_CONFIG(GLX_ALPHA_SIZE); - return value; - case GLUT_WINDOW_ACCUM_RED_SIZE: - GET_CONFIG(GLX_ACCUM_RED_SIZE); - return value; - case GLUT_WINDOW_ACCUM_GREEN_SIZE: - GET_CONFIG(GLX_ACCUM_GREEN_SIZE); - return value; - case GLUT_WINDOW_ACCUM_BLUE_SIZE: - GET_CONFIG(GLX_ACCUM_BLUE_SIZE); - return value; - case GLUT_WINDOW_ACCUM_ALPHA_SIZE: - GET_CONFIG(GLX_ACCUM_ALPHA_SIZE); - return value; - case GLUT_WINDOW_DOUBLEBUFFER: - GET_CONFIG(GLX_DOUBLEBUFFER); - return value; - case GLUT_WINDOW_RGBA: - GET_CONFIG(GLX_RGBA); - return value; - case GLUT_WINDOW_COLORMAP_SIZE: - GET_CONFIG(GLX_RGBA); - if (value) { - return 0; - } else { -#if defined(_WIN32) || defined(__OS2__) - /* KLUDGE: we always assume 256 colors in CI mode on - Win32 */ - return 256; -#else - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - return __glutCurrentWindow->vis->visual->map_entries; - } else { - return __glutCurrentWindow->overlay->vis->visual->map_entries; - } -#endif /* _WIN32 */ - } - case GLUT_WINDOW_PARENT: - return __glutCurrentWindow->parent ? - __glutCurrentWindow->parent->num + 1 : 0; - case GLUT_WINDOW_NUM_CHILDREN: - { - int num = 0; - GLUTwindow *children = __glutCurrentWindow->children; - - while (children) { - num++; - children = children->siblings; - } - return num; - } - case GLUT_WINDOW_NUM_SAMPLES: -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIS_multisample) - if (__glutIsSupportedByGLX("GLX_SGIS_multisample")) { - GET_CONFIG(GLX_SAMPLES_SGIS); - return value; - } else { - return 0; - } -#else - /* Independent of GLX server support, multisampling not - supported by GLX client-side. */ - return 0; -#endif - case GLUT_WINDOW_STEREO: - GET_CONFIG(GLX_STEREO); - return value; - case GLUT_WINDOW_CURSOR: - return __glutCurrentWindow->cursor; - case GLUT_SCREEN_WIDTH: - return DisplayWidth(__glutDisplay, __glutScreen); - case GLUT_SCREEN_HEIGHT: - return DisplayHeight(__glutDisplay, __glutScreen); - case GLUT_SCREEN_WIDTH_MM: - return DisplayWidthMM(__glutDisplay, __glutScreen); - case GLUT_SCREEN_HEIGHT_MM: - return DisplayHeightMM(__glutDisplay, __glutScreen); - case GLUT_MENU_NUM_ITEMS: - return __glutCurrentMenu->num; - case GLUT_DISPLAY_MODE_POSSIBLE: - { - XVisualInfo *vi; - Bool dummy, visAlloced; - void *fbc; - -#if defined(_WIN32) - /* Our fake glXChooseVisual (which is called by - __glutDetermineVisual) needs an HDC to work with, so grab one - from the "root" window. */ - XHDC = GetDC(GetDesktopWindow()); -#endif - vi = __glutDetermineWindowVisual(&dummy, &visAlloced, &fbc); -#if defined(_WIN32) - ReleaseDC(GetDesktopWindow(), XHDC); -#endif - if (vi) { - if (visAlloced) - XFree(vi); - return 1; - } - return 0; - } - case GLUT_ELAPSED_TIME: - { -#ifdef OLD_VMS - struct timeval6 elapsed, beginning, now; -#else - struct timeval elapsed, beginning, now; -#endif - - __glutInitTime(&beginning); - GETTIMEOFDAY(&now); - TIMEDELTA(elapsed, now, beginning); - /* Return elapsed milliseconds. */ -#if defined(__vms) && ( __VMS_VER < 70000000 ) - return (int) (elapsed.val / TICKS_PER_MILLISECOND); -#else - return (int) ((elapsed.tv_sec * 1000) + (elapsed.tv_usec / 1000)); -#endif - } - case GLUT_WINDOW_FORMAT_ID: -#if defined(__OS2__) - return wglGetPixelFormat(__glutCurrentWindow->hdc); -#elif defined(_WIN32) - return GetPixelFormat(__glutCurrentWindow->hdc); -#else - if (__glutCurrentWindow->renderWin == __glutCurrentWindow->win) { - return (int) __glutCurrentWindow->vis->visualid; - } else { - return (int) __glutCurrentWindow->overlay->vis->visualid; - } -#endif - default: - __glutWarning("invalid glutGet parameter: %d", param); - return -1; - } -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_hel10.cpp b/src/glut/os2/glut_hel10.cpp deleted file mode 100644 index a9f08ff133..0000000000 --- a/src/glut/os2/glut_hel10.cpp +++ /dev/null @@ -1,1781 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmapHelvetica10 XXX -#include "glutbitmap.h" -#undef glutBitmapHelvetica10 - -/* char: 0xff */ - -static const GLubyte ch255data[] = { -0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x50, -}; - -static const BitmapCharRec ch255 = {4,10,0,2,5,ch255data}; - -/* char: 0xfe */ - -static const GLubyte ch254data[] = { -0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch254 = {5,10,0,2,6,ch254data}; - -/* char: 0xfd */ - -static const GLubyte ch253data[] = { -0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch253 = {4,11,0,2,5,ch253data}; - -/* char: 0xfc */ - -static const GLubyte ch252data[] = { -0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50, -}; - -static const BitmapCharRec ch252 = {4,8,0,0,5,ch252data}; - -/* char: 0xfb */ - -static const GLubyte ch251data[] = { -0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch251 = {4,9,0,0,5,ch251data}; - -/* char: 0xfa */ - -static const GLubyte ch250data[] = { -0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x40,0x20, -}; - -static const BitmapCharRec ch250 = {4,9,0,0,5,ch250data}; - -/* char: 0xf9 */ - -static const GLubyte ch249data[] = { -0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch249 = {4,9,0,0,5,ch249data}; - -/* char: 0xf8 */ - -static const GLubyte ch248data[] = { -0x70,0x88,0xc8,0xa8,0x98,0x74, -}; - -static const BitmapCharRec ch248 = {6,6,0,0,6,ch248data}; - -/* char: 0xf7 */ - -static const GLubyte ch247data[] = { -0x20,0x0,0xf8,0x0,0x20, -}; - -static const BitmapCharRec ch247 = {5,5,0,-1,6,ch247data}; - -/* char: 0xf6 */ - -static const GLubyte ch246data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50, -}; - -static const BitmapCharRec ch246 = {5,8,0,0,6,ch246data}; - -/* char: 0xf5 */ - -static const GLubyte ch245data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch245 = {5,9,0,0,6,ch245data}; - -/* char: 0xf4 */ - -static const GLubyte ch244data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch244 = {5,9,0,0,6,ch244data}; - -/* char: 0xf3 */ - -static const GLubyte ch243data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch243 = {5,9,0,0,6,ch243data}; - -/* char: 0xf2 */ - -static const GLubyte ch242data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch242 = {5,9,0,0,6,ch242data}; - -/* char: 0xf1 */ - -static const GLubyte ch241data[] = { -0x90,0x90,0x90,0x90,0x90,0xe0,0x0,0xa0,0x50, -}; - -static const BitmapCharRec ch241 = {4,9,0,0,5,ch241data}; - -/* char: 0xf0 */ - -static const GLubyte ch240data[] = { -0x70,0x88,0x88,0x88,0x88,0x78,0x90,0x60,0x50, -}; - -static const BitmapCharRec ch240 = {5,9,0,0,6,ch240data}; - -/* char: 0xef */ - -static const GLubyte ch239data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0, -}; - -static const BitmapCharRec ch239 = {3,8,0,0,2,ch239data}; - -/* char: 0xee */ - -static const GLubyte ch238data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40, -}; - -static const BitmapCharRec ch238 = {3,9,1,0,2,ch238data}; - -/* char: 0xed */ - -static const GLubyte ch237data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40, -}; - -static const BitmapCharRec ch237 = {2,9,0,0,2,ch237data}; - -/* char: 0xec */ - -static const GLubyte ch236data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80, -}; - -static const BitmapCharRec ch236 = {2,9,1,0,2,ch236data}; - -/* char: 0xeb */ - -static const GLubyte ch235data[] = { -0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50, -}; - -static const BitmapCharRec ch235 = {4,8,0,0,5,ch235data}; - -/* char: 0xea */ - -static const GLubyte ch234data[] = { -0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch234 = {4,9,0,0,5,ch234data}; - -/* char: 0xe9 */ - -static const GLubyte ch233data[] = { -0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x40,0x20, -}; - -static const BitmapCharRec ch233 = {4,9,0,0,5,ch233data}; - -/* char: 0xe8 */ - -static const GLubyte ch232data[] = { -0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch232 = {4,9,0,0,5,ch232data}; - -/* char: 0xe7 */ - -static const GLubyte ch231data[] = { -0x60,0x20,0x60,0x90,0x80,0x80,0x90,0x60, -}; - -static const BitmapCharRec ch231 = {4,8,0,2,5,ch231data}; - -/* char: 0xe6 */ - -static const GLubyte ch230data[] = { -0x6c,0x92,0x90,0x7e,0x12,0xec, -}; - -static const BitmapCharRec ch230 = {7,6,0,0,8,ch230data}; - -/* char: 0xe5 */ - -static const GLubyte ch229data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x20,0x50,0x20, -}; - -static const BitmapCharRec ch229 = {5,9,0,0,5,ch229data}; - -/* char: 0xe4 */ - -static const GLubyte ch228data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50, -}; - -static const BitmapCharRec ch228 = {5,8,0,0,5,ch228data}; - -/* char: 0xe3 */ - -static const GLubyte ch227data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0xa0,0x50, -}; - -static const BitmapCharRec ch227 = {5,9,0,0,5,ch227data}; - -/* char: 0xe2 */ - -static const GLubyte ch226data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch226 = {5,9,0,0,5,ch226data}; - -/* char: 0xe1 */ - -static const GLubyte ch225data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch225 = {5,9,0,0,5,ch225data}; - -/* char: 0xe0 */ - -static const GLubyte ch224data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch224 = {5,9,0,0,5,ch224data}; - -/* char: 0xdf */ - -static const GLubyte ch223data[] = { -0xa0,0x90,0x90,0x90,0xa0,0x90,0x90,0x60, -}; - -static const BitmapCharRec ch223 = {4,8,0,0,5,ch223data}; - -/* char: 0xde */ - -static const GLubyte ch222data[] = { -0x80,0x80,0xf0,0x88,0x88,0xf0,0x80,0x80, -}; - -static const BitmapCharRec ch222 = {5,8,-1,0,7,ch222data}; - -/* char: 0xdd */ - -static const GLubyte ch221data[] = { -0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch221 = {7,11,0,0,7,ch221data}; - -/* char: 0xdc */ - -static const GLubyte ch220data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48, -}; - -static const BitmapCharRec ch220 = {6,10,-1,0,8,ch220data}; - -/* char: 0xdb */ - -static const GLubyte ch219data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch219 = {6,11,-1,0,8,ch219data}; - -/* char: 0xda */ - -static const GLubyte ch218data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch218 = {6,11,-1,0,8,ch218data}; - -/* char: 0xd9 */ - -static const GLubyte ch217data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch217 = {6,11,-1,0,8,ch217data}; - -/* char: 0xd8 */ - -static const GLubyte ch216data[] = { -0x80,0x78,0xc4,0xa4,0xa4,0x94,0x94,0x8c,0x78,0x4, -}; - -static const BitmapCharRec ch216 = {6,10,-1,1,8,ch216data}; - -/* char: 0xd7 */ - -static const GLubyte ch215data[] = { -0x88,0x50,0x20,0x50,0x88, -}; - -static const BitmapCharRec ch215 = {5,5,0,-1,6,ch215data}; - -/* char: 0xd6 */ - -static const GLubyte ch214data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x48, -}; - -static const BitmapCharRec ch214 = {6,10,-1,0,8,ch214data}; - -/* char: 0xd5 */ - -static const GLubyte ch213data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch213 = {6,11,-1,0,8,ch213data}; - -/* char: 0xd4 */ - -static const GLubyte ch212data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch212 = {6,11,-1,0,8,ch212data}; - -/* char: 0xd3 */ - -static const GLubyte ch211data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch211 = {6,11,-1,0,8,ch211data}; - -/* char: 0xd2 */ - -static const GLubyte ch210data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch210 = {6,11,-1,0,8,ch210data}; - -/* char: 0xd1 */ - -static const GLubyte ch209data[] = { -0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch209 = {6,11,-1,0,8,ch209data}; - -/* char: 0xd0 */ - -static const GLubyte ch208data[] = { -0x78,0x44,0x42,0x42,0xf2,0x42,0x44,0x78, -}; - -static const BitmapCharRec ch208 = {7,8,0,0,8,ch208data}; - -/* char: 0xcf */ - -static const GLubyte ch207data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0, -}; - -static const BitmapCharRec ch207 = {3,10,0,0,3,ch207data}; - -/* char: 0xce */ - -static const GLubyte ch206data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40, -}; - -static const BitmapCharRec ch206 = {3,11,0,0,3,ch206data}; - -/* char: 0xcd */ - -static const GLubyte ch205data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40, -}; - -static const BitmapCharRec ch205 = {2,11,-1,0,3,ch205data}; - -/* char: 0xcc */ - -static const GLubyte ch204data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80, -}; - -static const BitmapCharRec ch204 = {2,11,0,0,3,ch204data}; - -/* char: 0xcb */ - -static const GLubyte ch203data[] = { -0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x50, -}; - -static const BitmapCharRec ch203 = {5,10,-1,0,7,ch203data}; - -/* char: 0xca */ - -static const GLubyte ch202data[] = { -0xf8,0x80,0x80,0xf8,0x80,0x80,0x80,0xf8,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch202 = {5,11,-1,0,7,ch202data}; - -/* char: 0xc9 */ - -static const GLubyte ch201data[] = { -0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch201 = {5,11,-1,0,7,ch201data}; - -/* char: 0xc8 */ - -static const GLubyte ch200data[] = { -0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch200 = {5,11,-1,0,7,ch200data}; - -/* char: 0xc7 */ - -static const GLubyte ch199data[] = { -0x30,0x10,0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78, -}; - -static const BitmapCharRec ch199 = {6,10,-1,2,8,ch199data}; - -/* char: 0xc6 */ - -static const GLubyte ch198data[] = { -0x8f,0x80,0x88,0x0,0x78,0x0,0x48,0x0,0x2f,0x80,0x28,0x0,0x18,0x0,0x1f,0x80, -}; - -static const BitmapCharRec ch198 = {9,8,0,0,10,ch198data}; - -/* char: 0xc5 */ - -static const GLubyte ch197data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x10,0x28,0x10, -}; - -static const BitmapCharRec ch197 = {7,11,0,0,7,ch197data}; - -/* char: 0xc4 */ - -static const GLubyte ch196data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28, -}; - -static const BitmapCharRec ch196 = {7,10,0,0,7,ch196data}; - -/* char: 0xc3 */ - -static const GLubyte ch195data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x14, -}; - -static const BitmapCharRec ch195 = {7,11,0,0,7,ch195data}; - -/* char: 0xc2 */ - -static const GLubyte ch194data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch194 = {7,11,0,0,7,ch194data}; - -/* char: 0xc1 */ - -static const GLubyte ch193data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch193 = {7,11,0,0,7,ch193data}; - -/* char: 0xc0 */ - -static const GLubyte ch192data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch192 = {7,11,0,0,7,ch192data}; - -/* char: 0xbf */ - -static const GLubyte ch191data[] = { -0x60,0x90,0x80,0x40,0x20,0x20,0x0,0x20, -}; - -static const BitmapCharRec ch191 = {4,8,-1,2,6,ch191data}; - -/* char: 0xbe */ - -static const GLubyte ch190data[] = { -0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0xc8,0x0,0x24,0x0,0x44,0x0,0xe2,0x0, -}; - -static const BitmapCharRec ch190 = {9,8,0,0,9,ch190data}; - -/* char: 0xbd */ - -static const GLubyte ch189data[] = { -0x27,0x12,0x15,0xb,0x48,0x44,0xc4,0x42, -}; - -static const BitmapCharRec ch189 = {8,8,0,0,9,ch189data}; - -/* char: 0xbc */ - -static const GLubyte ch188data[] = { -0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0x48,0x0,0x44,0x0,0xc4,0x0,0x42,0x0, -}; - -static const BitmapCharRec ch188 = {9,8,0,0,9,ch188data}; - -/* char: 0xbb */ - -static const GLubyte ch187data[] = { -0xa0,0x50,0x28,0x50,0xa0, -}; - -static const BitmapCharRec ch187 = {5,5,0,0,6,ch187data}; - -/* char: 0xba */ - -static const GLubyte ch186data[] = { -0xe0,0x0,0xe0,0xa0,0xe0, -}; - -static const BitmapCharRec ch186 = {3,5,0,-3,4,ch186data}; - -/* char: 0xb9 */ - -static const GLubyte ch185data[] = { -0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch185 = {2,4,0,-3,3,ch185data}; - -/* char: 0xb8 */ - -static const GLubyte ch184data[] = { -0xc0,0x40, -}; - -static const BitmapCharRec ch184 = {2,2,0,2,3,ch184data}; - -/* char: 0xb7 */ - -static const GLubyte ch183data[] = { -0xc0, -}; - -static const BitmapCharRec ch183 = {2,1,0,-3,3,ch183data}; - -/* char: 0xb6 */ - -static const GLubyte ch182data[] = { -0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x7c, -}; - -static const BitmapCharRec ch182 = {6,10,0,2,6,ch182data}; - -/* char: 0xb5 */ - -static const GLubyte ch181data[] = { -0x80,0x80,0xf0,0x90,0x90,0x90,0x90,0x90, -}; - -static const BitmapCharRec ch181 = {4,8,0,2,5,ch181data}; - -/* char: 0xb4 */ - -static const GLubyte ch180data[] = { -0x80,0x40, -}; - -static const BitmapCharRec ch180 = {2,2,0,-6,3,ch180data}; - -/* char: 0xb3 */ - -static const GLubyte ch179data[] = { -0xc0,0x20,0x40,0xe0, -}; - -static const BitmapCharRec ch179 = {3,4,0,-3,3,ch179data}; - -/* char: 0xb2 */ - -static const GLubyte ch178data[] = { -0xe0,0x40,0xa0,0x60, -}; - -static const BitmapCharRec ch178 = {3,4,0,-3,3,ch178data}; - -/* char: 0xb1 */ - -static const GLubyte ch177data[] = { -0xf8,0x0,0x20,0x20,0xf8,0x20,0x20, -}; - -static const BitmapCharRec ch177 = {5,7,0,0,6,ch177data}; - -/* char: 0xb0 */ - -static const GLubyte ch176data[] = { -0x60,0x90,0x90,0x60, -}; - -static const BitmapCharRec ch176 = {4,4,0,-3,4,ch176data}; - -/* char: 0xaf */ - -static const GLubyte ch175data[] = { -0xe0, -}; - -static const BitmapCharRec ch175 = {3,1,0,-7,3,ch175data}; - -/* char: 0xae */ - -static const GLubyte ch174data[] = { -0x38,0x44,0xaa,0xb2,0xba,0x44,0x38, -}; - -static const BitmapCharRec ch174 = {7,7,-1,0,9,ch174data}; - -/* char: 0xad */ - -static const GLubyte ch173data[] = { -0xe0, -}; - -static const BitmapCharRec ch173 = {3,1,0,-3,4,ch173data}; - -/* char: 0xac */ - -static const GLubyte ch172data[] = { -0x8,0x8,0xf8, -}; - -static const BitmapCharRec ch172 = {5,3,-1,-2,7,ch172data}; - -/* char: 0xab */ - -static const GLubyte ch171data[] = { -0x28,0x50,0xa0,0x50,0x28, -}; - -static const BitmapCharRec ch171 = {5,5,0,0,6,ch171data}; - -/* char: 0xaa */ - -static const GLubyte ch170data[] = { -0xe0,0x0,0xa0,0x20,0xe0, -}; - -static const BitmapCharRec ch170 = {3,5,0,-3,4,ch170data}; - -/* char: 0xa9 */ - -static const GLubyte ch169data[] = { -0x38,0x44,0x9a,0xa2,0x9a,0x44,0x38, -}; - -static const BitmapCharRec ch169 = {7,7,-1,0,9,ch169data}; - -/* char: 0xa8 */ - -static const GLubyte ch168data[] = { -0xa0, -}; - -static const BitmapCharRec ch168 = {3,1,0,-7,3,ch168data}; - -/* char: 0xa7 */ - -static const GLubyte ch167data[] = { -0x70,0x88,0x18,0x70,0xc8,0x98,0x70,0xc0,0x88,0x70, -}; - -static const BitmapCharRec ch167 = {5,10,0,2,6,ch167data}; - -/* char: 0xa6 */ - -static const GLubyte ch166data[] = { -0x80,0x80,0x80,0x80,0x0,0x0,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch166 = {1,10,-1,2,3,ch166data}; - -/* char: 0xa5 */ - -static const GLubyte ch165data[] = { -0x20,0xf8,0x20,0xf8,0x50,0x50,0x88,0x88, -}; - -static const BitmapCharRec ch165 = {5,8,0,0,6,ch165data}; - -/* char: 0xa4 */ - -static const GLubyte ch164data[] = { -0x90,0x60,0x90,0x90,0x60,0x90, -}; - -static const BitmapCharRec ch164 = {4,6,0,-1,5,ch164data}; - -/* char: 0xa3 */ - -static const GLubyte ch163data[] = { -0xb0,0x48,0x40,0x40,0xe0,0x40,0x48,0x30, -}; - -static const BitmapCharRec ch163 = {5,8,0,0,6,ch163data}; - -/* char: 0xa2 */ - -static const GLubyte ch162data[] = { -0x40,0x70,0xa8,0xa0,0xa0,0xa8,0x70,0x10, -}; - -static const BitmapCharRec ch162 = {5,8,0,1,6,ch162data}; - -/* char: 0xa1 */ - -static const GLubyte ch161data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80, -}; - -static const BitmapCharRec ch161 = {1,8,-1,2,3,ch161data}; - -/* char: 0xa0 */ - -#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,3,ch160data}; -#else -static const BitmapCharRec ch160 = {0,0,0,0,3,0}; -#endif - -/* char: 0x7e '~' */ - -static const GLubyte ch126data[] = { -0x98,0x64, -}; - -static const BitmapCharRec ch126 = {6,2,0,-3,7,ch126data}; - -/* char: 0x7d '}' */ - -static const GLubyte ch125data[] = { -0x80,0x40,0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80, -}; - -static const BitmapCharRec ch125 = {3,10,0,2,3,ch125data}; - -/* char: 0x7c '|' */ - -static const GLubyte ch124data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch124 = {1,10,-1,2,3,ch124data}; - -/* char: 0x7b '{' */ - -static const GLubyte ch123data[] = { -0x20,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x20, -}; - -static const BitmapCharRec ch123 = {3,10,0,2,3,ch123data}; - -/* char: 0x7a 'z' */ - -static const GLubyte ch122data[] = { -0xf0,0x80,0x40,0x20,0x10,0xf0, -}; - -static const BitmapCharRec ch122 = {4,6,0,0,5,ch122data}; - -/* char: 0x79 'y' */ - -static const GLubyte ch121data[] = { -0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90, -}; - -static const BitmapCharRec ch121 = {4,8,0,2,5,ch121data}; - -/* char: 0x78 'x' */ - -static const GLubyte ch120data[] = { -0x88,0x88,0x50,0x20,0x50,0x88, -}; - -static const BitmapCharRec ch120 = {5,6,0,0,6,ch120data}; - -/* char: 0x77 'w' */ - -static const GLubyte ch119data[] = { -0x28,0x28,0x54,0x54,0x92,0x92, -}; - -static const BitmapCharRec ch119 = {7,6,0,0,8,ch119data}; - -/* char: 0x76 'v' */ - -static const GLubyte ch118data[] = { -0x20,0x20,0x50,0x50,0x88,0x88, -}; - -static const BitmapCharRec ch118 = {5,6,0,0,6,ch118data}; - -/* char: 0x75 'u' */ - -static const GLubyte ch117data[] = { -0x70,0x90,0x90,0x90,0x90,0x90, -}; - -static const BitmapCharRec ch117 = {4,6,0,0,5,ch117data}; - -/* char: 0x74 't' */ - -static const GLubyte ch116data[] = { -0x60,0x40,0x40,0x40,0x40,0xe0,0x40,0x40, -}; - -static const BitmapCharRec ch116 = {3,8,0,0,4,ch116data}; - -/* char: 0x73 's' */ - -static const GLubyte ch115data[] = { -0x60,0x90,0x10,0x60,0x90,0x60, -}; - -static const BitmapCharRec ch115 = {4,6,0,0,5,ch115data}; - -/* char: 0x72 'r' */ - -static const GLubyte ch114data[] = { -0x80,0x80,0x80,0x80,0xc0,0xa0, -}; - -static const BitmapCharRec ch114 = {3,6,0,0,4,ch114data}; - -/* char: 0x71 'q' */ - -static const GLubyte ch113data[] = { -0x8,0x8,0x68,0x98,0x88,0x88,0x98,0x68, -}; - -static const BitmapCharRec ch113 = {5,8,0,2,6,ch113data}; - -/* char: 0x70 'p' */ - -static const GLubyte ch112data[] = { -0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0, -}; - -static const BitmapCharRec ch112 = {5,8,0,2,6,ch112data}; - -/* char: 0x6f 'o' */ - -static const GLubyte ch111data[] = { -0x70,0x88,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch111 = {5,6,0,0,6,ch111data}; - -/* char: 0x6e 'n' */ - -static const GLubyte ch110data[] = { -0x88,0x88,0x88,0x88,0xc8,0xb0, -}; - -static const BitmapCharRec ch110 = {5,6,0,0,6,ch110data}; - -/* char: 0x6d 'm' */ - -static const GLubyte ch109data[] = { -0x92,0x92,0x92,0x92,0x92,0xec, -}; - -static const BitmapCharRec ch109 = {7,6,0,0,8,ch109data}; - -/* char: 0x6c 'l' */ - -static const GLubyte ch108data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch108 = {1,8,0,0,2,ch108data}; - -/* char: 0x6b 'k' */ - -static const GLubyte ch107data[] = { -0x90,0x90,0xa0,0xc0,0xa0,0x90,0x80,0x80, -}; - -static const BitmapCharRec ch107 = {4,8,0,0,5,ch107data}; - -/* char: 0x6a 'j' */ - -static const GLubyte ch106data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80, -}; - -static const BitmapCharRec ch106 = {1,9,0,1,2,ch106data}; - -/* char: 0x69 'i' */ - -static const GLubyte ch105data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80, -}; - -static const BitmapCharRec ch105 = {1,8,0,0,2,ch105data}; - -/* char: 0x68 'h' */ - -static const GLubyte ch104data[] = { -0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch104 = {5,8,0,0,6,ch104data}; - -/* char: 0x67 'g' */ - -static const GLubyte ch103data[] = { -0x70,0x8,0x68,0x98,0x88,0x88,0x98,0x68, -}; - -static const BitmapCharRec ch103 = {5,8,0,2,6,ch103data}; - -/* char: 0x66 'f' */ - -static const GLubyte ch102data[] = { -0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30, -}; - -static const BitmapCharRec ch102 = {4,8,0,0,4,ch102data}; - -/* char: 0x65 'e' */ - -static const GLubyte ch101data[] = { -0x60,0x90,0x80,0xf0,0x90,0x60, -}; - -static const BitmapCharRec ch101 = {4,6,0,0,5,ch101data}; - -/* char: 0x64 'd' */ - -static const GLubyte ch100data[] = { -0x68,0x98,0x88,0x88,0x98,0x68,0x8,0x8, -}; - -static const BitmapCharRec ch100 = {5,8,0,0,6,ch100data}; - -/* char: 0x63 'c' */ - -static const GLubyte ch99data[] = { -0x60,0x90,0x80,0x80,0x90,0x60, -}; - -static const BitmapCharRec ch99 = {4,6,0,0,5,ch99data}; - -/* char: 0x62 'b' */ - -static const GLubyte ch98data[] = { -0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch98 = {5,8,0,0,6,ch98data}; - -/* char: 0x61 'a' */ - -static const GLubyte ch97data[] = { -0x68,0x90,0x90,0x70,0x10,0xe0, -}; - -static const BitmapCharRec ch97 = {5,6,0,0,5,ch97data}; - -/* char: 0x60 '`' */ - -static const GLubyte ch96data[] = { -0x80,0x80,0x40, -}; - -static const BitmapCharRec ch96 = {2,3,0,-5,3,ch96data}; - -/* char: 0x5f '_' */ - -static const GLubyte ch95data[] = { -0xfc, -}; - -static const BitmapCharRec ch95 = {6,1,0,2,6,ch95data}; - -/* char: 0x5e '^' */ - -static const GLubyte ch94data[] = { -0x88,0x50,0x50,0x20,0x20, -}; - -static const BitmapCharRec ch94 = {5,5,0,-3,6,ch94data}; - -/* char: 0x5d ']' */ - -static const GLubyte ch93data[] = { -0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0, -}; - -static const BitmapCharRec ch93 = {2,10,0,2,3,ch93data}; - -/* char: 0x5c '\' */ - -static const GLubyte ch92data[] = { -0x20,0x20,0x40,0x40,0x40,0x40,0x80,0x80, -}; - -static const BitmapCharRec ch92 = {3,8,0,0,3,ch92data}; - -/* char: 0x5b '[' */ - -static const GLubyte ch91data[] = { -0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0, -}; - -static const BitmapCharRec ch91 = {2,10,-1,2,3,ch91data}; - -/* char: 0x5a 'Z' */ - -static const GLubyte ch90data[] = { -0xf8,0x80,0x40,0x20,0x20,0x10,0x8,0xf8, -}; - -static const BitmapCharRec ch90 = {5,8,-1,0,7,ch90data}; - -/* char: 0x59 'Y' */ - -static const GLubyte ch89data[] = { -0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82, -}; - -static const BitmapCharRec ch89 = {7,8,0,0,7,ch89data}; - -/* char: 0x58 'X' */ - -static const GLubyte ch88data[] = { -0x88,0x88,0x50,0x50,0x20,0x50,0x88,0x88, -}; - -static const BitmapCharRec ch88 = {5,8,-1,0,7,ch88data}; - -/* char: 0x57 'W' */ - -static const GLubyte ch87data[] = { -0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80, -}; - -static const BitmapCharRec ch87 = {9,8,0,0,9,ch87data}; - -/* char: 0x56 'V' */ - -static const GLubyte ch86data[] = { -0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch86 = {7,8,0,0,7,ch86data}; - -/* char: 0x55 'U' */ - -static const GLubyte ch85data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84, -}; - -static const BitmapCharRec ch85 = {6,8,-1,0,8,ch85data}; - -/* char: 0x54 'T' */ - -static const GLubyte ch84data[] = { -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf8, -}; - -static const BitmapCharRec ch84 = {5,8,0,0,5,ch84data}; - -/* char: 0x53 'S' */ - -static const GLubyte ch83data[] = { -0x70,0x88,0x88,0x8,0x70,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch83 = {5,8,-1,0,7,ch83data}; - -/* char: 0x52 'R' */ - -static const GLubyte ch82data[] = { -0x88,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0, -}; - -static const BitmapCharRec ch82 = {5,8,-1,0,7,ch82data}; - -/* char: 0x51 'Q' */ - -static const GLubyte ch81data[] = { -0x2,0x7c,0x8c,0x94,0x84,0x84,0x84,0x84,0x78, -}; - -static const BitmapCharRec ch81 = {7,9,-1,1,8,ch81data}; - -/* char: 0x50 'P' */ - -static const GLubyte ch80data[] = { -0x80,0x80,0x80,0x80,0xf0,0x88,0x88,0xf0, -}; - -static const BitmapCharRec ch80 = {5,8,-1,0,7,ch80data}; - -/* char: 0x4f 'O' */ - -static const GLubyte ch79data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78, -}; - -static const BitmapCharRec ch79 = {6,8,-1,0,8,ch79data}; - -/* char: 0x4e 'N' */ - -static const GLubyte ch78data[] = { -0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4, -}; - -static const BitmapCharRec ch78 = {6,8,-1,0,8,ch78data}; - -/* char: 0x4d 'M' */ - -static const GLubyte ch77data[] = { -0x92,0x92,0x92,0xaa,0xaa,0xc6,0xc6,0x82, -}; - -static const BitmapCharRec ch77 = {7,8,-1,0,9,ch77data}; - -/* char: 0x4c 'L' */ - -static const GLubyte ch76data[] = { -0xf0,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch76 = {4,8,-1,0,6,ch76data}; - -/* char: 0x4b 'K' */ - -static const GLubyte ch75data[] = { -0x88,0x88,0x90,0x90,0xe0,0xa0,0x90,0x88, -}; - -static const BitmapCharRec ch75 = {5,8,-1,0,7,ch75data}; - -/* char: 0x4a 'J' */ - -static const GLubyte ch74data[] = { -0x60,0x90,0x10,0x10,0x10,0x10,0x10,0x10, -}; - -static const BitmapCharRec ch74 = {4,8,0,0,5,ch74data}; - -/* char: 0x49 'I' */ - -static const GLubyte ch73data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch73 = {1,8,-1,0,3,ch73data}; - -/* char: 0x48 'H' */ - -static const GLubyte ch72data[] = { -0x84,0x84,0x84,0x84,0xfc,0x84,0x84,0x84, -}; - -static const BitmapCharRec ch72 = {6,8,-1,0,8,ch72data}; - -/* char: 0x47 'G' */ - -static const GLubyte ch71data[] = { -0x74,0x8c,0x84,0x8c,0x80,0x80,0x84,0x78, -}; - -static const BitmapCharRec ch71 = {6,8,-1,0,8,ch71data}; - -/* char: 0x46 'F' */ - -static const GLubyte ch70data[] = { -0x80,0x80,0x80,0x80,0xf0,0x80,0x80,0xf8, -}; - -static const BitmapCharRec ch70 = {5,8,-1,0,6,ch70data}; - -/* char: 0x45 'E' */ - -static const GLubyte ch69data[] = { -0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8, -}; - -static const BitmapCharRec ch69 = {5,8,-1,0,7,ch69data}; - -/* char: 0x44 'D' */ - -static const GLubyte ch68data[] = { -0xf0,0x88,0x84,0x84,0x84,0x84,0x88,0xf0, -}; - -static const BitmapCharRec ch68 = {6,8,-1,0,8,ch68data}; - -/* char: 0x43 'C' */ - -static const GLubyte ch67data[] = { -0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78, -}; - -static const BitmapCharRec ch67 = {6,8,-1,0,8,ch67data}; - -/* char: 0x42 'B' */ - -static const GLubyte ch66data[] = { -0xf0,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0, -}; - -static const BitmapCharRec ch66 = {5,8,-1,0,7,ch66data}; - -/* char: 0x41 'A' */ - -static const GLubyte ch65data[] = { -0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10, -}; - -static const BitmapCharRec ch65 = {7,8,0,0,7,ch65data}; - -/* char: 0x40 '@' */ - -static const GLubyte ch64data[] = { -0x3e,0x0,0x40,0x0,0x9b,0x0,0xa4,0x80,0xa4,0x80,0xa2,0x40,0x92,0x40,0x4d,0x40, -0x20,0x80,0x1f,0x0, -}; - -static const BitmapCharRec ch64 = {10,10,0,2,11,ch64data}; - -/* char: 0x3f '?' */ - -static const GLubyte ch63data[] = { -0x40,0x0,0x40,0x40,0x20,0x10,0x90,0x60, -}; - -static const BitmapCharRec ch63 = {4,8,-1,0,6,ch63data}; - -/* char: 0x3e '>' */ - -static const GLubyte ch62data[] = { -0x80,0x40,0x20,0x40,0x80, -}; - -static const BitmapCharRec ch62 = {3,5,-1,-1,6,ch62data}; - -/* char: 0x3d '=' */ - -static const GLubyte ch61data[] = { -0xf0,0x0,0xf0, -}; - -static const BitmapCharRec ch61 = {4,3,0,-2,5,ch61data}; - -/* char: 0x3c '<' */ - -static const GLubyte ch60data[] = { -0x20,0x40,0x80,0x40,0x20, -}; - -static const BitmapCharRec ch60 = {3,5,-1,-1,6,ch60data}; - -/* char: 0x3b ';' */ - -static const GLubyte ch59data[] = { -0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40, -}; - -static const BitmapCharRec ch59 = {2,8,0,2,3,ch59data}; - -/* char: 0x3a ':' */ - -static const GLubyte ch58data[] = { -0x80,0x0,0x0,0x0,0x0,0x80, -}; - -static const BitmapCharRec ch58 = {1,6,-1,0,3,ch58data}; - -/* char: 0x39 '9' */ - -static const GLubyte ch57data[] = { -0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch57 = {5,8,0,0,6,ch57data}; - -/* char: 0x38 '8' */ - -static const GLubyte ch56data[] = { -0x70,0x88,0x88,0x88,0x70,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch56 = {5,8,0,0,6,ch56data}; - -/* char: 0x37 '7' */ - -static const GLubyte ch55data[] = { -0x40,0x40,0x20,0x20,0x10,0x10,0x8,0xf8, -}; - -static const BitmapCharRec ch55 = {5,8,0,0,6,ch55data}; - -/* char: 0x36 '6' */ - -static const GLubyte ch54data[] = { -0x70,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch54 = {5,8,0,0,6,ch54data}; - -/* char: 0x35 '5' */ - -static const GLubyte ch53data[] = { -0x70,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8, -}; - -static const BitmapCharRec ch53 = {5,8,0,0,6,ch53data}; - -/* char: 0x34 '4' */ - -static const GLubyte ch52data[] = { -0x10,0x10,0xf8,0x90,0x50,0x50,0x30,0x10, -}; - -static const BitmapCharRec ch52 = {5,8,0,0,6,ch52data}; - -/* char: 0x33 '3' */ - -static const GLubyte ch51data[] = { -0x70,0x88,0x8,0x8,0x30,0x8,0x88,0x70, -}; - -static const BitmapCharRec ch51 = {5,8,0,0,6,ch51data}; - -/* char: 0x32 '2' */ - -static const GLubyte ch50data[] = { -0xf8,0x80,0x40,0x30,0x8,0x8,0x88,0x70, -}; - -static const BitmapCharRec ch50 = {5,8,0,0,6,ch50data}; - -/* char: 0x31 '1' */ - -static const GLubyte ch49data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch49 = {2,8,-1,0,6,ch49data}; - -/* char: 0x30 '0' */ - -static const GLubyte ch48data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch48 = {5,8,0,0,6,ch48data}; - -/* char: 0x2f '/' */ - -static const GLubyte ch47data[] = { -0x80,0x80,0x40,0x40,0x40,0x40,0x20,0x20, -}; - -static const BitmapCharRec ch47 = {3,8,0,0,3,ch47data}; - -/* char: 0x2e '.' */ - -static const GLubyte ch46data[] = { -0x80, -}; - -static const BitmapCharRec ch46 = {1,1,-1,0,3,ch46data}; - -/* char: 0x2d '-' */ - -static const GLubyte ch45data[] = { -0xf8, -}; - -static const BitmapCharRec ch45 = {5,1,-1,-3,7,ch45data}; - -/* char: 0x2c ',' */ - -static const GLubyte ch44data[] = { -0x80,0x40,0x40, -}; - -static const BitmapCharRec ch44 = {2,3,0,2,3,ch44data}; - -/* char: 0x2b '+' */ - -static const GLubyte ch43data[] = { -0x20,0x20,0xf8,0x20,0x20, -}; - -static const BitmapCharRec ch43 = {5,5,0,-1,6,ch43data}; - -/* char: 0x2a '*' */ - -static const GLubyte ch42data[] = { -0xa0,0x40,0xa0, -}; - -static const BitmapCharRec ch42 = {3,3,0,-5,4,ch42data}; - -/* char: 0x29 ')' */ - -static const GLubyte ch41data[] = { -0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x40,0x40,0x80, -}; - -static const BitmapCharRec ch41 = {3,10,-1,2,4,ch41data}; - -/* char: 0x28 '(' */ - -static const GLubyte ch40data[] = { -0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x40,0x40,0x20, -}; - -static const BitmapCharRec ch40 = {3,10,0,2,4,ch40data}; - -/* char: 0x27 ''' */ - -static const GLubyte ch39data[] = { -0x80,0x40,0x40, -}; - -static const BitmapCharRec ch39 = {2,3,-1,-5,3,ch39data}; - -/* char: 0x26 '&' */ - -static const GLubyte ch38data[] = { -0x64,0x98,0x98,0xa4,0x60,0x50,0x50,0x20, -}; - -static const BitmapCharRec ch38 = {6,8,-1,0,8,ch38data}; - -/* char: 0x25 '%' */ - -static const GLubyte ch37data[] = { -0x26,0x29,0x16,0x10,0x8,0x68,0x94,0x64, -}; - -static const BitmapCharRec ch37 = {8,8,0,0,9,ch37data}; - -/* char: 0x24 '$' */ - -static const GLubyte ch36data[] = { -0x20,0x70,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20, -}; - -static const BitmapCharRec ch36 = {5,9,0,1,6,ch36data}; - -/* char: 0x23 '#' */ - -static const GLubyte ch35data[] = { -0x50,0x50,0xf8,0x28,0x7c,0x28,0x28, -}; - -static const BitmapCharRec ch35 = {6,7,0,0,6,ch35data}; - -/* char: 0x22 '"' */ - -static const GLubyte ch34data[] = { -0xa0,0xa0, -}; - -static const BitmapCharRec ch34 = {3,2,-1,-6,4,ch34data}; - -/* char: 0x21 '!' */ - -static const GLubyte ch33data[] = { -0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch33 = {1,8,-1,0,3,ch33data}; - -/* char: 0x20 ' ' */ - -#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 = {0,0,0,0,3,ch32data}; -#else -static const BitmapCharRec ch32 = {0,0,0,0,3,0}; -#endif - -static const BitmapCharRec * const chars[] = { -&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, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -&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, -}; - -#if !defined(__IBMCPP__) -const -#endif -BitmapFontRec glutBitmapHelvetica10 = { -"-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1", -224, -32, -chars -}; - diff --git a/src/glut/os2/glut_hel12.cpp b/src/glut/os2/glut_hel12.cpp deleted file mode 100644 index f615fbb2f8..0000000000 --- a/src/glut/os2/glut_hel12.cpp +++ /dev/null @@ -1,1791 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmapHelvetica12 XXX -#include "glutbitmap.h" -#undef glutBitmapHelvetica12 - -/* char: 0xff */ - -static const GLubyte ch255data[] = { -0xc0,0x20,0x20,0x20,0x30,0x50,0x50,0x48,0x88,0x88,0x0,0x50, -}; - -static const BitmapCharRec ch255 = {5,12,-1,3,7,ch255data}; - -/* char: 0xfe */ - -static const GLubyte ch254data[] = { -0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch254 = {5,12,-1,3,7,ch254data}; - -/* char: 0xfd */ - -static const GLubyte ch253data[] = { -0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch253 = {5,13,-1,3,7,ch253data}; - -/* char: 0xfc */ - -static const GLubyte ch252data[] = { -0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50, -}; - -static const BitmapCharRec ch252 = {5,9,-1,0,7,ch252data}; - -/* char: 0xfb */ - -static const GLubyte ch251data[] = { -0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch251 = {5,10,-1,0,7,ch251data}; - -/* char: 0xfa */ - -static const GLubyte ch250data[] = { -0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch250 = {5,10,-1,0,7,ch250data}; - -/* char: 0xf9 */ - -static const GLubyte ch249data[] = { -0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch249 = {5,10,-1,0,7,ch249data}; - -/* char: 0xf8 */ - -static const GLubyte ch248data[] = { -0xb8,0x44,0x64,0x54,0x4c,0x44,0x3a, -}; - -static const BitmapCharRec ch248 = {7,7,0,0,7,ch248data}; - -/* char: 0xf7 */ - -static const GLubyte ch247data[] = { -0x20,0x0,0xf8,0x0,0x20, -}; - -static const BitmapCharRec ch247 = {5,5,-1,-1,7,ch247data}; - -/* char: 0xf6 */ - -static const GLubyte ch246data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50, -}; - -static const BitmapCharRec ch246 = {5,9,-1,0,7,ch246data}; - -/* char: 0xf5 */ - -static const GLubyte ch245data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch245 = {5,10,-1,0,7,ch245data}; - -/* char: 0xf4 */ - -static const GLubyte ch244data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch244 = {5,10,-1,0,7,ch244data}; - -/* char: 0xf3 */ - -static const GLubyte ch243data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch243 = {5,10,-1,0,7,ch243data}; - -/* char: 0xf2 */ - -static const GLubyte ch242data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch242 = {5,10,-1,0,7,ch242data}; - -/* char: 0xf1 */ - -static const GLubyte ch241data[] = { -0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch241 = {5,10,-1,0,7,ch241data}; - -/* char: 0xf0 */ - -static const GLubyte ch240data[] = { -0x70,0x88,0x88,0x88,0x88,0x78,0x8,0x50,0x30,0x68, -}; - -static const BitmapCharRec ch240 = {5,10,-1,0,7,ch240data}; - -/* char: 0xef */ - -static const GLubyte ch239data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0, -}; - -static const BitmapCharRec ch239 = {3,9,0,0,3,ch239data}; - -/* char: 0xee */ - -static const GLubyte ch238data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40, -}; - -static const BitmapCharRec ch238 = {3,10,0,0,3,ch238data}; - -/* char: 0xed */ - -static const GLubyte ch237data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40, -}; - -static const BitmapCharRec ch237 = {2,10,-1,0,3,ch237data}; - -/* char: 0xec */ - -static const GLubyte ch236data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80, -}; - -static const BitmapCharRec ch236 = {2,10,0,0,3,ch236data}; - -/* char: 0xeb */ - -static const GLubyte ch235data[] = { -0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50, -}; - -static const BitmapCharRec ch235 = {5,9,-1,0,7,ch235data}; - -/* char: 0xea */ - -static const GLubyte ch234data[] = { -0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch234 = {5,10,-1,0,7,ch234data}; - -/* char: 0xe9 */ - -static const GLubyte ch233data[] = { -0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch233 = {5,10,-1,0,7,ch233data}; - -/* char: 0xe8 */ - -static const GLubyte ch232data[] = { -0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x40, -}; - -static const BitmapCharRec ch232 = {5,10,-1,0,7,ch232data}; - -/* char: 0xe7 */ - -static const GLubyte ch231data[] = { -0x60,0x10,0x20,0x70,0x88,0x80,0x80,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch231 = {5,10,-1,3,7,ch231data}; - -/* char: 0xe6 */ - -static const GLubyte ch230data[] = { -0x77,0x0,0x88,0x80,0x88,0x0,0x7f,0x80,0x8,0x80,0x88,0x80,0x77,0x0, -}; - -static const BitmapCharRec ch230 = {9,7,-1,0,11,ch230data}; - -/* char: 0xe5 */ - -static const GLubyte ch229data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x30,0x48,0x30, -}; - -static const BitmapCharRec ch229 = {6,10,-1,0,7,ch229data}; - -/* char: 0xe4 */ - -static const GLubyte ch228data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50, -}; - -static const BitmapCharRec ch228 = {6,9,-1,0,7,ch228data}; - -/* char: 0xe3 */ - -static const GLubyte ch227data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x28, -}; - -static const BitmapCharRec ch227 = {6,10,-1,0,7,ch227data}; - -/* char: 0xe2 */ - -static const GLubyte ch226data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x20, -}; - -static const BitmapCharRec ch226 = {6,10,-1,0,7,ch226data}; - -/* char: 0xe1 */ - -static const GLubyte ch225data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x20,0x10, -}; - -static const BitmapCharRec ch225 = {6,10,-1,0,7,ch225data}; - -/* char: 0xe0 */ - -static const GLubyte ch224data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch224 = {6,10,-1,0,7,ch224data}; - -/* char: 0xdf */ - -static const GLubyte ch223data[] = { -0xb0,0x88,0x88,0x88,0xb0,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch223 = {5,9,-1,0,7,ch223data}; - -/* char: 0xde */ - -static const GLubyte ch222data[] = { -0x80,0x80,0xf8,0x84,0x84,0x84,0xf8,0x80,0x80, -}; - -static const BitmapCharRec ch222 = {6,9,-1,0,8,ch222data}; - -/* char: 0xdd */ - -static const GLubyte ch221data[] = { -0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch221 = {7,12,-1,0,9,ch221data}; - -/* char: 0xdc */ - -static const GLubyte ch220data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48, -}; - -static const BitmapCharRec ch220 = {6,11,-1,0,8,ch220data}; - -/* char: 0xdb */ - -static const GLubyte ch219data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch219 = {6,12,-1,0,8,ch219data}; - -/* char: 0xda */ - -static const GLubyte ch218data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch218 = {6,12,-1,0,8,ch218data}; - -/* char: 0xd9 */ - -static const GLubyte ch217data[] = { -0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch217 = {6,12,-1,0,8,ch217data}; - -/* char: 0xd8 */ - -static const GLubyte ch216data[] = { -0x80,0x0,0x5e,0x0,0x21,0x0,0x50,0x80,0x48,0x80,0x44,0x80,0x44,0x80,0x42,0x80, -0x21,0x0,0x1e,0x80,0x0,0x40, -}; - -static const BitmapCharRec ch216 = {10,11,0,1,10,ch216data}; - -/* char: 0xd7 */ - -static const GLubyte ch215data[] = { -0x88,0x50,0x20,0x50,0x88, -}; - -static const BitmapCharRec ch215 = {5,5,-1,-1,7,ch215data}; - -/* char: 0xd6 */ - -static const GLubyte ch214data[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x24, -}; - -static const BitmapCharRec ch214 = {8,11,-1,0,10,ch214data}; - -/* char: 0xd5 */ - -static const GLubyte ch213data[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x28,0x14, -}; - -static const BitmapCharRec ch213 = {8,12,-1,0,10,ch213data}; - -/* char: 0xd4 */ - -static const GLubyte ch212data[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x14,0x8, -}; - -static const BitmapCharRec ch212 = {8,12,-1,0,10,ch212data}; - -/* char: 0xd3 */ - -static const GLubyte ch211data[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x4, -}; - -static const BitmapCharRec ch211 = {8,12,-1,0,10,ch211data}; - -/* char: 0xd2 */ - -static const GLubyte ch210data[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x10, -}; - -static const BitmapCharRec ch210 = {8,12,-1,0,10,ch210data}; - -/* char: 0xd1 */ - -static const GLubyte ch209data[] = { -0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82,0x0,0x28,0x14, -}; - -static const BitmapCharRec ch209 = {7,12,-1,0,9,ch209data}; - -/* char: 0xd0 */ - -static const GLubyte ch208data[] = { -0x7c,0x42,0x41,0x41,0xf1,0x41,0x41,0x42,0x7c, -}; - -static const BitmapCharRec ch208 = {8,9,0,0,9,ch208data}; - -/* char: 0xcf */ - -static const GLubyte ch207data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0, -}; - -static const BitmapCharRec ch207 = {3,11,0,0,3,ch207data}; - -/* char: 0xce */ - -static const GLubyte ch206data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40, -}; - -static const BitmapCharRec ch206 = {3,12,0,0,3,ch206data}; - -/* char: 0xcd */ - -static const GLubyte ch205data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40, -}; - -static const BitmapCharRec ch205 = {2,12,-1,0,3,ch205data}; - -/* char: 0xcc */ - -static const GLubyte ch204data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80, -}; - -static const BitmapCharRec ch204 = {2,12,0,0,3,ch204data}; - -/* char: 0xcb */ - -static const GLubyte ch203data[] = { -0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28, -}; - -static const BitmapCharRec ch203 = {6,11,-1,0,8,ch203data}; - -/* char: 0xca */ - -static const GLubyte ch202data[] = { -0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch202 = {6,12,-1,0,8,ch202data}; - -/* char: 0xc9 */ - -static const GLubyte ch201data[] = { -0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch201 = {6,12,-1,0,8,ch201data}; - -/* char: 0xc8 */ - -static const GLubyte ch200data[] = { -0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch200 = {6,12,-1,0,8,ch200data}; - -/* char: 0xc7 */ - -static const GLubyte ch199data[] = { -0x30,0x8,0x8,0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c, -}; - -static const BitmapCharRec ch199 = {7,12,-1,3,9,ch199data}; - -/* char: 0xc6 */ - -static const GLubyte ch198data[] = { -0x8f,0x80,0x88,0x0,0x88,0x0,0x78,0x0,0x4f,0x80,0x48,0x0,0x28,0x0,0x28,0x0, -0x1f,0x80, -}; - -static const BitmapCharRec ch198 = {9,9,-1,0,11,ch198data}; - -/* char: 0xc5 */ - -static const GLubyte ch197data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x10,0x28,0x10, -}; - -static const BitmapCharRec ch197 = {7,12,-1,0,9,ch197data}; - -/* char: 0xc4 */ - -static const GLubyte ch196data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28, -}; - -static const BitmapCharRec ch196 = {7,11,-1,0,9,ch196data}; - -/* char: 0xc3 */ - -static const GLubyte ch195data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x14, -}; - -static const BitmapCharRec ch195 = {7,12,-1,0,9,ch195data}; - -/* char: 0xc2 */ - -static const GLubyte ch194data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x10, -}; - -static const BitmapCharRec ch194 = {7,12,-1,0,9,ch194data}; - -/* char: 0xc1 */ - -static const GLubyte ch193data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x8, -}; - -static const BitmapCharRec ch193 = {7,12,-1,0,9,ch193data}; - -/* char: 0xc0 */ - -static const GLubyte ch192data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x20, -}; - -static const BitmapCharRec ch192 = {7,12,-1,0,9,ch192data}; - -/* char: 0xbf */ - -static const GLubyte ch191data[] = { -0x70,0x88,0x88,0x40,0x40,0x20,0x20,0x0,0x20, -}; - -static const BitmapCharRec ch191 = {5,9,-1,3,7,ch191data}; - -/* char: 0xbe */ - -static const GLubyte ch190data[] = { -0x21,0x0,0x17,0x80,0x15,0x0,0xb,0x0,0xc9,0x0,0x24,0x0,0x44,0x0,0x22,0x0, -0xe1,0x0, -}; - -static const BitmapCharRec ch190 = {9,9,0,0,10,ch190data}; - -/* char: 0xbd */ - -static const GLubyte ch189data[] = { -0x47,0x80,0x22,0x0,0x11,0x0,0x14,0x80,0x4b,0x0,0x48,0x0,0x44,0x0,0xc2,0x0, -0x41,0x0, -}; - -static const BitmapCharRec ch189 = {9,9,0,0,10,ch189data}; - -/* char: 0xbc */ - -static const GLubyte ch188data[] = { -0x41,0x0,0x27,0x80,0x15,0x0,0x13,0x0,0x49,0x0,0x44,0x0,0x44,0x0,0xc2,0x0, -0x41,0x0, -}; - -static const BitmapCharRec ch188 = {9,9,0,0,10,ch188data}; - -/* char: 0xbb */ - -static const GLubyte ch187data[] = { -0xa0,0x50,0x28,0x50,0xa0, -}; - -static const BitmapCharRec ch187 = {5,5,-1,-1,7,ch187data}; - -/* char: 0xba */ - -static const GLubyte ch186data[] = { -0xe0,0x0,0xe0,0xa0,0xe0, -}; - -static const BitmapCharRec ch186 = {3,5,-1,-4,5,ch186data}; - -/* char: 0xb9 */ - -static const GLubyte ch185data[] = { -0x40,0x40,0x40,0xc0,0x40, -}; - -static const BitmapCharRec ch185 = {2,5,-1,-3,4,ch185data}; - -/* char: 0xb8 */ - -static const GLubyte ch184data[] = { -0xc0,0x20,0x20,0x40, -}; - -static const BitmapCharRec ch184 = {3,4,0,3,3,ch184data}; - -/* char: 0xb7 */ - -static const GLubyte ch183data[] = { -0x80, -}; - -static const BitmapCharRec ch183 = {1,1,-1,-3,3,ch183data}; - -/* char: 0xb6 */ - -static const GLubyte ch182data[] = { -0x28,0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x68,0x3c, -}; - -static const BitmapCharRec ch182 = {6,12,0,3,7,ch182data}; - -/* char: 0xb5 */ - -static const GLubyte ch181data[] = { -0x80,0x80,0x80,0xe8,0x98,0x88,0x88,0x88,0x88,0x88, -}; - -static const BitmapCharRec ch181 = {5,10,-1,3,7,ch181data}; - -/* char: 0xb4 */ - -static const GLubyte ch180data[] = { -0x80,0x40, -}; - -static const BitmapCharRec ch180 = {2,2,0,-8,2,ch180data}; - -/* char: 0xb3 */ - -static const GLubyte ch179data[] = { -0xc0,0x20,0x40,0x20,0xe0, -}; - -static const BitmapCharRec ch179 = {3,5,0,-3,4,ch179data}; - -/* char: 0xb2 */ - -static const GLubyte ch178data[] = { -0xf0,0x40,0x20,0x90,0x60, -}; - -static const BitmapCharRec ch178 = {4,5,0,-3,4,ch178data}; - -/* char: 0xb1 */ - -static const GLubyte ch177data[] = { -0xf8,0x0,0x20,0x20,0xf8,0x20,0x20, -}; - -static const BitmapCharRec ch177 = {5,7,-1,0,7,ch177data}; - -/* char: 0xb0 */ - -static const GLubyte ch176data[] = { -0x60,0x90,0x90,0x60, -}; - -static const BitmapCharRec ch176 = {4,4,0,-4,5,ch176data}; - -/* char: 0xaf */ - -static const GLubyte ch175data[] = { -0xf0, -}; - -static const BitmapCharRec ch175 = {4,1,0,-8,4,ch175data}; - -/* char: 0xae */ - -static const GLubyte ch174data[] = { -0x3e,0x0,0x41,0x0,0x94,0x80,0x94,0x80,0x98,0x80,0x94,0x80,0x9c,0x80,0x41,0x0, -0x3e,0x0, -}; - -static const BitmapCharRec ch174 = {9,9,-1,0,11,ch174data}; - -/* char: 0xad */ - -static const GLubyte ch173data[] = { -0xf0, -}; - -static const BitmapCharRec ch173 = {4,1,0,-3,5,ch173data}; - -/* char: 0xac */ - -static const GLubyte ch172data[] = { -0x4,0x4,0x4,0xfc, -}; - -static const BitmapCharRec ch172 = {6,4,-1,-2,8,ch172data}; - -/* char: 0xab */ - -static const GLubyte ch171data[] = { -0x28,0x50,0xa0,0x50,0x28, -}; - -static const BitmapCharRec ch171 = {5,5,-1,-1,7,ch171data}; - -/* char: 0xaa */ - -static const GLubyte ch170data[] = { -0xe0,0x0,0xa0,0x20,0xe0, -}; - -static const BitmapCharRec ch170 = {3,5,-1,-4,5,ch170data}; - -/* char: 0xa9 */ - -static const GLubyte ch169data[] = { -0x3e,0x0,0x41,0x0,0x9c,0x80,0xa2,0x80,0xa0,0x80,0xa2,0x80,0x9c,0x80,0x41,0x0, -0x3e,0x0, -}; - -static const BitmapCharRec ch169 = {9,9,-1,0,11,ch169data}; - -/* char: 0xa8 */ - -static const GLubyte ch168data[] = { -0xa0, -}; - -static const BitmapCharRec ch168 = {3,1,0,-8,3,ch168data}; - -/* char: 0xa7 */ - -static const GLubyte ch167data[] = { -0x70,0x88,0x8,0x30,0x48,0x88,0x88,0x90,0x60,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch167 = {5,12,0,3,6,ch167data}; - -/* char: 0xa6 */ - -static const GLubyte ch166data[] = { -0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch166 = {1,11,-1,2,3,ch166data}; - -/* char: 0xa5 */ - -static const GLubyte ch165data[] = { -0x20,0x20,0xf8,0x20,0xf8,0x20,0x50,0x88,0x88, -}; - -static const BitmapCharRec ch165 = {5,9,-1,0,7,ch165data}; - -/* char: 0xa4 */ - -static const GLubyte ch164data[] = { -0x84,0x78,0x48,0x48,0x78,0x84, -}; - -static const BitmapCharRec ch164 = {6,6,0,-1,7,ch164data}; - -/* char: 0xa3 */ - -static const GLubyte ch163data[] = { -0xb0,0x48,0x20,0x20,0xf0,0x40,0x40,0x48,0x30, -}; - -static const BitmapCharRec ch163 = {5,9,-1,0,7,ch163data}; - -/* char: 0xa2 */ - -static const GLubyte ch162data[] = { -0x40,0x70,0xc8,0xa0,0xa0,0xa0,0xa8,0x70,0x10, -}; - -static const BitmapCharRec ch162 = {5,9,-1,1,7,ch162data}; - -/* char: 0xa1 */ - -static const GLubyte ch161data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80, -}; - -static const BitmapCharRec ch161 = {1,10,-1,3,3,ch161data}; - -/* char: 0xa0 */ - -#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,4,ch160data}; -#else -static const BitmapCharRec ch160 = {0,0,0,0,4,0}; -#endif - -/* char: 0x7e '~' */ - -static const GLubyte ch126data[] = { -0x98,0x64, -}; - -static const BitmapCharRec ch126 = {6,2,0,-3,7,ch126data}; - -/* char: 0x7d '}' */ - -static const GLubyte ch125data[] = { -0xc0,0x20,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xc0, -}; - -static const BitmapCharRec ch125 = {4,12,0,3,4,ch125data}; - -/* char: 0x7c '|' */ - -static const GLubyte ch124data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch124 = {1,12,-1,3,3,ch124data}; - -/* char: 0x7b '{' */ - -static const GLubyte ch123data[] = { -0x30,0x40,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30, -}; - -static const BitmapCharRec ch123 = {4,12,0,3,4,ch123data}; - -/* char: 0x7a 'z' */ - -static const GLubyte ch122data[] = { -0xf0,0x80,0x40,0x40,0x20,0x10,0xf0, -}; - -static const BitmapCharRec ch122 = {4,7,-1,0,6,ch122data}; - -/* char: 0x79 'y' */ - -static const GLubyte ch121data[] = { -0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88, -}; - -static const BitmapCharRec ch121 = {5,10,-1,3,7,ch121data}; - -/* char: 0x78 'x' */ - -static const GLubyte ch120data[] = { -0x84,0x84,0x48,0x30,0x30,0x48,0x84, -}; - -static const BitmapCharRec ch120 = {6,7,0,0,6,ch120data}; - -/* char: 0x77 'w' */ - -static const GLubyte ch119data[] = { -0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80, -}; - -static const BitmapCharRec ch119 = {9,7,0,0,9,ch119data}; - -/* char: 0x76 'v' */ - -static const GLubyte ch118data[] = { -0x20,0x20,0x50,0x50,0x88,0x88,0x88, -}; - -static const BitmapCharRec ch118 = {5,7,-1,0,7,ch118data}; - -/* char: 0x75 'u' */ - -static const GLubyte ch117data[] = { -0x68,0x98,0x88,0x88,0x88,0x88,0x88, -}; - -static const BitmapCharRec ch117 = {5,7,-1,0,7,ch117data}; - -/* char: 0x74 't' */ - -static const GLubyte ch116data[] = { -0x60,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x40, -}; - -static const BitmapCharRec ch116 = {3,9,0,0,3,ch116data}; - -/* char: 0x73 's' */ - -static const GLubyte ch115data[] = { -0x60,0x90,0x10,0x60,0x80,0x90,0x60, -}; - -static const BitmapCharRec ch115 = {4,7,-1,0,6,ch115data}; - -/* char: 0x72 'r' */ - -static const GLubyte ch114data[] = { -0x80,0x80,0x80,0x80,0x80,0xc0,0xa0, -}; - -static const BitmapCharRec ch114 = {3,7,-1,0,4,ch114data}; - -/* char: 0x71 'q' */ - -static const GLubyte ch113data[] = { -0x8,0x8,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68, -}; - -static const BitmapCharRec ch113 = {5,10,-1,3,7,ch113data}; - -/* char: 0x70 'p' */ - -static const GLubyte ch112data[] = { -0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0, -}; - -static const BitmapCharRec ch112 = {5,10,-1,3,7,ch112data}; - -/* char: 0x6f 'o' */ - -static const GLubyte ch111data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch111 = {5,7,-1,0,7,ch111data}; - -/* char: 0x6e 'n' */ - -static const GLubyte ch110data[] = { -0x88,0x88,0x88,0x88,0x88,0xc8,0xb0, -}; - -static const BitmapCharRec ch110 = {5,7,-1,0,7,ch110data}; - -/* char: 0x6d 'm' */ - -static const GLubyte ch109data[] = { -0x92,0x92,0x92,0x92,0x92,0xda,0xa4, -}; - -static const BitmapCharRec ch109 = {7,7,-1,0,9,ch109data}; - -/* char: 0x6c 'l' */ - -static const GLubyte ch108data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch108 = {1,9,-1,0,3,ch108data}; - -/* char: 0x6b 'k' */ - -static const GLubyte ch107data[] = { -0x88,0x90,0xa0,0xc0,0xc0,0xa0,0x90,0x80,0x80, -}; - -static const BitmapCharRec ch107 = {5,9,-1,0,6,ch107data}; - -/* char: 0x6a 'j' */ - -static const GLubyte ch106data[] = { -0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40, -}; - -static const BitmapCharRec ch106 = {2,12,0,3,3,ch106data}; - -/* char: 0x69 'i' */ - -static const GLubyte ch105data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80, -}; - -static const BitmapCharRec ch105 = {1,9,-1,0,3,ch105data}; - -/* char: 0x68 'h' */ - -static const GLubyte ch104data[] = { -0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch104 = {5,9,-1,0,7,ch104data}; - -/* char: 0x67 'g' */ - -static const GLubyte ch103data[] = { -0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68, -}; - -static const BitmapCharRec ch103 = {5,10,-1,3,7,ch103data}; - -/* char: 0x66 'f' */ - -static const GLubyte ch102data[] = { -0x40,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30, -}; - -static const BitmapCharRec ch102 = {4,9,0,0,3,ch102data}; - -/* char: 0x65 'e' */ - -static const GLubyte ch101data[] = { -0x70,0x88,0x80,0xf8,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch101 = {5,7,-1,0,7,ch101data}; - -/* char: 0x64 'd' */ - -static const GLubyte ch100data[] = { -0x68,0x98,0x88,0x88,0x88,0x98,0x68,0x8,0x8, -}; - -static const BitmapCharRec ch100 = {5,9,-1,0,7,ch100data}; - -/* char: 0x63 'c' */ - -static const GLubyte ch99data[] = { -0x70,0x88,0x80,0x80,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch99 = {5,7,-1,0,7,ch99data}; - -/* char: 0x62 'b' */ - -static const GLubyte ch98data[] = { -0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80, -}; - -static const BitmapCharRec ch98 = {5,9,-1,0,7,ch98data}; - -/* char: 0x61 'a' */ - -static const GLubyte ch97data[] = { -0x74,0x88,0x88,0x78,0x8,0x88,0x70, -}; - -static const BitmapCharRec ch97 = {6,7,-1,0,7,ch97data}; - -/* char: 0x60 '`' */ - -static const GLubyte ch96data[] = { -0xc0,0x80,0x40, -}; - -static const BitmapCharRec ch96 = {2,3,0,-6,3,ch96data}; - -/* char: 0x5f '_' */ - -static const GLubyte ch95data[] = { -0xfe, -}; - -static const BitmapCharRec ch95 = {7,1,0,2,7,ch95data}; - -/* char: 0x5e '^' */ - -static const GLubyte ch94data[] = { -0x88,0x50,0x20, -}; - -static const BitmapCharRec ch94 = {5,3,0,-5,6,ch94data}; - -/* char: 0x5d ']' */ - -static const GLubyte ch93data[] = { -0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0, -}; - -static const BitmapCharRec ch93 = {2,12,0,3,3,ch93data}; - -/* char: 0x5c '\' */ - -static const GLubyte ch92data[] = { -0x10,0x10,0x20,0x20,0x20,0x40,0x40,0x80,0x80, -}; - -static const BitmapCharRec ch92 = {4,9,0,0,4,ch92data}; - -/* char: 0x5b '[' */ - -static const GLubyte ch91data[] = { -0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0, -}; - -static const BitmapCharRec ch91 = {2,12,-1,3,3,ch91data}; - -/* char: 0x5a 'Z' */ - -static const GLubyte ch90data[] = { -0xfe,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0xfe, -}; - -static const BitmapCharRec ch90 = {7,9,-1,0,9,ch90data}; - -/* char: 0x59 'Y' */ - -static const GLubyte ch89data[] = { -0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch89 = {7,9,-1,0,9,ch89data}; - -/* char: 0x58 'X' */ - -static const GLubyte ch88data[] = { -0x82,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x82, -}; - -static const BitmapCharRec ch88 = {7,9,-1,0,9,ch88data}; - -/* char: 0x57 'W' */ - -static const GLubyte ch87data[] = { -0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x55,0x0,0x49,0x0,0x88,0x80,0x88,0x80, -0x88,0x80, -}; - -static const BitmapCharRec ch87 = {9,9,-1,0,11,ch87data}; - -/* char: 0x56 'V' */ - -static const GLubyte ch86data[] = { -0x10,0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82, -}; - -static const BitmapCharRec ch86 = {7,9,-1,0,9,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,7,ch84data}; - -/* char: 0x53 'S' */ - -static const GLubyte ch83data[] = { -0x78,0x84,0x84,0x4,0x18,0x60,0x80,0x84,0x78, -}; - -static const BitmapCharRec ch83 = {6,9,-1,0,8,ch83data}; - -/* char: 0x52 'R' */ - -static const GLubyte ch82data[] = { -0x84,0x84,0x84,0x88,0xf8,0x84,0x84,0x84,0xf8, -}; - -static const BitmapCharRec ch82 = {6,9,-1,0,8,ch82data}; - -/* char: 0x51 'Q' */ - -static const GLubyte ch81data[] = { -0x3d,0x42,0x85,0x89,0x81,0x81,0x81,0x42,0x3c, -}; - -static const BitmapCharRec ch81 = {8,9,-1,0,10,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[] = { -0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c, -}; - -static const BitmapCharRec ch79 = {8,9,-1,0,10,ch79data}; - -/* char: 0x4e 'N' */ - -static const GLubyte ch78data[] = { -0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82, -}; - -static const BitmapCharRec ch78 = {7,9,-1,0,9,ch78data}; - -/* char: 0x4d 'M' */ - -static const GLubyte ch77data[] = { -0x88,0x80,0x88,0x80,0x94,0x80,0x94,0x80,0xa2,0x80,0xa2,0x80,0xc1,0x80,0xc1,0x80, -0x80,0x80, -}; - -static const BitmapCharRec ch77 = {9,9,-1,0,11,ch77data}; - -/* char: 0x4c 'L' */ - -static const GLubyte ch76data[] = { -0xf8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch76 = {5,9,-1,0,7,ch76data}; - -/* char: 0x4b 'K' */ - -static const GLubyte ch75data[] = { -0x82,0x84,0x88,0x90,0xe0,0xa0,0x90,0x88,0x84, -}; - -static const BitmapCharRec ch75 = {7,9,-1,0,8,ch75data}; - -/* char: 0x4a 'J' */ - -static const GLubyte ch74data[] = { -0x70,0x88,0x88,0x8,0x8,0x8,0x8,0x8,0x8, -}; - -static const BitmapCharRec ch74 = {5,9,-1,0,7,ch74data}; - -/* char: 0x49 'I' */ - -static const GLubyte ch73data[] = { -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch73 = {1,9,-1,0,3,ch73data}; - -/* char: 0x48 'H' */ - -static const GLubyte ch72data[] = { -0x82,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x82, -}; - -static const BitmapCharRec ch72 = {7,9,-1,0,9,ch72data}; - -/* char: 0x47 'G' */ - -static const GLubyte ch71data[] = { -0x3a,0x46,0x82,0x82,0x8e,0x80,0x80,0x42,0x3c, -}; - -static const BitmapCharRec ch71 = {7,9,-1,0,9,ch71data}; - -/* char: 0x46 'F' */ - -static const GLubyte ch70data[] = { -0x80,0x80,0x80,0x80,0xf8,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,0xfc,0x80,0x80,0x80,0xfc, -}; - -static const BitmapCharRec ch69 = {6,9,-1,0,8,ch69data}; - -/* char: 0x44 'D' */ - -static const GLubyte ch68data[] = { -0xf8,0x84,0x82,0x82,0x82,0x82,0x82,0x84,0xf8, -}; - -static const BitmapCharRec ch68 = {7,9,-1,0,9,ch68data}; - -/* char: 0x43 'C' */ - -static const GLubyte ch67data[] = { -0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c, -}; - -static const BitmapCharRec ch67 = {7,9,-1,0,9,ch67data}; - -/* char: 0x42 'B' */ - -static const GLubyte ch66data[] = { -0xf8,0x84,0x84,0x84,0xf8,0x84,0x84,0x84,0xf8, -}; - -static const BitmapCharRec ch66 = {6,9,-1,0,8,ch66data}; - -/* char: 0x41 'A' */ - -static const GLubyte ch65data[] = { -0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x28,0x10, -}; - -static const BitmapCharRec ch65 = {7,9,-1,0,9,ch65data}; - -/* char: 0x40 '@' */ - -static const GLubyte ch64data[] = { -0x3e,0x0,0x40,0x0,0x9b,0x0,0xa6,0x80,0xa2,0x40,0xa2,0x40,0x92,0x40,0x4d,0x40, -0x60,0x80,0x1f,0x0, -}; - -static const BitmapCharRec ch64 = {10,10,-1,1,12,ch64data}; - -/* char: 0x3f '?' */ - -static const GLubyte ch63data[] = { -0x20,0x0,0x20,0x20,0x10,0x10,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch63 = {5,9,-1,0,7,ch63data}; - -/* char: 0x3e '>' */ - -static const GLubyte ch62data[] = { -0xc0,0x30,0xc,0x30,0xc0, -}; - -static const BitmapCharRec ch62 = {6,5,-1,-1,7,ch62data}; - -/* char: 0x3d '=' */ - -static const GLubyte ch61data[] = { -0xf8,0x0,0xf8, -}; - -static const BitmapCharRec ch61 = {5,3,-1,-2,7,ch61data}; - -/* char: 0x3c '<' */ - -static const GLubyte ch60data[] = { -0xc,0x30,0xc0,0x30,0xc, -}; - -static const BitmapCharRec ch60 = {6,5,0,-1,7,ch60data}; - -/* char: 0x3b ';' */ - -static const GLubyte ch59data[] = { -0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40, -}; - -static const BitmapCharRec ch59 = {2,8,0,2,3,ch59data}; - -/* char: 0x3a ':' */ - -static const GLubyte ch58data[] = { -0x80,0x0,0x0,0x0,0x0,0x80, -}; - -static const BitmapCharRec ch58 = {1,6,-1,0,3,ch58data}; - -/* char: 0x39 '9' */ - -static const GLubyte ch57data[] = { -0x70,0x88,0x8,0x8,0x78,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch57 = {5,9,-1,0,7,ch57data}; - -/* char: 0x38 '8' */ - -static const GLubyte ch56data[] = { -0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch56 = {5,9,-1,0,7,ch56data}; - -/* char: 0x37 '7' */ - -static const GLubyte ch55data[] = { -0x40,0x40,0x20,0x20,0x20,0x10,0x10,0x8,0xf8, -}; - -static const BitmapCharRec ch55 = {5,9,-1,0,7,ch55data}; - -/* char: 0x36 '6' */ - -static const GLubyte ch54data[] = { -0x70,0x88,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70, -}; - -static const BitmapCharRec ch54 = {5,9,-1,0,7,ch54data}; - -/* char: 0x35 '5' */ - -static const GLubyte ch53data[] = { -0x70,0x88,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8, -}; - -static const BitmapCharRec ch53 = {5,9,-1,0,7,ch53data}; - -/* char: 0x34 '4' */ - -static const GLubyte ch52data[] = { -0x8,0x8,0xfc,0x88,0x48,0x28,0x28,0x18,0x8, -}; - -static const BitmapCharRec ch52 = {6,9,0,0,7,ch52data}; - -/* char: 0x33 '3' */ - -static const GLubyte ch51data[] = { -0x70,0x88,0x88,0x8,0x8,0x30,0x8,0x88,0x70, -}; - -static const BitmapCharRec ch51 = {5,9,-1,0,7,ch51data}; - -/* char: 0x32 '2' */ - -static const GLubyte ch50data[] = { -0xf8,0x80,0x80,0x40,0x20,0x10,0x8,0x88,0x70, -}; - -static const BitmapCharRec ch50 = {5,9,-1,0,7,ch50data}; - -/* char: 0x31 '1' */ - -static const GLubyte ch49data[] = { -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe0,0x20, -}; - -static const BitmapCharRec ch49 = {3,9,-1,0,7,ch49data}; - -/* char: 0x30 '0' */ - -static const GLubyte ch48data[] = { -0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70, -}; - -static const BitmapCharRec ch48 = {5,9,-1,0,7,ch48data}; - -/* char: 0x2f '/' */ - -static const GLubyte ch47data[] = { -0x80,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10, -}; - -static const BitmapCharRec ch47 = {4,9,0,0,4,ch47data}; - -/* char: 0x2e '.' */ - -static const GLubyte ch46data[] = { -0x80, -}; - -static const BitmapCharRec ch46 = {1,1,-1,0,3,ch46data}; - -/* char: 0x2d '-' */ - -static const GLubyte ch45data[] = { -0xf8, -}; - -static const BitmapCharRec ch45 = {5,1,-1,-3,8,ch45data}; - -/* char: 0x2c ',' */ - -static const GLubyte ch44data[] = { -0x80,0x40,0x40, -}; - -static const BitmapCharRec ch44 = {2,3,-1,2,4,ch44data}; - -/* char: 0x2b '+' */ - -static const GLubyte ch43data[] = { -0x20,0x20,0xf8,0x20,0x20, -}; - -static const BitmapCharRec ch43 = {5,5,-1,-1,7,ch43data}; - -/* char: 0x2a '*' */ - -static const GLubyte ch42data[] = { -0xa0,0x40,0xa0, -}; - -static const BitmapCharRec ch42 = {3,3,-1,-6,5,ch42data}; - -/* char: 0x29 ')' */ - -static const GLubyte ch41data[] = { -0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x40,0x80, -}; - -static const BitmapCharRec ch41 = {3,12,0,3,4,ch41data}; - -/* char: 0x28 '(' */ - -static const GLubyte ch40data[] = { -0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x80,0x80,0x40,0x40,0x20, -}; - -static const BitmapCharRec ch40 = {3,12,-1,3,4,ch40data}; - -/* char: 0x27 ''' */ - -static const GLubyte ch39data[] = { -0x80,0x40,0xc0, -}; - -static const BitmapCharRec ch39 = {2,3,-1,-6,3,ch39data}; - -/* char: 0x26 '&' */ - -static const GLubyte ch38data[] = { -0x72,0x8c,0x84,0x8a,0x50,0x30,0x48,0x48,0x30, -}; - -static const BitmapCharRec ch38 = {7,9,-1,0,9,ch38data}; - -/* char: 0x25 '%' */ - -static const GLubyte ch37data[] = { -0x23,0x0,0x14,0x80,0x14,0x80,0x13,0x0,0x8,0x0,0x68,0x0,0x94,0x0,0x94,0x0, -0x62,0x0, -}; - -static const BitmapCharRec ch37 = {9,9,-1,0,11,ch37data}; - -/* char: 0x24 '$' */ - -static const GLubyte ch36data[] = { -0x20,0x70,0xa8,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20, -}; - -static const BitmapCharRec ch36 = {5,10,-1,1,7,ch36data}; - -/* char: 0x23 '#' */ - -static const GLubyte ch35data[] = { -0x50,0x50,0x50,0xfc,0x28,0xfc,0x28,0x28, -}; - -static const BitmapCharRec ch35 = {6,8,0,0,7,ch35data}; - -/* char: 0x22 '"' */ - -static const GLubyte ch34data[] = { -0xa0,0xa0,0xa0, -}; - -static const BitmapCharRec ch34 = {3,3,-1,-6,5,ch34data}; - -/* char: 0x21 '!' */ - -static const GLubyte ch33data[] = { -0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80,0x80, -}; - -static const BitmapCharRec ch33 = {1,9,-1,0,3,ch33data}; - -/* char: 0x20 ' ' */ - -#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,4,ch32data}; -#else -static const BitmapCharRec ch32 = {0,0,0,0,4,0}; -#endif - -static const BitmapCharRec * const chars[] = { -&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, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -&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, -}; - -#if !defined(__IBMCPP__) -const -#endif -BitmapFontRec glutBitmapHelvetica12 = { -"-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1", -224, -32, -chars -}; - diff --git a/src/glut/os2/glut_hel18.cpp b/src/glut/os2/glut_hel18.cpp deleted file mode 100644 index 8fe76332b2..0000000000 --- a/src/glut/os2/glut_hel18.cpp +++ /dev/null @@ -1,1900 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmapHelvetica18 XXX -#include "glutbitmap.h" -#undef glutBitmapHelvetica18 - -/* char: 0xff */ - -static const GLubyte ch255data[] = { -0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x66, -0x66, -}; - -static const BitmapCharRec ch255 = {8,17,-1,4,10,ch255data}; - -/* char: 0xfe */ - -static const GLubyte ch254data[] = { -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, -0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0, -0xc0,0x0,0xc0,0x0, -}; - -static const BitmapCharRec ch254 = {9,18,-1,4,11,ch254data}; - -/* char: 0xfd */ - -static const GLubyte ch253data[] = { -0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x18, -0xc,0x6, -}; - -static const BitmapCharRec ch253 = {8,18,-1,4,10,ch253data}; - -/* char: 0xfc */ - -static const GLubyte ch252data[] = { -0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x66, -}; - -static const BitmapCharRec ch252 = {8,13,-1,0,10,ch252data}; - -/* char: 0xfb */ - -static const GLubyte ch251data[] = { -0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x3c,0x18, -}; - -static const BitmapCharRec ch251 = {8,14,-1,0,10,ch251data}; - -/* char: 0xfa */ - -static const GLubyte ch250data[] = { -0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x18,0xc,0x6, -}; - -static const BitmapCharRec ch250 = {8,14,-1,0,10,ch250data}; - -/* char: 0xf9 */ - -static const GLubyte ch249data[] = { -0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0xc,0x18,0x30, -}; - -static const BitmapCharRec ch249 = {8,14,-1,0,10,ch249data}; - -/* char: 0xf8 */ - -static const GLubyte ch248data[] = { -0xce,0x0,0x7f,0x80,0x31,0x80,0x78,0xc0,0x6c,0xc0,0x66,0xc0,0x63,0xc0,0x31,0x80, -0x3f,0xc0,0xe,0x60, -}; - -static const BitmapCharRec ch248 = {11,10,0,0,11,ch248data}; - -/* char: 0xf7 */ - -static const GLubyte ch247data[] = { -0x18,0x18,0x0,0xff,0xff,0x0,0x18,0x18, -}; - -static const BitmapCharRec ch247 = {8,8,-1,-1,10,ch247data}; - -/* char: 0xf6 */ - -static const GLubyte ch246data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x0,0x0,0x36,0x0,0x36,0x0, -}; - -static const BitmapCharRec ch246 = {9,13,-1,0,11,ch246data}; - -/* char: 0xf5 */ - -static const GLubyte ch245data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x0,0x0,0x26,0x0,0x2d,0x0,0x19,0x0, -}; - -static const BitmapCharRec ch245 = {9,14,-1,0,11,ch245data}; - -/* char: 0xf4 */ - -static const GLubyte ch244data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x0,0x0,0x33,0x0,0x1e,0x0,0xc,0x0, -}; - -static const BitmapCharRec ch244 = {9,14,-1,0,11,ch244data}; - -/* char: 0xf3 */ - -static const GLubyte ch243data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0xc,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch243 = {9,14,-1,0,11,ch243data}; - -/* char: 0xf2 */ - -static const GLubyte ch242data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x18,0x0,0x30,0x0, -}; - -static const BitmapCharRec ch242 = {9,14,-1,0,11,ch242data}; - -/* char: 0xf1 */ - -static const GLubyte ch241data[] = { -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0x0,0x4c,0x5a,0x32, -}; - -static const BitmapCharRec ch241 = {8,14,-1,0,10,ch241data}; - -/* char: 0xf0 */ - -static const GLubyte ch240data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0,0x4c,0x0,0x38,0x0,0x36,0x0,0x60,0x0, -}; - -static const BitmapCharRec ch240 = {9,14,-1,0,11,ch240data}; - -/* char: 0xef */ - -static const GLubyte ch239data[] = { -0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xd8,0xd8, -}; - -static const BitmapCharRec ch239 = {5,13,0,0,4,ch239data}; - -/* char: 0xee */ - -static const GLubyte ch238data[] = { -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc,0x78,0x30, -}; - -static const BitmapCharRec ch238 = {6,14,1,0,4,ch238data}; - -/* char: 0xed */ - -static const GLubyte ch237data[] = { -0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xc0,0x60,0x30, -}; - -static const BitmapCharRec ch237 = {4,14,0,0,4,ch237data}; - -/* char: 0xec */ - -static const GLubyte ch236data[] = { -0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0x30,0x60,0xc0, -}; - -static const BitmapCharRec ch236 = {4,14,0,0,4,ch236data}; - -/* char: 0xeb */ - -static const GLubyte ch235data[] = { -0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x36,0x36, -}; - -static const BitmapCharRec ch235 = {8,13,-1,0,10,ch235data}; - -/* char: 0xea */ - -static const GLubyte ch234data[] = { -0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x66,0x3c,0x18, -}; - -static const BitmapCharRec ch234 = {8,14,-1,0,10,ch234data}; - -/* char: 0xe9 */ - -static const GLubyte ch233data[] = { -0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0xc,0x6, -}; - -static const BitmapCharRec ch233 = {8,14,-1,0,10,ch233data}; - -/* char: 0xe8 */ - -static const GLubyte ch232data[] = { -0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0x30,0x60, -}; - -static const BitmapCharRec ch232 = {8,14,-1,0,10,ch232data}; - -/* char: 0xe7 */ - -static const GLubyte ch231data[] = { -0x78,0x6c,0xc,0x38,0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e, -}; - -static const BitmapCharRec ch231 = {8,14,-1,4,10,ch231data}; - -/* char: 0xe6 */ - -static const GLubyte ch230data[] = { -0x75,0xe0,0xef,0xf8,0xc7,0x18,0xc6,0x0,0xe6,0x0,0x7f,0xf8,0xe,0x18,0xc6,0x18, -0xef,0xf0,0x7d,0xe0, -}; - -static const BitmapCharRec ch230 = {13,10,-1,0,15,ch230data}; - -/* char: 0xe5 */ - -static const GLubyte ch229data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x38,0x6c,0x6c,0x38, -}; - -static const BitmapCharRec ch229 = {7,14,-1,0,9,ch229data}; - -/* char: 0xe4 */ - -static const GLubyte ch228data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x6c,0x6c, -}; - -static const BitmapCharRec ch228 = {7,13,-1,0,9,ch228data}; - -/* char: 0xe3 */ - -static const GLubyte ch227data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x4c,0x5a,0x32, -}; - -static const BitmapCharRec ch227 = {7,14,-1,0,9,ch227data}; - -/* char: 0xe2 */ - -static const GLubyte ch226data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x66,0x3c,0x18, -}; - -static const BitmapCharRec ch226 = {7,14,-1,0,9,ch226data}; - -/* char: 0xe1 */ - -static const GLubyte ch225data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x30,0x18,0xc, -}; - -static const BitmapCharRec ch225 = {7,14,-1,0,9,ch225data}; - -/* char: 0xe0 */ - -static const GLubyte ch224data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x18,0x30,0x60, -}; - -static const BitmapCharRec ch224 = {7,14,-1,0,9,ch224data}; - -/* char: 0xdf */ - -static const GLubyte ch223data[] = { -0xdc,0xde,0xc6,0xc6,0xc6,0xc6,0xdc,0xdc,0xc6,0xc6,0xc6,0xc6,0x7c,0x38, -}; - -static const BitmapCharRec ch223 = {7,14,-1,0,9,ch223data}; - -/* char: 0xde */ - -static const GLubyte ch222data[] = { -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc1,0xc0,0xff,0x80,0xff,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -}; - -static const BitmapCharRec ch222 = {10,14,-1,0,12,ch222data}; - -/* char: 0xdd */ - -static const GLubyte ch221data[] = { -0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, -0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30,0x0,0x0,0x6,0x0, -0x3,0x0,0x1,0x80, -}; - -static const BitmapCharRec ch221 = {12,18,-1,0,14,ch221data}; - -/* char: 0xdc */ - -static const GLubyte ch220data[] = { -0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, -0x19,0x80, -}; - -static const BitmapCharRec ch220 = {11,17,-1,0,13,ch220data}; - -/* char: 0xdb */ - -static const GLubyte ch219data[] = { -0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, -0xf,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch219 = {11,18,-1,0,13,ch219data}; - -/* char: 0xda */ - -static const GLubyte ch218data[] = { -0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0xc,0x0, -0x6,0x0,0x3,0x0, -}; - -static const BitmapCharRec ch218 = {11,18,-1,0,13,ch218data}; - -/* char: 0xd9 */ - -static const GLubyte ch217data[] = { -0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x6,0x0, -0xc,0x0,0x18,0x0, -}; - -static const BitmapCharRec ch217 = {11,18,-1,0,13,ch217data}; - -/* char: 0xd8 */ - -static const GLubyte ch216data[] = { -0xc7,0xc0,0xff,0xf0,0x78,0x38,0x38,0x18,0x6c,0x1c,0x6e,0xc,0x67,0xc,0x63,0x8c, -0x61,0xcc,0x70,0xdc,0x30,0x78,0x38,0x38,0x1f,0xfc,0x7,0xcc, -}; - -static const BitmapCharRec ch216 = {14,14,0,0,15,ch216data}; - -/* char: 0xd7 */ - -static const GLubyte ch215data[] = { -0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0,0x61,0x80, -0xc0,0xc0, -}; - -static const BitmapCharRec ch215 = {10,9,0,0,10,ch215data}; - -/* char: 0xd6 */ - -static const GLubyte ch214data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xd,0x80, -0xd,0x80, -}; - -static const BitmapCharRec ch214 = {13,17,-1,0,15,ch214data}; - -/* char: 0xd5 */ - -static const GLubyte ch213data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x9,0x80, -0xb,0x40,0x6,0x40, -}; - -static const BitmapCharRec ch213 = {13,18,-1,0,15,ch213data}; - -/* char: 0xd4 */ - -static const GLubyte ch212data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xc,0xc0, -0x7,0x80,0x3,0x0, -}; - -static const BitmapCharRec ch212 = {13,18,-1,0,15,ch212data}; - -/* char: 0xd3 */ - -static const GLubyte ch211data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, -0x1,0x80,0x0,0xc0, -}; - -static const BitmapCharRec ch211 = {13,18,-1,0,15,ch211data}; - -/* char: 0xd2 */ - -static const GLubyte ch210data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, -0x6,0x0,0xc,0x0, -}; - -static const BitmapCharRec ch210 = {13,18,-1,0,15,ch210data}; - -/* char: 0xd1 */ - -static const GLubyte ch209data[] = { -0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, -0xcc,0x60,0xd8,0x60,0xd8,0x60,0xf0,0x60,0xe0,0x60,0xe0,0x60,0x0,0x0,0x13,0x0, -0x16,0x80,0xc,0x80, -}; - -static const BitmapCharRec ch209 = {11,18,-1,0,13,ch209data}; - -/* char: 0xd0 */ - -static const GLubyte ch208data[] = { -0x7f,0x80,0x7f,0xc0,0x60,0xe0,0x60,0x60,0x60,0x30,0x60,0x30,0xfc,0x30,0xfc,0x30, -0x60,0x30,0x60,0x30,0x60,0x60,0x60,0xe0,0x7f,0xc0,0x7f,0x80, -}; - -static const BitmapCharRec ch208 = {12,14,0,0,13,ch208data}; - -/* char: 0xcf */ - -static const GLubyte ch207data[] = { -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, -0xcc, -}; - -static const BitmapCharRec ch207 = {6,17,0,0,6,ch207data}; - -/* char: 0xce */ - -static const GLubyte ch206data[] = { -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, -0x78,0x30, -}; - -static const BitmapCharRec ch206 = {6,18,0,0,6,ch206data}; - -/* char: 0xcd */ - -static const GLubyte ch205data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0xc0, -0x60,0x30, -}; - -static const BitmapCharRec ch205 = {4,18,-2,0,6,ch205data}; - -/* char: 0xcc */ - -static const GLubyte ch204data[] = { -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x30, -0x60,0xc0, -}; - -static const BitmapCharRec ch204 = {4,18,0,0,6,ch204data}; - -/* char: 0xcb */ - -static const GLubyte ch203data[] = { -0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, -0x33,0x0, -}; - -static const BitmapCharRec ch203 = {9,17,-1,0,11,ch203data}; - -/* char: 0xca */ - -static const GLubyte ch202data[] = { -0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, -0x1e,0x0,0xc,0x0, -}; - -static const BitmapCharRec ch202 = {9,18,-1,0,11,ch202data}; - -/* char: 0xc9 */ - -static const GLubyte ch201data[] = { -0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, -0x6,0x0,0x3,0x0, -}; - -static const BitmapCharRec ch201 = {9,18,-1,0,11,ch201data}; - -/* char: 0xc8 */ - -static const GLubyte ch200data[] = { -0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, -0x18,0x0,0x30,0x0, -}; - -static const BitmapCharRec ch200 = {9,18,-1,0,11,ch200data}; - -/* char: 0xc7 */ - -static const GLubyte ch199data[] = { -0x1e,0x0,0x1b,0x0,0x3,0x0,0xe,0x0,0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30, -0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70, -0x3f,0xe0,0xf,0x80, -}; - -static const BitmapCharRec ch199 = {12,18,-1,4,14,ch199data}; - -/* char: 0xc6 */ - -static const GLubyte ch198data[] = { -0xc1,0xff,0xc1,0xff,0x61,0x80,0x61,0x80,0x7f,0x80,0x3f,0x80,0x31,0xfe,0x31,0xfe, -0x19,0x80,0x19,0x80,0xd,0x80,0xd,0x80,0x7,0xff,0x7,0xff, -}; - -static const BitmapCharRec ch198 = {16,14,-1,0,18,ch198data}; - -/* char: 0xc5 */ - -static const GLubyte ch197data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, -0x19,0x80,0xf,0x0, -}; - -static const BitmapCharRec ch197 = {12,18,0,0,12,ch197data}; - -/* char: 0xc4 */ - -static const GLubyte ch196data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, -0x19,0x80, -}; - -static const BitmapCharRec ch196 = {12,17,0,0,12,ch196data}; - -/* char: 0xc3 */ - -static const GLubyte ch195data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x13,0x0, -0x16,0x80,0xc,0x80, -}; - -static const BitmapCharRec ch195 = {12,18,0,0,12,ch195data}; - -/* char: 0xc2 */ - -static const GLubyte ch194data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, -0xf,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch194 = {12,18,0,0,12,ch194data}; - -/* char: 0xc1 */ - -static const GLubyte ch193data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, -0x3,0x0,0x1,0x80, -}; - -static const BitmapCharRec ch193 = {12,18,0,0,12,ch193data}; - -/* char: 0xc0 */ - -static const GLubyte ch192data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, -0xc,0x0,0x18,0x0, -}; - -static const BitmapCharRec ch192 = {12,18,0,0,12,ch192data}; - -/* char: 0xbf */ - -static const GLubyte ch191data[] = { -0x7c,0xfe,0xc6,0xc6,0xe0,0x70,0x38,0x18,0x18,0x18,0x0,0x0,0x18,0x18, -}; - -static const BitmapCharRec ch191 = {7,14,-1,4,10,ch191data}; - -/* char: 0xbe */ - -static const GLubyte ch190data[] = { -0x18,0x18,0x18,0x18,0xc,0xfc,0x6,0xd8,0x6,0x78,0x73,0x38,0xf9,0x18,0x99,0x88, -0x30,0xc0,0x30,0xc0,0x98,0x60,0xf8,0x30,0x70,0x30, -}; - -static const BitmapCharRec ch190 = {14,13,0,0,15,ch190data}; - -/* char: 0xbd */ - -static const GLubyte ch189data[] = { -0x30,0xf8,0x30,0xf8,0x18,0x60,0xc,0x30,0xc,0x18,0x66,0x98,0x62,0xf8,0x63,0x70, -0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60, -}; - -static const BitmapCharRec ch189 = {13,13,-1,0,15,ch189data}; - -/* char: 0xbc */ - -static const GLubyte ch188data[] = { -0x30,0x30,0x30,0x30,0x19,0xf8,0xd,0xb0,0xc,0xf0,0x66,0x70,0x62,0x30,0x63,0x10, -0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60, -}; - -static const BitmapCharRec ch188 = {13,13,-1,0,15,ch188data}; - -/* char: 0xbb */ - -static const GLubyte ch187data[] = { -0x90,0xd8,0x6c,0x36,0x36,0x6c,0xd8,0x90, -}; - -static const BitmapCharRec ch187 = {7,8,-1,-1,9,ch187data}; - -/* char: 0xba */ - -static const GLubyte ch186data[] = { -0xf8,0x0,0x70,0xd8,0x88,0x88,0xd8,0x70, -}; - -static const BitmapCharRec ch186 = {5,8,-1,-6,7,ch186data}; - -/* char: 0xb9 */ - -static const GLubyte ch185data[] = { -0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x60, -}; - -static const BitmapCharRec ch185 = {3,8,-1,-5,6,ch185data}; - -/* char: 0xb8 */ - -static const GLubyte ch184data[] = { -0xf0,0xd8,0x18,0x70,0x60, -}; - -static const BitmapCharRec ch184 = {5,5,0,4,5,ch184data}; - -/* char: 0xb7 */ - -static const GLubyte ch183data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch183 = {2,2,-1,-4,4,ch183data}; - -/* char: 0xb6 */ - -static const GLubyte ch182data[] = { -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x32,0x72,0xf2,0xf2,0xf2,0xf2, -0x72,0x3f, -}; - -static const BitmapCharRec ch182 = {8,18,-1,4,10,ch182data}; - -/* char: 0xb5 */ - -static const GLubyte ch181data[] = { -0xc0,0xc0,0xc0,0xc0,0xdb,0xff,0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3, -}; - -static const BitmapCharRec ch181 = {8,14,-1,4,10,ch181data}; - -/* char: 0xb4 */ - -static const GLubyte ch180data[] = { -0xc0,0x60,0x30, -}; - -static const BitmapCharRec ch180 = {4,3,0,-11,4,ch180data}; - -/* char: 0xb3 */ - -static const GLubyte ch179data[] = { -0x70,0xf8,0x98,0x30,0x30,0x98,0xf8,0x70, -}; - -static const BitmapCharRec ch179 = {5,8,0,-5,6,ch179data}; - -/* char: 0xb2 */ - -static const GLubyte ch178data[] = { -0xf8,0xf8,0x60,0x30,0x18,0x98,0xf8,0x70, -}; - -static const BitmapCharRec ch178 = {5,8,0,-5,6,ch178data}; - -/* char: 0xb1 */ - -static const GLubyte ch177data[] = { -0xff,0xff,0x0,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18, -}; - -static const BitmapCharRec ch177 = {8,11,-1,0,10,ch177data}; - -/* char: 0xb0 */ - -static const GLubyte ch176data[] = { -0x70,0xd8,0x88,0xd8,0x70, -}; - -static const BitmapCharRec ch176 = {5,5,-1,-8,7,ch176data}; - -/* char: 0xaf */ - -static const GLubyte ch175data[] = { -0xf8, -}; - -static const BitmapCharRec ch175 = {5,1,0,-12,5,ch175data}; - -/* char: 0xae */ - -static const GLubyte ch174data[] = { -0xf,0x80,0x30,0x60,0x40,0x10,0x48,0x50,0x88,0x88,0x89,0x8,0x8f,0x88,0x88,0x48, -0x88,0x48,0x4f,0x90,0x40,0x10,0x30,0x60,0xf,0x80, -}; - -static const BitmapCharRec ch174 = {13,13,-1,0,14,ch174data}; - -/* char: 0xad */ - -static const GLubyte ch173data[] = { -0xf8,0xf8, -}; - -static const BitmapCharRec ch173 = {5,2,-1,-4,7,ch173data}; - -/* char: 0xac */ - -static const GLubyte ch172data[] = { -0x1,0x80,0x1,0x80,0x1,0x80,0xff,0x80,0xff,0x80, -}; - -static const BitmapCharRec ch172 = {9,5,-1,-3,11,ch172data}; - -/* char: 0xab */ - -static const GLubyte ch171data[] = { -0x12,0x36,0x6c,0xd8,0xd8,0x6c,0x36,0x12, -}; - -static const BitmapCharRec ch171 = {7,8,-1,-1,9,ch171data}; - -/* char: 0xaa */ - -static const GLubyte ch170data[] = { -0xf8,0x0,0x68,0xd8,0x48,0x38,0xc8,0x70, -}; - -static const BitmapCharRec ch170 = {5,8,-1,-6,7,ch170data}; - -/* char: 0xa9 */ - -static const GLubyte ch169data[] = { -0xf,0x80,0x30,0x60,0x40,0x10,0x47,0x10,0x88,0x88,0x90,0x8,0x90,0x8,0x90,0x8, -0x88,0x88,0x47,0x10,0x40,0x10,0x30,0x60,0xf,0x80, -}; - -static const BitmapCharRec ch169 = {13,13,-1,0,15,ch169data}; - -/* char: 0xa8 */ - -static const GLubyte ch168data[] = { -0xd8,0xd8, -}; - -static const BitmapCharRec ch168 = {5,2,0,-11,6,ch168data}; - -/* char: 0xa7 */ - -static const GLubyte ch167data[] = { -0x3c,0x7e,0xc3,0xc3,0x7,0xe,0x3e,0x73,0xe3,0xc3,0xc7,0x6e,0x7c,0xf0,0xc3,0xc3, -0x7e,0x3c, -}; - -static const BitmapCharRec ch167 = {8,18,-1,4,10,ch167data}; - -/* char: 0xa6 */ - -static const GLubyte ch166data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0, -}; - -static const BitmapCharRec ch166 = {2,17,-1,3,4,ch166data}; - -/* char: 0xa5 */ - -static const GLubyte ch165data[] = { -0x18,0x18,0x18,0x18,0xff,0x18,0xff,0x3c,0x66,0x66,0x66,0xc3,0xc3, -}; - -static const BitmapCharRec ch165 = {8,13,-1,0,10,ch165data}; - -/* char: 0xa4 */ - -static const GLubyte ch164data[] = { -0xc3,0xff,0x66,0x66,0x66,0xff,0xc3, -}; - -static const BitmapCharRec ch164 = {8,7,-1,-3,10,ch164data}; - -/* char: 0xa3 */ - -static const GLubyte ch163data[] = { -0xdf,0x0,0xff,0x80,0x60,0x80,0x30,0x0,0x18,0x0,0x18,0x0,0x7e,0x0,0x30,0x0, -0x60,0x0,0x61,0x80,0x61,0x80,0x3f,0x0,0x1e,0x0, -}; - -static const BitmapCharRec ch163 = {9,13,0,0,10,ch163data}; - -/* char: 0xa2 */ - -static const GLubyte ch162data[] = { -0x10,0x10,0x3e,0x7f,0x6b,0xc8,0xc8,0xc8,0xc8,0x6b,0x7f,0x3e,0x4,0x4, -}; - -static const BitmapCharRec ch162 = {8,14,-1,2,10,ch162data}; - -/* char: 0xa1 */ - -static const GLubyte ch161data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x40,0x40,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch161 = {2,14,-2,4,6,ch161data}; - -/* char: 0xa0 */ - -#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,5,ch160data}; -#else -static const BitmapCharRec ch160 = {0,0,0,0,5,0}; -#endif - -/* char: 0x7e '~' */ - -static const GLubyte ch126data[] = { -0xcc,0x7e,0x33, -}; - -static const BitmapCharRec ch126 = {8,3,-1,-4,10,ch126data}; - -/* char: 0x7d '}' */ - -static const GLubyte ch125data[] = { -0xc0,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0xc,0x18,0x30,0x30,0x30,0x30,0x30, -0x60,0xc0, -}; - -static const BitmapCharRec ch125 = {6,18,0,4,6,ch125data}; - -/* char: 0x7c '|' */ - -static const GLubyte ch124data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0, -}; - -static const BitmapCharRec ch124 = {2,18,-1,4,4,ch124data}; - -/* char: 0x7b '{' */ - -static const GLubyte ch123data[] = { -0xc,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0xc0,0x60,0x30,0x30,0x30,0x30,0x30, -0x18,0xc, -}; - -static const BitmapCharRec ch123 = {6,18,0,4,6,ch123data}; - -/* char: 0x7a 'z' */ - -static const GLubyte ch122data[] = { -0xfe,0xfe,0xc0,0x60,0x30,0x18,0xc,0x6,0xfe,0xfe, -}; - -static const BitmapCharRec ch122 = {7,10,-1,0,9,ch122data}; - -/* char: 0x79 'y' */ - -static const GLubyte ch121data[] = { -0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3, -}; - -static const BitmapCharRec ch121 = {8,14,-1,4,10,ch121data}; - -/* char: 0x78 'x' */ - -static const GLubyte ch120data[] = { -0xc3,0xe7,0x66,0x3c,0x18,0x18,0x3c,0x66,0xe7,0xc3, -}; - -static const BitmapCharRec ch120 = {8,10,-1,0,10,ch120data}; - -/* char: 0x77 'w' */ - -static const GLubyte ch119data[] = { -0x19,0x80,0x19,0x80,0x39,0xc0,0x29,0x40,0x69,0x60,0x66,0x60,0x66,0x60,0xc6,0x30, -0xc6,0x30,0xc6,0x30, -}; - -static const BitmapCharRec ch119 = {12,10,-1,0,14,ch119data}; - -/* char: 0x76 'v' */ - -static const GLubyte ch118data[] = { -0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3, -}; - -static const BitmapCharRec ch118 = {8,10,-1,0,10,ch118data}; - -/* char: 0x75 'u' */ - -static const GLubyte ch117data[] = { -0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3, -}; - -static const BitmapCharRec ch117 = {8,10,-1,0,10,ch117data}; - -/* char: 0x74 't' */ - -static const GLubyte ch116data[] = { -0x18,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x30, -}; - -static const BitmapCharRec ch116 = {6,13,0,0,6,ch116data}; - -/* char: 0x73 's' */ - -static const GLubyte ch115data[] = { -0x78,0xfc,0xc6,0x6,0x3e,0xfc,0xc0,0xc6,0x7e,0x3c, -}; - -static const BitmapCharRec ch115 = {7,10,-1,0,9,ch115data}; - -/* char: 0x72 'r' */ - -static const GLubyte ch114data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xd8,0xd8, -}; - -static const BitmapCharRec ch114 = {5,10,-1,0,6,ch114data}; - -/* char: 0x71 'q' */ - -static const GLubyte ch113data[] = { -0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, -0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80,0x7f,0x80,0x3d,0x80, -}; - -static const BitmapCharRec ch113 = {9,14,-1,4,11,ch113data}; - -/* char: 0x70 'p' */ - -static const GLubyte ch112data[] = { -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, -0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0, -}; - -static const BitmapCharRec ch112 = {9,14,-1,4,11,ch112data}; - -/* char: 0x6f 'o' */ - -static const GLubyte ch111data[] = { -0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, -0x7f,0x0,0x3e,0x0, -}; - -static const BitmapCharRec ch111 = {9,10,-1,0,11,ch111data}; - -/* char: 0x6e 'n' */ - -static const GLubyte ch110data[] = { -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce, -}; - -static const BitmapCharRec ch110 = {8,10,-1,0,10,ch110data}; - -/* char: 0x6d 'm' */ - -static const GLubyte ch109data[] = { -0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xe7,0x30, -0xde,0xf0,0xcc,0x60, -}; - -static const BitmapCharRec ch109 = {12,10,-1,0,14,ch109data}; - -/* char: 0x6c 'l' */ - -static const GLubyte ch108data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch108 = {2,14,-1,0,4,ch108data}; - -/* char: 0x6b 'k' */ - -static const GLubyte ch107data[] = { -0xc7,0xc6,0xce,0xcc,0xd8,0xf8,0xf0,0xd8,0xcc,0xc6,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch107 = {8,14,-1,0,9,ch107data}; - -/* char: 0x6a 'j' */ - -static const GLubyte ch106data[] = { -0xe0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x0, -0x30,0x30, -}; - -static const BitmapCharRec ch106 = {4,18,1,4,4,ch106data}; - -/* char: 0x69 'i' */ - -static const GLubyte ch105data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch105 = {2,14,-1,0,4,ch105data}; - -/* char: 0x68 'h' */ - -static const GLubyte ch104data[] = { -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch104 = {8,14,-1,0,10,ch104data}; - -/* char: 0x67 'g' */ - -static const GLubyte ch103data[] = { -0x1c,0x0,0x7f,0x0,0x63,0x0,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, -0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x7f,0x80,0x3d,0x80, -}; - -static const BitmapCharRec ch103 = {9,14,-1,4,11,ch103data}; - -/* char: 0x66 'f' */ - -static const GLubyte ch102data[] = { -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x3c,0x1c, -}; - -static const BitmapCharRec ch102 = {6,14,0,0,6,ch102data}; - -/* char: 0x65 'e' */ - -static const GLubyte ch101data[] = { -0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c, -}; - -static const BitmapCharRec ch101 = {8,10,-1,0,10,ch101data}; - -/* char: 0x64 'd' */ - -static const GLubyte ch100data[] = { -0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80, -0x7f,0x80,0x3d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80, -}; - -static const BitmapCharRec ch100 = {9,14,-1,0,11,ch100data}; - -/* char: 0x63 'c' */ - -static const GLubyte ch99data[] = { -0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e, -}; - -static const BitmapCharRec ch99 = {8,10,-1,0,10,ch99data}; - -/* char: 0x62 'b' */ - -static const GLubyte ch98data[] = { -0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0, -0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -}; - -static const BitmapCharRec ch98 = {9,14,-1,0,11,ch98data}; - -/* char: 0x61 'a' */ - -static const GLubyte ch97data[] = { -0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c, -}; - -static const BitmapCharRec ch97 = {7,10,-1,0,9,ch97data}; - -/* char: 0x60 '`' */ - -static const GLubyte ch96data[] = { -0xc0,0xc0,0x80,0x80,0x40, -}; - -static const BitmapCharRec ch96 = {2,5,-1,-9,4,ch96data}; - -/* char: 0x5f '_' */ - -static const GLubyte ch95data[] = { -0xff,0xc0,0xff,0xc0, -}; - -static const BitmapCharRec ch95 = {10,2,0,4,10,ch95data}; - -/* char: 0x5e '^' */ - -static const GLubyte ch94data[] = { -0x82,0xc6,0x6c,0x38,0x10, -}; - -static const BitmapCharRec ch94 = {7,5,-1,-8,9,ch94data}; - -/* char: 0x5d ']' */ - -static const GLubyte ch93data[] = { -0xf0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0xf0,0xf0, -}; - -static const BitmapCharRec ch93 = {4,18,0,4,5,ch93data}; - -/* char: 0x5c '\' */ - -static const GLubyte ch92data[] = { -0x18,0x18,0x10,0x10,0x30,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0xc0,0xc0, -}; - -static const BitmapCharRec ch92 = {5,14,0,0,5,ch92data}; - -/* char: 0x5b '[' */ - -static const GLubyte ch91data[] = { -0xf0,0xf0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xf0,0xf0, -}; - -static const BitmapCharRec ch91 = {4,18,-1,4,5,ch91data}; - -/* char: 0x5a 'Z' */ - -static const GLubyte ch90data[] = { -0xff,0xc0,0xff,0xc0,0xc0,0x0,0x60,0x0,0x30,0x0,0x18,0x0,0x1c,0x0,0xc,0x0, -0x6,0x0,0x3,0x0,0x1,0x80,0x0,0xc0,0xff,0xc0,0xff,0xc0, -}; - -static const BitmapCharRec ch90 = {10,14,-1,0,12,ch90data}; - -/* char: 0x59 'Y' */ - -static const GLubyte ch89data[] = { -0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, -0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30, -}; - -static const BitmapCharRec ch89 = {12,14,-1,0,14,ch89data}; - -/* char: 0x58 'X' */ - -static const GLubyte ch88data[] = { -0xc0,0x60,0xe0,0xe0,0x60,0xc0,0x71,0xc0,0x31,0x80,0x1b,0x0,0xe,0x0,0xe,0x0, -0x1b,0x0,0x31,0x80,0x71,0xc0,0x60,0xc0,0xe0,0xe0,0xc0,0x60, -}; - -static const BitmapCharRec ch88 = {11,14,-1,0,13,ch88data}; - -/* char: 0x57 'W' */ - -static const GLubyte ch87data[] = { -0x18,0x18,0x18,0x18,0x1c,0x38,0x34,0x2c,0x36,0x6c,0x36,0x6c,0x66,0x66,0x66,0x66, -0x62,0x46,0x63,0xc6,0xc3,0xc3,0xc1,0x83,0xc1,0x83,0xc1,0x83, -}; - -static const BitmapCharRec ch87 = {16,14,-1,0,18,ch87data}; - -/* char: 0x56 'V' */ - -static const GLubyte ch86data[] = { -0x6,0x0,0xf,0x0,0xf,0x0,0x19,0x80,0x19,0x80,0x19,0x80,0x30,0xc0,0x30,0xc0, -0x30,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30, -}; - -static const BitmapCharRec ch86 = {12,14,-1,0,14,ch86data}; - -/* char: 0x55 'U' */ - -static const GLubyte ch85data[] = { -0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -}; - -static const BitmapCharRec ch85 = {11,14,-1,0,13,ch85data}; - -/* char: 0x54 'T' */ - -static const GLubyte ch84data[] = { -0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0, -0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xff,0xc0,0xff,0xc0, -}; - -static const BitmapCharRec ch84 = {10,14,-1,0,12,ch84data}; - -/* char: 0x53 'S' */ - -static const GLubyte ch83data[] = { -0x3f,0x0,0x7f,0xc0,0xe0,0xe0,0xc0,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0,0x1f,0x0, -0x7c,0x0,0xe0,0x0,0xc0,0x60,0xe0,0xe0,0x7f,0xc0,0x1f,0x0, -}; - -static const BitmapCharRec ch83 = {11,14,-1,0,13,ch83data}; - -/* char: 0x52 'R' */ - -static const GLubyte ch82data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0x80,0xc1,0x80,0xff,0x0,0xff,0x80, -0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0, -}; - -static const BitmapCharRec ch82 = {10,14,-1,0,12,ch82data}; - -/* char: 0x51 'Q' */ - -static const GLubyte ch81data[] = { -0x0,0x30,0xf,0xb0,0x3f,0xe0,0x70,0xf0,0x61,0xb0,0xe1,0xb8,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80, -}; - -static const BitmapCharRec ch81 = {13,15,-1,1,15,ch81data}; - -/* char: 0x50 'P' */ - -static const GLubyte ch80data[] = { -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80, -0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0, -}; - -static const BitmapCharRec ch80 = {10,14,-1,0,12,ch80data}; - -/* char: 0x4f 'O' */ - -static const GLubyte ch79data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, -0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80, -}; - -static const BitmapCharRec ch79 = {13,14,-1,0,15,ch79data}; - -/* char: 0x4e 'N' */ - -static const GLubyte ch78data[] = { -0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, -0xcc,0x60,0xd8,0x60,0xf0,0x60,0xf0,0x60,0xe0,0x60,0xc0,0x60, -}; - -static const BitmapCharRec ch78 = {11,14,-1,0,13,ch78data}; - -/* char: 0x4d 'M' */ - -static const GLubyte ch77data[] = { -0xc3,0xc,0xc3,0xc,0xc7,0x8c,0xc4,0x8c,0xcc,0xcc,0xcc,0xcc,0xd8,0x6c,0xd8,0x6c, -0xf0,0x3c,0xf0,0x3c,0xe0,0x1c,0xe0,0x1c,0xc0,0xc,0xc0,0xc, -}; - -static const BitmapCharRec ch77 = {14,14,-1,0,16,ch77data}; - -/* char: 0x4c 'L' */ - -static const GLubyte ch76data[] = { -0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch76 = {8,14,-1,0,10,ch76data}; - -/* char: 0x4b 'K' */ - -static const GLubyte ch75data[] = { -0xc0,0x70,0xc0,0xe0,0xc1,0xc0,0xc3,0x80,0xc7,0x0,0xce,0x0,0xfc,0x0,0xf8,0x0, -0xdc,0x0,0xce,0x0,0xc7,0x0,0xc3,0x80,0xc1,0xc0,0xc0,0xe0, -}; - -static const BitmapCharRec ch75 = {12,14,-1,0,13,ch75data}; - -/* char: 0x4a 'J' */ - -static const GLubyte ch74data[] = { -0x3c,0x7e,0xe7,0xc3,0xc3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3, -}; - -static const BitmapCharRec ch74 = {8,14,-1,0,10,ch74data}; - -/* char: 0x49 'I' */ - -static const GLubyte ch73data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch73 = {2,14,-2,0,6,ch73data}; - -/* char: 0x48 'H' */ - -static const GLubyte ch72data[] = { -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xff,0xe0,0xff,0xe0, -0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -}; - -static const BitmapCharRec ch72 = {11,14,-1,0,13,ch72data}; - -/* char: 0x47 'G' */ - -static const GLubyte ch71data[] = { -0xf,0xb0,0x3f,0xf0,0x70,0x70,0x60,0x30,0xe0,0x30,0xc1,0xf0,0xc1,0xf0,0xc0,0x0, -0xc0,0x0,0xe0,0x30,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80, -}; - -static const BitmapCharRec ch71 = {12,14,-1,0,14,ch71data}; - -/* char: 0x46 'F' */ - -static const GLubyte ch70data[] = { -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80, -}; - -static const BitmapCharRec ch70 = {9,14,-1,0,11,ch70data}; - -/* char: 0x45 'E' */ - -static const GLubyte ch69data[] = { -0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80, -}; - -static const BitmapCharRec ch69 = {9,14,-1,0,11,ch69data}; - -/* char: 0x44 'D' */ - -static const GLubyte ch68data[] = { -0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, -0xc0,0x60,0xc0,0x60,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0, -}; - -static const BitmapCharRec ch68 = {11,14,-1,0,13,ch68data}; - -/* char: 0x43 'C' */ - -static const GLubyte ch67data[] = { -0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80, -}; - -static const BitmapCharRec ch67 = {12,14,-1,0,14,ch67data}; - -/* char: 0x42 'B' */ - -static const GLubyte ch66data[] = { -0xff,0x80,0xff,0xc0,0xc0,0xe0,0xc0,0x60,0xc0,0x60,0xc0,0xe0,0xff,0xc0,0xff,0x80, -0xc1,0x80,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0, -}; - -static const BitmapCharRec ch66 = {11,14,-1,0,13,ch66data}; - -/* char: 0x41 'A' */ - -static const GLubyte ch65data[] = { -0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, -0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch65 = {12,14,0,0,12,ch65data}; - -/* char: 0x40 '@' */ - -static const GLubyte ch64data[] = { -0x7,0xe0,0x1f,0xf0,0x38,0x0,0x70,0x0,0x67,0x70,0xcf,0xf8,0xcc,0xcc,0xcc,0x66, -0xcc,0x66,0xcc,0x63,0xc6,0x33,0x67,0x73,0x63,0xb3,0x30,0x6,0x1c,0xe,0xf,0xfc, -0x3,0xf0, -}; - -static const BitmapCharRec ch64 = {16,17,-1,3,18,ch64data}; - -/* char: 0x3f '?' */ - -static const GLubyte ch63data[] = { -0x30,0x30,0x0,0x0,0x30,0x30,0x30,0x38,0x1c,0xe,0xc6,0xc6,0xfe,0x7c, -}; - -static const BitmapCharRec ch63 = {7,14,-1,0,10,ch63data}; - -/* char: 0x3e '>' */ - -static const GLubyte ch62data[] = { -0xc0,0xf0,0x3c,0xe,0x3,0xe,0x3c,0xf0,0xc0, -}; - -static const BitmapCharRec ch62 = {8,9,-1,0,10,ch62data}; - -/* char: 0x3d '=' */ - -static const GLubyte ch61data[] = { -0xfe,0xfe,0x0,0x0,0xfe,0xfe, -}; - -static const BitmapCharRec ch61 = {7,6,-2,-2,11,ch61data}; - -/* char: 0x3c '<' */ - -static const GLubyte ch60data[] = { -0x3,0xf,0x3c,0x70,0xc0,0x70,0x3c,0xf,0x3, -}; - -static const BitmapCharRec ch60 = {8,9,-1,0,10,ch60data}; - -/* char: 0x3b ';' */ - -static const GLubyte ch59data[] = { -0x80,0x40,0x40,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch59 = {2,13,-1,3,5,ch59data}; - -/* char: 0x3a ':' */ - -static const GLubyte ch58data[] = { -0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch58 = {2,10,-1,0,5,ch58data}; - -/* char: 0x39 '9' */ - -static const GLubyte ch57data[] = { -0x7c,0xfe,0xc6,0x3,0x3,0x3b,0x7f,0xc3,0xc3,0xc3,0xc7,0x7e,0x3c, -}; - -static const BitmapCharRec ch57 = {8,13,-1,0,10,ch57data}; - -/* char: 0x38 '8' */ - -static const GLubyte ch56data[] = { -0x3c,0x7e,0xe7,0xc3,0xc3,0x66,0x7e,0x66,0xc3,0xc3,0xe7,0x7e,0x3c, -}; - -static const BitmapCharRec ch56 = {8,13,-1,0,10,ch56data}; - -/* char: 0x37 '7' */ - -static const GLubyte ch55data[] = { -0x60,0x60,0x30,0x30,0x30,0x18,0x18,0xc,0xc,0x6,0x3,0xff,0xff, -}; - -static const BitmapCharRec ch55 = {8,13,-1,0,10,ch55data}; - -/* char: 0x36 '6' */ - -static const GLubyte ch54data[] = { -0x3c,0x7e,0xe3,0xc3,0xc3,0xc3,0xfe,0xdc,0xc0,0xc0,0x63,0x7f,0x3c, -}; - -static const BitmapCharRec ch54 = {8,13,-1,0,10,ch54data}; - -/* char: 0x35 '5' */ - -static const GLubyte ch53data[] = { -0x7c,0xfe,0xc7,0xc3,0x3,0x3,0xc7,0xfe,0xfc,0xc0,0xc0,0xfe,0xfe, -}; - -static const BitmapCharRec ch53 = {8,13,-1,0,10,ch53data}; - -/* char: 0x34 '4' */ - -static const GLubyte ch52data[] = { -0x3,0x0,0x3,0x0,0x3,0x0,0xff,0x80,0xff,0x80,0xc3,0x0,0x63,0x0,0x33,0x0, -0x33,0x0,0x1b,0x0,0xf,0x0,0x7,0x0,0x3,0x0, -}; - -static const BitmapCharRec ch52 = {9,13,-1,0,10,ch52data}; - -/* char: 0x33 '3' */ - -static const GLubyte ch51data[] = { -0x3c,0x7e,0xc7,0xc3,0x3,0x7,0x1e,0x1c,0x6,0xc3,0xc3,0x7e,0x3c, -}; - -static const BitmapCharRec ch51 = {8,13,-1,0,10,ch51data}; - -/* char: 0x32 '2' */ - -static const GLubyte ch50data[] = { -0xff,0xff,0xc0,0xe0,0x70,0x38,0x1c,0xe,0x7,0x3,0xc3,0xfe,0x3c, -}; - -static const BitmapCharRec ch50 = {8,13,-1,0,10,ch50data}; - -/* char: 0x31 '1' */ - -static const GLubyte ch49data[] = { -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0xf8,0x18, -}; - -static const BitmapCharRec ch49 = {5,13,-2,0,10,ch49data}; - -/* char: 0x30 '0' */ - -static const GLubyte ch48data[] = { -0x3c,0x7e,0x66,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x66,0x7e,0x3c, -}; - -static const BitmapCharRec ch48 = {8,13,-1,0,10,ch48data}; - -/* char: 0x2f '/' */ - -static const GLubyte ch47data[] = { -0xc0,0xc0,0x40,0x40,0x60,0x60,0x20,0x20,0x30,0x30,0x10,0x10,0x18,0x18, -}; - -static const BitmapCharRec ch47 = {5,14,0,0,5,ch47data}; - -/* char: 0x2e '.' */ - -static const GLubyte ch46data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch46 = {2,2,-1,0,5,ch46data}; - -/* char: 0x2d '-' */ - -static const GLubyte ch45data[] = { -0xff,0xff, -}; - -static const BitmapCharRec ch45 = {8,2,-1,-4,11,ch45data}; - -/* char: 0x2c ',' */ - -static const GLubyte ch44data[] = { -0x80,0x40,0x40,0xc0,0xc0, -}; - -static const BitmapCharRec ch44 = {2,5,-1,3,5,ch44data}; - -/* char: 0x2b '+' */ - -static const GLubyte ch43data[] = { -0x18,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18,0x18, -}; - -static const BitmapCharRec ch43 = {8,10,-1,0,10,ch43data}; - -/* char: 0x2a '*' */ - -static const GLubyte ch42data[] = { -0x88,0x70,0x70,0xf8,0x20,0x20, -}; - -static const BitmapCharRec ch42 = {5,6,-1,-8,7,ch42data}; - -/* char: 0x29 ')' */ - -static const GLubyte ch41data[] = { -0x80,0xc0,0x60,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0x60, -0xc0,0x80, -}; - -static const BitmapCharRec ch41 = {4,18,-1,4,6,ch41data}; - -/* char: 0x28 '(' */ - -static const GLubyte ch40data[] = { -0x10,0x30,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60,0x60, -0x30,0x10, -}; - -static const BitmapCharRec ch40 = {4,18,-1,4,6,ch40data}; - -/* char: 0x27 ''' */ - -static const GLubyte ch39data[] = { -0x80,0x40,0x40,0xc0,0xc0, -}; - -static const BitmapCharRec ch39 = {2,5,-1,-9,4,ch39data}; - -/* char: 0x26 '&' */ - -static const GLubyte ch38data[] = { -0x3c,0x70,0x7e,0xe0,0xe7,0xc0,0xc3,0x80,0xc3,0xc0,0xc6,0xc0,0xee,0xc0,0x7c,0x0, -0x3c,0x0,0x66,0x0,0x66,0x0,0x7e,0x0,0x3c,0x0, -}; - -static const BitmapCharRec ch38 = {12,13,-1,0,13,ch38data}; - -/* char: 0x25 '%' */ - -static const GLubyte ch37data[] = { -0x18,0x78,0x18,0xfc,0xc,0xcc,0xc,0xcc,0x6,0xfc,0x6,0x78,0x3,0x0,0x7b,0x0, -0xfd,0x80,0xcd,0x80,0xcc,0xc0,0xfc,0xc0,0x78,0x60, -}; - -static const BitmapCharRec ch37 = {14,13,-1,0,16,ch37data}; - -/* char: 0x24 '$' */ - -static const GLubyte ch36data[] = { -0x8,0x0,0x8,0x0,0x3e,0x0,0x7f,0x0,0xeb,0x80,0xc9,0x80,0x9,0x80,0xf,0x0, -0x3e,0x0,0x78,0x0,0xe8,0x0,0xc8,0x0,0xcb,0x0,0x7f,0x0,0x3e,0x0,0x8,0x0, -}; - -static const BitmapCharRec ch36 = {9,16,-1,2,10,ch36data}; - -/* char: 0x23 '#' */ - -static const GLubyte ch35data[] = { -0x24,0x0,0x24,0x0,0x24,0x0,0xff,0x80,0xff,0x80,0x12,0x0,0x12,0x0,0x12,0x0, -0x7f,0xc0,0x7f,0xc0,0x9,0x0,0x9,0x0,0x9,0x0, -}; - -static const BitmapCharRec ch35 = {10,13,0,0,10,ch35data}; - -/* char: 0x22 '"' */ - -static const GLubyte ch34data[] = { -0x90,0x90,0xd8,0xd8,0xd8, -}; - -static const BitmapCharRec ch34 = {5,5,0,-9,5,ch34data}; - -/* char: 0x21 '!' */ - -static const GLubyte ch33data[] = { -0xc0,0xc0,0x0,0x0,0x80,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -}; - -static const BitmapCharRec ch33 = {2,14,-2,0,6,ch33data}; - -/* char: 0x20 ' ' */ - -#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,5,ch32data}; -#else -static const BitmapCharRec ch32 = {0,0,0,0,5,0}; -#endif - -static const BitmapCharRec * const chars[] = { -&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, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -&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, -}; - -#if !defined(__IBMCPP__) -const -#endif -BitmapFontRec glutBitmapHelvetica18 = { -"-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1", -224, -32, -chars -}; - diff --git a/src/glut/os2/glut_init.cpp b/src/glut/os2/glut_init.cpp deleted file mode 100644 index 9e9f2e366e..0000000000 --- a/src/glut/os2/glut_init.cpp +++ /dev/null @@ -1,451 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997. */ - -/* 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. */ - -#ifdef __VMS -#include <GL/vms_x_fix.h> -#endif - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> - -#if !defined(_WIN32) && !defined(__OS2__) - #include <X11/Xlib.h> - #include <X11/Xatom.h> -#endif - -/* SGI optimization introduced in IRIX 6.3 to avoid X server - round trips for interning common X atoms. */ -#if defined(_SGI_EXTRA_PREDEFINES) && !defined(NO_FAST_ATOMS) -#include <X11/SGIFastAtom.h> -#else -#define XSGIFastInternAtom(dpy,string,fast_name,how) XInternAtom(dpy,string,how) -#endif - -#include "glutint.h" - -/* GLUT inter-file variables */ -/* *INDENT-OFF* */ -char *__glutProgramName = NULL; -int __glutArgc = 0; -char **__glutArgv = NULL; -char *__glutGeometry = NULL; -Display *__glutDisplay = NULL; -int __glutScreen; -Window __glutRoot; -int __glutScreenHeight; -int __glutScreenWidth; -GLboolean __glutIconic = GL_FALSE; -GLboolean __glutDebug = GL_FALSE; -unsigned int __glutDisplayMode = - GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH; -char *__glutDisplayString = NULL; -int __glutConnectionFD; -XSizeHints __glutSizeHints = {0}; -int __glutInitWidth = 300, __glutInitHeight = 300; -int __glutInitX = -1, __glutInitY = -1; -GLboolean __glutForceDirect = GL_FALSE, - __glutTryDirect = GL_TRUE; -Atom __glutWMDeleteWindow; -/* *INDENT-ON* */ - -#ifdef _WIN32 -void (__cdecl *__glutExitFunc)(int retval) = NULL; -#endif - -static Bool synchronize = False; - -#if defined(__OS2__) - -MRESULT EXPENTRY GlutWindowProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ); -MRESULT EXPENTRY GlutWindowChildProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ); - - -void __glutOpenOS2Connection(char* display) -{ - static char *classname=NULL; -extern HAB hab; /* PM anchor block handle */ -ERRORID erridErrorCode;/* last error id code */ -int ii; - - /* Make sure we register the window only once. */ - if(classname) - return; - - classname = "GLUT"; - - if ( !WinRegisterClass( hab, /* PM anchor block handle */ - classname,/* window class name */ - GlutWindowProc,/* address of window procedure*/ - CS_SIZEREDRAW, /* |CS_SYNCPAINT size changes cause redrawing */ - 0UL ) ) /* window data */ - { erridErrorCode = WinGetLastError(hab); - ii = erridErrorCode; - return; - } - - classname = "GLUTCHILD"; - - if ( !WinRegisterClass( hab, /* PM anchor block handle */ - classname,/* window class name */ - GlutWindowChildProc,/* address of window procedure*/ - CS_SIZEREDRAW, /* size changes cause redrawing */ - 0UL ) ) /* window data */ - { erridErrorCode = WinGetLastError(hab); - ii = erridErrorCode; - return; - } - - __glutScreenWidth = GetSystemMetrics(SM_CXSCREEN); - __glutScreenHeight = GetSystemMetrics(SM_CYSCREEN); - - /* Set the root window to NULL because windows creates a top-level - window when the parent is NULL. X creates a top-level window - when the parent is the root window. */ - __glutRoot = NULLHANDLE; - - /* Set the display to 1 -- we shouldn't be using this anywhere - (except as an argument to X calls). */ - __glutDisplay = (Display*)1; - - /* There isn't any concept of multiple screens in Win32, therefore, - we don't need to keep track of the screen we're on... it's always - the same one. */ - __glutScreen = 0; -} - -#elif defined(_WIN32) - -#ifdef __BORLANDC__ -#include <float.h> /* For masking floating point exceptions. */ -#endif - -void -__glutOpenWin32Connection(char* display) -{ - static char *classname; - WNDCLASS wc; - HINSTANCE hInstance = GetModuleHandle(NULL); - - /* Make sure we register the window only once. */ - if(classname) - return; - -#ifdef __BORLANDC__ - /* Under certain conditions (e.g. while rendering solid surfaces with - lighting enabled) Microsoft OpenGL libraries cause some illegal - operations like floating point overflow or division by zero. The - default behaviour of Microsoft compilers is to mask (ignore) - floating point exceptions, while Borland compilers do not. The - following function of Borland RTL allows to mask exceptions. - Advice from Pier Giorgio Esposito (mc2172@mclink.it). */ - _control87(MCW_EM,MCW_EM); -#endif - - classname = "GLUT"; - - /* Clear (important!) and then fill in the window class structure. */ - memset(&wc, 0, sizeof(WNDCLASS)); - wc.style = CS_OWNDC; - wc.lpfnWndProc = (WNDPROC)__glutWindowProc; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, "GLUT_ICON"); - wc.hCursor = LoadCursor(hInstance, IDC_ARROW); - wc.hbrBackground = NULL; - wc.lpszMenuName = NULL; - wc.lpszClassName = classname; - - /* Fill in a default icon if one isn't specified as a resource. */ - if(!wc.hIcon) - wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); - - if(!RegisterClass(&wc)) { - __glutFatalError("RegisterClass() failed:" - "Cannot register GLUT window class."); - } - - __glutScreenWidth = GetSystemMetrics(SM_CXSCREEN); - __glutScreenHeight = GetSystemMetrics(SM_CYSCREEN); - - /* Set the root window to NULL because windows creates a top-level - window when the parent is NULL. X creates a top-level window - when the parent is the root window. */ - __glutRoot = NULL; - - /* Set the display to 1 -- we shouldn't be using this anywhere - (except as an argument to X calls). */ - __glutDisplay = (Display*)1; - - /* There isn't any concept of multiple screens in Win32, therefore, - we don't need to keep track of the screen we're on... it's always - the same one. */ - __glutScreen = 0; -} -#else /* !_WIN32 */ -void -__glutOpenXConnection(char *display) -{ - int errorBase, eventBase; - - __glutDisplay = XOpenDisplay(display); - if (!__glutDisplay) - __glutFatalError("could not open display: %s", - XDisplayName(display)); - if (synchronize) - XSynchronize(__glutDisplay, True); - if (!glXQueryExtension(__glutDisplay, &errorBase, &eventBase)) - __glutFatalError( - "OpenGL GLX extension not supported by display: %s", - XDisplayName(display)); - __glutScreen = DefaultScreen(__glutDisplay); - __glutRoot = RootWindow(__glutDisplay, __glutScreen); - __glutScreenWidth = DisplayWidth(__glutDisplay, __glutScreen); - __glutScreenHeight = DisplayHeight(__glutDisplay, - __glutScreen); - __glutConnectionFD = ConnectionNumber(__glutDisplay); - __glutWMDeleteWindow = XSGIFastInternAtom(__glutDisplay, - "WM_DELETE_WINDOW", SGI_XA_WM_DELETE_WINDOW, False); -} -#endif /* _WIN32 */ - -void -#ifdef OLD_VMS - __glutInitTime(struct timeval6 *beginning) -#else - __glutInitTime(struct timeval *beginning) -#endif -{ - static int beenhere = 0; -#ifdef OLD_VMS - static struct timeval6 genesis; -#else - static struct timeval genesis; -#endif - - if (!beenhere) { - GETTIMEOFDAY(&genesis); - beenhere = 1; - } - *beginning = genesis; -} - -static void -removeArgs(int *argcp, char **argv, int numToRemove) -{ - int i, j; - - for (i = 0, j = numToRemove; argv[j]; i++, j++) { - argv[i] = argv[j]; - } - argv[i] = NULL; - *argcp -= numToRemove; -} - -void GLUTAPIENTRY -glutInit(int *argcp, char **argv) -{ - char *display = NULL; - char *str, *geometry = NULL; -#ifdef OLD_VMS - struct timeval6 unused; -#else - struct timeval unused; -#endif - int i; - - if (__glutDisplay) { - __glutWarning("glutInit being called a second time."); - return; - } - /* Determine temporary program name. */ - str = strrchr(argv[0], '/'); - if (str == NULL) { - __glutProgramName = argv[0]; - } else { - __glutProgramName = str + 1; - } - - /* Make private copy of command line arguments. */ - __glutArgc = *argcp; - __glutArgv = (char **) malloc(__glutArgc * sizeof(char *)); - if (!__glutArgv) - __glutFatalError("out of memory."); - for (i = 0; i < __glutArgc; i++) { - __glutArgv[i] = __glutStrdup(argv[i]); - if (!__glutArgv[i]) - __glutFatalError("out of memory."); - } - - /* determine permanent program name */ - str = strrchr(__glutArgv[0], '/'); - if (str == NULL) { - __glutProgramName = __glutArgv[0]; - } else { - __glutProgramName = str + 1; - } - - /* parse arguments for standard options */ - for (i = 1; i < __glutArgc; i++) { - if (!strcmp(__glutArgv[i], "-display")) { -#if defined(_WIN32) - __glutWarning("-display option not supported by Win32 GLUT."); -#endif - if (++i >= __glutArgc) { - __glutFatalError( - "follow -display option with X display name."); - } - display = __glutArgv[i]; - removeArgs(argcp, &argv[1], 2); - } else if (!strcmp(__glutArgv[i], "-geometry")) { - if (++i >= __glutArgc) { - __glutFatalError( - "follow -geometry option with geometry parameter."); - } - geometry = __glutArgv[i]; - removeArgs(argcp, &argv[1], 2); - } else if (!strcmp(__glutArgv[i], "-direct")) { -#if defined(_WIN32) - __glutWarning("-direct option not supported by Win32 GLUT."); -#endif - if (!__glutTryDirect) - __glutFatalError( - "cannot force both direct and indirect rendering."); - __glutForceDirect = GL_TRUE; - removeArgs(argcp, &argv[1], 1); - } else if (!strcmp(__glutArgv[i], "-indirect")) { -#if defined(_WIN32) - __glutWarning("-indirect option not supported by Win32 GLUT."); -#endif - if (__glutForceDirect) - __glutFatalError( - "cannot force both direct and indirect rendering."); - __glutTryDirect = GL_FALSE; - removeArgs(argcp, &argv[1], 1); - } else if (!strcmp(__glutArgv[i], "-iconic")) { - __glutIconic = GL_TRUE; - removeArgs(argcp, &argv[1], 1); - } else if (!strcmp(__glutArgv[i], "-gldebug")) { - __glutDebug = GL_TRUE; - removeArgs(argcp, &argv[1], 1); - } else if (!strcmp(__glutArgv[i], "-sync")) { -#if defined(_WIN32) - __glutWarning("-sync option not supported by Win32 GLUT."); -#endif - synchronize = GL_TRUE; - removeArgs(argcp, &argv[1], 1); - } else { - /* Once unknown option encountered, stop command line - processing. */ - break; - } - } -#if defined(__OS2__) - __glutOpenOS2Connection(display); -#elif defined(_WIN32) - __glutOpenWin32Connection(display); -#else - __glutOpenXConnection(display); -#endif - if (geometry) { - int flags, x, y, width, height; - - /* Fix bogus "{width|height} may be used before set" - warning */ - width = 0; - height = 0; - - flags = XParseGeometry(geometry, &x, &y, - (unsigned int *) &width, (unsigned int *) &height); - if (WidthValue & flags) { - /* Careful because X does not allow zero or negative - width windows */ - if (width > 0) - __glutInitWidth = width; - } - if (HeightValue & flags) { - /* Careful because X does not allow zero or negative - height windows */ - if (height > 0) - __glutInitHeight = height; - } - glutInitWindowSize(__glutInitWidth, __glutInitHeight); - if (XValue & flags) { - if (XNegative & flags) - x = DisplayWidth(__glutDisplay, __glutScreen) + - x - __glutSizeHints.width; - /* Play safe: reject negative X locations */ - if (x >= 0) - __glutInitX = x; - } - if (YValue & flags) { - if (YNegative & flags) - y = DisplayHeight(__glutDisplay, __glutScreen) + - y - __glutSizeHints.height; - /* Play safe: reject negative Y locations */ - if (y >= 0) - __glutInitY = y; - } - glutInitWindowPosition(__glutInitX, __glutInitY); - } - __glutInitTime(&unused); - - /* check if GLUT_FPS env var is set */ - { - const char *fps = getenv("GLUT_FPS"); - if (fps) { - sscanf(fps, "%d", &__glutFPS); - if (__glutFPS <= 0) - __glutFPS = 5000; /* 5000 milliseconds */ - } - } -} - -#ifdef _WIN32 -void APIENTRY -__glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)) -{ - __glutExitFunc = exitfunc; - glutInit(argcp, argv); -} -#endif - -/* CENTRY */ -void GLUTAPIENTRY -glutInitWindowPosition(int x, int y) -{ - __glutInitX = x; - __glutInitY = y; - if (x >= 0 && y >= 0) { - __glutSizeHints.x = x; - __glutSizeHints.y = y; - __glutSizeHints.flags |= USPosition; - } else { - __glutSizeHints.flags &= ~USPosition; - } -} - -void GLUTAPIENTRY -glutInitWindowSize(int width, int height) -{ - __glutInitWidth = width; - __glutInitHeight = height; - if (width > 0 && height > 0) { - __glutSizeHints.width = width; - __glutSizeHints.height = height; - __glutSizeHints.flags |= USSize; - } else { - __glutSizeHints.flags &= ~USSize; - } -} - -void GLUTAPIENTRY -glutInitDisplayMode(unsigned int mask) -{ - __glutDisplayMode = mask; -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_input.cpp b/src/glut/os2/glut_input.cpp deleted file mode 100644 index e65b691cb1..0000000000 --- a/src/glut/os2/glut_input.cpp +++ /dev/null @@ -1,628 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */ - -/* 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. */ - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "glutint.h" -#define POFIG 0 -#if POFIG - -int __glutNumDials = 0; -int __glutNumSpaceballButtons = 0; -int __glutNumButtonBoxButtons = 0; -int __glutNumTabletButtons = 0; -int __glutNumMouseButtons = 3; /* Good guess. */ -XDevice *__glutTablet = NULL; -XDevice *__glutDials = NULL; -XDevice *__glutSpaceball = NULL; - -int __glutHasJoystick = 0; -int __glutNumJoystickButtons = 0; -int __glutNumJoystickAxes = 0; - -#if !defined(_WIN32) -typedef struct _Range { - int min; - int range; -} Range; - -#define NUM_SPACEBALL_AXIS 6 -#define NUM_TABLET_AXIS 2 -#define NUM_DIALS_AXIS 8 - -Range __glutSpaceballRange[NUM_SPACEBALL_AXIS]; -Range __glutTabletRange[NUM_TABLET_AXIS]; -int *__glutDialsResolution; - -/* Safely assumes 0 is an illegal event type for X Input - extension events. */ -int __glutDeviceMotionNotify = 0; -int __glutDeviceButtonPress = 0; -int __glutDeviceButtonPressGrab = 0; -int __glutDeviceButtonRelease = 0; -int __glutDeviceStateNotify = 0; - -static int -normalizeTabletPos(int axis, int rawValue) -{ - assert(rawValue >= __glutTabletRange[axis].min); - assert(rawValue <= __glutTabletRange[axis].min - + __glutTabletRange[axis].range); - /* Normalize rawValue to between 0 and 4000. */ - return ((rawValue - __glutTabletRange[axis].min) * 4000) / - __glutTabletRange[axis].range; -} - -static int -normalizeDialAngle(int axis, int rawValue) -{ - /* XXX Assumption made that the resolution of the device is - number of clicks for one complete dial revolution. This - is true for SGI's dial & button box. */ - return (rawValue * 360.0) / __glutDialsResolution[axis]; -} - -static int -normalizeSpaceballAngle(int axis, int rawValue) -{ - assert(rawValue >= __glutSpaceballRange[axis].min); - assert(rawValue <= __glutSpaceballRange[axis].min + - __glutSpaceballRange[axis].range); - /* Normalize rawValue to between -1800 and 1800. */ - return ((rawValue - __glutSpaceballRange[axis].min) * 3600) / - __glutSpaceballRange[axis].range - 1800; -} - -static int -normalizeSpaceballDelta(int axis, int rawValue) -{ - assert(rawValue >= __glutSpaceballRange[axis].min); - assert(rawValue <= __glutSpaceballRange[axis].min + - __glutSpaceballRange[axis].range); - /* Normalize rawValue to between -1000 and 1000. */ - return ((rawValue - __glutSpaceballRange[axis].min) * 2000) / - __glutSpaceballRange[axis].range - 1000; -} - -static void -queryTabletPos(GLUTwindow * window) -{ - XDeviceState *state; - XInputClass *any; - XValuatorState *v; - int i; - - state = XQueryDeviceState(__glutDisplay, __glutTablet); - any = state->data; - for (i = 0; i < state->num_classes; i++) { -#if defined(__cplusplus) || defined(c_plusplus) - switch (any->c_class) { -#else - switch (any->class) { -#endif - case ValuatorClass: - v = (XValuatorState *) any; - if (v->num_valuators < 2) - goto end; - if (window->tabletPos[0] == -1) - window->tabletPos[0] = normalizeTabletPos(0, v->valuators[0]); - if (window->tabletPos[1] == -1) - window->tabletPos[1] = normalizeTabletPos(1, v->valuators[1]); - } - any = (XInputClass *) ((char *) any + any->length); - } -end: - XFreeDeviceState(state); -} - -static void -tabletPosChange(GLUTwindow * window, int first, int count, int *data) -{ - int i, value, genEvent = 0; - - for (i = first; i < first + count; i++) { - switch (i) { - case 0: /* X axis */ - case 1: /* Y axis */ - value = normalizeTabletPos(i, data[i - first]); - if (value != window->tabletPos[i]) { - window->tabletPos[i] = value; - genEvent = 1; - } - break; - } - } - if (window->tabletPos[0] == -1 || window->tabletPos[1] == -1) - queryTabletPos(window); - if (genEvent) - window->tabletMotion(window->tabletPos[0], window->tabletPos[1]); -} -#endif /* !_WIN32 */ - -static int -__glutProcessDeviceEvents(XEvent * event) -{ -#if !defined(_WIN32) - GLUTwindow *window; - - /* XXX Ugly code fan out. */ - - /* Can't use switch/case since X Input event types are - dynamic. */ - - if (__glutDeviceMotionNotify && event->type == __glutDeviceMotionNotify) { - XDeviceMotionEvent *devmot = (XDeviceMotionEvent *) event; - - window = __glutGetWindow(devmot->window); - if (window) { - if (__glutTablet - && devmot->deviceid == __glutTablet->device_id - && window->tabletMotion) { - tabletPosChange(window, devmot->first_axis, devmot->axes_count, - devmot->axis_data); - } else if (__glutDials - && devmot->deviceid == __glutDials->device_id - && window->dials) { - int i, first = devmot->first_axis, count = devmot->axes_count; - - for (i = first; i < first + count; i++) - window->dials(i + 1, - normalizeDialAngle(i, devmot->axis_data[i - first])); - } else if (__glutSpaceball - && devmot->deviceid == __glutSpaceball->device_id) { - /* XXX Assume that space ball motion events come in as - all the first 6 axes. Assume first 3 axes are XYZ - translations; second 3 axes are XYZ rotations. */ - if (devmot->first_axis == 0 && devmot->axes_count == 6) { - if (window->spaceMotion) - window->spaceMotion( - normalizeSpaceballDelta(0, devmot->axis_data[0]), - normalizeSpaceballDelta(1, devmot->axis_data[1]), - normalizeSpaceballDelta(2, devmot->axis_data[2])); - if (window->spaceRotate) - window->spaceRotate( - normalizeSpaceballAngle(3, devmot->axis_data[3]), - normalizeSpaceballAngle(4, devmot->axis_data[4]), - normalizeSpaceballAngle(5, devmot->axis_data[5])); - } - } - return 1; - } - } else if (__glutDeviceButtonPress - && event->type == __glutDeviceButtonPress) { - XDeviceButtonEvent *devbtn = (XDeviceButtonEvent *) event; - - window = __glutGetWindow(devbtn->window); - if (window) { - if (__glutTablet - && devbtn->deviceid == __glutTablet->device_id - && window->tabletButton - && devbtn->first_axis == 0 - && devbtn->axes_count == 2) { - tabletPosChange(window, devbtn->first_axis, devbtn->axes_count, - devbtn->axis_data); - window->tabletButton(devbtn->button, GLUT_DOWN, - window->tabletPos[0], window->tabletPos[1]); - } else if (__glutDials - && devbtn->deviceid == __glutDials->device_id - && window->buttonBox) { - window->buttonBox(devbtn->button, GLUT_DOWN); - } else if (__glutSpaceball - && devbtn->deviceid == __glutSpaceball->device_id - && window->spaceButton) { - window->spaceButton(devbtn->button, GLUT_DOWN); - } - return 1; - } - } else if (__glutDeviceButtonRelease - && event->type == __glutDeviceButtonRelease) { - XDeviceButtonEvent *devbtn = (XDeviceButtonEvent *) event; - - window = __glutGetWindow(devbtn->window); - if (window) { - if (__glutTablet - && devbtn->deviceid == __glutTablet->device_id - && window->tabletButton - && devbtn->first_axis == 0 - && devbtn->axes_count == 2) { - tabletPosChange(window, devbtn->first_axis, devbtn->axes_count, - devbtn->axis_data); - window->tabletButton(devbtn->button, GLUT_UP, - window->tabletPos[0], window->tabletPos[1]); - } else if (__glutDials - && devbtn->deviceid == __glutDials->device_id - && window->buttonBox) { - window->buttonBox(devbtn->button, GLUT_UP); - } else if (__glutSpaceball - && devbtn->deviceid == __glutSpaceball->device_id - && window->spaceButton) { - window->spaceButton(devbtn->button, GLUT_UP); - } - return 1; - } - } -#else - { - JOYINFOEX info; - JOYCAPS joyCaps; - - memset(&info, 0, sizeof(JOYINFOEX)); - info.dwSize = sizeof(JOYINFOEX); - info.dwFlags = JOY_RETURNALL; - - if (joyGetPosEx(JOYSTICKID1,&info) != JOYERR_NOERROR) { - __glutHasJoystick = 1; - joyGetDevCaps(JOYSTICKID1, &joyCaps, sizeof(joyCaps)); - __glutNumJoystickButtons = joyCaps.wNumButtons; - __glutNumJoystickAxes = joyCaps.wNumAxes; - } else { - __glutHasJoystick = 0; - __glutNumJoystickButtons = 0; - __glutNumJoystickAxes = 0; - } - } -#endif /* !_WIN32 */ - return 0; -} - -static GLUTeventParser eventParser = -{__glutProcessDeviceEvents, NULL}; - -static void -addDeviceEventParser(void) -{ - static Bool been_here = False; - - if (been_here) - return; - been_here = True; - __glutRegisterEventParser(&eventParser); -} - -static int -probeDevices(void) -{ - static Bool been_here = False; - static int support; -#if !defined(_WIN32) - XExtensionVersion *version; - XDeviceInfoPtr device_info, device; - XAnyClassPtr any; - XButtonInfoPtr b; - XValuatorInfoPtr v; - XAxisInfoPtr a; - int num_dev = 0, btns = 0, dials = 0; - int i, j, k; -#endif /* !_WIN32 */ - - if (been_here) { - return support; - } - been_here = True; - -#if !defined(_WIN32) - version = XGetExtensionVersion(__glutDisplay, "XInputExtension"); - /* Ugh. XInput extension API forces annoying cast of a pointer - to a long so it can be compared with the NoSuchExtension - value (#defined to 1). */ - if (version == NULL || ((long) version) == NoSuchExtension) { - support = 0; - return support; - } - XFree(version); - device_info = XListInputDevices(__glutDisplay, &num_dev); - if (device_info) { - for (i = 0; i < num_dev; i++) { - /* XXX These are SGI names for these devices; - unfortunately, no good standard exists for standard - types of X input extension devices. */ - - device = &device_info[i]; - any = (XAnyClassPtr) device->inputclassinfo; - - if (!__glutSpaceball && !strcmp(device->name, "spaceball")) { - v = NULL; - b = NULL; - for (j = 0; j < device->num_classes; j++) { -#if defined(__cplusplus) || defined(c_plusplus) - switch (any->c_class) { -#else - switch (any->class) { -#endif - case ButtonClass: - b = (XButtonInfoPtr) any; - btns = b->num_buttons; - break; - case ValuatorClass: - v = (XValuatorInfoPtr) any; - /* Sanity check: at least 6 valuators? */ - if (v->num_axes < NUM_SPACEBALL_AXIS) - goto skip_device; - a = (XAxisInfoPtr) ((char *) v + sizeof(XValuatorInfo)); - for (k = 0; k < NUM_SPACEBALL_AXIS; k++, a++) { - __glutSpaceballRange[k].min = a->min_value; - __glutSpaceballRange[k].range = a->max_value - a->min_value; - } - break; - } - any = (XAnyClassPtr) ((char *) any + any->length); - } - if (v) { - __glutSpaceball = XOpenDevice(__glutDisplay, device->id); - if (__glutSpaceball) { - __glutNumSpaceballButtons = btns; - addDeviceEventParser(); - } - } - } else if (!__glutDials && !strcmp(device->name, "dial+buttons")) { - v = NULL; - b = NULL; - for (j = 0; j < device->num_classes; j++) { -#if defined(__cplusplus) || defined(c_plusplus) - switch (any->c_class) { -#else - switch (any->class) { -#endif - case ButtonClass: - b = (XButtonInfoPtr) any; - btns = b->num_buttons; - break; - case ValuatorClass: - v = (XValuatorInfoPtr) any; - /* Sanity check: at least 8 valuators? */ - if (v->num_axes < NUM_DIALS_AXIS) - goto skip_device; - dials = v->num_axes; - __glutDialsResolution = (int *) malloc(sizeof(int) * dials); - a = (XAxisInfoPtr) ((char *) v + sizeof(XValuatorInfo)); - for (k = 0; k < dials; k++, a++) { - __glutDialsResolution[k] = a->resolution; - } - break; - } - any = (XAnyClassPtr) ((char *) any + any->length); - } - if (v) { - __glutDials = XOpenDevice(__glutDisplay, device->id); - if (__glutDials) { - __glutNumButtonBoxButtons = btns; - __glutNumDials = dials; - addDeviceEventParser(); - } - } - } else if (!__glutTablet && !strcmp(device->name, "tablet")) { - v = NULL; - b = NULL; - for (j = 0; j < device->num_classes; j++) { -#if defined(__cplusplus) || defined(c_plusplus) - switch (any->c_class) { -#else - switch (any->class) { -#endif - case ButtonClass: - b = (XButtonInfoPtr) any; - btns = b->num_buttons; - break; - case ValuatorClass: - v = (XValuatorInfoPtr) any; - /* Sanity check: exactly 2 valuators? */ - if (v->num_axes != NUM_TABLET_AXIS) - goto skip_device; - a = (XAxisInfoPtr) ((char *) v + sizeof(XValuatorInfo)); - for (k = 0; k < NUM_TABLET_AXIS; k++, a++) { - __glutTabletRange[k].min = a->min_value; - __glutTabletRange[k].range = a->max_value - a->min_value; - } - break; - } - any = (XAnyClassPtr) ((char *) any + any->length); - } - if (v) { - __glutTablet = XOpenDevice(__glutDisplay, device->id); - if (__glutTablet) { - __glutNumTabletButtons = btns; - addDeviceEventParser(); - } - } - } else if (!strcmp(device->name, "mouse")) { - for (j = 0; j < device->num_classes; j++) { -#if defined(__cplusplus) || defined(c_plusplus) - if (any->c_class == ButtonClass) { -#else - if (any->class == ButtonClass) { -#endif - b = (XButtonInfoPtr) any; - __glutNumMouseButtons = b->num_buttons; - } - any = (XAnyClassPtr) ((char *) any + any->length); - } - } - skip_device:; - } - XFreeDeviceList(device_info); - } -#else /* _WIN32 */ - __glutNumMouseButtons = GetSystemMetrics(SM_CMOUSEBUTTONS); -#endif /* !_WIN32 */ - /* X Input extension might be supported, but only if there is - a tablet, dials, or spaceball do we claim devices are - supported. */ - support = __glutTablet || __glutDials || __glutSpaceball; - return support; -} - -void -__glutUpdateInputDeviceMask(GLUTwindow * window) -{ -#if !defined(_WIN32) - /* 5 (dial and buttons) + 5 (tablet locator and buttons) + 5 - (Spaceball buttons and axis) = 15 */ - XEventClass eventList[15]; - int rc, numEvents; - - rc = probeDevices(); - if (rc) { - numEvents = 0; - if (__glutTablet) { - if (window->tabletMotion) { - DeviceMotionNotify(__glutTablet, __glutDeviceMotionNotify, - eventList[numEvents]); - numEvents++; - } - if (window->tabletButton) { - DeviceButtonPress(__glutTablet, __glutDeviceButtonPress, - eventList[numEvents]); - numEvents++; - DeviceButtonPressGrab(__glutTablet, __glutDeviceButtonPressGrab, - eventList[numEvents]); - numEvents++; - DeviceButtonRelease(__glutTablet, __glutDeviceButtonRelease, - eventList[numEvents]); - numEvents++; - } - if (window->tabletMotion || window->tabletButton) { - DeviceStateNotify(__glutTablet, __glutDeviceStateNotify, - eventList[numEvents]); - numEvents++; - } - } - if (__glutDials) { - if (window->dials) { - DeviceMotionNotify(__glutDials, __glutDeviceMotionNotify, - eventList[numEvents]); - numEvents++; - } - if (window->buttonBox) { - DeviceButtonPress(__glutDials, __glutDeviceButtonPress, - eventList[numEvents]); - numEvents++; - DeviceButtonPressGrab(__glutDials, __glutDeviceButtonPressGrab, - eventList[numEvents]); - numEvents++; - DeviceButtonRelease(__glutDials, __glutDeviceButtonRelease, - eventList[numEvents]); - numEvents++; - } - if (window->dials || window->buttonBox) { - DeviceStateNotify(__glutDials, __glutDeviceStateNotify, - eventList[numEvents]); - numEvents++; - } - } - if (__glutSpaceball) { - if (window->spaceMotion || window->spaceRotate) { - DeviceMotionNotify(__glutSpaceball, __glutDeviceMotionNotify, - eventList[numEvents]); - numEvents++; - } - if (window->spaceButton) { - DeviceButtonPress(__glutSpaceball, __glutDeviceButtonPress, - eventList[numEvents]); - numEvents++; - DeviceButtonPressGrab(__glutSpaceball, __glutDeviceButtonPressGrab, - eventList[numEvents]); - numEvents++; - DeviceButtonRelease(__glutSpaceball, __glutDeviceButtonRelease, - eventList[numEvents]); - numEvents++; - } - if (window->spaceMotion || window->spaceRotate || window->spaceButton) { - DeviceStateNotify(__glutSpaceball, __glutDeviceStateNotify, - eventList[numEvents]); - numEvents++; - } - } -#if 0 - if (window->children) { - GLUTwindow *child = window->children; - - do { - XChangeDeviceDontPropagateList(__glutDisplay, child->win, - numEvents, eventList, AddToList); - child = child->siblings; - } while (child); - } -#endif - XSelectExtensionEvent(__glutDisplay, window->win, - eventList, numEvents); - if (window->overlay) { - XSelectExtensionEvent(__glutDisplay, window->overlay->win, - eventList, numEvents); - } - } else { - /* X Input extension not supported; no chance for exotic - input devices. */ - } -#endif /* !_WIN32 */ -} - -#endif //POFIG - -/* CENTRY */ -int GLUTAPIENTRY -glutDeviceGet(GLenum param) -{ -#if POFIG - probeDevices(); -#endif - switch (param) { - case GLUT_HAS_KEYBOARD: - case GLUT_HAS_MOUSE: - /* Assume window system always has mouse and keyboard. */ - return 1; -#if POFIG - case GLUT_HAS_SPACEBALL: - return __glutSpaceball != NULL; - case GLUT_HAS_DIAL_AND_BUTTON_BOX: - return __glutDials != NULL; - case GLUT_HAS_TABLET: - return __glutTablet != NULL; - case GLUT_NUM_MOUSE_BUTTONS: - return __glutNumMouseButtons; - case GLUT_NUM_SPACEBALL_BUTTONS: - return __glutNumSpaceballButtons; - case GLUT_NUM_BUTTON_BOX_BUTTONS: - return __glutNumButtonBoxButtons; - case GLUT_NUM_DIALS: - return __glutNumDials; - case GLUT_NUM_TABLET_BUTTONS: - return __glutNumTabletButtons; - case GLUT_DEVICE_IGNORE_KEY_REPEAT: - return __glutCurrentWindow->ignoreKeyRepeat; -#ifndef _WIN32 - case GLUT_DEVICE_KEY_REPEAT: - { - XKeyboardState state; - - XGetKeyboardControl(__glutDisplay, &state); - return state.global_auto_repeat; - } - case GLUT_JOYSTICK_POLL_RATE: - return 0; -#else - case GLUT_DEVICE_KEY_REPEAT: - /* Win32 cannot globally disable key repeat. */ - return GLUT_KEY_REPEAT_ON; - case GLUT_JOYSTICK_POLL_RATE: - return __glutCurrentWindow->joyPollInterval; -#endif - case GLUT_HAS_JOYSTICK: - return __glutHasJoystick; - case GLUT_JOYSTICK_BUTTONS: - return __glutNumJoystickButtons; - case GLUT_JOYSTICK_AXES: - return __glutNumJoystickAxes; -#endif //POFIG - default: - __glutWarning("invalid glutDeviceGet parameter: %d", param); - return -1; - } -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_key.cpp b/src/glut/os2/glut_key.cpp deleted file mode 100644 index 3e1f7e52c1..0000000000 --- a/src/glut/os2/glut_key.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1997. */ - -/* 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. */ - -#include <stdlib.h> - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutKeyboardFunc(GLUTkeyboardCB keyboardFunc) -{ - __glutChangeWindowEventMask(KeyPressMask, - keyboardFunc != NULL || __glutCurrentWindow->special != NULL); - __glutCurrentWindow->keyboard = keyboardFunc; -} - -void GLUTAPIENTRY -glutSpecialFunc(GLUTspecialCB specialFunc) -{ - __glutChangeWindowEventMask(KeyPressMask, - specialFunc != NULL || __glutCurrentWindow->keyboard != NULL); - __glutCurrentWindow->special = specialFunc; -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_keyctrl.cpp b/src/glut/os2/glut_keyctrl.cpp deleted file mode 100644 index ddac630509..0000000000 --- a/src/glut/os2/glut_keyctrl.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1996, 1997. */ - -/* 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. */ - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutIgnoreKeyRepeat(int ignore) -{ - __glutCurrentWindow->ignoreKeyRepeat = ignore; -} - -void GLUTAPIENTRY -glutSetKeyRepeat(int repeatMode) -{ -#if !defined(_WIN32) && !defined(__OS2PM__) - XKeyboardControl values; - - /* GLUT's repeatMode #define's match the Xlib API values. */ - values.auto_repeat_mode = repeatMode; - XChangeKeyboardControl(__glutDisplay, KBAutoRepeatMode, &values); -#endif -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_keyup.cpp b/src/glut/os2/glut_keyup.cpp deleted file mode 100644 index c33770f1be..0000000000 --- a/src/glut/os2/glut_keyup.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1997. */ - -/* 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. */ - -#include <stdlib.h> - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutKeyboardUpFunc(GLUTkeyboardCB keyboardUpFunc) -{ - __glutChangeWindowEventMask(KeyReleaseMask, - keyboardUpFunc != NULL || __glutCurrentWindow->specialUp != NULL); - __glutCurrentWindow->keyboardUp = keyboardUpFunc; -} - -void GLUTAPIENTRY -glutSpecialUpFunc(GLUTspecialCB specialUpFunc) -{ - __glutChangeWindowEventMask(KeyReleaseMask, - specialUpFunc != NULL || __glutCurrentWindow->keyboardUp != NULL); - __glutCurrentWindow->specialUp = specialUpFunc; -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_mesa.cpp b/src/glut/os2/glut_mesa.cpp deleted file mode 100644 index 7e202fa078..0000000000 --- a/src/glut/os2/glut_mesa.cpp +++ /dev/null @@ -1,57 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1996. */ - -/* 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. */ - -#include <stdlib.h> -#include <string.h> -#include "glutint.h" - -int __glutMesaSwapHackSupport = 0; /* Not supported until - proven otherwise. */ - -/* Use the "Mesa swap hack" if reasonable if and only if - MESA_SWAP_HACK is set to something whose first character is - not "N" or "n" AND "Brian Paul" is the vendor string AND - "Mesa X11"* (or "Mesa" for backward compatibility) is the - renderer string. - - Anyone who modifies Mesa so that glXSwapBuffers does not - simply blit the previously rendered back buffer should - change either their vendor or renderer string to avoid - confusing GLUT. */ - -void -__glutDetermineMesaSwapHackSupport(void) -{ - static int doneAlready = 0; - char *env, *vendor, *renderer; - - if (doneAlready) - return; - env = getenv("MESA_SWAP_HACK"); - if (env) { - if ((env[0] != 'n') && (env[0] != 'N')) { - vendor = (char *) glGetString(GL_VENDOR); - renderer = (char *) glGetString(GL_RENDERER); - - /* Old versions of X11 Mesa uses the renderer string - "Mesa"; Brian plans to start using "Mesa X11" to - distinguish the X version of Mesa from other flavor - such as Windows or 3Dfx. */ - -#define MESA_X11 "Mesa X11" - - /* XXX At some point in the future, eliminate the - backward compatibility for the old "Mesa" renderer - string. */ - - if (!strcmp(vendor, "Brian Paul") && (!strcmp(renderer, "Mesa") || - !strncmp(renderer, MESA_X11, sizeof(MESA_X11) - 1))) - __glutMesaSwapHackSupport = 1; - } - } - doneAlready = 1; -} diff --git a/src/glut/os2/glut_modifier.cpp b/src/glut/os2/glut_modifier.cpp deleted file mode 100644 index 7e0e67a21f..0000000000 --- a/src/glut/os2/glut_modifier.cpp +++ /dev/null @@ -1,31 +0,0 @@ - -/* 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. */ - -#include "glutint.h" - -/* CENTRY */ -int GLUTAPIENTRY -glutGetModifiers(void) -{ - int modifiers; - - if(__glutModifierMask == (unsigned int) ~0) { - __glutWarning( - "glutCurrentModifiers: do not call outside core input callback."); - return 0; - } - modifiers = 0; - if(__glutModifierMask & (ShiftMask|LockMask)) - modifiers |= GLUT_ACTIVE_SHIFT; - if(__glutModifierMask & ControlMask) - modifiers |= GLUT_ACTIVE_CTRL; - if(__glutModifierMask & Mod1Mask) - modifiers |= GLUT_ACTIVE_ALT; - return modifiers; -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_roman.cpp b/src/glut/os2/glut_roman.cpp deleted file mode 100644 index af2b4ec956..0000000000 --- a/src/glut/os2/glut_roman.cpp +++ /dev/null @@ -1,2451 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#include "glutstroke.h" - -/* char: 33 '!' */ - -static const CoordRec char33_stroke0[] = { - { 13.3819, 100 }, - { 13.3819, 33.3333 }, -}; - -static const CoordRec char33_stroke1[] = { - { 13.3819, 9.5238 }, - { 8.62, 4.7619 }, - { 13.3819, 0 }, - { 18.1438, 4.7619 }, - { 13.3819, 9.5238 }, -}; - -static const StrokeRec char33[] = { - { 2, char33_stroke0 }, - { 5, char33_stroke1 }, -}; - -/* char: 34 '"' */ - -static const CoordRec char34_stroke0[] = { - { 4.02, 100 }, - { 4.02, 66.6667 }, -}; - -static const CoordRec char34_stroke1[] = { - { 42.1152, 100 }, - { 42.1152, 66.6667 }, -}; - -static const StrokeRec char34[] = { - { 2, char34_stroke0 }, - { 2, char34_stroke1 }, -}; - -/* char: 35 '#' */ - -static const CoordRec char35_stroke0[] = { - { 41.2952, 119.048 }, - { 7.9619, -33.3333 }, -}; - -static const CoordRec char35_stroke1[] = { - { 69.8667, 119.048 }, - { 36.5333, -33.3333 }, -}; - -static const CoordRec char35_stroke2[] = { - { 7.9619, 57.1429 }, - { 74.6286, 57.1429 }, -}; - -static const CoordRec char35_stroke3[] = { - { 3.2, 28.5714 }, - { 69.8667, 28.5714 }, -}; - -static const StrokeRec char35[] = { - { 2, char35_stroke0 }, - { 2, char35_stroke1 }, - { 2, char35_stroke2 }, - { 2, char35_stroke3 }, -}; - -/* char: 36 '$' */ - -static const CoordRec char36_stroke0[] = { - { 28.6295, 119.048 }, - { 28.6295, -19.0476 }, -}; - -static const CoordRec char36_stroke1[] = { - { 47.6771, 119.048 }, - { 47.6771, -19.0476 }, -}; - -static const CoordRec char36_stroke2[] = { - { 71.4867, 85.7143 }, - { 61.9629, 95.2381 }, - { 47.6771, 100 }, - { 28.6295, 100 }, - { 14.3438, 95.2381 }, - { 4.82, 85.7143 }, - { 4.82, 76.1905 }, - { 9.5819, 66.6667 }, - { 14.3438, 61.9048 }, - { 23.8676, 57.1429 }, - { 52.439, 47.619 }, - { 61.9629, 42.8571 }, - { 66.7248, 38.0952 }, - { 71.4867, 28.5714 }, - { 71.4867, 14.2857 }, - { 61.9629, 4.7619 }, - { 47.6771, 0 }, - { 28.6295, 0 }, - { 14.3438, 4.7619 }, - { 4.82, 14.2857 }, -}; - -static const StrokeRec char36[] = { - { 2, char36_stroke0 }, - { 2, char36_stroke1 }, - { 20, char36_stroke2 }, -}; - -/* char: 37 '%' */ - -static const CoordRec char37_stroke0[] = { - { 92.0743, 100 }, - { 6.36, 0 }, -}; - -static const CoordRec char37_stroke1[] = { - { 30.1695, 100 }, - { 39.6933, 90.4762 }, - { 39.6933, 80.9524 }, - { 34.9314, 71.4286 }, - { 25.4076, 66.6667 }, - { 15.8838, 66.6667 }, - { 6.36, 76.1905 }, - { 6.36, 85.7143 }, - { 11.1219, 95.2381 }, - { 20.6457, 100 }, - { 30.1695, 100 }, - { 39.6933, 95.2381 }, - { 53.979, 90.4762 }, - { 68.2648, 90.4762 }, - { 82.5505, 95.2381 }, - { 92.0743, 100 }, -}; - -static const CoordRec char37_stroke2[] = { - { 73.0267, 33.3333 }, - { 63.5029, 28.5714 }, - { 58.741, 19.0476 }, - { 58.741, 9.5238 }, - { 68.2648, 0 }, - { 77.7886, 0 }, - { 87.3124, 4.7619 }, - { 92.0743, 14.2857 }, - { 92.0743, 23.8095 }, - { 82.5505, 33.3333 }, - { 73.0267, 33.3333 }, -}; - -static const StrokeRec char37[] = { - { 2, char37_stroke0 }, - { 16, char37_stroke1 }, - { 11, char37_stroke2 }, -}; - -/* char: 38 '&' */ - -static const CoordRec char38_stroke0[] = { - { 101.218, 57.1429 }, - { 101.218, 61.9048 }, - { 96.4562, 66.6667 }, - { 91.6943, 66.6667 }, - { 86.9324, 61.9048 }, - { 82.1705, 52.381 }, - { 72.6467, 28.5714 }, - { 63.1229, 14.2857 }, - { 53.599, 4.7619 }, - { 44.0752, 0 }, - { 25.0276, 0 }, - { 15.5038, 4.7619 }, - { 10.7419, 9.5238 }, - { 5.98, 19.0476 }, - { 5.98, 28.5714 }, - { 10.7419, 38.0952 }, - { 15.5038, 42.8571 }, - { 48.8371, 61.9048 }, - { 53.599, 66.6667 }, - { 58.361, 76.1905 }, - { 58.361, 85.7143 }, - { 53.599, 95.2381 }, - { 44.0752, 100 }, - { 34.5514, 95.2381 }, - { 29.7895, 85.7143 }, - { 29.7895, 76.1905 }, - { 34.5514, 61.9048 }, - { 44.0752, 47.619 }, - { 67.8848, 14.2857 }, - { 77.4086, 4.7619 }, - { 86.9324, 0 }, - { 96.4562, 0 }, - { 101.218, 4.7619 }, - { 101.218, 9.5238 }, -}; - -static const StrokeRec char38[] = { - { 34, char38_stroke0 }, -}; - -/* char: 39 ''' */ - -static const CoordRec char39_stroke0[] = { - { 4.44, 100 }, - { 4.44, 66.6667 }, -}; - -static const StrokeRec char39[] = { - { 2, char39_stroke0 }, -}; - -/* char: 40 '(' */ - -static const CoordRec char40_stroke0[] = { - { 40.9133, 119.048 }, - { 31.3895, 109.524 }, - { 21.8657, 95.2381 }, - { 12.3419, 76.1905 }, - { 7.58, 52.381 }, - { 7.58, 33.3333 }, - { 12.3419, 9.5238 }, - { 21.8657, -9.5238 }, - { 31.3895, -23.8095 }, - { 40.9133, -33.3333 }, -}; - -static const StrokeRec char40[] = { - { 10, char40_stroke0 }, -}; - -/* char: 41 ')' */ - -static const CoordRec char41_stroke0[] = { - { 5.28, 119.048 }, - { 14.8038, 109.524 }, - { 24.3276, 95.2381 }, - { 33.8514, 76.1905 }, - { 38.6133, 52.381 }, - { 38.6133, 33.3333 }, - { 33.8514, 9.5238 }, - { 24.3276, -9.5238 }, - { 14.8038, -23.8095 }, - { 5.28, -33.3333 }, -}; - -static const StrokeRec char41[] = { - { 10, char41_stroke0 }, -}; - -/* char: 42 '*' */ - -static const CoordRec char42_stroke0[] = { - { 30.7695, 71.4286 }, - { 30.7695, 14.2857 }, -}; - -static const CoordRec char42_stroke1[] = { - { 6.96, 57.1429 }, - { 54.579, 28.5714 }, -}; - -static const CoordRec char42_stroke2[] = { - { 54.579, 57.1429 }, - { 6.96, 28.5714 }, -}; - -static const StrokeRec char42[] = { - { 2, char42_stroke0 }, - { 2, char42_stroke1 }, - { 2, char42_stroke2 }, -}; - -/* char: 43 '+' */ - -static const CoordRec char43_stroke0[] = { - { 48.8371, 85.7143 }, - { 48.8371, 0 }, -}; - -static const CoordRec char43_stroke1[] = { - { 5.98, 42.8571 }, - { 91.6943, 42.8571 }, -}; - -static const StrokeRec char43[] = { - { 2, char43_stroke0 }, - { 2, char43_stroke1 }, -}; - -/* char: 44 ',' */ - -static const CoordRec char44_stroke0[] = { - { 18.2838, 4.7619 }, - { 13.5219, 0 }, - { 8.76, 4.7619 }, - { 13.5219, 9.5238 }, - { 18.2838, 4.7619 }, - { 18.2838, -4.7619 }, - { 13.5219, -14.2857 }, - { 8.76, -19.0476 }, -}; - -static const StrokeRec char44[] = { - { 8, char44_stroke0 }, -}; - -/* char: 45 '-' */ - -static const CoordRec char45_stroke0[] = { - { 7.38, 42.8571 }, - { 93.0943, 42.8571 }, -}; - -static const StrokeRec char45[] = { - { 2, char45_stroke0 }, -}; - -/* char: 46 '.' */ - -static const CoordRec char46_stroke0[] = { - { 13.1019, 9.5238 }, - { 8.34, 4.7619 }, - { 13.1019, 0 }, - { 17.8638, 4.7619 }, - { 13.1019, 9.5238 }, -}; - -static const StrokeRec char46[] = { - { 5, char46_stroke0 }, -}; - -/* char: 47 '/' */ - -static const CoordRec char47_stroke0[] = { - { 7.24, -14.2857 }, - { 73.9067, 100 }, -}; - -static const StrokeRec char47[] = { - { 2, char47_stroke0 }, -}; - -/* char: 48 '0' */ - -static const CoordRec char48_stroke0[] = { - { 33.5514, 100 }, - { 19.2657, 95.2381 }, - { 9.7419, 80.9524 }, - { 4.98, 57.1429 }, - { 4.98, 42.8571 }, - { 9.7419, 19.0476 }, - { 19.2657, 4.7619 }, - { 33.5514, 0 }, - { 43.0752, 0 }, - { 57.361, 4.7619 }, - { 66.8848, 19.0476 }, - { 71.6467, 42.8571 }, - { 71.6467, 57.1429 }, - { 66.8848, 80.9524 }, - { 57.361, 95.2381 }, - { 43.0752, 100 }, - { 33.5514, 100 }, -}; - -static const StrokeRec char48[] = { - { 17, char48_stroke0 }, -}; - -/* char: 49 '1' */ - -static const CoordRec char49_stroke0[] = { - { 11.82, 80.9524 }, - { 21.3438, 85.7143 }, - { 35.6295, 100 }, - { 35.6295, 0 }, -}; - -static const StrokeRec char49[] = { - { 4, char49_stroke0 }, -}; - -/* char: 50 '2' */ - -static const CoordRec char50_stroke0[] = { - { 10.1819, 76.1905 }, - { 10.1819, 80.9524 }, - { 14.9438, 90.4762 }, - { 19.7057, 95.2381 }, - { 29.2295, 100 }, - { 48.2771, 100 }, - { 57.801, 95.2381 }, - { 62.5629, 90.4762 }, - { 67.3248, 80.9524 }, - { 67.3248, 71.4286 }, - { 62.5629, 61.9048 }, - { 53.039, 47.619 }, - { 5.42, 0 }, - { 72.0867, 0 }, -}; - -static const StrokeRec char50[] = { - { 14, char50_stroke0 }, -}; - -/* char: 51 '3' */ - -static const CoordRec char51_stroke0[] = { - { 14.5238, 100 }, - { 66.9048, 100 }, - { 38.3333, 61.9048 }, - { 52.619, 61.9048 }, - { 62.1429, 57.1429 }, - { 66.9048, 52.381 }, - { 71.6667, 38.0952 }, - { 71.6667, 28.5714 }, - { 66.9048, 14.2857 }, - { 57.381, 4.7619 }, - { 43.0952, 0 }, - { 28.8095, 0 }, - { 14.5238, 4.7619 }, - { 9.7619, 9.5238 }, - { 5, 19.0476 }, -}; - -static const StrokeRec char51[] = { - { 15, char51_stroke0 }, -}; - -/* char: 52 '4' */ - -static const CoordRec char52_stroke0[] = { - { 51.499, 100 }, - { 3.88, 33.3333 }, - { 75.3086, 33.3333 }, -}; - -static const CoordRec char52_stroke1[] = { - { 51.499, 100 }, - { 51.499, 0 }, -}; - -static const StrokeRec char52[] = { - { 3, char52_stroke0 }, - { 2, char52_stroke1 }, -}; - -/* char: 53 '5' */ - -static const CoordRec char53_stroke0[] = { - { 62.0029, 100 }, - { 14.3838, 100 }, - { 9.6219, 57.1429 }, - { 14.3838, 61.9048 }, - { 28.6695, 66.6667 }, - { 42.9552, 66.6667 }, - { 57.241, 61.9048 }, - { 66.7648, 52.381 }, - { 71.5267, 38.0952 }, - { 71.5267, 28.5714 }, - { 66.7648, 14.2857 }, - { 57.241, 4.7619 }, - { 42.9552, 0 }, - { 28.6695, 0 }, - { 14.3838, 4.7619 }, - { 9.6219, 9.5238 }, - { 4.86, 19.0476 }, -}; - -static const StrokeRec char53[] = { - { 17, char53_stroke0 }, -}; - -/* char: 54 '6' */ - -static const CoordRec char54_stroke0[] = { - { 62.7229, 85.7143 }, - { 57.961, 95.2381 }, - { 43.6752, 100 }, - { 34.1514, 100 }, - { 19.8657, 95.2381 }, - { 10.3419, 80.9524 }, - { 5.58, 57.1429 }, - { 5.58, 33.3333 }, - { 10.3419, 14.2857 }, - { 19.8657, 4.7619 }, - { 34.1514, 0 }, - { 38.9133, 0 }, - { 53.199, 4.7619 }, - { 62.7229, 14.2857 }, - { 67.4848, 28.5714 }, - { 67.4848, 33.3333 }, - { 62.7229, 47.619 }, - { 53.199, 57.1429 }, - { 38.9133, 61.9048 }, - { 34.1514, 61.9048 }, - { 19.8657, 57.1429 }, - { 10.3419, 47.619 }, - { 5.58, 33.3333 }, -}; - -static const StrokeRec char54[] = { - { 23, char54_stroke0 }, -}; - -/* char: 55 '7' */ - -static const CoordRec char55_stroke0[] = { - { 72.2267, 100 }, - { 24.6076, 0 }, -}; - -static const CoordRec char55_stroke1[] = { - { 5.56, 100 }, - { 72.2267, 100 }, -}; - -static const StrokeRec char55[] = { - { 2, char55_stroke0 }, - { 2, char55_stroke1 }, -}; - -/* char: 56 '8' */ - -static const CoordRec char56_stroke0[] = { - { 29.4095, 100 }, - { 15.1238, 95.2381 }, - { 10.3619, 85.7143 }, - { 10.3619, 76.1905 }, - { 15.1238, 66.6667 }, - { 24.6476, 61.9048 }, - { 43.6952, 57.1429 }, - { 57.981, 52.381 }, - { 67.5048, 42.8571 }, - { 72.2667, 33.3333 }, - { 72.2667, 19.0476 }, - { 67.5048, 9.5238 }, - { 62.7429, 4.7619 }, - { 48.4571, 0 }, - { 29.4095, 0 }, - { 15.1238, 4.7619 }, - { 10.3619, 9.5238 }, - { 5.6, 19.0476 }, - { 5.6, 33.3333 }, - { 10.3619, 42.8571 }, - { 19.8857, 52.381 }, - { 34.1714, 57.1429 }, - { 53.219, 61.9048 }, - { 62.7429, 66.6667 }, - { 67.5048, 76.1905 }, - { 67.5048, 85.7143 }, - { 62.7429, 95.2381 }, - { 48.4571, 100 }, - { 29.4095, 100 }, -}; - -static const StrokeRec char56[] = { - { 29, char56_stroke0 }, -}; - -/* char: 57 '9' */ - -static const CoordRec char57_stroke0[] = { - { 68.5048, 66.6667 }, - { 63.7429, 52.381 }, - { 54.219, 42.8571 }, - { 39.9333, 38.0952 }, - { 35.1714, 38.0952 }, - { 20.8857, 42.8571 }, - { 11.3619, 52.381 }, - { 6.6, 66.6667 }, - { 6.6, 71.4286 }, - { 11.3619, 85.7143 }, - { 20.8857, 95.2381 }, - { 35.1714, 100 }, - { 39.9333, 100 }, - { 54.219, 95.2381 }, - { 63.7429, 85.7143 }, - { 68.5048, 66.6667 }, - { 68.5048, 42.8571 }, - { 63.7429, 19.0476 }, - { 54.219, 4.7619 }, - { 39.9333, 0 }, - { 30.4095, 0 }, - { 16.1238, 4.7619 }, - { 11.3619, 14.2857 }, -}; - -static const StrokeRec char57[] = { - { 23, char57_stroke0 }, -}; - -/* char: 58 ':' */ - -static const CoordRec char58_stroke0[] = { - { 14.0819, 66.6667 }, - { 9.32, 61.9048 }, - { 14.0819, 57.1429 }, - { 18.8438, 61.9048 }, - { 14.0819, 66.6667 }, -}; - -static const CoordRec char58_stroke1[] = { - { 14.0819, 9.5238 }, - { 9.32, 4.7619 }, - { 14.0819, 0 }, - { 18.8438, 4.7619 }, - { 14.0819, 9.5238 }, -}; - -static const StrokeRec char58[] = { - { 5, char58_stroke0 }, - { 5, char58_stroke1 }, -}; - -/* char: 59 ';' */ - -static const CoordRec char59_stroke0[] = { - { 12.9619, 66.6667 }, - { 8.2, 61.9048 }, - { 12.9619, 57.1429 }, - { 17.7238, 61.9048 }, - { 12.9619, 66.6667 }, -}; - -static const CoordRec char59_stroke1[] = { - { 17.7238, 4.7619 }, - { 12.9619, 0 }, - { 8.2, 4.7619 }, - { 12.9619, 9.5238 }, - { 17.7238, 4.7619 }, - { 17.7238, -4.7619 }, - { 12.9619, -14.2857 }, - { 8.2, -19.0476 }, -}; - -static const StrokeRec char59[] = { - { 5, char59_stroke0 }, - { 8, char59_stroke1 }, -}; - -/* char: 60 '<' */ - -static const CoordRec char60_stroke0[] = { - { 79.2505, 85.7143 }, - { 3.06, 42.8571 }, - { 79.2505, 0 }, -}; - -static const StrokeRec char60[] = { - { 3, char60_stroke0 }, -}; - -/* char: 61 '=' */ - -static const CoordRec char61_stroke0[] = { - { 5.7, 57.1429 }, - { 91.4143, 57.1429 }, -}; - -static const CoordRec char61_stroke1[] = { - { 5.7, 28.5714 }, - { 91.4143, 28.5714 }, -}; - -static const StrokeRec char61[] = { - { 2, char61_stroke0 }, - { 2, char61_stroke1 }, -}; - -/* char: 62 '>' */ - -static const CoordRec char62_stroke0[] = { - { 2.78, 85.7143 }, - { 78.9705, 42.8571 }, - { 2.78, 0 }, -}; - -static const StrokeRec char62[] = { - { 3, char62_stroke0 }, -}; - -/* char: 63 '?' */ - -static const CoordRec char63_stroke0[] = { - { 8.42, 76.1905 }, - { 8.42, 80.9524 }, - { 13.1819, 90.4762 }, - { 17.9438, 95.2381 }, - { 27.4676, 100 }, - { 46.5152, 100 }, - { 56.039, 95.2381 }, - { 60.801, 90.4762 }, - { 65.5629, 80.9524 }, - { 65.5629, 71.4286 }, - { 60.801, 61.9048 }, - { 56.039, 57.1429 }, - { 36.9914, 47.619 }, - { 36.9914, 33.3333 }, -}; - -static const CoordRec char63_stroke1[] = { - { 36.9914, 9.5238 }, - { 32.2295, 4.7619 }, - { 36.9914, 0 }, - { 41.7533, 4.7619 }, - { 36.9914, 9.5238 }, -}; - -static const StrokeRec char63[] = { - { 14, char63_stroke0 }, - { 5, char63_stroke1 }, -}; - -/* char: 64 '@' */ - -static const CoordRec char64_stroke0[] = { - { 49.2171, 52.381 }, - { 39.6933, 57.1429 }, - { 30.1695, 57.1429 }, - { 25.4076, 47.619 }, - { 25.4076, 42.8571 }, - { 30.1695, 33.3333 }, - { 39.6933, 33.3333 }, - { 49.2171, 38.0952 }, -}; - -static const CoordRec char64_stroke1[] = { - { 49.2171, 57.1429 }, - { 49.2171, 38.0952 }, - { 53.979, 33.3333 }, - { 63.5029, 33.3333 }, - { 68.2648, 42.8571 }, - { 68.2648, 47.619 }, - { 63.5029, 61.9048 }, - { 53.979, 71.4286 }, - { 39.6933, 76.1905 }, - { 34.9314, 76.1905 }, - { 20.6457, 71.4286 }, - { 11.1219, 61.9048 }, - { 6.36, 47.619 }, - { 6.36, 42.8571 }, - { 11.1219, 28.5714 }, - { 20.6457, 19.0476 }, - { 34.9314, 14.2857 }, - { 39.6933, 14.2857 }, - { 53.979, 19.0476 }, -}; - -static const StrokeRec char64[] = { - { 8, char64_stroke0 }, - { 19, char64_stroke1 }, -}; - -/* char: 65 'A' */ - -static const CoordRec char65_stroke0[] = { - { 40.5952, 100 }, - { 2.5, 0 }, -}; - -static const CoordRec char65_stroke1[] = { - { 40.5952, 100 }, - { 78.6905, 0 }, -}; - -static const CoordRec char65_stroke2[] = { - { 16.7857, 33.3333 }, - { 64.4048, 33.3333 }, -}; - -static const StrokeRec char65[] = { - { 2, char65_stroke0 }, - { 2, char65_stroke1 }, - { 2, char65_stroke2 }, -}; - -/* char: 66 'B' */ - -static const CoordRec char66_stroke0[] = { - { 11.42, 100 }, - { 11.42, 0 }, -}; - -static const CoordRec char66_stroke1[] = { - { 11.42, 100 }, - { 54.2771, 100 }, - { 68.5629, 95.2381 }, - { 73.3248, 90.4762 }, - { 78.0867, 80.9524 }, - { 78.0867, 71.4286 }, - { 73.3248, 61.9048 }, - { 68.5629, 57.1429 }, - { 54.2771, 52.381 }, -}; - -static const CoordRec char66_stroke2[] = { - { 11.42, 52.381 }, - { 54.2771, 52.381 }, - { 68.5629, 47.619 }, - { 73.3248, 42.8571 }, - { 78.0867, 33.3333 }, - { 78.0867, 19.0476 }, - { 73.3248, 9.5238 }, - { 68.5629, 4.7619 }, - { 54.2771, 0 }, - { 11.42, 0 }, -}; - -static const StrokeRec char66[] = { - { 2, char66_stroke0 }, - { 9, char66_stroke1 }, - { 10, char66_stroke2 }, -}; - -/* char: 67 'C' */ - -static const CoordRec char67_stroke0[] = { - { 78.0886, 76.1905 }, - { 73.3267, 85.7143 }, - { 63.8029, 95.2381 }, - { 54.279, 100 }, - { 35.2314, 100 }, - { 25.7076, 95.2381 }, - { 16.1838, 85.7143 }, - { 11.4219, 76.1905 }, - { 6.66, 61.9048 }, - { 6.66, 38.0952 }, - { 11.4219, 23.8095 }, - { 16.1838, 14.2857 }, - { 25.7076, 4.7619 }, - { 35.2314, 0 }, - { 54.279, 0 }, - { 63.8029, 4.7619 }, - { 73.3267, 14.2857 }, - { 78.0886, 23.8095 }, -}; - -static const StrokeRec char67[] = { - { 18, char67_stroke0 }, -}; - -/* char: 68 'D' */ - -static const CoordRec char68_stroke0[] = { - { 11.96, 100 }, - { 11.96, 0 }, -}; - -static const CoordRec char68_stroke1[] = { - { 11.96, 100 }, - { 45.2933, 100 }, - { 59.579, 95.2381 }, - { 69.1029, 85.7143 }, - { 73.8648, 76.1905 }, - { 78.6267, 61.9048 }, - { 78.6267, 38.0952 }, - { 73.8648, 23.8095 }, - { 69.1029, 14.2857 }, - { 59.579, 4.7619 }, - { 45.2933, 0 }, - { 11.96, 0 }, -}; - -static const StrokeRec char68[] = { - { 2, char68_stroke0 }, - { 12, char68_stroke1 }, -}; - -/* char: 69 'E' */ - -static const CoordRec char69_stroke0[] = { - { 11.42, 100 }, - { 11.42, 0 }, -}; - -static const CoordRec char69_stroke1[] = { - { 11.42, 100 }, - { 73.3248, 100 }, -}; - -static const CoordRec char69_stroke2[] = { - { 11.42, 52.381 }, - { 49.5152, 52.381 }, -}; - -static const CoordRec char69_stroke3[] = { - { 11.42, 0 }, - { 73.3248, 0 }, -}; - -static const StrokeRec char69[] = { - { 2, char69_stroke0 }, - { 2, char69_stroke1 }, - { 2, char69_stroke2 }, - { 2, char69_stroke3 }, -}; - -/* char: 70 'F' */ - -static const CoordRec char70_stroke0[] = { - { 11.42, 100 }, - { 11.42, 0 }, -}; - -static const CoordRec char70_stroke1[] = { - { 11.42, 100 }, - { 73.3248, 100 }, -}; - -static const CoordRec char70_stroke2[] = { - { 11.42, 52.381 }, - { 49.5152, 52.381 }, -}; - -static const StrokeRec char70[] = { - { 2, char70_stroke0 }, - { 2, char70_stroke1 }, - { 2, char70_stroke2 }, -}; - -/* char: 71 'G' */ - -static const CoordRec char71_stroke0[] = { - { 78.4886, 76.1905 }, - { 73.7267, 85.7143 }, - { 64.2029, 95.2381 }, - { 54.679, 100 }, - { 35.6314, 100 }, - { 26.1076, 95.2381 }, - { 16.5838, 85.7143 }, - { 11.8219, 76.1905 }, - { 7.06, 61.9048 }, - { 7.06, 38.0952 }, - { 11.8219, 23.8095 }, - { 16.5838, 14.2857 }, - { 26.1076, 4.7619 }, - { 35.6314, 0 }, - { 54.679, 0 }, - { 64.2029, 4.7619 }, - { 73.7267, 14.2857 }, - { 78.4886, 23.8095 }, - { 78.4886, 38.0952 }, -}; - -static const CoordRec char71_stroke1[] = { - { 54.679, 38.0952 }, - { 78.4886, 38.0952 }, -}; - -static const StrokeRec char71[] = { - { 19, char71_stroke0 }, - { 2, char71_stroke1 }, -}; - -/* char: 72 'H' */ - -static const CoordRec char72_stroke0[] = { - { 11.42, 100 }, - { 11.42, 0 }, -}; - -static const CoordRec char72_stroke1[] = { - { 78.0867, 100 }, - { 78.0867, 0 }, -}; - -static const CoordRec char72_stroke2[] = { - { 11.42, 52.381 }, - { 78.0867, 52.381 }, -}; - -static const StrokeRec char72[] = { - { 2, char72_stroke0 }, - { 2, char72_stroke1 }, - { 2, char72_stroke2 }, -}; - -/* char: 73 'I' */ - -static const CoordRec char73_stroke0[] = { - { 10.86, 100 }, - { 10.86, 0 }, -}; - -static const StrokeRec char73[] = { - { 2, char73_stroke0 }, -}; - -/* char: 74 'J' */ - -static const CoordRec char74_stroke0[] = { - { 50.119, 100 }, - { 50.119, 23.8095 }, - { 45.3571, 9.5238 }, - { 40.5952, 4.7619 }, - { 31.0714, 0 }, - { 21.5476, 0 }, - { 12.0238, 4.7619 }, - { 7.2619, 9.5238 }, - { 2.5, 23.8095 }, - { 2.5, 33.3333 }, -}; - -static const StrokeRec char74[] = { - { 10, char74_stroke0 }, -}; - -/* char: 75 'K' */ - -static const CoordRec char75_stroke0[] = { - { 11.28, 100 }, - { 11.28, 0 }, -}; - -static const CoordRec char75_stroke1[] = { - { 77.9467, 100 }, - { 11.28, 33.3333 }, -}; - -static const CoordRec char75_stroke2[] = { - { 35.0895, 57.1429 }, - { 77.9467, 0 }, -}; - -static const StrokeRec char75[] = { - { 2, char75_stroke0 }, - { 2, char75_stroke1 }, - { 2, char75_stroke2 }, -}; - -/* char: 76 'L' */ - -static const CoordRec char76_stroke0[] = { - { 11.68, 100 }, - { 11.68, 0 }, -}; - -static const CoordRec char76_stroke1[] = { - { 11.68, 0 }, - { 68.8229, 0 }, -}; - -static const StrokeRec char76[] = { - { 2, char76_stroke0 }, - { 2, char76_stroke1 }, -}; - -/* char: 77 'M' */ - -static const CoordRec char77_stroke0[] = { - { 10.86, 100 }, - { 10.86, 0 }, -}; - -static const CoordRec char77_stroke1[] = { - { 10.86, 100 }, - { 48.9552, 0 }, -}; - -static const CoordRec char77_stroke2[] = { - { 87.0505, 100 }, - { 48.9552, 0 }, -}; - -static const CoordRec char77_stroke3[] = { - { 87.0505, 100 }, - { 87.0505, 0 }, -}; - -static const StrokeRec char77[] = { - { 2, char77_stroke0 }, - { 2, char77_stroke1 }, - { 2, char77_stroke2 }, - { 2, char77_stroke3 }, -}; - -/* char: 78 'N' */ - -static const CoordRec char78_stroke0[] = { - { 11.14, 100 }, - { 11.14, 0 }, -}; - -static const CoordRec char78_stroke1[] = { - { 11.14, 100 }, - { 77.8067, 0 }, -}; - -static const CoordRec char78_stroke2[] = { - { 77.8067, 100 }, - { 77.8067, 0 }, -}; - -static const StrokeRec char78[] = { - { 2, char78_stroke0 }, - { 2, char78_stroke1 }, - { 2, char78_stroke2 }, -}; - -/* char: 79 'O' */ - -static const CoordRec char79_stroke0[] = { - { 34.8114, 100 }, - { 25.2876, 95.2381 }, - { 15.7638, 85.7143 }, - { 11.0019, 76.1905 }, - { 6.24, 61.9048 }, - { 6.24, 38.0952 }, - { 11.0019, 23.8095 }, - { 15.7638, 14.2857 }, - { 25.2876, 4.7619 }, - { 34.8114, 0 }, - { 53.859, 0 }, - { 63.3829, 4.7619 }, - { 72.9067, 14.2857 }, - { 77.6686, 23.8095 }, - { 82.4305, 38.0952 }, - { 82.4305, 61.9048 }, - { 77.6686, 76.1905 }, - { 72.9067, 85.7143 }, - { 63.3829, 95.2381 }, - { 53.859, 100 }, - { 34.8114, 100 }, -}; - -static const StrokeRec char79[] = { - { 21, char79_stroke0 }, -}; - -/* char: 80 'P' */ - -static const CoordRec char80_stroke0[] = { - { 12.1, 100 }, - { 12.1, 0 }, -}; - -static const CoordRec char80_stroke1[] = { - { 12.1, 100 }, - { 54.9571, 100 }, - { 69.2429, 95.2381 }, - { 74.0048, 90.4762 }, - { 78.7667, 80.9524 }, - { 78.7667, 66.6667 }, - { 74.0048, 57.1429 }, - { 69.2429, 52.381 }, - { 54.9571, 47.619 }, - { 12.1, 47.619 }, -}; - -static const StrokeRec char80[] = { - { 2, char80_stroke0 }, - { 10, char80_stroke1 }, -}; - -/* char: 81 'Q' */ - -static const CoordRec char81_stroke0[] = { - { 33.8714, 100 }, - { 24.3476, 95.2381 }, - { 14.8238, 85.7143 }, - { 10.0619, 76.1905 }, - { 5.3, 61.9048 }, - { 5.3, 38.0952 }, - { 10.0619, 23.8095 }, - { 14.8238, 14.2857 }, - { 24.3476, 4.7619 }, - { 33.8714, 0 }, - { 52.919, 0 }, - { 62.4429, 4.7619 }, - { 71.9667, 14.2857 }, - { 76.7286, 23.8095 }, - { 81.4905, 38.0952 }, - { 81.4905, 61.9048 }, - { 76.7286, 76.1905 }, - { 71.9667, 85.7143 }, - { 62.4429, 95.2381 }, - { 52.919, 100 }, - { 33.8714, 100 }, -}; - -static const CoordRec char81_stroke1[] = { - { 48.1571, 19.0476 }, - { 76.7286, -9.5238 }, -}; - -static const StrokeRec char81[] = { - { 21, char81_stroke0 }, - { 2, char81_stroke1 }, -}; - -/* char: 82 'R' */ - -static const CoordRec char82_stroke0[] = { - { 11.68, 100 }, - { 11.68, 0 }, -}; - -static const CoordRec char82_stroke1[] = { - { 11.68, 100 }, - { 54.5371, 100 }, - { 68.8229, 95.2381 }, - { 73.5848, 90.4762 }, - { 78.3467, 80.9524 }, - { 78.3467, 71.4286 }, - { 73.5848, 61.9048 }, - { 68.8229, 57.1429 }, - { 54.5371, 52.381 }, - { 11.68, 52.381 }, -}; - -static const CoordRec char82_stroke2[] = { - { 45.0133, 52.381 }, - { 78.3467, 0 }, -}; - -static const StrokeRec char82[] = { - { 2, char82_stroke0 }, - { 10, char82_stroke1 }, - { 2, char82_stroke2 }, -}; - -/* char: 83 'S' */ - -static const CoordRec char83_stroke0[] = { - { 74.6667, 85.7143 }, - { 65.1429, 95.2381 }, - { 50.8571, 100 }, - { 31.8095, 100 }, - { 17.5238, 95.2381 }, - { 8, 85.7143 }, - { 8, 76.1905 }, - { 12.7619, 66.6667 }, - { 17.5238, 61.9048 }, - { 27.0476, 57.1429 }, - { 55.619, 47.619 }, - { 65.1429, 42.8571 }, - { 69.9048, 38.0952 }, - { 74.6667, 28.5714 }, - { 74.6667, 14.2857 }, - { 65.1429, 4.7619 }, - { 50.8571, 0 }, - { 31.8095, 0 }, - { 17.5238, 4.7619 }, - { 8, 14.2857 }, -}; - -static const StrokeRec char83[] = { - { 20, char83_stroke0 }, -}; - -/* char: 84 'T' */ - -static const CoordRec char84_stroke0[] = { - { 35.6933, 100 }, - { 35.6933, 0 }, -}; - -static const CoordRec char84_stroke1[] = { - { 2.36, 100 }, - { 69.0267, 100 }, -}; - -static const StrokeRec char84[] = { - { 2, char84_stroke0 }, - { 2, char84_stroke1 }, -}; - -/* char: 85 'U' */ - -static const CoordRec char85_stroke0[] = { - { 11.54, 100 }, - { 11.54, 28.5714 }, - { 16.3019, 14.2857 }, - { 25.8257, 4.7619 }, - { 40.1114, 0 }, - { 49.6352, 0 }, - { 63.921, 4.7619 }, - { 73.4448, 14.2857 }, - { 78.2067, 28.5714 }, - { 78.2067, 100 }, -}; - -static const StrokeRec char85[] = { - { 10, char85_stroke0 }, -}; - -/* char: 86 'V' */ - -static const CoordRec char86_stroke0[] = { - { 2.36, 100 }, - { 40.4552, 0 }, -}; - -static const CoordRec char86_stroke1[] = { - { 78.5505, 100 }, - { 40.4552, 0 }, -}; - -static const StrokeRec char86[] = { - { 2, char86_stroke0 }, - { 2, char86_stroke1 }, -}; - -/* char: 87 'W' */ - -static const CoordRec char87_stroke0[] = { - { 2.22, 100 }, - { 26.0295, 0 }, -}; - -static const CoordRec char87_stroke1[] = { - { 49.839, 100 }, - { 26.0295, 0 }, -}; - -static const CoordRec char87_stroke2[] = { - { 49.839, 100 }, - { 73.6486, 0 }, -}; - -static const CoordRec char87_stroke3[] = { - { 97.4581, 100 }, - { 73.6486, 0 }, -}; - -static const StrokeRec char87[] = { - { 2, char87_stroke0 }, - { 2, char87_stroke1 }, - { 2, char87_stroke2 }, - { 2, char87_stroke3 }, -}; - -/* char: 88 'X' */ - -static const CoordRec char88_stroke0[] = { - { 2.5, 100 }, - { 69.1667, 0 }, -}; - -static const CoordRec char88_stroke1[] = { - { 69.1667, 100 }, - { 2.5, 0 }, -}; - -static const StrokeRec char88[] = { - { 2, char88_stroke0 }, - { 2, char88_stroke1 }, -}; - -/* char: 89 'Y' */ - -static const CoordRec char89_stroke0[] = { - { 1.52, 100 }, - { 39.6152, 52.381 }, - { 39.6152, 0 }, -}; - -static const CoordRec char89_stroke1[] = { - { 77.7105, 100 }, - { 39.6152, 52.381 }, -}; - -static const StrokeRec char89[] = { - { 3, char89_stroke0 }, - { 2, char89_stroke1 }, -}; - -/* char: 90 'Z' */ - -static const CoordRec char90_stroke0[] = { - { 69.1667, 100 }, - { 2.5, 0 }, -}; - -static const CoordRec char90_stroke1[] = { - { 2.5, 100 }, - { 69.1667, 100 }, -}; - -static const CoordRec char90_stroke2[] = { - { 2.5, 0 }, - { 69.1667, 0 }, -}; - -static const StrokeRec char90[] = { - { 2, char90_stroke0 }, - { 2, char90_stroke1 }, - { 2, char90_stroke2 }, -}; - -/* char: 91 '[' */ - -static const CoordRec char91_stroke0[] = { - { 7.78, 119.048 }, - { 7.78, -33.3333 }, -}; - -static const CoordRec char91_stroke1[] = { - { 12.5419, 119.048 }, - { 12.5419, -33.3333 }, -}; - -static const CoordRec char91_stroke2[] = { - { 7.78, 119.048 }, - { 41.1133, 119.048 }, -}; - -static const CoordRec char91_stroke3[] = { - { 7.78, -33.3333 }, - { 41.1133, -33.3333 }, -}; - -static const StrokeRec char91[] = { - { 2, char91_stroke0 }, - { 2, char91_stroke1 }, - { 2, char91_stroke2 }, - { 2, char91_stroke3 }, -}; - -/* char: 92 '\' */ - -static const CoordRec char92_stroke0[] = { - { 5.84, 100 }, - { 72.5067, -14.2857 }, -}; - -static const StrokeRec char92[] = { - { 2, char92_stroke0 }, -}; - -/* char: 93 ']' */ - -static const CoordRec char93_stroke0[] = { - { 33.0114, 119.048 }, - { 33.0114, -33.3333 }, -}; - -static const CoordRec char93_stroke1[] = { - { 37.7733, 119.048 }, - { 37.7733, -33.3333 }, -}; - -static const CoordRec char93_stroke2[] = { - { 4.44, 119.048 }, - { 37.7733, 119.048 }, -}; - -static const CoordRec char93_stroke3[] = { - { 4.44, -33.3333 }, - { 37.7733, -33.3333 }, -}; - -static const StrokeRec char93[] = { - { 2, char93_stroke0 }, - { 2, char93_stroke1 }, - { 2, char93_stroke2 }, - { 2, char93_stroke3 }, -}; - -/* char: 94 '^' */ - -static const CoordRec char94_stroke0[] = { - { 44.0752, 109.524 }, - { 5.98, 42.8571 }, -}; - -static const CoordRec char94_stroke1[] = { - { 44.0752, 109.524 }, - { 82.1705, 42.8571 }, -}; - -static const StrokeRec char94[] = { - { 2, char94_stroke0 }, - { 2, char94_stroke1 }, -}; - -/* char: 95 '_' */ - -static const CoordRec char95_stroke0[] = { - { -1.1, -33.3333 }, - { 103.662, -33.3333 }, - { 103.662, -28.5714 }, - { -1.1, -28.5714 }, - { -1.1, -33.3333 }, -}; - -static const StrokeRec char95[] = { - { 5, char95_stroke0 }, -}; - -/* char: 96 '`' */ - -static const CoordRec char96_stroke0[] = { - { 33.0219, 100 }, - { 56.8314, 71.4286 }, -}; - -static const CoordRec char96_stroke1[] = { - { 33.0219, 100 }, - { 28.26, 95.2381 }, - { 56.8314, 71.4286 }, -}; - -static const StrokeRec char96[] = { - { 2, char96_stroke0 }, - { 3, char96_stroke1 }, -}; - -/* char: 97 'a' */ - -static const CoordRec char97_stroke0[] = { - { 63.8229, 66.6667 }, - { 63.8229, 0 }, -}; - -static const CoordRec char97_stroke1[] = { - { 63.8229, 52.381 }, - { 54.299, 61.9048 }, - { 44.7752, 66.6667 }, - { 30.4895, 66.6667 }, - { 20.9657, 61.9048 }, - { 11.4419, 52.381 }, - { 6.68, 38.0952 }, - { 6.68, 28.5714 }, - { 11.4419, 14.2857 }, - { 20.9657, 4.7619 }, - { 30.4895, 0 }, - { 44.7752, 0 }, - { 54.299, 4.7619 }, - { 63.8229, 14.2857 }, -}; - -static const StrokeRec char97[] = { - { 2, char97_stroke0 }, - { 14, char97_stroke1 }, -}; - -/* char: 98 'b' */ - -static const CoordRec char98_stroke0[] = { - { 8.76, 100 }, - { 8.76, 0 }, -}; - -static const CoordRec char98_stroke1[] = { - { 8.76, 52.381 }, - { 18.2838, 61.9048 }, - { 27.8076, 66.6667 }, - { 42.0933, 66.6667 }, - { 51.6171, 61.9048 }, - { 61.141, 52.381 }, - { 65.9029, 38.0952 }, - { 65.9029, 28.5714 }, - { 61.141, 14.2857 }, - { 51.6171, 4.7619 }, - { 42.0933, 0 }, - { 27.8076, 0 }, - { 18.2838, 4.7619 }, - { 8.76, 14.2857 }, -}; - -static const StrokeRec char98[] = { - { 2, char98_stroke0 }, - { 14, char98_stroke1 }, -}; - -/* char: 99 'c' */ - -static const CoordRec char99_stroke0[] = { - { 62.6629, 52.381 }, - { 53.139, 61.9048 }, - { 43.6152, 66.6667 }, - { 29.3295, 66.6667 }, - { 19.8057, 61.9048 }, - { 10.2819, 52.381 }, - { 5.52, 38.0952 }, - { 5.52, 28.5714 }, - { 10.2819, 14.2857 }, - { 19.8057, 4.7619 }, - { 29.3295, 0 }, - { 43.6152, 0 }, - { 53.139, 4.7619 }, - { 62.6629, 14.2857 }, -}; - -static const StrokeRec char99[] = { - { 14, char99_stroke0 }, -}; - -/* char: 100 'd' */ - -static const CoordRec char100_stroke0[] = { - { 61.7829, 100 }, - { 61.7829, 0 }, -}; - -static const CoordRec char100_stroke1[] = { - { 61.7829, 52.381 }, - { 52.259, 61.9048 }, - { 42.7352, 66.6667 }, - { 28.4495, 66.6667 }, - { 18.9257, 61.9048 }, - { 9.4019, 52.381 }, - { 4.64, 38.0952 }, - { 4.64, 28.5714 }, - { 9.4019, 14.2857 }, - { 18.9257, 4.7619 }, - { 28.4495, 0 }, - { 42.7352, 0 }, - { 52.259, 4.7619 }, - { 61.7829, 14.2857 }, -}; - -static const StrokeRec char100[] = { - { 2, char100_stroke0 }, - { 14, char100_stroke1 }, -}; - -/* char: 101 'e' */ - -static const CoordRec char101_stroke0[] = { - { 5.72, 38.0952 }, - { 62.8629, 38.0952 }, - { 62.8629, 47.619 }, - { 58.101, 57.1429 }, - { 53.339, 61.9048 }, - { 43.8152, 66.6667 }, - { 29.5295, 66.6667 }, - { 20.0057, 61.9048 }, - { 10.4819, 52.381 }, - { 5.72, 38.0952 }, - { 5.72, 28.5714 }, - { 10.4819, 14.2857 }, - { 20.0057, 4.7619 }, - { 29.5295, 0 }, - { 43.8152, 0 }, - { 53.339, 4.7619 }, - { 62.8629, 14.2857 }, -}; - -static const StrokeRec char101[] = { - { 17, char101_stroke0 }, -}; - -/* char: 102 'f' */ - -static const CoordRec char102_stroke0[] = { - { 38.7752, 100 }, - { 29.2514, 100 }, - { 19.7276, 95.2381 }, - { 14.9657, 80.9524 }, - { 14.9657, 0 }, -}; - -static const CoordRec char102_stroke1[] = { - { 0.68, 66.6667 }, - { 34.0133, 66.6667 }, -}; - -static const StrokeRec char102[] = { - { 5, char102_stroke0 }, - { 2, char102_stroke1 }, -}; - -/* char: 103 'g' */ - -static const CoordRec char103_stroke0[] = { - { 62.5029, 66.6667 }, - { 62.5029, -9.5238 }, - { 57.741, -23.8095 }, - { 52.979, -28.5714 }, - { 43.4552, -33.3333 }, - { 29.1695, -33.3333 }, - { 19.6457, -28.5714 }, -}; - -static const CoordRec char103_stroke1[] = { - { 62.5029, 52.381 }, - { 52.979, 61.9048 }, - { 43.4552, 66.6667 }, - { 29.1695, 66.6667 }, - { 19.6457, 61.9048 }, - { 10.1219, 52.381 }, - { 5.36, 38.0952 }, - { 5.36, 28.5714 }, - { 10.1219, 14.2857 }, - { 19.6457, 4.7619 }, - { 29.1695, 0 }, - { 43.4552, 0 }, - { 52.979, 4.7619 }, - { 62.5029, 14.2857 }, -}; - -static const StrokeRec char103[] = { - { 7, char103_stroke0 }, - { 14, char103_stroke1 }, -}; - -/* char: 104 'h' */ - -static const CoordRec char104_stroke0[] = { - { 9.6, 100 }, - { 9.6, 0 }, -}; - -static const CoordRec char104_stroke1[] = { - { 9.6, 47.619 }, - { 23.8857, 61.9048 }, - { 33.4095, 66.6667 }, - { 47.6952, 66.6667 }, - { 57.219, 61.9048 }, - { 61.981, 47.619 }, - { 61.981, 0 }, -}; - -static const StrokeRec char104[] = { - { 2, char104_stroke0 }, - { 7, char104_stroke1 }, -}; - -/* char: 105 'i' */ - -static const CoordRec char105_stroke0[] = { - { 10.02, 100 }, - { 14.7819, 95.2381 }, - { 19.5438, 100 }, - { 14.7819, 104.762 }, - { 10.02, 100 }, -}; - -static const CoordRec char105_stroke1[] = { - { 14.7819, 66.6667 }, - { 14.7819, 0 }, -}; - -static const StrokeRec char105[] = { - { 5, char105_stroke0 }, - { 2, char105_stroke1 }, -}; - -/* char: 106 'j' */ - -static const CoordRec char106_stroke0[] = { - { 17.3876, 100 }, - { 22.1495, 95.2381 }, - { 26.9114, 100 }, - { 22.1495, 104.762 }, - { 17.3876, 100 }, -}; - -static const CoordRec char106_stroke1[] = { - { 22.1495, 66.6667 }, - { 22.1495, -14.2857 }, - { 17.3876, -28.5714 }, - { 7.8638, -33.3333 }, - { -1.66, -33.3333 }, -}; - -static const StrokeRec char106[] = { - { 5, char106_stroke0 }, - { 5, char106_stroke1 }, -}; - -/* char: 107 'k' */ - -static const CoordRec char107_stroke0[] = { - { 9.6, 100 }, - { 9.6, 0 }, -}; - -static const CoordRec char107_stroke1[] = { - { 57.219, 66.6667 }, - { 9.6, 19.0476 }, -}; - -static const CoordRec char107_stroke2[] = { - { 28.6476, 38.0952 }, - { 61.981, 0 }, -}; - -static const StrokeRec char107[] = { - { 2, char107_stroke0 }, - { 2, char107_stroke1 }, - { 2, char107_stroke2 }, -}; - -/* char: 108 'l' */ - -static const CoordRec char108_stroke0[] = { - { 10.02, 100 }, - { 10.02, 0 }, -}; - -static const StrokeRec char108[] = { - { 2, char108_stroke0 }, -}; - -/* char: 109 'm' */ - -static const CoordRec char109_stroke0[] = { - { 9.6, 66.6667 }, - { 9.6, 0 }, -}; - -static const CoordRec char109_stroke1[] = { - { 9.6, 47.619 }, - { 23.8857, 61.9048 }, - { 33.4095, 66.6667 }, - { 47.6952, 66.6667 }, - { 57.219, 61.9048 }, - { 61.981, 47.619 }, - { 61.981, 0 }, -}; - -static const CoordRec char109_stroke2[] = { - { 61.981, 47.619 }, - { 76.2667, 61.9048 }, - { 85.7905, 66.6667 }, - { 100.076, 66.6667 }, - { 109.6, 61.9048 }, - { 114.362, 47.619 }, - { 114.362, 0 }, -}; - -static const StrokeRec char109[] = { - { 2, char109_stroke0 }, - { 7, char109_stroke1 }, - { 7, char109_stroke2 }, -}; - -/* char: 110 'n' */ - -static const CoordRec char110_stroke0[] = { - { 9.18, 66.6667 }, - { 9.18, 0 }, -}; - -static const CoordRec char110_stroke1[] = { - { 9.18, 47.619 }, - { 23.4657, 61.9048 }, - { 32.9895, 66.6667 }, - { 47.2752, 66.6667 }, - { 56.799, 61.9048 }, - { 61.561, 47.619 }, - { 61.561, 0 }, -}; - -static const StrokeRec char110[] = { - { 2, char110_stroke0 }, - { 7, char110_stroke1 }, -}; - -/* char: 111 'o' */ - -static const CoordRec char111_stroke0[] = { - { 28.7895, 66.6667 }, - { 19.2657, 61.9048 }, - { 9.7419, 52.381 }, - { 4.98, 38.0952 }, - { 4.98, 28.5714 }, - { 9.7419, 14.2857 }, - { 19.2657, 4.7619 }, - { 28.7895, 0 }, - { 43.0752, 0 }, - { 52.599, 4.7619 }, - { 62.1229, 14.2857 }, - { 66.8848, 28.5714 }, - { 66.8848, 38.0952 }, - { 62.1229, 52.381 }, - { 52.599, 61.9048 }, - { 43.0752, 66.6667 }, - { 28.7895, 66.6667 }, -}; - -static const StrokeRec char111[] = { - { 17, char111_stroke0 }, -}; - -/* char: 112 'p' */ - -static const CoordRec char112_stroke0[] = { - { 9.46, 66.6667 }, - { 9.46, -33.3333 }, -}; - -static const CoordRec char112_stroke1[] = { - { 9.46, 52.381 }, - { 18.9838, 61.9048 }, - { 28.5076, 66.6667 }, - { 42.7933, 66.6667 }, - { 52.3171, 61.9048 }, - { 61.841, 52.381 }, - { 66.6029, 38.0952 }, - { 66.6029, 28.5714 }, - { 61.841, 14.2857 }, - { 52.3171, 4.7619 }, - { 42.7933, 0 }, - { 28.5076, 0 }, - { 18.9838, 4.7619 }, - { 9.46, 14.2857 }, -}; - -static const StrokeRec char112[] = { - { 2, char112_stroke0 }, - { 14, char112_stroke1 }, -}; - -/* char: 113 'q' */ - -static const CoordRec char113_stroke0[] = { - { 61.9829, 66.6667 }, - { 61.9829, -33.3333 }, -}; - -static const CoordRec char113_stroke1[] = { - { 61.9829, 52.381 }, - { 52.459, 61.9048 }, - { 42.9352, 66.6667 }, - { 28.6495, 66.6667 }, - { 19.1257, 61.9048 }, - { 9.6019, 52.381 }, - { 4.84, 38.0952 }, - { 4.84, 28.5714 }, - { 9.6019, 14.2857 }, - { 19.1257, 4.7619 }, - { 28.6495, 0 }, - { 42.9352, 0 }, - { 52.459, 4.7619 }, - { 61.9829, 14.2857 }, -}; - -static const StrokeRec char113[] = { - { 2, char113_stroke0 }, - { 14, char113_stroke1 }, -}; - -/* char: 114 'r' */ - -static const CoordRec char114_stroke0[] = { - { 9.46, 66.6667 }, - { 9.46, 0 }, -}; - -static const CoordRec char114_stroke1[] = { - { 9.46, 38.0952 }, - { 14.2219, 52.381 }, - { 23.7457, 61.9048 }, - { 33.2695, 66.6667 }, - { 47.5552, 66.6667 }, -}; - -static const StrokeRec char114[] = { - { 2, char114_stroke0 }, - { 5, char114_stroke1 }, -}; - -/* char: 115 's' */ - -static const CoordRec char115_stroke0[] = { - { 57.081, 52.381 }, - { 52.319, 61.9048 }, - { 38.0333, 66.6667 }, - { 23.7476, 66.6667 }, - { 9.4619, 61.9048 }, - { 4.7, 52.381 }, - { 9.4619, 42.8571 }, - { 18.9857, 38.0952 }, - { 42.7952, 33.3333 }, - { 52.319, 28.5714 }, - { 57.081, 19.0476 }, - { 57.081, 14.2857 }, - { 52.319, 4.7619 }, - { 38.0333, 0 }, - { 23.7476, 0 }, - { 9.4619, 4.7619 }, - { 4.7, 14.2857 }, -}; - -static const StrokeRec char115[] = { - { 17, char115_stroke0 }, -}; - -/* char: 116 't' */ - -static const CoordRec char116_stroke0[] = { - { 14.8257, 100 }, - { 14.8257, 19.0476 }, - { 19.5876, 4.7619 }, - { 29.1114, 0 }, - { 38.6352, 0 }, -}; - -static const CoordRec char116_stroke1[] = { - { 0.54, 66.6667 }, - { 33.8733, 66.6667 }, -}; - -static const StrokeRec char116[] = { - { 5, char116_stroke0 }, - { 2, char116_stroke1 }, -}; - -/* char: 117 'u' */ - -static const CoordRec char117_stroke0[] = { - { 9.46, 66.6667 }, - { 9.46, 19.0476 }, - { 14.2219, 4.7619 }, - { 23.7457, 0 }, - { 38.0314, 0 }, - { 47.5552, 4.7619 }, - { 61.841, 19.0476 }, -}; - -static const CoordRec char117_stroke1[] = { - { 61.841, 66.6667 }, - { 61.841, 0 }, -}; - -static const StrokeRec char117[] = { - { 7, char117_stroke0 }, - { 2, char117_stroke1 }, -}; - -/* char: 118 'v' */ - -static const CoordRec char118_stroke0[] = { - { 1.8, 66.6667 }, - { 30.3714, 0 }, -}; - -static const CoordRec char118_stroke1[] = { - { 58.9429, 66.6667 }, - { 30.3714, 0 }, -}; - -static const StrokeRec char118[] = { - { 2, char118_stroke0 }, - { 2, char118_stroke1 }, -}; - -/* char: 119 'w' */ - -static const CoordRec char119_stroke0[] = { - { 2.5, 66.6667 }, - { 21.5476, 0 }, -}; - -static const CoordRec char119_stroke1[] = { - { 40.5952, 66.6667 }, - { 21.5476, 0 }, -}; - -static const CoordRec char119_stroke2[] = { - { 40.5952, 66.6667 }, - { 59.6429, 0 }, -}; - -static const CoordRec char119_stroke3[] = { - { 78.6905, 66.6667 }, - { 59.6429, 0 }, -}; - -static const StrokeRec char119[] = { - { 2, char119_stroke0 }, - { 2, char119_stroke1 }, - { 2, char119_stroke2 }, - { 2, char119_stroke3 }, -}; - -/* char: 120 'x' */ - -static const CoordRec char120_stroke0[] = { - { 1.66, 66.6667 }, - { 54.041, 0 }, -}; - -static const CoordRec char120_stroke1[] = { - { 54.041, 66.6667 }, - { 1.66, 0 }, -}; - -static const StrokeRec char120[] = { - { 2, char120_stroke0 }, - { 2, char120_stroke1 }, -}; - -/* char: 121 'y' */ - -static const CoordRec char121_stroke0[] = { - { 6.5619, 66.6667 }, - { 35.1333, 0 }, -}; - -static const CoordRec char121_stroke1[] = { - { 63.7048, 66.6667 }, - { 35.1333, 0 }, - { 25.6095, -19.0476 }, - { 16.0857, -28.5714 }, - { 6.5619, -33.3333 }, - { 1.8, -33.3333 }, -}; - -static const StrokeRec char121[] = { - { 2, char121_stroke0 }, - { 6, char121_stroke1 }, -}; - -/* char: 122 'z' */ - -static const CoordRec char122_stroke0[] = { - { 56.821, 66.6667 }, - { 4.44, 0 }, -}; - -static const CoordRec char122_stroke1[] = { - { 4.44, 66.6667 }, - { 56.821, 66.6667 }, -}; - -static const CoordRec char122_stroke2[] = { - { 4.44, 0 }, - { 56.821, 0 }, -}; - -static const StrokeRec char122[] = { - { 2, char122_stroke0 }, - { 2, char122_stroke1 }, - { 2, char122_stroke2 }, -}; - -/* char: 123 '{' */ - -static const CoordRec char123_stroke0[] = { - { 31.1895, 119.048 }, - { 21.6657, 114.286 }, - { 16.9038, 109.524 }, - { 12.1419, 100 }, - { 12.1419, 90.4762 }, - { 16.9038, 80.9524 }, - { 21.6657, 76.1905 }, - { 26.4276, 66.6667 }, - { 26.4276, 57.1429 }, - { 16.9038, 47.619 }, -}; - -static const CoordRec char123_stroke1[] = { - { 21.6657, 114.286 }, - { 16.9038, 104.762 }, - { 16.9038, 95.2381 }, - { 21.6657, 85.7143 }, - { 26.4276, 80.9524 }, - { 31.1895, 71.4286 }, - { 31.1895, 61.9048 }, - { 26.4276, 52.381 }, - { 7.38, 42.8571 }, - { 26.4276, 33.3333 }, - { 31.1895, 23.8095 }, - { 31.1895, 14.2857 }, - { 26.4276, 4.7619 }, - { 21.6657, 0 }, - { 16.9038, -9.5238 }, - { 16.9038, -19.0476 }, - { 21.6657, -28.5714 }, -}; - -static const CoordRec char123_stroke2[] = { - { 16.9038, 38.0952 }, - { 26.4276, 28.5714 }, - { 26.4276, 19.0476 }, - { 21.6657, 9.5238 }, - { 16.9038, 4.7619 }, - { 12.1419, -4.7619 }, - { 12.1419, -14.2857 }, - { 16.9038, -23.8095 }, - { 21.6657, -28.5714 }, - { 31.1895, -33.3333 }, -}; - -static const StrokeRec char123[] = { - { 10, char123_stroke0 }, - { 17, char123_stroke1 }, - { 10, char123_stroke2 }, -}; - -/* char: 124 '|' */ - -static const CoordRec char124_stroke0[] = { - { 11.54, 119.048 }, - { 11.54, -33.3333 }, -}; - -static const StrokeRec char124[] = { - { 2, char124_stroke0 }, -}; - -/* char: 125 '}' */ - -static const CoordRec char125_stroke0[] = { - { 9.18, 119.048 }, - { 18.7038, 114.286 }, - { 23.4657, 109.524 }, - { 28.2276, 100 }, - { 28.2276, 90.4762 }, - { 23.4657, 80.9524 }, - { 18.7038, 76.1905 }, - { 13.9419, 66.6667 }, - { 13.9419, 57.1429 }, - { 23.4657, 47.619 }, -}; - -static const CoordRec char125_stroke1[] = { - { 18.7038, 114.286 }, - { 23.4657, 104.762 }, - { 23.4657, 95.2381 }, - { 18.7038, 85.7143 }, - { 13.9419, 80.9524 }, - { 9.18, 71.4286 }, - { 9.18, 61.9048 }, - { 13.9419, 52.381 }, - { 32.9895, 42.8571 }, - { 13.9419, 33.3333 }, - { 9.18, 23.8095 }, - { 9.18, 14.2857 }, - { 13.9419, 4.7619 }, - { 18.7038, 0 }, - { 23.4657, -9.5238 }, - { 23.4657, -19.0476 }, - { 18.7038, -28.5714 }, -}; - -static const CoordRec char125_stroke2[] = { - { 23.4657, 38.0952 }, - { 13.9419, 28.5714 }, - { 13.9419, 19.0476 }, - { 18.7038, 9.5238 }, - { 23.4657, 4.7619 }, - { 28.2276, -4.7619 }, - { 28.2276, -14.2857 }, - { 23.4657, -23.8095 }, - { 18.7038, -28.5714 }, - { 9.18, -33.3333 }, -}; - -static const StrokeRec char125[] = { - { 10, char125_stroke0 }, - { 17, char125_stroke1 }, - { 10, char125_stroke2 }, -}; - -/* char: 126 '~' */ - -static const CoordRec char126_stroke0[] = { - { 2.92, 28.5714 }, - { 2.92, 38.0952 }, - { 7.6819, 52.381 }, - { 17.2057, 57.1429 }, - { 26.7295, 57.1429 }, - { 36.2533, 52.381 }, - { 55.301, 38.0952 }, - { 64.8248, 33.3333 }, - { 74.3486, 33.3333 }, - { 83.8724, 38.0952 }, - { 88.6343, 47.619 }, -}; - -static const CoordRec char126_stroke1[] = { - { 2.92, 38.0952 }, - { 7.6819, 47.619 }, - { 17.2057, 52.381 }, - { 26.7295, 52.381 }, - { 36.2533, 47.619 }, - { 55.301, 33.3333 }, - { 64.8248, 28.5714 }, - { 74.3486, 28.5714 }, - { 83.8724, 33.3333 }, - { 88.6343, 47.619 }, - { 88.6343, 57.1429 }, -}; - -static const StrokeRec char126[] = { - { 11, char126_stroke0 }, - { 11, char126_stroke1 }, -}; - -/* char: 127 */ - -static const CoordRec char127_stroke0[] = { - { 52.381, 100 }, - { 14.2857, -33.3333 }, -}; - -static const CoordRec char127_stroke1[] = { - { 28.5714, 66.6667 }, - { 14.2857, 61.9048 }, - { 4.7619, 52.381 }, - { 0, 38.0952 }, - { 0, 23.8095 }, - { 4.7619, 14.2857 }, - { 14.2857, 4.7619 }, - { 28.5714, 0 }, - { 38.0952, 0 }, - { 52.381, 4.7619 }, - { 61.9048, 14.2857 }, - { 66.6667, 28.5714 }, - { 66.6667, 42.8571 }, - { 61.9048, 52.381 }, - { 52.381, 61.9048 }, - { 38.0952, 66.6667 }, - { 28.5714, 66.6667 }, -}; - -static const StrokeRec char127[] = { - { 2, char127_stroke0 }, - { 17, char127_stroke1 }, -}; - -static const StrokeCharRec chars[] = { - { 0, /* char0 */ 0, 0, 0 }, - { 0, /* char1 */ 0, 0, 0 }, - { 0, /* char2 */ 0, 0, 0 }, - { 0, /* char3 */ 0, 0, 0 }, - { 0, /* char4 */ 0, 0, 0 }, - { 0, /* char5 */ 0, 0, 0 }, - { 0, /* char6 */ 0, 0, 0 }, - { 0, /* char7 */ 0, 0, 0 }, - { 0, /* char8 */ 0, 0, 0 }, - { 0, /* char9 */ 0, 0, 0 }, - { 0, /* char10 */ 0, 0, 0 }, - { 0, /* char11 */ 0, 0, 0 }, - { 0, /* char12 */ 0, 0, 0 }, - { 0, /* char13 */ 0, 0, 0 }, - { 0, /* char14 */ 0, 0, 0 }, - { 0, /* char15 */ 0, 0, 0 }, - { 0, /* char16 */ 0, 0, 0 }, - { 0, /* char17 */ 0, 0, 0 }, - { 0, /* char18 */ 0, 0, 0 }, - { 0, /* char19 */ 0, 0, 0 }, - { 0, /* char20 */ 0, 0, 0 }, - { 0, /* char21 */ 0, 0, 0 }, - { 0, /* char22 */ 0, 0, 0 }, - { 0, /* char23 */ 0, 0, 0 }, - { 0, /* char24 */ 0, 0, 0 }, - { 0, /* char25 */ 0, 0, 0 }, - { 0, /* char26 */ 0, 0, 0 }, - { 0, /* char27 */ 0, 0, 0 }, - { 0, /* char28 */ 0, 0, 0 }, - { 0, /* char29 */ 0, 0, 0 }, - { 0, /* char30 */ 0, 0, 0 }, - { 0, /* char31 */ 0, 0, 0 }, - { 0, /* char32 */ 0, 52.381, 104.762 }, - { 2, char33, 13.3819, 26.6238 }, - { 2, char34, 23.0676, 51.4352 }, - { 4, char35, 36.5333, 79.4886 }, - { 3, char36, 38.1533, 76.2067 }, - { 3, char37, 49.2171, 96.5743 }, - { 1, char38, 53.599, 101.758 }, - { 1, char39, 4.44, 13.62 }, - { 1, char40, 21.8657, 47.1733 }, - { 1, char41, 24.3276, 47.5333 }, - { 3, char42, 30.7695, 59.439 }, - { 2, char43, 48.8371, 97.2543 }, - { 1, char44, 13.5219, 26.0638 }, - { 1, char45, 50.2371, 100.754 }, - { 1, char46, 13.1019, 26.4838 }, - { 1, char47, 40.5733, 82.1067 }, - { 1, char48, 38.3133, 77.0667 }, - { 1, char49, 30.8676, 66.5295 }, - { 1, char50, 38.7533, 77.6467 }, - { 1, char51, 38.3333, 77.0467 }, - { 2, char52, 37.2133, 80.1686 }, - { 1, char53, 38.1933, 77.6867 }, - { 1, char54, 34.1514, 73.8048 }, - { 2, char55, 38.8933, 77.2267 }, - { 1, char56, 38.9333, 77.6667 }, - { 1, char57, 39.9333, 74.0648 }, - { 2, char58, 14.0819, 26.2238 }, - { 2, char59, 12.9619, 26.3038 }, - { 1, char60, 41.1552, 81.6105 }, - { 2, char61, 48.5571, 97.2543 }, - { 1, char62, 40.8752, 81.6105 }, - { 2, char63, 36.9914, 73.9029 }, - { 2, char64, 34.9314, 74.3648 }, - { 3, char65, 40.5952, 80.4905 }, - { 3, char66, 44.7533, 83.6267 }, - { 1, char67, 39.9933, 84.4886 }, - { 2, char68, 45.2933, 85.2867 }, - { 4, char69, 39.9914, 78.1848 }, - { 3, char70, 39.9914, 78.7448 }, - { 2, char71, 40.3933, 89.7686 }, - { 3, char72, 44.7533, 89.0867 }, - { 1, char73, 10.86, 21.3 }, - { 1, char74, 31.0714, 59.999 }, - { 3, char75, 44.6133, 79.3267 }, - { 2, char76, 40.2514, 71.3229 }, - { 4, char77, 48.9552, 97.2105 }, - { 3, char78, 44.4733, 88.8067 }, - { 1, char79, 44.3352, 88.8305 }, - { 2, char80, 45.4333, 85.6667 }, - { 2, char81, 43.3952, 88.0905 }, - { 3, char82, 45.0133, 82.3667 }, - { 1, char83, 41.3333, 80.8267 }, - { 2, char84, 35.6933, 71.9467 }, - { 1, char85, 44.8733, 89.4867 }, - { 2, char86, 40.4552, 81.6105 }, - { 4, char87, 49.839, 100.518 }, - { 2, char88, 35.8333, 72.3667 }, - { 2, char89, 39.6152, 79.6505 }, - { 3, char90, 35.8333, 73.7467 }, - { 4, char91, 22.0657, 46.1133 }, - { 1, char92, 39.1733, 78.2067 }, - { 4, char93, 23.4876, 46.3933 }, - { 2, char94, 44.0752, 90.2305 }, - { 1, char95, 51.281, 104.062 }, - { 2, char96, 42.5457, 83.5714 }, - { 2, char97, 35.2514, 66.6029 }, - { 2, char98, 37.3314, 70.4629 }, - { 1, char99, 34.0914, 68.9229 }, - { 2, char100, 33.2114, 70.2629 }, - { 1, char101, 34.2914, 68.5229 }, - { 2, char102, 14.9657, 38.6552 }, - { 2, char103, 33.9314, 70.9829 }, - { 2, char104, 33.4095, 71.021 }, - { 2, char105, 14.7819, 28.8638 }, - { 2, char106, 17.3876, 36.2314 }, - { 3, char107, 33.4095, 62.521 }, - { 1, char108, 10.02, 19.34 }, - { 3, char109, 61.981, 123.962 }, - { 2, char110, 32.9895, 70.881 }, - { 1, char111, 33.5514, 71.7448 }, - { 2, char112, 38.0314, 70.8029 }, - { 2, char113, 33.4114, 70.7429 }, - { 2, char114, 23.7457, 49.4952 }, - { 1, char115, 28.5095, 62.321 }, - { 2, char116, 14.8257, 39.3152 }, - { 2, char117, 33.2695, 71.161 }, - { 2, char118, 30.3714, 60.6029 }, - { 4, char119, 40.5952, 80.4905 }, - { 2, char120, 25.4695, 56.401 }, - { 2, char121, 35.1333, 66.0648 }, - { 3, char122, 28.2495, 61.821 }, - { 3, char123, 21.6657, 41.6295 }, - { 1, char124, 11.54, 23.78 }, - { 3, char125, 18.7038, 41.4695 }, - { 2, char126, 45.7771, 91.2743 }, - { 2, char127, 33.3333, 66.6667 }, -}; - -StrokeFontRec glutStrokeRoman = { "Roman", 128, chars, 119.048, -33.3333 }; - diff --git a/src/glut/os2/glut_shapes.cpp b/src/glut/os2/glut_shapes.cpp deleted file mode 100644 index 111e2d48e9..0000000000 --- a/src/glut/os2/glut_shapes.cpp +++ /dev/null @@ -1,595 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997. */ - -/** -(c) Copyright 1993, Silicon Graphics, Inc. - -ALL RIGHTS RESERVED - -Permission to use, copy, modify, and distribute this software -for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that -both the copyright notice and this permission notice appear in -supporting documentation, and that the name of Silicon -Graphics, Inc. not be used in advertising or publicity -pertaining to distribution of the software without specific, -written prior permission. - -THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU -"AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR -OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO -EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE -ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, -INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, -SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR -NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY -OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR -PERFORMANCE OF THIS SOFTWARE. - -US Government Users Restricted Rights - -Use, duplication, or disclosure by the Government is subject to -restrictions set forth in FAR 52.227.19(c)(2) or subparagraph -(c)(1)(ii) of the Rights in Technical Data and Computer -Software clause at DFARS 252.227-7013 and/or in similar or -successor clauses in the FAR or the DOD or NASA FAR -Supplement. Unpublished-- rights reserved under the copyright -laws of the United States. Contractor/manufacturer is Silicon -Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA -94039-7311. - -OpenGL(TM) is a trademark of Silicon Graphics, Inc. -*/ - -#include <math.h> -#include "glutint.h" - -/* Some <math.h> files do not define M_PI... */ -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -static GLUquadricObj *quadObj; - -#define QUAD_OBJ_INIT() { if(!quadObj) initQuadObj(); } - -static void -initQuadObj(void) -{ - quadObj = gluNewQuadric(); - if (!quadObj) - __glutFatalError("out of memory."); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireSphere(GLdouble radius, GLint slices, GLint stacks) -{ - QUAD_OBJ_INIT(); - gluQuadricDrawStyle(quadObj, GLU_LINE); - gluQuadricNormals(quadObj, GLU_SMOOTH); - /* If we ever changed/used the texture or orientation state - of quadObj, we'd need to change it to the defaults here - with gluQuadricTexture and/or gluQuadricOrientation. */ - gluSphere(quadObj, radius, slices, stacks); -} - -void GLUTAPIENTRY -glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) -{ - QUAD_OBJ_INIT(); - gluQuadricDrawStyle(quadObj, GLU_FILL); - gluQuadricNormals(quadObj, GLU_SMOOTH); - /* If we ever changed/used the texture or orientation state - of quadObj, we'd need to change it to the defaults here - with gluQuadricTexture and/or gluQuadricOrientation. */ - gluSphere(quadObj, radius, slices, stacks); -} - -void GLUTAPIENTRY -glutWireCone(GLdouble base, GLdouble height, - GLint slices, GLint stacks) -{ - QUAD_OBJ_INIT(); - gluQuadricDrawStyle(quadObj, GLU_LINE); - gluQuadricNormals(quadObj, GLU_SMOOTH); - /* If we ever changed/used the texture or orientation state - of quadObj, we'd need to change it to the defaults here - with gluQuadricTexture and/or gluQuadricOrientation. */ - gluCylinder(quadObj, base, 0.0, height, slices, stacks); -} - -void GLUTAPIENTRY -glutSolidCone(GLdouble base, GLdouble height, - GLint slices, GLint stacks) -{ - QUAD_OBJ_INIT(); - gluQuadricDrawStyle(quadObj, GLU_FILL); - gluQuadricNormals(quadObj, GLU_SMOOTH); - /* If we ever changed/used the texture or orientation state - of quadObj, we'd need to change it to the defaults here - with gluQuadricTexture and/or gluQuadricOrientation. */ - gluCylinder(quadObj, base, 0.0, height, slices, stacks); -} - -/* ENDCENTRY */ - -static void -drawBox(GLfloat size, GLenum type) -{ - static GLfloat n[6][3] = - { - {-1.0, 0.0, 0.0}, - {0.0, 1.0, 0.0}, - {1.0, 0.0, 0.0}, - {0.0, -1.0, 0.0}, - {0.0, 0.0, 1.0}, - {0.0, 0.0, -1.0} - }; - static GLint faces[6][4] = - { - {0, 1, 2, 3}, - {3, 2, 6, 7}, - {7, 6, 5, 4}, - {4, 5, 1, 0}, - {5, 6, 2, 1}, - {7, 4, 0, 3} - }; - GLfloat v[8][3]; - GLint i; - - v[0][0] = v[1][0] = v[2][0] = v[3][0] = -size / 2; - v[4][0] = v[5][0] = v[6][0] = v[7][0] = size / 2; - v[0][1] = v[1][1] = v[4][1] = v[5][1] = -size / 2; - v[2][1] = v[3][1] = v[6][1] = v[7][1] = size / 2; - v[0][2] = v[3][2] = v[4][2] = v[7][2] = -size / 2; - v[1][2] = v[2][2] = v[5][2] = v[6][2] = size / 2; - - for (i = 5; i >= 0; i--) { - glBegin(type); - glNormal3fv(&n[i][0]); - glVertex3fv(&v[faces[i][0]][0]); - glVertex3fv(&v[faces[i][1]][0]); - glVertex3fv(&v[faces[i][2]][0]); - glVertex3fv(&v[faces[i][3]][0]); - glEnd(); - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireCube(GLdouble size) -{ - drawBox(size, GL_LINE_LOOP); -} - -void GLUTAPIENTRY -glutSolidCube(GLdouble size) -{ - drawBox(size, GL_QUADS); -} - -/* ENDCENTRY */ - -static void -doughnut(GLfloat r, GLfloat R, GLint nsides, GLint rings) -{ - int i, j; - GLfloat theta, phi, theta1; - GLfloat cosTheta, sinTheta; - GLfloat cosTheta1, sinTheta1; - GLfloat ringDelta, sideDelta; - - ringDelta = 2.0 * M_PI / rings; - sideDelta = 2.0 * M_PI / nsides; - - theta = 0.0; - cosTheta = 1.0; - sinTheta = 0.0; - for (i = rings - 1; i >= 0; i--) { - theta1 = theta + ringDelta; - cosTheta1 = cos(theta1); - sinTheta1 = sin(theta1); - glBegin(GL_QUAD_STRIP); - phi = 0.0; - for (j = nsides; j >= 0; j--) { - GLfloat cosPhi, sinPhi, dist; - - phi += sideDelta; - cosPhi = cos(phi); - sinPhi = sin(phi); - dist = R + r * cosPhi; - - glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); - glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); - glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); - glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi); - } - glEnd(); - theta = theta1; - cosTheta = cosTheta1; - sinTheta = sinTheta1; - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, - GLint nsides, GLint rings) -{ - glPushAttrib(GL_POLYGON_BIT); - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - doughnut(innerRadius, outerRadius, nsides, rings); - glPopAttrib(); -} - -void GLUTAPIENTRY -glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, - GLint nsides, GLint rings) -{ - doughnut(innerRadius, outerRadius, nsides, rings); -} - -/* ENDCENTRY */ - -static GLfloat dodec[20][3]; - -static void -initDodecahedron(void) -{ - GLfloat alpha, beta; - - alpha = sqrt(2.0 / (3.0 + sqrt(5.0))); - beta = 1.0 + sqrt(6.0 / (3.0 + sqrt(5.0)) - - 2.0 + 2.0 * sqrt(2.0 / (3.0 + sqrt(5.0)))); - /* *INDENT-OFF* */ - dodec[0][0] = -alpha; dodec[0][1] = 0; dodec[0][2] = beta; - dodec[1][0] = alpha; dodec[1][1] = 0; dodec[1][2] = beta; - dodec[2][0] = -1; dodec[2][1] = -1; dodec[2][2] = -1; - dodec[3][0] = -1; dodec[3][1] = -1; dodec[3][2] = 1; - dodec[4][0] = -1; dodec[4][1] = 1; dodec[4][2] = -1; - dodec[5][0] = -1; dodec[5][1] = 1; dodec[5][2] = 1; - dodec[6][0] = 1; dodec[6][1] = -1; dodec[6][2] = -1; - dodec[7][0] = 1; dodec[7][1] = -1; dodec[7][2] = 1; - dodec[8][0] = 1; dodec[8][1] = 1; dodec[8][2] = -1; - dodec[9][0] = 1; dodec[9][1] = 1; dodec[9][2] = 1; - dodec[10][0] = beta; dodec[10][1] = alpha; dodec[10][2] = 0; - dodec[11][0] = beta; dodec[11][1] = -alpha; dodec[11][2] = 0; - dodec[12][0] = -beta; dodec[12][1] = alpha; dodec[12][2] = 0; - dodec[13][0] = -beta; dodec[13][1] = -alpha; dodec[13][2] = 0; - dodec[14][0] = -alpha; dodec[14][1] = 0; dodec[14][2] = -beta; - dodec[15][0] = alpha; dodec[15][1] = 0; dodec[15][2] = -beta; - dodec[16][0] = 0; dodec[16][1] = beta; dodec[16][2] = alpha; - dodec[17][0] = 0; dodec[17][1] = beta; dodec[17][2] = -alpha; - dodec[18][0] = 0; dodec[18][1] = -beta; dodec[18][2] = alpha; - dodec[19][0] = 0; dodec[19][1] = -beta; dodec[19][2] = -alpha; - /* *INDENT-ON* */ - -} - -#define DIFF3(_a,_b,_c) { \ - (_c)[0] = (_a)[0] - (_b)[0]; \ - (_c)[1] = (_a)[1] - (_b)[1]; \ - (_c)[2] = (_a)[2] - (_b)[2]; \ -} - -static void -crossprod(GLfloat v1[3], GLfloat v2[3], GLfloat prod[3]) -{ - GLfloat p[3]; /* in case prod == v1 or v2 */ - - p[0] = v1[1] * v2[2] - v2[1] * v1[2]; - p[1] = v1[2] * v2[0] - v2[2] * v1[0]; - p[2] = v1[0] * v2[1] - v2[0] * v1[1]; - prod[0] = p[0]; - prod[1] = p[1]; - prod[2] = p[2]; -} - -static void -normalize(GLfloat v[3]) -{ - GLfloat d; - - d = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); - if (d == 0.0) { - __glutWarning("normalize: zero length vector"); - v[0] = d = 1.0; - } - d = 1 / d; - v[0] *= d; - v[1] *= d; - v[2] *= d; -} - -static void -pentagon(int a, int b, int c, int d, int e, GLenum shadeType) -{ - GLfloat n0[3], d1[3], d2[3]; - - DIFF3(dodec[a], dodec[b], d1); - DIFF3(dodec[b], dodec[c], d2); - crossprod(d1, d2, n0); - normalize(n0); - - glBegin(shadeType); - glNormal3fv(n0); - glVertex3fv(&dodec[a][0]); - glVertex3fv(&dodec[b][0]); - glVertex3fv(&dodec[c][0]); - glVertex3fv(&dodec[d][0]); - glVertex3fv(&dodec[e][0]); - glEnd(); -} - -static void -dodecahedron(GLenum type) -{ - static int inited = 0; - - if (inited == 0) { - inited = 1; - initDodecahedron(); - } - pentagon(0, 1, 9, 16, 5, type); - pentagon(1, 0, 3, 18, 7, type); - pentagon(1, 7, 11, 10, 9, type); - pentagon(11, 7, 18, 19, 6, type); - pentagon(8, 17, 16, 9, 10, type); - pentagon(2, 14, 15, 6, 19, type); - pentagon(2, 13, 12, 4, 14, type); - pentagon(2, 19, 18, 3, 13, type); - pentagon(3, 0, 5, 12, 13, type); - pentagon(6, 15, 8, 10, 11, type); - pentagon(4, 17, 8, 15, 14, type); - pentagon(4, 12, 5, 16, 17, type); -} - -/* CENTRY */ -void GLUTAPIENTRY glutWireDodecahedron(void) -{ - dodecahedron(GL_LINE_LOOP); -} - -void GLUTAPIENTRY -glutSolidDodecahedron(void) -{ - dodecahedron(GL_TRIANGLE_FAN); -} - -/* ENDCENTRY */ - -static void -recorditem(GLfloat * n1, GLfloat * n2, GLfloat * n3, - GLenum shadeType) -{ - GLfloat q0[3], q1[3]; - - DIFF3(n1, n2, q0); - DIFF3(n2, n3, q1); - crossprod(q0, q1, q1); - normalize(q1); - - glBegin(shadeType); - glNormal3fv(q1); - glVertex3fv(n1); - glVertex3fv(n2); - glVertex3fv(n3); - glEnd(); -} - -static void -subdivide(GLfloat * v0, GLfloat * v1, GLfloat * v2, - GLenum shadeType) -{ - int depth; - GLfloat w0[3], w1[3], w2[3]; - GLfloat l; - int i, j, k, n; - - depth = 1; - for (i = 0; i < depth; i++) { - for (j = 0; i + j < depth; j++) { - k = depth - i - j; - for (n = 0; n < 3; n++) { - w0[n] = (i * v0[n] + j * v1[n] + k * v2[n]) / depth; - w1[n] = ((i + 1) * v0[n] + j * v1[n] + (k - 1) * v2[n]) - / depth; - w2[n] = (i * v0[n] + (j + 1) * v1[n] + (k - 1) * v2[n]) - / depth; - } - l = sqrt(w0[0] * w0[0] + w0[1] * w0[1] + w0[2] * w0[2]); - w0[0] /= l; - w0[1] /= l; - w0[2] /= l; - l = sqrt(w1[0] * w1[0] + w1[1] * w1[1] + w1[2] * w1[2]); - w1[0] /= l; - w1[1] /= l; - w1[2] /= l; - l = sqrt(w2[0] * w2[0] + w2[1] * w2[1] + w2[2] * w2[2]); - w2[0] /= l; - w2[1] /= l; - w2[2] /= l; - recorditem(w1, w0, w2, shadeType); - } - } -} - -static void -drawtriangle(int i, GLfloat data[][3], int ndx[][3], - GLenum shadeType) -{ - GLfloat *x0, *x1, *x2; - - x0 = data[ndx[i][0]]; - x1 = data[ndx[i][1]]; - x2 = data[ndx[i][2]]; - subdivide(x0, x1, x2, shadeType); -} - -/* octahedron data: The octahedron produced is centered at the - origin and has radius 1.0 */ -static GLfloat odata[6][3] = -{ - {1.0, 0.0, 0.0}, - {-1.0, 0.0, 0.0}, - {0.0, 1.0, 0.0}, - {0.0, -1.0, 0.0}, - {0.0, 0.0, 1.0}, - {0.0, 0.0, -1.0} -}; - -static int ondex[8][3] = -{ - {0, 4, 2}, - {1, 2, 4}, - {0, 3, 4}, - {1, 4, 3}, - {0, 2, 5}, - {1, 5, 2}, - {0, 5, 3}, - {1, 3, 5} -}; - -static void -octahedron(GLenum shadeType) -{ - int i; - - for (i = 7; i >= 0; i--) { - drawtriangle(i, odata, ondex, shadeType); - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireOctahedron(void) -{ - octahedron(GL_LINE_LOOP); -} - -void GLUTAPIENTRY -glutSolidOctahedron(void) -{ - octahedron(GL_TRIANGLES); -} - -/* ENDCENTRY */ - -/* icosahedron data: These numbers are rigged to make an - icosahedron of radius 1.0 */ - -#define X .525731112119133606 -#define Z .850650808352039932 - -static GLfloat idata[12][3] = -{ - {-X, 0, Z}, - {X, 0, Z}, - {-X, 0, -Z}, - {X, 0, -Z}, - {0, Z, X}, - {0, Z, -X}, - {0, -Z, X}, - {0, -Z, -X}, - {Z, X, 0}, - {-Z, X, 0}, - {Z, -X, 0}, - {-Z, -X, 0} -}; - -static int index[20][3] = -{ - {0, 4, 1}, - {0, 9, 4}, - {9, 5, 4}, - {4, 5, 8}, - {4, 8, 1}, - {8, 10, 1}, - {8, 3, 10}, - {5, 3, 8}, - {5, 2, 3}, - {2, 7, 3}, - {7, 10, 3}, - {7, 6, 10}, - {7, 11, 6}, - {11, 0, 6}, - {0, 1, 6}, - {6, 1, 10}, - {9, 0, 11}, - {9, 11, 2}, - {9, 2, 5}, - {7, 2, 11}, -}; - -static void -icosahedron(GLenum shadeType) -{ - int i; - - for (i = 19; i >= 0; i--) { - drawtriangle(i, idata, index, shadeType); - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireIcosahedron(void) -{ - icosahedron(GL_LINE_LOOP); -} - -void GLUTAPIENTRY -glutSolidIcosahedron(void) -{ - icosahedron(GL_TRIANGLES); -} - -/* ENDCENTRY */ - -/* tetrahedron data: */ - -#define T 1.73205080756887729 - -static GLfloat tdata[4][3] = -{ - {T, T, T}, - {T, -T, -T}, - {-T, T, -T}, - {-T, -T, T} -}; - -static int tndex[4][3] = -{ - {0, 1, 3}, - {2, 1, 0}, - {3, 2, 0}, - {1, 2, 3} -}; - -static void -tetrahedron(GLenum shadeType) -{ - int i; - - for (i = 3; i >= 0; i--) - drawtriangle(i, tdata, tndex, shadeType); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutWireTetrahedron(void) -{ - tetrahedron(GL_LINE_LOOP); -} - -void GLUTAPIENTRY -glutSolidTetrahedron(void) -{ - tetrahedron(GL_TRIANGLES); -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_stroke.cpp b/src/glut/os2/glut_stroke.cpp deleted file mode 100644 index ac231e4973..0000000000 --- a/src/glut/os2/glut_stroke.cpp +++ /dev/null @@ -1,42 +0,0 @@ - -/* 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. */ - -#include "glutint.h" -#include "glutstroke.h" - -void GLUTAPIENTRY -glutStrokeCharacter(GLUTstrokeFont font, int c) -{ - const StrokeCharRec *ch; - const StrokeRec *stroke; - const CoordRec *coord; - StrokeFontPtr fontinfo; - int i, j; - - -#if defined(_WIN32) - fontinfo = (StrokeFontPtr) __glutFont(font); -#else - fontinfo = (StrokeFontPtr) font; -#endif - - if (c < 0 || c >= fontinfo->num_chars) - return; - ch = &(fontinfo->ch[c]); - if (ch) { - for (i = ch->num_strokes, stroke = ch->stroke; - i > 0; i--, stroke++) { - glBegin(GL_LINE_STRIP); - for (j = stroke->num_coords, coord = stroke->coord; - j > 0; j--, coord++) { - glVertex2f(coord->x, coord->y); - } - glEnd(); - } - glTranslatef(ch->right, 0.0, 0.0); - } -} diff --git a/src/glut/os2/glut_swap.cpp b/src/glut/os2/glut_swap.cpp deleted file mode 100644 index 4831b8eb35..0000000000 --- a/src/glut/os2/glut_swap.cpp +++ /dev/null @@ -1,67 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997. */ - -/* 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. */ - -#include <stdio.h> -#include "glutint.h" - -GLint __glutFPS = 0; -GLint __glutSwapCount = 0; -GLint __glutSwapTime = 0; - -/* CENTRY */ -void GLUTAPIENTRY -glutSwapBuffers(void) -{ - GLUTwindow *window = __glutCurrentWindow; - - if (window->renderWin == window->win) { - if (__glutCurrentWindow->treatAsSingle) { - /* Pretend the double buffered window is single buffered, - so treat glutSwapBuffers as a no-op. */ - return; - } - } else { - if (__glutCurrentWindow->overlay->treatAsSingle) { - /* Pretend the double buffered overlay is single - buffered, so treat glutSwapBuffers as a no-op. */ - return; - } - } - - /* For the MESA_SWAP_HACK. */ - window->usedSwapBuffers = 1; - - SWAP_BUFFERS_LAYER(__glutCurrentWindow); - - /* I considered putting the window being swapped on the - GLUT_FINISH_WORK work list because you could call - glutSwapBuffers from an idle callback which doesn't call - __glutSetWindow which normally adds indirect rendering - windows to the GLUT_FINISH_WORK work list. Not being put - on the list could lead to the buffering up of multiple - redisplays and buffer swaps and hamper interactivity. I - consider this an application bug due to not using - glutPostRedisplay to trigger redraws. If - glutPostRedisplay were used, __glutSetWindow would be - called and a glFinish to throttle buffering would occur. */ - - if (__glutFPS) { - GLint t = glutGet(GLUT_ELAPSED_TIME); - __glutSwapCount++; - if (__glutSwapTime == 0) - __glutSwapTime = t; - else if (t - __glutSwapTime > __glutFPS) { - float time = 0.001 * (t - __glutSwapTime); - float fps = (float) __glutSwapCount / time; - fprintf(stderr, "GLUT: %d frames in %.2f seconds = %.2f FPS\n", - __glutSwapCount, time, fps); - __glutSwapTime = t; - __glutSwapCount = 0; - } - } -} -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_teapot.cpp b/src/glut/os2/glut_teapot.cpp deleted file mode 100644 index 31bbbbd6df..0000000000 --- a/src/glut/os2/glut_teapot.cpp +++ /dev/null @@ -1,210 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994. */ - -/** -(c) Copyright 1993, Silicon Graphics, Inc. - -ALL RIGHTS RESERVED - -Permission to use, copy, modify, and distribute this software -for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that -both the copyright notice and this permission notice appear in -supporting documentation, and that the name of Silicon -Graphics, Inc. not be used in advertising or publicity -pertaining to distribution of the software without specific, -written prior permission. - -THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU -"AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR -OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO -EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE -ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, -INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, -SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR -NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY -OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR -PERFORMANCE OF THIS SOFTWARE. - -US Government Users Restricted Rights - -Use, duplication, or disclosure by the Government is subject to -restrictions set forth in FAR 52.227.19(c)(2) or subparagraph -(c)(1)(ii) of the Rights in Technical Data and Computer -Software clause at DFARS 252.227-7013 and/or in similar or -successor clauses in the FAR or the DOD or NASA FAR -Supplement. Unpublished-- rights reserved under the copyright -laws of the United States. Contractor/manufacturer is Silicon -Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA -94039-7311. - -OpenGL(TM) is a trademark of Silicon Graphics, Inc. -*/ - -#include "glutint.h" - -/* Rim, body, lid, and bottom data must be reflected in x and - y; handle and spout data across the y axis only. */ - -static int patchdata[][16] = -{ - /* rim */ - {102, 103, 104, 105, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15}, - /* body */ - {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27}, - {24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40}, - /* lid */ - {96, 96, 96, 96, 97, 98, 99, 100, 101, 101, 101, - 101, 0, 1, 2, 3,}, - {0, 1, 2, 3, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117}, - /* bottom */ - {118, 118, 118, 118, 124, 122, 119, 121, 123, 126, - 125, 120, 40, 39, 38, 37}, - /* handle */ - {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56}, - {53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 28, 65, 66, 67}, - /* spout */ - {68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83}, - {80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95} -}; -/* *INDENT-OFF* */ - -static float cpdata[][3] = -{ - {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0, - -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125}, - {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375, - 0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375, - 2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84, - 2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875}, - {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75, - 1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35}, - {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2, - 0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12, - 0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225}, - {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225}, - {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0, - -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5, - -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3, - 2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0, - 2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0, - 2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8}, - {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3, - -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3, - 1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2, - -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0, - 1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0, - 0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66, - 0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1}, - {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7, - -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0, - 2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375}, - {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475}, - {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4}, - {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0, - 3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8, - 3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4, - -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0, - 2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4, - 2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3, - 2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4}, - {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425, - -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425, - 0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075}, - {0.84, -1.5, 0.075} -}; - -static float tex[2][2][2] = -{ - { {0, 0}, - {1, 0}}, - { {0, 1}, - {1, 1}} -}; - -/* *INDENT-ON* */ - -static void -teapot(GLint grid, GLdouble scale, GLenum type) -{ - float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3]; - long i, j, k, l; - - glPushAttrib(GL_ENABLE_BIT | GL_EVAL_BIT); - glEnable(GL_AUTO_NORMAL); - glEnable(GL_NORMALIZE); - glEnable(GL_MAP2_VERTEX_3); - glEnable(GL_MAP2_TEXTURE_COORD_2); - glPushMatrix(); - glRotatef(270.0, 1.0, 0.0, 0.0); - glScalef(0.5 * scale, 0.5 * scale, 0.5 * scale); - glTranslatef(0.0, 0.0, -1.5); - for (i = 0; i < 10; i++) { - for (j = 0; j < 4; j++) { - for (k = 0; k < 4; k++) { - for (l = 0; l < 3; l++) { - p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; - q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l]; - if (l == 1) - q[j][k][l] *= -1.0; - if (i < 6) { - r[j][k][l] = - cpdata[patchdata[i][j * 4 + (3 - k)]][l]; - if (l == 0) - r[j][k][l] *= -1.0; - s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; - if (l == 0) - s[j][k][l] *= -1.0; - if (l == 1) - s[j][k][l] *= -1.0; - } - } - } - } - glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2, - &tex[0][0][0]); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &p[0][0][0]); - glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0); - glEvalMesh2(type, 0, grid, 0, grid); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &q[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - if (i < 6) { - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &r[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, - &s[0][0][0]); - glEvalMesh2(type, 0, grid, 0, grid); - } - } - glPopMatrix(); - glPopAttrib(); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutSolidTeapot(GLdouble scale) -{ - teapot(7, scale, GL_FILL); -} - -void GLUTAPIENTRY -glutWireTeapot(GLdouble scale) -{ - teapot(10, scale, GL_LINE); -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_tr24.cpp b/src/glut/os2/glut_tr24.cpp deleted file mode 100644 index a3cbf4b62b..0000000000 --- a/src/glut/os2/glut_tr24.cpp +++ /dev/null @@ -1,2063 +0,0 @@ - -/* GENERATED FILE -- DO NOT MODIFY */ - -#define glutBitmapTimesRoman24 XXX -#include "glutbitmap.h" -#undef glutBitmapTimesRoman24 - -/* char: 0xff */ - -static const GLubyte ch255data[] = { -0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, -0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, -0xf1,0xe0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0, -}; - -static const BitmapCharRec ch255 = {11,21,0,5,11,ch255data}; - -/* char: 0xfe */ - -static const GLubyte ch254data[] = { -0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, -0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0xe0,0x0, -}; - -static const BitmapCharRec ch254 = {10,22,-1,5,12,ch254data}; - -/* char: 0xfd */ - -static const GLubyte ch253data[] = { -0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, -0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, -0xf1,0xe0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80,0x1,0x80, -}; - -static const BitmapCharRec ch253 = {11,22,0,5,11,ch253data}; - -/* char: 0xfc */ - -static const GLubyte ch252data[] = { -0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0, -}; - -static const BitmapCharRec ch252 = {11,16,-1,0,13,ch252data}; - -/* char: 0xfb */ - -static const GLubyte ch251data[] = { -0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, -0xc,0x0, -}; - -static const BitmapCharRec ch251 = {11,17,-1,0,13,ch251data}; - -/* char: 0xfa */ - -static const GLubyte ch250data[] = { -0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, -0x1,0x80, -}; - -static const BitmapCharRec ch250 = {11,17,-1,0,13,ch250data}; - -/* char: 0xf9 */ - -static const GLubyte ch249data[] = { -0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, -0x30,0x0, -}; - -static const BitmapCharRec ch249 = {11,17,-1,0,13,ch249data}; - -/* char: 0xf8 */ - -static const GLubyte ch248data[] = { -0xc0,0x0,0xde,0x0,0x73,0x80,0x71,0x80,0xd0,0xc0,0xd8,0xc0,0xc8,0xc0,0xcc,0xc0, -0xc4,0xc0,0xc6,0xc0,0x63,0x80,0x73,0x80,0x1e,0xc0,0x0,0xc0, -}; - -static const BitmapCharRec ch248 = {10,14,-1,1,12,ch248data}; - -/* char: 0xf7 */ - -static const GLubyte ch247data[] = { -0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0, -0x6,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch247 = {12,10,-1,-2,14,ch247data}; - -/* char: 0xf6 */ - -static const GLubyte ch246data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0, -}; - -static const BitmapCharRec ch246 = {10,16,-1,0,12,ch246data}; - -/* char: 0xf5 */ - -static const GLubyte ch245data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80, -}; - -static const BitmapCharRec ch245 = {10,16,-1,0,12,ch245data}; - -/* char: 0xf4 */ - -static const GLubyte ch244data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, -0xc,0x0, -}; - -static const BitmapCharRec ch244 = {10,17,-1,0,12,ch244data}; - -/* char: 0xf3 */ - -static const GLubyte ch243data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, -0x1,0x80, -}; - -static const BitmapCharRec ch243 = {10,17,-1,0,12,ch243data}; - -/* char: 0xf2 */ - -static const GLubyte ch242data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, -0x30,0x0, -}; - -static const BitmapCharRec ch242 = {10,17,-1,0,12,ch242data}; - -/* char: 0xf1 */ - -static const GLubyte ch241data[] = { -0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80, -}; - -static const BitmapCharRec ch241 = {11,16,-1,0,13,ch241data}; - -/* char: 0xf0 */ - -static const GLubyte ch240data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1f,0x0,0xc6,0x0,0x3c,0x0,0x1e,0x0,0x71,0x80, -0xc0,0x0, -}; - -static const BitmapCharRec ch240 = {10,17,-1,0,12,ch240data}; - -/* char: 0xef */ - -static const GLubyte ch239data[] = { -0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x0,0xcc,0xcc, -}; - -static const BitmapCharRec ch239 = {6,16,0,0,6,ch239data}; - -/* char: 0xee */ - -static const GLubyte ch238data[] = { -0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x84,0x48,0x78, -0x30, -}; - -static const BitmapCharRec ch238 = {6,17,0,0,6,ch238data}; - -/* char: 0xed */ - -static const GLubyte ch237data[] = { -0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x80,0x60,0x38, -0x18, -}; - -static const BitmapCharRec ch237 = {5,17,-1,0,6,ch237data}; - -/* char: 0xec */ - -static const GLubyte ch236data[] = { -0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x8,0x30,0xe0, -0xc0, -}; - -static const BitmapCharRec ch236 = {5,17,0,0,6,ch236data}; - -/* char: 0xeb */ - -static const GLubyte ch235data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, -0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0, -}; - -static const BitmapCharRec ch235 = {9,16,-1,0,11,ch235data}; - -/* char: 0xea */ - -static const GLubyte ch234data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, -0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, -0xc,0x0, -}; - -static const BitmapCharRec ch234 = {9,17,-1,0,11,ch234data}; - -/* char: 0xe9 */ - -static const GLubyte ch233data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, -0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, -0x3,0x0, -}; - -static const BitmapCharRec ch233 = {9,17,-1,0,11,ch233data}; - -/* char: 0xe8 */ - -static const GLubyte ch232data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, -0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, -0x60,0x0, -}; - -static const BitmapCharRec ch232 = {9,17,-1,0,11,ch232data}; - -/* char: 0xe7 */ - -static const GLubyte ch231data[] = { -0x3c,0x0,0x66,0x0,0x6,0x0,0x1e,0x0,0x18,0x0,0x8,0x0,0x1e,0x0,0x7f,0x0, -0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x41,0x80, -0x63,0x80,0x1f,0x0, -}; - -static const BitmapCharRec ch231 = {9,18,-1,6,11,ch231data}; - -/* char: 0xe6 */ - -static const GLubyte ch230data[] = { -0x70,0xf0,0xfb,0xf8,0xc7,0x84,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0xfc, -0x3,0xc,0x63,0xc,0x67,0x98,0x3c,0xf0, -}; - -static const BitmapCharRec ch230 = {14,12,-1,0,16,ch230data}; - -/* char: 0xe5 */ - -static const GLubyte ch229data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x22,0x0, -0x1c,0x0, -}; - -static const BitmapCharRec ch229 = {9,17,-1,0,11,ch229data}; - -/* char: 0xe4 */ - -static const GLubyte ch228data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x66,0x0,0x66,0x0, -}; - -static const BitmapCharRec ch228 = {9,16,-1,0,11,ch228data}; - -/* char: 0xe3 */ - -static const GLubyte ch227data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x5c,0x0,0x3a,0x0, -}; - -static const BitmapCharRec ch227 = {9,16,-1,0,11,ch227data}; - -/* char: 0xe2 */ - -static const GLubyte ch226data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x42,0x0,0x24,0x0,0x3c,0x0, -0x18,0x0, -}; - -static const BitmapCharRec ch226 = {9,17,-1,0,11,ch226data}; - -/* char: 0xe1 */ - -static const GLubyte ch225data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, -0x3,0x0, -}; - -static const BitmapCharRec ch225 = {9,17,-1,0,11,ch225data}; - -/* char: 0xe0 */ - -static const GLubyte ch224data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, -0x60,0x0, -}; - -static const BitmapCharRec ch224 = {9,17,-1,0,11,ch224data}; - -/* char: 0xdf */ - -static const GLubyte ch223data[] = { -0xe7,0x0,0x6c,0x80,0x6c,0xc0,0x60,0xc0,0x60,0xc0,0x61,0xc0,0x61,0x80,0x63,0x80, -0x67,0x0,0x6c,0x0,0x63,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, -0x1e,0x0, -}; - -static const BitmapCharRec ch223 = {10,17,-1,0,12,ch223data}; - -/* char: 0xde */ - -static const GLubyte ch222data[] = { -0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18, -0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70,0x3f,0xc0,0x30,0x0,0x30,0x0,0x30,0x0, -0xfc,0x0, -}; - -static const BitmapCharRec ch222 = {13,17,-1,0,15,ch222data}; - -/* char: 0xdd */ - -static const GLubyte ch221data[] = { -0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, -0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, -0xfc,0x3f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30, -}; - -static const BitmapCharRec ch221 = {16,22,0,0,16,ch221data}; - -/* char: 0xdc */ - -static const GLubyte ch220data[] = { -0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0xfc,0x1f,0x0,0x0,0x0,0x0,0x6,0x30,0x6,0x30, -}; - -static const BitmapCharRec ch220 = {16,21,-1,0,18,ch220data}; - -/* char: 0xdb */ - -static const GLubyte ch219data[] = { -0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0xfc,0x1f,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80, -}; - -static const BitmapCharRec ch219 = {16,22,-1,0,18,ch219data}; - -/* char: 0xda */ - -static const GLubyte ch218data[] = { -0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0xfc,0x1f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30, -}; - -static const BitmapCharRec ch218 = {16,22,-1,0,18,ch218data}; - -/* char: 0xd9 */ - -static const GLubyte ch217data[] = { -0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0xfc,0x1f,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch217 = {16,22,-1,0,18,ch217data}; - -/* char: 0xd8 */ - -static const GLubyte ch216data[] = { -0x20,0x0,0x27,0xe0,0x1c,0x38,0x38,0x1c,0x68,0x6,0x64,0x6,0xc2,0x3,0xc2,0x3, -0xc1,0x3,0xc1,0x3,0xc0,0x83,0xc0,0x83,0xc0,0x43,0x60,0x46,0x60,0x26,0x38,0x1c, -0x1c,0x38,0x7,0xe4,0x0,0x4, -}; - -static const BitmapCharRec ch216 = {16,19,-1,1,18,ch216data}; - -/* char: 0xd7 */ - -static const GLubyte ch215data[] = { -0x80,0x40,0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0, -0x61,0x80,0xc0,0xc0,0x80,0x40, -}; - -static const BitmapCharRec ch215 = {10,11,-2,-1,14,ch215data}; - -/* char: 0xd6 */ - -static const GLubyte ch214data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0,0x0,0x0,0x0,0x0,0x6,0x60,0x6,0x60, -}; - -static const BitmapCharRec ch214 = {16,21,-1,0,18,ch214data}; - -/* char: 0xd5 */ - -static const GLubyte ch213data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90, -}; - -static const BitmapCharRec ch213 = {16,21,-1,0,18,ch213data}; - -/* char: 0xd4 */ - -static const GLubyte ch212data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80, -}; - -static const BitmapCharRec ch212 = {16,22,-1,0,18,ch212data}; - -/* char: 0xd3 */ - -static const GLubyte ch211data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30, -}; - -static const BitmapCharRec ch211 = {16,22,-1,0,18,ch211data}; - -/* char: 0xd2 */ - -static const GLubyte ch210data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch210 = {16,22,-1,0,18,ch210data}; - -/* char: 0xd1 */ - -static const GLubyte ch209data[] = { -0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, -0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, -0xf0,0x1f,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90, -}; - -static const BitmapCharRec ch209 = {16,21,-1,0,18,ch209data}; - -/* char: 0xd0 */ - -static const GLubyte ch208data[] = { -0x7f,0xe0,0x18,0x38,0x18,0x1c,0x18,0x6,0x18,0x6,0x18,0x3,0x18,0x3,0x18,0x3, -0xff,0x3,0x18,0x3,0x18,0x3,0x18,0x3,0x18,0x6,0x18,0x6,0x18,0x1c,0x18,0x38, -0x7f,0xe0, -}; - -static const BitmapCharRec ch208 = {16,17,0,0,17,ch208data}; - -/* char: 0xcf */ - -static const GLubyte ch207data[] = { -0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0xfc,0x0,0x0,0xcc,0xcc, -}; - -static const BitmapCharRec ch207 = {6,21,-1,0,8,ch207data}; - -/* char: 0xce */ - -static const GLubyte ch206data[] = { -0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x7e,0x0,0x81,0x66,0x3c,0x18, -}; - -static const BitmapCharRec ch206 = {8,22,-1,0,8,ch206data}; - -/* char: 0xcd */ - -static const GLubyte ch205data[] = { -0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0xfc,0x0,0x40,0x30,0x1c,0xc, -}; - -static const BitmapCharRec ch205 = {6,22,-1,0,8,ch205data}; - -/* char: 0xcc */ - -static const GLubyte ch204data[] = { -0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0xfc,0x0,0x8,0x30,0xe0,0xc0, -}; - -static const BitmapCharRec ch204 = {6,22,-1,0,8,ch204data}; - -/* char: 0xcb */ - -static const GLubyte ch203data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, -0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0,0x0,0x0,0x0,0x0,0x19,0x80,0x19,0x80, -}; - -static const BitmapCharRec ch203 = {13,21,-1,0,15,ch203data}; - -/* char: 0xca */ - -static const GLubyte ch202data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, -0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0,0x0,0x0,0x10,0x20,0xc,0xc0,0x7,0x80,0x3,0x0, -}; - -static const BitmapCharRec ch202 = {13,22,-1,0,15,ch202data}; - -/* char: 0xc9 */ - -static const GLubyte ch201data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, -0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0,0x0,0x0,0x4,0x0,0x3,0x0,0x1,0xc0,0x0,0xc0, -}; - -static const BitmapCharRec ch201 = {13,22,-1,0,15,ch201data}; - -/* char: 0xc8 */ - -static const GLubyte ch200data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, -0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0,0x0,0x0,0x1,0x0,0x6,0x0,0x1c,0x0,0x18,0x0, -}; - -static const BitmapCharRec ch200 = {13,22,-1,0,15,ch200data}; - -/* char: 0xc7 */ - -static const GLubyte ch199data[] = { -0x7,0x80,0xc,0xc0,0x0,0xc0,0x3,0xc0,0x3,0x0,0x1,0x0,0x7,0xe0,0x1e,0x38, -0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c,0x7,0xe4, -}; - -static const BitmapCharRec ch199 = {14,23,-1,6,16,ch199data}; - -/* char: 0xc6 */ - -static const GLubyte ch198data[] = { -0xf9,0xff,0xf0,0x30,0x60,0x30,0x10,0x60,0x10,0x10,0x60,0x10,0x18,0x60,0x0,0x8, -0x60,0x0,0xf,0xe0,0x80,0xc,0x60,0x80,0x4,0x7f,0x80,0x4,0x60,0x80,0x6,0x60, -0x80,0x2,0x60,0x0,0x2,0x60,0x0,0x1,0x60,0x20,0x1,0x60,0x20,0x1,0xe0,0x60, -0x3,0xff,0xe0, -}; - -static const BitmapCharRec ch198 = {20,17,0,0,21,ch198data}; - -/* char: 0xc5 */ - -static const GLubyte ch197data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x1,0xc0,0x0,0x2,0x20,0x0,0x2,0x20,0x0,0x1,0xc0,0x0, -}; - -static const BitmapCharRec ch197 = {17,21,0,0,17,ch197data}; - -/* char: 0xc4 */ - -static const GLubyte ch196data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x30,0x0,0x6,0x30,0x0, -}; - -static const BitmapCharRec ch196 = {17,21,0,0,17,ch196data}; - -/* char: 0xc3 */ - -static const GLubyte ch195data[] = { -0xfc,0x1f,0x80,0x30,0x7,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0xe0,0x0,0x3,0x90,0x0, -}; - -static const BitmapCharRec ch195 = {17,21,0,0,17,ch195data}; - -/* char: 0xc2 */ - -static const GLubyte ch194data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x0,0x0,0x0,0x8,0x10,0x0,0x6,0x60,0x0,0x3,0xc0,0x0,0x1, -0x80,0x0, -}; - -static const BitmapCharRec ch194 = {17,22,0,0,17,ch194data}; - -/* char: 0xc1 */ - -static const GLubyte ch193data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xc0,0x0,0x0,0x70,0x0,0x0, -0x30,0x0, -}; - -static const BitmapCharRec ch193 = {17,22,0,0,17,ch193data}; - -/* char: 0xc0 */ - -static const GLubyte ch192data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0xc0,0x0,0x3,0x80,0x0,0x3, -0x0,0x0, -}; - -static const BitmapCharRec ch192 = {17,22,0,0,17,ch192data}; - -/* char: 0xbf */ - -static const GLubyte ch191data[] = { -0x3e,0x63,0xc1,0xc3,0xc3,0xe0,0x70,0x30,0x38,0x18,0x18,0x8,0x8,0x0,0x0,0xc, -0xc, -}; - -static const BitmapCharRec ch191 = {8,17,-1,5,11,ch191data}; - -/* char: 0xbe */ - -static const GLubyte ch190data[] = { -0x18,0x2,0x0,0x8,0x2,0x0,0xc,0x7f,0x80,0x4,0x22,0x0,0x6,0x32,0x0,0x3, -0x12,0x0,0x1,0xa,0x0,0x71,0x8e,0x0,0x88,0x86,0x0,0x8c,0xc2,0x0,0xc,0x60, -0x0,0x8,0x20,0x0,0x30,0x30,0x0,0x8,0x10,0x0,0x8c,0x18,0x0,0x4c,0xc,0x0, -0x38,0x4,0x0, -}; - -static const BitmapCharRec ch190 = {17,17,0,0,18,ch190data}; - -/* char: 0xbd */ - -static const GLubyte ch189data[] = { -0x30,0x7e,0x10,0x22,0x18,0x10,0x8,0x18,0xc,0x8,0x6,0x4,0x2,0x6,0xfb,0x46, -0x21,0x26,0x21,0x9c,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, -0x20,0x8, -}; - -static const BitmapCharRec ch189 = {15,17,-1,0,18,ch189data}; - -/* char: 0xbc */ - -static const GLubyte ch188data[] = { -0x30,0x4,0x10,0x4,0x18,0xff,0x8,0x44,0xc,0x64,0x6,0x24,0x2,0x14,0xfb,0x1c, -0x21,0xc,0x21,0x84,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, -0x20,0x8, -}; - -static const BitmapCharRec ch188 = {16,17,-1,0,18,ch188data}; - -/* char: 0xbb */ - -static const GLubyte ch187data[] = { -0x88,0x0,0xcc,0x0,0x66,0x0,0x33,0x0,0x19,0x80,0x19,0x80,0x33,0x0,0x66,0x0, -0xcc,0x0,0x88,0x0, -}; - -static const BitmapCharRec ch187 = {9,10,-2,-1,12,ch187data}; - -/* char: 0xba */ - -static const GLubyte ch186data[] = { -0xfc,0x0,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0x78, -}; - -static const BitmapCharRec ch186 = {6,9,-1,-8,8,ch186data}; - -/* char: 0xb9 */ - -static const GLubyte ch185data[] = { -0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xa0,0x60,0x20, -}; - -static const BitmapCharRec ch185 = {5,10,-1,-7,7,ch185data}; - -/* char: 0xb8 */ - -static const GLubyte ch184data[] = { -0x78,0xcc,0xc,0x3c,0x30,0x10, -}; - -static const BitmapCharRec ch184 = {6,6,-1,6,8,ch184data}; - -/* char: 0xb7 */ - -static const GLubyte ch183data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch183 = {2,2,-2,-6,6,ch183data}; - -/* char: 0xb6 */ - -static const GLubyte ch182data[] = { -0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, -0x9,0x0,0x9,0x0,0x9,0x0,0x19,0x0,0x39,0x0,0x79,0x0,0x79,0x0,0xf9,0x0, -0xf9,0x0,0xf9,0x0,0x79,0x0,0x79,0x0,0x39,0x0,0x1f,0x80, -}; - -static const BitmapCharRec ch182 = {9,22,-1,5,11,ch182data}; - -/* char: 0xb5 */ - -static const GLubyte ch181data[] = { -0x40,0x0,0xe0,0x0,0xc0,0x0,0x40,0x0,0x40,0x0,0x5c,0xe0,0x7e,0xc0,0x71,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0xe1,0xc0, -}; - -static const BitmapCharRec ch181 = {11,17,-1,5,13,ch181data}; - -/* char: 0xb4 */ - -static const GLubyte ch180data[] = { -0x80,0x60,0x38,0x18, -}; - -static const BitmapCharRec ch180 = {5,4,-2,-13,8,ch180data}; - -/* char: 0xb3 */ - -static const GLubyte ch179data[] = { -0x70,0x88,0x8c,0xc,0x8,0x30,0x8,0x8c,0x4c,0x38, -}; - -static const BitmapCharRec ch179 = {6,10,0,-7,7,ch179data}; - -/* char: 0xb2 */ - -static const GLubyte ch178data[] = { -0xfc,0x44,0x20,0x30,0x10,0x8,0xc,0x8c,0x4c,0x38, -}; - -static const BitmapCharRec ch178 = {6,10,0,-7,7,ch178data}; - -/* char: 0xb1 */ - -static const GLubyte ch177data[] = { -0xff,0xf0,0xff,0xf0,0x0,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, -0xff,0xf0,0xff,0xf0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch177 = {12,15,-1,0,14,ch177data}; - -/* char: 0xb0 */ - -static const GLubyte ch176data[] = { -0x38,0x44,0x82,0x82,0x82,0x44,0x38, -}; - -static const BitmapCharRec ch176 = {7,7,-1,-10,9,ch176data}; - -/* char: 0xaf */ - -static const GLubyte ch175data[] = { -0xfc,0xfc, -}; - -static const BitmapCharRec ch175 = {6,2,-1,-14,8,ch175data}; - -/* char: 0xae */ - -static const GLubyte ch174data[] = { -0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x60,0x3,0x0,0x47,0x19,0x0,0xc2, -0x31,0x80,0x82,0x20,0x80,0x82,0x40,0x80,0x83,0xe0,0x80,0x82,0x30,0x80,0x82,0x10, -0x80,0xc2,0x11,0x80,0x42,0x31,0x0,0x67,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, -0x7,0xf0,0x0, -}; - -static const BitmapCharRec ch174 = {17,17,-1,0,19,ch174data}; - -/* char: 0xad */ - -static const GLubyte ch173data[] = { -0xfe,0xfe, -}; - -static const BitmapCharRec ch173 = {7,2,-1,-5,9,ch173data}; - -/* char: 0xac */ - -static const GLubyte ch172data[] = { -0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0xff,0xf0,0xff,0xf0, -}; - -static const BitmapCharRec ch172 = {12,7,-1,-3,14,ch172data}; - -/* char: 0xab */ - -static const GLubyte ch171data[] = { -0x8,0x80,0x19,0x80,0x33,0x0,0x66,0x0,0xcc,0x0,0xcc,0x0,0x66,0x0,0x33,0x0, -0x19,0x80,0x8,0x80, -}; - -static const BitmapCharRec ch171 = {9,10,-2,-1,13,ch171data}; - -/* char: 0xaa */ - -static const GLubyte ch170data[] = { -0x7e,0x0,0x76,0xcc,0xcc,0x7c,0xc,0xcc,0x78, -}; - -static const BitmapCharRec ch170 = {7,9,0,-8,8,ch170data}; - -/* char: 0xa9 */ - -static const GLubyte ch169data[] = { -0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x61,0xc3,0x0,0x47,0x71,0x0,0xc4, -0x19,0x80,0x8c,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x8c,0x0, -0x80,0xc4,0x19,0x80,0x47,0x31,0x0,0x61,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, -0x7,0xf0,0x0, -}; - -static const BitmapCharRec ch169 = {17,17,-1,0,19,ch169data}; - -/* char: 0xa8 */ - -static const GLubyte ch168data[] = { -0xcc,0xcc, -}; - -static const BitmapCharRec ch168 = {6,2,-1,-14,8,ch168data}; - -/* char: 0xa7 */ - -static const GLubyte ch167data[] = { -0x38,0x64,0x62,0x6,0xe,0x1c,0x38,0x74,0xe2,0xc3,0x83,0x87,0x4e,0x3c,0x38,0x70, -0x60,0x46,0x26,0x1c, -}; - -static const BitmapCharRec ch167 = {8,20,-2,2,12,ch167data}; - -/* char: 0xa6 */ - -static const GLubyte ch166data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0, -}; - -static const BitmapCharRec ch166 = {2,17,-2,0,6,ch166data}; - -/* char: 0xa5 */ - -static const GLubyte ch165data[] = { -0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1f,0xe0,0x3,0x0,0x1f,0xe0, -0x3,0x0,0x7,0x80,0xc,0x80,0xc,0xc0,0x18,0x40,0x18,0x60,0x30,0x20,0x70,0x30, -0xf8,0x7c, -}; - -static const BitmapCharRec ch165 = {14,17,0,0,14,ch165data}; - -/* char: 0xa4 */ - -static const GLubyte ch164data[] = { -0xc0,0x60,0xee,0xe0,0x7f,0xc0,0x31,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x31,0x80,0x7f,0xc0,0xee,0xe0,0xc0,0x60, -}; - -static const BitmapCharRec ch164 = {11,12,-1,-3,13,ch164data}; - -/* char: 0xa3 */ - -static const GLubyte ch163data[] = { -0xe7,0x80,0xbe,0xc0,0x78,0x40,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, -0x30,0x0,0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x31,0x80,0x19,0x80, -0xf,0x0, -}; - -static const BitmapCharRec ch163 = {10,17,-1,0,12,ch163data}; - -/* char: 0xa2 */ - -static const GLubyte ch162data[] = { -0x40,0x0,0x40,0x0,0x3e,0x0,0x7f,0x0,0x70,0x80,0xd0,0x0,0xc8,0x0,0xc8,0x0, -0xc8,0x0,0xc4,0x0,0xc4,0x0,0x43,0x80,0x63,0x80,0x1f,0x0,0x1,0x0,0x1,0x0, -}; - -static const BitmapCharRec ch162 = {9,16,-1,2,12,ch162data}; - -/* char: 0xa1 */ - -static const GLubyte ch161data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0, -0xc0, -}; - -static const BitmapCharRec ch161 = {2,17,-4,5,8,ch161data}; - -/* char: 0xa0 */ - -#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,6,ch160data}; -#else -static const BitmapCharRec ch160 = {0,0,0,0,6,0}; -#endif - -/* char: 0x7e '~' */ - -static const GLubyte ch126data[] = { -0x83,0x80,0xc7,0xc0,0x7c,0x60,0x38,0x20, -}; - -static const BitmapCharRec ch126 = {11,4,-1,-5,13,ch126data}; - -/* char: 0x7d '}' */ - -static const GLubyte ch125data[] = { -0xe0,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x8,0xc,0x4,0x3,0x4,0xc,0x8,0x18, -0x18,0x18,0x18,0x18,0x30,0xe0, -}; - -static const BitmapCharRec ch125 = {8,22,-1,5,10,ch125data}; - -/* char: 0x7c '|' */ - -static const GLubyte ch124data[] = { -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0, -}; - -static const BitmapCharRec ch124 = {2,17,-2,0,6,ch124data}; - -/* char: 0x7b '{' */ - -static const GLubyte ch123data[] = { -0x7,0xc,0x18,0x18,0x18,0x18,0x18,0x18,0x10,0x30,0x20,0xc0,0x20,0x30,0x10,0x18, -0x18,0x18,0x18,0x18,0xc,0x7, -}; - -static const BitmapCharRec ch123 = {8,22,-1,5,10,ch123data}; - -/* char: 0x7a 'z' */ - -static const GLubyte ch122data[] = { -0xff,0xc3,0x61,0x70,0x30,0x38,0x18,0x1c,0xe,0x86,0xc3,0xff, -}; - -static const BitmapCharRec ch122 = {8,12,-1,0,10,ch122data}; - -/* char: 0x79 'y' */ - -static const GLubyte ch121data[] = { -0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, -0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, -0xf1,0xe0, -}; - -static const BitmapCharRec ch121 = {11,17,0,5,11,ch121data}; - -/* char: 0x78 'x' */ - -static const GLubyte ch120data[] = { -0xf1,0xe0,0x60,0xc0,0x21,0x80,0x33,0x80,0x1b,0x0,0xe,0x0,0xc,0x0,0x1a,0x0, -0x39,0x0,0x31,0x80,0x60,0xc0,0xf1,0xe0, -}; - -static const BitmapCharRec ch120 = {11,12,-1,0,13,ch120data}; - -/* char: 0x77 'w' */ - -static const GLubyte ch119data[] = { -0x4,0x10,0x0,0xe,0x38,0x0,0xe,0x38,0x0,0x1a,0x28,0x0,0x1a,0x64,0x0,0x19, -0x64,0x0,0x31,0x64,0x0,0x30,0xc2,0x0,0x30,0xc2,0x0,0x60,0xc2,0x0,0x60,0xc3, -0x0,0xf1,0xe7,0x80, -}; - -static const BitmapCharRec ch119 = {17,12,0,0,17,ch119data}; - -/* char: 0x76 'v' */ - -static const GLubyte ch118data[] = { -0x4,0x0,0xe,0x0,0xe,0x0,0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80, -0x30,0x80,0x60,0x80,0x60,0xc0,0xf1,0xe0, -}; - -static const BitmapCharRec ch118 = {11,12,0,0,11,ch118data}; - -/* char: 0x75 'u' */ - -static const GLubyte ch117data[] = { -0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0, -}; - -static const BitmapCharRec ch117 = {11,12,-1,0,13,ch117data}; - -/* char: 0x74 't' */ - -static const GLubyte ch116data[] = { -0x1c,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x70,0x30,0x10, -}; - -static const BitmapCharRec ch116 = {7,15,0,0,7,ch116data}; - -/* char: 0x73 's' */ - -static const GLubyte ch115data[] = { -0xf8,0xc6,0x83,0x3,0x7,0x1e,0x7c,0x70,0xe0,0xc2,0x66,0x3e, -}; - -static const BitmapCharRec ch115 = {8,12,-1,0,10,ch115data}; - -/* char: 0x72 'r' */ - -static const GLubyte ch114data[] = { -0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x76,0x6e,0xe6, -}; - -static const BitmapCharRec ch114 = {7,12,-1,0,8,ch114data}; - -/* char: 0x71 'q' */ - -static const GLubyte ch113data[] = { -0x3,0xc0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1d,0x80,0x73,0x80,0x61,0x80, -0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x73,0x80, -0x1d,0x80, -}; - -static const BitmapCharRec ch113 = {10,17,-1,5,12,ch113data}; - -/* char: 0x70 'p' */ - -static const GLubyte ch112data[] = { -0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, -0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, -0xee,0x0, -}; - -static const BitmapCharRec ch112 = {10,17,-1,5,12,ch112data}; - -/* char: 0x6f 'o' */ - -static const GLubyte ch111data[] = { -0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0, -}; - -static const BitmapCharRec ch111 = {10,12,-1,0,12,ch111data}; - -/* char: 0x6e 'n' */ - -static const GLubyte ch110data[] = { -0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0, -}; - -static const BitmapCharRec ch110 = {11,12,-1,0,13,ch110data}; - -/* char: 0x6d 'm' */ - -static const GLubyte ch109data[] = { -0xf1,0xe3,0xc0,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60, -0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x71,0xe3,0x80,0x6f,0x9f, -0x0,0xe7,0xe,0x0, -}; - -static const BitmapCharRec ch109 = {18,12,-1,0,20,ch109data}; - -/* char: 0x6c 'l' */ - -static const GLubyte ch108data[] = { -0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, -0xe0, -}; - -static const BitmapCharRec ch108 = {4,17,-1,0,6,ch108data}; - -/* char: 0x6b 'k' */ - -static const GLubyte ch107data[] = { -0xf3,0xe0,0x61,0xc0,0x63,0x80,0x67,0x0,0x6e,0x0,0x6c,0x0,0x78,0x0,0x68,0x0, -0x64,0x0,0x66,0x0,0x63,0x0,0x67,0xc0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, -0xe0,0x0, -}; - -static const BitmapCharRec ch107 = {11,17,-1,0,12,ch107data}; - -/* char: 0x6a 'j' */ - -static const GLubyte ch106data[] = { -0xc0,0xe0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0x70,0x0,0x0,0x0,0x30,0x30, -}; - -static const BitmapCharRec ch106 = {4,22,0,5,6,ch106data}; - -/* char: 0x69 'i' */ - -static const GLubyte ch105data[] = { -0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x0,0x0,0x60, -0x60, -}; - -static const BitmapCharRec ch105 = {4,17,-1,0,6,ch105data}; - -/* char: 0x68 'h' */ - -static const GLubyte ch104data[] = { -0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x71,0xc0,0x6f,0x80,0x67,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, -0xe0,0x0, -}; - -static const BitmapCharRec ch104 = {11,17,-1,0,13,ch104data}; - -/* char: 0x67 'g' */ - -static const GLubyte ch103data[] = { -0x3f,0x0,0xf1,0xc0,0xc0,0x60,0xc0,0x20,0x60,0x60,0x3f,0xc0,0x7f,0x0,0x60,0x0, -0x30,0x0,0x3e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, -0x1f,0xc0, -}; - -static const BitmapCharRec ch103 = {11,17,-1,5,12,ch103data}; - -/* char: 0x66 'f' */ - -static const GLubyte ch102data[] = { -0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x30,0x30,0x30,0x16, -0xe, -}; - -static const BitmapCharRec ch102 = {7,17,0,0,7,ch102data}; - -/* char: 0x65 'e' */ - -static const GLubyte ch101data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, -0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0, -}; - -static const BitmapCharRec ch101 = {9,12,-1,0,11,ch101data}; - -/* char: 0x64 'd' */ - -static const GLubyte ch100data[] = { -0x1e,0xc0,0x73,0x80,0x61,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80, -0xc1,0x80,0x61,0x80,0x73,0x80,0x1d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80, -0x3,0x80, -}; - -static const BitmapCharRec ch100 = {10,17,-1,0,12,ch100data}; - -/* char: 0x63 'c' */ - -static const GLubyte ch99data[] = { -0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -0xc0,0x0,0x41,0x80,0x63,0x80,0x1f,0x0, -}; - -static const BitmapCharRec ch99 = {9,12,-1,0,11,ch99data}; - -/* char: 0x62 'b' */ - -static const GLubyte ch98data[] = { -0x5e,0x0,0x73,0x80,0x61,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, -0x60,0xc0,0x61,0x80,0x73,0x80,0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, -0xe0,0x0, -}; - -static const BitmapCharRec ch98 = {10,17,-1,0,12,ch98data}; - -/* char: 0x61 'a' */ - -static const GLubyte ch97data[] = { -0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, -0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0, -}; - -static const BitmapCharRec ch97 = {9,12,-1,0,11,ch97data}; - -/* char: 0x60 '`' */ - -static const GLubyte ch96data[] = { -0x60,0xe0,0x80,0xc0,0x60, -}; - -static const BitmapCharRec ch96 = {3,5,-2,-12,7,ch96data}; - -/* char: 0x5f '_' */ - -static const GLubyte ch95data[] = { -0xff,0xf8,0xff,0xf8, -}; - -static const BitmapCharRec ch95 = {13,2,0,5,13,ch95data}; - -/* char: 0x5e '^' */ - -static const GLubyte ch94data[] = { -0x80,0x80,0xc1,0x80,0x41,0x0,0x63,0x0,0x22,0x0,0x36,0x0,0x14,0x0,0x1c,0x0, -0x8,0x0, -}; - -static const BitmapCharRec ch94 = {9,9,-1,-8,11,ch94data}; - -/* char: 0x5d ']' */ - -static const GLubyte ch93data[] = { -0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0xf8, -}; - -static const BitmapCharRec ch93 = {5,21,-1,4,8,ch93data}; - -/* char: 0x5c '\' */ - -static const GLubyte ch92data[] = { -0x6,0x6,0x4,0xc,0xc,0x8,0x18,0x18,0x10,0x30,0x30,0x20,0x60,0x60,0x40,0xc0, -0xc0, -}; - -static const BitmapCharRec ch92 = {7,17,0,0,7,ch92data}; - -/* char: 0x5b '[' */ - -static const GLubyte ch91data[] = { -0xf8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0xc0,0xc0,0xf8, -}; - -static const BitmapCharRec ch91 = {5,21,-2,4,8,ch91data}; - -/* char: 0x5a 'Z' */ - -static const GLubyte ch90data[] = { -0xff,0xf8,0xe0,0x18,0x70,0x8,0x30,0x8,0x38,0x0,0x18,0x0,0x1c,0x0,0xe,0x0, -0x6,0x0,0x7,0x0,0x3,0x0,0x3,0x80,0x1,0xc0,0x80,0xc0,0x80,0xe0,0xc0,0x70, -0xff,0xf0, -}; - -static const BitmapCharRec ch90 = {13,17,-1,0,15,ch90data}; - -/* char: 0x59 'Y' */ - -static const GLubyte ch89data[] = { -0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, -0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, -0xfc,0x3f, -}; - -static const BitmapCharRec ch89 = {16,17,0,0,16,ch89data}; - -/* char: 0x58 'X' */ - -static const GLubyte ch88data[] = { -0xfc,0xf,0xc0,0x30,0x3,0x80,0x18,0x7,0x0,0x8,0xe,0x0,0x4,0xc,0x0,0x6, -0x18,0x0,0x2,0x38,0x0,0x1,0x70,0x0,0x0,0xe0,0x0,0x0,0xc0,0x0,0x1,0xc0, -0x0,0x3,0xa0,0x0,0x3,0x10,0x0,0x6,0x8,0x0,0xe,0xc,0x0,0x1c,0x6,0x0, -0x7e,0xf,0x80, -}; - -static const BitmapCharRec ch88 = {18,17,0,0,18,ch88data}; - -/* char: 0x57 'W' */ - -static const GLubyte ch87data[] = { -0x1,0x83,0x0,0x1,0x83,0x0,0x1,0x83,0x80,0x3,0x87,0x80,0x3,0x46,0x80,0x3, -0x46,0xc0,0x6,0x46,0x40,0x6,0x4c,0x40,0x6,0x4c,0x60,0xc,0x2c,0x60,0xc,0x2c, -0x20,0x18,0x2c,0x20,0x18,0x18,0x30,0x18,0x18,0x10,0x30,0x18,0x10,0x30,0x18,0x18, -0xfc,0x7e,0x7e, -}; - -static const BitmapCharRec ch87 = {23,17,0,0,23,ch87data}; - -/* char: 0x56 'V' */ - -static const GLubyte ch86data[] = { -0x1,0x80,0x0,0x1,0x80,0x0,0x1,0x80,0x0,0x3,0xc0,0x0,0x3,0x40,0x0,0x3, -0x60,0x0,0x6,0x20,0x0,0x6,0x20,0x0,0x6,0x30,0x0,0xc,0x10,0x0,0xc,0x18, -0x0,0x18,0x8,0x0,0x18,0x8,0x0,0x18,0xc,0x0,0x30,0x4,0x0,0x30,0x6,0x0, -0xfc,0x1f,0x80, -}; - -static const BitmapCharRec ch86 = {17,17,0,0,17,ch86data}; - -/* char: 0x55 'U' */ - -static const GLubyte ch85data[] = { -0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, -0xfc,0x1f, -}; - -static const BitmapCharRec ch85 = {16,17,-1,0,18,ch85data}; - -/* char: 0x54 'T' */ - -static const GLubyte ch84data[] = { -0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, -0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x83,0x4,0x83,0x4,0xc3,0xc, -0xff,0xfc, -}; - -static const BitmapCharRec ch84 = {14,17,-1,0,16,ch84data}; - -/* char: 0x53 'S' */ - -static const GLubyte ch83data[] = { -0x9e,0x0,0xf1,0x80,0xc0,0xc0,0x80,0x60,0x80,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0, -0xf,0x80,0x1e,0x0,0x78,0x0,0xe0,0x0,0xc0,0x40,0xc0,0x40,0xc0,0xc0,0x63,0xc0, -0x1e,0x40, -}; - -static const BitmapCharRec ch83 = {11,17,-1,0,13,ch83data}; - -/* char: 0x52 'R' */ - -static const GLubyte ch82data[] = { -0xfc,0x1e,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0x60,0x30,0xc0,0x31,0xc0,0x33,0x80, -0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x38,0x30,0x18,0x30,0x38,0x30,0x30,0x30,0x70, -0xff,0xc0, -}; - -static const BitmapCharRec ch82 = {15,17,-1,0,16,ch82data}; - -/* char: 0x51 'Q' */ - -static const GLubyte ch81data[] = { -0x0,0xf,0x0,0x38,0x0,0x70,0x0,0xe0,0x1,0xc0,0x7,0xe0,0x1c,0x38,0x38,0x1c, -0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38,0x7,0xe0, -}; - -static const BitmapCharRec ch81 = {16,22,-1,5,18,ch81data}; - -/* char: 0x50 'P' */ - -static const GLubyte ch80data[] = { -0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, -0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, -0xff,0xc0, -}; - -static const BitmapCharRec ch80 = {13,17,-1,0,15,ch80data}; - -/* char: 0x4f 'O' */ - -static const GLubyte ch79data[] = { -0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, -0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, -0x7,0xe0, -}; - -static const BitmapCharRec ch79 = {16,17,-1,0,18,ch79data}; - -/* char: 0x4e 'N' */ - -static const GLubyte ch78data[] = { -0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, -0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, -0xf0,0x1f, -}; - -static const BitmapCharRec ch78 = {16,17,-1,0,18,ch78data}; - -/* char: 0x4d 'M' */ - -static const GLubyte ch77data[] = { -0xf8,0x21,0xf8,0x20,0x60,0x60,0x20,0x60,0x60,0x20,0xd0,0x60,0x20,0xd0,0x60,0x21, -0x88,0x60,0x21,0x88,0x60,0x23,0x8,0x60,0x23,0x4,0x60,0x26,0x4,0x60,0x26,0x2, -0x60,0x2c,0x2,0x60,0x2c,0x2,0x60,0x38,0x1,0x60,0x38,0x1,0x60,0x30,0x0,0xe0, -0xf0,0x0,0xf8, -}; - -static const BitmapCharRec ch77 = {21,17,-1,0,22,ch77data}; - -/* char: 0x4c 'L' */ - -static const GLubyte ch76data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, -0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, -0xfc,0x0, -}; - -static const BitmapCharRec ch76 = {13,17,-1,0,14,ch76data}; - -/* char: 0x4b 'K' */ - -static const GLubyte ch75data[] = { -0xfc,0x1f,0x30,0xe,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0xe0,0x31,0xc0,0x33,0x80, -0x3f,0x0,0x3e,0x0,0x33,0x0,0x31,0x80,0x30,0xc0,0x30,0x60,0x30,0x30,0x30,0x18, -0xfc,0x7e, -}; - -static const BitmapCharRec ch75 = {16,17,-1,0,17,ch75data}; - -/* char: 0x4a 'J' */ - -static const GLubyte ch74data[] = { -0x78,0x0,0xcc,0x0,0xc6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, -0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, -0x1f,0x80, -}; - -static const BitmapCharRec ch74 = {9,17,-1,0,11,ch74data}; - -/* char: 0x49 'I' */ - -static const GLubyte ch73data[] = { -0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -0xfc, -}; - -static const BitmapCharRec ch73 = {6,17,-1,0,8,ch73data}; - -/* char: 0x48 'H' */ - -static const GLubyte ch72data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30, -0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x3f,0xfe,0x0,0x30,0x6,0x0,0x30,0x6, -0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0, -0xfc,0x1f,0x80, -}; - -static const BitmapCharRec ch72 = {17,17,-1,0,19,ch72data}; - -/* char: 0x47 'G' */ - -static const GLubyte ch71data[] = { -0x7,0xe0,0x1e,0x38,0x38,0x1c,0x60,0xc,0x60,0xc,0xc0,0xc,0xc0,0xc,0xc0,0x3f, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, -0x7,0xe4, -}; - -static const BitmapCharRec ch71 = {16,17,-1,0,18,ch71data}; - -/* char: 0x46 'F' */ - -static const GLubyte ch70data[] = { -0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x20,0x30,0x20, -0x3f,0xe0,0x30,0x20,0x30,0x20,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0, -}; - -static const BitmapCharRec ch70 = {12,17,-1,0,14,ch70data}; - -/* char: 0x45 'E' */ - -static const GLubyte ch69data[] = { -0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, -0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, -0xff,0xf0, -}; - -static const BitmapCharRec ch69 = {13,17,-1,0,15,ch69data}; - -/* char: 0x44 'D' */ - -static const GLubyte ch68data[] = { -0xff,0xc0,0x30,0x70,0x30,0x38,0x30,0xc,0x30,0xc,0x30,0x6,0x30,0x6,0x30,0x6, -0x30,0x6,0x30,0x6,0x30,0x6,0x30,0x6,0x30,0xc,0x30,0xc,0x30,0x38,0x30,0x70, -0xff,0xc0, -}; - -static const BitmapCharRec ch68 = {15,17,-1,0,17,ch68data}; - -/* char: 0x43 'C' */ - -static const GLubyte ch67data[] = { -0x7,0xe0,0x1e,0x38,0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, -0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, -0x7,0xe4, -}; - -static const BitmapCharRec ch67 = {14,17,-1,0,16,ch67data}; - -/* char: 0x42 'B' */ - -static const GLubyte ch66data[] = { -0xff,0xe0,0x30,0x78,0x30,0x18,0x30,0xc,0x30,0xc,0x30,0xc,0x30,0x18,0x30,0x38, -0x3f,0xe0,0x30,0x40,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, -0xff,0xc0, -}; - -static const BitmapCharRec ch66 = {14,17,-1,0,16,ch66data}; - -/* char: 0x41 'A' */ - -static const GLubyte ch65data[] = { -0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, -0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, -0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, -0x0,0x80,0x0, -}; - -static const BitmapCharRec ch65 = {17,17,0,0,17,ch65data}; - -/* char: 0x40 '@' */ - -static const GLubyte ch64data[] = { -0x3,0xf0,0x0,0xe,0xc,0x0,0x18,0x0,0x0,0x30,0x0,0x0,0x61,0xde,0x0,0x63, -0x7b,0x0,0xc6,0x39,0x80,0xc6,0x18,0x80,0xc6,0x18,0xc0,0xc6,0x18,0x40,0xc6,0xc, -0x40,0xc3,0xc,0x40,0xc3,0x8c,0x40,0xe1,0xfc,0x40,0x60,0xec,0xc0,0x70,0x0,0x80, -0x38,0x1,0x80,0x1c,0x3,0x0,0xf,0xe,0x0,0x3,0xf8,0x0, -}; - -static const BitmapCharRec ch64 = {18,20,-2,3,22,ch64data}; - -/* char: 0x3f '?' */ - -static const GLubyte ch63data[] = { -0x30,0x30,0x0,0x0,0x10,0x10,0x10,0x18,0x18,0xc,0xe,0x7,0xc3,0xc3,0x83,0xc6, -0x7c, -}; - -static const BitmapCharRec ch63 = {8,17,-2,0,11,ch63data}; - -/* char: 0x3e '>' */ - -static const GLubyte ch62data[] = { -0xc0,0x0,0x70,0x0,0x1c,0x0,0x7,0x0,0x1,0xc0,0x0,0x60,0x1,0xc0,0x7,0x0, -0x1c,0x0,0x70,0x0,0xc0,0x0, -}; - -static const BitmapCharRec ch62 = {11,11,-1,-1,13,ch62data}; - -/* char: 0x3d '=' */ - -static const GLubyte ch61data[] = { -0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0, -}; - -static const BitmapCharRec ch61 = {12,6,-1,-4,14,ch61data}; - -/* char: 0x3c '<' */ - -static const GLubyte ch60data[] = { -0x0,0x60,0x1,0xc0,0x7,0x0,0x1c,0x0,0x70,0x0,0xc0,0x0,0x70,0x0,0x1c,0x0, -0x7,0x0,0x1,0xc0,0x0,0x60, -}; - -static const BitmapCharRec ch60 = {11,11,-1,-1,13,ch60data}; - -/* char: 0x3b ';' */ - -static const GLubyte ch59data[] = { -0xc0,0x60,0x20,0xe0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch59 = {3,14,-2,3,7,ch59data}; - -/* char: 0x3a ':' */ - -static const GLubyte ch58data[] = { -0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0, -}; - -static const BitmapCharRec ch58 = {2,11,-2,0,6,ch58data}; - -/* char: 0x39 '9' */ - -static const GLubyte ch57data[] = { -0xf0,0x0,0x1c,0x0,0x6,0x0,0x3,0x0,0x3,0x80,0x1,0x80,0x1d,0x80,0x73,0xc0, -0x61,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0x61,0x80,0x77,0x80, -0x1e,0x0, -}; - -static const BitmapCharRec ch57 = {10,17,-1,0,12,ch57data}; - -/* char: 0x38 '8' */ - -static const GLubyte ch56data[] = { -0x1e,0x0,0x73,0x80,0xe1,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x41,0xc0,0x61,0x80, -0x37,0x0,0x1e,0x0,0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, -0x1e,0x0, -}; - -static const BitmapCharRec ch56 = {10,17,-1,0,12,ch56data}; - -/* char: 0x37 '7' */ - -static const GLubyte ch55data[] = { -0x18,0x0,0x18,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0x4,0x0,0x6,0x0,0x6,0x0, -0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x80,0x81,0x80,0xc0,0xc0,0xff,0xc0, -0x7f,0xc0, -}; - -static const BitmapCharRec ch55 = {10,17,-1,0,12,ch55data}; - -/* char: 0x36 '6' */ - -static const GLubyte ch54data[] = { -0x1e,0x0,0x7b,0x80,0x61,0x80,0xe0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc1,0x80,0xf3,0x80,0xee,0x0,0x60,0x0,0x70,0x0,0x30,0x0,0x18,0x0,0xe,0x0, -0x3,0xc0, -}; - -static const BitmapCharRec ch54 = {10,17,-1,0,12,ch54data}; - -/* char: 0x35 '5' */ - -static const GLubyte ch53data[] = { -0x7e,0x0,0xe3,0x80,0xc1,0x80,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x1,0xc0, -0x3,0x80,0xf,0x80,0x7e,0x0,0x78,0x0,0x60,0x0,0x20,0x0,0x20,0x0,0x1f,0x80, -0x1f,0xc0, -}; - -static const BitmapCharRec ch53 = {10,17,-1,0,12,ch53data}; - -/* char: 0x34 '4' */ - -static const GLubyte ch52data[] = { -0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0xff,0xc0,0xff,0xc0,0xc3,0x0,0x43,0x0, -0x63,0x0,0x23,0x0,0x33,0x0,0x13,0x0,0x1b,0x0,0xb,0x0,0x7,0x0,0x7,0x0, -0x3,0x0, -}; - -static const BitmapCharRec ch52 = {10,17,-1,0,12,ch52data}; - -/* char: 0x33 '3' */ - -static const GLubyte ch51data[] = { -0x78,0x0,0xe6,0x0,0xc3,0x0,0x1,0x0,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0x80, -0x7,0x0,0x1e,0x0,0xc,0x0,0x6,0x0,0x83,0x0,0x83,0x0,0x47,0x0,0x7e,0x0, -0x1c,0x0, -}; - -static const BitmapCharRec ch51 = {9,17,-1,0,12,ch51data}; - -/* char: 0x32 '2' */ - -static const GLubyte ch50data[] = { -0xff,0x80,0xff,0xc0,0x60,0x40,0x30,0x0,0x18,0x0,0xc,0x0,0x4,0x0,0x6,0x0, -0x3,0x0,0x3,0x0,0x1,0x80,0x1,0x80,0x81,0x80,0x81,0x80,0x43,0x80,0x7f,0x0, -0x1c,0x0, -}; - -static const BitmapCharRec ch50 = {10,17,-1,0,12,ch50data}; - -/* char: 0x31 '1' */ - -static const GLubyte ch49data[] = { -0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x18, -0x8, -}; - -static const BitmapCharRec ch49 = {8,17,-2,0,12,ch49data}; - -/* char: 0x30 '0' */ - -static const GLubyte ch48data[] = { -0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0xe1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x61,0x80,0x61,0x80,0x33,0x0, -0x1e,0x0, -}; - -static const BitmapCharRec ch48 = {10,17,-1,0,12,ch48data}; - -/* char: 0x2f '/' */ - -static const GLubyte ch47data[] = { -0xc0,0xc0,0xc0,0x60,0x60,0x20,0x30,0x30,0x10,0x18,0x18,0x8,0xc,0xc,0x4,0x6, -0x6,0x3,0x3,0x3, -}; - -static const BitmapCharRec ch47 = {8,20,1,3,7,ch47data}; - -/* char: 0x2e '.' */ - -static const GLubyte ch46data[] = { -0xc0,0xc0, -}; - -static const BitmapCharRec ch46 = {2,2,-2,0,6,ch46data}; - -/* char: 0x2d '-' */ - -static const GLubyte ch45data[] = { -0xff,0xf0,0xff,0xf0, -}; - -static const BitmapCharRec ch45 = {12,2,-1,-6,14,ch45data}; - -/* char: 0x2c ',' */ - -static const GLubyte ch44data[] = { -0xc0,0x60,0x20,0xe0,0xc0, -}; - -static const BitmapCharRec ch44 = {3,5,-2,3,7,ch44data}; - -/* char: 0x2b '+' */ - -static const GLubyte ch43data[] = { -0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xff,0xf0,0xff,0xf0,0x6,0x0, -0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, -}; - -static const BitmapCharRec ch43 = {12,12,-1,-1,14,ch43data}; - -/* char: 0x2a '*' */ - -static const GLubyte ch42data[] = { -0x8,0x0,0x1c,0x0,0xc9,0x80,0xeb,0x80,0x1c,0x0,0xeb,0x80,0xc9,0x80,0x1c,0x0, -0x8,0x0, -}; - -static const BitmapCharRec ch42 = {9,9,-2,-8,12,ch42data}; - -/* char: 0x29 ')' */ - -static const GLubyte ch41data[] = { -0x80,0x40,0x20,0x30,0x10,0x18,0x18,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x18, -0x18,0x10,0x30,0x20,0x40,0x80, -}; - -static const BitmapCharRec ch41 = {6,22,-1,5,8,ch41data}; - -/* char: 0x28 '(' */ - -static const GLubyte ch40data[] = { -0x4,0x8,0x10,0x30,0x20,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60, -0x60,0x20,0x30,0x10,0x8,0x4, -}; - -static const BitmapCharRec ch40 = {6,22,-1,5,8,ch40data}; - -/* char: 0x27 ''' */ - -static const GLubyte ch39data[] = { -0xc0,0x60,0x20,0xe0,0xc0, -}; - -static const BitmapCharRec ch39 = {3,5,-3,-12,8,ch39data}; - -/* char: 0x26 '&' */ - -static const GLubyte ch38data[] = { -0x3c,0x3c,0x7f,0x7e,0xe1,0xe1,0xc0,0xc0,0xc1,0xc0,0xc1,0xa0,0x63,0x20,0x37,0x10, -0x1e,0x18,0xe,0x3e,0xf,0x0,0x1d,0x80,0x18,0xc0,0x18,0x40,0x18,0x40,0xc,0xc0, -0x7,0x80, -}; - -static const BitmapCharRec ch38 = {16,17,-1,0,18,ch38data}; - -/* char: 0x25 '%' */ - -static const GLubyte ch37data[] = { -0x30,0x3c,0x0,0x18,0x72,0x0,0xc,0x61,0x0,0x4,0x60,0x80,0x6,0x60,0x80,0x3, -0x30,0x80,0x1,0x19,0x80,0x1,0x8f,0x0,0x78,0xc0,0x0,0xe4,0x40,0x0,0xc2,0x60, -0x0,0xc1,0x30,0x0,0xc1,0x10,0x0,0x61,0x18,0x0,0x33,0xfc,0x0,0x1e,0xc,0x0, -}; - -static const BitmapCharRec ch37 = {17,16,-1,0,19,ch37data}; - -/* char: 0x24 '$' */ - -static const GLubyte ch36data[] = { -0x4,0x0,0x4,0x0,0x3f,0x0,0xe5,0xc0,0xc4,0xc0,0x84,0x60,0x84,0x60,0x4,0x60, -0x4,0xe0,0x7,0xc0,0x7,0x80,0x1e,0x0,0x3c,0x0,0x74,0x0,0x64,0x0,0x64,0x20, -0x64,0x60,0x34,0xe0,0x1f,0x80,0x4,0x0,0x4,0x0, -}; - -static const BitmapCharRec ch36 = {11,21,0,2,12,ch36data}; - -/* char: 0x23 '#' */ - -static const GLubyte ch35data[] = { -0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0xff,0xc0,0xff,0xc0,0x11,0x0, -0x11,0x0,0x11,0x0,0x7f,0xe0,0x7f,0xe0,0x8,0x80,0x8,0x80,0x8,0x80,0x8,0x80, -0x8,0x80, -}; - -static const BitmapCharRec ch35 = {11,17,-1,0,13,ch35data}; - -/* char: 0x22 '"' */ - -static const GLubyte ch34data[] = { -0x88,0xcc,0xcc,0xcc,0xcc, -}; - -static const BitmapCharRec ch34 = {6,5,-1,-12,10,ch34data}; - -/* char: 0x21 '!' */ - -static const GLubyte ch33data[] = { -0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, -0xc0, -}; - -static const BitmapCharRec ch33 = {2,17,-3,0,8,ch33data}; - -/* char: 0x20 ' ' */ - -#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,6,ch32data}; -#else -static const BitmapCharRec ch32 = {0,0,0,0,6,0}; -#endif - -static const BitmapCharRec * const chars[] = { -&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, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -&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, -}; - -#if !defined(__IBMCPP__) -const -#endif -BitmapFontRec glutBitmapTimesRoman24 = { -"-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1", -224, -32, -chars -}; - diff --git a/src/glut/os2/glut_util.cpp b/src/glut/os2/glut_util.cpp deleted file mode 100644 index 2a50a7400e..0000000000 --- a/src/glut/os2/glut_util.cpp +++ /dev/null @@ -1,90 +0,0 @@ - -/* 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. */ - -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <stdio.h> - -#include "glutint.h" - -#if !defined(__OS2__) - -/* strdup is actually not a standard ANSI C or POSIX routine - so implement a private one for GLUT. OpenVMS does not have a - strdup; Linux's standard libc doesn't declare strdup by default - (unless BSD or SVID interfaces are requested). */ -char * -__glutStrdup(const char *string) -{ - char *copy; - - copy = (char*) malloc(strlen(string) + 1); - if (copy == NULL) - return NULL; - strcpy(copy, string); - return copy; -} -#endif - -void -__glutWarning(char *format,...) -{ - va_list args; - - va_start(args, format); - fprintf(stderr, "GLUT: Warning in %s: ", - __glutProgramName ? __glutProgramName : "(unamed)"); - vfprintf(stderr, format, args); - va_end(args); - putc('\n', stderr); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutReportErrors(void) -{ - GLenum error; - - while ((error = glGetError()) != GL_NO_ERROR) - __glutWarning("GL error: %s", gluErrorString(error)); -} -/* ENDCENTRY */ - -void -__glutFatalError(char *format,...) -{ - va_list args; - - va_start(args, format); - fprintf(stderr, "GLUT: Fatal Error in %s: ", - __glutProgramName ? __glutProgramName : "(unamed)"); - vfprintf(stderr, format, args); - va_end(args); - putc('\n', stderr); -/* || defined(__OS2__) */ -#if defined(_WIN32) - if (__glutExitFunc) { - __glutExitFunc(1); - } -#endif - exit(1); -} - -void -__glutFatalUsage(char *format,...) -{ - va_list args; - - va_start(args, format); - fprintf(stderr, "GLUT: Fatal API Usage in %s: ", - __glutProgramName ? __glutProgramName : "(unamed)"); - vfprintf(stderr, format, args); - va_end(args); - putc('\n', stderr); - abort(); -} diff --git a/src/glut/os2/glut_vidresize.cpp b/src/glut/os2/glut_vidresize.cpp deleted file mode 100644 index 9f9b6eef58..0000000000 --- a/src/glut/os2/glut_vidresize.cpp +++ /dev/null @@ -1,232 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1996. */ - -/* 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. */ - -#include <stdlib.h> - -#ifdef __sgi -#include <dlfcn.h> -#endif - -#include "glutint.h" - -/* Grumble. The IRIX 6.3 and early IRIX 6.4 OpenGL headers - support the video resize extension, but failed to define - GLX_SGIX_video_resize. */ -#if 0 -#ifdef GLX_SYNC_FRAME_SGIX -#define GLX_SGIX_video_resize 1 -#endif -#endif - -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) -static int canVideoResize = -1; -static int videoResizeChannel; -#else -static int canVideoResize = 0; -#endif -static int videoResizeInUse = 0; -static int dx = -1, dy = -1, dw = -1, dh = -1; - -/* XXX Note that IRIX 6.2, 6.3, and some 6.4 versions have a - bug where programs seg-fault when they attempt video - resizing from an indirect OpenGL context (either local or - over a network). */ - -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - -static volatile int errorCaught; - -/* ARGSUSED */ -static int -catchXSGIvcErrors(Display * dpy, XErrorEvent * event) -{ - errorCaught = 1; - return 0; -} -#endif - -/* CENTRY */ - -int GLUTAPIENTRY -glutVideoResizeGet(GLenum param) -{ -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (canVideoResize < 0) { - canVideoResize = __glutIsSupportedByGLX("GLX_SGIX_video_resize"); - if (canVideoResize) { -#if defined(__sgi) && __sgi - /* This is a hack because IRIX 6.2, 6.3, and some 6.4 - versions were released with GLX_SGIX_video_resize - being advertised by the X server though the video - resize extension is not actually supported. We try to - determine if the libGL.so we are using actually has a - video resize entrypoint before we try to use the - feature. */ - void (*func) (void); - void *glxDso = dlopen("libGL.so", RTLD_LAZY); - - func = (void (*)(void)) dlsym(glxDso, "glXQueryChannelDeltasSGIX"); - if (!func) { - canVideoResize = 0; - } else -#endif - { - char *channelString; - int (*handler) (Display *, XErrorEvent *); - - channelString = getenv("GLUT_VIDEO_RESIZE_CHANNEL"); - videoResizeChannel = channelString ? atoi(channelString) : 0; - - /* Work around another annoying problem with SGI's - GLX_SGIX_video_resize implementation. Early IRIX - 6.4 OpenGL's advertise the extension and have the - video resize API, but an XSGIvc X protocol errors - result trying to use the API. Set up an error - handler to intercept what would otherwise be a fatal - error. If an error was recieved, do not report that - video resize is possible. */ - handler = XSetErrorHandler(catchXSGIvcErrors); - - errorCaught = 0; - -#if defined(GLX_GLXEXT_PROTOTYPES) -#endif - - __glut_glXQueryChannelDeltasSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, &dx, &dy, &dw, &dh); - - /* glXQueryChannelDeltasSGIX is an inherent X server - round-trip so we know we will have gotten either the - correct reply or and error by this time. */ - XSetErrorHandler(handler); - - /* Still yet another work around. In IRIX 6.4 betas, - glXQueryChannelDeltasSGIX will return as if it - succeeded, but the values are filled with junk. - Watch to make sure the delta variables really make - sense. */ - if (errorCaught || - dx < 0 || dy < 0 || dw < 0 || dh < 0 || - dx > 2048 || dy > 2048 || dw > 2048 || dh > 2048) { - canVideoResize = 0; - } - } - } - } -#endif /* GLX_SGIX_video_resize */ - - switch (param) { - case GLUT_VIDEO_RESIZE_POSSIBLE: - return canVideoResize; - case GLUT_VIDEO_RESIZE_IN_USE: - return videoResizeInUse; - case GLUT_VIDEO_RESIZE_X_DELTA: - return dx; - case GLUT_VIDEO_RESIZE_Y_DELTA: - return dy; - case GLUT_VIDEO_RESIZE_WIDTH_DELTA: - return dw; - case GLUT_VIDEO_RESIZE_HEIGHT_DELTA: - return dh; - case GLUT_VIDEO_RESIZE_X: - case GLUT_VIDEO_RESIZE_Y: - case GLUT_VIDEO_RESIZE_WIDTH: - case GLUT_VIDEO_RESIZE_HEIGHT: -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (videoResizeInUse) { - int x, y, width, height; - - __glut_glXQueryChannelRectSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, &x, &y, &width, &height); - switch (param) { - case GLUT_VIDEO_RESIZE_X: - return x; - case GLUT_VIDEO_RESIZE_Y: - return y; - case GLUT_VIDEO_RESIZE_WIDTH: - return width; - case GLUT_VIDEO_RESIZE_HEIGHT: - return height; - } - } -#endif - return -1; - default: - __glutWarning("invalid glutVideoResizeGet parameter: %d", param); - return -1; - } -} - -void GLUTAPIENTRY -glutSetupVideoResizing(void) -{ -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) { - __glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, __glutCurrentWindow->win); - videoResizeInUse = 1; - } else -#endif - __glutFatalError("glutEstablishVideoResizing: video resizing not possible.\n"); -} - -void GLUTAPIENTRY -glutStopVideoResizing(void) -{ -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) { - if (videoResizeInUse) { - __glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, None); - videoResizeInUse = 0; - } - } -#endif -} - -/* ARGSUSED */ -void GLUTAPIENTRY -glutVideoResize(int x, int y, int width, int height) -{ -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (videoResizeInUse) { -#ifdef GLX_SYNC_SWAP_SGIX - /* glXChannelRectSyncSGIX introduced in a patch to IRIX - 6.2; the original unpatched IRIX 6.2 behavior is always - GLX_SYNC_SWAP_SGIX. */ - __glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, GLX_SYNC_SWAP_SGIX); -#endif - __glut_glXChannelRectSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, x, y, width, height); - } -#endif -} - -/* ARGSUSED */ -void GLUTAPIENTRY -glutVideoPan(int x, int y, int width, int height) -{ -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) - if (videoResizeInUse) { -#ifdef GLX_SYNC_FRAME_SGIX - /* glXChannelRectSyncSGIX introduced in a patch to IRIX - 6.2; the original unpatched IRIX 6.2 behavior is always - GLX_SYNC_SWAP_SGIX. We just ignore that we cannot - accomplish GLX_SYNC_FRAME_SGIX on IRIX unpatched 6.2; - this means you'd need a glutSwapBuffers to actually - realize the video resize. */ - __glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, GLX_SYNC_FRAME_SGIX); -#endif - __glut_glXChannelRectSGIX(__glutDisplay, __glutScreen, - videoResizeChannel, x, y, width, height); - } -#endif -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_warp.cpp b/src/glut/os2/glut_warp.cpp deleted file mode 100644 index 4ef6f7bf39..0000000000 --- a/src/glut/os2/glut_warp.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1996, 1997. */ - -/* 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. */ - -#include <stdlib.h> -#include <stdarg.h> -#include <stdio.h> - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutWarpPointer(int x, int y) -{ -// XWarpPointer(__glutDisplay, None, __glutCurrentWindow->win, -// 0, 0, 0, 0, x, y); - POINTL point; - point.x = x; - point.y = y; - WinMapWindowPoints(__glutCurrentWindow->win,HWND_DESKTOP,&point,1); - WinSetPointerPos(HWND_DESKTOP, point.x, point.y); - - XFlush(__glutDisplay); -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glut_win.cpp b/src/glut/os2/glut_win.cpp deleted file mode 100644 index 63757d7152..0000000000 --- a/src/glut/os2/glut_win.cpp +++ /dev/null @@ -1,1220 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997. */ - -/* 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. */ - -#ifdef __VMS -#include <GL/vms_x_fix.h> -#endif - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#if defined(__OS2__) -#define POKA 0 - #include "WarpGL.h" - #include "glutos2.h" - #include "glutint.h" - - #include "gl\os2mesa.h" - -// -//define for resource id for main GLUT window, in samples it is defined in GL_TEST.h - #define ID_WINDOW 256 - - int evglSetPixelFormat(int iPixelFormat); - HPS hpsCurrent; - -#elif !defined(_WIN32) - -#include <X11/Xlib.h> -#include <X11/Xatom.h> -#endif - -#include "glutint.h" - -GLUTwindow *__glutCurrentWindow = NULL; -GLUTwindow **__glutWindowList = NULL; -int __glutWindowListSize = 0; -#if !defined(_WIN32) && !defined(__OS2__) -GLUTstale *__glutStaleWindowList = NULL; -#endif -GLUTwindow *__glutMenuWindow = NULL; - -void (*__glutFreeOverlayFunc) (GLUToverlay *); -XVisualInfo *(*__glutDetermineVisualFromString) (char *string, Bool * treatAsSingle, - Criterion * requiredCriteria, int nRequired, int requiredMask, void** fbc) = NULL; - -static Criterion requiredWindowCriteria[] = -{ - {LEVEL, EQ, 0}, - {TRANSPARENT, EQ, 0} -}; -static int numRequiredWindowCriteria = sizeof(requiredWindowCriteria) / sizeof(Criterion); -static int requiredWindowCriteriaMask = (1 << LEVEL) | (1 << TRANSPARENT); - -static void -cleanWindowWorkList(GLUTwindow * window) -{ - GLUTwindow **pEntry = &__glutWindowWorkList; - GLUTwindow *entry = __glutWindowWorkList; - - /* Tranverse singly-linked window work list look for the - window. */ - while (entry) { - if (entry == window) { - /* Found it; delete it. */ - *pEntry = entry->prevWorkWin; - return; - } else { - pEntry = &entry->prevWorkWin; - entry = *pEntry; - } - } -} - -#if !defined(_WIN32) && !defined(__OS2PM__) - -static void -cleanStaleWindowList(GLUTwindow * window) -{ - GLUTstale **pEntry = &__glutStaleWindowList; - GLUTstale *entry = __glutStaleWindowList; - - /* Tranverse singly-linked stale window list look for the - window ID. */ - while (entry) { - if (entry->window == window) { - /* Found it; delete it. */ - *pEntry = entry->next; - free(entry); - return; - } else { - pEntry = &entry->next; - entry = *pEntry; - } - } -} - -#endif - -static GLUTwindow *__glutWindowCache = NULL; - -GLUTwindow * -__glutGetWindow(Window win) -{ - int i; - - /* Does win belong to the last window ID looked up? */ - if (__glutWindowCache && (win == __glutWindowCache->win || - (__glutWindowCache->overlay && win == - __glutWindowCache->overlay->win))) { - return - __glutWindowCache; - } - /* Otherwise scan the window list looking for the window ID. */ - for (i = 0; i < __glutWindowListSize; i++) { - if (__glutWindowList[i]) { - if (win == __glutWindowList[i]->win) { - __glutWindowCache = __glutWindowList[i]; - return __glutWindowCache; - } - if (__glutWindowList[i]->overlay) { - if (win == __glutWindowList[i]->overlay->win) { - __glutWindowCache = __glutWindowList[i]; - return __glutWindowCache; - } - } - } - } -#if !defined(_WIN32) && !defined(__OS2PM__) - { - GLUTstale *entry; - - /* Scan through destroyed overlay window IDs for which no - DestroyNotify has yet been received. */ - for (entry = __glutStaleWindowList; entry; entry = entry->next) { - if (entry->win == win) - return entry->window; - } - } -#endif - return NULL; -} - -/* CENTRY */ -int GLUTAPIENTRY -glutGetWindow(void) -{ - if (__glutCurrentWindow) { - return __glutCurrentWindow->num + 1; - } else { - return 0; - } -} -/* ENDCENTRY */ - -void -__glutSetWindow(GLUTwindow * window) -{ - /* It is tempting to try to short-circuit the call to - glXMakeCurrent if we "know" we are going to make current - to a window we are already current to. In fact, this - assumption breaks when GLUT is expected to integrated with - other OpenGL windowing APIs that also make current to - OpenGL contexts. Since glXMakeCurrent short-circuits the - "already bound" case, GLUT avoids the temptation to do so - too. */ - __glutCurrentWindow = window; - - MAKE_CURRENT_LAYER(__glutCurrentWindow); - -#if !defined(_WIN32) && !defined(__OS2__) - /* We should be careful to force a finish between each - iteration through the GLUT main loop if indirect OpenGL - contexts are in use; indirect contexts tend to have much - longer latency because lots of OpenGL extension requests - can queue up in the X protocol stream. We accomplish this - by posting GLUT_FINISH_WORK to be done. */ - if (!__glutCurrentWindow->isDirect) - __glutPutOnWorkList(__glutCurrentWindow, GLUT_FINISH_WORK); -#endif - - /* If debugging is enabled, we'll want to check this window - for any OpenGL errors every iteration through the GLUT - main loop. To accomplish this, we post the - GLUT_DEBUG_WORK to be done on this window. */ - if (__glutDebug) { - __glutPutOnWorkList(__glutCurrentWindow, GLUT_DEBUG_WORK); - } -} - -/* CENTRY */ -void GLUTAPIENTRY -glutSetWindow(int win) -{ - GLUTwindow *window; - - if (win < 1 || win > __glutWindowListSize) { - __glutWarning("glutSetWindow attempted on bogus window."); - return; - } - window = __glutWindowList[win - 1]; - if (!window) { - __glutWarning("glutSetWindow attempted on bogus window."); - return; - } - __glutSetWindow(window); -} -/* ENDCENTRY */ - -static int -getUnusedWindowSlot(void) -{ - int i; - - /* Look for allocated, unused slot. */ - for (i = 0; i < __glutWindowListSize; i++) { - if (!__glutWindowList[i]) { - return i; - } - } - /* Allocate a new slot. */ - __glutWindowListSize++; - if (__glutWindowList) { - __glutWindowList = (GLUTwindow **) - realloc(__glutWindowList, - __glutWindowListSize * sizeof(GLUTwindow *)); - } else { - /* XXX Some realloc's do not correctly perform a malloc - when asked to perform a realloc on a NULL pointer, - though the ANSI C library spec requires this. */ - __glutWindowList = (GLUTwindow **) - malloc(sizeof(GLUTwindow *)); - } - if (!__glutWindowList) - __glutFatalError("out of memory."); - __glutWindowList[__glutWindowListSize - 1] = NULL; - return __glutWindowListSize - 1; -} - -static XVisualInfo * -getVisualInfoCI(unsigned int mode) -{ -#if POKA - static int bufSizeList[] = - {16, 12, 8, 4, 2, 1, 0}; - XVisualInfo *vi; - int list[32]; - int i, n = 0; - - /* Should not be looking at display mode mask if - __glutDisplayString is non-NULL. */ - assert(!__glutDisplayString); - - list[n++] = GLX_BUFFER_SIZE; - list[n++] = 1; - if (GLUT_WIND_IS_DOUBLE(mode)) { - list[n++] = GLX_DOUBLEBUFFER; - } - if (GLUT_WIND_IS_STEREO(mode)) { - list[n++] = GLX_STEREO; - } - if (GLUT_WIND_HAS_DEPTH(mode)) { - list[n++] = GLX_DEPTH_SIZE; - list[n++] = 1; - } - if (GLUT_WIND_HAS_STENCIL(mode)) { - list[n++] = GLX_STENCIL_SIZE; - list[n++] = 1; - } - list[n] = (int) None; /* terminate list */ - - /* glXChooseVisual specify GLX_BUFFER_SIZE prefers the - "smallest index buffer of at least the specified size". - This would be reasonable if GLUT allowed the user to - specify the required buffe size, but GLUT's display mode - is too simplistic (easy to use?). GLUT should try to find - the "largest". So start with a large buffer size and - shrink until we find a matching one that exists. */ - - for (i = 0; bufSizeList[i]; i++) { - /* XXX Assumes list[1] is where GLX_BUFFER_SIZE parameter - is. */ - list[1] = bufSizeList[i]; - vi = glXChooseVisual(__glutDisplay, - __glutScreen, list); - if (vi) - return vi; - } - return NULL; -#else - return - glXChooseVisual(mode); - -#endif -} - -static XVisualInfo * -getVisualInfoRGB(unsigned int mode) -{ -#if POKA - int list[32]; - int n = 0; - - /* Should not be looking at display mode mask if - __glutDisplayString is non-NULL. */ - assert(!__glutDisplayString); - - /* XXX Would a caching mechanism to minize the calls to - glXChooseVisual? You'd have to reference count - XVisualInfo* pointers. Would also have to properly - interact with glutInitDisplayString. */ - - list[n++] = GLX_RGBA; - list[n++] = GLX_RED_SIZE; - list[n++] = 1; - list[n++] = GLX_GREEN_SIZE; - list[n++] = 1; - list[n++] = GLX_BLUE_SIZE; - list[n++] = 1; - if (GLUT_WIND_HAS_ALPHA(mode)) { - list[n++] = GLX_ALPHA_SIZE; - list[n++] = 1; - } - if (GLUT_WIND_IS_DOUBLE(mode)) { - list[n++] = GLX_DOUBLEBUFFER; - } - if (GLUT_WIND_IS_STEREO(mode)) { - list[n++] = GLX_STEREO; - } - if (GLUT_WIND_HAS_DEPTH(mode)) { - list[n++] = GLX_DEPTH_SIZE; - list[n++] = 1; - } - if (GLUT_WIND_HAS_STENCIL(mode)) { - list[n++] = GLX_STENCIL_SIZE; - list[n++] = 1; - } - if (GLUT_WIND_HAS_ACCUM(mode)) { - list[n++] = GLX_ACCUM_RED_SIZE; - list[n++] = 1; - list[n++] = GLX_ACCUM_GREEN_SIZE; - list[n++] = 1; - list[n++] = GLX_ACCUM_BLUE_SIZE; - list[n++] = 1; - if (GLUT_WIND_HAS_ALPHA(mode)) { - list[n++] = GLX_ACCUM_ALPHA_SIZE; - list[n++] = 1; - } - } -#if defined(GLX_VERSION_1_1) && (defined(GLX_SGIS_multisample) || defined(GLX_ARB_multisample)) - if (GLUT_WIND_IS_MULTISAMPLE(mode)) { - if (!__glutIsSupportedByGLX("GLX_SGIS_multisample") && - !__glutIsSupportedByGLX("GLX_ARB_multisample")) - return NULL; -#if defined(GLX_ARB_multisample) - list[n++] = GLX_SAMPLES_ARB; -#elif defined(GLX_SGIS_multisample) - list[n++] = GLX_SAMPLES_SGIS; -#endif - /* XXX Is 4 a reasonable minimum acceptable number of - samples? */ - list[n++] = 4; - } -#endif - list[n] = (int) None; /* terminate list */ - - return glXChooseVisual(__glutDisplay, - __glutScreen, list); -#else /* POKA */ - - return - glXChooseVisual(mode); - -#endif -} - -XVisualInfo * -__glutGetVisualInfo(unsigned int mode) -{ - /* XXX GLUT_LUMINANCE not implemented for GLUT 3.0. */ - if (GLUT_WIND_IS_LUMINANCE(mode)) - return NULL; - - if (GLUT_WIND_IS_RGB(mode)) - return getVisualInfoRGB(mode); - else - return getVisualInfoCI(mode); -} - -XVisualInfo * -__glutDetermineVisual( - unsigned int displayMode, - Bool * treatAsSingle, - XVisualInfo * (getVisualInfo) (unsigned int)) -{ - XVisualInfo *vis; - - /* Should not be looking at display mode mask if - __glutDisplayString is non-NULL. */ - assert(!__glutDisplayString); - - *treatAsSingle = GLUT_WIND_IS_SINGLE(displayMode); - vis = getVisualInfo(displayMode); - if (!vis) { - /* Fallback cases when can't get exactly what was asked - for... */ - if (GLUT_WIND_IS_SINGLE(displayMode)) { - /* If we can't find a single buffered visual, try looking - for a double buffered visual. We can treat a double - buffered visual as a single buffer visual by changing - the draw buffer to GL_FRONT and treating any swap - buffers as no-ops. */ - displayMode |= GLUT_DOUBLE; - vis = getVisualInfo(displayMode); - *treatAsSingle = True; - } - if (!vis && GLUT_WIND_IS_MULTISAMPLE(displayMode)) { - /* If we can't seem to get multisampling (ie, not Reality - Engine class graphics!), go without multisampling. It - is up to the application to query how many multisamples - were allocated (0 equals no multisampling) if the - application is going to use multisampling for more than - just antialiasing. */ - displayMode &= ~GLUT_MULTISAMPLE; - vis = getVisualInfo(displayMode); - } - } - return vis; -} - -static void GLUTCALLBACK -__glutDefaultDisplay(void) -{ - /* XXX Remove the warning after GLUT 3.0. */ - __glutWarning("The following is a new check for GLUT 3.0; update your code."); - __glutFatalError( - "redisplay needed for window %d, but no display callback.", - __glutCurrentWindow->num + 1); -} - -void GLUTCALLBACK -__glutDefaultReshape(int width, int height) -{ - GLUToverlay *overlay; - - /* Adjust the viewport of the window (and overlay if one - exists). */ - MAKE_CURRENT_WINDOW(__glutCurrentWindow); - glViewport(0, 0, (GLsizei) width, (GLsizei) height); - overlay = __glutCurrentWindow->overlay; - if (overlay) { - MAKE_CURRENT_OVERLAY(overlay); - glViewport(0, 0, (GLsizei) width, (GLsizei) height); - } - /* Make sure we are current to the current layer (application - should be able to count on the current layer not changing - unless the application explicitly calls glutUseLayer). */ - MAKE_CURRENT_LAYER(__glutCurrentWindow); -} - -XVisualInfo * -__glutDetermineWindowVisual(Bool * treatAsSingle, Bool * visAlloced, void **fbc) -{ - if (__glutDisplayString) { - - /* __glutDisplayString should be NULL except if - glutInitDisplayString has been called to register a - different display string. Calling glutInitDisplayString - means using a string instead of an integer mask determine - the visual to use. Using the function pointer variable - __glutDetermineVisualFromString below avoids linking in - the code for implementing glutInitDisplayString (ie, - glut_dstr.o) unless glutInitDisplayString gets called by - the application. */ - - assert(__glutDetermineVisualFromString); - *visAlloced = False; - *fbc = NULL; - return __glutDetermineVisualFromString(__glutDisplayString, treatAsSingle, - requiredWindowCriteria, numRequiredWindowCriteria, requiredWindowCriteriaMask, fbc); - } else { - *visAlloced = True; - *fbc = NULL; - return __glutDetermineVisual(__glutDisplayMode, - treatAsSingle, __glutGetVisualInfo); - } -} - -/* ARGSUSED5 */ /* Only Win32 uses gameMode parameter. */ -GLUTwindow * -__glutCreateWindow(GLUTwindow * parent, - int x, int y, int width, int height, int gameMode) -{ - GLUTwindow *window; - XSetWindowAttributes wa; - unsigned long attribMask; - int winnum; - int i; -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig) - GLXFBConfigSGIX fbc; -#else - void *fbc; -#endif - -#if defined(__OS2PM__) - { - extern HAB hab; /* PM anchor block handle */ - CLASSINFO classinfo; - - if(!WinQueryClassInfo(hab,"GLUT", &classinfo) ) - __glutOpenOS2Connection(NULL); - } -#elif defined(_WIN32) - WNDCLASS wc; - int style; - - if (!GetClassInfo(GetModuleHandle(NULL), "GLUT", &wc)) { - __glutOpenWin32Connection(NULL); - } -#else - if (!__glutDisplay) { - __glutOpenXConnection(NULL); - } -#endif - -#ifndef __OS2PM__ - if (__glutGameModeWindow) { - __glutFatalError("cannot create windows in game mode."); - } -#endif - - winnum = getUnusedWindowSlot(); - window = (GLUTwindow *) malloc(sizeof(GLUTwindow)); - if (!window) { - __glutFatalError("out of memory."); - } - window->num = winnum; - -#if defined(__OS2PM__) - /* Add this new window to the window list. */ - __glutWindowList[winnum] = window; - window->shownState = -1; -#endif - -#if !defined(_WIN32) && !defined(__OS2PM__) - window->vis = __glutDetermineWindowVisual(&window->treatAsSingle, - &window->visAlloced, (void**) &fbc); - if (!window->vis) { - __glutFatalError( - "visual with necessary capabilities not found."); - } - __glutSetupColormap(window->vis, &window->colormap, &window->cmap); -#endif - window->eventMask = StructureNotifyMask | ExposureMask; - - attribMask = CWBackPixmap | CWBorderPixel | CWColormap | CWEventMask; - wa.background_pixmap = None; - wa.border_pixel = 0; - wa.colormap = window->cmap; - wa.event_mask = window->eventMask; - if (parent) { - if (parent->eventMask & GLUT_HACK_STOP_PROPAGATE_MASK) - wa.event_mask |= GLUT_HACK_STOP_PROPAGATE_MASK; - attribMask |= CWDontPropagate; - wa.do_not_propagate_mask = parent->eventMask & GLUT_DONT_PROPAGATE_FILTER_MASK; - } else { - wa.do_not_propagate_mask = 0; - } - - /* Stash width and height before Win32's __glutAdjustCoords - possibly overwrites the values. */ - window->width = width; - window->height = height; - window->forceReshape = True; - window->ignoreKeyRepeat = False; - -#if defined(__OS2PM__) - - { ULONG flStyle=0; - int ii; - ERRORID erridErrorCode;/* last error id code */ - extern HAB hab; /* PM anchor block handle */ - - if (parent) { - flStyle = WS_CLIPCHILDREN|WS_VISIBLE; - } else { - if (gameMode) { - /* Game mode window should be a WS_POPUP window to - ensure that the taskbar is hidden by it. A standard - WS_OVERLAPPEDWINDOW does not hide the task bar. */ - flStyle = FCF_STANDARD | WS_MAXIMIZED; - } else { - /* A standard toplevel window with borders and such. */ - flStyle = FCF_STANDARD | WS_CLIPCHILDREN; -// flStyle = WS_OVERLAPPEDWINDOW; - } - } -{ - HWND hwnd; /* Window */ - ULONG ListBoxId; /* Window id */ - /* (supplied by application) */ - - - HWND hwndClient; /* handle to the client */ - HWND hwndFrame; /* handle to the frame */ - PFNWP GenericWndProc; - FRAMECDATA fcd; - RECTL rect; /* Boundary rectangle */ - - - -/************************************************/ -// flCreate = (FCF_STANDARD) & ~FCF_TASKLIST; -/**********************************/ - if (parent) - { window->frame = NULL; - - hwnd = WinCreateWindow(parent->win, /* Parent window */ - "GLUTCHILD", /* Class name */ - "", /* Window text */ - flStyle, /* Window style */ - x, y, /* Position (x,y) */ - width, height, /* Size (width,height) */ - parent->win, /* Owner window */ - HWND_TOP, /* Sibling window */ - 0, /* Window id */ - NULL, /* Control data */ - NULL); /* Pres parameters */ - - erridErrorCode = WinGetLastError(hab); - window->win = hwnd; - - window->hdc = WinOpenWindowDC(window->win); - window->hpsBuffer = hpsCurrent; - - - rect.xLeft = x; - rect.xRight = x+width; - rect.yBottom = y; - rect.yTop = y + height; - -/***** else parent *****************************/ - } else { - hwnd = WinCreateStdWindow(HWND_DESKTOP, - 0, /* WS_VISIBLE frame-window style */ - &flStyle, /* window style */ - "GLUT", /* class name */ - "GLUT",/* window title */ - 0L, /* default client style */ - NULLHANDLE, /* resource in executable file */ - ID_WINDOW, /* resource id */ - &hwndClient); /* receives client window handle */ - - erridErrorCode = WinGetLastError(hab); - window->win = hwndClient; - window->frame = hwnd; - window->hdc = WinOpenWindowDC(window->win); - - window->hpsBuffer = hpsCurrent; - - -/* converts a client window's boundaries into an equivalent frame rectangle */ - rect.xLeft = x; - rect.xRight = x+width; - rect.yBottom = y; - rect.yTop = y + height; - - /* calculate equivalent frame boundary from boundary data */ - WinCalcFrameRect(window->frame, &rect, FALSE); - } -/***** endof if(parent) *****************************/ - - /* Must set the XHDC for fake glXChooseVisual & fake - glXCreateContext & fake XAllocColorCells. */ - XHDC = window->hdc; - XHWND = window->win; - window->vis = __glutDetermineWindowVisual(&window->treatAsSingle, - &window->visAlloced, &fbc); - if (!window->vis) - { __glutFatalError( - "pixel format with necessary capabilities not found."); - } - { int rc; - rc = wglChoosePixelFormat(window->hdc, window->vis), - -// evglSetPixelFormat(2); /* int iPixelFormat 1 - doublebuffer/2 - single buffer ??*/ - wglSetPixelFormat(window->hdc,rc,window->vis); - } - __glutSetupColormap(window->vis, &window->colormap, &window->cmap); - - window->ctx = glXCreateContext(window->hpsBuffer, window->vis, - None, __glutTryDirect); - - WinSetWindowPos(hwnd, - HWND_TOP,rect.xLeft,rect.yBottom, - rect.xRight-rect.xLeft, rect.yTop-rect.yBottom, - SWP_ACTIVATE | SWP_MOVE | SWP_SIZE | SWP_SHOW|SWP_ZORDER); /* flags*/ - - /* Make sure subwindows get a windowStatus callback. */ - if (parent) - WinPostMsg(parent->win, WM_ACTIVATE, 0, 0); - - } -} - -#elif defined(_WIN32) - - __glutAdjustCoords(parent ? parent->win : NULL, - &x, &y, &width, &height); - if (parent) { - style = WS_CHILD; - } else { - if (gameMode) { - /* Game mode window should be a WS_POPUP window to - ensure that the taskbar is hidden by it. A standard - WS_OVERLAPPEDWINDOW does not hide the task bar. */ - style = WS_POPUP | WS_MAXIMIZE; - } else { - /* A standard toplevel window with borders and such. */ - style = WS_OVERLAPPEDWINDOW; - } - } - window->win = CreateWindow("GLUT", "GLUT", - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | style, - x, y, width, height, parent ? parent->win : __glutRoot, - NULL, GetModuleHandle(NULL), 0); - window->hdc = GetDC(window->win); - /* Must set the XHDC for fake glXChooseVisual & fake - glXCreateContext & fake XAllocColorCells. */ - XHDC = window->hdc; - window->vis = __glutDetermineWindowVisual(&window->treatAsSingle, - &window->visAlloced, &fbc); - if (!window->vis) { - __glutFatalError( - "pixel format with necessary capabilities not found."); - } - if (!SetPixelFormat(window->hdc, - ChoosePixelFormat(window->hdc, window->vis), - window->vis)) { - __glutFatalError("SetPixelFormat failed during window create."); - } - __glutSetupColormap(window->vis, &window->colormap, &window->cmap); - /* Make sure subwindows get a windowStatus callback. */ - if (parent) { - PostMessage(parent->win, WM_ACTIVATE, 0, 0); - } - window->renderDc = window->hdc; -#else - window->win = XCreateWindow(__glutDisplay, - parent == NULL ? __glutRoot : parent->win, - x, y, width, height, 0, - window->vis->depth, InputOutput, window->vis->visual, - attribMask, &wa); -#endif - window->renderWin = window->win; -#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig) - if (fbc) { - window->ctx = __glut_glXCreateContextWithConfigSGIX(__glutDisplay, fbc, - GLX_RGBA_TYPE_SGIX, None, __glutTryDirect); - } else -#endif -#if defined(__OS2PM__) -// window->ctx = glXCreateContext(window->hpsBuffer, window->vis, -// None, __glutTryDirect); -#else - window->ctx = glXCreateContext(__glutDisplay, window->vis, - None, __glutTryDirect); -#endif - if (!window->ctx) { - __glutFatalError( - "failed to create OpenGL rendering context."); - } - window->renderCtx = window->ctx; -#if !defined(_WIN32) && !defined(__OS2PM__) - window->isDirect = glXIsDirect(__glutDisplay, window->ctx); - if (__glutForceDirect) { - if (!window->isDirect) - __glutFatalError("direct rendering not possible."); - } -#endif - - window->parent = parent; - if (parent) { - window->siblings = parent->children; - parent->children = window; - } else { - window->siblings = NULL; - } - window->overlay = NULL; - window->children = NULL; - window->display = __glutDefaultDisplay; - window->reshape = __glutDefaultReshape; - window->mouse = NULL; - window->motion = NULL; - window->passive = NULL; - window->entry = NULL; - window->keyboard = NULL; - window->keyboardUp = NULL; - window->windowStatus = NULL; - window->visibility = NULL; - window->special = NULL; - window->specialUp = NULL; - window->buttonBox = NULL; - window->dials = NULL; - window->spaceMotion = NULL; - window->spaceRotate = NULL; - window->spaceButton = NULL; - window->tabletMotion = NULL; - window->tabletButton = NULL; -#ifdef _WIN32 - window->joystick = NULL; - window->joyPollInterval = 0; -#endif - -#if defined(__OS2PM__) - window->wm_command = NULL; -#endif - - window->tabletPos[0] = -1; - window->tabletPos[1] = -1; -#if defined(__OS2PM__) - if(window->shownState == -1) - window->shownState = 0; - window->visState = window->shownState; -#else - window->shownState = 0; - window->visState = -1; /* not VisibilityUnobscured, - VisibilityPartiallyObscured, or - VisibilityFullyObscured */ -#endif - window->entryState = -1; /* not EnterNotify or LeaveNotify */ - - window->desiredConfMask = 0; - window->buttonUses = 0; - window->cursor = GLUT_CURSOR_INHERIT; - - /* Setup window to be mapped when glutMainLoop starts. */ - window->workMask = GLUT_MAP_WORK; -#ifdef _WIN32 - if (gameMode) { - /* When mapping a game mode window, just show - the window. We have already created the game - mode window with a maximize flag at creation - time. Doing a ShowWindow(window->win, SW_SHOWNORMAL) - would be wrong for a game mode window since it - would unmaximize the window. */ - window->desiredMapState = GameModeState; - } else { - window->desiredMapState = NormalState; - } -#else - window->desiredMapState = NormalState; -#endif - window->prevWorkWin = __glutWindowWorkList; - __glutWindowWorkList = window; - - /* Initially, no menus attached. */ - for (i = 0; i < GLUT_MAX_MENUS; i++) { - window->menu[i] = 0; - } - - /* Add this new window to the window list. */ - __glutWindowList[winnum] = window; - - /* Make the new window the current window. */ - __glutSetWindow(window); - - __glutDetermineMesaSwapHackSupport(); - - if (window->treatAsSingle) { - /* We do this because either the window really is single - buffered (in which case this is redundant, but harmless, - because this is the initial single-buffered context - state); or we are treating a double buffered window as a - single-buffered window because the system does not appear - to export any suitable single- buffered visuals (in which - the following are necessary). */ - glDrawBuffer(GL_FRONT); - glReadBuffer(GL_FRONT); - } - return window; -} - -/* CENTRY */ -int GLUTAPIENTRY -glutCreateWindow(const char *title) -{ - static int firstWindow = 1; - GLUTwindow *window; -#if !defined(_WIN32) && !defined(__OS2__) - XWMHints *wmHints; -#endif - Window win; - XTextProperty textprop; - - if (__glutGameModeWindow) { - __glutFatalError("cannot create windows in game mode."); - } - window = __glutCreateWindow(NULL, - __glutSizeHints.x, __glutSizeHints.y, - __glutInitWidth, __glutInitHeight, - /* not game mode */ 0); - win = window->win; - /* Setup ICCCM properties. */ - textprop.value = (unsigned char *) title; - textprop.encoding = XA_STRING; - textprop.format = 8; - textprop.nitems = strlen(title); -#if defined(__OS2__) - WinSetWindowText(window->frame, (PCSZ)title); - if (__glutIconic) { - window->desiredMapState = IconicState; - } -#elif defined(_WIN32) - SetWindowText(win, title); - if (__glutIconic) { - window->desiredMapState = IconicState; - } -#else - wmHints = XAllocWMHints(); - wmHints->initial_state = - __glutIconic ? IconicState : NormalState; - wmHints->flags = StateHint; - XSetWMProperties(__glutDisplay, win, &textprop, &textprop, - /* Only put WM_COMMAND property on first window. */ - firstWindow ? __glutArgv : NULL, - firstWindow ? __glutArgc : 0, - &__glutSizeHints, wmHints, NULL); - XFree(wmHints); - XSetWMProtocols(__glutDisplay, win, &__glutWMDeleteWindow, 1); -#endif - firstWindow = 0; - return window->num + 1; -} - -#ifdef _WIN32 -int GLUTAPIENTRY -__glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)) -{ - __glutExitFunc = exitfunc; - return glutCreateWindow(title); -} -#endif - -int GLUTAPIENTRY -glutCreateSubWindow(int win, int x, int y, int width, int height) -{ - GLUTwindow *window; - - window = __glutCreateWindow(__glutWindowList[win - 1], - x, y, width, height, /* not game mode */ 0); -#if !defined(_WIN32) && !defined(__OS2__) - { - GLUTwindow *toplevel; - - toplevel = __glutToplevelOf(window); - if (toplevel->cmap != window->cmap) { - __glutPutOnWorkList(toplevel, GLUT_COLORMAP_WORK); - } - } -#endif - return window->num + 1; -} -/* ENDCENTRY */ - -void -__glutDestroyWindow(GLUTwindow * window, - GLUTwindow * initialWindow) -{ - GLUTwindow **prev, *cur, *parent, *siblings; - - /* Recursively destroy any children. */ - cur = window->children; - while (cur) { - siblings = cur->siblings; - __glutDestroyWindow(cur, initialWindow); - cur = siblings; - } - /* Remove from parent's children list (only necessary for - non-initial windows and subwindows!). */ - parent = window->parent; - if (parent && parent == initialWindow->parent) { - prev = &parent->children; - cur = parent->children; - while (cur) { - if (cur == window) { - *prev = cur->siblings; - break; - } - prev = &(cur->siblings); - cur = cur->siblings; - } - } - /* Unbind if bound to this window. */ - if (window == __glutCurrentWindow) { - UNMAKE_CURRENT(); - __glutCurrentWindow = NULL; - } - /* Begin tearing down window itself. */ - if (window->overlay) { - __glutFreeOverlayFunc(window->overlay); - } - XDestroyWindow(__glutDisplay, window->win); - glXDestroyContext(__glutDisplay, window->ctx); - if (window->colormap) { - /* Only color index windows have colormap data structure. */ - __glutFreeColormap(window->colormap); - } - /* NULLing the __glutWindowList helps detect is a window - instance has been destroyed, given a window number. */ - __glutWindowList[window->num] = NULL; - - /* Cleanup data structures that might contain window. */ - cleanWindowWorkList(window); -#if !defined(_WIN32) && !defined(__OS2__) - cleanStaleWindowList(window); -#endif - /* Remove window from the "get window cache" if it is there. */ - if (__glutWindowCache == window) - __glutWindowCache = NULL; - - if (window->visAlloced) { - /* Only free XVisualInfo* gotten from glXChooseVisual. */ - XFree(window->vis); - } - - if (window == __glutGameModeWindow) { - /* Destroying the game mode window should implicitly - have GLUT leave game mode. */ - __glutCloseDownGameMode(); - } - - free(window); -} - -/* CENTRY */ -void GLUTAPIENTRY -glutDestroyWindow(int win) -{ - GLUTwindow *window = __glutWindowList[win - 1]; - - if (__glutMappedMenu && __glutMenuWindow == window) { - __glutFatalUsage("destroying menu window not allowed while menus in use"); - } -#if !defined(_WIN32) && !defined(__OS2__) - /* If not a toplevel window... */ - if (window->parent) { - /* Destroying subwindows may change colormap requirements; - recalculate toplevel window's WM_COLORMAP_WINDOWS - property. */ - __glutPutOnWorkList(__glutToplevelOf(window->parent), - GLUT_COLORMAP_WORK); - } -#endif - __glutDestroyWindow(window, window); - XFlush(__glutDisplay); -} -/* ENDCENTRY */ - -void -__glutChangeWindowEventMask(long eventMask, Bool add) -{ - if (add) { - /* Add eventMask to window's event mask. */ - if ((__glutCurrentWindow->eventMask & eventMask) != - eventMask) { - __glutCurrentWindow->eventMask |= eventMask; - __glutPutOnWorkList(__glutCurrentWindow, - GLUT_EVENT_MASK_WORK); - } - } else { - /* Remove eventMask from window's event mask. */ - if (__glutCurrentWindow->eventMask & eventMask) { - __glutCurrentWindow->eventMask &= ~eventMask; - __glutPutOnWorkList(__glutCurrentWindow, - GLUT_EVENT_MASK_WORK); - } - } -} - -void GLUTAPIENTRY -glutDisplayFunc(GLUTdisplayCB displayFunc) -{ - /* XXX Remove the warning after GLUT 3.0. */ - if (!displayFunc) - __glutFatalError("NULL display callback not allowed in GLUT 3.0; update your code."); - __glutCurrentWindow->display = displayFunc; -} - -void GLUTAPIENTRY -glutMouseFunc(GLUTmouseCB mouseFunc) -{ - if (__glutCurrentWindow->mouse) { - if (!mouseFunc) { - /* Previous mouseFunc being disabled. */ - __glutCurrentWindow->buttonUses--; - __glutChangeWindowEventMask( - ButtonPressMask | ButtonReleaseMask, - __glutCurrentWindow->buttonUses > 0); - } - } else { - if (mouseFunc) { - /* Previously no mouseFunc, new one being installed. */ - __glutCurrentWindow->buttonUses++; - __glutChangeWindowEventMask( - ButtonPressMask | ButtonReleaseMask, True); - } - } - __glutCurrentWindow->mouse = mouseFunc; -} - -void GLUTAPIENTRY -glutMotionFunc(GLUTmotionCB motionFunc) -{ - /* Hack. Some window managers (4Dwm by default) will mask - motion events if the client is not selecting for button - press and release events. So we select for press and - release events too (being careful to use reference - counting). */ - if (__glutCurrentWindow->motion) { - if (!motionFunc) { - /* previous mouseFunc being disabled */ - __glutCurrentWindow->buttonUses--; - __glutChangeWindowEventMask( - ButtonPressMask | ButtonReleaseMask, - __glutCurrentWindow->buttonUses > 0); - } - } else { - if (motionFunc) { - /* Previously no mouseFunc, new one being installed. */ - __glutCurrentWindow->buttonUses++; - __glutChangeWindowEventMask( - ButtonPressMask | ButtonReleaseMask, True); - } - } - /* Real work of selecting for passive mouse motion. */ - __glutChangeWindowEventMask( - Button1MotionMask | Button2MotionMask | Button3MotionMask, - motionFunc != NULL); - __glutCurrentWindow->motion = motionFunc; -} - -void GLUTAPIENTRY -glutPassiveMotionFunc(GLUTpassiveCB passiveMotionFunc) -{ - __glutChangeWindowEventMask(PointerMotionMask, - passiveMotionFunc != NULL); - - /* Passive motion also requires watching enters and leaves so - that a fake passive motion event can be generated on an - enter. */ - __glutChangeWindowEventMask(EnterWindowMask | LeaveWindowMask, - __glutCurrentWindow->entry != NULL || passiveMotionFunc != NULL); - - __glutCurrentWindow->passive = passiveMotionFunc; -} - -void GLUTAPIENTRY -glutEntryFunc(GLUTentryCB entryFunc) -{ - __glutChangeWindowEventMask(EnterWindowMask | LeaveWindowMask, - entryFunc != NULL || __glutCurrentWindow->passive); - __glutCurrentWindow->entry = entryFunc; - if (!entryFunc) { - __glutCurrentWindow->entryState = -1; - } -} - -void GLUTAPIENTRY -glutWindowStatusFunc(GLUTwindowStatusCB windowStatusFunc) -{ - __glutChangeWindowEventMask(VisibilityChangeMask, - windowStatusFunc != NULL); - __glutCurrentWindow->windowStatus = windowStatusFunc; - if (!windowStatusFunc) { - /* Make state invalid. */ - __glutCurrentWindow->visState = -1; - } -} - -static void GLUTCALLBACK -visibilityHelper(int status) -{ - if (status == GLUT_HIDDEN || status == GLUT_FULLY_COVERED) - __glutCurrentWindow->visibility(GLUT_NOT_VISIBLE); - else - __glutCurrentWindow->visibility(GLUT_VISIBLE); -} - - -void GLUTAPIENTRY -glutVisibilityFunc(GLUTvisibilityCB visibilityFunc) -{ - __glutCurrentWindow->visibility = visibilityFunc; - - if (visibilityFunc) - { glutWindowStatusFunc(visibilityHelper); -#if defined(__OS2PM__) - if(__glutCurrentWindow->shownState >= 0) - { visibilityHelper(__glutCurrentWindow->shownState); - } -#endif - } - else - glutWindowStatusFunc(NULL); -} - -void GLUTAPIENTRY -glutReshapeFunc(GLUTreshapeCB reshapeFunc) -{ - if (reshapeFunc) { - __glutCurrentWindow->reshape = reshapeFunc; - } else { - __glutCurrentWindow->reshape = __glutDefaultReshape; - } -} diff --git a/src/glut/os2/glut_winmisc.cpp b/src/glut/os2/glut_winmisc.cpp deleted file mode 100644 index 7cd6699924..0000000000 --- a/src/glut/os2/glut_winmisc.cpp +++ /dev/null @@ -1,126 +0,0 @@ - -/* 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. */ - - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> - - -#include "glutint.h" - -/* CENTRY */ -void GLUTAPIENTRY -glutSetWindowTitle(const char *title) -{ -#if defined(__OS2PM__) - __glutSetWindowText(__glutCurrentWindow->win, (char *)title); - -#else - XTextProperty textprop; - - assert(!__glutCurrentWindow->parent); - IGNORE_IN_GAME_MODE(); - textprop.value = (unsigned char *) title; - textprop.encoding = XA_STRING; - textprop.format = 8; - textprop.nitems = strlen(title); - XSetWMName(__glutDisplay, - __glutCurrentWindow->win, &textprop); - XFlush(__glutDisplay); -#endif -} - -void GLUTAPIENTRY -glutSetIconTitle(const char *title) -{ -#if defined(__OS2PM__) -//todo ? -#else - - XTextProperty textprop; - - assert(!__glutCurrentWindow->parent); - IGNORE_IN_GAME_MODE(); - textprop.value = (unsigned char *) title; - textprop.encoding = XA_STRING; - textprop.format = 8; - textprop.nitems = strlen(title); - XSetWMIconName(__glutDisplay, - __glutCurrentWindow->win, &textprop); - XFlush(__glutDisplay); -#endif -} - -void GLUTAPIENTRY -glutPositionWindow(int x, int y) -{ - IGNORE_IN_GAME_MODE(); - __glutCurrentWindow->desiredX = x; - __glutCurrentWindow->desiredY = y; - __glutCurrentWindow->desiredConfMask |= CWX | CWY; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK); -} - -void GLUTAPIENTRY -glutReshapeWindow(int w, int h) -{ - IGNORE_IN_GAME_MODE(); - if (w <= 0 || h <= 0) - __glutWarning("glutReshapeWindow: non-positive width or height not allowed"); - - __glutCurrentWindow->desiredWidth = w; - __glutCurrentWindow->desiredHeight = h; - __glutCurrentWindow->desiredConfMask |= CWWidth | CWHeight; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK); -} - -void GLUTAPIENTRY -glutPopWindow(void) -{ - IGNORE_IN_GAME_MODE(); - __glutCurrentWindow->desiredStack = Above; - __glutCurrentWindow->desiredConfMask |= CWStackMode; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK); -} - -void GLUTAPIENTRY -glutPushWindow(void) -{ - IGNORE_IN_GAME_MODE(); - __glutCurrentWindow->desiredStack = Below; - __glutCurrentWindow->desiredConfMask |= CWStackMode; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK); -} - -void GLUTAPIENTRY -glutIconifyWindow(void) -{ - IGNORE_IN_GAME_MODE(); - assert(!__glutCurrentWindow->parent); - __glutCurrentWindow->desiredMapState = IconicState; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK); -} - -void GLUTAPIENTRY -glutShowWindow(void) -{ - IGNORE_IN_GAME_MODE(); - __glutCurrentWindow->desiredMapState = NormalState; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK); -} - -void GLUTAPIENTRY -glutHideWindow(void) -{ - IGNORE_IN_GAME_MODE(); - __glutCurrentWindow->desiredMapState = WithdrawnState; - __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK); -} - -/* ENDCENTRY */ diff --git a/src/glut/os2/glutbitmap.h b/src/glut/os2/glutbitmap.h deleted file mode 100644 index 9584bb129d..0000000000 --- a/src/glut/os2/glutbitmap.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __glutbitmap_h__ -#define __glutbitmap_h__ - -/* Copyright (c) Mark J. Kilgard, 1994, 1998. */ - -/* 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. */ - -#define GLUT_NO_LIB_PRAGMA /* Avoid auto library linking when building - the GLUT library itself. */ -#include <GL/glut.h> - -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 *GLUTbitmapFont; - -#endif /* __glutbitmap_h__ */ diff --git a/src/glut/os2/glutos2.h b/src/glut/os2/glutos2.h deleted file mode 100644 index 533a78011e..0000000000 --- a/src/glut/os2/glutos2.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef __glutos2_h__ -#define __glutos2_h__ - - -/* Win32 "equivalent" cursors - eventually, the X glyphs should be - converted to Win32 cursors -- then they will look the same */ -#define XC_arrow IDC_ARROW -#define XC_top_left_arrow IDC_ARROW -#define XC_hand1 IDC_SIZEALL -#define XC_pirate IDC_NO -#define XC_question_arrow IDC_HELP -#define XC_exchange IDC_NO -#define XC_spraycan IDC_SIZEALL -#define XC_watch IDC_WAIT -#define XC_xterm IDC_IBEAM -#define XC_crosshair IDC_CROSS -#define XC_sb_v_double_arrow IDC_SIZENS -#define XC_sb_h_double_arrow IDC_SIZEWE -#define XC_top_side IDC_UPARROW -#define XC_bottom_side IDC_SIZENS -#define XC_left_side IDC_SIZEWE -#define XC_right_side IDC_SIZEWE -#define XC_top_left_corner IDC_SIZENWSE -#define XC_top_right_corner IDC_SIZENESW -#define XC_bottom_right_corner IDC_SIZENWSE -#define XC_bottom_left_corner IDC_SIZENESW - -#define XA_STRING 0 - -/* Private routines from win32_util.c */ -extern int gettimeofday(struct timeval* tp, void* tzp); -//extern void *__glutFont(void *font); -extern int __glutGetTransparentPixel(Display *dpy, XVisualInfo *vinfo); -extern void __glutAdjustCoords(Window parent, int *x, int *y, int *width, int *height); - -#endif /* __glutos2_h__ */ diff --git a/src/glut/os2/glutstroke.h b/src/glut/os2/glutstroke.h deleted file mode 100644 index cbc9e156fe..0000000000 --- a/src/glut/os2/glutstroke.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef __glutstroke_h__ -#define __glutstroke_h__ - -/* 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. */ - -#if defined(_WIN32) -#pragma warning (disable:4244) /* disable bogus conversion warnings */ -#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ -#endif - -typedef struct { - float x; - float y; -} CoordRec, *CoordPtr; - -typedef struct { - int num_coords; - const CoordRec *coord; -} StrokeRec, *StrokePtr; - -typedef struct { - int num_strokes; - const StrokeRec *stroke; - float center; - float right; -} StrokeCharRec, *StrokeCharPtr; - -typedef struct { - const char *name; - int num_chars; - const StrokeCharRec *ch; - float top; - float bottom; -} StrokeFontRec, *StrokeFontPtr; - -typedef void *GLUTstrokeFont; - -#endif /* __glutstroke_h__ */ diff --git a/src/glut/os2/layerutil.h b/src/glut/os2/layerutil.h deleted file mode 100644 index 3f62031939..0000000000 --- a/src/glut/os2/layerutil.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __layerutil_h__ -#define __layerutil_h__ - -/* Copyright (c) Mark J. Kilgard, 1993, 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. */ - -/* Based on XLayerUtil.h: Revision: 1.3 */ - -#ifdef __VMS -#include <GL/vms_x_fix.h> -#endif - -#if !defined(_WIN32) && !defined(__OS2__) -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Xmd.h> -#endif /* !_WIN32 */ - -/* Transparent type values */ -/* None 0 */ -#define TransparentPixel 1 -#define TransparentMask 2 - -/* layered visual info template flags */ -#define VisualLayerMask 0x200 -#define VisualTransparentType 0x400 -#define VisualTransparentValue 0x800 -#define VisualAllLayerMask 0xFFF - -/* layered visual info structure */ -typedef struct _XLayerVisualInfo { - XVisualInfo vinfo; - long layer; - long type; - unsigned long value; -} XLayerVisualInfo; - -/* SERVER_OVERLAY_VISUALS property element */ -typedef struct _OverlayInfo { - /* Avoid 64-bit portability problems by being careful to use - longs due to the way XGetWindowProperty is specified. Note - that these parameters are passed as CARD32s over X - protocol. */ - long overlay_visual; - long transparent_type; - long value; - long layer; -} OverlayInfo; - -extern int __glutGetTransparentPixel(Display *, XVisualInfo *); -extern XLayerVisualInfo *__glutXGetLayerVisualInfo(Display *, - long, XLayerVisualInfo *, int *); -extern Status __glutXMatchLayerVisualInfo(Display *, - int, int, int, int, XLayerVisualInfo *); - -#endif /* __layerutil_h__ */ diff --git a/src/glut/os2/libGlut.DEF b/src/glut/os2/libGlut.DEF deleted file mode 100644 index a0e184eef0..0000000000 --- a/src/glut/os2/libGlut.DEF +++ /dev/null @@ -1,94 +0,0 @@ - -;----------------------------------------------------- -; def Module definition file for the DLL -;----------------------------------------------------- - -LIBRARY libGlut INITINSTANCE TERMINSTANCE -PROTMODE -DATA MULTIPLE NONSHARED READWRITE LOADONCALL -CODE LOADONCALL -EXPORTS ; Names of exported functions and data - -;********************************* -;MesaGLUT - glutCommandFunc @3001 - glutCreateWindow @3002 - glutCreateSubWindow @3003 - glutDestroyWindow @3004 - glutDisplayFunc @3005 - glutEntryFunc @3006 - glutExtensionSupported @3007 - glutIdleFunc @3008 - glutInit @3009 - glutInitDisplayMode @3010 - glutInitWindowPosition @3011 - glutInitWindowSize @3012 - glutMainLoop @3013 - glutGet @3014 - glutGetColor @3015 - glutGetWindow @3016 - glutKeyboardFunc @3017 - glutMouseFunc @3018 - glutSpecialFunc @3019 - glutStrokeCharacter @3020 - glutSetColor @3021 - glutSetIconTitle @3022 - glutSetWindow @3023 - glutSetWindowTitle @3024 - - glutReshapeFunc @3025 - glutReshapeWindow @3026 - - - glutSwapBuffers @3027 - glutPostRedisplay @3028 - glutPositionWindow @3029 - glutVisibilityFunc @3030 - glutTimerFunc @3031 - glutMotionFunc @3032 - - glutCreateMenu @3033 - glutAttachMenu @3034 - glutDestroyMenu @3035 - glutAddMenuEntry @3036 - glutPassiveMotionFunc @3037 - - glutSolidCone @3038 - glutSolidCube @3039 - glutSolidDodecahedron @3040 - glutSolidOctahedron @3041 - glutSolidIcosahedron @3042 - glutSolidSphere @3043 - glutSolidTeapot @3044 - glutSolidTetrahedron @3045 - glutSolidTorus @3046 - - glutWireCone @3047 - glutWireCube @3048 - glutWireDodecahedron @3049 - glutWireIcosahedron @3050 - glutWireOctahedron @3051 - glutWireSphere @3052 - glutWireTetrahedron @3053 - glutWireTorus @3054 - glutWireTeapot @3055 - -;GL_GLEXT_PROTOTYPES - glutBitmapCharacter @3101 - glutBitmap9By15 @3102 - glutBitmapHelvetica10 @3103 - glutBitmapHelvetica12 @3104 - glutBitmapHelvetica18 @3105 - glutBitmapTimesRoman24 @3106 - glutStrokeRoman @3107 - glutBitmap8By13 @3108 - -;Global constants -; hab @12001 -; /* PM anchor block handle */ -; hpsCurrent @12002 - XHDC @12004 - XHWND @12005 - - - diff --git a/src/glut/os2/os2_glx.cpp b/src/glut/os2/os2_glx.cpp deleted file mode 100644 index bf116e49c9..0000000000 --- a/src/glut/os2/os2_glx.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/* os2_glx.c */ - -#include <stdio.h> -#include <string.h> -#include <malloc.h> -#include "gl/gl.h" -#include "WarpGL.h" -#include "GL/os2mesa.h" - -#define POKA 0 -/* global current HDC */ - -XVisualInfo *wglDescribePixelFormat(int iPixelFormat); - -extern HDC XHDC; -extern HWND XHWND; -//extern HPS hpsCurrent; -extern HAB hab; /* PM anchor block handle */ - -GLXContext -glXCreateContext(HPS hps, XVisualInfo * visinfo, - GLXContext share, Bool direct) -{ - /* KLUDGE: GLX really expects a display pointer to be passed - in as the first parameter, but Win32 needs an HDC instead, - so BE SURE that the global XHDC is set before calling this - routine. */ - HGLRC context; - - context = wglCreateContext(XHDC,hps,hab); - - - /* Since direct rendering is implicit, the direct flag is - ignored. */ - - return context; -} - - -int -glXGetConfig(XVisualInfo * visual, int attrib, int *value) -{ - if (!visual) - return GLX_BAD_VISUAL; - - switch (attrib) { - case GLX_USE_GL: - if (visual->dwFlags & (PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW)) { - /* XXX Brad's Matrix Millenium II has problems creating - color index windows in 24-bit mode (lead to GDI crash) - and 32-bit mode (lead to black window). The cColorBits - filed of the PIXELFORMATDESCRIPTOR returned claims to - have 24 and 32 bits respectively of color indices. 2^24 - and 2^32 are ridiculously huge writable colormaps. - Assume that if we get back a color index - PIXELFORMATDESCRIPTOR with 24 or more bits, the - PIXELFORMATDESCRIPTOR doesn't really work and skip it. - -mjk */ - if (visual->iPixelType == PFD_TYPE_COLORINDEX - && visual->cColorBits >= 24) { - *value = 0; - } else { - *value = 1; - } - } else { - *value = 0; - } - break; - case GLX_BUFFER_SIZE: - /* KLUDGE: if we're RGBA, return the number of bits/pixel, - otherwise, return 8 (we guessed at 256 colors in CI - mode). */ - if (visual->iPixelType == PFD_TYPE_RGBA) - *value = visual->cColorBits; - else - *value = 8; - break; - case GLX_LEVEL: - /* The bReserved flag of the pfd contains the - overlay/underlay info. */ - *value = visual->bReserved; - break; - case GLX_RGBA: - *value = visual->iPixelType == PFD_TYPE_RGBA; - break; - case GLX_DOUBLEBUFFER: - *value = visual->dwFlags & PFD_DOUBLEBUFFER; - break; - case GLX_STEREO: - *value = visual->dwFlags & PFD_STEREO; - break; - case GLX_AUX_BUFFERS: - *value = visual->cAuxBuffers; - break; - case GLX_RED_SIZE: - *value = visual->cRedBits; - break; - case GLX_GREEN_SIZE: - *value = visual->cGreenBits; - break; - case GLX_BLUE_SIZE: - *value = visual->cBlueBits; - break; - case GLX_ALPHA_SIZE: - *value = visual->cAlphaBits; - break; - case GLX_DEPTH_SIZE: - *value = visual->cDepthBits; - break; - case GLX_STENCIL_SIZE: - *value = visual->cStencilBits; - break; - case GLX_ACCUM_RED_SIZE: - *value = visual->cAccumRedBits; - break; - case GLX_ACCUM_GREEN_SIZE: - *value = visual->cAccumGreenBits; - break; - case GLX_ACCUM_BLUE_SIZE: - *value = visual->cAccumBlueBits; - break; - case GLX_ACCUM_ALPHA_SIZE: - *value = visual->cAccumAlphaBits; - break; -#if POKA == 100 -#endif /* POKA == 100 */ - default: - return GLX_BAD_ATTRIB; - } - return 0; -} - - -XVisualInfo * glXChooseVisual(int mode) -{ int imode = 2; - if(mode & GLUT_DOUBLE) - imode = 1; - return - wglDescribePixelFormat(imode); -} - - -#if POKA -#endif /* POKA */ - diff --git a/src/glut/os2/os2_menu.cpp b/src/glut/os2/os2_menu.cpp deleted file mode 100644 index f140e9c79b..0000000000 --- a/src/glut/os2/os2_menu.cpp +++ /dev/null @@ -1,532 +0,0 @@ - -/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */ -/* Copyright (c) Nate Robins, 1997. */ - -/* 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. */ - -/* This file completely re-implements glut_menu.c and glut_menu2.c - for Win32. Note that neither glut_menu.c nor glut_menu2.c are - compiled into Win32 GLUT. */ - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <errno.h> -#include <assert.h> - -#include "glutint.h" - -void (GLUTCALLBACK *__glutMenuStatusFunc) (int, int, int); -//GLUTmenu *__glutMappedMenu; -//GLUTwindow *__glutMenuWindow; -GLUTmenuItem *__glutItemSelected; -unsigned __glutMenuButton; - -static GLUTmenu **menuList = NULL; -static int menuListSize = 0; -static UINT uniqueMenuHandler = 1; - -/* DEPRICATED, use glutMenuStatusFunc instead. */ -void GLUTAPIENTRY -glutMenuStateFunc(GLUTmenuStateCB menuStateFunc) -{ - __glutMenuStatusFunc = (GLUTmenuStatusCB) menuStateFunc; -} - -void GLUTAPIENTRY -glutMenuStatusFunc(GLUTmenuStatusCB menuStatusFunc) -{ - __glutMenuStatusFunc = menuStatusFunc; -} - -void -__glutSetMenu(GLUTmenu * menu) -{ - __glutCurrentMenu = menu; -} - -static void -unmapMenu(GLUTmenu * menu) -{ - if (menu->cascade) { - unmapMenu(menu->cascade); - menu->cascade = NULL; - } - menu->anchor = NULL; - menu->highlighted = NULL; -} - -void -__glutFinishMenu(Window win, int x, int y) -{ - - unmapMenu(__glutMappedMenu); - - /* XXX Put in a GdiFlush just in case. Probably unnecessary. -mjk */ -// GdiFlush(); - - if (__glutMenuStatusFunc) { - __glutSetWindow(__glutMenuWindow); - __glutSetMenu(__glutMappedMenu); - - /* Setting __glutMappedMenu to NULL permits operations that - change menus or destroy the menu window again. */ - __glutMappedMenu = NULL; - - __glutMenuStatusFunc(GLUT_MENU_NOT_IN_USE, x, y); - } - /* Setting __glutMappedMenu to NULL permits operations that - change menus or destroy the menu window again. */ - __glutMappedMenu = NULL; - - /* If an item is selected and it is not a submenu trigger, - generate menu callback. */ - if (__glutItemSelected && !__glutItemSelected->isTrigger) { - __glutSetWindow(__glutMenuWindow); - /* When menu callback is triggered, current menu should be - set to the callback menu. */ - __glutSetMenu(__glutItemSelected->menu); - __glutItemSelected->menu->select(__glutItemSelected->value); - } - __glutMenuWindow = NULL; -} - -static void -mapMenu(GLUTmenu * menu, int x, int y) -{ -//todo -// TrackPopupMenu((HMENU) menu->win, TPM_LEFTALIGN | -// (__glutMenuButton == TPM_RIGHTBUTTON) ? TPM_RIGHTBUTTON : TPM_LEFTBUTTON, -// x, y, 0, __glutCurrentWindow->win, NULL); -} - -void -__glutStartMenu(GLUTmenu * menu, GLUTwindow * window, - int x, int y, int x_win, int y_win) -{ - assert(__glutMappedMenu == NULL); - __glutMappedMenu = menu; - __glutMenuWindow = window; - __glutItemSelected = NULL; - if (__glutMenuStatusFunc) { - __glutSetMenu(menu); - __glutSetWindow(window); - __glutMenuStatusFunc(GLUT_MENU_IN_USE, x_win, y_win); - } - mapMenu(menu, x, y); -} - -GLUTmenuItem * -__glutGetUniqueMenuItem(GLUTmenu * menu, UINT unique) -{ - GLUTmenuItem *item; - int i; - - i = menu->num; - item = menu->list; - while (item) { - if (item->unique == unique) { - return item; - } - if (item->isTrigger) { - GLUTmenuItem *subitem; - subitem = __glutGetUniqueMenuItem(menuList[item->value], unique); - if (subitem) { - return subitem; - } - } - i--; - item = item->next; - } - return NULL; -} - -GLUTmenuItem * -__glutGetMenuItem(GLUTmenu * menu, Window win, int *which) -{ - GLUTmenuItem *item; - int i; - - i = menu->num; - item = menu->list; - while (item) { - if (item->win == win) { - *which = i; - return item; - } - if (item->isTrigger) { - GLUTmenuItem *subitem; - - subitem = __glutGetMenuItem(menuList[item->value], - win, which); - if (subitem) { - return subitem; - } - } - i--; - item = item->next; - } - return NULL; -} - -GLUTmenu * -__glutGetMenu(Window win) -{ - GLUTmenu *menu; - - menu = __glutMappedMenu; - while (menu) { - if (win == menu->win) { - return menu; - } - menu = menu->cascade; - } - return NULL; -} - -GLUTmenu * -__glutGetMenuByNum(int menunum) -{ - if (menunum < 1 || menunum > menuListSize) { - return NULL; - } - return menuList[menunum - 1]; -} - -static int -getUnusedMenuSlot(void) -{ - int i; - - /* Look for allocated, unused slot. */ - for (i = 0; i < menuListSize; i++) { - if (!menuList[i]) { - return i; - } - } - /* Allocate a new slot. */ - menuListSize++; - if (menuList) { - menuList = (GLUTmenu **) - realloc(menuList, menuListSize * sizeof(GLUTmenu *)); - } else { - /* XXX Some realloc's do not correctly perform a malloc - when asked to perform a realloc on a NULL pointer, - though the ANSI C library spec requires this. */ - menuList = (GLUTmenu **) malloc(sizeof(GLUTmenu *)); - } - if (!menuList) { - __glutFatalError("out of memory."); - } - menuList[menuListSize - 1] = NULL; - return menuListSize - 1; -} - -static void -menuModificationError(void) -{ - /* XXX Remove the warning after GLUT 3.0. */ - __glutWarning("The following is a new check for GLUT 3.0; update your code."); - __glutFatalError("menu manipulation not allowed while menus in use."); -} - -int GLUTAPIENTRY -glutCreateMenu(GLUTselectCB selectFunc) -{ - GLUTmenu *menu; - int menuid; - - if (__glutMappedMenu) { - menuModificationError(); - } - menuid = getUnusedMenuSlot(); - menu = (GLUTmenu *) malloc(sizeof(GLUTmenu)); - if (!menu) { - __glutFatalError("out of memory."); - } - menu->id = menuid; - menu->num = 0; - menu->submenus = 0; - menu->select = selectFunc; - menu->list = NULL; - menu->cascade = NULL; - menu->highlighted = NULL; - menu->anchor = NULL; -//todo -// menu->win = (HWND) CreatePopupMenu(); - menuList[menuid] = menu; - __glutSetMenu(menu); - return menuid + 1; -} - - -void GLUTAPIENTRY -glutDestroyMenu(int menunum) -{ - GLUTmenu *menu = __glutGetMenuByNum(menunum); - GLUTmenuItem *item, *next; - - if (__glutMappedMenu) { - menuModificationError(); - } - assert(menu->id == menunum - 1); -//todo DestroyMenu( (HMENU) menu->win); - menuList[menunum - 1] = NULL; - /* free all menu entries */ - item = menu->list; - while (item) { - assert(item->menu == menu); - next = item->next; - free(item->label); - free(item); - item = next; - } - if (__glutCurrentMenu == menu) { - __glutCurrentMenu = NULL; - } - free(menu); -} - -int GLUTAPIENTRY -glutGetMenu(void) -{ - if (__glutCurrentMenu) { - return __glutCurrentMenu->id + 1; - } else { - return 0; - } -} - -void GLUTAPIENTRY -glutSetMenu(int menuid) -{ - GLUTmenu *menu; - - if (menuid < 1 || menuid > menuListSize) { - __glutWarning("glutSetMenu attempted on bogus menu."); - return; - } - menu = menuList[menuid - 1]; - if (!menu) { - __glutWarning("glutSetMenu attempted on bogus menu."); - return; - } - __glutSetMenu(menu); -} - -static void -setMenuItem(GLUTmenuItem * item, const char *label, - int value, Bool isTrigger) -{ - GLUTmenu *menu; - - menu = item->menu; - item->label = __glutStrdup(label); - if (!item->label) { - __glutFatalError("out of memory."); - } - item->isTrigger = isTrigger; - item->len = (int) strlen(label); - item->value = value; - item->unique = uniqueMenuHandler++; -//todo -// if (isTrigger) { -// AppendMenu((HMENU) menu->win, MF_POPUP, (UINT)item->win, label); -// } else { -// AppendMenu((HMENU) menu->win, MF_STRING, item->unique, label); -// } -} - -void GLUTAPIENTRY -glutAddMenuEntry(const char *label, int value) -{ - GLUTmenuItem *entry; - - if (__glutMappedMenu) { - menuModificationError(); - } - entry = (GLUTmenuItem *) malloc(sizeof(GLUTmenuItem)); - if (!entry) { - __glutFatalError("out of memory."); - } - entry->menu = __glutCurrentMenu; - setMenuItem(entry, label, value, FALSE); - __glutCurrentMenu->num++; - entry->next = __glutCurrentMenu->list; - __glutCurrentMenu->list = entry; -} - -void GLUTAPIENTRY -glutAddSubMenu(const char *label, int menu) -{ - GLUTmenuItem *submenu; - GLUTmenu *popupmenu; - - if (__glutMappedMenu) { - menuModificationError(); - } - submenu = (GLUTmenuItem *) malloc(sizeof(GLUTmenuItem)); - if (!submenu) { - __glutFatalError("out of memory."); - } - __glutCurrentMenu->submenus++; - submenu->menu = __glutCurrentMenu; - popupmenu = __glutGetMenuByNum(menu); - if (popupmenu) { - submenu->win = popupmenu->win; - } - setMenuItem(submenu, label, /* base 0 */ menu - 1, TRUE); - __glutCurrentMenu->num++; - submenu->next = __glutCurrentMenu->list; - __glutCurrentMenu->list = submenu; -} - -void GLUTAPIENTRY -glutChangeToMenuEntry(int num, const char *label, int value) -{ - GLUTmenuItem *item; - int i; - - if (__glutMappedMenu) { - menuModificationError(); - } - i = __glutCurrentMenu->num; - item = __glutCurrentMenu->list; - while (item) { - if (i == num) { - if (item->isTrigger) { - /* If changing a submenu trigger to a menu entry, we - need to account for submenus. */ - item->menu->submenus--; - /* Nuke the Win32 menu. */ -//todo -// DestroyMenu((HMENU) item->win); - } - free(item->label); - - item->label = strdup(label); - if (!item->label) - __glutFatalError("out of memory"); - item->isTrigger = FALSE; - item->len = (int) strlen(label); - item->value = value; - item->unique = uniqueMenuHandler++; -//todo -// ModifyMenu((HMENU) __glutCurrentMenu->win, (UINT) i - 1, -// MF_BYPOSITION | MFT_STRING, item->unique, label); - - return; - } - i--; - item = item->next; - } - __glutWarning("Current menu has no %d item.", num); -} - -void GLUTAPIENTRY -glutChangeToSubMenu(int num, const char *label, int menu) -{ - GLUTmenu *popupmenu; - GLUTmenuItem *item; - int i; - - if (__glutMappedMenu) { - menuModificationError(); - } - i = __glutCurrentMenu->num; - item = __glutCurrentMenu->list; - while (item) { - if (i == num) { - if (!item->isTrigger) { - /* If changing a menu entry to as submenu trigger, we - need to account for submenus. */ - item->menu->submenus++; -//todo -// item->win = (HWND) CreatePopupMenu(); - } - free(item->label); - - item->label = strdup(label); - if (!item->label) - __glutFatalError("out of memory"); - item->isTrigger = TRUE; - item->len = (int) strlen(label); - item->value = menu - 1; - item->unique = uniqueMenuHandler++; - popupmenu = __glutGetMenuByNum(menu); - if (popupmenu) - item->win = popupmenu->win; -//todo -// ModifyMenu((HMENU) __glutCurrentMenu->win, (UINT) i - 1, -// MF_BYPOSITION | MF_POPUP, (UINT) item->win, label); - return; - } - i--; - item = item->next; - } - __glutWarning("Current menu has no %d item.", num); -} - -void GLUTAPIENTRY -glutRemoveMenuItem(int num) -{ - GLUTmenuItem *item, **prev; - int i; - - if (__glutMappedMenu) { - menuModificationError(); - } - i = __glutCurrentMenu->num; - prev = &__glutCurrentMenu->list; - item = __glutCurrentMenu->list; - while (item) { - if (i == num) { - /* Found the menu item in list to remove. */ - __glutCurrentMenu->num--; - - /* Patch up menu's item list. */ - *prev = item->next; -//todo -// RemoveMenu((HMENU) __glutCurrentMenu->win, (UINT) i - 1, MF_BYPOSITION); - - free(item->label); - free(item); - return; - } - i--; - prev = &item->next; - item = item->next; - } - __glutWarning("Current menu has no %d item.", num); -} - -void GLUTAPIENTRY -glutAttachMenu(int button) -{ - if (__glutCurrentWindow == __glutGameModeWindow) { - __glutWarning("cannot attach menus in game mode."); - return; - } - if (__glutMappedMenu) { - menuModificationError(); - } - if (__glutCurrentWindow->menu[button] < 1) { - __glutCurrentWindow->buttonUses++; - } - __glutCurrentWindow->menu[button] = __glutCurrentMenu->id + 1; -} - -void GLUTAPIENTRY -glutDetachMenu(int button) -{ - if (__glutMappedMenu) { - menuModificationError(); - } - if (__glutCurrentWindow->menu[button] > 0) { - __glutCurrentWindow->buttonUses--; - __glutCurrentWindow->menu[button] = 0; - } -} - diff --git a/src/glut/os2/os2_winproc.cpp b/src/glut/os2/os2_winproc.cpp deleted file mode 100644 index 9cbdec1cd2..0000000000 --- a/src/glut/os2/os2_winproc.cpp +++ /dev/null @@ -1,1296 +0,0 @@ -/* os2_winproc.c */ - - -#define INCL_DEV -#include "WarpGL.h" -#include "GL/os2mesa.h" - - -#define _MEERROR_H_ -#include <mmioos2.h> /* It is from MMPM toolkit */ -#include <dive.h> -#include <fourcc.h> - - -#include "os2mesadef.h" -#include "glutint.h" - - -#define POKA 0 - -#if POKA - -extern unsigned __glutMenuButton; -extern GLUTidleCB __glutIdleFunc; -extern GLUTtimer *__glutTimerList; -extern void handleTimeouts(void); -extern GLUTmenuItem *__glutGetUniqueMenuItem(GLUTmenu * menu, int unique); -static HMENU __glutHMenu; - -#endif - -extern void _mesa_ResizeBuffersMESA( void ); - - -MRESULT EXPENTRY GlutWindowProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ); -MRESULT EXPENTRY GlutWindowChildProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ); -void updateWindowState(GLUTwindow *window, int visState); - -volatile extern HAB hab; /* PM anchor block handle */ -volatile extern HPS hpsCurrent; - -RECTL rCtls[52]; -ULONG ulNumRcls; - -MRESULT EXPENTRY GlutWindowChildProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) -{ MRESULT rc; - rc = GlutWindowProc(hwnd, msg, mp1, mp2 ); - return rc; -} - -MRESULT EXPENTRY GlutWindowProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) -{ - HPS hps = NULLHANDLE; /* presentation space handle */ - GLUTwindow* window; /* GLUT window associated with message. */ - GLUTmenu* menu; /* GLUT menu associated with message. */ - RECTL rclClient; - POINTL point; - int button = -1,rc,key; - - -/* Process the message. */ - - switch( msg ) - { - case WM_CREATE: - { - SIZEL sizl = { 0L, 0L }; - LONG *alCaps; - HDC hdc; - - /*+-----------------------------------------------------------------+*/ - /*| The client window is being created. Create the semaphore to |*/ - /*| control access to the presentation space. Then create the |*/ - /*| thread that will draw the lines. |*/ - /*+-----------------------------------------------------------------+*/ - // DosCreateMutexSem( (PSZ)NULL, &hmtxPS, 0UL, FALSE ); - - hdc = WinOpenWindowDC(hwnd); - - /*+-----------------------------------------------------------------+*/ - /*| Create a non-cached presentation space. We will not release |*/ - /*| this PS, as we will be Selecting a Palette to this PS and then |*/ - /*| animating the palette. Upon releasing a PS the palette is no |*/ - /*| longer selected for obvious reasons. |*/ - /*+-----------------------------------------------------------------+*/ - hpsCurrent = GpiCreatePS( hab, - hdc, - &sizl, - PU_PELS | GPIF_DEFAULT | - GPIT_MICRO | GPIA_ASSOC ); -// DevQueryCaps( hdc, lStart, lCount, alCaps ); -// fPaletteCaps = alCaps[CAPS_ADDITIONAL_GRAPHICS] & CAPS_PALETTE_MANAGER; -// PaletteInit(3); - /* ¯¥p¥¢®¤ hpsBuffer ¢ p¥¦¨¬ RGB color table */ - - GpiCreateLogColorTable(hpsCurrent,0 ,LCOLF_RGB,0,0,NULL); - GpiSetPattern(hpsCurrent,PATSYM_SOLID); - GpiSetPatternSet(hpsCurrent,LCID_DEFAULT); - - } - break; - - return 0; - case WM_CLOSE: - WinPostMsg( hwnd, WM_QUIT, NULL, NULL ); - - return 0; - - case WM_PAINT: - window = __glutGetWindow(hwnd); - if (window) - { - PWMC ctx; -// hps = WinBeginPaint(hwnd,NULLHANDLE,&rclClient); - hps = WinBeginPaint(hwnd,NULLHANDLE,&rclClient); - // blit Dive buffer to screen. - - { - SWP swp; // Window position - POINTL pointl; // Point to offset from Desktop - - // Convert the point to offset from desktop lower left. - pointl.x = 0; - pointl.y = 0; - WinMapWindowPoints ( hwnd, HWND_DESKTOP, &pointl, 1 ); - - -// ctx = window->ctx; -// ctx->xDiveScr = pointl.x; -// ctx->yDiveScr = pointl.y; - } -// rc = DiveBlitImage (ctx->hDive, -// ctx->ulDiveBufferNumber, -// DIVE_BUFFER_SCREEN ); -// - - if (window->win == hwnd) { - __glutPostRedisplay(window, GLUT_REPAIR_WORK); - } else if (window->overlay && window->overlay->win == hwnd) { - __glutPostRedisplay(window, GLUT_OVERLAY_REPAIR_WORK); - } - WinEndPaint(hps); - } else { - - hps = WinBeginPaint(hwnd,NULLHANDLE,&rclClient); - WinFillRect(hps, &rclClient, CLR_WHITE); - WinEndPaint(hps); - } - break; - - case WM_VRNDISABLED: - -// pwinData->fDataInProcess = TRUE; -// DiveSetupBlitter ( pwinData->hDive, 0 ); -// pwinData->fVrnDisabled = TRUE; - break; - - case WM_VRNENABLED: - { HRGN hrgn; /* Region handle */ - RGNRECT rgnCtl; /* Processing control structure */ -// RECTL rCtls[52]; -// ULONG ulNumRcls; - -// pwinData->fDataInProcess = TRUE; - hps = WinGetPS ( hwnd ); - if ( !hps ) - break; - hrgn = GpiCreateRegion ( hps, 0L, NULL ); - if ( hrgn ) - { /* NOTE: If mp1 is zero, then this was just a move message. - ** Illustrate the visible region on a WM_VRNENABLE. - */ - WinQueryVisibleRegion ( hwnd, hrgn ); - rgnCtl.ircStart = 0; - rgnCtl.crc = 50; - rgnCtl.ulDirection = 1; - - /* Get the all ORed rectangles */ - if ( GpiQueryRegionRects ( hps, hrgn, NULL, - &rgnCtl, rCtls) ) - { - ulNumRcls = rgnCtl.crcReturned; - - /* Now find the window position and size, relative to parent. - */ -// WinQueryWindowPos ( pwinData->hwndClient, &pwinData->swp ); - -// rcl.xLeft = 0; -// rcl.yBottom = 0; - - /* Convert the point to offset from desktop lower left. - */ -// pointl.x = pwinData->swp.x; -// pointl.y = pwinData->swp.y; - -// WinMapWindowPoints ( pwinData->hwndFrame, -// HWND_DESKTOP, &pointl, 1 ); - -// pwinData->cxWindowPos = pointl.x; -// pwinData->cyWindowPos = pointl.y; - - } - GpiDestroyRegion( hps, hrgn ); - } - WinReleasePS( hps ); - - } - break; - - case WM_SIZE: - window = __glutGetWindow(hwnd); - if (window) - { int width,height; - width = SHORT1FROMMP(mp2); - height = SHORT2FROMMP(mp2); - if (width != window->width || height != window->height) { -#if 0 /* Win32 GLUT does not support overlays for now. */ - if (window->overlay) { - XResizeWindow(__glutDisplay, window->overlay->win, width, height); - } -#endif - window->width = width; - window->height = height; - __glutSetWindow(window); - if(width <= 0 || height <= 0) - break; - _mesa_ResizeBuffersMESA(); - - /* Do not execute OpenGL out of sequence with respect - to the SetWindowPos request! */ - window->reshape(width, height); - window->forceReshape = FALSE; - /* A reshape should be considered like posting a - repair request. */ - __glutPostRedisplay(window, GLUT_REPAIR_WORK); - } - } - return 0; - case WM_SHOW: - window = __glutGetWindow(hwnd); - if (window) { - int visState; - visState = SHORT1FROMMP( mp1 ); - updateWindowState(window, visState); - } - return 0; - - case WM_ACTIVATE: - window = __glutGetWindow(hwnd); -// /* Make sure we re-select the correct palette if needed. */ -// if (LOWORD(wParam)) { -// PostMessage(hwnd, WM_PALETTECHANGED, 0, 0); -// } - if (window) { - int visState; - visState = SHORT1FROMMP( mp1 ); - updateWindowState(window, visState); - } - return 0; - - case WM_CHAR: - { USHORT fsflags; - window = __glutGetWindow(hwnd); - if (!window) { - break; - } - fsflags = SHORT1FROMMP(mp1); -/* ?? */ - if((fsflags & KC_KEYUP) ) /* ¨£®p¨p㥬 ®â¦ ⨥ ª®¯ª¨, p¥ £¨p㥬 ⮫쪮 ¦ ⨥ */ - break; -/////////////////////////////////////////////////// - if(!(fsflags & KC_CHAR) ) - { - if (!(fsflags & KC_VIRTUALKEY)) - break; - key = 0; - /* Get the virtual key from mp2. */ - switch (SHORT2FROMMP(mp2)) - { -/* directional keys */ - case VK_LEFT: key = GLUT_KEY_LEFT; break; - case VK_UP: key = GLUT_KEY_UP; break; - case VK_RIGHT: key = GLUT_KEY_RIGHT; break; - case VK_DOWN: key = GLUT_KEY_DOWN; break; - - case VK_PAGEUP: key = GLUT_KEY_PAGE_UP; break; - case VK_PAGEDOWN:key = GLUT_KEY_PAGE_DOWN; break; - case VK_HOME: key = GLUT_KEY_HOME;break; - case VK_END: key = GLUT_KEY_END; break; - case VK_INSERT: key = GLUT_KEY_INSERT; break; - -/* function keys */ - case VK_F1 : key = GLUT_KEY_F1; break; - case VK_F2 : key = GLUT_KEY_F2; break; - case VK_F3 : key = GLUT_KEY_F3; break; - case VK_F4 : key = GLUT_KEY_F4; break; - case VK_F5 : key = GLUT_KEY_F5; break; - case VK_F6 : key = GLUT_KEY_F6; break; - case VK_F7 : key = GLUT_KEY_F7; break; - case VK_F8 : key = GLUT_KEY_F8; break; - case VK_F9 : key = GLUT_KEY_F9; break; - case VK_F10: key = GLUT_KEY_F10;break; - case VK_F11: key = GLUT_KEY_F11; break; - case VK_F12: key = GLUT_KEY_F12; break; - case VK_ESC: key = -1; break; /* Character codes */ - case VK_SPACE: key = -1; break; - case VK_TAB: key = -1; break; - } - if(!key) - { break; /* Key Not implemented */ - } - if(key > 0) - { if (!window->special) /* ¥ ãáâ ®¢«¥® ®¡à ¡®â稪 */ - break; - - WinQueryPointerPos(HWND_DESKTOP,&point); - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if(WinGetKeyState(HWND_DESKTOP,VK_SHIFT) & 0x8000) /* high order bit is on */ - __glutModifierMask |= ShiftMask; - if(WinGetKeyState(HWND_DESKTOP,VK_CTRL) & 0x8000) - __glutModifierMask |= ControlMask; - if(WinGetKeyState(HWND_DESKTOP,VK_MENU) & 0x8000) - __glutModifierMask |= Mod1Mask; - window->special(key, point.x, point.y); - __glutModifierMask = (unsigned int) ~0; - return 0; - } - - } -///////////////////////////////////////////////////// - /* If we are ignoring auto repeated key strokes for the window, bail. */ - if (window->ignoreKeyRepeat && (CHAR3FROMMP(mp1)) ) - break; - if(!((unsigned char)SHORT1FROMMP(mp2)) ) /* ¨£®p¨p㥬 ¥á¨¬¢®«ìë¥ ª®¤ë */ - break; - if (window->keyboard) { - WinQueryPointerPos(HWND_DESKTOP,&point); - - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if(WinGetKeyState(HWND_DESKTOP,VK_SHIFT) & 0x8000) /* high order bit is on */ - __glutModifierMask |= ShiftMask; - if(WinGetKeyState(HWND_DESKTOP,VK_CTRL) & 0x8000) - __glutModifierMask |= ControlMask; - if(WinGetKeyState(HWND_DESKTOP,VK_MENU) & 0x8000) - __glutModifierMask |= Mod1Mask; - window->keyboard((unsigned char)SHORT1FROMMP(mp2), point.x, point.y); - __glutModifierMask = (unsigned int) ~0; - } - return 0; - } /* endof case WM_CHAR: */ -//////////////////////////////////////////////// - case WM_BUTTON1DOWN: - button = GLUT_LEFT_BUTTON; - case WM_BUTTON3DOWN: - if (button < 0) - button = GLUT_MIDDLE_BUTTON; - case WM_BUTTON2DOWN: - if (button < 0) - button = GLUT_RIGHT_BUTTON; - { POINTS psh; - psh = *((POINTS *)&mp1); - point.x = psh.x; - point.y = psh.y; - } - /* finish the menu if we get a button down message (user must have - cancelled the menu). */ - if (__glutMappedMenu) { - /* TODO: take this out once the menu on middle mouse stuff works - properly. */ - if (button == GLUT_MIDDLE_BUTTON) - return 0; - /* get current mouse pointer position */ -// WinQueryPointerPos(HWND_DESKTOP,&point); - /* map from desktop to client window */ -// WinMapWindowPoints(HWND_DESKTOP, hwnd, &point, 1); - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); - return 0; - } - window = __glutGetWindow(hwnd); - if (window) { - window->buttonDownState = button+1; - menu = __glutGetMenuByNum(window->menu[button]); - if (menu) { -//todo -// __glutMenuButton = button == GLUT_RIGHT_BUTTON ? TPM_RIGHTBUTTON : -// button == GLUT_LEFT_BUTTON ? TPM_LEFTBUTTON : -// 0x0001; -// __glutStartMenu(menu, window, point.x, point.y, x, y); - } else if (window->mouse) { - - __glutSetWindow(window); - __glutModifierMask = 0; - if (WinGetKeyState(HWND_DESKTOP,VK_SHIFT) & 0x8000) /* < 0 = high order bit is on. */ - __glutModifierMask |= ShiftMask; - if (WinGetKeyState(HWND_DESKTOP,VK_CTRL) & 0x8000) - __glutModifierMask |= ControlMask; - if (WinGetKeyState(HWND_DESKTOP,VK_MENU) & 0x8000) - __glutModifierMask |= Mod1Mask; - window->mouse(button, GLUT_DOWN, point.x, point.y); - __glutModifierMask = (unsigned int)~0; - } else { - /* Stray mouse events. Ignore. */ - } - } - return 0; - - break; -/********************************************/ - case WM_BUTTON1UP: - button = GLUT_LEFT_BUTTON; - case WM_BUTTON3UP: - if (button < 0) - button = GLUT_MIDDLE_BUTTON; - case WM_BUTTON2UP: - if (button < 0) - button = GLUT_RIGHT_BUTTON; - { POINTS psh; - psh = *((POINTS *)&mp1); - point.x = psh.x; - point.y = psh.y; - } - /* Bail out if we're processing a menu. */ - /* Bail out = ¢ë¡à®á¨âìáï á ¯ à èã⮬ */ - if (__glutMappedMenu) { - WinQueryPointerPos(HWND_DESKTOP,&point); - WinMapWindowPoints(HWND_DESKTOP, hwnd, &point, 1); - /* if we're getting the middle button up signal, then something - on the menu was selected. */ - if (button == GLUT_MIDDLE_BUTTON) { - return 0; - /* For some reason, the code below always returns -1 even - though the point IS IN THE ITEM! Therefore, just bail out if - we get a middle mouse up. The user must select using the - left mouse button. Stupid Win32. */ -#if 0 - int item = MenuItemFromPoint(hwnd, __glutHMenu, point); - if (item != -1) - __glutItemSelected = (GLUTmenuItem*)GetMenuItemID(__glutHMenu, item); - else - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); -#endif - } else { - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); - } - return 0; - } - - window = __glutGetWindow(hwnd); - if(window) - window->buttonDownState = 0; - - if (window && window->mouse) { - __glutSetWindow(window); - __glutModifierMask = 0; - if (WinGetKeyState(HWND_DESKTOP,VK_SHIFT) & 0x8000) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (WinGetKeyState(HWND_DESKTOP,VK_CTRL) & 0x8000) - __glutModifierMask |= ControlMask; - if (WinGetKeyState(HWND_DESKTOP,VK_MENU) & 0x8000) - __glutModifierMask |= Mod1Mask; - window->mouse(button, GLUT_UP, point.x, point.y); - - __glutModifierMask = (unsigned int)~0; - } else { - /* Window might have been destroyed and all the - events for the window may not yet be received. */ - } - return 0; - - - break; -////////////////////////////////////////////////// - case WM_COMMAND: - window = __glutGetWindow(hwnd); - if (window) - { if (window->wm_command) - window->wm_command(hwnd,mp1,mp2); - } - break; - - case WM_MOUSEMOVE: - if (!__glutMappedMenu) { - window = __glutGetWindow(hwnd); - if (window) { - /* If motion function registered _and_ buttons held * - down, call motion function... */ - { POINTS psh; - psh = *((POINTS *)&mp1); - point.x = psh.x; - point.y = psh.y; - } - - if (window->motion && window->buttonDownState) { - __glutSetWindow(window); - window->motion(point.x, point.y); - } - /* If passive motion function registered _and_ - buttons not held down, call passive motion - function... */ - else if (window->passive && !window->buttonDownState) { - __glutSetWindow(window); - window->passive(point.x, point.y); - } - } - } else { - /* Motion events are thrown away when a pop up menu is - active. */ - } - return 0; - - - default: - /* For all other messages, let the default window procedure process them. */ - return ( WinDefWindowProc( hwnd, msg, mp1, mp2 ) ); - - } //endof switch( msg ) - return ( WinDefWindowProc( hwnd, msg, mp1, mp2 ) ); -// return NULL; -} - -void APIENTRY glutCommandFunc(GLUTcommandCB Func) -{ -extern GLUTwindow *__glutCurrentWindow; - __glutCurrentWindow->wm_command = Func; -} - - - - -void -updateWindowState(GLUTwindow *window, int visState) -{ - GLUTwindow* child; - - /* XXX shownState and visState are the same in Win32. */ - window->shownState = visState; - if (visState != window->visState) { - if (window->windowStatus) { - window->visState = visState; - __glutSetWindow(window); - window->windowStatus(visState); - } - } - /* Since Win32 only sends an activate for the toplevel window, - update the visibility for all the child windows. */ - child = window->children; - while (child) { - updateWindowState(child, visState); - child = child->siblings; - } -} - -#if POKA - -LONG WINAPI -__glutWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - POINT point; /* Point structure. */ - PAINTSTRUCT ps; /* Paint structure. */ - LPMINMAXINFO minmax; /* Minimum/maximum info structure. */ - GLUTwindow* window; /* GLUT window associated with message. */ - GLUTmenu* menu; /* GLUT menu associated with message. */ - int x, y, width, height, key; - int button = -1; - - switch(msg) { - case WM_CREATE: - return 0; - case WM_CLOSE: - PostQuitMessage(0); - return 0; -#if 0 - case WM_DESTROY: - /* XXX NVidia's NT OpenGL can have problems closing down - its OpenGL internal data structures if we just allow - the process to terminate without unbinding and deleting - the windows context. Apparently, DirectDraw unloads - before OPENGL32.DLL in the close down sequence, but - NVidia's NT OpenGL needs DirectDraw to close down its - data structures. */ - window = __glutGetWindow(hwnd); - if (window) { - if (window->ctx) { - wglMakeCurrent(NULL, NULL); - wglDeleteContext(window->ctx); - } - } - return 0; -#endif - - case WM_SYSKEYUP: - case WM_KEYUP: - window = __glutGetWindow(hwnd); - if (!window) { - break; - } - /* Win32 is dumb and sends these messages only to the parent - window. Therefore, find out if we're in a child window and - call the child windows keyboard callback if we are. */ - if (window->parent) { - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - hwnd = ChildWindowFromPoint(hwnd, point); - window = __glutGetWindow(hwnd); - } - if (window->specialUp || window->keyboardUp) { - GetCursorPos(&point); - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - switch (wParam) { - /* *INDENT-OFF* */ - case VK_F1: key = GLUT_KEY_F1; break; - case VK_F2: key = GLUT_KEY_F2; break; - case VK_F3: key = GLUT_KEY_F3; break; - case VK_F4: key = GLUT_KEY_F4; break; - case VK_F5: key = GLUT_KEY_F5; break; - case VK_F6: key = GLUT_KEY_F6; break; - case VK_F7: key = GLUT_KEY_F7; break; - case VK_F8: key = GLUT_KEY_F8; break; - case VK_F9: key = GLUT_KEY_F9; break; - case VK_F10: key = GLUT_KEY_F10; break; - case VK_F11: key = GLUT_KEY_F11; break; - case VK_F12: key = GLUT_KEY_F12; break; - case VK_LEFT: key = GLUT_KEY_LEFT; break; - case VK_UP: key = GLUT_KEY_UP; break; - case VK_RIGHT: key = GLUT_KEY_RIGHT; break; - case VK_DOWN: key = GLUT_KEY_DOWN; break; - case VK_PRIOR: key = GLUT_KEY_PAGE_UP; break; - case VK_NEXT: key = GLUT_KEY_PAGE_DOWN; break; - case VK_HOME: key = GLUT_KEY_HOME; break; - case VK_END: key = GLUT_KEY_END; break; - case VK_INSERT: key = GLUT_KEY_INSERT; break; - case VK_DELETE: - /* Delete is an ASCII character. */ - if (window->keyboardUp) { - window->keyboardUp((unsigned char) 127, point.x, point.y); - } - return 0; - /* *INDENT-ON* */ - default: - if (window->keyboardUp) { - key = MapVirtualKey(wParam, 2); /* Map to ASCII. */ - if (isascii(key) && (key != 0)) { - - /* XXX Attempt to determine modified ASCII character - is quite incomplete. Digits, symbols, CapsLock, - Ctrl, and numeric keypad are all ignored. Fix this. */ - - if (!(__glutModifierMask & ShiftMask)) - key = tolower(key); - window->keyboardUp((unsigned char) key, point.x, point.y); - } - } - __glutModifierMask = (unsigned int) ~0; - return 0; - } - if (window->specialUp) { - window->specialUp(key, point.x, point.y); - } - __glutModifierMask = (unsigned int) ~0; - } - return 0; - - case WM_SYSCHAR: - case WM_CHAR: - window = __glutGetWindow(hwnd); - if (!window) { - break; - } - - /* Bit 30 of lParam is set if key already held down. If - we are ignoring auto repeated key strokes for the window, bail. */ - if (window->ignoreKeyRepeat && (lParam & (1 << 30)) ) { - break; - } - - /* Win32 is dumb and sends these messages only to the parent - window. Therefore, find out if we're in a child window and - call the child windows keyboard callback if we are. */ - if (window->parent) { - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - hwnd = ChildWindowFromPoint(hwnd, point); - window = __glutGetWindow(hwnd); - } - if (window->keyboard) { - GetCursorPos(&point); - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_CONTROL) < 0) - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - window->keyboard((unsigned char)wParam, point.x, point.y); - __glutModifierMask = (unsigned int) ~0; - } - return 0; - - case WM_SYSKEYDOWN: - case WM_KEYDOWN: - window = __glutGetWindow(hwnd); - if (!window) { - break; - } - - /* Bit 30 of lParam is set if key already held down. If - we are ignoring auto repeated key strokes for the window, bail. */ - if (window->ignoreKeyRepeat && (lParam & (1 << 30)) ) { - break; - } - - /* Win32 is dumb and sends these messages only to the parent - window. Therefore, find out if we're in a child window and - call the child windows keyboard callback if we are. */ - if (window->parent) { - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - hwnd = ChildWindowFromPoint(hwnd, point); - window = __glutGetWindow(hwnd); - } - if (window->special) { - switch (wParam) { - /* *INDENT-OFF* */ - /* function keys */ - case VK_F1: key = GLUT_KEY_F1; break; - case VK_F2: key = GLUT_KEY_F2; break; - case VK_F3: key = GLUT_KEY_F3; break; - case VK_F4: key = GLUT_KEY_F4; break; - case VK_F5: key = GLUT_KEY_F5; break; - case VK_F6: key = GLUT_KEY_F6; break; - case VK_F7: key = GLUT_KEY_F7; break; - case VK_F8: key = GLUT_KEY_F8; break; - case VK_F9: key = GLUT_KEY_F9; break; - case VK_F10: key = GLUT_KEY_F10; break; - case VK_F11: key = GLUT_KEY_F11; break; - case VK_F12: key = GLUT_KEY_F12; break; - /* directional keys */ - case VK_LEFT: key = GLUT_KEY_LEFT; break; - case VK_UP: key = GLUT_KEY_UP; break; - case VK_RIGHT: key = GLUT_KEY_RIGHT; break; - case VK_DOWN: key = GLUT_KEY_DOWN; break; - /* *INDENT-ON* */ - - case VK_PRIOR: - /* VK_PRIOR is Win32's Page Up */ - key = GLUT_KEY_PAGE_UP; - break; - case VK_NEXT: - /* VK_NEXT is Win32's Page Down */ - key = GLUT_KEY_PAGE_DOWN; - break; - case VK_HOME: - key = GLUT_KEY_HOME; - break; - case VK_END: - key = GLUT_KEY_END; - break; - case VK_INSERT: - key = GLUT_KEY_INSERT; - break; - case VK_DELETE: - goto handleDelete; - default: - goto defproc; - } - GetCursorPos(&point); - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_CONTROL) < 0) - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - window->special(key, point.x, point.y); - __glutModifierMask = (unsigned int) ~0; - } else if (window->keyboard) { - /* Specially handle any keys that match ASCII values but - do not generate Windows WM_SYSCHAR or WM_CHAR messages. */ - switch (wParam) { - case VK_DELETE: - handleDelete: - /* Delete is an ASCII character. */ - GetCursorPos(&point); - ScreenToClient(window->win, &point); - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_CONTROL) < 0) - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - window->keyboard((unsigned char) 127, point.x, point.y); - __glutModifierMask = (unsigned int) ~0; - return 0; - default: - /* Let the following WM_SYSCHAR or WM_CHAR message generate - the keyboard callback. */ - break; - } - } - return 0; - - case WM_LBUTTONDOWN: - button = GLUT_LEFT_BUTTON; - case WM_MBUTTONDOWN: - if (button < 0) - button = GLUT_MIDDLE_BUTTON; - case WM_RBUTTONDOWN: - if (button < 0) - button = GLUT_RIGHT_BUTTON; - - /* finish the menu if we get a button down message (user must have - cancelled the menu). */ - if (__glutMappedMenu) { - /* TODO: take this out once the menu on middle mouse stuff works - properly. */ - if (button == GLUT_MIDDLE_BUTTON) - return 0; - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); - return 0; - } - - /* set the capture so we can get mouse events outside the window */ - SetCapture(hwnd); - - /* Win32 doesn't return the same numbers as X does when the mouse - goes beyond the upper or left side of the window. roll the - Win32's 0..2^16 pointer co-ord range to 0 +/- 2^15. */ - x = LOWORD(lParam); - y = HIWORD(lParam); - if(x & 1 << 15) x -= (1 << 16); - if(y & 1 << 15) y -= (1 << 16); - - window = __glutGetWindow(hwnd); - if (window) { - menu = __glutGetMenuByNum(window->menu[button]); - if (menu) { - point.x = LOWORD(lParam); point.y = HIWORD(lParam); - ClientToScreen(window->win, &point); - __glutMenuButton = button == GLUT_RIGHT_BUTTON ? TPM_RIGHTBUTTON : - button == GLUT_LEFT_BUTTON ? TPM_LEFTBUTTON : - 0x0001; - __glutStartMenu(menu, window, point.x, point.y, x, y); - } else if (window->mouse) { - - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on. */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_CONTROL) < 0) - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - window->mouse(button, GLUT_DOWN, x, y); - __glutModifierMask = (unsigned int)~0; - } else { - /* Stray mouse events. Ignore. */ - } - } - return 0; - - case WM_LBUTTONUP: - button = GLUT_LEFT_BUTTON; - case WM_MBUTTONUP: - if (button < 0) - button = GLUT_MIDDLE_BUTTON; - case WM_RBUTTONUP: - if (button < 0) - button = GLUT_RIGHT_BUTTON; - - /* Bail out if we're processing a menu. */ - if (__glutMappedMenu) { - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - /* if we're getting the middle button up signal, then something - on the menu was selected. */ - if (button == GLUT_MIDDLE_BUTTON) { - return 0; - /* For some reason, the code below always returns -1 even - though the point IS IN THE ITEM! Therefore, just bail out if - we get a middle mouse up. The user must select using the - left mouse button. Stupid Win32. */ -#if 0 - int item = MenuItemFromPoint(hwnd, __glutHMenu, point); - if (item != -1) - __glutItemSelected = (GLUTmenuItem*)GetMenuItemID(__glutHMenu, item); - else - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); -#endif - } else { - __glutItemSelected = NULL; - __glutFinishMenu(hwnd, point.x, point.y); - } - return 0; - } - - /* Release the mouse capture. */ - ReleaseCapture(); - - window = __glutGetWindow(hwnd); - if (window && window->mouse) { - /* Win32 doesn't return the same numbers as X does when the - mouse goes beyond the upper or left side of the window. roll - the Win32's 0..2^16 pointer co-ord range to 0 +/- 2^15. */ - x = LOWORD(lParam); - y = HIWORD(lParam); - if(x & 1 << 15) x -= (1 << 16); - if(y & 1 << 15) y -= (1 << 16); - - __glutSetWindow(window); - __glutModifierMask = 0; - if (GetKeyState(VK_SHIFT) < 0) /* < 0 = high order bit is on */ - __glutModifierMask |= ShiftMask; - if (GetKeyState(VK_CONTROL) < 0) - __glutModifierMask |= ControlMask; - if (GetKeyState(VK_MENU) < 0) - __glutModifierMask |= Mod1Mask; - window->mouse(button, GLUT_UP, x, y); - __glutModifierMask = (unsigned int)~0; - } else { - /* Window might have been destroyed and all the - events for the window may not yet be received. */ - } - return 0; - - case WM_ENTERMENULOOP: - /* KLUDGE: create a timer that fires every 100 ms when we start a - menu so that we can still process the idle & timer events (that - way, the timers will fire during a menu pick and so will the - idle func. */ - SetTimer(hwnd, 1, 1, NULL); - return 0; - - case WM_TIMER: -#if 0 - /* If the timer id is 2, then this is the timer that is set up in - the main glut message processing loop, and we don't want to do - anything but acknowledge that we got it. It is used to prevent - CPU spiking when an idle function is installed. */ - if (wParam == 2) - return 0; -#endif - - /* only worry about the idle function and the timeouts, since - these are the only events we expect to process during - processing of a menu. */ - /* we no longer process the idle functions (as outlined in the - README), since drawing can't be done until the menu has - finished...it's pretty lame when the animation goes on, but - doesn't update, so you get this weird jerkiness. */ -#if 0 - if (__glutIdleFunc) - __glutIdleFunc(); -#endif - if (__glutTimerList) - handleTimeouts(); - return 0; - - case WM_EXITMENULOOP: - /* nuke the above created timer...we don't need it anymore, since - the menu is gone now. */ - KillTimer(hwnd, 1); - return 0; - - case WM_MENUSELECT: - if (lParam != 0) - __glutHMenu = (HMENU)lParam; - return 0; - - case WM_COMMAND: - if (__glutMappedMenu) { - if (GetSubMenu(__glutHMenu, LOWORD(wParam))) - __glutItemSelected = NULL; - else - __glutItemSelected = - __glutGetUniqueMenuItem(__glutMappedMenu, LOWORD(wParam)); - GetCursorPos(&point); - ScreenToClient(hwnd, &point); - __glutFinishMenu(hwnd, point.x, point.y); - } - return 0; - - case WM_MOUSEMOVE: - if (!__glutMappedMenu) { - window = __glutGetWindow(hwnd); - if (window) { - /* If motion function registered _and_ buttons held * - down, call motion function... */ - x = LOWORD(lParam); - y = HIWORD(lParam); - - /* Win32 doesn't return the same numbers as X does when the - mouse goes beyond the upper or left side of the window. - roll the Win32's 0..2^16 pointer co-ord range to 0..+/-2^15. */ - if(x & 1 << 15) x -= (1 << 16); - if(y & 1 << 15) y -= (1 << 16); - - if (window->motion && wParam & - (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) { - __glutSetWindow(window); - window->motion(x, y); - } - /* If passive motion function registered _and_ - buttons not held down, call passive motion - function... */ - else if (window->passive && - ((wParam & - (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) == - 0)) { - __glutSetWindow(window); - window->passive(x, y); - } - } - } else { - /* Motion events are thrown away when a pop up menu is - active. */ - } - return 0; - - case WM_GETMINMAXINFO: - /* this voodoo is brought to you by Win32 (again). It allows the - window to be bigger than the screen, and smaller than 100x100 - (although it doesn't seem to help the y minimum). */ - minmax = (LPMINMAXINFO)lParam; - minmax->ptMaxSize.x = __glutScreenWidth; - minmax->ptMaxSize.y = __glutScreenHeight; - minmax->ptMinTrackSize.x = 0; - minmax->ptMinTrackSize.y = 0; - minmax->ptMaxTrackSize.x = __glutScreenWidth + - GetSystemMetrics(SM_CXSIZE) * 2; - minmax->ptMaxTrackSize.y = __glutScreenHeight + - GetSystemMetrics(SM_CXSIZE) * 2 + GetSystemMetrics(SM_CYCAPTION); - return 0; - - case WM_SIZE: - window = __glutGetWindow(hwnd); - if (window) { - width = LOWORD(lParam); - height = HIWORD(lParam); - if (width != window->width || height != window->height) { -#if 0 /* Win32 GLUT does not support overlays for now. */ - if (window->overlay) { - XResizeWindow(__glutDisplay, window->overlay->win, width, height); - } -#endif - window->width = width; - window->height = height; - __glutSetWindow(window); - /* Do not execute OpenGL out of sequence with respect - to the SetWindowPos request! */ - GdiFlush(); - window->reshape(width, height); - window->forceReshape = FALSE; - /* A reshape should be considered like posting a - repair request. */ - __glutPostRedisplay(window, GLUT_REPAIR_WORK); - } - } - return 0; - - case WM_SETCURSOR: - /* If the cursor is not in the client area, then we want to send - this message to the default window procedure ('cause its - probably in the border or title, and we don't handle that - cursor. otherwise, set our cursor. Win32 makes us set the - cursor every time the mouse moves (DUMB!). */ - if(LOWORD(lParam) != HTCLIENT) { - goto defproc; - } - window = __glutGetWindow(hwnd); - if (window) { - __glutSetCursor(window); - } - /* TODO: check out the info in DevStudio on WM_SETCURSOR in the - DefaultAction section. */ - return 1; - - case WM_SETFOCUS: - window = __glutGetWindow(hwnd); - if (window) { - window->entryState = WM_SETFOCUS; - if (window->entry) { - __glutSetWindow(window); - window->entry(GLUT_ENTERED); - /* XXX Generation of fake passive notify? See how much - work the X11 code does to support fake passive notify - callbacks. */ - } - if (window->joystick && __glutCurrentWindow) { - if (__glutCurrentWindow->joyPollInterval > 0) { - MMRESULT result; - - /* Because Win32 will only let one window capture the - joystick at a time, we must capture it when we get the - focus and release it when we lose the focus. */ - result = joySetCapture(__glutCurrentWindow->win, - JOYSTICKID1, 0, TRUE); - if (result != JOYERR_NOERROR) { - return 0; - } - (void) joySetThreshold(JOYSTICKID1, - __glutCurrentWindow->joyPollInterval); - } - } - } - return 0; - - case WM_KILLFOCUS: - window = __glutGetWindow(hwnd); - if (window) { - window->entryState = WM_KILLFOCUS; - if (window->entry) { - __glutSetWindow(window); - window->entry(GLUT_LEFT); - } - if (window->joystick && __glutCurrentWindow) { - if (__glutCurrentWindow->joyPollInterval > 0) { - /* Because Win32 will only let one window capture the - joystick at a time, we must capture it when we get the - focus and release it when we lose the focus. */ - (void) joyReleaseCapture(JOYSTICKID1); - } - } - } - return 0; - case WM_ACTIVATE: - window = __glutGetWindow(hwnd); - /* Make sure we re-select the correct palette if needed. */ - if (LOWORD(wParam)) { - PostMessage(hwnd, WM_PALETTECHANGED, 0, 0); - } - if (window) { - int visState; - - /* HIWORD(wParam) is the minimized flag. */ - visState = !HIWORD(wParam); - updateWindowState(window, visState); - } - return 0; - - /* Colour Palette Management */ - case WM_PALETTECHANGED: - if (hwnd == (HWND)wParam) { - /* Don't respond to the message that we sent! */ - break; - } - /* fall through to WM_QUERYNEWPALETTE */ - - case WM_QUERYNEWPALETTE: - window = __glutGetWindow(hwnd); - if (window && window->colormap) { - UnrealizeObject(window->colormap->cmap); - SelectPalette(window->hdc, window->colormap->cmap, FALSE); - RealizePalette(window->hdc); - return TRUE; - } - return FALSE; - - case MM_JOY1MOVE: - case MM_JOY1ZMOVE: - window = __glutGetWindow(hwnd); - if (window->joystick) { - JOYINFOEX jix; - int x, y, z; - - /* Because WIN32 only supports messages for X, Y, and Z - translations, we must poll for the rest */ - jix.dwSize = sizeof(jix); - jix.dwFlags = JOY_RETURNALL; - joyGetPosEx(JOYSTICKID1,&jix); - -#define SCALE(v) ((int) ((v - 32767)/32.768)) - - /* Convert to integer for scaling. */ - x = jix.dwXpos; - y = jix.dwYpos; - z = jix.dwZpos; - window->joystick(jix.dwButtons, SCALE(x), SCALE(y), SCALE(z)); - - return TRUE; - } - return FALSE; - case MM_JOY1BUTTONDOWN: - case MM_JOY1BUTTONUP: - window = __glutGetWindow(hwnd); - if (window->joystick) { - JOYINFOEX jix; - - /* Because WIN32 only supports messages for X, Y, and Z - translations, we must poll for the rest */ - jix.dwSize = sizeof(jix); - jix.dwFlags = JOY_RETURNALL; - joyGetPosEx(JOYSTICKID1,&jix); - - return TRUE; - } - return FALSE; - -#if 0 - /* Miscellaneous messages (don't really need to enumerate them, - but it's good to know what you're not getting sometimes). */ - case WM_DISPLAYCHANGE: - break; - case WM_NCHITTEST: - /* This event is generated by every mouse move event. */ - goto defproc; - case WM_NCMOUSEMOVE: - goto defproc; - case WM_NCACTIVATE: - goto defproc; - case WM_NCPAINT: - goto defproc; - case WM_NCCALCSIZE: - goto defproc; - case WM_NCCREATE: - goto defproc; - case WM_NCDESTROY: - goto defproc; - case WM_NCLBUTTONDOWN: - goto defproc; - case WM_SETTEXT: - goto defproc; - case WM_GETTEXT: - goto defproc; - case WM_ACTIVATEAPP: - goto defproc; - case WM_GETICON: - goto defproc; - case WM_ERASEBKGND: - goto defproc; - case WM_WINDOWPOSCHANGING: - goto defproc; - case WM_WINDOWPOSCHANGED: - goto defproc; - case WM_MOUSEACTIVATE: - goto defproc; - case WM_SHOWWINDOW: - goto defproc; - case WM_MOVING: - goto defproc; - case WM_MOVE: - goto defproc; - case WM_KEYUP: - goto defproc; - case WM_CAPTURECHANGED: - goto defproc; - case WM_SYSCOMMAND: - goto defproc; - case WM_ENTERSIZEMOVE: - goto defproc; - case WM_ENTERIDLE: - goto defproc; -#endif - - default: - goto defproc; - } - -defproc: - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -#endif - -#if defined(__OS2PM__) -Bool __glutSetWindowText(Window window, char *text) -{ - return WinSetWindowText(window, (PCSZ)text); - -} - -#endif diff --git a/src/glut/os2/src-glut_os2pm.zip b/src/glut/os2/src-glut_os2pm.zip Binary files differdeleted file mode 100644 index 8c8a8c7ac4..0000000000 --- a/src/glut/os2/src-glut_os2pm.zip +++ /dev/null |